From 89ad1f0ba0de25b6c951864bb9bf4f3790173bbb Mon Sep 17 00:00:00 2001 From: oguzhankoral Date: Mon, 15 Apr 2024 20:00:34 +0300 Subject: [PATCH] Add support for ruby 3.2 --- RubyExtension.def | 3 +- .../arm64-darwin/rb_mjit_min_header-3.2.2.h | 24858 +++++++++++++++ .../ruby/3.2/mac/arm64-darwin/ruby/config.h | 458 + ThirdParty/include/ruby/3.2/mac/ruby.h | 40 + ThirdParty/include/ruby/3.2/mac/ruby/assert.h | 234 + ThirdParty/include/ruby/3.2/mac/ruby/atomic.h | 890 + .../include/ruby/3.2/mac/ruby/backward.h | 25 + .../ruby/3.2/mac/ruby/backward/2/assume.h | 56 + .../ruby/3.2/mac/ruby/backward/2/attributes.h | 165 + .../ruby/3.2/mac/ruby/backward/2/bool.h | 36 + .../mac/ruby/backward/2/gcc_version_since.h | 37 + .../ruby/3.2/mac/ruby/backward/2/inttypes.h | 131 + .../ruby/3.2/mac/ruby/backward/2/limits.h | 99 + .../ruby/3.2/mac/ruby/backward/2/long_long.h | 73 + .../ruby/3.2/mac/ruby/backward/2/r_cast.h | 32 + .../ruby/3.2/mac/ruby/backward/2/rmodule.h | 36 + .../ruby/3.2/mac/ruby/backward/2/stdalign.h | 30 + .../ruby/3.2/mac/ruby/backward/2/stdarg.h | 69 + .../ruby/3.2/mac/ruby/backward/cxxanyargs.hpp | 700 + ThirdParty/include/ruby/3.2/mac/ruby/config.h | 10 + .../include/ruby/3.2/mac/ruby/defines.h | 116 + ThirdParty/include/ruby/3.2/mac/ruby/digest.h | 72 + .../include/ruby/3.2/mac/ruby/encoding.h | 31 + .../ruby/3.2/mac/ruby/fiber/scheduler.h | 374 + ThirdParty/include/ruby/3.2/mac/ruby/intern.h | 64 + .../include/ruby/3.2/mac/ruby/internal/abi.h | 58 + .../ruby/3.2/mac/ruby/internal/anyargs.h | 376 + .../ruby/3.2/mac/ruby/internal/arithmetic.h | 39 + .../3.2/mac/ruby/internal/arithmetic/char.h | 81 + .../3.2/mac/ruby/internal/arithmetic/double.h | 72 + .../3.2/mac/ruby/internal/arithmetic/fixnum.h | 60 + .../3.2/mac/ruby/internal/arithmetic/gid_t.h | 41 + .../3.2/mac/ruby/internal/arithmetic/int.h | 264 + .../mac/ruby/internal/arithmetic/intptr_t.h | 74 + .../3.2/mac/ruby/internal/arithmetic/long.h | 356 + .../mac/ruby/internal/arithmetic/long_long.h | 135 + .../3.2/mac/ruby/internal/arithmetic/mode_t.h | 41 + .../3.2/mac/ruby/internal/arithmetic/off_t.h | 62 + .../3.2/mac/ruby/internal/arithmetic/pid_t.h | 41 + .../3.2/mac/ruby/internal/arithmetic/short.h | 113 + .../3.2/mac/ruby/internal/arithmetic/size_t.h | 66 + .../mac/ruby/internal/arithmetic/st_data_t.h | 75 + .../3.2/mac/ruby/internal/arithmetic/uid_t.h | 41 + .../ruby/3.2/mac/ruby/internal/assume.h | 87 + .../3.2/mac/ruby/internal/attr/alloc_size.h | 32 + .../3.2/mac/ruby/internal/attr/artificial.h | 46 + .../ruby/3.2/mac/ruby/internal/attr/cold.h | 37 + .../ruby/3.2/mac/ruby/internal/attr/const.h | 46 + .../3.2/mac/ruby/internal/attr/constexpr.h | 84 + .../3.2/mac/ruby/internal/attr/deprecated.h | 75 + .../3.2/mac/ruby/internal/attr/diagnose_if.h | 42 + .../ruby/internal/attr/enum_extensibility.h | 32 + .../ruby/3.2/mac/ruby/internal/attr/error.h | 32 + .../3.2/mac/ruby/internal/attr/flag_enum.h | 33 + .../3.2/mac/ruby/internal/attr/forceinline.h | 40 + .../ruby/3.2/mac/ruby/internal/attr/format.h | 38 + .../3.2/mac/ruby/internal/attr/maybe_unused.h | 38 + .../ruby/3.2/mac/ruby/internal/attr/noalias.h | 69 + .../3.2/mac/ruby/internal/attr/nodiscard.h | 45 + .../3.2/mac/ruby/internal/attr/noexcept.h | 91 + .../3.2/mac/ruby/internal/attr/noinline.h | 35 + .../ruby/3.2/mac/ruby/internal/attr/nonnull.h | 34 + .../3.2/mac/ruby/internal/attr/noreturn.h | 48 + .../ruby/3.2/mac/ruby/internal/attr/pure.h | 43 + .../3.2/mac/ruby/internal/attr/restrict.h | 44 + .../mac/ruby/internal/attr/returns_nonnull.h | 37 + .../ruby/3.2/mac/ruby/internal/attr/warning.h | 32 + .../ruby/3.2/mac/ruby/internal/attr/weakref.h | 32 + .../include/ruby/3.2/mac/ruby/internal/cast.h | 50 + .../ruby/3.2/mac/ruby/internal/compiler_is.h | 45 + .../3.2/mac/ruby/internal/compiler_is/apple.h | 40 + .../3.2/mac/ruby/internal/compiler_is/clang.h | 37 + .../3.2/mac/ruby/internal/compiler_is/gcc.h | 45 + .../3.2/mac/ruby/internal/compiler_is/intel.h | 40 + .../3.2/mac/ruby/internal/compiler_is/msvc.h | 56 + .../mac/ruby/internal/compiler_is/sunpro.h | 54 + .../3.2/mac/ruby/internal/compiler_since.h | 61 + .../ruby/3.2/mac/ruby/internal/config.h | 155 + .../ruby/3.2/mac/ruby/internal/constant_p.h | 38 + .../include/ruby/3.2/mac/ruby/internal/core.h | 35 + .../ruby/3.2/mac/ruby/internal/core/rarray.h | 585 + .../ruby/3.2/mac/ruby/internal/core/rbasic.h | 158 + .../ruby/3.2/mac/ruby/internal/core/rbignum.h | 80 + .../ruby/3.2/mac/ruby/internal/core/rclass.h | 93 + .../ruby/3.2/mac/ruby/internal/core/rdata.h | 386 + .../ruby/3.2/mac/ruby/internal/core/rfile.h | 51 + .../ruby/3.2/mac/ruby/internal/core/rhash.h | 144 + .../ruby/3.2/mac/ruby/internal/core/rmatch.h | 146 + .../ruby/3.2/mac/ruby/internal/core/robject.h | 176 + .../ruby/3.2/mac/ruby/internal/core/rregexp.h | 168 + .../ruby/3.2/mac/ruby/internal/core/rstring.h | 578 + .../ruby/3.2/mac/ruby/internal/core/rstruct.h | 121 + .../3.2/mac/ruby/internal/core/rtypeddata.h | 604 + .../ruby/3.2/mac/ruby/internal/ctype.h | 545 + .../ruby/3.2/mac/ruby/internal/dllexport.h | 112 + .../ruby/3.2/mac/ruby/internal/dosish.h | 89 + .../mac/ruby/internal/encoding/coderange.h | 202 + .../3.2/mac/ruby/internal/encoding/ctype.h | 258 + .../3.2/mac/ruby/internal/encoding/encoding.h | 1060 + .../3.2/mac/ruby/internal/encoding/pathname.h | 184 + .../ruby/3.2/mac/ruby/internal/encoding/re.h | 46 + .../3.2/mac/ruby/internal/encoding/sprintf.h | 78 + .../3.2/mac/ruby/internal/encoding/string.h | 346 + .../3.2/mac/ruby/internal/encoding/symbol.h | 100 + .../mac/ruby/internal/encoding/transcode.h | 562 + .../ruby/3.2/mac/ruby/internal/error.h | 582 + .../include/ruby/3.2/mac/ruby/internal/eval.h | 400 + .../ruby/3.2/mac/ruby/internal/event.h | 154 + .../ruby/3.2/mac/ruby/internal/fl_type.h | 948 + .../include/ruby/3.2/mac/ruby/internal/gc.h | 57 + .../include/ruby/3.2/mac/ruby/internal/glob.h | 113 + .../ruby/3.2/mac/ruby/internal/globals.h | 209 + .../3.2/mac/ruby/internal/has/attribute.h | 163 + .../ruby/3.2/mac/ruby/internal/has/builtin.h | 117 + .../3.2/mac/ruby/internal/has/c_attribute.h | 38 + .../3.2/mac/ruby/internal/has/cpp_attribute.h | 86 + .../ruby/internal/has/declspec_attribute.h | 47 + .../3.2/mac/ruby/internal/has/extension.h | 33 + .../ruby/3.2/mac/ruby/internal/has/feature.h | 31 + .../ruby/3.2/mac/ruby/internal/has/warning.h | 31 + .../ruby/3.2/mac/ruby/internal/intern/array.h | 657 + .../3.2/mac/ruby/internal/intern/bignum.h | 846 + .../ruby/3.2/mac/ruby/internal/intern/class.h | 394 + .../3.2/mac/ruby/internal/intern/compar.h | 62 + .../3.2/mac/ruby/internal/intern/complex.h | 253 + .../ruby/3.2/mac/ruby/internal/intern/cont.h | 282 + .../ruby/3.2/mac/ruby/internal/intern/dir.h | 42 + .../ruby/3.2/mac/ruby/internal/intern/enum.h | 73 + .../3.2/mac/ruby/internal/intern/enumerator.h | 259 + .../ruby/3.2/mac/ruby/internal/intern/error.h | 287 + .../ruby/3.2/mac/ruby/internal/intern/eval.h | 222 + .../ruby/3.2/mac/ruby/internal/intern/file.h | 213 + .../ruby/3.2/mac/ruby/internal/intern/gc.h | 392 + .../ruby/3.2/mac/ruby/internal/intern/hash.h | 320 + .../ruby/3.2/mac/ruby/internal/intern/io.h | 661 + .../ruby/3.2/mac/ruby/internal/intern/load.h | 218 + .../3.2/mac/ruby/internal/intern/marshal.h | 112 + .../3.2/mac/ruby/internal/intern/numeric.h | 208 + .../3.2/mac/ruby/internal/intern/object.h | 501 + .../ruby/3.2/mac/ruby/internal/intern/parse.h | 194 + .../ruby/3.2/mac/ruby/internal/intern/proc.h | 353 + .../3.2/mac/ruby/internal/intern/process.h | 273 + .../3.2/mac/ruby/internal/intern/random.h | 116 + .../ruby/3.2/mac/ruby/internal/intern/range.h | 89 + .../3.2/mac/ruby/internal/intern/rational.h | 172 + .../ruby/3.2/mac/ruby/internal/intern/re.h | 249 + .../ruby/3.2/mac/ruby/internal/intern/ruby.h | 77 + .../3.2/mac/ruby/internal/intern/select.h | 86 + .../ruby/internal/intern/select/largesize.h | 214 + .../mac/ruby/internal/intern/select/posix.h | 144 + .../3.2/mac/ruby/internal/intern/signal.h | 152 + .../3.2/mac/ruby/internal/intern/sprintf.h | 159 + .../3.2/mac/ruby/internal/intern/string.h | 1757 ++ .../3.2/mac/ruby/internal/intern/struct.h | 203 + .../3.2/mac/ruby/internal/intern/thread.h | 492 + .../ruby/3.2/mac/ruby/internal/intern/time.h | 161 + .../3.2/mac/ruby/internal/intern/variable.h | 628 + .../ruby/3.2/mac/ruby/internal/intern/vm.h | 431 + .../ruby/3.2/mac/ruby/internal/interpreter.h | 304 + .../ruby/3.2/mac/ruby/internal/iterator.h | 513 + .../ruby/3.2/mac/ruby/internal/memory.h | 666 + .../ruby/3.2/mac/ruby/internal/method.h | 205 + .../ruby/3.2/mac/ruby/internal/module.h | 177 + .../ruby/3.2/mac/ruby/internal/newobj.h | 195 + .../ruby/3.2/mac/ruby/internal/rgengc.h | 443 + .../ruby/3.2/mac/ruby/internal/scan_args.h | 534 + .../3.2/mac/ruby/internal/special_consts.h | 362 + .../3.2/mac/ruby/internal/static_assert.h | 77 + .../ruby/3.2/mac/ruby/internal/stdalign.h | 135 + .../ruby/3.2/mac/ruby/internal/stdbool.h | 51 + .../ruby/3.2/mac/ruby/internal/symbol.h | 332 + .../ruby/3.2/mac/ruby/internal/value.h | 133 + .../ruby/3.2/mac/ruby/internal/value_type.h | 449 + .../ruby/3.2/mac/ruby/internal/variable.h | 337 + .../ruby/3.2/mac/ruby/internal/warning_push.h | 124 + .../ruby/3.2/mac/ruby/internal/xmalloc.h | 392 + ThirdParty/include/ruby/3.2/mac/ruby/io.h | 1022 + .../include/ruby/3.2/mac/ruby/io/buffer.h | 96 + .../include/ruby/3.2/mac/ruby/memory_view.h | 325 + .../include/ruby/3.2/mac/ruby/missing.h | 342 + ThirdParty/include/ruby/3.2/mac/ruby/onigmo.h | 952 + .../include/ruby/3.2/mac/ruby/oniguruma.h | 8 + ThirdParty/include/ruby/3.2/mac/ruby/ractor.h | 264 + ThirdParty/include/ruby/3.2/mac/ruby/random.h | 359 + ThirdParty/include/ruby/3.2/mac/ruby/re.h | 147 + ThirdParty/include/ruby/3.2/mac/ruby/regex.h | 43 + ThirdParty/include/ruby/3.2/mac/ruby/ruby.h | 312 + ThirdParty/include/ruby/3.2/mac/ruby/st.h | 197 + ThirdParty/include/ruby/3.2/mac/ruby/subst.h | 26 + ThirdParty/include/ruby/3.2/mac/ruby/thread.h | 235 + .../include/ruby/3.2/mac/ruby/thread_native.h | 205 + ThirdParty/include/ruby/3.2/mac/ruby/util.h | 228 + .../include/ruby/3.2/mac/ruby/version.h | 159 + ThirdParty/include/ruby/3.2/mac/ruby/vm.h | 54 + .../x86_64-darwin/rb_mjit_min_header-3.2.2.h | 25209 ++++++++++++++++ .../ruby/3.2/mac/x86_64-darwin/ruby/config.h | 462 + ThirdParty/include/ruby/3.2/win32_x64/ruby.h | 40 + .../include/ruby/3.2/win32_x64/ruby/assert.h | 234 + .../include/ruby/3.2/win32_x64/ruby/atomic.h | 890 + .../ruby/3.2/win32_x64/ruby/backward.h | 25 + .../3.2/win32_x64/ruby/backward/2/assume.h | 56 + .../win32_x64/ruby/backward/2/attributes.h | 165 + .../ruby/3.2/win32_x64/ruby/backward/2/bool.h | 36 + .../ruby/backward/2/gcc_version_since.h | 37 + .../3.2/win32_x64/ruby/backward/2/inttypes.h | 131 + .../3.2/win32_x64/ruby/backward/2/limits.h | 99 + .../3.2/win32_x64/ruby/backward/2/long_long.h | 73 + .../3.2/win32_x64/ruby/backward/2/r_cast.h | 32 + .../3.2/win32_x64/ruby/backward/2/rmodule.h | 36 + .../3.2/win32_x64/ruby/backward/2/stdalign.h | 30 + .../3.2/win32_x64/ruby/backward/2/stdarg.h | 69 + .../win32_x64/ruby/backward/cxxanyargs.hpp | 700 + .../include/ruby/3.2/win32_x64/ruby/config.h | 203 + .../include/ruby/3.2/win32_x64/ruby/defines.h | 116 + .../include/ruby/3.2/win32_x64/ruby/digest.h | 72 + .../ruby/3.2/win32_x64/ruby/encoding.h | 31 + .../ruby/3.2/win32_x64/ruby/fiber/scheduler.h | 374 + .../include/ruby/3.2/win32_x64/ruby/intern.h | 64 + .../ruby/3.2/win32_x64/ruby/internal/abi.h | 58 + .../3.2/win32_x64/ruby/internal/anyargs.h | 376 + .../3.2/win32_x64/ruby/internal/arithmetic.h | 39 + .../win32_x64/ruby/internal/arithmetic/char.h | 81 + .../ruby/internal/arithmetic/double.h | 72 + .../ruby/internal/arithmetic/fixnum.h | 60 + .../ruby/internal/arithmetic/gid_t.h | 41 + .../win32_x64/ruby/internal/arithmetic/int.h | 264 + .../ruby/internal/arithmetic/intptr_t.h | 74 + .../win32_x64/ruby/internal/arithmetic/long.h | 356 + .../ruby/internal/arithmetic/long_long.h | 135 + .../ruby/internal/arithmetic/mode_t.h | 41 + .../ruby/internal/arithmetic/off_t.h | 62 + .../ruby/internal/arithmetic/pid_t.h | 41 + .../ruby/internal/arithmetic/short.h | 113 + .../ruby/internal/arithmetic/size_t.h | 66 + .../ruby/internal/arithmetic/st_data_t.h | 75 + .../ruby/internal/arithmetic/uid_t.h | 41 + .../ruby/3.2/win32_x64/ruby/internal/assume.h | 87 + .../win32_x64/ruby/internal/attr/alloc_size.h | 32 + .../win32_x64/ruby/internal/attr/artificial.h | 46 + .../3.2/win32_x64/ruby/internal/attr/cold.h | 37 + .../3.2/win32_x64/ruby/internal/attr/const.h | 46 + .../win32_x64/ruby/internal/attr/constexpr.h | 84 + .../win32_x64/ruby/internal/attr/deprecated.h | 75 + .../ruby/internal/attr/diagnose_if.h | 42 + .../ruby/internal/attr/enum_extensibility.h | 32 + .../3.2/win32_x64/ruby/internal/attr/error.h | 32 + .../win32_x64/ruby/internal/attr/flag_enum.h | 33 + .../ruby/internal/attr/forceinline.h | 40 + .../3.2/win32_x64/ruby/internal/attr/format.h | 38 + .../ruby/internal/attr/maybe_unused.h | 38 + .../win32_x64/ruby/internal/attr/noalias.h | 69 + .../win32_x64/ruby/internal/attr/nodiscard.h | 45 + .../win32_x64/ruby/internal/attr/noexcept.h | 91 + .../win32_x64/ruby/internal/attr/noinline.h | 35 + .../win32_x64/ruby/internal/attr/nonnull.h | 34 + .../win32_x64/ruby/internal/attr/noreturn.h | 48 + .../3.2/win32_x64/ruby/internal/attr/pure.h | 43 + .../win32_x64/ruby/internal/attr/restrict.h | 44 + .../ruby/internal/attr/returns_nonnull.h | 37 + .../win32_x64/ruby/internal/attr/warning.h | 32 + .../win32_x64/ruby/internal/attr/weakref.h | 32 + .../ruby/3.2/win32_x64/ruby/internal/cast.h | 50 + .../3.2/win32_x64/ruby/internal/compiler_is.h | 45 + .../ruby/internal/compiler_is/apple.h | 40 + .../ruby/internal/compiler_is/clang.h | 37 + .../win32_x64/ruby/internal/compiler_is/gcc.h | 45 + .../ruby/internal/compiler_is/intel.h | 40 + .../ruby/internal/compiler_is/msvc.h | 56 + .../ruby/internal/compiler_is/sunpro.h | 54 + .../win32_x64/ruby/internal/compiler_since.h | 61 + .../ruby/3.2/win32_x64/ruby/internal/config.h | 155 + .../3.2/win32_x64/ruby/internal/constant_p.h | 38 + .../ruby/3.2/win32_x64/ruby/internal/core.h | 35 + .../3.2/win32_x64/ruby/internal/core/rarray.h | 585 + .../3.2/win32_x64/ruby/internal/core/rbasic.h | 158 + .../win32_x64/ruby/internal/core/rbignum.h | 80 + .../3.2/win32_x64/ruby/internal/core/rclass.h | 93 + .../3.2/win32_x64/ruby/internal/core/rdata.h | 386 + .../3.2/win32_x64/ruby/internal/core/rfile.h | 51 + .../3.2/win32_x64/ruby/internal/core/rhash.h | 144 + .../3.2/win32_x64/ruby/internal/core/rmatch.h | 146 + .../win32_x64/ruby/internal/core/robject.h | 176 + .../win32_x64/ruby/internal/core/rregexp.h | 168 + .../win32_x64/ruby/internal/core/rstring.h | 578 + .../win32_x64/ruby/internal/core/rstruct.h | 121 + .../win32_x64/ruby/internal/core/rtypeddata.h | 604 + .../ruby/3.2/win32_x64/ruby/internal/ctype.h | 545 + .../3.2/win32_x64/ruby/internal/dllexport.h | 112 + .../ruby/3.2/win32_x64/ruby/internal/dosish.h | 89 + .../ruby/internal/encoding/coderange.h | 202 + .../win32_x64/ruby/internal/encoding/ctype.h | 258 + .../ruby/internal/encoding/encoding.h | 1060 + .../ruby/internal/encoding/pathname.h | 184 + .../3.2/win32_x64/ruby/internal/encoding/re.h | 46 + .../ruby/internal/encoding/sprintf.h | 78 + .../win32_x64/ruby/internal/encoding/string.h | 346 + .../win32_x64/ruby/internal/encoding/symbol.h | 100 + .../ruby/internal/encoding/transcode.h | 562 + .../ruby/3.2/win32_x64/ruby/internal/error.h | 582 + .../ruby/3.2/win32_x64/ruby/internal/eval.h | 400 + .../ruby/3.2/win32_x64/ruby/internal/event.h | 154 + .../3.2/win32_x64/ruby/internal/fl_type.h | 948 + .../ruby/3.2/win32_x64/ruby/internal/gc.h | 57 + .../ruby/3.2/win32_x64/ruby/internal/glob.h | 113 + .../3.2/win32_x64/ruby/internal/globals.h | 209 + .../win32_x64/ruby/internal/has/attribute.h | 163 + .../3.2/win32_x64/ruby/internal/has/builtin.h | 117 + .../win32_x64/ruby/internal/has/c_attribute.h | 38 + .../ruby/internal/has/cpp_attribute.h | 86 + .../ruby/internal/has/declspec_attribute.h | 47 + .../win32_x64/ruby/internal/has/extension.h | 33 + .../3.2/win32_x64/ruby/internal/has/feature.h | 31 + .../3.2/win32_x64/ruby/internal/has/warning.h | 31 + .../win32_x64/ruby/internal/intern/array.h | 657 + .../win32_x64/ruby/internal/intern/bignum.h | 846 + .../win32_x64/ruby/internal/intern/class.h | 394 + .../win32_x64/ruby/internal/intern/compar.h | 62 + .../win32_x64/ruby/internal/intern/complex.h | 253 + .../3.2/win32_x64/ruby/internal/intern/cont.h | 282 + .../3.2/win32_x64/ruby/internal/intern/dir.h | 42 + .../3.2/win32_x64/ruby/internal/intern/enum.h | 73 + .../ruby/internal/intern/enumerator.h | 259 + .../win32_x64/ruby/internal/intern/error.h | 287 + .../3.2/win32_x64/ruby/internal/intern/eval.h | 222 + .../3.2/win32_x64/ruby/internal/intern/file.h | 213 + .../3.2/win32_x64/ruby/internal/intern/gc.h | 392 + .../3.2/win32_x64/ruby/internal/intern/hash.h | 320 + .../3.2/win32_x64/ruby/internal/intern/io.h | 661 + .../3.2/win32_x64/ruby/internal/intern/load.h | 218 + .../win32_x64/ruby/internal/intern/marshal.h | 112 + .../win32_x64/ruby/internal/intern/numeric.h | 208 + .../win32_x64/ruby/internal/intern/object.h | 501 + .../win32_x64/ruby/internal/intern/parse.h | 194 + .../3.2/win32_x64/ruby/internal/intern/proc.h | 353 + .../win32_x64/ruby/internal/intern/process.h | 273 + .../win32_x64/ruby/internal/intern/random.h | 116 + .../win32_x64/ruby/internal/intern/range.h | 89 + .../win32_x64/ruby/internal/intern/rational.h | 172 + .../3.2/win32_x64/ruby/internal/intern/re.h | 249 + .../3.2/win32_x64/ruby/internal/intern/ruby.h | 77 + .../win32_x64/ruby/internal/intern/select.h | 86 + .../ruby/internal/intern/select/largesize.h | 214 + .../ruby/internal/intern/select/posix.h | 144 + .../ruby/internal/intern/select/win32.h | 259 + .../win32_x64/ruby/internal/intern/signal.h | 152 + .../win32_x64/ruby/internal/intern/sprintf.h | 159 + .../win32_x64/ruby/internal/intern/string.h | 1757 ++ .../win32_x64/ruby/internal/intern/struct.h | 203 + .../win32_x64/ruby/internal/intern/thread.h | 492 + .../3.2/win32_x64/ruby/internal/intern/time.h | 161 + .../win32_x64/ruby/internal/intern/variable.h | 628 + .../3.2/win32_x64/ruby/internal/intern/vm.h | 431 + .../3.2/win32_x64/ruby/internal/interpreter.h | 304 + .../3.2/win32_x64/ruby/internal/iterator.h | 513 + .../ruby/3.2/win32_x64/ruby/internal/memory.h | 666 + .../ruby/3.2/win32_x64/ruby/internal/method.h | 205 + .../ruby/3.2/win32_x64/ruby/internal/module.h | 177 + .../ruby/3.2/win32_x64/ruby/internal/newobj.h | 195 + .../ruby/3.2/win32_x64/ruby/internal/rgengc.h | 443 + .../3.2/win32_x64/ruby/internal/scan_args.h | 534 + .../win32_x64/ruby/internal/special_consts.h | 362 + .../win32_x64/ruby/internal/static_assert.h | 77 + .../3.2/win32_x64/ruby/internal/stdalign.h | 135 + .../3.2/win32_x64/ruby/internal/stdbool.h | 51 + .../ruby/3.2/win32_x64/ruby/internal/symbol.h | 332 + .../ruby/3.2/win32_x64/ruby/internal/value.h | 133 + .../3.2/win32_x64/ruby/internal/value_type.h | 449 + .../3.2/win32_x64/ruby/internal/variable.h | 337 + .../win32_x64/ruby/internal/warning_push.h | 124 + .../3.2/win32_x64/ruby/internal/xmalloc.h | 392 + .../include/ruby/3.2/win32_x64/ruby/io.h | 1022 + .../ruby/3.2/win32_x64/ruby/io/buffer.h | 96 + .../ruby/3.2/win32_x64/ruby/memory_view.h | 325 + .../include/ruby/3.2/win32_x64/ruby/missing.h | 342 + .../include/ruby/3.2/win32_x64/ruby/onigmo.h | 952 + .../ruby/3.2/win32_x64/ruby/oniguruma.h | 8 + .../include/ruby/3.2/win32_x64/ruby/ractor.h | 264 + .../include/ruby/3.2/win32_x64/ruby/random.h | 359 + .../include/ruby/3.2/win32_x64/ruby/re.h | 147 + .../include/ruby/3.2/win32_x64/ruby/regex.h | 43 + .../include/ruby/3.2/win32_x64/ruby/ruby.h | 312 + .../include/ruby/3.2/win32_x64/ruby/st.h | 197 + .../include/ruby/3.2/win32_x64/ruby/subst.h | 26 + .../include/ruby/3.2/win32_x64/ruby/thread.h | 235 + .../ruby/3.2/win32_x64/ruby/thread_native.h | 205 + .../include/ruby/3.2/win32_x64/ruby/util.h | 228 + .../include/ruby/3.2/win32_x64/ruby/version.h | 159 + .../include/ruby/3.2/win32_x64/ruby/vm.h | 54 + .../include/ruby/3.2/win32_x64/ruby/win32.h | 827 + .../lib/mac/3.2/Ruby.framework/Resources | 1 + ThirdParty/lib/mac/3.2/Ruby.framework/Ruby | 1 + .../Versions/3.2.2/Resources/Info.plist | 16 + .../3.2/Ruby.framework/Versions/3.2.2/Ruby | Bin 0 -> 19027896 bytes .../Versions/3.2.2/libruby.3.2.2.dylib | 1 + .../Versions/3.2.2/libruby.3.2.dylib | 1 + .../Versions/3.2.2/libruby.dylib | 1 + .../mac/3.2/Ruby.framework/Versions/Current | 1 + ThirdParty/lib/win32/x64-ucrt-ruby320.lib | Bin 0 -> 619310 bytes sqlite3.sln | 12 + sqlite3.vcxproj | 89 + sqlite3_exports.txt | 1 + src/SQLiteCpp/Backup.cpp | 6 +- src/SQLiteCpp/Backup.h | 2 +- src/SQLiteCpp/Column.cpp | 4 +- src/SQLiteCpp/Column.h | 4 +- src/SQLiteCpp/Database.cpp | 14 +- src/SQLiteCpp/Database.h | 2 +- src/SQLiteCpp/Exception.cpp | 4 +- src/SQLiteCpp/ExecuteMany.h | 4 +- src/SQLiteCpp/SQLiteCpp.h | 12 +- src/SQLiteCpp/Savepoint.cpp | 8 +- src/SQLiteCpp/Savepoint.h | 2 +- src/SQLiteCpp/Statement.cpp | 14 +- src/SQLiteCpp/Statement.h | 4 +- src/SQLiteCpp/Transaction.cpp | 10 +- src/SQLiteCpp/Transaction.h | 2 +- src/SQLiteCpp/VariadicBind.h | 2 +- src/rbsqlite3.cpp | 10 +- 418 files changed, 131202 insertions(+), 53 deletions(-) create mode 100644 ThirdParty/include/ruby/3.2/mac/arm64-darwin/rb_mjit_min_header-3.2.2.h create mode 100644 ThirdParty/include/ruby/3.2/mac/arm64-darwin/ruby/config.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/assert.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/atomic.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/backward.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/backward/2/assume.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/backward/2/attributes.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/backward/2/bool.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/backward/2/gcc_version_since.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/backward/2/inttypes.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/backward/2/limits.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/backward/2/long_long.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/backward/2/r_cast.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/backward/2/rmodule.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/backward/2/stdalign.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/backward/2/stdarg.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/backward/cxxanyargs.hpp create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/config.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/defines.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/digest.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/encoding.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/fiber/scheduler.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/intern.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/abi.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/anyargs.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/char.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/double.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/fixnum.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/gid_t.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/int.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/intptr_t.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/long.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/long_long.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/mode_t.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/off_t.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/pid_t.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/short.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/size_t.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/st_data_t.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/uid_t.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/assume.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/alloc_size.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/artificial.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/cold.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/const.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/constexpr.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/deprecated.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/diagnose_if.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/enum_extensibility.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/error.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/flag_enum.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/forceinline.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/format.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/maybe_unused.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/noalias.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/nodiscard.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/noexcept.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/noinline.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/nonnull.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/noreturn.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/pure.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/restrict.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/returns_nonnull.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/warning.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/weakref.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/cast.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/apple.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/clang.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/gcc.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/intel.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/msvc.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/sunpro.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_since.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/config.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/constant_p.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/core.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rarray.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rbasic.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rbignum.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rclass.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rdata.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rfile.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rhash.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rmatch.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/core/robject.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rregexp.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rstring.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rstruct.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rtypeddata.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/ctype.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/dllexport.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/dosish.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/coderange.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/ctype.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/encoding.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/pathname.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/re.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/sprintf.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/string.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/symbol.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/transcode.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/error.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/eval.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/event.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/fl_type.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/gc.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/glob.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/globals.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/has/attribute.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/has/builtin.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/has/c_attribute.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/has/cpp_attribute.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/has/declspec_attribute.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/has/extension.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/has/feature.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/has/warning.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/array.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/bignum.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/class.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/compar.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/complex.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/cont.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/dir.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/enum.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/enumerator.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/error.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/eval.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/file.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/gc.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/hash.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/io.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/load.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/marshal.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/numeric.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/object.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/parse.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/proc.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/process.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/random.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/range.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/rational.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/re.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/ruby.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/select.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/select/largesize.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/select/posix.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/signal.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/sprintf.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/string.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/struct.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/thread.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/time.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/variable.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/vm.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/interpreter.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/iterator.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/memory.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/method.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/module.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/newobj.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/rgengc.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/scan_args.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/special_consts.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/static_assert.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/stdalign.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/stdbool.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/symbol.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/value.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/value_type.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/variable.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/warning_push.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/internal/xmalloc.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/io.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/io/buffer.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/memory_view.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/missing.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/onigmo.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/oniguruma.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/ractor.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/random.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/re.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/regex.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/ruby.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/st.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/subst.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/thread.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/thread_native.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/util.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/version.h create mode 100644 ThirdParty/include/ruby/3.2/mac/ruby/vm.h create mode 100644 ThirdParty/include/ruby/3.2/mac/x86_64-darwin/rb_mjit_min_header-3.2.2.h create mode 100644 ThirdParty/include/ruby/3.2/mac/x86_64-darwin/ruby/config.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/assert.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/atomic.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/backward.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/assume.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/attributes.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/bool.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/gcc_version_since.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/inttypes.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/limits.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/long_long.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/r_cast.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/rmodule.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/stdalign.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/stdarg.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/cxxanyargs.hpp create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/config.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/defines.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/digest.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/encoding.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/fiber/scheduler.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/intern.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/abi.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/anyargs.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/char.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/double.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/fixnum.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/gid_t.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/int.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/intptr_t.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/long.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/long_long.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/mode_t.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/off_t.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/pid_t.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/short.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/size_t.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/st_data_t.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/uid_t.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/assume.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/alloc_size.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/artificial.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/cold.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/const.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/constexpr.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/deprecated.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/diagnose_if.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/enum_extensibility.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/error.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/flag_enum.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/forceinline.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/format.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/maybe_unused.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/noalias.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/nodiscard.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/noexcept.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/noinline.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/nonnull.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/noreturn.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/pure.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/restrict.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/returns_nonnull.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/warning.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/weakref.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/cast.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/apple.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/clang.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/gcc.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/intel.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/msvc.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/sunpro.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_since.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/config.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/constant_p.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rarray.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rbasic.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rbignum.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rclass.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rdata.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rfile.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rhash.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rmatch.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/robject.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rregexp.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rstring.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rstruct.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rtypeddata.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/ctype.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/dllexport.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/dosish.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/coderange.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/ctype.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/encoding.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/pathname.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/re.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/sprintf.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/string.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/symbol.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/transcode.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/error.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/eval.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/event.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/fl_type.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/gc.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/glob.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/globals.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/attribute.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/builtin.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/c_attribute.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/cpp_attribute.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/declspec_attribute.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/extension.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/feature.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/warning.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/array.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/bignum.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/class.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/compar.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/complex.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/cont.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/dir.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/enum.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/enumerator.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/error.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/eval.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/file.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/gc.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/hash.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/io.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/load.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/marshal.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/numeric.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/object.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/parse.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/proc.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/process.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/random.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/range.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/rational.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/re.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/ruby.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/select.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/select/largesize.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/select/posix.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/select/win32.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/signal.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/sprintf.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/string.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/struct.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/thread.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/time.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/variable.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/vm.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/interpreter.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/iterator.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/memory.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/method.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/module.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/newobj.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/rgengc.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/scan_args.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/special_consts.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/static_assert.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/stdalign.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/stdbool.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/symbol.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/value.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/value_type.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/variable.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/warning_push.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/xmalloc.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/io.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/io/buffer.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/memory_view.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/missing.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/onigmo.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/oniguruma.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/ractor.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/random.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/re.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/regex.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/ruby.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/st.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/subst.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/thread.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/thread_native.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/util.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/version.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/vm.h create mode 100644 ThirdParty/include/ruby/3.2/win32_x64/ruby/win32.h create mode 100644 ThirdParty/lib/mac/3.2/Ruby.framework/Resources create mode 100644 ThirdParty/lib/mac/3.2/Ruby.framework/Ruby create mode 100644 ThirdParty/lib/mac/3.2/Ruby.framework/Versions/3.2.2/Resources/Info.plist create mode 100644 ThirdParty/lib/mac/3.2/Ruby.framework/Versions/3.2.2/Ruby create mode 100644 ThirdParty/lib/mac/3.2/Ruby.framework/Versions/3.2.2/libruby.3.2.2.dylib create mode 100644 ThirdParty/lib/mac/3.2/Ruby.framework/Versions/3.2.2/libruby.3.2.dylib create mode 100644 ThirdParty/lib/mac/3.2/Ruby.framework/Versions/3.2.2/libruby.dylib create mode 100644 ThirdParty/lib/mac/3.2/Ruby.framework/Versions/Current create mode 100644 ThirdParty/lib/win32/x64-ucrt-ruby320.lib diff --git a/RubyExtension.def b/RubyExtension.def index bb87b1f..11395c9 100644 --- a/RubyExtension.def +++ b/RubyExtension.def @@ -5,4 +5,5 @@ EXPORTS Init_sqlite3_20 Init_sqlite3_22 Init_sqlite3_25 - Init_sqlite3_27 \ No newline at end of file + Init_sqlite3_27 + Init_sqlite3_32 \ No newline at end of file diff --git a/ThirdParty/include/ruby/3.2/mac/arm64-darwin/rb_mjit_min_header-3.2.2.h b/ThirdParty/include/ruby/3.2/mac/arm64-darwin/rb_mjit_min_header-3.2.2.h new file mode 100644 index 0000000..a2e7e13 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/arm64-darwin/rb_mjit_min_header-3.2.2.h @@ -0,0 +1,24858 @@ +#ifdef __GNUC__ +# pragma GCC system_header +#endif + + + + +#define ALWAYS_INLINE(x) __attribute__ ((__always_inline__)) x + + + + + + + + + + +typedef __builtin_va_list va_list; +typedef __builtin_va_list __gnuc_va_list; + + + + +typedef signed char __int8_t; +typedef unsigned char __uint8_t; +typedef short __int16_t; +typedef unsigned short __uint16_t; +typedef int __int32_t; +typedef unsigned int __uint32_t; +typedef long long __int64_t; +typedef unsigned long long __uint64_t; +typedef long __darwin_intptr_t; +typedef unsigned int __darwin_natural_t; +typedef int __darwin_ct_rune_t; +typedef union { + char __mbstate8[128]; + long long _mbstateL; +} __mbstate_t; +typedef __mbstate_t __darwin_mbstate_t; +typedef long int __darwin_ptrdiff_t; +typedef long unsigned int __darwin_size_t; +typedef __builtin_va_list __darwin_va_list; +typedef int __darwin_wchar_t; +typedef __darwin_wchar_t __darwin_rune_t; +typedef int __darwin_wint_t; +typedef unsigned long __darwin_clock_t; +typedef __uint32_t __darwin_socklen_t; +typedef long __darwin_ssize_t; +typedef long __darwin_time_t; +typedef __int64_t __darwin_blkcnt_t; +typedef __int32_t __darwin_blksize_t; +typedef __int32_t __darwin_dev_t; +typedef unsigned int __darwin_fsblkcnt_t; +typedef unsigned int __darwin_fsfilcnt_t; +typedef __uint32_t __darwin_gid_t; +typedef __uint32_t __darwin_id_t; +typedef __uint64_t __darwin_ino64_t; +typedef __darwin_ino64_t __darwin_ino_t; +typedef __darwin_natural_t __darwin_mach_port_name_t; +typedef __darwin_mach_port_name_t __darwin_mach_port_t; +typedef __uint16_t __darwin_mode_t; +typedef __int64_t __darwin_off_t; +typedef __int32_t __darwin_pid_t; +typedef __uint32_t __darwin_sigset_t; +typedef __int32_t __darwin_suseconds_t; +typedef __uint32_t __darwin_uid_t; +typedef __uint32_t __darwin_useconds_t; +typedef unsigned char __darwin_uuid_t[16]; +typedef char __darwin_uuid_string_t[37]; +struct __darwin_pthread_handler_rec { + void (*__routine)(void *); + void *__arg; + struct __darwin_pthread_handler_rec *__next; +}; +struct _opaque_pthread_attr_t { + long __sig; + char __opaque[56]; +}; +struct _opaque_pthread_cond_t { + long __sig; + char __opaque[40]; +}; +struct _opaque_pthread_condattr_t { + long __sig; + char __opaque[8]; +}; +struct _opaque_pthread_mutex_t { + long __sig; + char __opaque[56]; +}; +struct _opaque_pthread_mutexattr_t { + long __sig; + char __opaque[8]; +}; +struct _opaque_pthread_once_t { + long __sig; + char __opaque[8]; +}; +struct _opaque_pthread_rwlock_t { + long __sig; + char __opaque[192]; +}; +struct _opaque_pthread_rwlockattr_t { + long __sig; + char __opaque[16]; +}; +struct _opaque_pthread_t { + long __sig; + struct __darwin_pthread_handler_rec *__cleanup_stack; + char __opaque[8176]; +}; +typedef struct _opaque_pthread_attr_t __darwin_pthread_attr_t; +typedef struct _opaque_pthread_cond_t __darwin_pthread_cond_t; +typedef struct _opaque_pthread_condattr_t __darwin_pthread_condattr_t; +typedef unsigned long __darwin_pthread_key_t; +typedef struct _opaque_pthread_mutex_t __darwin_pthread_mutex_t; +typedef struct _opaque_pthread_mutexattr_t __darwin_pthread_mutexattr_t; +typedef struct _opaque_pthread_once_t __darwin_pthread_once_t; +typedef struct _opaque_pthread_rwlock_t __darwin_pthread_rwlock_t; +typedef struct _opaque_pthread_rwlockattr_t __darwin_pthread_rwlockattr_t; +typedef struct _opaque_pthread_t *__darwin_pthread_t; +typedef int __darwin_nl_item; +typedef int __darwin_wctrans_t; +typedef __uint32_t __darwin_wctype_t; +typedef signed char int8_t; +typedef short int16_t; +typedef int int32_t; +typedef long long int64_t; + +typedef unsigned char u_int8_t; +typedef unsigned short u_int16_t; +typedef unsigned int u_int32_t; +typedef unsigned long long u_int64_t; +typedef int64_t register_t; + +typedef __darwin_intptr_t intptr_t; +typedef unsigned long uintptr_t; +typedef u_int64_t user_addr_t; +typedef u_int64_t user_size_t; +typedef int64_t user_ssize_t; +typedef int64_t user_long_t; +typedef u_int64_t user_ulong_t; +typedef int64_t user_time_t; +typedef int64_t user_off_t; +typedef u_int64_t syscall_arg_t; +typedef __darwin_va_list va_list; +typedef __darwin_size_t size_t; + +int renameat(int, const char *, int, const char *) __attribute__((availability(macosx,introduced=10.10))); +int renamex_np(const char *, const char *, unsigned int) __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))); +int renameatx_np(int, const char *, int, const char *, unsigned int) __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))); + +typedef __darwin_off_t fpos_t; +struct __sbuf { + unsigned char *_base; + int _size; +}; +struct __sFILEX; +typedef struct __sFILE { + unsigned char *_p; + int _r; + int _w; + short _flags; + short _file; + struct __sbuf _bf; + int _lbfsize; + void *_cookie; + int (* _Nullable _close)(void *); + int (* _Nullable _read) (void *, char *, int); + fpos_t (* _Nullable _seek) (void *, fpos_t, int); + int (* _Nullable _write)(void *, const char *, int); + struct __sbuf _ub; + struct __sFILEX *_extra; + int _ur; + unsigned char _ubuf[3]; + unsigned char _nbuf[1]; + struct __sbuf _lb; + int _blksize; + fpos_t _offset; +} FILE; + +extern FILE *__stdinp; +extern FILE *__stdoutp; +extern FILE *__stderrp; +void clearerr(FILE *); +int fclose(FILE *); +int feof(FILE *); +int ferror(FILE *); +int fflush(FILE *); +int fgetc(FILE *); +int fgetpos(FILE * __restrict__, fpos_t *); +char *fgets(char * __restrict__, int, FILE *); +FILE *fopen(const char * __restrict__ __filename, const char * __restrict__ __mode) __asm("_" "fopen" "$DARWIN_EXTSN"); +int fprintf(FILE * __restrict__, const char * __restrict__, ...) __attribute__((__format__ (__printf__, 2, 3))); +int fputc(int, FILE *); +int fputs(const char * __restrict__, FILE * __restrict__) __asm("_" "fputs" ); +size_t fread(void * __restrict__ __ptr, size_t __size, size_t __nitems, FILE * __restrict__ __stream); +FILE *freopen(const char * __restrict__, const char * __restrict__, + FILE * __restrict__) __asm("_" "freopen" ); +int fscanf(FILE * __restrict__, const char * __restrict__, ...) __attribute__((__format__ (__scanf__, 2, 3))); +int fseek(FILE *, long, int); +int fsetpos(FILE *, const fpos_t *); +long ftell(FILE *); +size_t fwrite(const void * __restrict__ __ptr, size_t __size, size_t __nitems, FILE * __restrict__ __stream) __asm("_" "fwrite" ); +int getc(FILE *); +int getchar(void); +__attribute__((__deprecated__("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of gets(3), it is highly recommended that you use fgets(3) instead."))) +char *gets(char *); +void perror(const char *) __attribute__((__cold__)); +int printf(const char * __restrict__, ...) __attribute__((__format__ (__printf__, 1, 2))); +int putc(int, FILE *); +int putchar(int); +int puts(const char *); +int remove(const char *); +int rename (const char *__old, const char *__new); +void rewind(FILE *); +int scanf(const char * __restrict__, ...) __attribute__((__format__ (__scanf__, 1, 2))); +void setbuf(FILE * __restrict__, char * __restrict__); +int setvbuf(FILE * __restrict__, char * __restrict__, int, size_t); +__attribute__((__availability__(swift, unavailable, message="Use snprintf instead."))) +__attribute__((__deprecated__("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead."))) +int sprintf(char * __restrict__, const char * __restrict__, ...) __attribute__((__format__ (__printf__, 2, 3))); +int sscanf(const char * __restrict__, const char * __restrict__, ...) __attribute__((__format__ (__scanf__, 2, 3))); +FILE *tmpfile(void); +__attribute__((__availability__(swift, unavailable, message="Use mkstemp(3) instead."))) +__attribute__((__deprecated__("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of tmpnam(3), it is highly recommended that you use mkstemp(3) instead."))) +char *tmpnam(char *); +int ungetc(int, FILE *); +int vfprintf(FILE * __restrict__, const char * __restrict__, va_list) __attribute__((__format__ (__printf__, 2, 0))); +int vprintf(const char * __restrict__, va_list) __attribute__((__format__ (__printf__, 1, 0))); +__attribute__((__availability__(swift, unavailable, message="Use vsnprintf instead."))) +__attribute__((__deprecated__("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use vsnprintf(3) instead."))) +int vsprintf(char * __restrict__, const char * __restrict__, va_list) __attribute__((__format__ (__printf__, 2, 0))); +char *ctermid(char *); +FILE *fdopen(int, const char *) __asm("_" "fdopen" "$DARWIN_EXTSN"); +int fileno(FILE *); +int pclose(FILE *) __attribute__((__availability__(swift, unavailable, message="Use posix_spawn APIs or NSTask instead. (On iOS, process spawning is unavailable.)"))); +FILE *popen(const char *, const char *) __asm("_" "popen" "$DARWIN_EXTSN") __attribute__((__availability__(swift, unavailable, message="Use posix_spawn APIs or NSTask instead. (On iOS, process spawning is unavailable.)"))); +int __srget(FILE *); +int __svfscanf(FILE *, const char *, va_list) __attribute__((__format__ (__scanf__, 2, 0))); +int __swbuf(int, FILE *); +inline __attribute__ ((__always_inline__)) int __sputc(int _c, FILE *_p) { + if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n')) + return (*_p->_p++ = _c); + else + return (__swbuf(_c, _p)); +} +void flockfile(FILE *); +int ftrylockfile(FILE *); +void funlockfile(FILE *); +int getc_unlocked(FILE *); +int getchar_unlocked(void); +int putc_unlocked(int, FILE *); +int putchar_unlocked(int); +int getw(FILE *); +int putw(int, FILE *); +__attribute__((__availability__(swift, unavailable, message="Use mkstemp(3) instead."))) +__attribute__((__deprecated__("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of tempnam(3), it is highly recommended that you use mkstemp(3) instead."))) +char *tempnam(const char *__dir, const char *__prefix) __asm("_" "tempnam" ); +typedef __darwin_off_t off_t; +int fseeko(FILE * __stream, off_t __offset, int __whence); +off_t ftello(FILE * __stream); +int snprintf(char * __restrict__ __str, size_t __size, const char * __restrict__ __format, ...) __attribute__((__format__ (__printf__, 3, 4))); +int vfscanf(FILE * __restrict__ __stream, const char * __restrict__ __format, va_list) __attribute__((__format__ (__scanf__, 2, 0))); +int vscanf(const char * __restrict__ __format, va_list) __attribute__((__format__ (__scanf__, 1, 0))); +int vsnprintf(char * __restrict__ __str, size_t __size, const char * __restrict__ __format, va_list) __attribute__((__format__ (__printf__, 3, 0))); +int vsscanf(const char * __restrict__ __str, const char * __restrict__ __format, va_list) __attribute__((__format__ (__scanf__, 2, 0))); +typedef __darwin_ssize_t ssize_t; +int dprintf(int, const char * __restrict__, ...) __attribute__((__format__ (__printf__, 2, 3))) __attribute__((availability(macosx,introduced=10.7))); +int vdprintf(int, const char * __restrict__, va_list) __attribute__((__format__ (__printf__, 2, 0))) __attribute__((availability(macosx,introduced=10.7))); +ssize_t getdelim(char ** __restrict__ __linep, size_t * __restrict__ __linecapp, int __delimiter, FILE * __restrict__ __stream) __attribute__((availability(macosx,introduced=10.7))); +ssize_t getline(char ** __restrict__ __linep, size_t * __restrict__ __linecapp, FILE * __restrict__ __stream) __attribute__((availability(macosx,introduced=10.7))); +FILE *fmemopen(void * __restrict__ __buf, size_t __size, const char * __restrict__ __mode) __attribute__((availability(macos,introduced=10.13))) __attribute__((availability(ios,introduced=11.0))) __attribute__((availability(tvos,introduced=11.0))) __attribute__((availability(watchos,introduced=4.0))); +FILE *open_memstream(char **__bufp, size_t *__sizep) __attribute__((availability(macos,introduced=10.13))) __attribute__((availability(ios,introduced=11.0))) __attribute__((availability(tvos,introduced=11.0))) __attribute__((availability(watchos,introduced=4.0))); +extern const int sys_nerr; +extern const char *const sys_errlist[]; +int asprintf(char ** __restrict__, const char * __restrict__, ...) __attribute__((__format__ (__printf__, 2, 3))); +char *ctermid_r(char *); +char *fgetln(FILE *, size_t *); +const char *fmtcheck(const char *, const char *) __attribute__((format_arg(2))); +int fpurge(FILE *); +void setbuffer(FILE *, char *, int); +int setlinebuf(FILE *); +int vasprintf(char ** __restrict__, const char * __restrict__, va_list) __attribute__((__format__ (__printf__, 2, 0))); +FILE *funopen(const void *, + int (* _Nullable)(void *, char *, int), + int (* _Nullable)(void *, const char *, int), + fpos_t (* _Nullable)(void *, fpos_t, int), + int (* _Nullable)(void *)); +extern int __sprintf_chk (char * __restrict__, int, size_t, + const char * __restrict__, ...); +extern int __snprintf_chk (char * __restrict__, size_t, int, size_t, + const char * __restrict__, ...); +extern int __vsprintf_chk (char * __restrict__, int, size_t, + const char * __restrict__, va_list); +extern int __vsnprintf_chk (char * __restrict__, size_t, int, size_t, + const char * __restrict__, va_list); +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; +typedef unsigned long long uint64_t; +typedef int8_t int_least8_t; +typedef int16_t int_least16_t; +typedef int32_t int_least32_t; +typedef int64_t int_least64_t; +typedef uint8_t uint_least8_t; +typedef uint16_t uint_least16_t; +typedef uint32_t uint_least32_t; +typedef uint64_t uint_least64_t; +typedef int8_t int_fast8_t; +typedef int16_t int_fast16_t; +typedef int32_t int_fast32_t; +typedef int64_t int_fast64_t; +typedef uint8_t uint_fast8_t; +typedef uint16_t uint_fast16_t; +typedef uint32_t uint_fast32_t; +typedef uint64_t uint_fast64_t; +typedef long int intmax_t; +typedef long unsigned int uintmax_t; +static inline +uint16_t +_OSSwapInt16( + uint16_t _data + ) +{ + return (uint16_t)(_data << 8 | _data >> 8); +} +static inline +uint32_t +_OSSwapInt32( + uint32_t _data + ) +{ + _data = __builtin_bswap32(_data); + return _data; +} +static inline +uint64_t +_OSSwapInt64( + uint64_t _data + ) +{ + return __builtin_bswap64(_data); +} +struct _OSUnalignedU16 { + volatile uint16_t __val; +} __attribute__((__packed__)); +struct _OSUnalignedU32 { + volatile uint32_t __val; +} __attribute__((__packed__)); +struct _OSUnalignedU64 { + volatile uint64_t __val; +} __attribute__((__packed__)); +static inline +uint16_t +_OSReadSwapInt16( + const volatile void * _base, + uintptr_t _offset + ) +{ + return _OSSwapInt16(((struct _OSUnalignedU16 *)((uintptr_t)_base + _offset))->__val); +} +static inline +uint32_t +_OSReadSwapInt32( + const volatile void * _base, + uintptr_t _offset + ) +{ + return _OSSwapInt32(((struct _OSUnalignedU32 *)((uintptr_t)_base + _offset))->__val); +} +static inline +uint64_t +_OSReadSwapInt64( + const volatile void * _base, + uintptr_t _offset + ) +{ + return _OSSwapInt64(((struct _OSUnalignedU64 *)((uintptr_t)_base + _offset))->__val); +} +static inline +void +_OSWriteSwapInt16( + volatile void * _base, + uintptr_t _offset, + uint16_t _data + ) +{ + ((struct _OSUnalignedU16 *)((uintptr_t)_base + _offset))->__val = _OSSwapInt16(_data); +} +static inline +void +_OSWriteSwapInt32( + volatile void * _base, + uintptr_t _offset, + uint32_t _data + ) +{ + ((struct _OSUnalignedU32 *)((uintptr_t)_base + _offset))->__val = _OSSwapInt32(_data); +} +static inline +void +_OSWriteSwapInt64( + volatile void * _base, + uintptr_t _offset, + uint64_t _data + ) +{ + ((struct _OSUnalignedU64 *)((uintptr_t)_base + _offset))->__val = _OSSwapInt64(_data); +} + +typedef unsigned char u_char; +typedef unsigned short u_short; +typedef unsigned int u_int; + +typedef unsigned long u_long; +typedef unsigned short ushort; +typedef unsigned int uint; +typedef u_int64_t u_quad_t; +typedef int64_t quad_t; +typedef quad_t * qaddr_t; +typedef char * caddr_t; + +typedef int32_t daddr_t; +typedef __darwin_dev_t dev_t; + +typedef u_int32_t fixpt_t; +typedef __darwin_blkcnt_t blkcnt_t; +typedef __darwin_blksize_t blksize_t; +typedef __darwin_gid_t gid_t; +typedef __uint32_t in_addr_t; +typedef __uint16_t in_port_t; +typedef __darwin_ino_t ino_t; +typedef __darwin_ino64_t ino64_t; +typedef __int32_t key_t; +typedef __darwin_mode_t mode_t; +typedef __uint16_t nlink_t; +typedef __darwin_id_t id_t; +typedef __darwin_pid_t pid_t; +typedef int32_t segsz_t; +typedef int32_t swblk_t; +typedef __darwin_uid_t uid_t; +typedef __darwin_clock_t clock_t; +typedef __darwin_time_t time_t; + +typedef __darwin_useconds_t useconds_t; +typedef __darwin_suseconds_t suseconds_t; +typedef __darwin_size_t rsize_t; +typedef int errno_t; +typedef struct fd_set { + __int32_t fds_bits[((((1024) % ((sizeof(__int32_t) * 8))) == 0) ? ((1024) / ((sizeof(__int32_t) * 8))) : (((1024) / ((sizeof(__int32_t) * 8))) + 1))]; +} fd_set; +int __darwin_check_fd_set_overflow(int, const void *, int) __attribute__((availability(macos,introduced=11.0))) __attribute__((availability(ios,introduced=14.0))) __attribute__((availability(tvos,introduced=14.0))) __attribute__((availability(watchos,introduced=7.0))); +inline __attribute__ ((__always_inline__)) int +__darwin_check_fd_set(int _a, const void *_b) +{ + if ((uintptr_t)&__darwin_check_fd_set_overflow != (uintptr_t) 0) { + return __darwin_check_fd_set_overflow(_a, _b, 1); + } else { + return 1; + } +} +inline __attribute__ ((__always_inline__)) int +__darwin_fd_isset(int _fd, const struct fd_set *_p) +{ + if (__darwin_check_fd_set(_fd, (const void *) _p)) { + return _p->fds_bits[(unsigned long)_fd / (sizeof(__int32_t) * 8)] & ((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % (sizeof(__int32_t) * 8)))); + } + return 0; +} +inline __attribute__ ((__always_inline__)) void +__darwin_fd_set(int _fd, struct fd_set *const _p) +{ + if (__darwin_check_fd_set(_fd, (const void *) _p)) { + (_p->fds_bits[(unsigned long)_fd / (sizeof(__int32_t) * 8)] |= ((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % (sizeof(__int32_t) * 8))))); + } +} +inline __attribute__ ((__always_inline__)) void +__darwin_fd_clr(int _fd, struct fd_set *const _p) +{ + if (__darwin_check_fd_set(_fd, (const void *) _p)) { + (_p->fds_bits[(unsigned long)_fd / (sizeof(__int32_t) * 8)] &= ~((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % (sizeof(__int32_t) * 8))))); + } +} + +typedef __int32_t fd_mask; +typedef __darwin_pthread_attr_t pthread_attr_t; +typedef __darwin_pthread_cond_t pthread_cond_t; +typedef __darwin_pthread_condattr_t pthread_condattr_t; +typedef __darwin_pthread_mutex_t pthread_mutex_t; +typedef __darwin_pthread_mutexattr_t pthread_mutexattr_t; +typedef __darwin_pthread_once_t pthread_once_t; +typedef __darwin_pthread_rwlock_t pthread_rwlock_t; +typedef __darwin_pthread_rwlockattr_t pthread_rwlockattr_t; +typedef __darwin_pthread_t pthread_t; +typedef __darwin_pthread_key_t pthread_key_t; +typedef __darwin_fsblkcnt_t fsblkcnt_t; +typedef __darwin_fsfilcnt_t fsfilcnt_t; +struct timespec +{ + __darwin_time_t tv_sec; + long tv_nsec; +}; +struct ostat { + __uint16_t st_dev; + ino_t st_ino; + mode_t st_mode; + nlink_t st_nlink; + __uint16_t st_uid; + __uint16_t st_gid; + __uint16_t st_rdev; + __int32_t st_size; + struct timespec st_atimespec; + struct timespec st_mtimespec; + struct timespec st_ctimespec; + __int32_t st_blksize; + __int32_t st_blocks; + __uint32_t st_flags; + __uint32_t st_gen; +}; +struct stat { dev_t st_dev; mode_t st_mode; nlink_t st_nlink; __darwin_ino64_t st_ino; uid_t st_uid; gid_t st_gid; dev_t st_rdev; struct timespec st_atimespec; struct timespec st_mtimespec; struct timespec st_ctimespec; struct timespec st_birthtimespec; off_t st_size; blkcnt_t st_blocks; blksize_t st_blksize; __uint32_t st_flags; __uint32_t st_gen; __int32_t st_lspare; __int64_t st_qspare[2]; }; +int chmod(const char *, mode_t) __asm("_" "chmod" ); +int fchmod(int, mode_t) __asm("_" "fchmod" ); +int fstat(int, struct stat *) __asm("_" "fstat" ); +int lstat(const char *, struct stat *) __asm("_" "lstat" ); +int mkdir(const char *, mode_t); +int mkfifo(const char *, mode_t); +int stat(const char *, struct stat *) __asm("_" "stat" ); +int mknod(const char *, mode_t, dev_t); +mode_t umask(mode_t); +int fchmodat(int, const char *, mode_t, int) __attribute__((availability(macosx,introduced=10.10))); +int fstatat(int, const char *, struct stat *, int) __asm("_" "fstatat" ) __attribute__((availability(macosx,introduced=10.10))); +int mkdirat(int, const char *, mode_t) __attribute__((availability(macosx,introduced=10.10))); +int mkfifoat(int, const char *, mode_t) __attribute__((availability(macos,introduced=13.0))) __attribute__((availability(ios,introduced=16.0))) __attribute__((availability(tvos,introduced=16.0))) __attribute__((availability(watchos,introduced=9.0))); +int mknodat(int, const char *, mode_t, dev_t) __attribute__((availability(macos,introduced=13.0))) __attribute__((availability(ios,introduced=16.0))) __attribute__((availability(tvos,introduced=16.0))) __attribute__((availability(watchos,introduced=9.0))); +int futimens(int __fd, const struct timespec __times[2]) __attribute__((availability(macos,introduced=10.13))) __attribute__((availability(ios,introduced=11.0))) __attribute__((availability(tvos,introduced=11.0))) __attribute__((availability(watchos,introduced=4.0))); +int utimensat(int __fd, const char *__path, const struct timespec __times[2], + int __flag) __attribute__((availability(macos,introduced=10.13))) __attribute__((availability(ios,introduced=11.0))) __attribute__((availability(tvos,introduced=11.0))) __attribute__((availability(watchos,introduced=4.0))); +struct _filesec; +typedef struct _filesec *filesec_t; +int chflags(const char *, __uint32_t); +int chmodx_np(const char *, filesec_t); +int fchflags(int, __uint32_t); +int fchmodx_np(int, filesec_t); +int fstatx_np(int, struct stat *, filesec_t) __asm("_" "fstatx_np" ); +int lchflags(const char *, __uint32_t) __attribute__((availability(macosx,introduced=10.5))); +int lchmod(const char *, mode_t) __attribute__((availability(macosx,introduced=10.5))); +int lstatx_np(const char *, struct stat *, filesec_t) __asm("_" "lstatx_np" ); +int mkdirx_np(const char *, filesec_t); +int mkfifox_np(const char *, filesec_t); +int statx_np(const char *, struct stat *, filesec_t) __asm("_" "statx_np" ); +int umaskx_np(filesec_t) __attribute__((availability(macosx,introduced=10.4,deprecated=10.6))); +typedef enum { + P_ALL, + P_PID, + P_PGID +} idtype_t; +typedef int sig_atomic_t; + +struct __darwin_arm_exception_state +{ + __uint32_t __exception; + __uint32_t __fsr; + __uint32_t __far; +}; +struct __darwin_arm_exception_state64 +{ + __uint64_t __far; + __uint32_t __esr; + __uint32_t __exception; +}; +struct __darwin_arm_thread_state +{ + __uint32_t __r[13]; + __uint32_t __sp; + __uint32_t __lr; + __uint32_t __pc; + __uint32_t __cpsr; +}; +struct __darwin_arm_thread_state64 +{ + __uint64_t __x[29]; + __uint64_t __fp; + __uint64_t __lr; + __uint64_t __sp; + __uint64_t __pc; + __uint32_t __cpsr; + __uint32_t __pad; +}; +struct __darwin_arm_vfp_state +{ + __uint32_t __r[64]; + __uint32_t __fpscr; +}; +struct __darwin_arm_neon_state64 +{ + __uint128_t __v[32]; + __uint32_t __fpsr; + __uint32_t __fpcr; +}; +struct __darwin_arm_neon_state +{ + __uint128_t __v[16]; + __uint32_t __fpsr; + __uint32_t __fpcr; +}; +struct __arm_pagein_state +{ + int __pagein_error; +}; +struct __arm_legacy_debug_state +{ + __uint32_t __bvr[16]; + __uint32_t __bcr[16]; + __uint32_t __wvr[16]; + __uint32_t __wcr[16]; +}; +struct __darwin_arm_debug_state32 +{ + __uint32_t __bvr[16]; + __uint32_t __bcr[16]; + __uint32_t __wvr[16]; + __uint32_t __wcr[16]; + __uint64_t __mdscr_el1; +}; +struct __darwin_arm_debug_state64 +{ + __uint64_t __bvr[16]; + __uint64_t __bcr[16]; + __uint64_t __wvr[16]; + __uint64_t __wcr[16]; + __uint64_t __mdscr_el1; +}; +struct __darwin_arm_cpmu_state64 +{ + __uint64_t __ctrs[16]; +}; +struct __darwin_mcontext32 +{ + struct __darwin_arm_exception_state __es; + struct __darwin_arm_thread_state __ss; + struct __darwin_arm_vfp_state __fs; +}; +struct __darwin_mcontext64 +{ + struct __darwin_arm_exception_state64 __es; + struct __darwin_arm_thread_state64 __ss; + struct __darwin_arm_neon_state64 __ns; +}; +typedef struct __darwin_mcontext64 *mcontext_t; +struct __darwin_sigaltstack +{ + void *ss_sp; + __darwin_size_t ss_size; + int ss_flags; +}; +typedef struct __darwin_sigaltstack stack_t; +struct __darwin_ucontext +{ + int uc_onstack; + __darwin_sigset_t uc_sigmask; + struct __darwin_sigaltstack uc_stack; + struct __darwin_ucontext *uc_link; + __darwin_size_t uc_mcsize; + struct __darwin_mcontext64 *uc_mcontext; + struct __darwin_mcontext64 __mcontext_data; +}; +typedef struct __darwin_ucontext ucontext_t; +typedef __darwin_sigset_t sigset_t; +union sigval { + int sival_int; + void *sival_ptr; +}; +struct sigevent { + int sigev_notify; + int sigev_signo; + union sigval sigev_value; + void (*sigev_notify_function)(union sigval); + pthread_attr_t *sigev_notify_attributes; +}; +typedef struct __siginfo { + int si_signo; + int si_errno; + int si_code; + pid_t si_pid; + uid_t si_uid; + int si_status; + void *si_addr; + union sigval si_value; + long si_band; + unsigned long __pad[7]; +} siginfo_t; +union __sigaction_u { + void (*__sa_handler)(int); + void (*__sa_sigaction)(int, struct __siginfo *, + void *); +}; +struct __sigaction { + union __sigaction_u __sigaction_u; + void (*sa_tramp)(void *, int, int, siginfo_t *, void *); + sigset_t sa_mask; + int sa_flags; +}; +struct sigaction { + union __sigaction_u __sigaction_u; + sigset_t sa_mask; + int sa_flags; +}; +typedef void (*sig_t)(int); +struct sigvec { + void (*sv_handler)(int); + int sv_mask; + int sv_flags; +}; +struct sigstack { + char *ss_sp; + int ss_onstack; +}; +void(*signal(int, void (*)(int)))(int); +struct timeval +{ + __darwin_time_t tv_sec; + __darwin_suseconds_t tv_usec; +}; +typedef __uint64_t rlim_t; +struct rusage { + struct timeval ru_utime; + struct timeval ru_stime; + long ru_maxrss; + long ru_ixrss; + long ru_idrss; + long ru_isrss; + long ru_minflt; + long ru_majflt; + long ru_nswap; + long ru_inblock; + long ru_oublock; + long ru_msgsnd; + long ru_msgrcv; + long ru_nsignals; + long ru_nvcsw; + long ru_nivcsw; +}; +typedef void *rusage_info_t; +struct rusage_info_v0 { + uint8_t ri_uuid[16]; + uint64_t ri_user_time; + uint64_t ri_system_time; + uint64_t ri_pkg_idle_wkups; + uint64_t ri_interrupt_wkups; + uint64_t ri_pageins; + uint64_t ri_wired_size; + uint64_t ri_resident_size; + uint64_t ri_phys_footprint; + uint64_t ri_proc_start_abstime; + uint64_t ri_proc_exit_abstime; +}; +struct rusage_info_v1 { + uint8_t ri_uuid[16]; + uint64_t ri_user_time; + uint64_t ri_system_time; + uint64_t ri_pkg_idle_wkups; + uint64_t ri_interrupt_wkups; + uint64_t ri_pageins; + uint64_t ri_wired_size; + uint64_t ri_resident_size; + uint64_t ri_phys_footprint; + uint64_t ri_proc_start_abstime; + uint64_t ri_proc_exit_abstime; + uint64_t ri_child_user_time; + uint64_t ri_child_system_time; + uint64_t ri_child_pkg_idle_wkups; + uint64_t ri_child_interrupt_wkups; + uint64_t ri_child_pageins; + uint64_t ri_child_elapsed_abstime; +}; +struct rusage_info_v2 { + uint8_t ri_uuid[16]; + uint64_t ri_user_time; + uint64_t ri_system_time; + uint64_t ri_pkg_idle_wkups; + uint64_t ri_interrupt_wkups; + uint64_t ri_pageins; + uint64_t ri_wired_size; + uint64_t ri_resident_size; + uint64_t ri_phys_footprint; + uint64_t ri_proc_start_abstime; + uint64_t ri_proc_exit_abstime; + uint64_t ri_child_user_time; + uint64_t ri_child_system_time; + uint64_t ri_child_pkg_idle_wkups; + uint64_t ri_child_interrupt_wkups; + uint64_t ri_child_pageins; + uint64_t ri_child_elapsed_abstime; + uint64_t ri_diskio_bytesread; + uint64_t ri_diskio_byteswritten; +}; +struct rusage_info_v3 { + uint8_t ri_uuid[16]; + uint64_t ri_user_time; + uint64_t ri_system_time; + uint64_t ri_pkg_idle_wkups; + uint64_t ri_interrupt_wkups; + uint64_t ri_pageins; + uint64_t ri_wired_size; + uint64_t ri_resident_size; + uint64_t ri_phys_footprint; + uint64_t ri_proc_start_abstime; + uint64_t ri_proc_exit_abstime; + uint64_t ri_child_user_time; + uint64_t ri_child_system_time; + uint64_t ri_child_pkg_idle_wkups; + uint64_t ri_child_interrupt_wkups; + uint64_t ri_child_pageins; + uint64_t ri_child_elapsed_abstime; + uint64_t ri_diskio_bytesread; + uint64_t ri_diskio_byteswritten; + uint64_t ri_cpu_time_qos_default; + uint64_t ri_cpu_time_qos_maintenance; + uint64_t ri_cpu_time_qos_background; + uint64_t ri_cpu_time_qos_utility; + uint64_t ri_cpu_time_qos_legacy; + uint64_t ri_cpu_time_qos_user_initiated; + uint64_t ri_cpu_time_qos_user_interactive; + uint64_t ri_billed_system_time; + uint64_t ri_serviced_system_time; +}; +struct rusage_info_v4 { + uint8_t ri_uuid[16]; + uint64_t ri_user_time; + uint64_t ri_system_time; + uint64_t ri_pkg_idle_wkups; + uint64_t ri_interrupt_wkups; + uint64_t ri_pageins; + uint64_t ri_wired_size; + uint64_t ri_resident_size; + uint64_t ri_phys_footprint; + uint64_t ri_proc_start_abstime; + uint64_t ri_proc_exit_abstime; + uint64_t ri_child_user_time; + uint64_t ri_child_system_time; + uint64_t ri_child_pkg_idle_wkups; + uint64_t ri_child_interrupt_wkups; + uint64_t ri_child_pageins; + uint64_t ri_child_elapsed_abstime; + uint64_t ri_diskio_bytesread; + uint64_t ri_diskio_byteswritten; + uint64_t ri_cpu_time_qos_default; + uint64_t ri_cpu_time_qos_maintenance; + uint64_t ri_cpu_time_qos_background; + uint64_t ri_cpu_time_qos_utility; + uint64_t ri_cpu_time_qos_legacy; + uint64_t ri_cpu_time_qos_user_initiated; + uint64_t ri_cpu_time_qos_user_interactive; + uint64_t ri_billed_system_time; + uint64_t ri_serviced_system_time; + uint64_t ri_logical_writes; + uint64_t ri_lifetime_max_phys_footprint; + uint64_t ri_instructions; + uint64_t ri_cycles; + uint64_t ri_billed_energy; + uint64_t ri_serviced_energy; + uint64_t ri_interval_max_phys_footprint; + uint64_t ri_runnable_time; +}; +struct rusage_info_v5 { + uint8_t ri_uuid[16]; + uint64_t ri_user_time; + uint64_t ri_system_time; + uint64_t ri_pkg_idle_wkups; + uint64_t ri_interrupt_wkups; + uint64_t ri_pageins; + uint64_t ri_wired_size; + uint64_t ri_resident_size; + uint64_t ri_phys_footprint; + uint64_t ri_proc_start_abstime; + uint64_t ri_proc_exit_abstime; + uint64_t ri_child_user_time; + uint64_t ri_child_system_time; + uint64_t ri_child_pkg_idle_wkups; + uint64_t ri_child_interrupt_wkups; + uint64_t ri_child_pageins; + uint64_t ri_child_elapsed_abstime; + uint64_t ri_diskio_bytesread; + uint64_t ri_diskio_byteswritten; + uint64_t ri_cpu_time_qos_default; + uint64_t ri_cpu_time_qos_maintenance; + uint64_t ri_cpu_time_qos_background; + uint64_t ri_cpu_time_qos_utility; + uint64_t ri_cpu_time_qos_legacy; + uint64_t ri_cpu_time_qos_user_initiated; + uint64_t ri_cpu_time_qos_user_interactive; + uint64_t ri_billed_system_time; + uint64_t ri_serviced_system_time; + uint64_t ri_logical_writes; + uint64_t ri_lifetime_max_phys_footprint; + uint64_t ri_instructions; + uint64_t ri_cycles; + uint64_t ri_billed_energy; + uint64_t ri_serviced_energy; + uint64_t ri_interval_max_phys_footprint; + uint64_t ri_runnable_time; + uint64_t ri_flags; +}; +struct rusage_info_v6 { + uint8_t ri_uuid[16]; + uint64_t ri_user_time; + uint64_t ri_system_time; + uint64_t ri_pkg_idle_wkups; + uint64_t ri_interrupt_wkups; + uint64_t ri_pageins; + uint64_t ri_wired_size; + uint64_t ri_resident_size; + uint64_t ri_phys_footprint; + uint64_t ri_proc_start_abstime; + uint64_t ri_proc_exit_abstime; + uint64_t ri_child_user_time; + uint64_t ri_child_system_time; + uint64_t ri_child_pkg_idle_wkups; + uint64_t ri_child_interrupt_wkups; + uint64_t ri_child_pageins; + uint64_t ri_child_elapsed_abstime; + uint64_t ri_diskio_bytesread; + uint64_t ri_diskio_byteswritten; + uint64_t ri_cpu_time_qos_default; + uint64_t ri_cpu_time_qos_maintenance; + uint64_t ri_cpu_time_qos_background; + uint64_t ri_cpu_time_qos_utility; + uint64_t ri_cpu_time_qos_legacy; + uint64_t ri_cpu_time_qos_user_initiated; + uint64_t ri_cpu_time_qos_user_interactive; + uint64_t ri_billed_system_time; + uint64_t ri_serviced_system_time; + uint64_t ri_logical_writes; + uint64_t ri_lifetime_max_phys_footprint; + uint64_t ri_instructions; + uint64_t ri_cycles; + uint64_t ri_billed_energy; + uint64_t ri_serviced_energy; + uint64_t ri_interval_max_phys_footprint; + uint64_t ri_runnable_time; + uint64_t ri_flags; + uint64_t ri_user_ptime; + uint64_t ri_system_ptime; + uint64_t ri_pinstructions; + uint64_t ri_pcycles; + uint64_t ri_energy_nj; + uint64_t ri_penergy_nj; + uint64_t ri_reserved[14]; +}; +typedef struct rusage_info_v6 rusage_info_current; +struct rlimit { + rlim_t rlim_cur; + rlim_t rlim_max; +}; +struct proc_rlimit_control_wakeupmon { + uint32_t wm_flags; + int32_t wm_rate; +}; +int getpriority(int, id_t); +int getiopolicy_np(int, int) __attribute__((availability(macosx,introduced=10.5))); +int getrlimit(int, struct rlimit *) __asm("_" "getrlimit" ); +int getrusage(int, struct rusage *); +int setpriority(int, id_t, int); +int setiopolicy_np(int, int, int) __attribute__((availability(macosx,introduced=10.5))); +int setrlimit(int, const struct rlimit *) __asm("_" "setrlimit" ); +union wait { + int w_status; + struct { + unsigned int w_Termsig:7, + w_Coredump:1, + w_Retcode:8, + w_Filler:16; + } w_T; + struct { + unsigned int w_Stopval:8, + w_Stopsig:8, + w_Filler:16; + } w_S; +}; +pid_t wait(int *) __asm("_" "wait" ); +pid_t waitpid(pid_t, int *, int) __asm("_" "waitpid" ); +int waitid(idtype_t, id_t, siginfo_t *, int) __asm("_" "waitid" ); +pid_t wait3(int *, int, struct rusage *); +pid_t wait4(pid_t, int *, int, struct rusage *); + +void *alloca(size_t); +typedef __darwin_ct_rune_t ct_rune_t; +typedef __darwin_rune_t rune_t; +typedef __darwin_wchar_t wchar_t; + +typedef struct { + int quot; + int rem; +} div_t; +typedef struct { + long quot; + long rem; +} ldiv_t; +typedef struct { + long long quot; + long long rem; +} lldiv_t; +extern int __mb_cur_max; +typedef unsigned long long malloc_type_id_t; +__attribute__((availability(macos,unavailable))) __attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(xros,unavailable))) void *malloc_type_malloc(size_t size, malloc_type_id_t type_id) __attribute__((__warn_unused_result__)) __attribute__((alloc_size(1))); +__attribute__((availability(macos,unavailable))) __attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(xros,unavailable))) void *malloc_type_calloc(size_t count, size_t size, malloc_type_id_t type_id) __attribute__((__warn_unused_result__)) __attribute__((alloc_size(1,2))); +__attribute__((availability(macos,unavailable))) __attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(xros,unavailable))) void malloc_type_free(void *ptr, malloc_type_id_t type_id); +__attribute__((availability(macos,unavailable))) __attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(xros,unavailable))) void *malloc_type_realloc(void *ptr, size_t size, malloc_type_id_t type_id) __attribute__((__warn_unused_result__)) __attribute__((alloc_size(2))); +__attribute__((availability(macos,unavailable))) __attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(xros,unavailable))) void *malloc_type_valloc(size_t size, malloc_type_id_t type_id) __attribute__((__warn_unused_result__)) __attribute__((alloc_size(1))); +__attribute__((availability(macos,unavailable))) __attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(xros,unavailable))) void *malloc_type_aligned_alloc(size_t alignment, size_t size, malloc_type_id_t type_id) __attribute__((__warn_unused_result__)) __attribute__((alloc_size(2))); +__attribute__((availability(macos,unavailable))) __attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(xros,unavailable))) int malloc_type_posix_memalign(void **memptr, size_t alignment, size_t size, malloc_type_id_t type_id) ; +typedef struct _malloc_zone_t malloc_zone_t; +__attribute__((availability(macos,unavailable))) __attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(xros,unavailable))) void *malloc_type_zone_malloc(malloc_zone_t *zone, size_t size, malloc_type_id_t type_id) __attribute__((__warn_unused_result__)) __attribute__((alloc_size(2))); +__attribute__((availability(macos,unavailable))) __attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(xros,unavailable))) void *malloc_type_zone_calloc(malloc_zone_t *zone, size_t count, size_t size, malloc_type_id_t type_id) __attribute__((__warn_unused_result__)) __attribute__((alloc_size(2,3))); +__attribute__((availability(macos,unavailable))) __attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(xros,unavailable))) void malloc_type_zone_free(malloc_zone_t *zone, void *ptr, malloc_type_id_t type_id); +__attribute__((availability(macos,unavailable))) __attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(xros,unavailable))) void *malloc_type_zone_realloc(malloc_zone_t *zone, void *ptr, size_t size, malloc_type_id_t type_id) __attribute__((__warn_unused_result__)) __attribute__((alloc_size(3))); +__attribute__((availability(macos,unavailable))) __attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(xros,unavailable))) void *malloc_type_zone_valloc(malloc_zone_t *zone, size_t size, malloc_type_id_t type_id) __attribute__((__warn_unused_result__)) __attribute__((alloc_size(2))); +__attribute__((availability(macos,unavailable))) __attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(xros,unavailable))) void *malloc_type_zone_memalign(malloc_zone_t *zone, size_t alignment, size_t size, malloc_type_id_t type_id) __attribute__((__warn_unused_result__)) __attribute__((alloc_size(3))); +void *malloc(size_t __size) __attribute__((__warn_unused_result__)) __attribute__((alloc_size(1))) ; +void *calloc(size_t __count, size_t __size) __attribute__((__warn_unused_result__)) __attribute__((alloc_size(1,2))) ; +void free(void *); +void *realloc(void *__ptr, size_t __size) __attribute__((__warn_unused_result__)) __attribute__((alloc_size(2))) ; +void *valloc(size_t) __attribute__((alloc_size(1))) ; +void *aligned_alloc(size_t __alignment, size_t __size) __attribute__((__warn_unused_result__)) __attribute__((alloc_size(2))) __attribute__((availability(macosx,introduced=10.15))) __attribute__((availability(ios,introduced=13.0))) __attribute__((availability(tvos,introduced=13.0))) __attribute__((availability(watchos,introduced=6.0))); +int posix_memalign(void **__memptr, size_t __alignment, size_t __size) __attribute__((availability(macosx,introduced=10.6))); +void abort(void) __attribute__((__cold__)) __attribute__((__noreturn__)); +int abs(int) __attribute__((__const__)); +int atexit(void (* _Nonnull)(void)); +double atof(const char *); +int atoi(const char *); +long atol(const char *); +long long + atoll(const char *); +void *bsearch(const void *__key, const void *__base, size_t __nel, + size_t __width, int (* _Nonnull __compar)(const void *, const void *)); +div_t div(int, int) __attribute__((__const__)); +void exit(int) __attribute__((__noreturn__)); +char *getenv(const char *); +long labs(long) __attribute__((__const__)); +ldiv_t ldiv(long, long) __attribute__((__const__)); +long long + llabs(long long); +lldiv_t lldiv(long long, long long); +int mblen(const char *__s, size_t __n); +size_t mbstowcs(wchar_t * __restrict__ , const char * __restrict__, size_t); +int mbtowc(wchar_t * __restrict__, const char * __restrict__, size_t); +void qsort(void *__base, size_t __nel, size_t __width, + int (* _Nonnull __compar)(const void *, const void *)); +int rand(void) __attribute__((__availability__(swift, unavailable, message="Use arc4random instead."))); +void srand(unsigned) __attribute__((__availability__(swift, unavailable, message="Use arc4random instead."))); +double strtod(const char *, char **) __asm("_" "strtod" ); +float strtof(const char *, char **) __asm("_" "strtof" ); +long strtol(const char *__str, char **__endptr, int __base); +long double + strtold(const char *, char **); +long long + strtoll(const char *__str, char **__endptr, int __base); +unsigned long + strtoul(const char *__str, char **__endptr, int __base); +unsigned long long + strtoull(const char *__str, char **__endptr, int __base); +__attribute__((__availability__(swift, unavailable, message="Use posix_spawn APIs or NSTask instead. (On iOS, process spawning is unavailable.)"))) +__attribute__((availability(macos,introduced=10.0))) __attribute__((availability(ios,unavailable))) +__attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))) +int system(const char *) __asm("_" "system" ); +size_t wcstombs(char * __restrict__, const wchar_t * __restrict__, size_t); +int wctomb(char *, wchar_t); +void _Exit(int) __attribute__((__noreturn__)); +long a64l(const char *); +double drand48(void); +char *ecvt(double, int, int *__restrict__, int *__restrict__); +double erand48(unsigned short[3]); +char *fcvt(double, int, int *__restrict__, int *__restrict__); +char *gcvt(double, int, char *); +int getsubopt(char **, char * const *, char **); +int grantpt(int); +char *initstate(unsigned, char *, size_t); +long jrand48(unsigned short[3]) __attribute__((__availability__(swift, unavailable, message="Use arc4random instead."))); +char *l64a(long); +void lcong48(unsigned short[7]); +long lrand48(void) __attribute__((__availability__(swift, unavailable, message="Use arc4random instead."))); +__attribute__((__deprecated__("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of mktemp(3), it is highly recommended that you use mkstemp(3) instead."))) +char *mktemp(char *); +int mkstemp(char *); +long mrand48(void) __attribute__((__availability__(swift, unavailable, message="Use arc4random instead."))); +long nrand48(unsigned short[3]) __attribute__((__availability__(swift, unavailable, message="Use arc4random instead."))); +int posix_openpt(int); +char *ptsname(int); +int ptsname_r(int fildes, char *buffer, size_t buflen) __attribute__((availability(macos,introduced=10.13.4))) __attribute__((availability(ios,introduced=11.3))) __attribute__((availability(tvos,introduced=11.3))) __attribute__((availability(watchos,introduced=4.3))); +int putenv(char *) __asm("_" "putenv" ); +long random(void) __attribute__((__availability__(swift, unavailable, message="Use arc4random instead."))); +int rand_r(unsigned *) __attribute__((__availability__(swift, unavailable, message="Use arc4random instead."))); +char *realpath(const char * __restrict__, char * __restrict__) __asm("_" "realpath" "$DARWIN_EXTSN"); +unsigned short + *seed48(unsigned short[3]); +int setenv(const char * __name, const char * __value, int __overwrite) __asm("_" "setenv" ); +void setkey(const char *) __asm("_" "setkey" ); +char *setstate(const char *); +void srand48(long); +void srandom(unsigned); +int unlockpt(int); +int unsetenv(const char *) __asm("_" "unsetenv" ); +uint32_t arc4random(void); +void arc4random_addrandom(unsigned char * , int ) + __attribute__((availability(macosx,introduced=10.0))) __attribute__((availability(macosx,deprecated=10.12,message="use arc4random_stir"))) + __attribute__((availability(ios,introduced=2.0))) __attribute__((availability(ios,deprecated=10.0,message="use arc4random_stir"))) + __attribute__((availability(tvos,introduced=2.0))) __attribute__((availability(tvos,deprecated=10.0,message="use arc4random_stir"))) + __attribute__((availability(watchos,introduced=1.0))) __attribute__((availability(watchos,deprecated=3.0,message="use arc4random_stir"))); +void arc4random_buf(void * __buf, size_t __nbytes) __attribute__((availability(macosx,introduced=10.7))); +void arc4random_stir(void); +uint32_t + arc4random_uniform(uint32_t __upper_bound) __attribute__((availability(macosx,introduced=10.7))); +int atexit_b(void (^ _Nonnull)(void)) __attribute__((availability(macosx,introduced=10.6))); +void *bsearch_b(const void *__key, const void *__base, size_t __nel, + size_t __width, int (^ _Nonnull __compar)(const void *, const void *) __attribute__((__noescape__))) + __attribute__((availability(macosx,introduced=10.6))); +char *cgetcap(char *, const char *, int); +int cgetclose(void); +int cgetent(char **, char **, const char *); +int cgetfirst(char **, char **); +int cgetmatch(const char *, const char *); +int cgetnext(char **, char **); +int cgetnum(char *, const char *, long *); +int cgetset(const char *); +int cgetstr(char *, const char *, char **); +int cgetustr(char *, const char *, char **); +int daemon(int, int) __asm("_" "daemon" ) __attribute__((availability(macosx,introduced=10.0,deprecated=10.5,message="Use posix_spawn APIs instead."))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +char *devname(dev_t, mode_t); +char *devname_r(dev_t, mode_t, char *buf, int len); +char *getbsize(int *, long *); +int getloadavg(double [], int); +const char + *getprogname(void); +void setprogname(const char *); +int heapsort(void *__base, size_t __nel, size_t __width, + int (* _Nonnull __compar)(const void *, const void *)); +int heapsort_b(void *__base, size_t __nel, size_t __width, + int (^ _Nonnull __compar)(const void *, const void *) __attribute__((__noescape__))) + __attribute__((availability(macosx,introduced=10.6))); +int mergesort(void *__base, size_t __nel, size_t __width, + int (* _Nonnull __compar)(const void *, const void *)); +int mergesort_b(void *__base, size_t __nel, size_t __width, + int (^ _Nonnull __compar)(const void *, const void *) __attribute__((__noescape__))) + __attribute__((availability(macosx,introduced=10.6))); +void psort(void *__base, size_t __nel, size_t __width, + int (* _Nonnull __compar)(const void *, const void *)) + __attribute__((availability(macosx,introduced=10.6))); +void psort_b(void *__base, size_t __nel, size_t __width, + int (^ _Nonnull __compar)(const void *, const void *) __attribute__((__noescape__))) + __attribute__((availability(macosx,introduced=10.6))); +void psort_r(void *__base, size_t __nel, size_t __width, void *, + int (* _Nonnull __compar)(void *, const void *, const void *)) + __attribute__((availability(macosx,introduced=10.6))); +void qsort_b(void *__base, size_t __nel, size_t __width, + int (^ _Nonnull __compar)(const void *, const void *) __attribute__((__noescape__))) + __attribute__((availability(macosx,introduced=10.6))); +void qsort_r(void *__base, size_t __nel, size_t __width, void *, + int (* _Nonnull __compar)(void *, const void *, const void *)); +int radixsort(const unsigned char **__base, int __nel, const unsigned char *__table, + unsigned __endbyte); +int rpmatch(const char *) + __attribute__((availability(macos,introduced=10.15))) __attribute__((availability(ios,introduced=13.0))) __attribute__((availability(tvos,introduced=13.0))) __attribute__((availability(watchos,introduced=6.0))); +int sradixsort(const unsigned char **__base, int __nel, const unsigned char *__table, + unsigned __endbyte); +void sranddev(void); +void srandomdev(void); +void *reallocf(void *__ptr, size_t __size) __attribute__((alloc_size(2))); +long long + strtonum(const char *__numstr, long long __minval, long long __maxval, const char **__errstrp) + __attribute__((availability(macos,introduced=11.0))) __attribute__((availability(ios,introduced=14.0))) __attribute__((availability(tvos,introduced=14.0))) __attribute__((availability(watchos,introduced=7.0))); +long long + strtoq(const char *__str, char **__endptr, int __base); +unsigned long long + strtouq(const char *__str, char **__endptr, int __base); +extern char *suboptarg; +typedef long int ptrdiff_t; +typedef long double max_align_t; + +void *memchr(const void *__s, int __c, size_t __n); +int memcmp(const void *__s1, const void *__s2, size_t __n); +void *memcpy(void *__dst, const void *__src, size_t __n); +void *memmove(void *__dst, const void *__src, size_t __len); +void *memset(void *__b, int __c, size_t __len); +char *strcat(char *__s1, const char *__s2); +char *strchr(const char *__s, int __c); +int strcmp(const char *__s1, const char *__s2); +int strcoll(const char *__s1, const char *__s2); +char *strcpy(char *__dst, const char *__src); +size_t strcspn(const char *__s, const char *__charset); +char *strerror(int __errnum) __asm("_" "strerror" ); +size_t strlen(const char *__s); +char *strncat(char *__s1, const char *__s2, size_t __n); +int strncmp(const char *__s1, const char *__s2, size_t __n); +char *strncpy(char *__dst, const char *__src, size_t __n); +char *strpbrk(const char *__s, const char *__charset); +char *strrchr(const char *__s, int __c); +size_t strspn(const char *__s, const char *__charset); +char *strstr(const char *__big, const char *__little); +char *strtok(char *__str, const char *__sep); +size_t strxfrm(char *__s1, const char *__s2, size_t __n); +char *strtok_r(char *__str, const char *__sep, char **__lasts); +int strerror_r(int __errnum, char *__strerrbuf, size_t __buflen); +char *strdup(const char *__s1); +void *memccpy(void *__dst, const void *__src, int __c, size_t __n); +char *stpcpy(char *__dst, const char *__src); +char *stpncpy(char *__dst, const char *__src, size_t __n) __attribute__((availability(macosx,introduced=10.7))); +char *strndup(const char *__s1, size_t __n) __attribute__((availability(macosx,introduced=10.7))); +size_t strnlen(const char *__s1, size_t __n) __attribute__((availability(macosx,introduced=10.7))); +char *strsignal(int __sig); +errno_t memset_s(void *__s, rsize_t __smax, int __c, rsize_t __n) __attribute__((availability(macosx,introduced=10.9))); +void *memmem(const void *__big, size_t __big_len, const void *__little, size_t __little_len) __attribute__((availability(macosx,introduced=10.7))); +void memset_pattern4(void *__b, const void *__pattern4, size_t __len) __attribute__((availability(macosx,introduced=10.5))); +void memset_pattern8(void *__b, const void *__pattern8, size_t __len) __attribute__((availability(macosx,introduced=10.5))); +void memset_pattern16(void *__b, const void *__pattern16, size_t __len) __attribute__((availability(macosx,introduced=10.5))); +char *strcasestr(const char *__big, const char *__little); +char *strnstr(const char *__big, const char *__little, size_t __len); +size_t strlcat(char *__dst, const char *__source, size_t __size); +size_t strlcpy(char *__dst, const char *__source, size_t __size); +void strmode(int __mode, char *__bp); +char *strsep(char **__stringp, const char *__delim); +void swab(const void * __restrict__, void * __restrict__, ssize_t); +__attribute__((availability(macosx,introduced=10.12.1))) __attribute__((availability(ios,introduced=10.1))) +__attribute__((availability(tvos,introduced=10.0.1))) __attribute__((availability(watchos,introduced=3.1))) +int timingsafe_bcmp(const void *__b1, const void *__b2, size_t __len); +__attribute__((availability(macosx,introduced=11.0))) __attribute__((availability(ios,introduced=14.0))) +__attribute__((availability(tvos,introduced=14.0))) __attribute__((availability(watchos,introduced=7.0))) +int strsignal_r(int __sig, char *__strsignalbuf, size_t __buflen); +int bcmp(const void *, const void *, size_t) ; +void bcopy(const void *, void *, size_t) ; +void bzero(void *, size_t) ; +char *index(const char *, int) ; +char *rindex(const char *, int) ; +int ffs(int); +int strcasecmp(const char *, const char *); +int strncasecmp(const char *, const char *, size_t); +int ffsl(long) __attribute__((availability(macosx,introduced=10.5))); +int ffsll(long long) __attribute__((availability(macosx,introduced=10.9))); +int fls(int) __attribute__((availability(macosx,introduced=10.5))); +int flsl(long) __attribute__((availability(macosx,introduced=10.5))); +int flsll(long long) __attribute__((availability(macosx,introduced=10.9))); +__attribute__((availability(macosx,introduced=10.4))) +extern intmax_t +imaxabs(intmax_t j); +typedef struct { + intmax_t quot; + intmax_t rem; +} imaxdiv_t; +__attribute__((availability(macosx,introduced=10.4))) +extern imaxdiv_t +imaxdiv(intmax_t __numer, intmax_t __denom); +__attribute__((availability(macosx,introduced=10.4))) +extern intmax_t +strtoimax(const char * __restrict__ __nptr, + char ** __restrict__ __endptr, + int __base); +__attribute__((availability(macosx,introduced=10.4))) +extern uintmax_t +strtoumax(const char * __restrict__ __nptr, + char ** __restrict__ __endptr, + int __base); +__attribute__((availability(macosx,introduced=10.4))) +extern intmax_t +wcstoimax(const wchar_t * __restrict__ __nptr, + wchar_t ** __restrict__ __endptr, + int __base); +__attribute__((availability(macosx,introduced=10.4))) +extern uintmax_t +wcstoumax(const wchar_t * __restrict__ __nptr, + wchar_t ** __restrict__ __endptr, + int __base); + +struct accessx_descriptor { + unsigned int ad_name_offset; + int ad_flags; + int ad_pad[2]; +}; +int getattrlistbulk(int, void *, void *, size_t, uint64_t) __attribute__((availability(macosx,introduced=10.10))); +int getattrlistat(int, const char *, void *, void *, size_t, unsigned long) __attribute__((availability(macosx,introduced=10.10))); +int setattrlistat(int, const char *, void *, void *, size_t, uint32_t) __attribute__((availability(macosx,introduced=10.13))) __attribute__((availability(ios,introduced=11.0))) __attribute__((availability(tvos,introduced=11.0))) __attribute__((availability(watchos,introduced=4.0))); +ssize_t freadlink(int, char * __restrict__, size_t) __attribute__((availability(macos,introduced=13.0))) __attribute__((availability(ios,introduced=16.0))) __attribute__((availability(tvos,introduced=16.0))) __attribute__((availability(watchos,introduced=9.0))); +int faccessat(int, const char *, int, int) __attribute__((availability(macosx,introduced=10.10))); +int fchownat(int, const char *, uid_t, gid_t, int) __attribute__((availability(macosx,introduced=10.10))); +int linkat(int, const char *, int, const char *, int) __attribute__((availability(macosx,introduced=10.10))); +ssize_t readlinkat(int, const char *, char *, size_t) __attribute__((availability(macosx,introduced=10.10))); +int symlinkat(const char *, int, const char *) __attribute__((availability(macosx,introduced=10.10))); +int unlinkat(int, const char *, int) __attribute__((availability(macosx,introduced=10.10))); +void _exit(int) __attribute__((__noreturn__)); +int access(const char *, int); +unsigned int + alarm(unsigned int); +int chdir(const char *); +int chown(const char *, uid_t, gid_t); +int close(int) __asm("_" "close" ); +int dup(int); +int dup2(int, int); +int execl(const char * __path, const char * __arg0, ...) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +int execle(const char * __path, const char * __arg0, ...) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +int execlp(const char * __file, const char * __arg0, ...) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +int execv(const char * __path, char * const * __argv) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +int execve(const char * __file, char * const * __argv, char * const * __envp) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +int execvp(const char * __file, char * const * __argv) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +pid_t fork(void) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +long fpathconf(int, int); +char *getcwd(char *, size_t); +gid_t getegid(void); +uid_t geteuid(void); +gid_t getgid(void); +int getgroups(int, gid_t []) __asm("_" "getgroups" "$DARWIN_EXTSN"); +char *getlogin(void); +pid_t getpgrp(void); +pid_t getpid(void); +pid_t getppid(void); +uid_t getuid(void); +int isatty(int); +int link(const char *, const char *); +off_t lseek(int, off_t, int); +long pathconf(const char *, int); +int pause(void) __asm("_" "pause" ); +int pipe(int [2]); +ssize_t read(int, void *, size_t) __asm("_" "read" ); +int rmdir(const char *); +int setgid(gid_t); +int setpgid(pid_t, pid_t); +pid_t setsid(void); +int setuid(uid_t); +unsigned int + sleep(unsigned int) __asm("_" "sleep" ); +long sysconf(int); +pid_t tcgetpgrp(int); +int tcsetpgrp(int, pid_t); +char *ttyname(int); +int ttyname_r(int, char *, size_t) __asm("_" "ttyname_r" ); +int unlink(const char *); +ssize_t write(int __fd, const void * __buf, size_t __nbyte) __asm("_" "write" ); +size_t confstr(int, char *, size_t) __asm("_" "confstr" ); +int getopt(int, char * const [], const char *) __asm("_" "getopt" ); +extern char *optarg; +extern int optind, opterr, optopt; +__attribute__((__deprecated__)) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))) +void *brk(const void *); +int chroot(const char *) ; +char *crypt(const char *, const char *); +void encrypt(char *, int) __asm("_" "encrypt" ); +int fchdir(int); +long gethostid(void); +pid_t getpgid(pid_t); +pid_t getsid(pid_t); +int getdtablesize(void) ; +int getpagesize(void) __attribute__((__const__)) ; +char *getpass(const char *) ; +char *getwd(char *) ; +int lchown(const char *, uid_t, gid_t) __asm("_" "lchown" ); +int lockf(int, int, off_t) __asm("_" "lockf" ); +int nice(int) __asm("_" "nice" ); +ssize_t pread(int __fd, void * __buf, size_t __nbyte, off_t __offset) __asm("_" "pread" ); +ssize_t pwrite(int __fd, const void * __buf, size_t __nbyte, off_t __offset) __asm("_" "pwrite" ); +__attribute__((__deprecated__)) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))) +void *sbrk(int); +pid_t setpgrp(void) __asm("_" "setpgrp" ); +int setregid(gid_t, gid_t) __asm("_" "setregid" ); +int setreuid(uid_t, uid_t) __asm("_" "setreuid" ); +void swab(const void * __restrict__, void * __restrict__, ssize_t); +void sync(void); +int truncate(const char *, off_t); +useconds_t ualarm(useconds_t, useconds_t); +int usleep(useconds_t) __asm("_" "usleep" ); +__attribute__((__deprecated__("Use posix_spawn or fork"))) +pid_t fork(void) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +int fsync(int) __asm("_" "fsync" ); +int ftruncate(int, off_t); +int getlogin_r(char *, size_t); +int fchown(int, uid_t, gid_t); +int gethostname(char *, size_t); +ssize_t readlink(const char * __restrict__, char * __restrict__, size_t); +int setegid(gid_t); +int seteuid(uid_t); +int symlink(const char *, const char *); +int pselect(int, fd_set * __restrict__, fd_set * __restrict__, + fd_set * __restrict__, const struct timespec * __restrict__, + const sigset_t * __restrict__) +__asm("_" "pselect" "$DARWIN_EXTSN" ) +; +int select(int, fd_set * __restrict__, fd_set * __restrict__, + fd_set * __restrict__, struct timeval * __restrict__) +__asm("_" "select" "$DARWIN_EXTSN" ) +; +typedef __darwin_uuid_t uuid_t; +void _Exit(int) __attribute__((__noreturn__)); +int accessx_np(const struct accessx_descriptor *, size_t, int *, uid_t); +int acct(const char *); +int add_profil(char *, size_t, unsigned long, unsigned int) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +void endusershell(void); +int execvP(const char * __file, const char * __searchpath, char * const * __argv) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +char *fflagstostr(unsigned long); +int getdomainname(char *, int); +int getgrouplist(const char *, int, int *, int *); +int gethostuuid(uuid_t, const struct timespec *) __attribute__((availability(macos,introduced=10.5))) __attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))); +mode_t getmode(const void *, mode_t); +int getpeereid(int, uid_t *, gid_t *); +int getsgroups_np(int *, uuid_t); +char *getusershell(void); +int getwgroups_np(int *, uuid_t); +int initgroups(const char *, int); +int issetugid(void); +char *mkdtemp(char *); +int mknod(const char *, mode_t, dev_t); +int mkpath_np(const char *path, mode_t omode) __attribute__((availability(macosx,introduced=10.8))); +int mkpathat_np(int dfd, const char *path, mode_t omode) + __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) + __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))); +int mkstemp(char *); +int mkstemps(char *, int); +char *mktemp(char *); +int mkostemp(char *path, int oflags) + __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) + __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))); +int mkostemps(char *path, int slen, int oflags) + __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) + __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))); +int mkstemp_dprotected_np(char *path, int dpclass, int dpflags) + __attribute__((availability(macosx,unavailable))) __attribute__((availability(ios,introduced=10.0))) + __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))); +char *mkdtempat_np(int dfd, char *path) + __attribute__((availability(macosx,introduced=10.13))) __attribute__((availability(ios,introduced=11.0))) + __attribute__((availability(tvos,introduced=11.0))) __attribute__((availability(watchos,introduced=4.0))); +int mkstempsat_np(int dfd, char *path, int slen) + __attribute__((availability(macosx,introduced=10.13))) __attribute__((availability(ios,introduced=11.0))) + __attribute__((availability(tvos,introduced=11.0))) __attribute__((availability(watchos,introduced=4.0))); +int mkostempsat_np(int dfd, char *path, int slen, int oflags) + __attribute__((availability(macosx,introduced=10.13))) __attribute__((availability(ios,introduced=11.0))) + __attribute__((availability(tvos,introduced=11.0))) __attribute__((availability(watchos,introduced=4.0))); +int nfssvc(int, void *); +int profil(char *, size_t, unsigned long, unsigned int); +__attribute__((__deprecated__("Use of per-thread security contexts is error-prone and discouraged."))) +int pthread_setugid_np(uid_t, gid_t); +int pthread_getugid_np( uid_t *, gid_t *); +int reboot(int); +int revoke(const char *); +__attribute__((__deprecated__)) int rcmd(char **, int, const char *, const char *, const char *, int *); +__attribute__((__deprecated__)) int rcmd_af(char **, int, const char *, const char *, const char *, int *, + int); +__attribute__((__deprecated__)) int rresvport(int *); +__attribute__((__deprecated__)) int rresvport_af(int *, int); +__attribute__((__deprecated__)) int iruserok(unsigned long, int, const char *, const char *); +__attribute__((__deprecated__)) int iruserok_sa(const void *, int, int, const char *, const char *); +__attribute__((__deprecated__)) int ruserok(const char *, int, const char *, const char *); +int setdomainname(const char *, int); +int setgroups(int, const gid_t *); +void sethostid(long); +int sethostname(const char *, int); +void setkey(const char *) __asm("_" "setkey" ); +int setlogin(const char *); +void *setmode(const char *) __asm("_" "setmode" ); +int setrgid(gid_t); +int setruid(uid_t); +int setsgroups_np(int, const uuid_t); +void setusershell(void); +int setwgroups_np(int, const uuid_t); +int strtofflags(char **, unsigned long *, unsigned long *); +int swapon(const char *); +int ttyslot(void); +int undelete(const char *); +int unwhiteout(const char *); +void *valloc(size_t); +__attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))) +__attribute__((availability(ios,deprecated=10.0,message="syscall(2) is unsupported; " "please switch to a supported interface. For SYS_kdebug_trace use kdebug_signpost()."))) +__attribute__((availability(macosx,deprecated=10.12,message="syscall(2) is unsupported; " "please switch to a supported interface. For SYS_kdebug_trace use kdebug_signpost()."))) +int syscall(int, ...); +extern char *suboptarg; +int getsubopt(char **, char * const *, char **); +int fgetattrlist(int,void*,void*,size_t,unsigned int) __attribute__((availability(macosx,introduced=10.6))); +int fsetattrlist(int,void*,void*,size_t,unsigned int) __attribute__((availability(macosx,introduced=10.6))); +int getattrlist(const char*,void*,void*,size_t,unsigned int) __asm("_" "getattrlist" ); +int setattrlist(const char*,void*,void*,size_t,unsigned int) __asm("_" "setattrlist" ); +int exchangedata(const char*,const char*,unsigned int) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +int getdirentriesattr(int,void*,void*,size_t,unsigned int*,unsigned int*,unsigned int*,unsigned int) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +struct fssearchblock; +struct searchstate; +int searchfs(const char *, struct fssearchblock *, unsigned long *, unsigned int, unsigned int, struct searchstate *) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +int fsctl(const char *,unsigned long,void*,unsigned int); +int ffsctl(int,unsigned long,void*,unsigned int) __attribute__((availability(macosx,introduced=10.6))); +int fsync_volume_np(int, int) __attribute__((availability(macosx,introduced=10.8))); +int sync_volume_np(const char *, int) __attribute__((availability(macosx,introduced=10.8))); +extern int optreset; + + + + + + + + + + + +__attribute__((__warn_unused_result__)) +__attribute__((__malloc__)) +__attribute__((__returns_nonnull__)) +__attribute__((__alloc_size__ (1))) +void *ruby_xmalloc(size_t size) +; +__attribute__((__warn_unused_result__)) +__attribute__((__malloc__)) +__attribute__((__returns_nonnull__)) +__attribute__((__alloc_size__ (1,2))) +void *ruby_xmalloc2(size_t nelems, size_t elemsiz) +; +__attribute__((__warn_unused_result__)) +__attribute__((__malloc__)) +__attribute__((__returns_nonnull__)) +__attribute__((__alloc_size__ (1,2))) +void *ruby_xcalloc(size_t nelems, size_t elemsiz) +; +__attribute__((__warn_unused_result__)) +__attribute__((__returns_nonnull__)) +__attribute__((__alloc_size__ (2))) +void *ruby_xrealloc(void *ptr, size_t newsiz) +; +__attribute__((__warn_unused_result__)) +__attribute__((__returns_nonnull__)) +__attribute__((__alloc_size__ (2,3))) +void *ruby_xrealloc2(void *ptr, size_t newelems, size_t newsiz) +; +void ruby_xfree(void *ptr) +; + + + + + + + + + +#define RBIMPL_ATTR_COLD_H +#define RBIMPL_ATTR_COLD() __attribute__((__cold__)) + + + + + + + + + + + + + +__declspec(noreturn) +__attribute__((__cold__)) +void rb_assert_failure(const char *file, int line, const char *name, const char *expr); + +#define COLDFUNC RBIMPL_ATTR_COLD() + + + + + + + + + + typedef float float_t; + typedef double double_t; +extern int __math_errhandling(void); +extern int __fpclassifyf(float); +extern int __fpclassifyd(double); +extern int __fpclassifyl(long double); +inline __attribute__ ((__always_inline__)) int __inline_isfinitef(float); +inline __attribute__ ((__always_inline__)) int __inline_isfinited(double); +inline __attribute__ ((__always_inline__)) int __inline_isfinitel(long double); +inline __attribute__ ((__always_inline__)) int __inline_isinff(float); +inline __attribute__ ((__always_inline__)) int __inline_isinfd(double); +inline __attribute__ ((__always_inline__)) int __inline_isinfl(long double); +inline __attribute__ ((__always_inline__)) int __inline_isnanf(float); +inline __attribute__ ((__always_inline__)) int __inline_isnand(double); +inline __attribute__ ((__always_inline__)) int __inline_isnanl(long double); +inline __attribute__ ((__always_inline__)) int __inline_isnormalf(float); +inline __attribute__ ((__always_inline__)) int __inline_isnormald(double); +inline __attribute__ ((__always_inline__)) int __inline_isnormall(long double); +inline __attribute__ ((__always_inline__)) int __inline_signbitf(float); +inline __attribute__ ((__always_inline__)) int __inline_signbitd(double); +inline __attribute__ ((__always_inline__)) int __inline_signbitl(long double); +inline __attribute__ ((__always_inline__)) int __inline_isfinitef(float __x) { + return __x == __x && __builtin_fabsf(__x) != __builtin_inff(); +} +inline __attribute__ ((__always_inline__)) int __inline_isfinited(double __x) { + return __x == __x && __builtin_fabs(__x) != __builtin_inf(); +} +inline __attribute__ ((__always_inline__)) int __inline_isfinitel(long double __x) { + return __x == __x && __builtin_fabsl(__x) != __builtin_infl(); +} +inline __attribute__ ((__always_inline__)) int __inline_isinff(float __x) { + return __builtin_fabsf(__x) == __builtin_inff(); +} +inline __attribute__ ((__always_inline__)) int __inline_isinfd(double __x) { + return __builtin_fabs(__x) == __builtin_inf(); +} +inline __attribute__ ((__always_inline__)) int __inline_isinfl(long double __x) { + return __builtin_fabsl(__x) == __builtin_infl(); +} +inline __attribute__ ((__always_inline__)) int __inline_isnanf(float __x) { + return __x != __x; +} +inline __attribute__ ((__always_inline__)) int __inline_isnand(double __x) { + return __x != __x; +} +inline __attribute__ ((__always_inline__)) int __inline_isnanl(long double __x) { + return __x != __x; +} +inline __attribute__ ((__always_inline__)) int __inline_signbitf(float __x) { + union { float __f; unsigned int __u; } __u; + __u.__f = __x; + return (int)(__u.__u >> 31); +} +inline __attribute__ ((__always_inline__)) int __inline_signbitd(double __x) { + union { double __f; unsigned long long __u; } __u; + __u.__f = __x; + return (int)(__u.__u >> 63); +} +inline __attribute__ ((__always_inline__)) int __inline_signbitl(long double __x) { + union { long double __f; unsigned long long __u;} __u; + __u.__f = __x; + return (int)(__u.__u >> 63); +} +inline __attribute__ ((__always_inline__)) int __inline_isnormalf(float __x) { + return __inline_isfinitef(__x) && __builtin_fabsf(__x) >= 1.17549435e-38F; +} +inline __attribute__ ((__always_inline__)) int __inline_isnormald(double __x) { + return __inline_isfinited(__x) && __builtin_fabs(__x) >= 2.2250738585072014e-308; +} +inline __attribute__ ((__always_inline__)) int __inline_isnormall(long double __x) { + return __inline_isfinitel(__x) && __builtin_fabsl(__x) >= 2.2250738585072014e-308L; +} +extern float acosf(float); +extern double acos(double); +extern long double acosl(long double); +extern float asinf(float); +extern double asin(double); +extern long double asinl(long double); +extern float atanf(float); +extern double atan(double); +extern long double atanl(long double); +extern float atan2f(float, float); +extern double atan2(double, double); +extern long double atan2l(long double, long double); +extern float cosf(float); +extern double cos(double); +extern long double cosl(long double); +extern float sinf(float); +extern double sin(double); +extern long double sinl(long double); +extern float tanf(float); +extern double tan(double); +extern long double tanl(long double); +extern float acoshf(float); +extern double acosh(double); +extern long double acoshl(long double); +extern float asinhf(float); +extern double asinh(double); +extern long double asinhl(long double); +extern float atanhf(float); +extern double atanh(double); +extern long double atanhl(long double); +extern float coshf(float); +extern double cosh(double); +extern long double coshl(long double); +extern float sinhf(float); +extern double sinh(double); +extern long double sinhl(long double); +extern float tanhf(float); +extern double tanh(double); +extern long double tanhl(long double); +extern float expf(float); +extern double exp(double); +extern long double expl(long double); +extern float exp2f(float); +extern double exp2(double); +extern long double exp2l(long double); +extern float expm1f(float); +extern double expm1(double); +extern long double expm1l(long double); +extern float logf(float); +extern double log(double); +extern long double logl(long double); +extern float log10f(float); +extern double log10(double); +extern long double log10l(long double); +extern float log2f(float); +extern double log2(double); +extern long double log2l(long double); +extern float log1pf(float); +extern double log1p(double); +extern long double log1pl(long double); +extern float logbf(float); +extern double logb(double); +extern long double logbl(long double); +extern float modff(float, float *); +extern double modf(double, double *); +extern long double modfl(long double, long double *); +extern float ldexpf(float, int); +extern double ldexp(double, int); +extern long double ldexpl(long double, int); +extern float frexpf(float, int *); +extern double frexp(double, int *); +extern long double frexpl(long double, int *); +extern int ilogbf(float); +extern int ilogb(double); +extern int ilogbl(long double); +extern float scalbnf(float, int); +extern double scalbn(double, int); +extern long double scalbnl(long double, int); +extern float scalblnf(float, long int); +extern double scalbln(double, long int); +extern long double scalblnl(long double, long int); +extern float fabsf(float); +extern double fabs(double); +extern long double fabsl(long double); +extern float cbrtf(float); +extern double cbrt(double); +extern long double cbrtl(long double); +extern float hypotf(float, float); +extern double hypot(double, double); +extern long double hypotl(long double, long double); +extern float powf(float, float); +extern double pow(double, double); +extern long double powl(long double, long double); +extern float sqrtf(float); +extern double sqrt(double); +extern long double sqrtl(long double); +extern float erff(float); +extern double erf(double); +extern long double erfl(long double); +extern float erfcf(float); +extern double erfc(double); +extern long double erfcl(long double); +extern float lgammaf(float); +extern double lgamma(double); +extern long double lgammal(long double); +extern float tgammaf(float); +extern double tgamma(double); +extern long double tgammal(long double); +extern float ceilf(float); +extern double ceil(double); +extern long double ceill(long double); +extern float floorf(float); +extern double floor(double); +extern long double floorl(long double); +extern float nearbyintf(float); +extern double nearbyint(double); +extern long double nearbyintl(long double); +extern float rintf(float); +extern double rint(double); +extern long double rintl(long double); +extern long int lrintf(float); +extern long int lrint(double); +extern long int lrintl(long double); +extern float roundf(float); +extern double round(double); +extern long double roundl(long double); +extern long int lroundf(float); +extern long int lround(double); +extern long int lroundl(long double); +extern long long int llrintf(float); +extern long long int llrint(double); +extern long long int llrintl(long double); +extern long long int llroundf(float); +extern long long int llround(double); +extern long long int llroundl(long double); +extern float truncf(float); +extern double trunc(double); +extern long double truncl(long double); +extern float fmodf(float, float); +extern double fmod(double, double); +extern long double fmodl(long double, long double); +extern float remainderf(float, float); +extern double remainder(double, double); +extern long double remainderl(long double, long double); +extern float remquof(float, float, int *); +extern double remquo(double, double, int *); +extern long double remquol(long double, long double, int *); +extern float copysignf(float, float); +extern double copysign(double, double); +extern long double copysignl(long double, long double); +extern float nanf(const char *); +extern double nan(const char *); +extern long double nanl(const char *); +extern float nextafterf(float, float); +extern double nextafter(double, double); +extern long double nextafterl(long double, long double); +extern double nexttoward(double, long double); +extern float nexttowardf(float, long double); +extern long double nexttowardl(long double, long double); +extern float fdimf(float, float); +extern double fdim(double, double); +extern long double fdiml(long double, long double); +extern float fmaxf(float, float); +extern double fmax(double, double); +extern long double fmaxl(long double, long double); +extern float fminf(float, float); +extern double fmin(double, double); +extern long double fminl(long double, long double); +extern float fmaf(float, float, float); +extern double fma(double, double, double); +extern long double fmal(long double, long double, long double); +extern float lgammaf_r(float, int *) __attribute__((availability(macos,introduced=10.6))) __attribute__((availability(ios,introduced=3.1))); +extern double lgamma_r(double, int *) __attribute__((availability(macos,introduced=10.6))) __attribute__((availability(ios,introduced=3.1))); +extern long double lgammal_r(long double, int *) __attribute__((availability(macos,introduced=10.6))) __attribute__((availability(ios,introduced=3.1))); +extern float __exp10f(float) __attribute__((availability(macos,introduced=10.9))) __attribute__((availability(ios,introduced=7.0))); +extern double __exp10(double) __attribute__((availability(macos,introduced=10.9))) __attribute__((availability(ios,introduced=7.0))); +inline __attribute__ ((__always_inline__)) void __sincosf(float __x, float *__sinp, float *__cosp); +inline __attribute__ ((__always_inline__)) void __sincos(double __x, double *__sinp, double *__cosp); +extern float __cospif(float) __attribute__((availability(macos,introduced=10.9))) __attribute__((availability(ios,introduced=7.0))); +extern double __cospi(double) __attribute__((availability(macos,introduced=10.9))) __attribute__((availability(ios,introduced=7.0))); +extern float __sinpif(float) __attribute__((availability(macos,introduced=10.9))) __attribute__((availability(ios,introduced=7.0))); +extern double __sinpi(double) __attribute__((availability(macos,introduced=10.9))) __attribute__((availability(ios,introduced=7.0))); +extern float __tanpif(float) __attribute__((availability(macos,introduced=10.9))) __attribute__((availability(ios,introduced=7.0))); +extern double __tanpi(double) __attribute__((availability(macos,introduced=10.9))) __attribute__((availability(ios,introduced=7.0))); +inline __attribute__ ((__always_inline__)) void __sincospif(float __x, float *__sinp, float *__cosp); +inline __attribute__ ((__always_inline__)) void __sincospi(double __x, double *__sinp, double *__cosp); +struct __float2 { float __sinval; float __cosval; }; +struct __double2 { double __sinval; double __cosval; }; +extern struct __float2 __sincosf_stret(float); +extern struct __double2 __sincos_stret(double); +extern struct __float2 __sincospif_stret(float); +extern struct __double2 __sincospi_stret(double); +inline __attribute__ ((__always_inline__)) void __sincosf(float __x, float *__sinp, float *__cosp) { + const struct __float2 __stret = __sincosf_stret(__x); + *__sinp = __stret.__sinval; *__cosp = __stret.__cosval; +} +inline __attribute__ ((__always_inline__)) void __sincos(double __x, double *__sinp, double *__cosp) { + const struct __double2 __stret = __sincos_stret(__x); + *__sinp = __stret.__sinval; *__cosp = __stret.__cosval; +} +inline __attribute__ ((__always_inline__)) void __sincospif(float __x, float *__sinp, float *__cosp) { + const struct __float2 __stret = __sincospif_stret(__x); + *__sinp = __stret.__sinval; *__cosp = __stret.__cosval; +} +inline __attribute__ ((__always_inline__)) void __sincospi(double __x, double *__sinp, double *__cosp) { + const struct __double2 __stret = __sincospi_stret(__x); + *__sinp = __stret.__sinval; *__cosp = __stret.__cosval; +} +extern double j0(double) __attribute__((availability(macos,introduced=10.0))) __attribute__((availability(ios,introduced=3.2))); +extern double j1(double) __attribute__((availability(macos,introduced=10.0))) __attribute__((availability(ios,introduced=3.2))); +extern double jn(int, double) __attribute__((availability(macos,introduced=10.0))) __attribute__((availability(ios,introduced=3.2))); +extern double y0(double) __attribute__((availability(macos,introduced=10.0))) __attribute__((availability(ios,introduced=3.2))); +extern double y1(double) __attribute__((availability(macos,introduced=10.0))) __attribute__((availability(ios,introduced=3.2))); +extern double yn(int, double) __attribute__((availability(macos,introduced=10.0))) __attribute__((availability(ios,introduced=3.2))); +extern double scalb(double, double); +extern int signgam; +struct exception { + int type; + char *name; + double arg1; + double arg2; + double retval; +}; +struct tm { + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; + long tm_gmtoff; + char *tm_zone; +}; +extern char *tzname[]; +extern int getdate_err; +extern long timezone __asm("_" "timezone" ); +extern int daylight; +char *asctime(const struct tm *); +clock_t clock(void) __asm("_" "clock" ); +char *ctime(const time_t *); +double difftime(time_t, time_t); +struct tm *getdate(const char *); +struct tm *gmtime(const time_t *); +struct tm *localtime(const time_t *); +time_t mktime(struct tm *) __asm("_" "mktime" ); +size_t strftime(char * __restrict__, size_t, const char * __restrict__, const struct tm * __restrict__) __asm("_" "strftime" ); +char *strptime(const char * __restrict__, const char * __restrict__, struct tm * __restrict__) __asm("_" "strptime" ); +time_t time(time_t *); +void tzset(void); +char *asctime_r(const struct tm * __restrict__, char * __restrict__); +char *ctime_r(const time_t *, char *); +struct tm *gmtime_r(const time_t * __restrict__, struct tm * __restrict__); +struct tm *localtime_r(const time_t * __restrict__, struct tm * __restrict__); +time_t posix2time(time_t); +void tzsetwall(void); +time_t time2posix(time_t); +time_t timelocal(struct tm * const); +time_t timegm(struct tm * const); +int nanosleep(const struct timespec *__rqtp, struct timespec *__rmtp) __asm("_" "nanosleep" ); +typedef enum { +_CLOCK_REALTIME __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) = 0, +_CLOCK_MONOTONIC __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) = 6, +_CLOCK_MONOTONIC_RAW __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) = 4, +_CLOCK_MONOTONIC_RAW_APPROX __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) = 5, +_CLOCK_UPTIME_RAW __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) = 8, +_CLOCK_UPTIME_RAW_APPROX __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) = 9, +_CLOCK_PROCESS_CPUTIME_ID __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) = 12, +_CLOCK_THREAD_CPUTIME_ID __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) = 16 +} clockid_t; +__attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) +int clock_getres(clockid_t __clock_id, struct timespec *__res); +__attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) +int clock_gettime(clockid_t __clock_id, struct timespec *__tp); +__attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) +__uint64_t clock_gettime_nsec_np(clockid_t __clock_id); +__attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,unavailable))) +__attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) +int clock_settime(clockid_t __clock_id, const struct timespec *__tp); +__attribute__((availability(macos,introduced=10.15))) __attribute__((availability(ios,introduced=13.0))) __attribute__((availability(tvos,introduced=13.0))) __attribute__((availability(watchos,introduced=6.0))) +int timespec_get(struct timespec *ts, int base); +struct timeval64 { + __int64_t tv_sec; + __int64_t tv_usec; +}; +struct itimerval { + struct timeval it_interval; + struct timeval it_value; +}; +struct timezone { + int tz_minuteswest; + int tz_dsttime; +}; +struct clockinfo { + int hz; + int tick; + int tickadj; + int stathz; + int profhz; +}; +int adjtime(const struct timeval *, struct timeval *); +int futimes(int, const struct timeval *); +int lutimes(const char *, const struct timeval *) __attribute__((availability(macosx,introduced=10.5))); +int settimeofday(const struct timeval *, const struct timezone *); +int getitimer(int, struct itimerval *); +int gettimeofday(struct timeval * __restrict__, void * __restrict__); +int setitimer(int, const struct itimerval * __restrict__, + struct itimerval * __restrict__); +int utimes(const char *, const struct timeval *); +extern int eaccess(const char*, int); +__attribute__((__format__(__printf__, 1, 2))) +extern void setproctitle(const char *fmt, ...); +extern void explicit_bzero(void *b, size_t len); + + + + + + + + + +typedef unsigned long VALUE; +typedef unsigned long ID; +__extension__ _Static_assert(4 == sizeof(int), "sizeof_int" ": " "SIZEOF_INT == sizeof(int)"); +__extension__ _Static_assert(8 == sizeof(long), "sizeof_long" ": " "SIZEOF_LONG == sizeof(long)"); +__extension__ _Static_assert(8 == sizeof( + long long +), "sizeof_long_long" ": " "SIZEOF_LONG_LONG == sizeof(LONG_LONG)"); +__extension__ _Static_assert(8 == sizeof(void *), "sizeof_voidp" ": " "SIZEOF_VOIDP == sizeof(void *)"); +VALUE rb_class_new(VALUE super); +VALUE rb_mod_init_copy(VALUE clone, VALUE orig); +void rb_check_inheritable(VALUE super); +VALUE rb_define_class_id(ID id, VALUE super); +VALUE rb_define_class_id_under(VALUE outer, ID id, VALUE super); +VALUE rb_module_new(void); +VALUE rb_refinement_new(void); +VALUE rb_define_module_id(ID id); +VALUE rb_define_module_id_under(VALUE outer, ID id); +VALUE rb_mod_included_modules(VALUE mod); +VALUE rb_mod_include_p(VALUE child, VALUE parent); +VALUE rb_mod_ancestors(VALUE mod); +VALUE rb_class_descendants(VALUE klass); +VALUE rb_class_subclasses(VALUE klass); +VALUE rb_class_attached_object(VALUE klass); +VALUE rb_class_instance_methods(int argc, const VALUE *argv, VALUE mod); +VALUE rb_class_public_instance_methods(int argc, const VALUE *argv, VALUE mod); +VALUE rb_class_protected_instance_methods(int argc, const VALUE *argv, VALUE mod); +VALUE rb_class_private_instance_methods(int argc, const VALUE *argv, VALUE mod); +VALUE rb_obj_singleton_methods(int argc, const VALUE *argv, VALUE obj); +void rb_define_method_id(VALUE klass, ID mid, VALUE (*func)(), int arity); +void rb_undef(VALUE mod, ID mid); +__attribute__((__nonnull__ ())) +void rb_define_protected_method(VALUE klass, const char *mid, VALUE (*func)(), int arity); +__attribute__((__nonnull__ ())) +void rb_define_private_method(VALUE klass, const char *mid, VALUE (*func)(), int arity); +__attribute__((__nonnull__ ())) +void rb_define_singleton_method(VALUE obj, const char *mid, VALUE(*func)(), int arity); +VALUE rb_singleton_class(VALUE obj); + +int rb_sourceline(void); +const char *rb_sourcefile(void); +int rb_frame_method_id_and_class(ID *idp, VALUE *klassp); +VALUE rb_check_funcall(VALUE recv, ID mid, int argc, const VALUE *argv); +VALUE rb_check_funcall_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat); +VALUE rb_eval_cmd_kw(VALUE cmd, VALUE arg, int kw_splat); +VALUE rb_apply(VALUE recv, ID mid, VALUE args); +VALUE rb_obj_instance_eval(int argc, const VALUE *argv, VALUE recv); +VALUE rb_obj_instance_exec(int argc, const VALUE *argv, VALUE recv); +VALUE rb_mod_module_eval(int argc, const VALUE *argv, VALUE mod); +VALUE rb_mod_module_exec(int argc, const VALUE *argv, VALUE mod); +typedef VALUE (*rb_alloc_func_t)(VALUE klass); +void rb_define_alloc_func(VALUE klass, rb_alloc_func_t func); +void rb_undef_alloc_func(VALUE klass); +rb_alloc_func_t rb_get_alloc_func(VALUE klass); +void rb_clear_constant_cache_for_id(ID id); +void rb_alias(VALUE klass, ID dst, ID src); +void rb_attr(VALUE klass, ID name, int need_reader, int need_writer, int honour_visibility); +__attribute__((__nonnull__ ())) +void rb_remove_method(VALUE klass, const char *name); +void rb_remove_method_id(VALUE klass, ID mid); +int rb_method_boundp(VALUE klass, ID id, int ex); +int rb_method_basic_definition_p(VALUE klass, ID mid); +int rb_obj_respond_to(VALUE obj, ID mid, int private_p); +int rb_respond_to(VALUE obj, ID mid); +__declspec(noreturn) +VALUE rb_f_notimplement(int argc, const VALUE *argv, VALUE obj, VALUE marker); +void rb_backtrace(void); +VALUE rb_make_backtrace(void); + +__attribute__((__nonnull__ ())) +void rb_define_method(VALUE klass, const char *mid, VALUE (*func)(), int arity); +__attribute__((__nonnull__ ())) +void rb_define_module_function(VALUE klass, const char *mid, VALUE (*func)(), int arity); +__attribute__((__nonnull__ ())) +void rb_define_global_function(const char *mid, VALUE (*func)(), int arity); +__attribute__((__nonnull__ ())) +void rb_undef_method(VALUE klass, const char *name); +__attribute__((__nonnull__ ())) +void rb_define_alias(VALUE klass, const char *dst, const char *src); +__attribute__((__nonnull__ ())) +void rb_define_attr(VALUE klass, const char *name, int read, int write); +__attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_notimpl(VALUE, const char *, VALUE(*)(int, const VALUE *, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_m3(VALUE, const char *, VALUE(*)(), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_m2(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_m1(VALUE, const char *, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_00(VALUE, const char *, VALUE(*)(VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_01(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_02(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_03(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_04(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_05(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_06(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_07(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_08(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_09(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_10(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_11(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_12(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_13(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_14(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_15(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); +__attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_notimpl(VALUE, const char *, VALUE(*)(int, const VALUE *, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_m3(VALUE, const char *, VALUE(*)(), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_m2(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_m1(VALUE, const char *, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_00(VALUE, const char *, VALUE(*)(VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_01(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_02(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_03(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_04(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_05(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_06(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_07(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_08(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_09(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_10(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_11(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_12(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_13(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_14(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_15(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); +__attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_notimpl(VALUE, const char *, VALUE(*)(int, const VALUE *, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_m3(VALUE, const char *, VALUE(*)(), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_m2(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_m1(VALUE, const char *, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_00(VALUE, const char *, VALUE(*)(VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_01(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_02(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_03(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_04(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_05(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_06(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_07(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_08(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_09(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_10(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_11(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_12(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_13(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_14(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_15(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); +__attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_notimpl(VALUE, const char *, VALUE(*)(int, const VALUE *, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_m3(VALUE, const char *, VALUE(*)(), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_m2(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_m1(VALUE, const char *, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_00(VALUE, const char *, VALUE(*)(VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_01(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_02(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_03(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_04(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_05(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_06(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_07(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_08(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_09(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_10(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_11(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_12(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_13(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_14(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_15(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); +__attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_notimpl(const char *, VALUE(*)(int, const VALUE *, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_m3(const char *, VALUE(*)(), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_m2(const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_m1(const char *, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_00(const char *, VALUE(*)(VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_01(const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_02(const char *, VALUE(*)(VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_03(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_04(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_05(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_06(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_07(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_08(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_09(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_10(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_11(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_12(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_13(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_14(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_15(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); +__attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_notimpl(VALUE, ID, VALUE(*)(int, const VALUE *, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_m3(VALUE, ID, VALUE(*)(), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_m2(VALUE, ID, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_m1(VALUE, ID, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_00(VALUE, ID, VALUE(*)(VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_01(VALUE, ID, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_02(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_03(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_04(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_05(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_06(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_07(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_08(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_09(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_10(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_11(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_12(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_13(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_14(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_15(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); +__attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_notimpl(VALUE, const char *, VALUE(*)(int, const VALUE *, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_m3(VALUE, const char *, VALUE(*)(), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_m2(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_m1(VALUE, const char *, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_00(VALUE, const char *, VALUE(*)(VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_01(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_02(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_03(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_04(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_05(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_06(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_07(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_08(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_09(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_10(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_11(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_12(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_13(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_14(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_15(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); + + + + + +VALUE rb_int2big(intptr_t i); +VALUE rb_int2inum(intptr_t i); +VALUE rb_uint2big(uintptr_t i); +VALUE rb_uint2inum(uintptr_t i); + + + + + +enum +__attribute__((__enum_extensibility__(closed))) +ruby_special_consts { + RUBY_Qfalse = 0x00, + RUBY_Qnil = 0x04, + RUBY_Qtrue = 0x14, + RUBY_Qundef = 0x24, + RUBY_IMMEDIATE_MASK = 0x07, + RUBY_FIXNUM_FLAG = 0x01, + RUBY_FLONUM_MASK = 0x03, + RUBY_FLONUM_FLAG = 0x02, + RUBY_SYMBOL_FLAG = 0x0c, + RUBY_SPECIAL_SHIFT = 8 +}; +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline _Bool +RB_TEST(VALUE obj) +{ + return obj & ~RUBY_Qnil; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline _Bool +RB_NIL_P(VALUE obj) +{ + return obj == RUBY_Qnil; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline _Bool +RB_UNDEF_P(VALUE obj) +{ + return obj == RUBY_Qundef; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline _Bool +RB_NIL_OR_UNDEF_P(VALUE obj) +{ + const VALUE mask = ~(RUBY_Qundef ^ RUBY_Qnil); + const VALUE common_bits = RUBY_Qundef & RUBY_Qnil; + return (obj & mask) == common_bits; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline _Bool +RB_FIXNUM_P(VALUE obj) +{ + return obj & RUBY_FIXNUM_FLAG; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline _Bool +RB_STATIC_SYM_P(VALUE obj) +{ + const VALUE mask = ~((9223372036854775807L *2UL+1UL) << RUBY_SPECIAL_SHIFT); + return (obj & mask) == RUBY_SYMBOL_FLAG; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline _Bool +RB_FLONUM_P(VALUE obj) +{ + return (obj & RUBY_FLONUM_MASK) == RUBY_FLONUM_FLAG; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline _Bool +RB_IMMEDIATE_P(VALUE obj) +{ + return obj & RUBY_IMMEDIATE_MASK; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline _Bool +RB_SPECIAL_CONST_P(VALUE obj) +{ + return RB_IMMEDIATE_P(obj) || obj == RUBY_Qfalse; +} +__attribute__((__const__)) +static inline VALUE +rb_special_const_p(VALUE obj) +{ + return RB_SPECIAL_CONST_P(obj) * RUBY_Qtrue; +} +__declspec(noreturn) +__attribute__((__cold__)) +void rb_out_of_int(long num); +long rb_num2long(VALUE num); +unsigned long rb_num2ulong(VALUE num); +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline VALUE +RB_INT2FIX(long i) +{ + ((void)0); + const unsigned long j = i; + const unsigned long k = (j << 1) + RUBY_FIXNUM_FLAG; + const long l = k; + const long m = l; + const VALUE n = m; + ((void)0); + return n; +} +static inline int +rb_long2int_inline(long n) +{ + int i = ((int)n); + if (sizeof(long) <= sizeof(int)) { + __builtin_assume(i == n); + } + if (i != n) + rb_out_of_int(n); + return i; +} +__attribute__((__const__)) +static inline long +rbimpl_fix2long_by_idiv(VALUE x) +{ + ((void)0); + const long y = x - RUBY_FIXNUM_FLAG; + const long z = y / 2; + const long w = ((long)z); + ((void)0); + return w; +} +__attribute__((__const__)) +static inline long +rbimpl_fix2long_by_shift(VALUE x) +{ + ((void)0); + const long y = x; + const long z = y >> 1; + const long w = ((long)z); + ((void)0); + return w; +} +__attribute__((__const__)) +static inline _Bool +rbimpl_right_shift_is_arithmetic_p(void) +{ + return (-1 >> 1) == -1; +} +__attribute__((__const__)) +static inline long +rb_fix2long(VALUE x) +{ + if (rbimpl_right_shift_is_arithmetic_p()) { + return rbimpl_fix2long_by_shift(x); + } + else { + return rbimpl_fix2long_by_idiv(x); + } +} +__attribute__((__const__)) +static inline unsigned long +rb_fix2ulong(VALUE x) +{ + ((void)0); + return rb_fix2long(x); +} +static inline long +rb_num2long_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return rb_fix2long(x); + else + return rb_num2long(x); +} +static inline unsigned long +rb_num2ulong_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return rb_fix2ulong(x); + else + return rb_num2ulong(x); +} +static inline VALUE +rb_long2num_inline(long v) +{ + if ((((v) < (9223372036854775807L / 2) + 1) && ((v) >= ((-9223372036854775807L -1L) / 2)))) + return RB_INT2FIX(v); + else + return rb_int2big(v); +} +static inline VALUE +rb_ulong2num_inline(unsigned long v) +{ + if (((v) < (9223372036854775807L / 2) + 1)) + return RB_INT2FIX(v); + else + return rb_uint2big(v); +} +long rb_num2int(VALUE num); +long rb_fix2int(VALUE num); +unsigned long rb_num2uint(VALUE num); +unsigned long rb_fix2uint(VALUE num); +__attribute__((__artificial__)) +static inline int +RB_FIX2INT(VALUE x) +{ + long ret; + if (sizeof(int) < sizeof(long)) { + ret = rb_fix2int(x); + } + else { + ret = rb_fix2long(x); + } + return ((int)ret); +} +static inline int +rb_num2int_inline(VALUE x) +{ + long ret; + if (sizeof(int) == sizeof(long)) { + ret = rb_num2long_inline(x); + } + else if (RB_FIXNUM_P(x)) { + ret = rb_fix2int(x); + } + else { + ret = rb_num2int(x); + } + return ((int)ret); +} +__attribute__((__artificial__)) +static inline unsigned int +RB_NUM2UINT(VALUE x) +{ + unsigned long ret; + if (sizeof(int) < sizeof(long)) { + ret = rb_num2uint(x); + } + else { + ret = rb_num2ulong_inline(x); + } + return ((unsigned int)ret); +} +__attribute__((__artificial__)) +static inline unsigned int +RB_FIX2UINT(VALUE x) +{ + unsigned long ret; + if (sizeof(int) < sizeof(long)) { + ret = rb_fix2uint(x); + } + else { + ret = rb_fix2ulong(x); + } + return ((unsigned int)ret); +} +static inline VALUE +rb_int2num_inline(int v) +{ + if ((((v) < (9223372036854775807L / 2) + 1) && ((v) >= ((-9223372036854775807L -1L) / 2)))) + return RB_INT2FIX(v); + else + return rb_int2big(v); +} +static inline VALUE +rb_uint2num_inline(unsigned int v) +{ + if (((v) < (9223372036854775807L / 2) + 1)) + return RB_INT2FIX(v); + else + return rb_uint2big(v); +} + + + +enum ruby_rvalue_flags { + RVALUE_EMBED_LEN_MAX = 3 +}; +struct +__declspec(align(8)) +RBasic { + VALUE flags; + const VALUE klass; +}; +VALUE rb_obj_hide(VALUE obj); +VALUE rb_obj_reveal(VALUE obj, VALUE klass); +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline VALUE +RBASIC_CLASS(VALUE obj) +{ + ((void)0); + return ((struct RBasic *)(obj))->klass; +} + + + + + + +typedef enum { + RB_WARN_CATEGORY_NONE, + RB_WARN_CATEGORY_DEPRECATED, + RB_WARN_CATEGORY_EXPERIMENTAL, + RB_WARN_CATEGORY_ALL_BITS = 0x6 +} rb_warning_category_t; +enum rb_io_wait_readwrite {RB_IO_WAIT_READABLE, RB_IO_WAIT_WRITABLE}; +VALUE rb_errinfo(void); +void rb_set_errinfo(VALUE err); +__declspec(noreturn) +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 3))) +void rb_raise(VALUE exc, const char *fmt, ...); +__declspec(noreturn) +__attribute__((__nonnull__ (1))) +__attribute__((__format__(__printf__, 1, 2))) +void rb_fatal(const char *fmt, ...); +__attribute__((__cold__)) +__declspec(noreturn) +__attribute__((__nonnull__ (1))) +__attribute__((__format__(__printf__, 1, 2))) +void rb_bug(const char *fmt, ...); +__declspec(noreturn) +__attribute__((__nonnull__ ())) +void rb_bug_errno(const char *msg, int err); +__declspec(noreturn) +void rb_sys_fail(const char *msg); +__declspec(noreturn) +void rb_sys_fail_str(VALUE msg); +__declspec(noreturn) +__attribute__((__nonnull__ (2))) +void rb_mod_sys_fail(VALUE mod, const char *msg); +__declspec(noreturn) +void rb_mod_sys_fail_str(VALUE mod, VALUE msg); +__declspec(noreturn) +void rb_readwrite_sys_fail(enum rb_io_wait_readwrite waiting, const char *msg); +__declspec(noreturn) +void rb_iter_break(void); +__declspec(noreturn) +void rb_iter_break_value(VALUE val); +__declspec(noreturn) +void rb_exit(int status); +__declspec(noreturn) +void rb_notimplement(void); +VALUE rb_syserr_new(int err, const char * msg); +VALUE rb_syserr_new_str(int n, VALUE arg); +__declspec(noreturn) +void rb_syserr_fail(int err, const char *msg); +__declspec(noreturn) +void rb_syserr_fail_str(int err, VALUE msg); +__declspec(noreturn) +__attribute__((__nonnull__ ())) +void rb_mod_syserr_fail(VALUE mod, int err, const char *msg); +__declspec(noreturn) +void rb_mod_syserr_fail_str(VALUE mod, int err, VALUE msg); +__declspec(noreturn) +void rb_readwrite_syserr_fail(enum rb_io_wait_readwrite waiting, int err, const char *msg); +__attribute__((__cold__)) +__declspec(noreturn) +void rb_unexpected_type(VALUE self, int t); +VALUE *rb_ruby_verbose_ptr(void); +VALUE *rb_ruby_debug_ptr(void); +__attribute__((__nonnull__ (1))) +__attribute__((__format__(__printf__, 1, 2))) +void rb_warning(const char *fmt, ...); +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 3))) +void rb_category_warning(rb_warning_category_t cat, const char *fmt, ...); +__attribute__((__nonnull__ (1, 3))) +__attribute__((__format__(__printf__, 3, 4))) +void rb_compile_warning(const char *file, int line, const char *fmt, ...); +__attribute__((__nonnull__ (1))) +__attribute__((__format__(__printf__, 1, 2))) +void rb_sys_warning(const char *fmt, ...); +__attribute__((__cold__)) +__attribute__((__nonnull__ (1))) +__attribute__((__format__(__printf__, 1, 2))) +void rb_warn(const char *fmt, ...); +__attribute__((__cold__)) +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 3))) +void rb_category_warn(rb_warning_category_t cat, const char *fmt, ...); +__attribute__((__nonnull__ (1, 3))) +__attribute__((__format__(__printf__, 3, 4))) +void rb_compile_warn(const char *file, int line, const char *fmt, ...); +__attribute__((__nonnull__ (2, 4))) +__attribute__((__format__(__printf__, 4, 5))) +void rb_category_compile_warn(rb_warning_category_t cat, const char *file, int line, const char *fmt, ...); +enum +__attribute__((__enum_extensibility__(closed))) +ruby_value_type { + RUBY_T_NONE = 0x00, + RUBY_T_OBJECT = 0x01, + RUBY_T_CLASS = 0x02, + RUBY_T_MODULE = 0x03, + RUBY_T_FLOAT = 0x04, + RUBY_T_STRING = 0x05, + RUBY_T_REGEXP = 0x06, + RUBY_T_ARRAY = 0x07, + RUBY_T_HASH = 0x08, + RUBY_T_STRUCT = 0x09, + RUBY_T_BIGNUM = 0x0a, + RUBY_T_FILE = 0x0b, + RUBY_T_DATA = 0x0c, + RUBY_T_MATCH = 0x0d, + RUBY_T_COMPLEX = 0x0e, + RUBY_T_RATIONAL = 0x0f, + RUBY_T_NIL = 0x11, + RUBY_T_TRUE = 0x12, + RUBY_T_FALSE = 0x13, + RUBY_T_SYMBOL = 0x14, + RUBY_T_FIXNUM = 0x15, + RUBY_T_UNDEF = 0x16, + RUBY_T_IMEMO = 0x1a, + RUBY_T_NODE = 0x1b, + RUBY_T_ICLASS = 0x1c, + RUBY_T_ZOMBIE = 0x1d, + RUBY_T_MOVED = 0x1e, + RUBY_T_MASK = 0x1f +}; +__attribute__((__cold__)) +void rb_check_type(VALUE obj, int t); +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline enum ruby_value_type +RB_BUILTIN_TYPE(VALUE obj) +{ + ((void)0); + VALUE ret = ((struct RBasic *)(obj))->flags & RUBY_T_MASK; + return ((enum ruby_value_type)ret); +} +__attribute__((__pure__)) +static inline _Bool +rb_integer_type_p(VALUE obj) +{ + if (RB_FIXNUM_P(obj)) { + return 1; + } + else if (RB_SPECIAL_CONST_P(obj)) { + return 0; + } + else { + return RB_BUILTIN_TYPE(obj) == RUBY_T_BIGNUM; + } +} +__attribute__((__pure__)) +static inline enum ruby_value_type +rb_type(VALUE obj) +{ + if (! RB_SPECIAL_CONST_P(obj)) { + return RB_BUILTIN_TYPE(obj); + } + else if (obj == ((VALUE)RUBY_Qfalse)) { + return RUBY_T_FALSE; + } + else if (obj == ((VALUE)RUBY_Qnil)) { + return RUBY_T_NIL; + } + else if (obj == ((VALUE)RUBY_Qtrue)) { + return RUBY_T_TRUE; + } + else if (obj == ((VALUE)RUBY_Qundef)) { + return RUBY_T_UNDEF; + } + else if (RB_FIXNUM_P(obj)) { + return RUBY_T_FIXNUM; + } + else if (RB_STATIC_SYM_P(obj)) { + return RUBY_T_SYMBOL; + } + else { + __builtin_assume(RB_FLONUM_P(obj)); + return RUBY_T_FLOAT; + } +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_FLOAT_TYPE_P(VALUE obj) +{ + if (RB_FLONUM_P(obj)) { + return 1; + } + else if (RB_SPECIAL_CONST_P(obj)) { + return 0; + } + else { + return RB_BUILTIN_TYPE(obj) == RUBY_T_FLOAT; + } +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_DYNAMIC_SYM_P(VALUE obj) +{ + if (RB_SPECIAL_CONST_P(obj)) { + return 0; + } + else { + return RB_BUILTIN_TYPE(obj) == RUBY_T_SYMBOL; + } +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_SYMBOL_P(VALUE obj) +{ + return RB_STATIC_SYM_P(obj) || RB_DYNAMIC_SYM_P(obj); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +__attribute__((__always_inline__)) inline +static _Bool +rbimpl_RB_TYPE_P_fastpath(VALUE obj, enum ruby_value_type t) +{ + if (t == RUBY_T_TRUE) { + return obj == ((VALUE)RUBY_Qtrue); + } + else if (t == RUBY_T_FALSE) { + return obj == ((VALUE)RUBY_Qfalse); + } + else if (t == RUBY_T_NIL) { + return obj == ((VALUE)RUBY_Qnil); + } + else if (t == RUBY_T_UNDEF) { + return obj == ((VALUE)RUBY_Qundef); + } + else if (t == RUBY_T_FIXNUM) { + return RB_FIXNUM_P(obj); + } + else if (t == RUBY_T_SYMBOL) { + return RB_SYMBOL_P(obj); + } + else if (t == RUBY_T_FLOAT) { + return RB_FLOAT_TYPE_P(obj); + } + else if (RB_SPECIAL_CONST_P(obj)) { + return 0; + } + else if (t == RB_BUILTIN_TYPE(obj)) { + return 1; + } + else { + return 0; + } +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_TYPE_P(VALUE obj, enum ruby_value_type t) +{ + if (__builtin_constant_p(t)) { + return rbimpl_RB_TYPE_P_fastpath(obj, t); + } + else { + return t == rb_type(obj); + } +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool rbimpl_rtypeddata_p(VALUE obj); +__attribute__((__artificial__)) +static inline void +Check_Type(VALUE v, enum ruby_value_type t) +{ + if ((__builtin_expect(!!(! (__builtin_constant_p(t) ? rbimpl_RB_TYPE_P_fastpath((v), (t)) : (RB_TYPE_P)((v), (t)))), 0))) { + goto unexpected_type; + } + else if (t == RUBY_T_DATA && rbimpl_rtypeddata_p(v)) { + goto unexpected_type; + } + else { + return; + } + unexpected_type: + rb_unexpected_type(v, t); +} +enum ruby_fl_ushift { + RUBY_FL_USHIFT = 12 +}; +__extension__ +enum +__attribute__((__flag_enum__)) +ruby_fl_type { + RUBY_FL_WB_PROTECTED = (1<<5), + RUBY_FL_PROMOTED0 = (1<<5), + RUBY_FL_PROMOTED1 = (1<<6), + RUBY_FL_PROMOTED = RUBY_FL_PROMOTED0 | RUBY_FL_PROMOTED1, + RUBY_FL_FINALIZE = (1<<7), + RUBY_FL_TAINT + __attribute__((__deprecated__ ("taintedness turned out to be a wrong idea."))) + = (1<<8), + RUBY_FL_SHAREABLE = (1<<8), + RUBY_FL_UNTRUSTED + __attribute__((__deprecated__ ("trustedness turned out to be a wrong idea."))) + = (1<<8), + RUBY_FL_SEEN_OBJ_ID = (1<<9), + RUBY_FL_EXIVAR = (1<<10), + RUBY_FL_FREEZE = (1<<11), + RUBY_FL_USER0 = (1<<(RUBY_FL_USHIFT+0)), + RUBY_FL_USER1 = (1<<(RUBY_FL_USHIFT+1)), + RUBY_FL_USER2 = (1<<(RUBY_FL_USHIFT+2)), + RUBY_FL_USER3 = (1<<(RUBY_FL_USHIFT+3)), + RUBY_FL_USER4 = (1<<(RUBY_FL_USHIFT+4)), + RUBY_FL_USER5 = (1<<(RUBY_FL_USHIFT+5)), + RUBY_FL_USER6 = (1<<(RUBY_FL_USHIFT+6)), + RUBY_FL_USER7 = (1<<(RUBY_FL_USHIFT+7)), + RUBY_FL_USER8 = (1<<(RUBY_FL_USHIFT+8)), + RUBY_FL_USER9 = (1<<(RUBY_FL_USHIFT+9)), + RUBY_FL_USER10 = (1<<(RUBY_FL_USHIFT+10)), + RUBY_FL_USER11 = (1<<(RUBY_FL_USHIFT+11)), + RUBY_FL_USER12 = (1<<(RUBY_FL_USHIFT+12)), + RUBY_FL_USER13 = (1<<(RUBY_FL_USHIFT+13)), + RUBY_FL_USER14 = (1<<(RUBY_FL_USHIFT+14)), + RUBY_FL_USER15 = (1<<(RUBY_FL_USHIFT+15)), + RUBY_FL_USER16 = (1<<(RUBY_FL_USHIFT+16)), + RUBY_FL_USER17 = (1<<(RUBY_FL_USHIFT+17)), + RUBY_FL_USER18 = (1<<(RUBY_FL_USHIFT+18)), + RUBY_FL_USER19 = (1<<(RUBY_FL_USHIFT+19)), + RUBY_ELTS_SHARED = RUBY_FL_USER2, + RUBY_FL_SINGLETON = RUBY_FL_USER0, +}; +enum { + RUBY_FL_DUPPED + __attribute__((__deprecated__ ("It seems there is no actual usage of this enum."))) + = (int)RUBY_T_MASK | (int)RUBY_FL_EXIVAR +}; +void rb_freeze_singleton_class(VALUE klass); +__attribute__((__pure__)) +__attribute__((__artificial__)) +__attribute__((__always_inline__)) inline +static _Bool +RB_FL_ABLE(VALUE obj) +{ + if (RB_SPECIAL_CONST_P(obj)) { + return 0; + } + else if ((__builtin_constant_p(RUBY_T_NODE) ? rbimpl_RB_TYPE_P_fastpath((obj), (RUBY_T_NODE)) : (RB_TYPE_P)((obj), (RUBY_T_NODE)))) { + return 0; + } + else { + return 1; + } +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline VALUE +RB_FL_TEST_RAW(VALUE obj, VALUE flags) +{ + ((void)0); + return ((struct RBasic *)(obj))->flags & flags; +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline VALUE +RB_FL_TEST(VALUE obj, VALUE flags) +{ + if (RB_FL_ABLE(obj)) { + return RB_FL_TEST_RAW(obj, flags); + } + else { + return 0UL; + } +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_FL_ANY_RAW(VALUE obj, VALUE flags) +{ + return RB_FL_TEST_RAW(obj, flags); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_FL_ANY(VALUE obj, VALUE flags) +{ + return RB_FL_TEST(obj, flags); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_FL_ALL_RAW(VALUE obj, VALUE flags) +{ + return RB_FL_TEST_RAW(obj, flags) == flags; +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_FL_ALL(VALUE obj, VALUE flags) +{ + return RB_FL_TEST(obj, flags) == flags; +} +__declspec(noalias) +__attribute__((__artificial__)) +static inline void +rbimpl_fl_set_raw_raw(struct RBasic *obj, VALUE flags) +{ + obj->flags |= flags; +} +__attribute__((__artificial__)) +static inline void +RB_FL_SET_RAW(VALUE obj, VALUE flags) +{ + ((void)0); + rbimpl_fl_set_raw_raw(((struct RBasic *)(obj)), flags); +} +__attribute__((__artificial__)) +static inline void +RB_FL_SET(VALUE obj, VALUE flags) +{ + if (RB_FL_ABLE(obj)) { + RB_FL_SET_RAW(obj, flags); + } +} +__declspec(noalias) +__attribute__((__artificial__)) +static inline void +rbimpl_fl_unset_raw_raw(struct RBasic *obj, VALUE flags) +{ + obj->flags &= ~flags; +} +__attribute__((__artificial__)) +static inline void +RB_FL_UNSET_RAW(VALUE obj, VALUE flags) +{ + ((void)0); + rbimpl_fl_unset_raw_raw(((struct RBasic *)(obj)), flags); +} +__attribute__((__artificial__)) +static inline void +RB_FL_UNSET(VALUE obj, VALUE flags) +{ + if (RB_FL_ABLE(obj)) { + RB_FL_UNSET_RAW(obj, flags); + } +} +__declspec(noalias) +__attribute__((__artificial__)) +static inline void +rbimpl_fl_reverse_raw_raw(struct RBasic *obj, VALUE flags) +{ + obj->flags ^= flags; +} +__attribute__((__artificial__)) +static inline void +RB_FL_REVERSE_RAW(VALUE obj, VALUE flags) +{ + ((void)0); + rbimpl_fl_reverse_raw_raw(((struct RBasic *)(obj)), flags); +} +__attribute__((__artificial__)) +static inline void +RB_FL_REVERSE(VALUE obj, VALUE flags) +{ + if (RB_FL_ABLE(obj)) { + RB_FL_REVERSE_RAW(obj, flags); + } +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +__attribute__((__deprecated__ ("taintedness turned out to be a wrong idea."))) +static inline _Bool +RB_OBJ_TAINTABLE(VALUE obj) +{ + return 0; +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +__attribute__((__deprecated__ ("taintedness turned out to be a wrong idea."))) +static inline VALUE +RB_OBJ_TAINTED_RAW(VALUE obj) +{ + return 0; +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +__attribute__((__deprecated__ ("taintedness turned out to be a wrong idea."))) +static inline _Bool +RB_OBJ_TAINTED(VALUE obj) +{ + return 0; +} +__attribute__((__artificial__)) +__attribute__((__deprecated__ ("taintedness turned out to be a wrong idea."))) +static inline void +RB_OBJ_TAINT_RAW(VALUE obj) +{ + return; +} +__attribute__((__artificial__)) +__attribute__((__deprecated__ ("taintedness turned out to be a wrong idea."))) +static inline void +RB_OBJ_TAINT(VALUE obj) +{ + return; +} +__attribute__((__artificial__)) +__attribute__((__deprecated__ ("taintedness turned out to be a wrong idea."))) +static inline void +RB_OBJ_INFECT_RAW(VALUE dst, VALUE src) +{ + return; +} +__attribute__((__artificial__)) +__attribute__((__deprecated__ ("taintedness turned out to be a wrong idea."))) +static inline void +RB_OBJ_INFECT(VALUE dst, VALUE src) +{ + return; +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline VALUE +RB_OBJ_FROZEN_RAW(VALUE obj) +{ + return RB_FL_TEST_RAW(obj, RUBY_FL_FREEZE); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_OBJ_FROZEN(VALUE obj) +{ + if (! RB_FL_ABLE(obj)) { + return 1; + } + else { + return RB_OBJ_FROZEN_RAW(obj); + } +} +__attribute__((__artificial__)) +static inline void +RB_OBJ_FREEZE_RAW(VALUE obj) +{ + RB_FL_SET_RAW(obj, RUBY_FL_FREEZE); +} +void rb_obj_freeze_inline(VALUE obj); +enum ruby_rstring_flags { + RSTRING_NOEMBED = RUBY_FL_USER1, + RSTRING_FSTR = RUBY_FL_USER17 +}; +struct RString { + struct RBasic basic; + union { + struct { + long len; + char *ptr; + union { + long capa; + VALUE shared; + } aux; + } heap; + struct { + long len; + char ary[1]; + } embed; + } as; +}; +VALUE rb_str_to_str(VALUE obj); +VALUE rb_string_value(volatile VALUE *ptr); +char *rb_string_value_ptr(volatile VALUE *ptr); +char *rb_string_value_cstr(volatile VALUE *ptr); +VALUE rb_str_export(VALUE obj); +VALUE rb_str_export_locale(VALUE obj); +__attribute__((__error__ ("rb_check_safe_str() and Check_SafeStr() are obsolete; use StringValue() instead"))) +void rb_check_safe_str(VALUE); +void rb_debug_rstring_null_ptr(const char *func); +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline long +RSTRING_EMBED_LEN(VALUE str) +{ + ((void)0); + ((void)0); + long f = ((struct RString *)(str))->as.embed.len; + return f; +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline struct RString +rbimpl_rstring_getmem(VALUE str) +{ + ((void)0); + if (RB_FL_ANY_RAW(str, RSTRING_NOEMBED)) { + return *((struct RString *)(str)); + } + else { + struct RString retval; + retval.as.heap.len = RSTRING_EMBED_LEN(str); + retval.as.heap.ptr = ((struct RString *)(str))->as.embed.ary; + return retval; + } +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline long +RSTRING_LEN(VALUE str) +{ + return rbimpl_rstring_getmem(str).as.heap.len; +} +__attribute__((__artificial__)) +static inline char * +RSTRING_PTR(VALUE str) +{ + char *ptr = rbimpl_rstring_getmem(str).as.heap.ptr; + if ((__builtin_expect(!!(! ptr), 0))) { + rb_debug_rstring_null_ptr("RSTRING_PTR"); + } + return ptr; +} +__attribute__((__artificial__)) +static inline char * +RSTRING_END(VALUE str) +{ + struct RString buf = rbimpl_rstring_getmem(str); + if ((__builtin_expect(!!(! buf.as.heap.ptr), 0))) { + rb_debug_rstring_null_ptr("RSTRING_END"); + } + return &buf.as.heap.ptr[buf.as.heap.len]; +} +__attribute__((__artificial__)) +static inline int +RSTRING_LENINT(VALUE str) +{ + return rb_long2int_inline(RSTRING_LEN(str)); +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline VALUE +RB_CHR2FIX(unsigned char c) +{ + return RB_INT2FIX(c); +} +static inline char +rb_num2char_inline(VALUE x) +{ + if ((__builtin_constant_p(RUBY_T_STRING) ? rbimpl_RB_TYPE_P_fastpath((x), (RUBY_T_STRING)) : (RB_TYPE_P)((x), (RUBY_T_STRING))) && (RSTRING_LEN(x)>=1)) + return RSTRING_PTR(x)[0]; + else + return ((char)rb_num2int_inline(x)); +} + +double rb_num2dbl(VALUE num); +__attribute__((__pure__)) +double rb_float_value(VALUE num); +VALUE rb_float_new(double d); +VALUE rb_float_new_in_heap(double d); + + + +VALUE rb_ll2inum( + long long + num); +VALUE rb_ull2inum(unsigned + long long + num); + long long + rb_num2ll(VALUE num); +unsigned + long long + rb_num2ull(VALUE num); +static inline VALUE +rb_ll2num_inline( + long long + n) +{ + if ((((n) < (9223372036854775807L / 2) + 1) && ((n) >= ((-9223372036854775807L -1L) / 2)))) return RB_INT2FIX((long)n); + return rb_ll2inum(n); +} +static inline VALUE +rb_ull2num_inline(unsigned + long long + n) +{ + if (((n) < (9223372036854775807L / 2) + 1)) return RB_INT2FIX((long)n); + return rb_ull2inum(n); +} +static inline + long long +rb_num2ll_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return rb_fix2long(x); + else + return rb_num2ll(x); +} +static inline unsigned + long long +rb_num2ull_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return rb_fix2long(x); + else + return rb_num2ull(x); +} + + + + +short rb_num2short(VALUE num); +unsigned short rb_num2ushort(VALUE num); +short rb_fix2short(VALUE num); +unsigned short rb_fix2ushort(VALUE num); +static inline short +rb_num2short_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return rb_fix2short(x); + else + return rb_num2short(x); +} + + +typedef unsigned long st_data_t; +typedef struct st_table st_table; +typedef st_data_t st_index_t; +typedef int st_compare_func(st_data_t, st_data_t); +typedef st_index_t st_hash_func(st_data_t); +typedef char st_check_for_sizeof_st_index_t[8 == (int)sizeof(st_index_t) ? 1 : -1]; +struct st_hash_type { + int (*compare)(st_data_t, st_data_t); + st_index_t (*hash)(st_data_t); +}; +typedef struct st_table_entry st_table_entry; +struct st_table_entry; +struct st_table { + unsigned char entry_power, bin_power, size_ind; + unsigned int rebuilds_num; + const struct st_hash_type *type; + st_index_t num_entries; + st_index_t *bins; + st_index_t entries_start, entries_bound; + st_table_entry *entries; +}; +enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK, ST_REPLACE}; +st_table *rb_st_init_table(const struct st_hash_type *); +st_table *rb_st_init_table_with_size(const struct st_hash_type *, st_index_t); +st_table *rb_st_init_numtable(void); +st_table *rb_st_init_numtable_with_size(st_index_t); +st_table *rb_st_init_strtable(void); +st_table *rb_st_init_strtable_with_size(st_index_t); +st_table *rb_st_init_strcasetable(void); +st_table *rb_st_init_strcasetable_with_size(st_index_t); +int rb_st_delete(st_table *, st_data_t *, st_data_t *); +int rb_st_delete_safe(st_table *, st_data_t *, st_data_t *, st_data_t); +int rb_st_shift(st_table *, st_data_t *, st_data_t *); +int rb_st_insert(st_table *, st_data_t, st_data_t); +int rb_st_insert2(st_table *, st_data_t, st_data_t, st_data_t (*)(st_data_t)); +int rb_st_lookup(st_table *, st_data_t, st_data_t *); +int rb_st_get_key(st_table *, st_data_t, st_data_t *); +typedef int st_update_callback_func(st_data_t *key, st_data_t *value, st_data_t arg, int existing); +int rb_st_update(st_table *table, st_data_t key, st_update_callback_func *func, st_data_t arg); +typedef int st_foreach_callback_func(st_data_t, st_data_t, st_data_t); +typedef int st_foreach_check_callback_func(st_data_t, st_data_t, st_data_t, int); +int rb_st_foreach_with_replace(st_table *tab, st_foreach_check_callback_func *func, st_update_callback_func *replace, st_data_t arg); +int rb_st_foreach(st_table *, st_foreach_callback_func *, st_data_t); +int rb_st_foreach_check(st_table *, st_foreach_check_callback_func *, st_data_t, st_data_t); +st_index_t rb_st_keys(st_table *table, st_data_t *keys, st_index_t size); +st_index_t rb_st_keys_check(st_table *table, st_data_t *keys, st_index_t size, st_data_t never); +st_index_t rb_st_values(st_table *table, st_data_t *values, st_index_t size); +st_index_t rb_st_values_check(st_table *table, st_data_t *values, st_index_t size, st_data_t never); +void rb_st_add_direct(st_table *, st_data_t, st_data_t); +void rb_st_free_table(st_table *); +void rb_st_cleanup_safe(st_table *, st_data_t); +void rb_st_clear(st_table *); +st_table *rb_st_copy(st_table *); +__attribute__((__const__)) int rb_st_numcmp(st_data_t, st_data_t); +__attribute__((__const__)) st_index_t rb_st_numhash(st_data_t); +__attribute__((__pure__)) int rb_st_locale_insensitive_strcasecmp(const char *s1, const char *s2); +__attribute__((__pure__)) int rb_st_locale_insensitive_strncasecmp(const char *s1, const char *s2, size_t n); +__attribute__((__pure__)) size_t rb_st_memsize(const st_table *); +__attribute__((__pure__)) st_index_t rb_st_hash(const void *ptr, size_t len, st_index_t h); +__attribute__((__const__)) st_index_t rb_st_hash_uint32(st_index_t h, uint32_t i); +__attribute__((__const__)) st_index_t rb_st_hash_uint(st_index_t h, st_index_t i); +__attribute__((__const__)) st_index_t rb_st_hash_end(st_index_t h); +__attribute__((__const__)) st_index_t rb_st_hash_start(st_index_t h); +void rb_hash_bulk_insert_into_st_table(long, const VALUE *, VALUE); + +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline VALUE +RB_ST2FIX(st_data_t i) +{ + long x = i; + if (x >= 0) { + x &= (9223372036854775807L / 2); + } + else { + x |= ((-9223372036854775807L -1L) / 2); + } + ((void)0); + unsigned long y = ((unsigned long)x); + return RB_INT2FIX(y); +} + + + + +void rb_gc_writebarrier(VALUE old, VALUE young); +void rb_gc_writebarrier_unprotect(VALUE obj); +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_OBJ_PROMOTED_RAW(VALUE obj) +{ + ((void)0); + return RB_FL_ANY_RAW(obj, RUBY_FL_PROMOTED); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_OBJ_PROMOTED(VALUE obj) +{ + if (! RB_FL_ABLE(obj)) { + return 0; + } + else { + return RB_OBJ_PROMOTED_RAW(obj); + } +} +static inline VALUE +rb_obj_wb_unprotect( + VALUE x, + __attribute__((__unused__)) + const char *filename, + __attribute__((__unused__)) + int line) +{ + rb_gc_writebarrier_unprotect(x); + return x; +} +static inline VALUE +rb_obj_written( + VALUE a, + __attribute__((__unused__)) + VALUE oldv, + VALUE b, + __attribute__((__unused__)) + const char *filename, + __attribute__((__unused__)) + int line) +{ + if (!RB_SPECIAL_CONST_P(b)) { + rb_gc_writebarrier(a, b); + } + return a; +} +static inline VALUE +rb_obj_write( + VALUE a, VALUE *slot, VALUE b, + __attribute__((__unused__)) + const char *filename, + __attribute__((__unused__)) + int line) +{ + *slot = b; + rb_obj_written(a, ((VALUE)RUBY_Qundef) , b, filename, line); + return a; +} +enum ruby_rarray_flags { + RARRAY_EMBED_FLAG = RUBY_FL_USER1, + RARRAY_EMBED_LEN_MASK = RUBY_FL_USER9 | RUBY_FL_USER8 | RUBY_FL_USER7 | RUBY_FL_USER6 | + RUBY_FL_USER5 | RUBY_FL_USER4 | RUBY_FL_USER3 + , + RARRAY_TRANSIENT_FLAG = RUBY_FL_USER13 +}; +enum ruby_rarray_consts { + RARRAY_EMBED_LEN_SHIFT = RUBY_FL_USHIFT + 3 +}; +struct RArray { + struct RBasic basic; + union { + struct { + long len; + union { + long capa; + const + VALUE shared_root; + } aux; + const VALUE *ptr; + } heap; + const VALUE ary[1]; + } as; +}; +VALUE *rb_ary_ptr_use_start(VALUE ary); +void rb_ary_ptr_use_end(VALUE a); +void rb_ary_detransient(VALUE a); +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline long +RARRAY_EMBED_LEN(VALUE ary) +{ + ((void)0); + ((void)0); + VALUE f = ((struct RBasic *)(ary))->flags; + f &= RARRAY_EMBED_LEN_MASK; + f >>= RARRAY_EMBED_LEN_SHIFT; + return ((long)f); +} +__attribute__((__pure__)) +static inline long +rb_array_len(VALUE a) +{ + ((void)0); + if (RB_FL_ANY_RAW(a, RARRAY_EMBED_FLAG)) { + return RARRAY_EMBED_LEN(a); + } + else { + return ((struct RArray *)(a))->as.heap.len; + } +} +__attribute__((__artificial__)) +static inline int +RARRAY_LENINT(VALUE ary) +{ + return rb_long2int_inline(rb_array_len(ary)); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RARRAY_TRANSIENT_P(VALUE ary) +{ + ((void)0); + return RB_FL_ANY_RAW(ary, RARRAY_TRANSIENT_FLAG); +} +__attribute__((__pure__)) +static inline const VALUE * +rb_array_const_ptr_transient(VALUE a) +{ + ((void)0); + if (RB_FL_ANY_RAW(a, RARRAY_EMBED_FLAG)) { + return (((struct RArray *)(a))->as.ary); + } + else { + return (((struct RArray *)(a))->as.heap.ptr); + } +} +static inline const VALUE * +rb_array_const_ptr(VALUE a) +{ + ((void)0); + if (RARRAY_TRANSIENT_P(a)) { + rb_ary_detransient(a); + } + return rb_array_const_ptr_transient(a); +} +static inline VALUE * +rb_array_ptr_use_start(VALUE a, + __attribute__((__unused__)) + int allow_transient) +{ + ((void)0); + if (!allow_transient) { + if (RARRAY_TRANSIENT_P(a)) { + rb_ary_detransient(a); + } + } + return rb_ary_ptr_use_start(a); +} +static inline void +rb_array_ptr_use_end(VALUE a, + __attribute__((__unused__)) + int allow_transient) +{ + ((void)0); + rb_ary_ptr_use_end(a); +} +static inline VALUE * +RARRAY_PTR(VALUE ary) +{ + ((void)0); + VALUE tmp = (1 ? rb_obj_wb_unprotect(ary, "./include/ruby/internal/core/rarray.h", 550) : ary); + return ((VALUE *)rb_array_const_ptr(tmp)); +} +static inline void +RARRAY_ASET(VALUE ary, long i, VALUE v) +{ + do { ((void)0); const VALUE rbimpl_ary = (ary); VALUE *ptr = rb_array_ptr_use_start(rbimpl_ary, (1)); (rb_obj_write((VALUE)(ary), (VALUE *)(&ptr[i]), (VALUE)(v), "./include/ruby/internal/core/rarray.h", 569)); rb_array_ptr_use_end(rbimpl_ary, (1)); } while (0); +} + + +int rb_big_sign(VALUE num); +static inline _Bool +RBIGNUM_POSITIVE_P(VALUE b) +{ + ((void)0); + return rb_big_sign(b); +} +static inline _Bool +RBIGNUM_NEGATIVE_P(VALUE b) +{ + ((void)0); + return ! RBIGNUM_POSITIVE_P(b); +} + +enum ruby_rmodule_flags { + RMODULE_IS_REFINEMENT = RUBY_FL_USER3 +}; +struct RClass; +VALUE rb_class_get_superclass(VALUE klass); + +typedef void (*RUBY_DATA_FUNC)(void*); +struct RData { + struct RBasic basic; + RUBY_DATA_FUNC dmark; + RUBY_DATA_FUNC dfree; + void *data; +}; +VALUE rb_data_object_wrap(VALUE klass, void *datap, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree); +VALUE rb_data_object_zalloc(VALUE klass, size_t size, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree); +extern VALUE rb_cObject; +__attribute__((__warning__ ("untyped Data is unsafe; use TypedData instead"))) __attribute__((__deprecated__ ("by TypedData"))) +static inline VALUE +rb_data_object_wrap_warning(VALUE klass, void *ptr, RUBY_DATA_FUNC mark, RUBY_DATA_FUNC free) +{ + return rb_data_object_wrap(klass, ptr, mark, free); +} +static inline void * +rb_data_object_get(VALUE obj) +{ + Check_Type(obj, RUBY_T_DATA); + return ((struct RData *)(obj))->data; +} +__attribute__((__warning__ ("untyped Data is unsafe; use TypedData instead"))) __attribute__((__deprecated__ ("by TypedData"))) +static inline void * +rb_data_object_get_warning(VALUE obj) +{ + return rb_data_object_get(obj); +} +static inline VALUE +rb_data_object_make(VALUE klass, RUBY_DATA_FUNC mark_func, RUBY_DATA_FUNC free_func, void **datap, size_t size) +{ + VALUE result = rb_data_object_zalloc( (klass), (size), ((void (*)(void *))(mark_func)), ((void (*)(void *))(free_func))); (*datap) = ((void *)((struct RData *)(result))->data); ((void)(*datap)); + return result; +} +__attribute__((__deprecated__ ("by: rb_data_object_wrap"))) +static inline VALUE +rb_data_object_alloc(VALUE klass, void *data, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree) +{ + return rb_data_object_wrap(klass, data, dmark, dfree); +} + +struct rb_io_t; +struct RFile { + struct RBasic basic; + struct rb_io_t *fptr; +}; + +struct st_table; +size_t rb_hash_size_num(VALUE hash); +struct st_table *rb_hash_tbl(VALUE hash, const char *file, int line); +VALUE rb_hash_set_ifnone(VALUE hash, VALUE ifnone); + +enum ruby_robject_flags { + ROBJECT_EMBED = RUBY_FL_USER1 +}; +struct st_table; +struct RObject { + struct RBasic basic; + union { + struct { + VALUE *ivptr; + struct rb_id_table *iv_index_tbl; + } heap; + VALUE ary[1]; + } as; +}; +static const int32_t ROBJECT_OFFSET_AS_HEAP_IVPTR = __builtin_offsetof(struct RObject, as.heap.ivptr); +static const int32_t ROBJECT_OFFSET_AS_HEAP_IV_INDEX_TBL = __builtin_offsetof(struct RObject, as.heap.iv_index_tbl); +static const int32_t ROBJECT_OFFSET_AS_ARY = __builtin_offsetof(struct RObject, as.ary); +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline VALUE * +ROBJECT_IVPTR(VALUE obj) +{ + ((void)0); + struct RObject *const ptr = ((struct RObject *)(obj)); + if (RB_FL_ANY_RAW(obj, ROBJECT_EMBED)) { + return ptr->as.ary; + } + else { + return ptr->as.heap.ivptr; + } +} + +struct re_patter_buffer; +struct RRegexp { + struct RBasic basic; + struct re_pattern_buffer *ptr; + const VALUE src; + unsigned long usecnt; +}; +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline VALUE +RREGEXP_SRC(VALUE rexp) +{ + ((void)0); + VALUE ret = ((struct RRegexp *)(rexp))->src; + ((void)0); + return ret; +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline char * +RREGEXP_SRC_PTR(VALUE rexp) +{ + return RSTRING_PTR(RREGEXP_SRC(rexp)); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline long +RREGEXP_SRC_LEN(VALUE rexp) +{ + return RSTRING_LEN(RREGEXP_SRC(rexp)); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline char * +RREGEXP_SRC_END(VALUE rexp) +{ + return RSTRING_END(RREGEXP_SRC(rexp)); +} + + +VALUE rb_struct_size(VALUE st); +VALUE rb_struct_aref(VALUE st, VALUE k); +VALUE rb_struct_aset(VALUE st, VALUE k, VALUE v); +__attribute__((__artificial__)) +static inline long +RSTRUCT_LEN(VALUE st) +{ + ((void)0); + return rb_num2long_inline(rb_struct_size(st)); +} +__attribute__((__artificial__)) +static inline VALUE +RSTRUCT_SET(VALUE st, int k, VALUE v) +{ + ((void)0); + return rb_struct_aset(st, rb_int2num_inline(k), (v)); +} +__attribute__((__artificial__)) +static inline VALUE +RSTRUCT_GET(VALUE st, int k) +{ + ((void)0); + return rb_struct_aref(st, rb_int2num_inline(k)); +} + +enum +__attribute__((__flag_enum__)) +rbimpl_typeddata_flags { + RUBY_TYPED_FREE_IMMEDIATELY = 1, + RUBY_TYPED_FROZEN_SHAREABLE = RUBY_FL_SHAREABLE, + RUBY_TYPED_WB_PROTECTED = RUBY_FL_WB_PROTECTED, + RUBY_TYPED_PROMOTED1 = RUBY_FL_PROMOTED1 +}; +typedef struct rb_data_type_struct rb_data_type_t; +struct rb_data_type_struct { + const char *wrap_struct_name; + struct { + RUBY_DATA_FUNC dmark; + RUBY_DATA_FUNC dfree; + size_t (*dsize)(const void *); + RUBY_DATA_FUNC dcompact; + void *reserved[1]; + } function; + const rb_data_type_t *parent; + void *data; + VALUE flags; +}; +struct RTypedData { + struct RBasic basic; + const rb_data_type_t *type; + VALUE typed_flag; + void *data; +}; +__attribute__((__nonnull__ (3))) +VALUE rb_data_typed_object_wrap(VALUE klass, void *datap, const rb_data_type_t *type); +VALUE rb_data_typed_object_zalloc(VALUE klass, size_t size, const rb_data_type_t *type); +int rb_typeddata_inherited_p(const rb_data_type_t *child, const rb_data_type_t *parent); +int rb_typeddata_is_kind_of(VALUE obj, const rb_data_type_t *data_type); +void *rb_check_typeddata(VALUE obj, const rb_data_type_t *data_type); +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +rbimpl_rtypeddata_p(VALUE obj) +{ + return ((struct RTypedData *)(obj))->typed_flag == 1; +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RTYPEDDATA_P(VALUE obj) +{ + return rbimpl_rtypeddata_p(obj); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline const struct rb_data_type_struct * +RTYPEDDATA_TYPE(VALUE obj) +{ + return ((struct RTypedData *)(obj))->type; +} +static inline VALUE +rb_data_typed_object_make(VALUE klass, const rb_data_type_t *type, void **datap, size_t size) +{ + VALUE result = rb_data_typed_object_zalloc(klass, size, type); (*datap) = ((void *)(((struct RTypedData *)(result))->data)); ((void)(*datap)); + return result; +} +__attribute__((__deprecated__ ("by: rb_data_typed_object_wrap"))) +static inline VALUE +rb_data_typed_object_alloc(VALUE klass, void *datap, const rb_data_type_t *type) +{ + return rb_data_typed_object_wrap(klass, datap, type); +} + +typedef __darwin_wint_t wint_t; +typedef struct { + __darwin_rune_t __min; + __darwin_rune_t __max; + __darwin_rune_t __map; + __uint32_t *__types; +} _RuneEntry; +typedef struct { + int __nranges; + _RuneEntry *__ranges; +} _RuneRange; +typedef struct { + char __name[14]; + __uint32_t __mask; +} _RuneCharClass; +typedef struct { + char __magic[8]; + char __encoding[32]; + __darwin_rune_t (*__sgetrune)(const char *, __darwin_size_t, char const **); + int (*__sputrune)(__darwin_rune_t, char *, __darwin_size_t, char **); + __darwin_rune_t __invalid_rune; + __uint32_t __runetype[(1 <<8 )]; + __darwin_rune_t __maplower[(1 <<8 )]; + __darwin_rune_t __mapupper[(1 <<8 )]; + _RuneRange __runetype_ext; + _RuneRange __maplower_ext; + _RuneRange __mapupper_ext; + void *__variable; + int __variable_len; + int __ncharclasses; + _RuneCharClass *__charclasses; +} _RuneLocale; +extern _RuneLocale _DefaultRuneLocale; +extern _RuneLocale *_CurrentRuneLocale; + +unsigned long ___runetype(__darwin_ct_rune_t); +__darwin_ct_rune_t ___tolower(__darwin_ct_rune_t); +__darwin_ct_rune_t ___toupper(__darwin_ct_rune_t); +inline int +isascii(int _c) +{ + return ((_c & ~0x7F) == 0); +} +int __maskrune(__darwin_ct_rune_t, unsigned long); +inline int +__istype(__darwin_ct_rune_t _c, unsigned long _f) +{ + return (isascii(_c) ? !!(_DefaultRuneLocale.__runetype[_c] & _f) + : !!__maskrune(_c, _f)); +} +inline __darwin_ct_rune_t +__isctype(__darwin_ct_rune_t _c, unsigned long _f) +{ + return (_c < 0 || _c >= (1 <<8 )) ? 0 : + !!(_DefaultRuneLocale.__runetype[_c] & _f); +} +__darwin_ct_rune_t __toupper(__darwin_ct_rune_t); +__darwin_ct_rune_t __tolower(__darwin_ct_rune_t); +inline int +__wcwidth(__darwin_ct_rune_t _c) +{ + unsigned int _x; + if (_c == 0) + return (0); + _x = (unsigned int)__maskrune(_c, 0xe0000000L|0x00040000L); + if ((_x & 0xe0000000L) != 0) + return ((_x & 0xe0000000L) >> 30); + return ((_x & 0x00040000L) != 0 ? 1 : -1); +} +inline int +isalnum(int _c) +{ + return (__istype(_c, 0x00000100L|0x00000400L)); +} +inline int +isalpha(int _c) +{ + return (__istype(_c, 0x00000100L)); +} +inline int +isblank(int _c) +{ + return (__istype(_c, 0x00020000L)); +} +inline int +iscntrl(int _c) +{ + return (__istype(_c, 0x00000200L)); +} +inline int +isdigit(int _c) +{ + return (__isctype(_c, 0x00000400L)); +} +inline int +isgraph(int _c) +{ + return (__istype(_c, 0x00000800L)); +} +inline int +islower(int _c) +{ + return (__istype(_c, 0x00001000L)); +} +inline int +isprint(int _c) +{ + return (__istype(_c, 0x00040000L)); +} +inline int +ispunct(int _c) +{ + return (__istype(_c, 0x00002000L)); +} +inline int +isspace(int _c) +{ + return (__istype(_c, 0x00004000L)); +} +inline int +isupper(int _c) +{ + return (__istype(_c, 0x00008000L)); +} +inline int +isxdigit(int _c) +{ + return (__isctype(_c, 0x00010000L)); +} +inline int +toascii(int _c) +{ + return (_c & 0x7F); +} +inline int +tolower(int _c) +{ + return (__tolower(_c)); +} +inline int +toupper(int _c) +{ + return (__toupper(_c)); +} +inline int +digittoint(int _c) +{ + return (__maskrune(_c, 0x0F)); +} +inline int +ishexnumber(int _c) +{ + return (__istype(_c, 0x00010000L)); +} +inline int +isideogram(int _c) +{ + return (__istype(_c, 0x00080000L)); +} +inline int +isnumber(int _c) +{ + return (__istype(_c, 0x00000400L)); +} +inline int +isphonogram(int _c) +{ + return (__istype(_c, 0x00200000L)); +} +inline int +isrune(int _c) +{ + return (__istype(_c, 0xFFFFFFF0L)); +} +inline int +isspecial(int _c) +{ + return (__istype(_c, 0x00100000L)); +} +__attribute__((__nonnull__ ())) +int rb_st_locale_insensitive_strcasecmp(const char *s1, const char *s2); +__attribute__((__nonnull__ ())) +int rb_st_locale_insensitive_strncasecmp(const char *s1, const char *s2, size_t n); +__attribute__((__nonnull__ (1))) +unsigned long ruby_strtoul(const char *str, char **endptr, int base); +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isascii(int c) +{ + return '\0' <= c && c <= '\x7f'; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isupper(int c) +{ + return 'A' <= c && c <= 'Z'; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_islower(int c) +{ + return 'a' <= c && c <= 'z'; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isalpha(int c) +{ + return rb_isupper(c) || rb_islower(c); +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isdigit(int c) +{ + return '0' <= c && c <= '9'; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isalnum(int c) +{ + return rb_isalpha(c) || rb_isdigit(c); +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isxdigit(int c) +{ + return rb_isdigit(c) || ('A' <= c && c <= 'F') || ('a' <= c && c <= 'f'); +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isblank(int c) +{ + return c == ' ' || c == '\t'; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isspace(int c) +{ + return c == ' ' || ('\t' <= c && c <= '\r'); +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_iscntrl(int c) +{ + return ('\0' <= c && c < ' ') || c == '\x7f'; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isprint(int c) +{ + return ' ' <= c && c <= '\x7e'; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_ispunct(int c) +{ + return !rb_isalnum(c); +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isgraph(int c) +{ + return '!' <= c && c <= '\x7e'; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_tolower(int c) +{ + return rb_isupper(c) ? (c|0x20) : c; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_toupper(int c) +{ + return rb_islower(c) ? (c&0x5f) : c; +} + +__attribute__((__nonnull__ ())) +VALUE rb_eval_string(const char *str); +__attribute__((__nonnull__ (1))) +VALUE rb_eval_string_protect(const char *str, int *state); +__attribute__((__nonnull__ (1))) +VALUE rb_eval_string_wrap(const char *str, int *state); +VALUE rb_funcall(VALUE recv, ID mid, int n, ...); +VALUE rb_funcallv(VALUE recv, ID mid, int argc, const VALUE *argv); +VALUE rb_funcallv_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat); +VALUE rb_funcallv_public(VALUE recv, ID mid, int argc, const VALUE *argv); +VALUE rb_funcallv_public_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat); +VALUE rb_funcall_passing_block(VALUE recv, ID mid, int argc, const VALUE *argv); +VALUE rb_funcall_passing_block_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat); +VALUE rb_funcall_with_block(VALUE recv, ID mid, int argc, const VALUE *argv, VALUE procval); +VALUE rb_funcall_with_block_kw(VALUE recv, ID mid, int argc, const VALUE *argv, VALUE procval, int kw_splat); +VALUE rb_call_super(int argc, const VALUE *argv); +VALUE rb_call_super_kw(int argc, const VALUE *argv, int kw_splat); +VALUE rb_current_receiver(void); +__attribute__((__nonnull__ (2))) +int rb_get_kwargs(VALUE keyword_hash, const ID *table, int required, int optional, VALUE *values); +__attribute__((__nonnull__ ())) +VALUE rb_extract_keywords(VALUE *orighash); + +typedef uint32_t rb_event_flag_t; +typedef void (*rb_event_hook_func_t)(rb_event_flag_t evflag, VALUE data, VALUE self, ID mid, VALUE klass); +void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data); +int rb_remove_event_hook(rb_event_hook_func_t func); + + +void rb_gc_register_address(VALUE *valptr); +void rb_global_variable(VALUE *); +void rb_gc_unregister_address(VALUE *valptr); +void rb_gc_register_mark_object(VALUE object); + +typedef int ruby_glob_func(const char *path, VALUE arg, void *enc); +__attribute__((__nonnull__ ())) +void rb_glob(const char *pattern, void (*func)(const char *path, VALUE arg, void *enc), VALUE arg); +__attribute__((__nonnull__ ())) +int ruby_glob(const char *pattern, int flags, ruby_glob_func *func, VALUE arg); +__attribute__((__nonnull__ ())) +int ruby_brace_glob(const char *pattern, int flags, ruby_glob_func *func, VALUE arg); + +extern VALUE rb_mKernel; +extern VALUE rb_mComparable; +extern VALUE rb_mEnumerable; +extern VALUE rb_mErrno; +extern VALUE rb_mFileTest; +extern VALUE rb_mGC; +extern VALUE rb_mMath; +extern VALUE rb_mProcess; +extern VALUE rb_mWaitReadable; +extern VALUE rb_mWaitWritable; +extern VALUE rb_cBasicObject; +extern VALUE rb_cObject; +extern VALUE rb_cArray; +extern VALUE rb_cBinding; +extern VALUE rb_cClass; +extern VALUE rb_cDir; +extern VALUE rb_cEncoding; +extern VALUE rb_cEnumerator; +extern VALUE rb_cFalseClass; +extern VALUE rb_cFile; +extern VALUE rb_cComplex; +extern VALUE rb_cFloat; +extern VALUE rb_cHash; +extern VALUE rb_cIO; +extern VALUE rb_cInteger; +extern VALUE rb_cMatch; +extern VALUE rb_cMethod; +extern VALUE rb_cModule; +extern VALUE rb_cRefinement; +extern VALUE rb_cNameErrorMesg; +extern VALUE rb_cNilClass; +extern VALUE rb_cNumeric; +extern VALUE rb_cProc; +extern VALUE rb_cRandom; +extern VALUE rb_cRange; +extern VALUE rb_cRational; +extern VALUE rb_cRegexp; +extern VALUE rb_cStat; +extern VALUE rb_cString; +extern VALUE rb_cStruct; +extern VALUE rb_cSymbol; +extern VALUE rb_cThread; +extern VALUE rb_cTime; +extern VALUE rb_cTrueClass; +extern VALUE rb_cUnboundMethod; +extern VALUE rb_eException; +extern VALUE rb_eStandardError; +extern VALUE rb_eSystemExit; +extern VALUE rb_eInterrupt; +extern VALUE rb_eSignal; +extern VALUE rb_eFatal; +extern VALUE rb_eArgError; +extern VALUE rb_eEOFError; +extern VALUE rb_eIndexError; +extern VALUE rb_eStopIteration; +extern VALUE rb_eKeyError; +extern VALUE rb_eRangeError; +extern VALUE rb_eIOError; +extern VALUE rb_eRuntimeError; +extern VALUE rb_eFrozenError; +extern VALUE rb_eSecurityError; +extern VALUE rb_eSystemCallError; +extern VALUE rb_eThreadError; +extern VALUE rb_eTypeError; +extern VALUE rb_eZeroDivError; +extern VALUE rb_eNotImpError; +extern VALUE rb_eNoMemError; +extern VALUE rb_eNoMethodError; +extern VALUE rb_eFloatDomainError; +extern VALUE rb_eLocalJumpError; +extern VALUE rb_eSysStackError; +extern VALUE rb_eRegexpError; +extern VALUE rb_eEncodingError; +extern VALUE rb_eEncCompatError; +extern VALUE rb_eNoMatchingPatternError; +extern VALUE rb_eNoMatchingPatternKeyError; +extern VALUE rb_eScriptError; +extern VALUE rb_eNameError; +extern VALUE rb_eSyntaxError; +extern VALUE rb_eLoadError; +extern VALUE rb_eMathDomainError; +extern VALUE rb_stdin; +extern VALUE rb_stdout; +extern VALUE rb_stderr; +__attribute__((__pure__)) +static inline VALUE +rb_class_of(VALUE obj) +{ + if (! RB_SPECIAL_CONST_P(obj)) { + return RBASIC_CLASS(obj); + } + else if (obj == ((VALUE)RUBY_Qfalse)) { + return rb_cFalseClass; + } + else if (obj == ((VALUE)RUBY_Qnil)) { + return rb_cNilClass; + } + else if (obj == ((VALUE)RUBY_Qtrue)) { + return rb_cTrueClass; + } + else if (RB_FIXNUM_P(obj)) { + return rb_cInteger; + } + else if (RB_STATIC_SYM_P(obj)) { + return rb_cSymbol; + } + else if (RB_FLONUM_P(obj)) { + return rb_cFloat; + } + __builtin_unreachable(); +} + + +__attribute__((__nonnull__ ())) +void ruby_sysinit(int *argc, char ***argv); +void ruby_init(void); +void* ruby_options(int argc, char** argv); +int ruby_executable_node(void *n, int *status); +int ruby_run_node(void *n); +void ruby_show_version(void); +void ruby_show_copyright(void); +void ruby_init_stack(volatile VALUE *addr); +int ruby_setup(void); +int ruby_cleanup(int ex); +void ruby_finalize(void); +__declspec(noreturn) +void ruby_stop(int); +int ruby_stack_check(void); +size_t ruby_stack_length(VALUE **topnotch); +int ruby_exec_node(void *n); +void ruby_script(const char* name); +void ruby_set_script_name(VALUE name); +void ruby_prog_init(void); +void ruby_set_argv(int argc, char **argv); +void *ruby_process_options(int argc, char **argv); +void ruby_init_loadpath(void); +void ruby_incpush(const char *path); +void ruby_sig_finalize(void); + +typedef VALUE rb_block_call_func(VALUE yielded_arg, VALUE callback_arg, int argc, const VALUE *argv, VALUE blockarg); +typedef rb_block_call_func *rb_block_call_func_t; +VALUE rb_each(VALUE obj); +VALUE rb_yield(VALUE val); +VALUE rb_yield_values(int n, ...); +VALUE rb_yield_values2(int n, const VALUE *argv); +VALUE rb_yield_values_kw(int n, const VALUE *argv, int kw_splat); +VALUE rb_yield_splat(VALUE ary); +VALUE rb_yield_splat_kw(VALUE ary, int kw_splat); +VALUE rb_yield_block(VALUE yielded_arg, VALUE callback_arg, int argc, const VALUE *argv, VALUE blockarg); +int rb_keyword_given_p(void); +int rb_block_given_p(void); +void rb_need_block(void); +__attribute__((__deprecated__ ("by: rb_block_call since 1.9"))) +VALUE rb_iterate(VALUE (*func1)(VALUE), VALUE data1, rb_block_call_func_t proc, VALUE data2); +VALUE rb_block_call(VALUE obj, ID mid, int argc, const VALUE *argv, rb_block_call_func_t proc, VALUE data2); +VALUE rb_block_call_kw(VALUE obj, ID mid, int argc, const VALUE *argv, rb_block_call_func_t proc, VALUE data2, int kw_splat); +VALUE rb_rescue(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*r_proc)(VALUE, VALUE), VALUE data2); +VALUE rb_rescue2(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*r_proc)(VALUE, VALUE), VALUE data2, ...); +VALUE rb_vrescue2(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*r_proc)(VALUE, VALUE), VALUE data2, va_list ap); +VALUE rb_ensure(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*e_proc)(VALUE), VALUE data2); +VALUE rb_catch(const char *tag, rb_block_call_func_t func, VALUE data); +VALUE rb_catch_obj(VALUE tag, rb_block_call_func_t func, VALUE data); +__declspec(noreturn) +void rb_throw(const char *tag, VALUE val); +__declspec(noreturn) +void rb_throw_obj(VALUE tag, VALUE val); + +struct rbimpl_size_mul_overflow_tag { + _Bool left; + size_t right; +}; +__attribute__((__malloc__)) +__attribute__((__returns_nonnull__)) +__attribute__((__alloc_size__ (2))) +__attribute__((__nonnull__ ())) +void *rb_alloc_tmp_buffer(volatile VALUE *store, long len); +__attribute__((__malloc__)) +__attribute__((__returns_nonnull__)) +__attribute__((__alloc_size__ (2,3))) +__attribute__((__nonnull__ ())) +void *rb_alloc_tmp_buffer_with_count(volatile VALUE *store, size_t len,size_t count); +void rb_free_tmp_buffer(volatile VALUE *store); +__declspec(noreturn) +void ruby_malloc_size_overflow(size_t x, size_t y); +static inline int +rb_mul_size_overflow(size_t a, size_t b, size_t max, size_t *c) +{ + __extension__ unsigned __int128 da, db, c2; + da = a; + db = b; + c2 = da * db; + if (c2 > max) return 1; + *c = ((size_t)c2); + return 0; +} +__attribute__((__const__)) +static inline struct rbimpl_size_mul_overflow_tag +rbimpl_size_mul_overflow(size_t x, size_t y) +{ + struct rbimpl_size_mul_overflow_tag ret = { 0, 0, }; + ret.left = __builtin_mul_overflow(x, y, &ret.right); + return ret; +} +static inline size_t +rbimpl_size_mul_or_raise(size_t x, size_t y) +{ + struct rbimpl_size_mul_overflow_tag size = + rbimpl_size_mul_overflow(x, y); + if ((__builtin_expect(!!(! size.left), 1))) { + return size.right; + } + else { + ruby_malloc_size_overflow(x, y); + __builtin_unreachable(); + } +} +static inline void * +rb_alloc_tmp_buffer2(volatile VALUE *store, long count, size_t elsize) +{ + const size_t total_size = rbimpl_size_mul_or_raise(count, elsize); + const size_t cnt = (total_size + sizeof(VALUE) - 1) / sizeof(VALUE); + return rb_alloc_tmp_buffer_with_count(store, total_size, cnt); +} +__declspec(noalias) +__attribute__((__nonnull__ (1))) +__attribute__((__returns_nonnull__)) +static inline void * +ruby_nonempty_memcpy(void *dest, const void *src, size_t n) +{ + if (n) { + return __builtin___memcpy_chk (dest, src, n, __builtin_object_size (dest, 0)); + } + else { + return dest; + } +} + + +__attribute__((__nonnull__ ())) +VALUE rb_define_class(const char *name, VALUE super); +__attribute__((__nonnull__ ())) +VALUE rb_define_module(const char *name); +__attribute__((__nonnull__ ())) +VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super); +__attribute__((__nonnull__ ())) +VALUE rb_define_module_under(VALUE outer, const char *name); +void rb_include_module(VALUE klass, VALUE module); +void rb_extend_object(VALUE obj, VALUE mod); +void rb_prepend_module(VALUE klass, VALUE module); + +VALUE rb_newobj(void); +VALUE rb_newobj_of(VALUE klass, VALUE flags); +VALUE rb_obj_setup(VALUE obj, VALUE klass, VALUE type); +VALUE rb_obj_class(VALUE obj); +VALUE rb_singleton_class_clone(VALUE obj); +void rb_singleton_class_attached(VALUE klass, VALUE obj); +void rb_copy_generic_ivar(VALUE clone, VALUE obj); +__attribute__((__deprecated__ ("This is no longer how Object#clone works."))) +static inline void +rb_clone_setup(VALUE clone, VALUE obj) +{ + return; +} +__attribute__((__deprecated__ ("This is no longer how Object#dup works."))) +static inline void +rb_dup_setup(VALUE dup, VALUE obj) +{ + return; +} + + + + +__attribute__((__nonnull__ ())) +__declspec(noalias) +void rb_mem_clear(VALUE *buf, long len) + ; +VALUE rb_assoc_new(VALUE car, VALUE cdr); +VALUE rb_check_array_type(VALUE obj); +VALUE rb_ary_new(void); +VALUE rb_ary_new_capa(long capa); +VALUE rb_ary_new_from_args(long n, ...); +VALUE rb_ary_new_from_values(long n, const VALUE *elts); +VALUE rb_ary_hidden_new(long capa); +void rb_ary_free(VALUE ary); +void rb_ary_modify(VALUE ary); +VALUE rb_ary_freeze(VALUE obj); +__attribute__((__pure__)) +VALUE rb_ary_shared_with_p(VALUE lhs, VALUE rhs); +VALUE rb_ary_aref(int argc, const VALUE *argv, VALUE ary); +VALUE rb_ary_subseq(VALUE ary, long beg, long len); +void rb_ary_store(VALUE ary, long key, VALUE val); +VALUE rb_ary_dup(VALUE ary); +VALUE rb_ary_resurrect(VALUE ary); +VALUE rb_ary_to_ary(VALUE obj); +VALUE rb_ary_to_s(VALUE ary); +VALUE rb_ary_cat(VALUE ary, const VALUE *train, long len); +VALUE rb_ary_push(VALUE ary, VALUE elem); +VALUE rb_ary_pop(VALUE ary); +VALUE rb_ary_shift(VALUE ary); +VALUE rb_ary_unshift(VALUE ary, VALUE elem); +__attribute__((__pure__)) +VALUE rb_ary_entry(VALUE ary, long off); +VALUE rb_ary_each(VALUE ary); +VALUE rb_ary_join(VALUE ary, VALUE sep); +VALUE rb_ary_reverse(VALUE ary); +VALUE rb_ary_rotate(VALUE ary, long rot); +VALUE rb_ary_sort(VALUE ary); +VALUE rb_ary_sort_bang(VALUE ary); +VALUE rb_ary_delete(VALUE ary, VALUE elem); +VALUE rb_ary_delete_at(VALUE ary, long pos); +VALUE rb_ary_clear(VALUE ary); +VALUE rb_ary_plus(VALUE lhs, VALUE rhs); +VALUE rb_ary_concat(VALUE lhs, VALUE rhs); +VALUE rb_ary_assoc(VALUE alist, VALUE key); +VALUE rb_ary_rassoc(VALUE alist, VALUE key); +VALUE rb_ary_includes(VALUE ary, VALUE elem); +VALUE rb_ary_cmp(VALUE lhs, VALUE rhs); +VALUE rb_ary_replace(VALUE copy, VALUE orig); +VALUE rb_get_values_at(VALUE obj, long olen, int argc, const VALUE *argv, VALUE (*func)(VALUE obj, long oidx)); +VALUE rb_ary_resize(VALUE ary, long len); + +VALUE rb_exc_new(VALUE etype, const char *ptr, long len); +__attribute__((__nonnull__ ())) +VALUE rb_exc_new_cstr(VALUE etype, const char *str); +VALUE rb_exc_new_str(VALUE etype, VALUE str); +__declspec(noreturn) +__attribute__((__nonnull__ (1))) +__attribute__((__format__(__printf__, 1, 2))) +void rb_loaderror(const char *fmt, ...); +__declspec(noreturn) +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 3))) +void rb_loaderror_with_path(VALUE path, const char *fmt, ...); +__declspec(noreturn) +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 3))) +void rb_name_error(ID name, const char *fmt, ...); +__declspec(noreturn) +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 3))) +void rb_name_error_str(VALUE name, const char *fmt, ...); +__declspec(noreturn) +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 3))) +void rb_frozen_error_raise(VALUE recv, const char *fmt, ...); +__declspec(noreturn) +__attribute__((__nonnull__ ())) +void rb_invalid_str(const char *str, const char *type); +__declspec(noreturn) +__attribute__((__nonnull__ ())) +void rb_error_frozen(const char *what); +__declspec(noreturn) +void rb_error_frozen_object(VALUE what); +void rb_check_frozen(VALUE obj); +void rb_check_copyable(VALUE obj, VALUE orig); +__declspec(noreturn) +static void rb_error_arity(int argc, int min, int max); +static inline void +rb_check_frozen_inline(VALUE obj) +{ + if ((__builtin_expect(!!(RB_OBJ_FROZEN(obj)), 0))) { + rb_error_frozen_object(obj); + } +} +static inline int +rb_check_arity(int argc, int min, int max) +{ + if ((argc < min) || (max != (-1) && argc > max)) + rb_error_arity(argc, min, max); + return argc; +} + +__attribute__((__nonnull__ ())) +void rb_st_foreach_safe(struct st_table *st, st_foreach_callback_func *func, st_data_t arg); +VALUE rb_check_hash_type(VALUE obj); +__attribute__((__nonnull__ ())) +void rb_hash_foreach(VALUE hash, int (*func)(VALUE key, VALUE val, VALUE arg), VALUE arg); +VALUE rb_hash(VALUE obj); +VALUE rb_hash_new(void); +VALUE rb_hash_new_capa(long capa); +VALUE rb_hash_dup(VALUE hash); +VALUE rb_hash_freeze(VALUE obj); +VALUE rb_hash_aref(VALUE hash, VALUE key); +VALUE rb_hash_lookup(VALUE hash, VALUE key); +VALUE rb_hash_lookup2(VALUE hash, VALUE key, VALUE def); +VALUE rb_hash_fetch(VALUE hash, VALUE key); +VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val); +VALUE rb_hash_clear(VALUE hash); +VALUE rb_hash_delete_if(VALUE hash); +VALUE rb_hash_delete(VALUE hash, VALUE key); +void rb_hash_bulk_insert(long argc, const VALUE *argv, VALUE hash); +typedef VALUE rb_hash_update_func(VALUE newkey, VALUE oldkey, VALUE value); +VALUE rb_hash_update_by(VALUE hash1, VALUE hash2, rb_hash_update_func *func); +int rb_path_check(const char *path); +VALUE rb_env_clear(void); +VALUE rb_hash_size(VALUE hash); + +VALUE rb_block_proc(void); +VALUE rb_block_lambda(void); +VALUE rb_proc_new(rb_block_call_func_t func, VALUE callback_arg); +VALUE rb_obj_is_proc(VALUE recv); +VALUE rb_proc_call(VALUE recv, VALUE args); +VALUE rb_proc_call_kw(VALUE recv, VALUE args, int kw_splat); +VALUE rb_proc_call_with_block(VALUE recv, int argc, const VALUE *argv, VALUE proc); +VALUE rb_proc_call_with_block_kw(VALUE recv, int argc, const VALUE *argv, VALUE proc, int kw_splat); +int rb_proc_arity(VALUE recv); +VALUE rb_proc_lambda_p(VALUE recv); +VALUE rb_binding_new(void); +VALUE rb_obj_method(VALUE recv, VALUE mid); +VALUE rb_obj_is_method(VALUE recv); +VALUE rb_method_call(int argc, const VALUE *argv, VALUE recv); +VALUE rb_method_call_kw(int argc, const VALUE *argv, VALUE recv, int kw_splat); +VALUE rb_method_call_with_block(int argc, const VALUE *argv, VALUE recv, VALUE proc); +VALUE rb_method_call_with_block_kw(int argc, const VALUE *argv, VALUE recv, VALUE proc, int kw_splat); +int rb_mod_method_arity(VALUE mod, ID mid); +int rb_obj_method_arity(VALUE obj, ID mid); +__attribute__((__nonnull__ (1))) +VALUE rb_protect(VALUE (*func)(VALUE args), VALUE args, int *state); +__attribute__((__nonnull__ (2, 3))) +int rb_scan_args(int argc, const VALUE *argv, const char *fmt, ...); +__attribute__((__nonnull__ (3, 4))) +int rb_scan_args_kw(int kw_splat, int argc, const VALUE *argv, const char *fmt, ...); +__attribute__((__error__ ("bad scan arg format"))) +void rb_scan_args_bad_format(const char*); +__attribute__((__error__ ("variable argument length doesn't match"))) +void rb_scan_args_length_mismatch(const char*,int); +static inline _Bool +rb_scan_args_keyword_p(int kw_flag, VALUE last) +{ + switch (kw_flag) { + case 0: + return !! rb_keyword_given_p(); + case 1: + return 1; + case 3: + return (__builtin_constant_p(RUBY_T_HASH) ? rbimpl_RB_TYPE_P_fastpath((last), (RUBY_T_HASH)) : (RB_TYPE_P)((last), (RUBY_T_HASH))); + default: + return 0; + } +} +__attribute__((__always_inline__)) inline +static _Bool +rb_scan_args_lead_p(const char *fmt) +{ + return (((unsigned char)((fmt[0])-'0'))<10); +} +__attribute__((__always_inline__)) inline +static int +rb_scan_args_n_lead(const char *fmt) +{ + return (rb_scan_args_lead_p(fmt) ? fmt[0]-'0' : 0); +} +__attribute__((__always_inline__)) inline +static _Bool +rb_scan_args_opt_p(const char *fmt) +{ + return (rb_scan_args_lead_p(fmt) && (((unsigned char)((fmt[1])-'0'))<10)); +} +__attribute__((__always_inline__)) inline +static int +rb_scan_args_n_opt(const char *fmt) +{ + return (rb_scan_args_opt_p(fmt) ? fmt[1]-'0' : 0); +} +__attribute__((__always_inline__)) inline +static int +rb_scan_args_var_idx(const char *fmt) +{ + return (!rb_scan_args_lead_p(fmt) ? 0 : !(((unsigned char)((fmt[1])-'0'))<10) ? 1 : 2); +} +__attribute__((__always_inline__)) inline +static _Bool +rb_scan_args_f_var(const char *fmt) +{ + return (fmt[rb_scan_args_var_idx(fmt)]=='*'); +} +__attribute__((__always_inline__)) inline +static int +rb_scan_args_trail_idx(const char *fmt) +{ + const int idx = rb_scan_args_var_idx(fmt); + return idx+(fmt[idx]=='*'); +} +__attribute__((__always_inline__)) inline +static int +rb_scan_args_n_trail(const char *fmt) +{ + const int idx = rb_scan_args_trail_idx(fmt); + return ((((unsigned char)((fmt[idx])-'0'))<10) ? fmt[idx]-'0' : 0); +} +__attribute__((__always_inline__)) inline +static int +rb_scan_args_hash_idx(const char *fmt) +{ + const int idx = rb_scan_args_trail_idx(fmt); + return idx+(((unsigned char)((fmt[idx])-'0'))<10); +} +__attribute__((__always_inline__)) inline +static _Bool +rb_scan_args_f_hash(const char *fmt) +{ + return (fmt[rb_scan_args_hash_idx(fmt)]==':'); +} +__attribute__((__always_inline__)) inline +static int +rb_scan_args_block_idx(const char *fmt) +{ + const int idx = rb_scan_args_hash_idx(fmt); + return idx+(fmt[idx]==':'); +} +__attribute__((__always_inline__)) inline +static _Bool +rb_scan_args_f_block(const char *fmt) +{ + return (fmt[rb_scan_args_block_idx(fmt)]=='&'); +} +__attribute__((__always_inline__)) inline +static int +rb_scan_args_set(int kw_flag, int argc, const VALUE *argv, + int n_lead, int n_opt, int n_trail, + _Bool f_var, _Bool f_hash, _Bool f_block, + VALUE *vars[], const char *fmt __attribute__((__unused__)), int varc __attribute__((__unused__))) + __attribute__((__diagnose_if__((!(((unsigned char)(((fmt)[0])-'0'))<10) ? ((fmt)[0]!='*' ? (!(((unsigned char)(((fmt)[0])-'0'))<10) ? ((fmt)[0]!=':' ? ((fmt)[0]!='&' ? ((fmt)[0] ? -1 : (0)) : ((fmt)[(0)+1] ? -1 : ((0)+1))) : ((fmt)[(0)+1]!='&' ? ((fmt)[(0)+1] ? -1 : ((0)+1)) : ((fmt)[((0)+1)+1] ? -1 : (((0)+1)+1)))) : ((fmt)[(0)+1]!=':' ? ((fmt)[(0)+1]!='&' ? ((fmt)[(0)+1] ? -1 : ((0)+((fmt)[0]-'0'))) : ((fmt)[((0)+1)+1] ? -1 : (((0)+((fmt)[0]-'0'))+1))) : ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+((fmt)[0]-'0'))+1)) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+((fmt)[0]-'0'))+1)+1))))) : (!(((unsigned char)(((fmt)[(0)+1])-'0'))<10) ? ((fmt)[(0)+1]!=':' ? ((fmt)[(0)+1]!='&' ? ((fmt)[(0)+1] ? -1 : ((0)+1)) : ((fmt)[((0)+1)+1] ? -1 : (((0)+1)+1))) : ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+1)+1)) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+1)+1)+1)))) : ((fmt)[((0)+1)+1]!=':' ? ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+1)+((fmt)[(0)+1]-'0'))) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+1)+((fmt)[(0)+1]-'0'))+1))) : ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+1)+((fmt)[(0)+1]-'0'))+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+1)+((fmt)[(0)+1]-'0'))+1)+1)))))) : (!(((unsigned char)(((fmt)[(0)+1])-'0'))<10) ? ((fmt)[(0)+1]!='*' ? (!(((unsigned char)(((fmt)[(0)+1])-'0'))<10) ? ((fmt)[(0)+1]!=':' ? ((fmt)[(0)+1]!='&' ? ((fmt)[(0)+1] ? -1 : ((0)+(fmt)[0]-'0')) : ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+1))) : ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+1)) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+1)+1)))) : ((fmt)[((0)+1)+1]!=':' ? ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+((fmt)[(0)+1]-'0'))) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+((fmt)[(0)+1]-'0'))+1))) : ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+((fmt)[(0)+1]-'0'))+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+((fmt)[(0)+1]-'0'))+1)+1))))) : (!(((unsigned char)(((fmt)[((0)+1)+1])-'0'))<10) ? ((fmt)[((0)+1)+1]!=':' ? ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+1)) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+1)+1))) : ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+1)+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+1)+1)+1)))) : ((fmt)[(((0)+1)+1)+1]!=':' ? ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+1)+((fmt)[((0)+1)+1]-'0'))) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+1)+((fmt)[((0)+1)+1]-'0'))+1))) : ((fmt)[((((0)+1)+1)+1)+1]!='&' ? ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+1)+((fmt)[((0)+1)+1]-'0'))+1)) : ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+1)+((fmt)[((0)+1)+1]-'0'))+1)+1)))))) : ((fmt)[((0)+1)+1]!='*' ? (!(((unsigned char)(((fmt)[((0)+1)+1])-'0'))<10) ? ((fmt)[((0)+1)+1]!=':' ? ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1))) : ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+1)))) : ((fmt)[(((0)+1)+1)+1]!=':' ? ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+((fmt)[((0)+1)+1]-'0'))) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+((fmt)[((0)+1)+1]-'0'))+1))) : ((fmt)[((((0)+1)+1)+1)+1]!='&' ? ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+((fmt)[((0)+1)+1]-'0'))+1)) : ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+((fmt)[((0)+1)+1]-'0'))+1)+1))))) : (!(((unsigned char)(((fmt)[(((0)+1)+1)+1])-'0'))<10) ? ((fmt)[(((0)+1)+1)+1]!=':' ? ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+1))) : ((fmt)[((((0)+1)+1)+1)+1]!='&' ? ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+1)) : ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+1)+1)))) : ((fmt)[((((0)+1)+1)+1)+1]!=':' ? ((fmt)[((((0)+1)+1)+1)+1]!='&' ? ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+((fmt)[(((0)+1)+1)+1]-'0'))) : ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+((fmt)[(((0)+1)+1)+1]-'0'))+1))) : ((fmt)[(((((0)+1)+1)+1)+1)+1]!='&' ? ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+((fmt)[(((0)+1)+1)+1]-'0'))+1)) : ((fmt)[((((((0)+1)+1)+1)+1)+1)+1] ? -1 : (((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+((fmt)[(((0)+1)+1)+1]-'0'))+1)+1)))))))) < 0, "bad scan arg format", "error"))) + __attribute__((__diagnose_if__((!(((unsigned char)(((fmt)[0])-'0'))<10) ? ((fmt)[0]!='*' ? (!(((unsigned char)(((fmt)[0])-'0'))<10) ? ((fmt)[0]!=':' ? ((fmt)[0]!='&' ? ((fmt)[0] ? -1 : (0)) : ((fmt)[(0)+1] ? -1 : ((0)+1))) : ((fmt)[(0)+1]!='&' ? ((fmt)[(0)+1] ? -1 : ((0)+1)) : ((fmt)[((0)+1)+1] ? -1 : (((0)+1)+1)))) : ((fmt)[(0)+1]!=':' ? ((fmt)[(0)+1]!='&' ? ((fmt)[(0)+1] ? -1 : ((0)+((fmt)[0]-'0'))) : ((fmt)[((0)+1)+1] ? -1 : (((0)+((fmt)[0]-'0'))+1))) : ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+((fmt)[0]-'0'))+1)) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+((fmt)[0]-'0'))+1)+1))))) : (!(((unsigned char)(((fmt)[(0)+1])-'0'))<10) ? ((fmt)[(0)+1]!=':' ? ((fmt)[(0)+1]!='&' ? ((fmt)[(0)+1] ? -1 : ((0)+1)) : ((fmt)[((0)+1)+1] ? -1 : (((0)+1)+1))) : ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+1)+1)) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+1)+1)+1)))) : ((fmt)[((0)+1)+1]!=':' ? ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+1)+((fmt)[(0)+1]-'0'))) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+1)+((fmt)[(0)+1]-'0'))+1))) : ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+1)+((fmt)[(0)+1]-'0'))+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+1)+((fmt)[(0)+1]-'0'))+1)+1)))))) : (!(((unsigned char)(((fmt)[(0)+1])-'0'))<10) ? ((fmt)[(0)+1]!='*' ? (!(((unsigned char)(((fmt)[(0)+1])-'0'))<10) ? ((fmt)[(0)+1]!=':' ? ((fmt)[(0)+1]!='&' ? ((fmt)[(0)+1] ? -1 : ((0)+(fmt)[0]-'0')) : ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+1))) : ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+1)) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+1)+1)))) : ((fmt)[((0)+1)+1]!=':' ? ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+((fmt)[(0)+1]-'0'))) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+((fmt)[(0)+1]-'0'))+1))) : ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+((fmt)[(0)+1]-'0'))+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+((fmt)[(0)+1]-'0'))+1)+1))))) : (!(((unsigned char)(((fmt)[((0)+1)+1])-'0'))<10) ? ((fmt)[((0)+1)+1]!=':' ? ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+1)) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+1)+1))) : ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+1)+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+1)+1)+1)))) : ((fmt)[(((0)+1)+1)+1]!=':' ? ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+1)+((fmt)[((0)+1)+1]-'0'))) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+1)+((fmt)[((0)+1)+1]-'0'))+1))) : ((fmt)[((((0)+1)+1)+1)+1]!='&' ? ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+1)+((fmt)[((0)+1)+1]-'0'))+1)) : ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+1)+((fmt)[((0)+1)+1]-'0'))+1)+1)))))) : ((fmt)[((0)+1)+1]!='*' ? (!(((unsigned char)(((fmt)[((0)+1)+1])-'0'))<10) ? ((fmt)[((0)+1)+1]!=':' ? ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1))) : ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+1)))) : ((fmt)[(((0)+1)+1)+1]!=':' ? ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+((fmt)[((0)+1)+1]-'0'))) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+((fmt)[((0)+1)+1]-'0'))+1))) : ((fmt)[((((0)+1)+1)+1)+1]!='&' ? ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+((fmt)[((0)+1)+1]-'0'))+1)) : ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+((fmt)[((0)+1)+1]-'0'))+1)+1))))) : (!(((unsigned char)(((fmt)[(((0)+1)+1)+1])-'0'))<10) ? ((fmt)[(((0)+1)+1)+1]!=':' ? ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+1))) : ((fmt)[((((0)+1)+1)+1)+1]!='&' ? ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+1)) : ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+1)+1)))) : ((fmt)[((((0)+1)+1)+1)+1]!=':' ? ((fmt)[((((0)+1)+1)+1)+1]!='&' ? ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+((fmt)[(((0)+1)+1)+1]-'0'))) : ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+((fmt)[(((0)+1)+1)+1]-'0'))+1))) : ((fmt)[(((((0)+1)+1)+1)+1)+1]!='&' ? ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+((fmt)[(((0)+1)+1)+1]-'0'))+1)) : ((fmt)[((((((0)+1)+1)+1)+1)+1)+1] ? -1 : (((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+((fmt)[(((0)+1)+1)+1]-'0'))+1)+1)))))))) != varc, "variable argument length doesn't match", "error"))) +{ + int i, argi = 0, vari = 0; + VALUE *var, hash = ((VALUE)RUBY_Qnil); + const int n_mand = n_lead + n_trail; + if (f_hash && argc > 0) { + VALUE last = argv[argc - 1]; + if (rb_scan_args_keyword_p(kw_flag, last)) { + hash = rb_hash_dup(last); + argc--; + } + } + if (argc < n_mand) { + goto argc_error; + } + for (i = 0; i < n_lead; i++) { + var = vars[vari++]; + if (var) *var = argv[argi]; + argi++; + } + for (i = 0; i < n_opt; i++) { + var = vars[vari++]; + if (argi < argc - n_trail) { + if (var) *var = argv[argi]; + argi++; + } + else { + if (var) *var = ((VALUE)RUBY_Qnil); + } + } + if (f_var) { + int n_var = argc - argi - n_trail; + var = vars[vari++]; + if (0 < n_var) { + if (var) *var = rb_ary_new_from_values(n_var, &argv[argi]); + argi += n_var; + } + else { + if (var) *var = rb_ary_new(); + } + } + for (i = 0; i < n_trail; i++) { + var = vars[vari++]; + if (var) *var = argv[argi]; + argi++; + } + if (f_hash) { + var = vars[vari++]; + if (var) *var = hash; + } + if (f_block) { + var = vars[vari++]; + if (rb_block_given_p()) { + *var = rb_block_proc(); + } + else { + *var = ((VALUE)RUBY_Qnil); + } + } + if (argi == argc) { + return argc; + } + argc_error: + rb_error_arity(argc, n_mand, f_var ? (-1) : n_mand + n_opt); + __builtin_unreachable(); +} + + +ID rb_sym2id(VALUE obj); +VALUE rb_id2sym(ID id); +__attribute__((__nonnull__ ())) +ID rb_intern(const char *name); +ID rb_intern2(const char *name, long len); +ID rb_intern_str(VALUE str); +const char *rb_id2name(ID id); +__attribute__((__nonnull__ ())) +ID rb_check_id(volatile VALUE *namep); +ID rb_to_id(VALUE str); +VALUE rb_id2str(ID id); +VALUE rb_sym2str(VALUE id); +VALUE rb_to_symbol(VALUE name); +__attribute__((__nonnull__ ())) +VALUE rb_check_symbol(volatile VALUE *namep); +__attribute__((__pure__)) +__attribute__((__nonnull__ ())) +static inline ID +rb_intern_const(const char *str) +{ + size_t len = strlen(str); + return rb_intern2(str, ((long)len)); +} +__declspec(noalias) +__attribute__((__nonnull__ ())) +static inline ID +rbimpl_intern_const(ID *ptr, const char *str) +{ + while (! *ptr) { + *ptr = rb_intern_const(str); + } + return *ptr; +} + +typedef VALUE rb_gvar_getter_t(ID id, VALUE *data); +typedef void rb_gvar_setter_t(VALUE val, ID id, VALUE *data); +typedef void rb_gvar_marker_t(VALUE *var); +rb_gvar_getter_t rb_gvar_undef_getter; +rb_gvar_setter_t rb_gvar_undef_setter; +rb_gvar_marker_t rb_gvar_undef_marker; +rb_gvar_getter_t rb_gvar_val_getter; +rb_gvar_setter_t rb_gvar_val_setter; +rb_gvar_marker_t rb_gvar_val_marker; +rb_gvar_getter_t rb_gvar_var_getter; +rb_gvar_setter_t rb_gvar_var_setter; +rb_gvar_marker_t rb_gvar_var_marker; +__declspec(noreturn) +rb_gvar_setter_t rb_gvar_readonly_setter; +__attribute__((__nonnull__ ())) +void rb_define_variable(const char *name, VALUE *var); +__attribute__((__nonnull__ (1))) +void rb_define_virtual_variable(const char *name, rb_gvar_getter_t *getter, rb_gvar_setter_t *setter); +__attribute__((__nonnull__ (1))) +void rb_define_hooked_variable(const char *name, VALUE *var, rb_gvar_getter_t *getter, rb_gvar_setter_t *setter); +__attribute__((__nonnull__ ())) +void rb_define_readonly_variable(const char *name, const VALUE *var); +__attribute__((__nonnull__ ())) +void rb_define_const(VALUE klass, const char *name, VALUE val); +__attribute__((__nonnull__ ())) +void rb_define_global_const(const char *name, VALUE val); +__attribute__((__nonnull__ ())) +void rb_deprecate_constant(VALUE mod, const char *name); +__attribute__((__nonnull__ ())) +VALUE rb_gv_set(const char *name, VALUE val); +__attribute__((__nonnull__ ())) +VALUE rb_gv_get(const char *name); +__attribute__((__nonnull__ ())) +VALUE rb_iv_get(VALUE obj, const char *name); +__attribute__((__nonnull__ ())) +VALUE rb_iv_set(VALUE obj, const char *name, VALUE val); + +VALUE rb_get_path(VALUE obj); +VALUE rb_get_path_no_checksafe(VALUE); +__attribute__((__error__ (" argument length doesn't match"))) int rb_varargs_bad_length(int,int); +const char *rb_class2name(VALUE klass); +const char *rb_obj_classname(VALUE obj); +void rb_p(VALUE obj); +VALUE rb_equal(VALUE lhs, VALUE rhs); +VALUE rb_require(const char *feature); + + +VALUE rb_big_new(size_t len, int sign); +int rb_bigzero_p(VALUE x); +VALUE rb_big_clone(VALUE num); +void rb_big_2comp(VALUE num); +VALUE rb_big_norm(VALUE x); +void rb_big_resize(VALUE big, size_t len); +__attribute__((__nonnull__ ())) +VALUE rb_cstr_to_inum(const char *str, int base, int badcheck); +VALUE rb_str_to_inum(VALUE str, int base, int badcheck); +__attribute__((__nonnull__ ())) +VALUE rb_cstr2inum(const char *str, int base); +VALUE rb_str2inum(VALUE str, int base); +VALUE rb_big2str(VALUE x, int base); +long rb_big2long(VALUE x); +unsigned long rb_big2ulong(VALUE x); + long long + rb_big2ll(VALUE); +unsigned + long long + rb_big2ull(VALUE); +__attribute__((__nonnull__ ())) +void rb_big_pack(VALUE val, unsigned long *buf, long num_longs); +__attribute__((__nonnull__ ())) +VALUE rb_big_unpack(unsigned long *buf, long num_longs); +__attribute__((__nonnull__ ())) +int rb_uv_to_utf8(char buf[6], unsigned long uv); +VALUE rb_dbl2big(double d); +double rb_big2dbl(VALUE x); +VALUE rb_big_cmp(VALUE lhs, VALUE rhs); +VALUE rb_big_eq(VALUE lhs, VALUE rhs); +VALUE rb_big_eql(VALUE lhs, VALUE rhs); +VALUE rb_big_plus(VALUE x, VALUE y); +VALUE rb_big_minus(VALUE x, VALUE y); +VALUE rb_big_mul(VALUE x, VALUE y); +VALUE rb_big_div(VALUE x, VALUE y); +VALUE rb_big_idiv(VALUE x, VALUE y); +VALUE rb_big_modulo(VALUE x, VALUE y); +VALUE rb_big_divmod(VALUE x, VALUE y); +VALUE rb_big_pow(VALUE x, VALUE y); +VALUE rb_big_and(VALUE x, VALUE y); +VALUE rb_big_or(VALUE x, VALUE y); +VALUE rb_big_xor(VALUE x, VALUE y); +VALUE rb_big_lshift(VALUE x, VALUE y); +VALUE rb_big_rshift(VALUE x, VALUE y); +__attribute__((__nonnull__ ())) +int rb_integer_pack(VALUE val, void *words, size_t numwords, size_t wordsize, size_t nails, int flags); +__attribute__((__nonnull__ ())) +VALUE rb_integer_unpack(const void *words, size_t numwords, size_t wordsize, size_t nails, int flags); +size_t rb_absint_size(VALUE val, int *nlz_bits_ret); +size_t rb_absint_numwords(VALUE val, size_t word_numbits, size_t *nlz_bits_ret); +int rb_absint_singlebit_p(VALUE val); + + +int rb_cmpint(VALUE val, VALUE a, VALUE b); +__attribute__((__cold__)) +__declspec(noreturn) +void rb_cmperr(VALUE a, VALUE b); + +VALUE rb_complex_raw(VALUE real, VALUE imag); +VALUE rb_complex_new(VALUE real, VALUE imag); +VALUE rb_complex_new_polar(VALUE abs, VALUE arg); +__attribute__((__deprecated__ ("by: rb_complex_new_polar"))) +VALUE rb_complex_polar(VALUE abs, VALUE arg); +__attribute__((__pure__)) +VALUE rb_complex_real(VALUE z); +__attribute__((__pure__)) +VALUE rb_complex_imag(VALUE z); +VALUE rb_complex_plus(VALUE x, VALUE y); +VALUE rb_complex_minus(VALUE x, VALUE y); +VALUE rb_complex_mul(VALUE x, VALUE y); +VALUE rb_complex_div(VALUE x, VALUE y); +VALUE rb_complex_uminus(VALUE z); +VALUE rb_complex_conjugate(VALUE z); +VALUE rb_complex_abs(VALUE z); +VALUE rb_complex_arg(VALUE z); +VALUE rb_complex_pow(VALUE base, VALUE exp); +VALUE rb_dbl_complex_new(double real, double imag); +VALUE rb_Complex(VALUE real, VALUE imag); + +VALUE rb_fiber_new(rb_block_call_func_t func, VALUE callback_obj); +VALUE rb_fiber_new_storage(rb_block_call_func_t func, VALUE callback_obj, VALUE storage); +VALUE rb_fiber_current(void); +VALUE rb_fiber_alive_p(VALUE fiber); +VALUE rb_obj_is_fiber(VALUE obj); +VALUE rb_fiber_resume(VALUE fiber, int argc, const VALUE *argv); +VALUE rb_fiber_resume_kw(VALUE fiber, int argc, const VALUE *argv, int kw_splat); +VALUE rb_fiber_yield(int argc, const VALUE *argv); +VALUE rb_fiber_yield_kw(int argc, const VALUE *argv, int kw_splat); +VALUE rb_fiber_transfer(VALUE fiber, int argc, const VALUE *argv); +VALUE rb_fiber_transfer_kw(VALUE fiber, int argc, const VALUE *argv, int kw_splat); +VALUE rb_fiber_raise(VALUE fiber, int argc, const VALUE *argv); + +VALUE rb_dir_getwd(void); + +VALUE rb_enum_values_pack(int argc, const VALUE *argv); + + +__declspec(noreturn) +void rb_exc_raise(VALUE exc); +__declspec(noreturn) +void rb_exc_fatal(VALUE exc); +__declspec(noreturn) +VALUE rb_f_exit(int argc, const VALUE *argv); +__declspec(noreturn) +VALUE rb_f_abort(int argc, const VALUE *argv); +__declspec(noreturn) +void rb_interrupt(void); +ID rb_frame_this_func(void); +__declspec(noreturn) +void rb_jump_tag(int state); +void rb_obj_call_init(VALUE obj, int argc, const VALUE *argv); +void rb_obj_call_init_kw(VALUE, int, const VALUE*, int); +ID rb_frame_callee(void); +VALUE rb_make_exception(int argc, const VALUE *argv); +void rb_set_end_proc(void (*func)(VALUE arg), VALUE arg); +typedef VALUE rb_enumerator_size_func(VALUE recv, VALUE argv, VALUE eobj); +typedef struct { + VALUE begin; + VALUE end; + VALUE step; + int exclude_end; +} rb_arithmetic_sequence_components_t; +VALUE rb_enumeratorize(VALUE recv, VALUE meth, int argc, const VALUE *argv); +VALUE rb_enumeratorize_with_size(VALUE recv, VALUE meth, int argc, const VALUE *argv, rb_enumerator_size_func *func); +VALUE rb_enumeratorize_with_size_kw(VALUE recv, VALUE meth, int argc, const VALUE *argv, rb_enumerator_size_func *func, int kw_splat); +__attribute__((__nonnull__ ())) +int rb_arithmetic_sequence_extract(VALUE as, rb_arithmetic_sequence_components_t *buf); +__attribute__((__nonnull__ ())) +VALUE rb_arithmetic_sequence_beg_len_step(VALUE as, long *begp, long *lenp, long *stepp, long len, int err); + +__attribute__((__nonnull__ ())) +VALUE rb_file_s_expand_path(int argc, const VALUE *argv); +VALUE rb_file_expand_path(VALUE fname, VALUE dname); +__attribute__((__nonnull__ ())) +VALUE rb_file_s_absolute_path(int argc, const VALUE *argv); +VALUE rb_file_absolute_path(VALUE fname, VALUE dname); +VALUE rb_file_dirname(VALUE fname); +__attribute__((__nonnull__ ())) +int rb_find_file_ext(VALUE *feature, const char *const *exts); +VALUE rb_find_file(VALUE path); +VALUE rb_file_directory_p(VALUE _, VALUE path); +VALUE rb_str_encode_ospath(VALUE path); +__attribute__((__nonnull__ ())) +__attribute__((__pure__)) +int rb_is_absolute_path(const char *path); +off_t rb_file_size(VALUE file); + +__attribute__((__cold__)) +__declspec(noreturn) +void rb_memerror(void); +__attribute__((__pure__)) +int rb_during_gc(void); +__attribute__((__nonnull__ (1))) +void rb_gc_mark_locations(const VALUE *start, const VALUE *end); +void rb_mark_tbl(struct st_table *tbl); +void rb_mark_tbl_no_pin(struct st_table *tbl); +void rb_mark_set(struct st_table *tbl); +void rb_mark_hash(struct st_table *tbl); +void rb_gc_update_tbl_refs(st_table *ptr); +void rb_gc_mark_maybe(VALUE obj); +void rb_gc_mark(VALUE obj); +void rb_gc_mark_movable(VALUE obj); +VALUE rb_gc_location(VALUE obj); +__attribute__((__deprecated__ ("this is now a no-op function"))) +void rb_gc_force_recycle(VALUE obj); +void rb_gc(void); +void rb_gc_copy_finalizer(VALUE dst, VALUE src); +VALUE rb_gc_enable(void); +VALUE rb_gc_disable(void); +VALUE rb_gc_start(void); +VALUE rb_define_finalizer(VALUE obj, VALUE block); +VALUE rb_undefine_finalizer(VALUE obj); +size_t rb_gc_count(void); +size_t rb_gc_stat(VALUE key_or_buf); +VALUE rb_gc_latest_gc_info(VALUE key_or_buf); +void rb_gc_adjust_memory_usage(ssize_t diff); + + +extern VALUE rb_fs; +extern VALUE rb_output_fs; +extern VALUE rb_rs; +extern VALUE rb_default_rs; +extern VALUE rb_output_rs; +VALUE rb_io_write(VALUE io, VALUE str); +VALUE rb_io_gets(VALUE io); +VALUE rb_io_getbyte(VALUE io); +VALUE rb_io_ungetc(VALUE io, VALUE c); +VALUE rb_io_ungetbyte(VALUE io, VALUE b); +VALUE rb_io_close(VALUE io); +VALUE rb_io_flush(VALUE io); +VALUE rb_io_eof(VALUE io); +VALUE rb_io_binmode(VALUE io); +VALUE rb_io_ascii8bit_binmode(VALUE io); +VALUE rb_io_addstr(VALUE io, VALUE str); +VALUE rb_io_printf(int argc, const VALUE *argv, VALUE io); +VALUE rb_io_print(int argc, const VALUE *argv, VALUE io); +VALUE rb_io_puts(int argc, const VALUE *argv, VALUE io); +VALUE rb_io_fdopen(int fd, int flags, const char *path); +__attribute__((__nonnull__ ())) +VALUE rb_file_open(const char *fname, const char *fmode); +__attribute__((__nonnull__ ())) +VALUE rb_file_open_str(VALUE fname, const char *fmode); +VALUE rb_gets(void); +__attribute__((__nonnull__ ())) +void rb_write_error(const char *str); +void rb_write_error2(const char *str, long len); +void rb_close_before_exec(int lowfd, int maxhint, VALUE noclose_fds); +__attribute__((__nonnull__ ())) +int rb_pipe(int *pipes); +int rb_reserved_fd_p(int fd); +int rb_cloexec_open(const char *pathname, int flags, mode_t mode); +int rb_cloexec_dup(int oldfd); +int rb_cloexec_dup2(int oldfd, int newfd); +__attribute__((__nonnull__ ())) +int rb_cloexec_pipe(int fildes[2]); +int rb_cloexec_fcntl_dupfd(int fd, int minfd); +void rb_update_max_fd(int fd); +void rb_fd_fix_cloexec(int fd); + +void rb_load(VALUE path, int wrap); +void rb_load_protect(VALUE path, int wrap, int *state); +__attribute__((__nonnull__ ())) +int rb_provided(const char *feature); +__attribute__((__nonnull__ (1))) +int rb_feature_provided(const char *feature, const char **loading); +__attribute__((__nonnull__ ())) +void rb_provide(const char *feature); +VALUE rb_f_require(VALUE self, VALUE feature); +VALUE rb_require_string(VALUE feature); +void rb_ext_ractor_safe(_Bool flag); + +VALUE rb_marshal_dump(VALUE obj, VALUE port); +VALUE rb_marshal_load(VALUE port); +void rb_marshal_define_compat(VALUE newclass, VALUE oldclass, VALUE (*dumper)(VALUE), VALUE (*loader)(VALUE, VALUE)); + +__declspec(noreturn) +__attribute__((__cold__)) +void rb_num_zerodiv(void); +VALUE rb_num_coerce_bin(VALUE lhs, VALUE rhs, ID op); +VALUE rb_num_coerce_cmp(VALUE lhs, VALUE rhs, ID op); +VALUE rb_num_coerce_relop(VALUE lhs, VALUE rhs, ID op); +VALUE rb_num_coerce_bit(VALUE lhs, VALUE rhs, ID op); +VALUE rb_num2fix(VALUE val); +VALUE rb_fix2str(VALUE val, int base); +__attribute__((__const__)) +VALUE rb_dbl_cmp(double lhs, double rhs); +extern VALUE rb_int_positive_pow(long x, unsigned long y); + +VALUE rb_class_new_instance_pass_kw(int argc, const VALUE *argv, VALUE klass); +VALUE rb_class_new_instance(int argc, const VALUE *argv, VALUE klass); +VALUE rb_class_new_instance_kw(int argc, const VALUE *argv, VALUE klass, int kw_splat); +int rb_eql(VALUE lhs, VALUE rhs); +VALUE rb_any_to_s(VALUE obj); +VALUE rb_inspect(VALUE obj); +VALUE rb_obj_is_instance_of(VALUE obj, VALUE klass); +VALUE rb_obj_is_kind_of(VALUE obj, VALUE klass); +VALUE rb_obj_alloc(VALUE klass); +VALUE rb_obj_clone(VALUE obj); +VALUE rb_obj_dup(VALUE obj); +VALUE rb_obj_init_copy(VALUE src, VALUE dst); +VALUE rb_obj_freeze(VALUE obj); +__attribute__((__pure__)) +VALUE rb_obj_frozen_p(VALUE obj); +VALUE rb_obj_id(VALUE obj); +__attribute__((__const__)) +VALUE rb_memory_id(VALUE obj); +__attribute__((__pure__)) +VALUE rb_class_real(VALUE klass); +__attribute__((__pure__)) +VALUE rb_class_inherited_p(VALUE scion, VALUE ascendant); +__attribute__((__pure__)) +VALUE rb_class_superclass(VALUE klass); +__attribute__((__nonnull__ ())) +VALUE rb_convert_type(VALUE val, int type, const char *name, const char *mid); +__attribute__((__nonnull__ ())) +VALUE rb_check_convert_type(VALUE val, int type, const char *name, const char *mid); +__attribute__((__nonnull__ ())) +VALUE rb_check_to_integer(VALUE val, const char *mid); +VALUE rb_check_to_float(VALUE val); +VALUE rb_to_int(VALUE val); +VALUE rb_check_to_int(VALUE val); +VALUE rb_Integer(VALUE val); +VALUE rb_to_float(VALUE val); +VALUE rb_Float(VALUE val); +VALUE rb_String(VALUE val); +VALUE rb_Array(VALUE val); +VALUE rb_Hash(VALUE val); +__attribute__((__nonnull__ ())) +double rb_cstr_to_dbl(const char *str, int mode); +double rb_str_to_dbl(VALUE str, int mode); + +ID rb_id_attrset(ID id); +__attribute__((__const__)) +int rb_is_const_id(ID id); +__attribute__((__const__)) +int rb_is_global_id(ID id); +__attribute__((__const__)) +int rb_is_instance_id(ID id); +__attribute__((__const__)) +int rb_is_attrset_id(ID id); +__attribute__((__const__)) +int rb_is_class_id(ID id); +__attribute__((__const__)) +int rb_is_local_id(ID id); +__attribute__((__const__)) +int rb_is_junk_id(ID); +__attribute__((__nonnull__ ())) +int rb_symname_p(const char *str); +VALUE rb_backref_get(void); +void rb_backref_set(VALUE md); +VALUE rb_lastline_get(void); +void rb_lastline_set(VALUE str); +VALUE rb_sym_all_symbols(void); + + +void rb_last_status_set(int status, pid_t pid); +VALUE rb_last_status_get(void); +__attribute__((__nonnull__ ())) +int rb_proc_exec(const char *cmd); +__declspec(noreturn) +VALUE rb_f_exec(int argc, const VALUE *argv); +pid_t rb_waitpid(pid_t pid, int *status, int flags); +void rb_syswait(pid_t pid); +pid_t rb_spawn(int argc, const VALUE *argv); +pid_t rb_spawn_err(int argc, const VALUE *argv, char *errbuf, size_t buflen); +VALUE rb_proc_times(VALUE _); +VALUE rb_detach_process(pid_t pid); + +unsigned int rb_genrand_int32(void); +double rb_genrand_real(void); +void rb_reset_random_seed(void); +VALUE rb_random_bytes(VALUE rnd, long n); +unsigned int rb_random_int32(VALUE rnd); +double rb_random_real(VALUE rnd); +unsigned long rb_random_ulong_limited(VALUE rnd, unsigned long limit); +unsigned long rb_genrand_ulong_limited(unsigned long i); + +VALUE rb_range_new(VALUE beg, VALUE end, int excl); +__attribute__((__nonnull__ ())) +VALUE rb_range_beg_len(VALUE range, long *begp, long *lenp, long len, int err); +__attribute__((__nonnull__ ())) +int rb_range_values(VALUE range, VALUE *begp, VALUE *endp, int *exclp); + +VALUE rb_rational_raw(VALUE num, VALUE den); +VALUE rb_rational_new(VALUE num, VALUE den); +VALUE rb_Rational(VALUE num, VALUE den); +__attribute__((__pure__)) +VALUE rb_rational_num(VALUE rat); +__attribute__((__pure__)) +VALUE rb_rational_den(VALUE rat); +VALUE rb_flt_rationalize_with_prec(VALUE flt, VALUE prec); +VALUE rb_flt_rationalize(VALUE flt); + +int rb_memcicmp(const void *s1,const void *s2, long n); +void rb_match_busy(VALUE md); +VALUE rb_reg_nth_defined(int n, VALUE md); +VALUE rb_reg_nth_match(int n, VALUE md); +int rb_reg_backref_number(VALUE match, VALUE backref); +VALUE rb_reg_last_match(VALUE md); +VALUE rb_reg_match_pre(VALUE md); +VALUE rb_reg_match_post(VALUE md); +VALUE rb_reg_match_last(VALUE md); +VALUE rb_reg_new_str(VALUE src, int opts); +__attribute__((__nonnull__ ())) +VALUE rb_reg_new(const char *src, long len, int opts); +VALUE rb_reg_alloc(void); +VALUE rb_reg_init_str(VALUE re, VALUE s, int options); +VALUE rb_reg_match(VALUE re, VALUE str); +VALUE rb_reg_match2(VALUE re); +int rb_reg_options(VALUE re); + +extern VALUE rb_argv0; +VALUE rb_get_argv(void); +__attribute__((__nonnull__ ())) +void *rb_load_file(const char *file); +void *rb_load_file_str(VALUE file); + + +struct timeval; +typedef struct { + int maxfd; + fd_set *fdset; +} rb_fdset_t; +__attribute__((__nonnull__ ())) +void rb_fd_init(rb_fdset_t *f); +__attribute__((__nonnull__ ())) +void rb_fd_term(rb_fdset_t *f); +__attribute__((__nonnull__ ())) +void rb_fd_zero(rb_fdset_t *f); +__attribute__((__nonnull__ ())) +void rb_fd_set(int fd, rb_fdset_t *f); +__attribute__((__nonnull__ ())) +void rb_fd_clr(int fd, rb_fdset_t *f); +__attribute__((__nonnull__ ())) +__attribute__((__pure__)) +int rb_fd_isset(int fd, const rb_fdset_t *f); +void rb_fd_copy(rb_fdset_t *dst, const fd_set *src, int max); +void rb_fd_dup(rb_fdset_t *dst, const rb_fdset_t *src); +int rb_fd_select(int nfds, rb_fdset_t *rfds, rb_fdset_t *wfds, rb_fdset_t *efds, struct timeval *timeout); +__attribute__((__nonnull__ ())) +__attribute__((__pure__)) +static inline fd_set * +rb_fd_ptr(const rb_fdset_t *f) +{ + return f->fdset; +} +__attribute__((__nonnull__ ())) +__attribute__((__pure__)) +static inline int +rb_fd_max(const rb_fdset_t *f) +{ + return f->maxfd; +} +struct timeval; +int rb_thread_fd_select(int nfds, rb_fdset_t *rfds, rb_fdset_t *wfds, rb_fdset_t *efds, struct timeval *timeout); + +__attribute__((__nonnull__ ())) +VALUE rb_f_kill(int argc, const VALUE *argv); +void (*ruby_posix_signal(int, void (*)(int)))(int); +__attribute__((__pure__)) +const char *ruby_signal_name(int signo); +void ruby_default_signal(int sig); + +VALUE rb_f_sprintf(int argc, const VALUE *argv); +__attribute__((__nonnull__ (1))) +__attribute__((__format__(__printf__, 1, 2))) +VALUE rb_sprintf(const char *fmt, ...); +__attribute__((__nonnull__ (1))) +__attribute__((__format__(__printf__, 1, 0))) +VALUE rb_vsprintf(const char *fmt, va_list ap); +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 3))) +VALUE rb_str_catf(VALUE dst, const char *fmt, ...); +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 0))) +VALUE rb_str_vcatf(VALUE dst, const char *fmt, va_list ap); +VALUE rb_str_format(int argc, const VALUE *argv, VALUE fmt); + +VALUE rb_str_new(const char *ptr, long len); +VALUE rb_str_new_cstr(const char *ptr); +VALUE rb_str_new_shared(VALUE str); +VALUE rb_str_new_frozen(VALUE str); +VALUE rb_str_new_with_class(VALUE obj, const char *ptr, long len); +VALUE rb_external_str_new(const char *ptr, long len); +__attribute__((__nonnull__ ())) +VALUE rb_external_str_new_cstr(const char *ptr); +VALUE rb_locale_str_new(const char *ptr, long len); +__attribute__((__nonnull__ ())) +VALUE rb_locale_str_new_cstr(const char *ptr); +VALUE rb_filesystem_str_new(const char *ptr, long len); +__attribute__((__nonnull__ ())) +VALUE rb_filesystem_str_new_cstr(const char *ptr); +VALUE rb_str_buf_new(long capa); +__attribute__((__nonnull__ ())) +VALUE rb_str_buf_new_cstr(const char *ptr); +VALUE rb_str_tmp_new(long len); +VALUE rb_usascii_str_new(const char *ptr, long len); +VALUE rb_usascii_str_new_cstr(const char *ptr); +VALUE rb_utf8_str_new(const char *ptr, long len); +VALUE rb_utf8_str_new_cstr(const char *ptr); +VALUE rb_str_new_static(const char *ptr, long len); +VALUE rb_usascii_str_new_static(const char *ptr, long len); +VALUE rb_utf8_str_new_static(const char *ptr, long len); +VALUE rb_str_to_interned_str(VALUE str); +VALUE rb_interned_str(const char *ptr, long len); +__attribute__((__nonnull__ ())) +VALUE rb_interned_str_cstr(const char *ptr); +void rb_str_free(VALUE str); +void rb_str_shared_replace(VALUE dst, VALUE src); +VALUE rb_str_buf_append(VALUE dst, VALUE src); +VALUE rb_str_buf_cat(VALUE, const char*, long); +VALUE rb_str_buf_cat2(VALUE, const char*); +__attribute__((__nonnull__ ())) +VALUE rb_str_buf_cat_ascii(VALUE dst, const char *src); +VALUE rb_obj_as_string(VALUE obj); +VALUE rb_check_string_type(VALUE obj); +void rb_must_asciicompat(VALUE obj); +VALUE rb_str_dup(VALUE str); +VALUE rb_str_resurrect(VALUE str); +VALUE rb_str_locktmp(VALUE str); +VALUE rb_str_unlocktmp(VALUE str); +VALUE rb_str_dup_frozen(VALUE); +VALUE rb_str_plus(VALUE lhs, VALUE rhs); +VALUE rb_str_times(VALUE str, VALUE num); +long rb_str_sublen(VALUE str, long pos); +VALUE rb_str_substr(VALUE str, long beg, long len); +VALUE rb_str_subseq(VALUE str, long beg, long len); +char *rb_str_subpos(VALUE str, long beg, long *len); +void rb_str_modify(VALUE str); +void rb_str_modify_expand(VALUE str, long capa); +VALUE rb_str_freeze(VALUE str); +void rb_str_set_len(VALUE str, long len); +VALUE rb_str_resize(VALUE str, long len); +VALUE rb_str_cat(VALUE dst, const char *src, long srclen); +VALUE rb_str_cat_cstr(VALUE dst, const char *src); +VALUE rb_str_cat2(VALUE, const char*); +VALUE rb_str_append(VALUE dst, VALUE src); +VALUE rb_str_concat(VALUE dst, VALUE src); +st_index_t rb_memhash(const void *ptr, long len); +st_index_t rb_hash_start(st_index_t i); +st_index_t rb_str_hash(VALUE str); +int rb_str_hash_cmp(VALUE str1, VALUE str2); +int rb_str_comparable(VALUE str1, VALUE str2); +int rb_str_cmp(VALUE lhs, VALUE rhs); +VALUE rb_str_equal(VALUE str1, VALUE str2); +VALUE rb_str_drop_bytes(VALUE str, long len); +void rb_str_update(VALUE dst, long beg, long len, VALUE src); +VALUE rb_str_replace(VALUE dst, VALUE src); +VALUE rb_str_inspect(VALUE str); +VALUE rb_str_dump(VALUE str); +VALUE rb_str_split(VALUE str, const char *delim); +rb_gvar_setter_t rb_str_setter; +VALUE rb_str_intern(VALUE str); +VALUE rb_sym_to_s(VALUE sym); +long rb_str_strlen(VALUE str); +VALUE rb_str_length(VALUE); +long rb_str_offset(VALUE str, long pos); +__attribute__((__pure__)) +size_t rb_str_capacity(VALUE str); +VALUE rb_str_ellipsize(VALUE str, long len); +VALUE rb_str_scrub(VALUE str, VALUE repl); +VALUE rb_str_succ(VALUE orig); +__attribute__((__nonnull__ ())) +static inline long +rbimpl_strlen(const char *str) +{ + return ((long)strlen(str)); +} +__attribute__((__nonnull__ ())) +static inline VALUE +rbimpl_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_str_new_static(str, len); +} +__attribute__((__nonnull__ ())) +static inline VALUE +rbimpl_usascii_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_usascii_str_new_static(str, len); +} +__attribute__((__nonnull__ ())) +static inline VALUE +rbimpl_utf8_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_utf8_str_new_static(str, len); +} +__attribute__((__nonnull__ ())) +static inline VALUE +rbimpl_external_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_external_str_new(str, len); +} +__attribute__((__nonnull__ ())) +static inline VALUE +rbimpl_locale_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_locale_str_new(str, len); +} +__attribute__((__nonnull__ ())) +static inline VALUE +rbimpl_str_buf_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + VALUE buf = rb_str_buf_new(len); + return rb_str_buf_cat(buf, str, len); +} +__attribute__((__nonnull__ ())) +static inline VALUE +rbimpl_str_cat_cstr(VALUE buf, const char *str) +{ + long len = rbimpl_strlen(str); + return rb_str_cat(buf, str, len); +} +__attribute__((__nonnull__ ())) +static inline VALUE +rbimpl_exc_new_cstr(VALUE exc, const char *str) +{ + long len = rbimpl_strlen(str); + return rb_exc_new(exc, str, len); +} + +VALUE rb_struct_new(VALUE klass, ...); +VALUE rb_struct_define(const char *name, ...); +__attribute__((__nonnull__ (2))) +VALUE rb_struct_define_under(VALUE space, const char *name, ...); +VALUE rb_struct_alloc(VALUE klass, VALUE values); +VALUE rb_struct_initialize(VALUE self, VALUE values); +VALUE rb_struct_getmember(VALUE self, ID key); +VALUE rb_struct_s_members(VALUE klass); +VALUE rb_struct_members(VALUE self); +VALUE rb_struct_alloc_noinit(VALUE klass); +VALUE rb_struct_define_without_accessor(const char *name, VALUE super, rb_alloc_func_t func, ...); +__attribute__((__nonnull__ (2))) +VALUE rb_struct_define_without_accessor_under(VALUE outer, const char *class_name, VALUE super, rb_alloc_func_t alloc, ...); + +struct timeval; +void rb_thread_schedule(void); +int rb_thread_wait_fd(int fd); +int rb_thread_fd_writable(int fd); +void rb_thread_fd_close(int fd); +int rb_thread_alone(void); +void rb_thread_sleep(int sec); +void rb_thread_sleep_forever(void); +void rb_thread_sleep_deadly(void); +VALUE rb_thread_stop(void); +VALUE rb_thread_wakeup(VALUE thread); +VALUE rb_thread_wakeup_alive(VALUE thread); +VALUE rb_thread_run(VALUE thread); +VALUE rb_thread_kill(VALUE thread); +__attribute__((__nonnull__ (1))) +VALUE rb_thread_create(VALUE (*f)(void *g), void *g); +void rb_thread_wait_for(struct timeval time); +VALUE rb_thread_current(void); +VALUE rb_thread_main(void); +VALUE rb_thread_local_aref(VALUE thread, ID key); +VALUE rb_thread_local_aset(VALUE thread, ID key, VALUE val); +void rb_thread_atfork(void); +void rb_thread_atfork_before_exec(void); +VALUE rb_exec_recursive(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE h); +VALUE rb_exec_recursive_paired(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE p, VALUE h); +VALUE rb_exec_recursive_outer(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE h); +VALUE rb_exec_recursive_paired_outer(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE p, VALUE h); +typedef void rb_unblock_function_t(void *); +typedef VALUE rb_blocking_function_t(void *); +void rb_thread_check_ints(void); +int rb_thread_interrupted(VALUE thval); +VALUE rb_mutex_new(void); +VALUE rb_mutex_locked_p(VALUE mutex); +VALUE rb_mutex_trylock(VALUE mutex); +VALUE rb_mutex_lock(VALUE mutex); +VALUE rb_mutex_unlock(VALUE mutex); +VALUE rb_mutex_sleep(VALUE self, VALUE timeout); +VALUE rb_mutex_synchronize(VALUE mutex, VALUE (*func)(VALUE arg), VALUE arg); + +struct timespec; +struct timeval; +__attribute__((__nonnull__ ())) +void rb_timespec_now(struct timespec *ts); +VALUE rb_time_new(time_t sec, long usec); +VALUE rb_time_nano_new(time_t sec, long nsec); +__attribute__((__nonnull__ ())) +VALUE rb_time_timespec_new(const struct timespec *ts, int offset); +VALUE rb_time_num_new(VALUE timev, VALUE off); +struct timeval rb_time_interval(VALUE num); +struct timeval rb_time_timeval(VALUE time); +struct timespec rb_time_timespec(VALUE time); +struct timespec rb_time_timespec_interval(VALUE num); +VALUE rb_time_utc_offset(VALUE time); + +VALUE rb_mod_name(VALUE mod); +VALUE rb_class_path(VALUE mod); +VALUE rb_class_path_cached(VALUE mod); +__attribute__((__nonnull__ ())) +void rb_set_class_path(VALUE klass, VALUE space, const char *name); +void rb_set_class_path_string(VALUE klass, VALUE space, VALUE name); +VALUE rb_path_to_class(VALUE path); +__attribute__((__nonnull__ ())) +VALUE rb_path2class(const char *path); +VALUE rb_class_name(VALUE obj); +VALUE rb_autoload_load(VALUE space, ID name); +VALUE rb_autoload_p(VALUE space, ID name); +VALUE rb_f_trace_var(int argc, const VALUE *argv); +VALUE rb_f_untrace_var(int argc, const VALUE *argv); +VALUE rb_f_global_variables(void); +void rb_alias_variable(ID dst, ID src); +void rb_free_generic_ivar(VALUE obj); +VALUE rb_ivar_get(VALUE obj, ID name); +VALUE rb_ivar_set(VALUE obj, ID name, VALUE val); +VALUE rb_ivar_defined(VALUE obj, ID name); +void rb_ivar_foreach(VALUE obj, int (*func)(ID name, VALUE val, st_data_t arg), st_data_t arg); +st_index_t rb_ivar_count(VALUE obj); +VALUE rb_attr_get(VALUE obj, ID name); +VALUE rb_obj_instance_variables(VALUE obj); +VALUE rb_obj_remove_instance_variable(VALUE obj, VALUE name); +void *rb_mod_const_at(VALUE, void*); +void *rb_mod_const_of(VALUE, void*); +VALUE rb_const_list(void*); +VALUE rb_mod_constants(int argc, const VALUE *argv, VALUE recv); +VALUE rb_mod_remove_const(VALUE space, VALUE name); +int rb_const_defined(VALUE space, ID name); +int rb_const_defined_at(VALUE space, ID name); +int rb_const_defined_from(VALUE space, ID name); +VALUE rb_const_get(VALUE space, ID name); +VALUE rb_const_get_at(VALUE space, ID name); +VALUE rb_const_get_from(VALUE space, ID name); +void rb_const_set(VALUE space, ID name, VALUE val); +VALUE rb_const_remove(VALUE space, ID name); +VALUE rb_cvar_defined(VALUE klass, ID name); +void rb_cvar_set(VALUE klass, ID name, VALUE val); +VALUE rb_cvar_get(VALUE klass, ID name); +__attribute__((__nonnull__ ())) +VALUE rb_cvar_find(VALUE klass, ID name, VALUE *front); +__attribute__((__nonnull__ ())) +void rb_cv_set(VALUE klass, const char *name, VALUE val); +__attribute__((__nonnull__ ())) +VALUE rb_cv_get(VALUE klass, const char *name); +__attribute__((__nonnull__ ())) +void rb_define_class_variable(VALUE, const char*, VALUE); +VALUE rb_mod_class_variables(int argc, const VALUE *argv, VALUE recv); +VALUE rb_mod_remove_cvar(VALUE mod, VALUE name); +int ruby_native_thread_p(void); +__attribute__((__nonnull__ (3))) +__attribute__((__format__(__printf__, 3, 4))) +int ruby_snprintf(char *str, size_t n, char const *fmt, ...); +__attribute__((__nonnull__ (3))) +__attribute__((__format__(__printf__, 3, 0))) +int ruby_vsnprintf(char *str, size_t n, char const *fmt, va_list ap); + + +extern const char *const sys_signame[32]; +extern const char *const sys_siglist[32]; +int raise(int); +void (* _Nullable bsd_signal(int, void (* _Nullable)(int)))(int); +int kill(pid_t, int) __asm("_" "kill" ); +int killpg(pid_t, int) __asm("_" "killpg" ); +int pthread_kill(pthread_t, int); +int pthread_sigmask(int, const sigset_t *, sigset_t *) __asm("_" "pthread_sigmask" ); +int sigaction(int, const struct sigaction * __restrict__, + struct sigaction * __restrict__); +int sigaddset(sigset_t *, int); +int sigaltstack(const stack_t * __restrict__, stack_t * __restrict__) __asm("_" "sigaltstack" ) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +int sigdelset(sigset_t *, int); +int sigemptyset(sigset_t *); +int sigfillset(sigset_t *); +int sighold(int); +int sigignore(int); +int siginterrupt(int, int); +int sigismember(const sigset_t *, int); +int sigpause(int) __asm("_" "sigpause" ); +int sigpending(sigset_t *); +int sigprocmask(int, const sigset_t * __restrict__, sigset_t * __restrict__); +int sigrelse(int); +void (* _Nullable sigset(int, void (* _Nullable)(int)))(int); +int sigsuspend(const sigset_t *) __asm("_" "sigsuspend" ); +int sigwait(const sigset_t * __restrict__, int * __restrict__) __asm("_" "sigwait" ); +void psignal(int, const char *); +int sigblock(int); +int sigsetmask(int); +int sigvec(int, struct sigvec *, struct sigvec *); +inline __attribute__ ((__always_inline__)) int +__sigbits(int __signo) +{ + return __signo > 32 ? 0 : (1 << (__signo - 1)); +} + +typedef int jmp_buf[((14 + 8 + 2) * 2)]; +typedef int sigjmp_buf[((14 + 8 + 2) * 2) + 1]; +extern int setjmp(jmp_buf); +extern void longjmp(jmp_buf, int) __attribute__((__noreturn__)); +int _setjmp(jmp_buf); +void _longjmp(jmp_buf, int) __attribute__((__noreturn__)); +int sigsetjmp(sigjmp_buf, int); +void siglongjmp(sigjmp_buf, int) __attribute__((__noreturn__)); +void longjmperror(void); +static inline char *container_of_or_null_(void *member_ptr, size_t offset) +{ + return member_ptr ? (char *)member_ptr - offset : ((void*)0); +} +struct ccan_list_node +{ + struct ccan_list_node *next, *prev; +}; +struct ccan_list_head +{ + struct ccan_list_node n; +}; +static inline void ccan_list_head_init(struct ccan_list_head *h) +{ + h->n.next = h->n.prev = &h->n; +} +static inline void ccan_list_node_init(struct ccan_list_node *n) +{ + n->next = n->prev = n; +} +static inline void ccan_list_add_after_(struct ccan_list_head *h, + struct ccan_list_node *p, + struct ccan_list_node *n, + const char *abortstr) +{ + n->next = p->next; + n->prev = p; + p->next->prev = n; + p->next = n; + (void)((void)abortstr, h); +} +static inline void ccan_list_add_(struct ccan_list_head *h, + struct ccan_list_node *n, + const char *abortstr) +{ + ccan_list_add_after_(h, &h->n, n, abortstr); +} +static inline void ccan_list_add_before_(struct ccan_list_head *h, + struct ccan_list_node *p, + struct ccan_list_node *n, + const char *abortstr) +{ + n->next = p; + n->prev = p->prev; + p->prev->next = n; + p->prev = n; + (void)((void)abortstr, h); +} +static inline void ccan_list_add_tail_(struct ccan_list_head *h, + struct ccan_list_node *n, + const char *abortstr) +{ + ccan_list_add_before_(h, &h->n, n, abortstr); +} +static inline int ccan_list_empty_(const struct ccan_list_head *h, const char* abortstr) +{ + (void)((void)abortstr, h); + return h->n.next == &h->n; +} +static inline _Bool ccan_list_empty_nocheck(const struct ccan_list_head *h) +{ + return h->n.next == &h->n; +} +static inline void ccan_list_del_(struct ccan_list_node *n, const char* abortstr) +{ + (void)((void)abortstr, n); + n->next->prev = n->prev; + n->prev->next = n->next; +} +static inline void ccan_list_del_init_(struct ccan_list_node *n, const char *abortstr) +{ + ccan_list_del_(n, abortstr); + ccan_list_node_init(n); +} +static inline void ccan_list_del_from(struct ccan_list_head *h, struct ccan_list_node *n) +{ + ((void)0); + ccan_list_del_(n, "./ccan/list/list.h" ":" "329"); +} +static inline void ccan_list_swap_(struct ccan_list_node *o, + struct ccan_list_node *n, + const char* abortstr) +{ + (void)((void)abortstr, o); + *n = *o; + n->next->prev = n; + n->prev->next = n; +} +static inline const void *ccan_list_top_(const struct ccan_list_head *h, size_t off) +{ + if (ccan_list_empty_(h, "./ccan/list/list.h" ":" "399")) + return ((void*)0); + return (const char *)h->n.next - off; +} +static inline const void *ccan_list_pop_(const struct ccan_list_head *h, size_t off) +{ + struct ccan_list_node *n; + if (ccan_list_empty_(h, "./ccan/list/list.h" ":" "425")) + return ((void*)0); + n = h->n.next; + ccan_list_del_(n, "./ccan/list/list.h" ":" "428"); + return (const char *)n - off; +} +static inline const void *ccan_list_tail_(const struct ccan_list_head *h, size_t off) +{ + if (ccan_list_empty_(h, "./ccan/list/list.h" ":" "451")) + return ((void*)0); + return (const char *)h->n.prev - off; +} +static inline void ccan_list_append_list_(struct ccan_list_head *to, + struct ccan_list_head *from, + const char *abortstr) +{ + struct ccan_list_node *from_tail = ((void)abortstr, from)->n.prev; + struct ccan_list_node *to_tail = ((void)abortstr, to)->n.prev; + to->n.prev = from_tail; + from_tail->next = &to->n; + to_tail->next = &from->n; + from->n.prev = to_tail; + ccan_list_del_(&from->n, "./ccan/list/list.h" ":" "600"); + ccan_list_head_init(from); +} +static inline void ccan_list_prepend_list_(struct ccan_list_head *to, + struct ccan_list_head *from, + const char *abortstr) +{ + struct ccan_list_node *from_tail = ((void)abortstr, from)->n.prev; + struct ccan_list_node *to_head = ((void)abortstr, to)->n.next; + to->n.next = &from->n; + from->n.prev = &to->n; + to_head->prev = from_tail; + from_tail->next = to_head; + ccan_list_del_(&from->n, "./ccan/list/list.h" ":" "632"); + ccan_list_head_init(from); +} +static inline void *ccan_list_node_to_off_(struct ccan_list_node *node, size_t off) +{ + return (void *)((char *)node - off); +} +static inline struct ccan_list_node *ccan_list_node_from_off_(void *ptr, size_t off) +{ + return (struct ccan_list_node *)((char *)ptr + off); +} +static inline void *ccan_list_entry_or_null(const struct ccan_list_head *h, + const struct ccan_list_node *n, + size_t off) +{ + if (n == &h->n) + return ((void*)0); + return (char *)n - off; +} +enum ruby_id_types { + RUBY_ID_STATIC_SYM = 0x01, + RUBY_ID_LOCAL = 0x00, + RUBY_ID_INSTANCE = (0x01<<1), + RUBY_ID_GLOBAL = (0x03<<1), + RUBY_ID_ATTRSET = (0x04<<1), + RUBY_ID_CONST = (0x05<<1), + RUBY_ID_CLASS = (0x06<<1), + RUBY_ID_JUNK = (0x07<<1), + RUBY_ID_INTERNAL = RUBY_ID_JUNK, + RUBY_ID_SCOPE_SHIFT = 4, + RUBY_ID_SCOPE_MASK = (~(~0U<<(RUBY_ID_SCOPE_SHIFT-1))<<1) +}; +enum ruby_method_ids { + idDot2 = 128, + idDot3 = 129, + idUPlus = 132, + idUMinus = 133, + idPow = 134, + idCmp = 135, + idPLUS = '+', + idMINUS = '-', + idMULT = '*', + idDIV = '/', + idMOD = '%', + idLTLT = 136, + idGTGT = 137, + idLT = '<', + idLE = 138, + idGT = '>', + idGE = 139, + idEq = 140, + idEqq = 141, + idNeq = 142, + idNot = '!', + idAnd = '&', + idOr = '|', + idBackquote = '`', + idEqTilde = 143, + idNeqTilde = 144, + idAREF = 145, + idASET = 146, + idCOLON2 = 147, + idANDOP = 148, + idOROP = 149, + idANDDOT = 150, + tPRESERVED_ID_BEGIN = 150, + idNilP, + idNULL, + idEmptyP, + idEqlP, + idRespond_to, + idRespond_to_missing, + idIFUNC, + idCFUNC, + id_core_set_method_alias, + id_core_set_variable_alias, + id_core_undef_method, + id_core_define_method, + id_core_define_singleton_method, + id_core_set_postexe, + id_core_hash_merge_ptr, + id_core_hash_merge_kwd, + id_core_raise, + id_core_sprintf, + id_debug_created_info, + tPRESERVED_ID_END, + tTOKEN_LOCAL_BEGIN = tPRESERVED_ID_END-1, + tMax, + tMin, + tFreeze, + tInspect, + tIntern, + tObject_id, + tConst_added, + tConst_missing, + tMethodMissing, + tMethod_added, + tSingleton_method_added, + tMethod_removed, + tSingleton_method_removed, + tMethod_undefined, + tSingleton_method_undefined, + tLength, + tSize, + tGets, + tSucc, + tEach, + tProc, + tLambda, + tSend, + t__send__, + t__attached__, + t__recursive_key__, + tInitialize, + tInitialize_copy, + tInitialize_clone, + tInitialize_dup, + tTo_int, + tTo_ary, + tTo_str, + tTo_sym, + tTo_hash, + tTo_proc, + tTo_io, + tTo_a, + tTo_s, + tTo_i, + tTo_f, + tTo_r, + tBt, + tBt_locations, + tCall, + tMesg, + tException, + tLocals, + tNOT, + tAND, + tOR, + tDiv, + tDivmod, + tFdiv, + tQuo, + tName, + tNil, + tPath, + tUScore, + tNUMPARAM_1, + tNUMPARAM_2, + tNUMPARAM_3, + tNUMPARAM_4, + tNUMPARAM_5, + tNUMPARAM_6, + tNUMPARAM_7, + tNUMPARAM_8, + tNUMPARAM_9, + tDefault, + tTOKEN_LOCAL_END, + tTOKEN_INSTANCE_BEGIN = tTOKEN_LOCAL_END-1, + tTOKEN_INSTANCE_END, + tTOKEN_GLOBAL_BEGIN = tTOKEN_INSTANCE_END-1, + tLASTLINE, + tBACKREF, + tERROR_INFO, + tTOKEN_GLOBAL_END, + tTOKEN_CONST_BEGIN = tTOKEN_GLOBAL_END-1, + tTOKEN_CONST_END, + tTOKEN_CLASS_BEGIN = tTOKEN_CONST_END-1, + tTOKEN_CLASS_END, + tTOKEN_ATTRSET_BEGIN = tTOKEN_CLASS_END-1, + tTOKEN_ATTRSET_END, + tNEXT_ID = tTOKEN_ATTRSET_END, + idMax = ((tMax<> RUBY_ID_SCOPE_SHIFT +}; + +void rb_obj_info_dump(VALUE obj); +void rb_obj_info_dump_loc(VALUE obj, const char *file, int line, const char *func); +void ruby_debug_breakpoint(void); +__attribute__((__format__(__printf__, (1), (2)))) void ruby_debug_printf(const char*, ...); + + +VALUE rb_ary_last(int, const VALUE *, VALUE); +void rb_ary_set_len(VALUE, long); +void rb_ary_delete_same(VALUE, VALUE); +VALUE rb_ary_hidden_new_fill(long capa); +VALUE rb_ary_at(VALUE, VALUE); +size_t rb_ary_memsize(VALUE); +VALUE rb_to_array_type(VALUE obj); +VALUE rb_to_array(VALUE obj); +void rb_ary_cancel_sharing(VALUE ary); +size_t rb_ary_size_as_embedded(VALUE ary); +void rb_ary_make_embedded(VALUE ary); +_Bool rb_ary_embeddable_p(VALUE ary); +VALUE rb_ary_diff(VALUE ary1, VALUE ary2); +static inline VALUE rb_ary_entry_internal(VALUE ary, long offset); +static inline _Bool ARY_PTR_USING_P(VALUE ary); +static inline void RARY_TRANSIENT_SET(VALUE ary); +static inline void RARY_TRANSIENT_UNSET(VALUE ary); +VALUE rb_ary_tmp_new_from_values(VALUE, long, const VALUE *); +VALUE rb_check_to_array(VALUE ary); +VALUE rb_ary_behead(VALUE, long); +VALUE rb_ary_aref1(VALUE ary, VALUE i); +struct rb_execution_context_struct; +VALUE rb_ec_ary_new_from_values(struct rb_execution_context_struct *ec, long n, const VALUE *elts); +static inline VALUE +rb_ary_entry_internal(VALUE ary, long offset) +{ + long len = rb_array_len(ary); + const VALUE *ptr = rb_array_const_ptr_transient(ary); + if (len == 0) return ((VALUE)RUBY_Qnil); + if (offset < 0) { + offset += len; + if (offset < 0) return ((VALUE)RUBY_Qnil); + } + else if (len <= offset) { + return ((VALUE)RUBY_Qnil); + } + return ptr[offset]; +} +static inline _Bool +ARY_PTR_USING_P(VALUE ary) +{ + return RB_FL_TEST_RAW(ary, ((VALUE)RUBY_FL_USER14)); +} +__attribute__((__unused__)) +static inline int +ary_should_not_be_shared_and_embedded(VALUE ary) +{ + return !RB_FL_ALL_RAW(ary, RUBY_ELTS_SHARED|RARRAY_EMBED_FLAG); +} +static inline _Bool +ARY_SHARED_P(VALUE ary) +{ + ((void)0); + ((void)0); + return RB_FL_TEST_RAW(ary, RUBY_ELTS_SHARED); +} +static inline _Bool +ARY_EMBED_P(VALUE ary) +{ + ((void)0); + ((void)0); + return RB_FL_TEST_RAW(ary, RARRAY_EMBED_FLAG); +} +static inline VALUE +ARY_SHARED_ROOT(VALUE ary) +{ + ((void)0); + return ((struct RArray *)(ary))->as.heap.aux.shared_root; +} +static inline _Bool +ARY_SHARED_ROOT_P(VALUE ary) +{ + ((void)0); + return RB_FL_TEST_RAW(ary, ((VALUE)RUBY_FL_USER12)); +} +static inline long +ARY_SHARED_ROOT_REFCNT(VALUE ary) +{ + ((void)0); + return ((struct RArray *)(ary))->as.heap.aux.capa; +} +static inline void +RARY_TRANSIENT_SET(VALUE ary) +{ + RB_FL_SET_RAW(ary, RARRAY_TRANSIENT_FLAG); +} +static inline void +RARY_TRANSIENT_UNSET(VALUE ary) +{ + RB_FL_UNSET_RAW(ary, RARRAY_TRANSIENT_FLAG); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline VALUE +RARRAY_AREF(VALUE ary, long i) +{ + ((void)0); + return rb_array_const_ptr_transient(ary)[i]; +} + +enum ruby_basic_operators { + BOP_PLUS, + BOP_MINUS, + BOP_MULT, + BOP_DIV, + BOP_MOD, + BOP_EQ, + BOP_EQQ, + BOP_LT, + BOP_LE, + BOP_LTLT, + BOP_AREF, + BOP_ASET, + BOP_LENGTH, + BOP_SIZE, + BOP_EMPTY_P, + BOP_NIL_P, + BOP_SUCC, + BOP_GT, + BOP_GE, + BOP_NOT, + BOP_NEQ, + BOP_MATCH, + BOP_FREEZE, + BOP_UMINUS, + BOP_MAX, + BOP_MIN, + BOP_CALL, + BOP_AND, + BOP_OR, + BOP_CMP, + BOP_DEFAULT, + BOP_LAST_ +}; +extern short ruby_vm_redefined_flag[BOP_LAST_]; + +typedef unsigned + long long + rb_serial_t; + +struct rb_callable_method_entry_struct; +struct rb_method_definition_struct; +struct rb_execution_context_struct; +struct rb_control_frame_struct; +struct rb_callinfo; +enum method_missing_reason { + MISSING_NOENTRY = 0x00, + MISSING_PRIVATE = 0x01, + MISSING_PROTECTED = 0x02, + MISSING_FCALL = 0x04, + MISSING_VCALL = 0x08, + MISSING_SUPER = 0x10, + MISSING_MISSING = 0x20, + MISSING_NONE = 0x40 +};static inline +VALUE rb_vm_push_frame_fname(struct rb_execution_context_struct *ec, VALUE fname); +VALUE rb_obj_is_thread(VALUE obj); +void rb_vm_mark(void *ptr); +void rb_vm_each_stack_value(void *ptr, void (*cb)(VALUE, void*), void *ctx); +__attribute__((__pure__)) VALUE rb_vm_top_self(void); +const void **rb_vm_get_insns_address_table(void); +VALUE rb_source_location(int *pline); +const char *rb_source_location_cstr(int *pline); +static void rb_vm_pop_cfunc_frame(void); +int rb_vm_add_root_module(VALUE module); +void rb_vm_check_redefinition_by_prepend(VALUE klass); +int rb_vm_check_optimizable_mid(VALUE mid); +VALUE rb_yield_refine_block(VALUE refinement, VALUE refinements); +static VALUE ruby_vm_special_exception_copy(VALUE); +__attribute__((__pure__)) st_table *rb_vm_fstring_table(void); +VALUE rb_vm_exec(struct rb_execution_context_struct *, _Bool); +VALUE rb_current_realfilepath(void); +VALUE rb_check_block_call(VALUE, ID, int, const VALUE *, rb_block_call_func_t, VALUE); +typedef void rb_check_funcall_hook(int, VALUE, ID, int, const VALUE *, VALUE); +VALUE rb_check_funcall_with_hook(VALUE recv, ID mid, int argc, const VALUE *argv, + rb_check_funcall_hook *hook, VALUE arg); +VALUE rb_check_funcall_with_hook_kw(VALUE recv, ID mid, int argc, const VALUE *argv, + rb_check_funcall_hook *hook, VALUE arg, int kw_splat); +const char *rb_type_str(enum ruby_value_type type); +VALUE rb_check_funcall_default(VALUE, ID, int, const VALUE *, VALUE); +VALUE rb_check_funcall_basic_kw(VALUE, ID, VALUE, int, const VALUE*, int); +VALUE rb_yield_1(VALUE val); +VALUE rb_yield_force_blockarg(VALUE values); +VALUE rb_lambda_call(VALUE obj, ID mid, int argc, const VALUE *argv, + rb_block_call_func_t bl_proc, int min_argc, int max_argc, + VALUE data2); +void rb_check_stack_overflow(void); +VALUE rb_equal_opt(VALUE obj1, VALUE obj2); +VALUE rb_eql_opt(VALUE obj1, VALUE obj2); +struct rb_iseq_struct; +const struct rb_callcache *rb_vm_search_method_slowpath(const struct rb_callinfo *ci, VALUE klass); +struct rb_execution_context_struct; +int rb_ec_obj_respond_to(struct rb_execution_context_struct *ec, VALUE obj, ID id, int priv); +void rb_clear_constant_cache(void); +void rb_print_backtrace(void); +VALUE rb_vm_thread_backtrace(int argc, const VALUE *argv, VALUE thval); +VALUE rb_vm_thread_backtrace_locations(int argc, const VALUE *argv, VALUE thval); +VALUE rb_vm_backtrace(int argc, const VALUE * argv, struct rb_execution_context_struct * ec); +VALUE rb_vm_backtrace_locations(int argc, const VALUE * argv, struct rb_execution_context_struct * ec); +VALUE rb_make_backtrace(void); +void rb_backtrace_print_as_bugreport(void); +int rb_backtrace_p(VALUE obj); +VALUE rb_backtrace_to_str_ary(VALUE obj); +VALUE rb_backtrace_to_location_ary(VALUE obj); +void rb_backtrace_each(VALUE (*iter)(VALUE recv, VALUE str), VALUE output); +int rb_frame_info_p(VALUE obj); +int rb_get_node_id_from_frame_info(VALUE obj); +const struct rb_iseq_struct *rb_get_iseq_from_frame_info(VALUE obj); +VALUE rb_ec_backtrace_object(const struct rb_execution_context_struct *ec); +void rb_backtrace_use_iseq_first_lineno_for_last_location(VALUE self); + + + + + + + + +struct rb_execution_context_struct; +struct rb_objspace; + +typedef struct ractor_newobj_size_pool_cache { + struct RVALUE *freelist; + struct heap_page *using_page; +} rb_ractor_newobj_size_pool_cache_t; +typedef struct ractor_newobj_cache { + size_t incremental_mark_step_allocated_slots; + rb_ractor_newobj_size_pool_cache_t size_pool_caches[5]; +} rb_ractor_newobj_cache_t; +extern VALUE *ruby_initial_gc_stress_ptr; +extern int ruby_disable_gc; +__attribute__((__malloc__)) void *ruby_mimmalloc(size_t size); +void ruby_mimfree(void *ptr); +void rb_objspace_set_event_hook(const rb_event_flag_t event); +VALUE rb_objspace_gc_enable(struct rb_objspace *); +VALUE rb_objspace_gc_disable(struct rb_objspace *); +void ruby_gc_set_params(void); +void rb_copy_wb_protected_attribute(VALUE dest, VALUE obj); +__attribute__((__alloc_align__(1))) +__attribute__((__malloc__)) void *rb_aligned_malloc(size_t, size_t) __attribute__((__alloc_size__ (2))); +size_t rb_size_mul_or_raise(size_t, size_t, VALUE); +size_t rb_size_mul_add_or_raise(size_t, size_t, size_t, VALUE); +__attribute__((__malloc__)) void *rb_xmalloc_mul_add(size_t, size_t, size_t); +__attribute__((__malloc__)) void *rb_xcalloc_mul_add(size_t, size_t, size_t); +void *rb_xrealloc_mul_add(const void *, size_t, size_t, size_t); +__attribute__((__malloc__)) void *rb_xmalloc_mul_add_mul(size_t, size_t, size_t, size_t); +__attribute__((__malloc__)) void *rb_xcalloc_mul_add_mul(size_t, size_t, size_t, size_t); +static inline void *ruby_sized_xrealloc_inlined(void *ptr, size_t new_size, size_t old_size) __attribute__((__returns_nonnull__)) __attribute__((__alloc_size__ (2))); +static inline void *ruby_sized_xrealloc2_inlined(void *ptr, size_t new_count, size_t elemsiz, size_t old_count) __attribute__((__returns_nonnull__)) __attribute__((__alloc_size__ (2, 3))); +static inline void ruby_sized_xfree_inlined(void *ptr, size_t size); +VALUE rb_class_allocate_instance(VALUE klass); +void rb_gc_ractor_newobj_cache_clear(rb_ractor_newobj_cache_t *newobj_cache); +size_t rb_gc_obj_slot_size(VALUE obj); +_Bool rb_gc_size_allocatable_p(size_t size); +int rb_objspace_garbage_object_p(VALUE obj); +const char *rb_objspace_data_type_name(VALUE obj); +VALUE rb_wb_protected_newobj_of(VALUE, VALUE, size_t); +VALUE rb_wb_unprotected_newobj_of(VALUE, VALUE, size_t); +VALUE rb_ec_wb_protected_newobj_of(struct rb_execution_context_struct *ec, VALUE klass, VALUE flags, size_t); +size_t rb_obj_memsize_of(VALUE); +void rb_gc_verify_internal_consistency(void); +size_t rb_obj_gc_flags(VALUE, ID[], size_t); +void rb_gc_mark_values(long n, const VALUE *values); +void rb_gc_mark_vm_stack_values(long n, const VALUE *values); +void *ruby_sized_xrealloc(void *ptr, size_t new_size, size_t old_size) __attribute__((__returns_nonnull__)) __attribute__((__alloc_size__ (2))); +void *ruby_sized_xrealloc2(void *ptr, size_t new_count, size_t element_size, size_t old_count) __attribute__((__returns_nonnull__)) __attribute__((__alloc_size__ (2, 3))); +void ruby_sized_xfree(void *x, size_t size); +int rb_ec_stack_check(struct rb_execution_context_struct *ec); +void rb_gc_writebarrier_remember(VALUE obj); +const char *rb_obj_info(VALUE obj); +static inline void * +ruby_sized_xrealloc_inlined(void *ptr, size_t new_size, size_t old_size) +{ + return ruby_xrealloc(ptr, new_size); +} +static inline void * +ruby_sized_xrealloc2_inlined(void *ptr, size_t new_count, size_t elemsiz, size_t old_count) +{ + return ruby_xrealloc2(ptr, new_count, elemsiz); +} +static inline void +ruby_sized_xfree_inlined(void *ptr, size_t size) +{ + ruby_xfree(ptr); +} +enum imemo_type { + imemo_env = 0, + imemo_cref = 1, + imemo_svar = 2, + imemo_throw_data = 3, + imemo_ifunc = 4, + imemo_memo = 5, + imemo_ment = 6, + imemo_iseq = 7, + imemo_tmpbuf = 8, + imemo_ast = 9, + imemo_parser_strterm = 10, + imemo_callinfo = 11, + imemo_callcache = 12, + imemo_constcache = 13, +}; +struct vm_svar { + VALUE flags; + const VALUE cref_or_me; + const VALUE lastline; + const VALUE backref; + const VALUE others; +}; +struct vm_throw_data { + VALUE flags; + VALUE reserved; + const VALUE throw_obj; + const struct rb_control_frame_struct *catch_frame; + int throw_state; +}; +struct vm_ifunc_argc { + int min, max; +}; +struct vm_ifunc { + VALUE flags; + VALUE reserved; + rb_block_call_func_t func; + const void *data; + struct vm_ifunc_argc argc; +}; +struct rb_imemo_tmpbuf_struct { + VALUE flags; + VALUE reserved; + VALUE *ptr; + struct rb_imemo_tmpbuf_struct *next; + size_t cnt; +}; +struct MEMO { + VALUE flags; + VALUE reserved; + const VALUE v1; + const VALUE v2; + union { + long cnt; + long state; + const VALUE value; + void (*func)(void); + } u3; +}; +typedef struct rb_imemo_tmpbuf_struct rb_imemo_tmpbuf_t; +rb_imemo_tmpbuf_t *rb_imemo_tmpbuf_parser_heap(void *buf, rb_imemo_tmpbuf_t *old_heap, size_t cnt); +struct vm_ifunc *rb_vm_ifunc_new(rb_block_call_func_t func, const void *data, int min_argc, int max_argc); +void rb_strterm_mark(VALUE obj); +static inline enum imemo_type imemo_type(VALUE imemo); +static inline int imemo_type_p(VALUE imemo, enum imemo_type imemo_type); +static inline _Bool imemo_throw_data_p(VALUE imemo); +static inline struct vm_ifunc *rb_vm_ifunc_proc_new(rb_block_call_func_t func, const void *data); +static inline VALUE rb_imemo_tmpbuf_auto_free_pointer(void); +static inline void *RB_IMEMO_TMPBUF_PTR(VALUE v); +static inline void *rb_imemo_tmpbuf_set_ptr(VALUE v, void *ptr); +static inline VALUE rb_imemo_tmpbuf_auto_free_pointer_new_from_an_RString(VALUE str); +static inline void MEMO_V1_SET(struct MEMO *m, VALUE v); +static inline void MEMO_V2_SET(struct MEMO *m, VALUE v); +VALUE rb_imemo_new(enum imemo_type type, VALUE v1, VALUE v2, VALUE v3, VALUE v0); +const char *rb_imemo_name(enum imemo_type type); +static inline enum imemo_type +imemo_type(VALUE imemo) +{ + return (((struct RBasic *)(imemo))->flags >> ((VALUE)RUBY_FL_USHIFT)) & 0x0f; +} +static inline int +imemo_type_p(VALUE imemo, enum imemo_type imemo_type) +{ + if ((__builtin_expect(!!(!RB_SPECIAL_CONST_P(imemo)), 1))) { + const VALUE mask = (0x0f << ((VALUE)RUBY_FL_USHIFT)) | RUBY_T_MASK; + const VALUE expected_type = (imemo_type << ((VALUE)RUBY_FL_USHIFT)) | RUBY_T_IMEMO; + return expected_type == (((struct RBasic *)(imemo))->flags & mask); + } + else { + return 0; + } +} +static inline _Bool +imemo_throw_data_p(VALUE imemo) +{ + return (__builtin_constant_p(RUBY_T_IMEMO) ? rbimpl_RB_TYPE_P_fastpath((imemo), (RUBY_T_IMEMO)) : (RB_TYPE_P)((imemo), (RUBY_T_IMEMO))); +} +static inline struct vm_ifunc * +rb_vm_ifunc_proc_new(rb_block_call_func_t func, const void *data) +{ + return rb_vm_ifunc_new(func, data, 0, (-1)); +} +static inline VALUE +rb_imemo_tmpbuf_auto_free_pointer(void) +{ + return rb_imemo_new(imemo_tmpbuf, 0, 0, 0, 0); +} +static inline void * +RB_IMEMO_TMPBUF_PTR(VALUE v) +{ + const struct rb_imemo_tmpbuf_struct *p = (const void *)v; + return p->ptr; +} +static inline void * +rb_imemo_tmpbuf_set_ptr(VALUE v, void *ptr) +{ + return ((rb_imemo_tmpbuf_t *)v)->ptr = ptr; +} +static inline VALUE +rb_imemo_tmpbuf_auto_free_pointer_new_from_an_RString(VALUE str) +{ + const void *src; + VALUE imemo; + rb_imemo_tmpbuf_t *tmpbuf; + void *dst; + size_t len; + rb_string_value(&(str)); + imemo = rb_imemo_tmpbuf_auto_free_pointer(); + tmpbuf = (rb_imemo_tmpbuf_t *)imemo; + len = RSTRING_LEN(str); + src = RSTRING_PTR(str); + dst = ruby_xmalloc(len); + ruby_nonempty_memcpy(dst, src, len); + tmpbuf->ptr = dst; + return imemo; +} +static inline void +MEMO_V1_SET(struct MEMO *m, VALUE v) +{ + rb_obj_write((VALUE)(m), __extension__({ + ; + ; __typeof__((VALUE *)(&m->v1)) unaligned_member_access_result = ((VALUE *)(&m->v1)); + ; unaligned_member_access_result; }), (VALUE)(v), "./internal/imemo.h", 233); +} +static inline void +MEMO_V2_SET(struct MEMO *m, VALUE v) +{ + rb_obj_write((VALUE)(m), __extension__({ + ; + ; __typeof__((VALUE *)(&m->v2)) unaligned_member_access_result = ((VALUE *)(&m->v2)); + ; unaligned_member_access_result; }), (VALUE)(v), "./internal/imemo.h", 239); +} +typedef enum { + METHOD_VISI_UNDEF = 0x00, + METHOD_VISI_PUBLIC = 0x01, + METHOD_VISI_PRIVATE = 0x02, + METHOD_VISI_PROTECTED = 0x03, + METHOD_VISI_MASK = 0x03 +} rb_method_visibility_t; +typedef struct rb_scope_visi_struct { + rb_method_visibility_t method_visi : 3; + unsigned int module_func : 1; +} rb_scope_visibility_t; +typedef struct rb_cref_struct { + VALUE flags; + VALUE refinements; + VALUE klass_or_self; + struct rb_cref_struct * next; + const rb_scope_visibility_t scope_visi; +} rb_cref_t; +typedef struct rb_method_entry_struct { + VALUE flags; + VALUE defined_class; + struct rb_method_definition_struct * const def; + ID called_id; + VALUE owner; +} rb_method_entry_t; +typedef struct rb_callable_method_entry_struct { + VALUE flags; + const VALUE defined_class; + struct rb_method_definition_struct * const def; + ID called_id; + const VALUE owner; +} rb_callable_method_entry_t; +static inline void +METHOD_ENTRY_VISI_SET(rb_method_entry_t *me, rb_method_visibility_t visi) +{ + ((void)0); + me->flags = (me->flags & ~(((VALUE)RUBY_FL_USER4) | ((VALUE)RUBY_FL_USER5))) | (visi << ((((VALUE)RUBY_FL_USHIFT) + 4)+0)); +} +static inline void +METHOD_ENTRY_BASIC_SET(rb_method_entry_t *me, unsigned int basic) +{ + ((void)0); + me->flags = (me->flags & ~(((VALUE)RUBY_FL_USER6) )) | (basic << ((((VALUE)RUBY_FL_USHIFT) + 4)+2)); +} +static inline void +METHOD_ENTRY_FLAGS_SET(rb_method_entry_t *me, rb_method_visibility_t visi, unsigned int basic) +{ + ((void)0); + ((void)0); + me->flags = + (me->flags & ~(((VALUE)RUBY_FL_USER4)|((VALUE)RUBY_FL_USER5)|((VALUE)RUBY_FL_USER6))) | + ((visi << ((((VALUE)RUBY_FL_USHIFT) + 4)+0)) | (basic << ((((VALUE)RUBY_FL_USHIFT) + 4)+2))); +} +static inline void +METHOD_ENTRY_FLAGS_COPY(rb_method_entry_t *dst, const rb_method_entry_t *src) +{ + dst->flags = + (dst->flags & ~(((VALUE)RUBY_FL_USER4)|((VALUE)RUBY_FL_USER5)|((VALUE)RUBY_FL_USER6))) | + (src->flags & (((VALUE)RUBY_FL_USER4)|((VALUE)RUBY_FL_USER5)|((VALUE)RUBY_FL_USER6))); +} +typedef enum { + VM_METHOD_TYPE_ISEQ, + VM_METHOD_TYPE_CFUNC, + VM_METHOD_TYPE_ATTRSET, + VM_METHOD_TYPE_IVAR, + VM_METHOD_TYPE_BMETHOD, + VM_METHOD_TYPE_ZSUPER, + VM_METHOD_TYPE_ALIAS, + VM_METHOD_TYPE_UNDEF, + VM_METHOD_TYPE_NOTIMPLEMENTED, + VM_METHOD_TYPE_OPTIMIZED, + VM_METHOD_TYPE_MISSING, + VM_METHOD_TYPE_REFINED, +} rb_method_type_t; +__extension__ _Static_assert(VM_METHOD_TYPE_REFINED <= (1<<4), "VM_METHOD_TYPE_MINIMUM_BITS" ": " "VM_METHOD_TYPE_REFINED <= (1<beg_pos; + loc.end_pos = loc2->end_pos; + return loc; +} +typedef struct rb_ast_id_table { + int size; + ID ids[]; +} rb_ast_id_table_t; +typedef struct RNode { + VALUE flags; + union { + struct RNode *node; + ID id; + VALUE value; + rb_ast_id_table_t *tbl; + } u1; + union { + struct RNode *node; + ID id; + long argc; + VALUE value; + } u2; + union { + struct RNode *node; + ID id; + long state; + struct rb_args_info *args; + struct rb_ary_pattern_info *apinfo; + struct rb_fnd_pattern_info *fpinfo; + VALUE value; + } u3; + rb_code_location_t nd_loc; + int node_id; +} NODE; +VALUE rb_node_case_when_optimizable_literal(const NODE *const node); +typedef struct node_buffer_struct node_buffer_t; +typedef struct rb_ast_body_struct { + const NODE *root; + VALUE compile_option; + VALUE script_lines; +} rb_ast_body_t; +typedef struct rb_ast_struct { + VALUE flags; + node_buffer_t *node_buffer; + rb_ast_body_t body; +} rb_ast_t; +rb_ast_t *rb_ast_new(void); +void rb_ast_mark(rb_ast_t*); +void rb_ast_update_references(rb_ast_t*); +void rb_ast_dispose(rb_ast_t*); +void rb_ast_free(rb_ast_t*); +size_t rb_ast_memsize(const rb_ast_t*); +void rb_ast_add_mark_object(rb_ast_t*, VALUE); +void rb_ast_set_tokens(rb_ast_t*, VALUE); +VALUE rb_ast_tokens(rb_ast_t *ast); +NODE *rb_ast_newnode(rb_ast_t*, enum node_type type); +void rb_ast_delete_node(rb_ast_t*, NODE *n); +rb_ast_id_table_t *rb_ast_new_local_table(rb_ast_t*, int); +rb_ast_id_table_t *rb_ast_resize_latest_local_table(rb_ast_t*, int); +VALUE rb_parser_new(void); +VALUE rb_parser_end_seen_p(VALUE); +VALUE rb_parser_encoding(VALUE); +VALUE rb_parser_set_yydebug(VALUE, VALUE); +VALUE rb_parser_dump_tree(const NODE *node, int comment); +void rb_parser_set_options(VALUE, int, int, int, int); +rb_ast_t *rb_parser_compile_string(VALUE, const char*, VALUE, int); +rb_ast_t *rb_parser_compile_string_path(VALUE vparser, VALUE fname, VALUE src, int line); +rb_ast_t *rb_parser_compile_file_path(VALUE vparser, VALUE fname, VALUE input, int line); +rb_ast_t *rb_parser_compile_generic(VALUE vparser, VALUE (*lex_gets)(VALUE, int), VALUE fname, VALUE input, int line); +void rb_node_init(NODE *n, enum node_type type, VALUE a0, VALUE a1, VALUE a2); +const char *ruby_node_name(int node); +const struct kwtable *rb_reserved_word(const char *, unsigned int); +struct rb_args_info { + NODE *pre_init; + NODE *post_init; + int pre_args_num; + int post_args_num; + ID first_post_arg; + ID rest_arg; + ID block_arg; + NODE *kw_args; + NODE *kw_rest_arg; + NODE *opt_args; + unsigned int no_kwarg: 1; + unsigned int ruby2_keywords: 1; + unsigned int forwarding: 1; + VALUE imemo; +}; +struct rb_ary_pattern_info { + NODE *pre_args; + NODE *rest_arg; + NODE *post_args; +}; +struct rb_fnd_pattern_info { + NODE *pre_rest_arg; + NODE *args; + NODE *post_rest_arg; +}; +struct parser_params; +void *rb_parser_malloc(struct parser_params *, size_t); +void *rb_parser_realloc(struct parser_params *, void *, size_t); +void *rb_parser_calloc(struct parser_params *, size_t, size_t); +void rb_parser_free(struct parser_params *, void *); +__attribute__((__format__(__printf__, (2), (3)))) void rb_parser_printf(struct parser_params *parser, const char *fmt, ...); +void rb_ast_node_type_change(NODE *n, enum node_type type); +static inline VALUE +rb_node_set_type(NODE *n, enum node_type t) +{ + return (n)->flags=(((n)->flags&~(((VALUE)0x7f)<<8))|((((unsigned long)(t))<<8)&(((VALUE)0x7f)<<8))); +} +static inline _Bool +nd_type_p(const NODE *n, enum node_type t) +{ + return (enum node_type)((int) (((n)->flags & (((VALUE)0x7f)<<8))>>8)) == t; +} + +typedef unsigned int rb_atomic_t; +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline rb_atomic_t +rbimpl_atomic_fetch_add(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ + return __atomic_fetch_add(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_add(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ + __atomic_add_fetch(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_size_add(volatile size_t *ptr, size_t val) +{ + __atomic_add_fetch(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_inc(volatile rb_atomic_t *ptr) +{ + rbimpl_atomic_add(ptr, 1); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_size_inc(volatile size_t *ptr) +{ + rbimpl_atomic_size_add(ptr, 1); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline rb_atomic_t +rbimpl_atomic_fetch_sub(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ + return __atomic_fetch_sub(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_sub(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ + __atomic_sub_fetch(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_size_sub(volatile size_t *ptr, size_t val) +{ + __atomic_sub_fetch(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_dec(volatile rb_atomic_t *ptr) +{ + rbimpl_atomic_sub(ptr, 1); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_size_dec(volatile size_t *ptr) +{ + rbimpl_atomic_size_sub(ptr, 1); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_or(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ + __atomic_or_fetch(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline rb_atomic_t +rbimpl_atomic_exchange(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ + return __atomic_exchange_n(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline size_t +rbimpl_atomic_size_exchange(volatile size_t *ptr, size_t val) +{ + return __atomic_exchange_n(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void * +rbimpl_atomic_ptr_exchange(void *volatile *ptr, const void *val) +{ + __extension__ _Static_assert(sizeof *ptr == sizeof(size_t), "sizeof_voidp" ": " "sizeof *ptr == sizeof(size_t)"); + const size_t sval = ((size_t)val); + volatile size_t *const sptr = ((volatile size_t *)ptr); + const size_t sret = rbimpl_atomic_size_exchange(sptr, sval); + return ((void *)sret); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline VALUE +rbimpl_atomic_value_exchange(volatile VALUE *ptr, VALUE val) +{ + __extension__ _Static_assert(sizeof *ptr == sizeof(size_t), "sizeof_value" ": " "sizeof *ptr == sizeof(size_t)"); + const size_t sval = ((size_t)val); + volatile size_t *const sptr = ((volatile size_t *)ptr); + const size_t sret = rbimpl_atomic_size_exchange(sptr, sval); + return ((VALUE)sret); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_set(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ + __atomic_store_n(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline rb_atomic_t +rbimpl_atomic_cas(volatile rb_atomic_t *ptr, rb_atomic_t oldval, rb_atomic_t newval) +{ + __atomic_compare_exchange_n( + ptr, &oldval, newval, 0, 5, 5); + return oldval; +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline size_t +rbimpl_atomic_size_cas(volatile size_t *ptr, size_t oldval, size_t newval) +{ + __atomic_compare_exchange_n( + ptr, &oldval, newval, 0, 5, 5); + return oldval; +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void * +rbimpl_atomic_ptr_cas(void **ptr, const void *oldval, const void *newval) +{ + __extension__ _Static_assert(sizeof *ptr == sizeof(size_t), "sizeof_voidp" ": " "sizeof *ptr == sizeof(size_t)"); + const size_t snew = ((size_t)newval); + const size_t sold = ((size_t)oldval); + volatile size_t *const sptr = ((volatile size_t *)ptr); + const size_t sret = rbimpl_atomic_size_cas(sptr, sold, snew); + return ((void *)sret); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline VALUE +rbimpl_atomic_value_cas(volatile VALUE *ptr, VALUE oldval, VALUE newval) +{ + __extension__ _Static_assert(sizeof *ptr == sizeof(size_t), "sizeof_value" ": " "sizeof *ptr == sizeof(size_t)"); + const size_t snew = ((size_t)newval); + const size_t sold = ((size_t)oldval); + volatile size_t *const sptr = ((volatile size_t *)ptr); + const size_t sret = rbimpl_atomic_size_cas(sptr, sold, snew); + return ((VALUE)sret); +} + + +typedef uint32_t attr_index_t; +typedef uint32_t shape_id_t; +struct rb_shape { + struct rb_id_table * edges; + ID edge_name; + attr_index_t next_iv_index; + uint32_t capacity; + uint8_t type; + uint8_t size_pool_index; + shape_id_t parent_id; +}; +typedef struct rb_shape rb_shape_t; +enum shape_type { + SHAPE_ROOT, + SHAPE_IVAR, + SHAPE_FROZEN, + SHAPE_CAPACITY_CHANGE, + SHAPE_INITIAL_CAPACITY, + SHAPE_T_OBJECT, + SHAPE_OBJ_TOO_COMPLEX, +}; +static inline shape_id_t +RBASIC_SHAPE_ID(VALUE obj) +{ + ((void)0); + return (shape_id_t)((((uintptr_t)1 << 32) - 1) & ((((struct RBasic *)(obj))->flags) >> ((8 * 8) - 32))); +} +static inline void +RBASIC_SET_SHAPE_ID(VALUE obj, shape_id_t shape_id) +{ + ((struct RBasic *)(obj))->flags &= (((VALUE)-1) >> 32); + ((struct RBasic *)(obj))->flags |= ((VALUE)(shape_id) << ((8 * 8) - 32)); +} +static inline shape_id_t +ROBJECT_SHAPE_ID(VALUE obj) +{ + ((void)0); + return RBASIC_SHAPE_ID(obj); +} +static inline void +ROBJECT_SET_SHAPE_ID(VALUE obj, shape_id_t shape_id) +{ + ((void)0); + RBASIC_SET_SHAPE_ID(obj, shape_id); +} +static inline shape_id_t +RCLASS_SHAPE_ID(VALUE obj) +{ + ((void)0); + return RBASIC_SHAPE_ID(obj); +} +_Bool rb_shape_root_shape_p(rb_shape_t* shape); +rb_shape_t * rb_shape_get_root_shape(void); +uint8_t rb_shape_id_num_bits(void); +int32_t rb_shape_id_offset(void); +rb_shape_t* rb_shape_get_shape_by_id_without_assertion(shape_id_t shape_id); +rb_shape_t * rb_shape_get_parent(rb_shape_t * shape); +rb_shape_t* rb_shape_get_shape_by_id(shape_id_t shape_id); +shape_id_t rb_shape_get_shape_id(VALUE obj); +rb_shape_t * rb_shape_get_next_iv_shape(rb_shape_t * shape, ID id); +_Bool rb_shape_get_iv_index(rb_shape_t * shape, ID id, attr_index_t * value); +_Bool rb_shape_obj_too_complex(VALUE obj); +void rb_shape_set_shape(VALUE obj, rb_shape_t* shape); +rb_shape_t* rb_shape_get_shape(VALUE obj); +int rb_shape_frozen_shape_p(rb_shape_t* shape); +void rb_shape_transition_shape_frozen(VALUE obj); +void rb_shape_transition_shape_remove_ivar(VALUE obj, ID id, rb_shape_t *shape, VALUE * removed); +rb_shape_t * rb_shape_transition_shape_capa(rb_shape_t * shape, uint32_t new_capacity); +rb_shape_t* rb_shape_get_next(rb_shape_t* shape, VALUE obj, ID id); +rb_shape_t * rb_shape_rebuild_shape(rb_shape_t * initial_shape, rb_shape_t * dest_shape); +static inline uint32_t +ROBJECT_IV_CAPACITY(VALUE obj) +{ + ((void)0); + ((void)0); + return rb_shape_get_shape_by_id(ROBJECT_SHAPE_ID(obj))->capacity; +} +static inline struct rb_id_table * +ROBJECT_IV_HASH(VALUE obj) +{ + ((void)0); + ((void)0); + return (struct rb_id_table *)((struct RObject *)(obj))->as.heap.ivptr; +} +static inline void +ROBJECT_SET_IV_HASH(VALUE obj, const struct rb_id_table *tbl) +{ + ((void)0); + ((void)0); + ((struct RObject *)(obj))->as.heap.ivptr = (VALUE *)tbl; +} +size_t rb_id_table_size(const struct rb_id_table *tbl); +static inline uint32_t +ROBJECT_IV_COUNT(VALUE obj) +{ + if (ROBJECT_SHAPE_ID(obj) == ((5 * 2) + 1)) { + return (uint32_t)rb_id_table_size(ROBJECT_IV_HASH(obj)); + } + else { + ((void)0); + ((void)0); + return rb_shape_get_shape_by_id(ROBJECT_SHAPE_ID(obj))->next_iv_index; + } +} +static inline uint32_t +RBASIC_IV_COUNT(VALUE obj) +{ + return rb_shape_get_shape_by_id(rb_shape_get_shape_id(obj))->next_iv_index; +} +static inline uint32_t +RCLASS_IV_COUNT(VALUE obj) +{ + ((void)0); + uint32_t ivc = rb_shape_get_shape_by_id(RCLASS_SHAPE_ID(obj))->next_iv_index; + return ivc; +} +rb_shape_t * rb_shape_alloc(ID edge_name, rb_shape_t * parent); +rb_shape_t * rb_shape_alloc_with_size_pool_index(ID edge_name, rb_shape_t * parent, uint8_t size_pool_index); +rb_shape_t * rb_shape_alloc_with_parent_id(ID edge_name, shape_id_t parent_id); +rb_shape_t *rb_shape_traverse_from_new_root(rb_shape_t *initial_shape, rb_shape_t *orig_shape); +_Bool rb_shape_set_shape_id(VALUE obj, shape_id_t shape_id); +VALUE rb_obj_debug_shape(VALUE self, VALUE obj); +VALUE rb_shape_flags_mask(void); +void rb_shape_set_too_complex(VALUE obj); +typedef void each_shape_callback(rb_shape_t * shape, void *data); +void rb_shape_each_shape(each_shape_callback callback, void *data); +size_t rb_shape_memsize(rb_shape_t *shape); +size_t rb_shape_edges_count(rb_shape_t *shape); +size_t rb_shape_depth(rb_shape_t *shape); +shape_id_t rb_shape_id(rb_shape_t * shape); + + +struct sched_param { int sched_priority; char __opaque[4]; }; +extern int sched_yield(void); +extern int sched_get_priority_min(int); +extern int sched_get_priority_max(int); +enum { QOS_CLASS_USER_INTERACTIVE __attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) = 0x21, QOS_CLASS_USER_INITIATED __attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) = 0x19, QOS_CLASS_DEFAULT __attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) = 0x15, QOS_CLASS_UTILITY __attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) = 0x11, QOS_CLASS_BACKGROUND __attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) = 0x09, QOS_CLASS_UNSPECIFIED __attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) = 0x00, }; typedef unsigned int qos_class_t; +__attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) +qos_class_t +qos_class_self(void); +__attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) +qos_class_t +qos_class_main(void); +__attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) +int +pthread_attr_set_qos_class_np(pthread_attr_t *__attr, + qos_class_t __qos_class, int __relative_priority); +__attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) +int +pthread_attr_get_qos_class_np(pthread_attr_t * __restrict__ __attr, + qos_class_t * _Nullable __restrict__ __qos_class, + int * _Nullable __restrict__ __relative_priority); +__attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) +int +pthread_set_qos_class_self_np(qos_class_t __qos_class, + int __relative_priority); +__attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) +int +pthread_get_qos_class_np(pthread_t __pthread, + qos_class_t * _Nullable __restrict__ __qos_class, + int * _Nullable __restrict__ __relative_priority); +typedef struct pthread_override_s* pthread_override_t; +__attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) +pthread_override_t +pthread_override_qos_class_start_np(pthread_t __pthread, + qos_class_t __qos_class, int __relative_priority); +__attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) +int +pthread_override_qos_class_end_np(pthread_override_t __override); +typedef __darwin_mach_port_t mach_port_t; +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_atfork(void (* _Nullable)(void), void (* _Nullable)(void), + void (* _Nullable)(void)); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_destroy(pthread_attr_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_getdetachstate(const pthread_attr_t *, int *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_getguardsize(const pthread_attr_t * __restrict__, size_t * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_getinheritsched(const pthread_attr_t * __restrict__, int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_getschedparam(const pthread_attr_t * __restrict__, + struct sched_param * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_getschedpolicy(const pthread_attr_t * __restrict__, int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_getscope(const pthread_attr_t * __restrict__, int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_getstack(const pthread_attr_t * __restrict__, + void * _Nullable * _Nonnull __restrict__, size_t * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_getstackaddr(const pthread_attr_t * __restrict__, + void * _Nullable * _Nonnull __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_getstacksize(const pthread_attr_t * __restrict__, size_t * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_init(pthread_attr_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_setdetachstate(pthread_attr_t *, int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_setguardsize(pthread_attr_t *, size_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_setinheritsched(pthread_attr_t *, int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_setschedparam(pthread_attr_t * __restrict__, + const struct sched_param * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_setschedpolicy(pthread_attr_t *, int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_setscope(pthread_attr_t *, int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_setstack(pthread_attr_t *, void *, size_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_setstackaddr(pthread_attr_t *, void *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_setstacksize(pthread_attr_t *, size_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_cancel(pthread_t) __asm("_" "pthread_cancel" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_cond_broadcast(pthread_cond_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_cond_destroy(pthread_cond_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_cond_init( + pthread_cond_t * __restrict__, + const pthread_condattr_t * _Nullable __restrict__) + __asm("_" "pthread_cond_init" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_cond_signal(pthread_cond_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use an asynchronous wait instead of a synchronous wait" "\")"))) +int pthread_cond_timedwait( + pthread_cond_t * __restrict__, pthread_mutex_t * __restrict__, + const struct timespec * _Nullable __restrict__) + __asm("_" "pthread_cond_timedwait" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use an asynchronous wait instead of a synchronous wait" "\")"))) +int pthread_cond_wait(pthread_cond_t * __restrict__, + pthread_mutex_t * __restrict__) __asm("_" "pthread_cond_wait" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_condattr_destroy(pthread_condattr_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_condattr_init(pthread_condattr_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_condattr_getpshared(const pthread_condattr_t * __restrict__, + int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_condattr_setpshared(pthread_condattr_t *, int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_create(pthread_t _Nullable * _Nonnull __restrict__, + const pthread_attr_t * _Nullable __restrict__, + void * _Nullable (* _Nonnull)(void * _Nullable), + void * _Nullable __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_detach(pthread_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_equal(pthread_t _Nullable, pthread_t _Nullable); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Thread lifecycle is owned by Swift Concurrency runtime" "\")"))) +void pthread_exit(void * _Nullable) __attribute__((__noreturn__)); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_getconcurrency(void); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_getschedparam(pthread_t , int * _Nullable __restrict__, + struct sched_param * _Nullable __restrict__); +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use Task Local Values instead" "\")"))) +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +void* _Nullable pthread_getspecific(pthread_key_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use an asynchronous wait instead of a synchronous wait" "\")"))) +int pthread_join(pthread_t , void * _Nullable * _Nullable) + __asm("_" "pthread_join" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_key_create(pthread_key_t *, void (* _Nullable)(void *)); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_key_delete(pthread_key_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutex_destroy(pthread_mutex_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutex_getprioceiling(const pthread_mutex_t * __restrict__, + int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutex_init(pthread_mutex_t * __restrict__, + const pthread_mutexattr_t * _Nullable __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use OSAllocatedUnfairLock's withLock or NSLock for async-safe scoped locking" "\")"))) +int pthread_mutex_lock(pthread_mutex_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutex_setprioceiling(pthread_mutex_t * __restrict__, int, + int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use OSAllocatedUnfairLock's withLockIfAvailable or NSLock for async-safe scoped locking" "\")"))) +int pthread_mutex_trylock(pthread_mutex_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use OSAllocatedUnfairLock's withLock or NSLock for async-safe scoped locking" "\")"))) +int pthread_mutex_unlock(pthread_mutex_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_destroy(pthread_mutexattr_t *) __asm("_" "pthread_mutexattr_destroy" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t * __restrict__, + int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_getprotocol(const pthread_mutexattr_t * __restrict__, + int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_getpshared(const pthread_mutexattr_t * __restrict__, + int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_gettype(const pthread_mutexattr_t * __restrict__, + int * __restrict__); +__attribute__((availability(macos,introduced=10.13.4))) __attribute__((availability(ios,introduced=11.3))) __attribute__((availability(watchos,introduced=4.3))) __attribute__((availability(tvos,introduced=11.3))) +int pthread_mutexattr_getpolicy_np(const pthread_mutexattr_t * __restrict__, + int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_init(pthread_mutexattr_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_settype(pthread_mutexattr_t *, int); +__attribute__((availability(macos,introduced=10.7))) __attribute__((availability(ios,introduced=5.0))) +int pthread_mutexattr_setpolicy_np(pthread_mutexattr_t *, int); +__attribute__((availability(swift,unavailable,message="Use lazily initialized globals instead"))) +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_once(pthread_once_t *, void (* _Nonnull)(void)); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_rwlock_destroy(pthread_rwlock_t * ) __asm("_" "pthread_rwlock_destroy" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_rwlock_init(pthread_rwlock_t * __restrict__, + const pthread_rwlockattr_t * _Nullable __restrict__) + __asm("_" "pthread_rwlock_init" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use async-safe scoped locking instead" "\")"))) +int pthread_rwlock_rdlock(pthread_rwlock_t *) __asm("_" "pthread_rwlock_rdlock" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use async-safe scoped locking instead" "\")"))) +int pthread_rwlock_tryrdlock(pthread_rwlock_t *) __asm("_" "pthread_rwlock_tryrdlock" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use async-safe scoped locking instead" "\")"))) +int pthread_rwlock_trywrlock(pthread_rwlock_t *) __asm("_" "pthread_rwlock_trywrlock" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use async-safe scoped locking instead" "\")"))) +int pthread_rwlock_wrlock(pthread_rwlock_t *) __asm("_" "pthread_rwlock_wrlock" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use async-safe scoped locking instead" "\")"))) +int pthread_rwlock_unlock(pthread_rwlock_t *) __asm("_" "pthread_rwlock_unlock" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_rwlockattr_destroy(pthread_rwlockattr_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t * __restrict__, + int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_rwlockattr_init(pthread_rwlockattr_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +pthread_t pthread_self(void); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use Task cancellation instead" "\")"))) +int pthread_setcancelstate(int , int * _Nullable) + __asm("_" "pthread_setcancelstate" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use Task cancellation instead" "\")"))) +int pthread_setcanceltype(int , int * _Nullable) + __asm("_" "pthread_setcanceltype" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_setconcurrency(int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_setschedparam(pthread_t, int, const struct sched_param *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use Task Local Values instead" "\")"))) +int pthread_setspecific(pthread_key_t , const void * _Nullable); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use Task cancellation instead" "\")"))) +void pthread_testcancel(void) __asm("_" "pthread_testcancel" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_is_threaded_np(void); +__attribute__((availability(macos,introduced=10.6))) __attribute__((availability(ios,introduced=3.2))) +int pthread_threadid_np(pthread_t _Nullable,__uint64_t* _Nullable); +__attribute__((availability(macos,introduced=10.6))) __attribute__((availability(ios,introduced=3.2))) +int pthread_getname_np(pthread_t,char*,size_t); +__attribute__((availability(macos,introduced=10.6))) __attribute__((availability(ios,introduced=3.2))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Thread lifecycle is owned by Swift Concurrency runtime" "\")"))) +int pthread_setname_np(const char*); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_main_np(void); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +mach_port_t pthread_mach_thread_np(pthread_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +size_t pthread_get_stacksize_np(pthread_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +void* pthread_get_stackaddr_np(pthread_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_cond_signal_thread_np(pthread_cond_t *, pthread_t _Nullable); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use an asynchronous wait instead of a synchronous wait" "\")"))) +int pthread_cond_timedwait_relative_np(pthread_cond_t *, pthread_mutex_t *, + const struct timespec * _Nullable); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_create_suspended_np( + pthread_t _Nullable * _Nonnull, const pthread_attr_t * _Nullable, + void * _Nullable (* _Nonnull)(void * _Nullable), void * _Nullable); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_kill(pthread_t, int); +__attribute__((availability(macos,introduced=10.5))) __attribute__((availability(ios,introduced=2.0))) +_Nullable pthread_t pthread_from_mach_thread_np(mach_port_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_sigmask(int, const sigset_t * _Nullable, sigset_t * _Nullable) + __asm("_" "pthread_sigmask" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use Task.yield(), or await a condition instead of spinning" "\")"))) +void pthread_yield_np(void); +__attribute__((availability(macos,introduced=11.0))) +__attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(driverkit,unavailable))) +void pthread_jit_write_protect_np(int enabled); +__attribute__((availability(macos,introduced=11.0))) +__attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(driverkit,unavailable))) +int pthread_jit_write_protect_supported_np(void); +typedef int (*pthread_jit_write_callback_t)(void * _Nullable ctx); +__attribute__((availability(macos,introduced=11.4))) +__attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(driverkit,unavailable))) +__attribute__((availability(swift,unavailable,message="This interface cannot be safely used from Swift"))) +int pthread_jit_write_with_callback_np( + pthread_jit_write_callback_t _Nonnull callback, void * _Nullable ctx); +__attribute__((availability(macos,introduced=12.1))) +__attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(driverkit,unavailable))) +void pthread_jit_write_freeze_callbacks_np(void); +__attribute__((availability(macos,introduced=11.0))) __attribute__((availability(ios,introduced=14.2))) __attribute__((availability(tvos,introduced=14.2))) __attribute__((availability(watchos,introduced=7.1))) +int +pthread_cpu_number_np(size_t *cpu_number_out); +typedef pthread_t rb_nativethread_id_t; +typedef pthread_mutex_t rb_nativethread_lock_t; +typedef pthread_cond_t rb_nativethread_cond_t; +rb_nativethread_id_t rb_nativethread_self(void); +void rb_nativethread_lock_initialize(rb_nativethread_lock_t *lock); +void rb_nativethread_lock_destroy(rb_nativethread_lock_t *lock); +void rb_nativethread_lock_lock(rb_nativethread_lock_t *lock); +void rb_nativethread_lock_unlock(rb_nativethread_lock_t *lock); +void rb_native_mutex_lock(rb_nativethread_lock_t *lock); +int rb_native_mutex_trylock(rb_nativethread_lock_t *lock); +void rb_native_mutex_unlock(rb_nativethread_lock_t *lock); +void rb_native_mutex_initialize(rb_nativethread_lock_t *lock); +void rb_native_mutex_destroy(rb_nativethread_lock_t *lock); +void rb_native_cond_signal(rb_nativethread_cond_t *cond); +void rb_native_cond_broadcast(rb_nativethread_cond_t *cond); +void rb_native_cond_wait(rb_nativethread_cond_t *cond, rb_nativethread_lock_t *mutex); +void rb_native_cond_timedwait(rb_nativethread_cond_t *cond, rb_nativethread_lock_t *mutex, unsigned long msec); +void rb_native_cond_initialize(rb_nativethread_cond_t *cond); +void rb_native_cond_destroy(rb_nativethread_cond_t *cond); +void *rb_allocate_sigaltstack(void); +void *rb_register_sigaltstack(void *); + +struct rb_thread_sched_item { + union { + struct ccan_list_node ubf; + struct ccan_list_node readyq; + } node; +}; +struct rb_native_thread { + int id; + rb_nativethread_id_t thread_id; + struct rb_thread_struct *running_thread; + struct + { + rb_nativethread_cond_t intr; + rb_nativethread_cond_t readyq; + } cond; + void *altstack; +}; +struct rb_thread_sched { + const struct rb_thread_struct *running; + rb_nativethread_lock_t lock; + struct ccan_list_head readyq; + const struct rb_thread_struct *timer; + int timer_err; + rb_nativethread_cond_t switch_cond; + rb_nativethread_cond_t switch_wait_cond; + int need_yield; + int wait_yield; +}; +struct rb_execution_context_struct *rb_current_ec(void); +void rb_current_ec_set(struct rb_execution_context_struct *); +void rb_vm_encoded_insn_data_table_init(void); +typedef unsigned long rb_num_t; +typedef signed long rb_snum_t; +enum ruby_tag_type { + RUBY_TAG_NONE = 0x0, + RUBY_TAG_RETURN = 0x1, + RUBY_TAG_BREAK = 0x2, + RUBY_TAG_NEXT = 0x3, + RUBY_TAG_RETRY = 0x4, + RUBY_TAG_REDO = 0x5, + RUBY_TAG_RAISE = 0x6, + RUBY_TAG_THROW = 0x7, + RUBY_TAG_FATAL = 0x8, + RUBY_TAG_MASK = 0xf +}; +enum ruby_vm_throw_flags { + VM_THROW_NO_ESCAPE_FLAG = 0x8000, + VM_THROW_STATE_MASK = 0xff +}; +struct rb_thread_struct; +struct rb_control_frame_struct; +typedef struct rb_compile_option_struct rb_compile_option_t; +union ic_serial_entry { + rb_serial_t raw; + VALUE data[2]; +}; +struct iseq_inline_constant_cache_entry { + VALUE flags; + VALUE value; + VALUE _unused1; + VALUE _unused2; + const rb_cref_t *ic_cref; +}; +__extension__ _Static_assert((__builtin_offsetof(struct iseq_inline_constant_cache_entry, ic_cref) + sizeof(const rb_cref_t *)) <= (sizeof(struct RBasic) + sizeof(VALUE[3])), "sizeof_iseq_inline_constant_cache_entry" ": " "(offsetof(struct iseq_inline_constant_cache_entry, ic_cref) + sizeof(const rb_cref_t *)) <= RVALUE_SIZE"); +struct iseq_inline_constant_cache { + struct iseq_inline_constant_cache_entry *entry; + const ID *segments; +}; +struct iseq_inline_iv_cache_entry { + uintptr_t value; + ID iv_set_name; +}; +struct iseq_inline_cvar_cache_entry { + struct rb_cvar_class_tbl_entry *entry; +}; +union iseq_inline_storage_entry { + struct { + struct rb_thread_struct *running_thread; + VALUE value; + } once; + struct iseq_inline_constant_cache ic_cache; + struct iseq_inline_iv_cache_entry iv_cache; +}; +struct rb_calling_info { + const struct rb_callinfo *ci; + const struct rb_callcache *cc; + VALUE block_handler; + VALUE recv; + int argc; + int kw_splat; +}; +struct rb_execution_context_struct; +typedef struct rb_iseq_location_struct { + VALUE pathobj; + VALUE base_label; + VALUE label; + int first_lineno; + int node_id; + rb_code_location_t code_location; +} rb_iseq_location_t; +static inline VALUE +pathobj_path(VALUE pathobj) +{ + if ((__builtin_constant_p(RUBY_T_STRING) ? rbimpl_RB_TYPE_P_fastpath((pathobj), (RUBY_T_STRING)) : (RB_TYPE_P)((pathobj), (RUBY_T_STRING)))) { + return pathobj; + } + else { + ((void)0); + return RARRAY_AREF(pathobj, 0); + } +} +static inline VALUE +pathobj_realpath(VALUE pathobj) +{ + if ((__builtin_constant_p(RUBY_T_STRING) ? rbimpl_RB_TYPE_P_fastpath((pathobj), (RUBY_T_STRING)) : (RB_TYPE_P)((pathobj), (RUBY_T_STRING)))) { + return pathobj; + } + else { + ((void)0); + return RARRAY_AREF(pathobj, 1); + } +} +struct rb_mjit_unit; +typedef uintptr_t iseq_bits_t; +enum rb_iseq_type { + ISEQ_TYPE_TOP, + ISEQ_TYPE_METHOD, + ISEQ_TYPE_BLOCK, + ISEQ_TYPE_CLASS, + ISEQ_TYPE_RESCUE, + ISEQ_TYPE_ENSURE, + ISEQ_TYPE_EVAL, + ISEQ_TYPE_MAIN, + ISEQ_TYPE_PLAIN +}; +struct rb_iseq_constant_body { + enum rb_iseq_type type; + unsigned int iseq_size; + VALUE *iseq_encoded; + struct { + struct { + unsigned int has_lead : 1; + unsigned int has_opt : 1; + unsigned int has_rest : 1; + unsigned int has_post : 1; + unsigned int has_kw : 1; + unsigned int has_kwrest : 1; + unsigned int has_block : 1; + unsigned int ambiguous_param0 : 1; + unsigned int accepts_no_kwarg : 1; + unsigned int ruby2_keywords: 1; + } flags; + unsigned int size; + int lead_num; + int opt_num; + int rest_start; + int post_start; + int post_num; + int block_start; + const VALUE *opt_table; + const struct rb_iseq_param_keyword { + int num; + int required_num; + int bits_start; + int rest_start; + const ID *table; + VALUE *default_values; + } *keyword; + } param; + rb_iseq_location_t location; + struct iseq_insn_info { + const struct iseq_insn_info_entry *body; + unsigned int *positions; + unsigned int size; + struct succ_index_table *succ_index_table; + } insns_info; + const ID *local_table; + struct iseq_catch_table *catch_table; + const struct rb_iseq_struct *parent_iseq; + struct rb_iseq_struct *local_iseq; + union iseq_inline_storage_entry *is_entries; + struct rb_call_data *call_data; + struct { + rb_snum_t flip_count; + VALUE script_lines; + VALUE coverage; + VALUE pc2branchindex; + VALUE *original_iseq; + } variable; + unsigned int local_table_size; + unsigned int ic_size; + unsigned int ise_size; + unsigned int ivc_size; + unsigned int icvarc_size; + unsigned int ci_size; + unsigned int stack_max; + _Bool catch_except_p; + _Bool builtin_inline_p; + union { + iseq_bits_t * list; + iseq_bits_t single; + } mark_bits; + struct rb_id_table *outer_variables; + const rb_iseq_t *mandatory_only_iseq; + VALUE (*jit_func)(struct rb_execution_context_struct *, struct rb_control_frame_struct *); + long unsigned total_calls; + struct rb_mjit_unit *mjit_unit; +}; +struct rb_iseq_struct { + VALUE flags; + VALUE wrapper; + struct rb_iseq_constant_body *body; + union { + struct iseq_compile_data *compile_data; + struct { + VALUE obj; + int index; + } loader; + struct { + struct rb_hook_list_struct *local_hooks; + rb_event_flag_t global_trace_events; + } exec; + } aux; +}; +static inline const rb_iseq_t * +rb_iseq_check(const rb_iseq_t *iseq) +{ + return iseq; +} +static inline const rb_iseq_t * +def_iseq_ptr(rb_method_definition_t *def) +{ + return rb_iseq_check(def->body.iseq.iseqptr); +} +enum ruby_special_exceptions { + ruby_error_reenter, + ruby_error_nomemory, + ruby_error_sysstack, + ruby_error_stackfatal, + ruby_error_stream_closed, + ruby_special_error_count +}; +struct rb_vm_struct; +typedef void rb_vm_at_exit_func(struct rb_vm_struct*); +typedef struct rb_at_exit_list { + rb_vm_at_exit_func *func; + struct rb_at_exit_list *next; +} rb_at_exit_list; +struct rb_objspace; +struct rb_objspace *rb_objspace_alloc(void); +void rb_objspace_free(struct rb_objspace *); +void rb_objspace_call_finalizer(struct rb_objspace *); +typedef struct rb_hook_list_struct { + struct rb_event_hook_struct *hooks; + rb_event_flag_t events; + unsigned int running; + _Bool need_clean; + _Bool is_local; +} rb_hook_list_t; +typedef const struct rb_builtin_function *RB_BUILTIN; +typedef struct rb_vm_struct { + VALUE self; + struct { + struct ccan_list_head set; + unsigned int cnt; + unsigned int blocking_cnt; + struct rb_ractor_struct *main_ractor; + struct rb_thread_struct *main_thread; + struct { + rb_nativethread_lock_t lock; + struct rb_ractor_struct *lock_owner; + unsigned int lock_rec; + _Bool barrier_waiting; + unsigned int barrier_cnt; + rb_nativethread_cond_t barrier_cond; + rb_nativethread_cond_t terminate_cond; + _Bool terminate_waiting; + } sync; + } ractor; + void *main_altstack; + rb_serial_t fork_gen; + rb_nativethread_lock_t waitpid_lock; + struct ccan_list_head waiting_pids; + struct ccan_list_head waiting_grps; + struct ccan_list_head waiting_fds; + volatile int ubf_async_safe; + unsigned int running: 1; + unsigned int thread_abort_on_exception: 1; + unsigned int thread_report_on_exception: 1; + unsigned int thread_ignore_deadlock: 1; + VALUE mark_object_ary; + const VALUE special_exceptions[ruby_special_error_count]; + rb_shape_t *shape_list; + rb_shape_t *root_shape; + shape_id_t next_shape_id; + VALUE top_self; + VALUE load_path; + VALUE load_path_snapshot; + VALUE load_path_check_cache; + VALUE expanded_load_path; + VALUE loaded_features; + VALUE loaded_features_snapshot; + VALUE loaded_features_realpaths; + VALUE loaded_features_realpath_map; + struct st_table *loaded_features_index; + struct st_table *loading_table; + struct st_table *static_ext_inits; + struct { + VALUE cmd[32]; + } trap_list; + struct st_table *ensure_rollback_table; + struct rb_postponed_job_struct *postponed_job_buffer; + rb_atomic_t postponed_job_index; + int src_encoding_index; + struct ccan_list_head workqueue; + rb_nativethread_lock_t workqueue_lock; + VALUE orig_progname, progname; + VALUE coverages, me2counter; + int coverage_mode; + st_table * defined_module_hash; + struct rb_objspace *objspace; + rb_at_exit_list *at_exit; + st_table *frozen_strings; + const struct rb_builtin_function *builtin_function_table; + int builtin_inline_index; + struct rb_id_table *negative_cme_table; + st_table *overloaded_cme_table; + struct rb_id_table *constant_cache; + const struct rb_callcache *global_cc_cache_table[1023]; + struct { + size_t thread_vm_stack_size; + size_t thread_machine_stack_size; + size_t fiber_vm_stack_size; + size_t fiber_machine_stack_size; + } default_params; +} rb_vm_t; +struct rb_captured_block { + VALUE self; + const VALUE *ep; + union { + const rb_iseq_t *iseq; + const struct vm_ifunc *ifunc; + VALUE val; + } code; +}; +enum rb_block_handler_type { + block_handler_type_iseq, + block_handler_type_ifunc, + block_handler_type_symbol, + block_handler_type_proc +}; +enum rb_block_type { + block_type_iseq, + block_type_ifunc, + block_type_symbol, + block_type_proc +}; +struct rb_block { + union { + struct rb_captured_block captured; + VALUE symbol; + VALUE proc; + } as; + enum rb_block_type type; +}; +typedef struct rb_control_frame_struct { + const VALUE *pc; + VALUE *sp; + const rb_iseq_t *iseq; + VALUE self; + const VALUE *ep; + const void *block_code; + VALUE *__bp__; + void *jit_return; +} rb_control_frame_t; +extern const rb_data_type_t ruby_threadptr_data_type; +static inline struct rb_thread_struct * +rb_thread_ptr(VALUE thval) +{ + return (struct rb_thread_struct *)rb_check_typeddata(thval, &ruby_threadptr_data_type); +} +enum rb_thread_status { + THREAD_RUNNABLE, + THREAD_STOPPED, + THREAD_STOPPED_FOREVER, + THREAD_KILLED +}; +typedef sigjmp_buf rb_jmpbuf_t; +struct rb_vm_tag { + VALUE tag; + VALUE retval; + rb_jmpbuf_t buf; + struct rb_vm_tag *prev; + enum ruby_tag_type state; + unsigned int lock_rec; +}; +__extension__ _Static_assert(__builtin_offsetof(struct rb_vm_tag, buf) > 0, "rb_vm_tag_buf_offset" ": " "offsetof(struct rb_vm_tag, buf) > 0"); +__extension__ _Static_assert(__builtin_offsetof(struct rb_vm_tag, buf) + sizeof(rb_jmpbuf_t) < sizeof(struct rb_vm_tag), "rb_vm_tag_buf_end" ": " "offsetof(struct rb_vm_tag, buf) + sizeof(rb_jmpbuf_t) < sizeof(struct rb_vm_tag)"); +struct rb_unblock_callback { + rb_unblock_function_t *func; + void *arg; +}; +struct rb_mutex_struct; +typedef struct rb_ensure_entry { + VALUE marker; + VALUE (*e_proc)(VALUE); + VALUE data2; +} rb_ensure_entry_t; +typedef struct rb_ensure_list { + struct rb_ensure_list *next; + struct rb_ensure_entry entry; +} rb_ensure_list_t; +typedef struct rb_fiber_struct rb_fiber_t; +struct rb_waiting_list { + struct rb_waiting_list *next; + struct rb_thread_struct *thread; + struct rb_fiber_struct *fiber; +}; +struct rb_execution_context_struct { + VALUE *vm_stack; + size_t vm_stack_size; + rb_control_frame_t *cfp; + struct rb_vm_tag *tag; + rb_atomic_t interrupt_flag; + rb_atomic_t interrupt_mask; + rb_fiber_t *fiber_ptr; + struct rb_thread_struct *thread_ptr; + struct rb_id_table *local_storage; + VALUE local_storage_recursive_hash; + VALUE local_storage_recursive_hash_for_trace; + VALUE storage; + const VALUE *root_lep; + VALUE root_svar; + rb_ensure_list_t *ensure_list; + struct rb_trace_arg_struct *trace_arg; + VALUE errinfo; + VALUE passed_block_handler; + uint8_t raised_flag; + enum method_missing_reason method_missing_reason : 8; + VALUE private_const_reference; + struct { + VALUE *stack_start; + VALUE *stack_end; + size_t stack_maxsize; + __declspec(align(8)) jmp_buf regs; + } machine; +}; +typedef struct rb_execution_context_struct rb_execution_context_t; +void rb_ec_set_vm_stack(rb_execution_context_t *ec, VALUE *stack, size_t size); +void rb_ec_initialize_vm_stack(rb_execution_context_t *ec, VALUE *stack, size_t size); +void rb_ec_clear_vm_stack(rb_execution_context_t *ec); +struct rb_ext_config { + _Bool ractor_safe; +}; +typedef struct rb_ractor_struct rb_ractor_t; +struct rb_native_thread; +typedef struct rb_thread_struct { + struct ccan_list_node lt_node; + VALUE self; + rb_ractor_t *ractor; + rb_vm_t *vm; + struct rb_native_thread *nt; + rb_execution_context_t *ec; + struct rb_thread_sched_item sched; + rb_atomic_t serial; + VALUE last_status; + struct rb_calling_info *calling; + VALUE top_self; + VALUE top_wrapper; + enum rb_thread_status status : 2; + unsigned int locking_native_thread : 1; + unsigned int to_kill : 1; + unsigned int abort_on_exception: 1; + unsigned int report_on_exception: 1; + unsigned int pending_interrupt_queue_checked: 1; + int8_t priority; + uint32_t running_time_us; + void *blocking_region_buffer; + VALUE thgroup; + VALUE value; + VALUE pending_interrupt_queue; + VALUE pending_interrupt_mask_stack; + rb_nativethread_lock_t interrupt_lock; + struct rb_unblock_callback unblock; + VALUE locking_mutex; + struct rb_mutex_struct *keeping_mutexes; + struct rb_waiting_list *join_list; + union { + struct { + VALUE proc; + VALUE args; + int kw_splat; + } proc; + struct { + VALUE (*func)(void *); + void *arg; + } func; + } invoke_arg; + enum thread_invoke_type { + thread_invoke_type_none = 0, + thread_invoke_type_proc, + thread_invoke_type_ractor_proc, + thread_invoke_type_func + } invoke_type; + VALUE stat_insn_usage; + rb_fiber_t *root_fiber; + VALUE scheduler; + unsigned int blocking; + VALUE name; + struct rb_ext_config ext_config; +} rb_thread_t; +static inline unsigned int +rb_th_serial(const rb_thread_t *th) +{ + return (unsigned int)th->serial; +} +typedef enum { + VM_DEFINECLASS_TYPE_CLASS = 0x00, + VM_DEFINECLASS_TYPE_SINGLETON_CLASS = 0x01, + VM_DEFINECLASS_TYPE_MODULE = 0x02, + VM_DEFINECLASS_TYPE_MASK = 0x07 +} rb_vm_defineclass_type_t; +rb_iseq_t *rb_iseq_new (const rb_ast_body_t *ast, VALUE name, VALUE path, VALUE realpath, const rb_iseq_t *parent, enum rb_iseq_type); +rb_iseq_t *rb_iseq_new_top (const rb_ast_body_t *ast, VALUE name, VALUE path, VALUE realpath, const rb_iseq_t *parent); +rb_iseq_t *rb_iseq_new_main (const rb_ast_body_t *ast, VALUE path, VALUE realpath, const rb_iseq_t *parent, int opt); +rb_iseq_t *rb_iseq_new_eval (const rb_ast_body_t *ast, VALUE name, VALUE path, VALUE realpath, int first_lineno, const rb_iseq_t *parent, int isolated_depth); +rb_iseq_t *rb_iseq_new_with_opt(const rb_ast_body_t *ast, VALUE name, VALUE path, VALUE realpath, int first_lineno, const rb_iseq_t *parent, int isolated_depth, + enum rb_iseq_type, const rb_compile_option_t*); +struct iseq_link_anchor; +struct rb_iseq_new_with_callback_callback_func { + VALUE flags; + VALUE reserved; + void (*func)(rb_iseq_t *, struct iseq_link_anchor *, const void *); + const void *data; +}; +static inline struct rb_iseq_new_with_callback_callback_func * +rb_iseq_new_with_callback_new_callback( + void (*func)(rb_iseq_t *, struct iseq_link_anchor *, const void *), const void *ptr) +{ + VALUE memo = rb_imemo_new(imemo_ifunc, (VALUE)func, (VALUE)ptr, ((VALUE)RUBY_Qundef), ((VALUE)RUBY_Qfalse)); + return (struct rb_iseq_new_with_callback_callback_func *)memo; +} +rb_iseq_t *rb_iseq_new_with_callback(const struct rb_iseq_new_with_callback_callback_func * ifunc, + VALUE name, VALUE path, VALUE realpath, int first_lineno, + const rb_iseq_t *parent, enum rb_iseq_type, const rb_compile_option_t*); +VALUE rb_iseq_disasm(const rb_iseq_t *iseq); +int rb_iseq_disasm_insn(VALUE str, const VALUE *iseqval, size_t pos, const rb_iseq_t *iseq, VALUE child); +attr_index_t rb_estimate_iv_count(VALUE klass, const rb_iseq_t * initialize_iseq); +VALUE rb_iseq_coverage(const rb_iseq_t *iseq); +extern VALUE rb_cISeq; +extern VALUE rb_cRubyVM; +extern VALUE rb_mRubyVMFrozenCore; +extern VALUE rb_block_param_proxy; +typedef struct { + const struct rb_block block; + unsigned int is_from_method: 1; + unsigned int is_lambda: 1; + unsigned int is_isolated: 1; +} rb_proc_t; +VALUE rb_proc_isolate(VALUE self); +VALUE rb_proc_isolate_bang(VALUE self); +VALUE rb_proc_ractor_make_shareable(VALUE self); +typedef struct { + VALUE flags; + rb_iseq_t *iseq; + const VALUE *ep; + const VALUE *env; + unsigned int env_size; +} rb_env_t; +extern const rb_data_type_t ruby_binding_data_type; +typedef struct { + const struct rb_block block; + const VALUE pathobj; + int first_lineno; +} rb_binding_t; +enum vm_check_match_type { + VM_CHECKMATCH_TYPE_WHEN = 1, + VM_CHECKMATCH_TYPE_CASE = 2, + VM_CHECKMATCH_TYPE_RESCUE = 3 +}; +enum vm_special_object_type { + VM_SPECIAL_OBJECT_VMCORE = 1, + VM_SPECIAL_OBJECT_CBASE, + VM_SPECIAL_OBJECT_CONST_BASE +}; +enum vm_svar_index { + VM_SVAR_LASTLINE = 0, + VM_SVAR_BACKREF = 1, + VM_SVAR_EXTRA_START = 2, + VM_SVAR_FLIPFLOP_START = 2 +}; +typedef struct iseq_inline_constant_cache *IC; +typedef struct iseq_inline_iv_cache_entry *IVC; +typedef struct iseq_inline_cvar_cache_entry *ICVARC; +typedef union iseq_inline_storage_entry *ISE; +typedef const struct rb_callinfo *CALL_INFO; +typedef const struct rb_callcache *CALL_CACHE; +typedef struct rb_call_data *CALL_DATA; +typedef VALUE CDHASH; +typedef rb_control_frame_t * + (*rb_insn_func_t)(rb_execution_context_t *, rb_control_frame_t *); +enum vm_frame_env_flags { + VM_FRAME_MAGIC_METHOD = 0x11110001, + VM_FRAME_MAGIC_BLOCK = 0x22220001, + VM_FRAME_MAGIC_CLASS = 0x33330001, + VM_FRAME_MAGIC_TOP = 0x44440001, + VM_FRAME_MAGIC_CFUNC = 0x55550001, + VM_FRAME_MAGIC_IFUNC = 0x66660001, + VM_FRAME_MAGIC_EVAL = 0x77770001, + VM_FRAME_MAGIC_RESCUE = 0x78880001, + VM_FRAME_MAGIC_DUMMY = 0x79990001, + VM_FRAME_MAGIC_MASK = 0x7fff0001, + VM_FRAME_FLAG_FINISH = 0x0020, + VM_FRAME_FLAG_BMETHOD = 0x0040, + VM_FRAME_FLAG_CFRAME = 0x0080, + VM_FRAME_FLAG_LAMBDA = 0x0100, + VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM = 0x0200, + VM_FRAME_FLAG_CFRAME_KW = 0x0400, + VM_FRAME_FLAG_PASSED = 0x0800, + VM_ENV_FLAG_LOCAL = 0x0002, + VM_ENV_FLAG_ESCAPED = 0x0004, + VM_ENV_FLAG_WB_REQUIRED = 0x0008, + VM_ENV_FLAG_ISOLATED = 0x0010, +}; +static inline void VM_FORCE_WRITE_SPECIAL_CONST(const VALUE *ptr, VALUE special_const_value); +static inline void +VM_ENV_FLAGS_SET(const VALUE *ep, VALUE flag) +{ + VALUE flags = ep[( 0)]; + ((void)0); + VM_FORCE_WRITE_SPECIAL_CONST(&ep[( 0)], flags | flag); +} +static inline void +VM_ENV_FLAGS_UNSET(const VALUE *ep, VALUE flag) +{ + VALUE flags = ep[( 0)]; + ((void)0); + VM_FORCE_WRITE_SPECIAL_CONST(&ep[( 0)], flags & ~flag); +} +static inline unsigned long +VM_ENV_FLAGS(const VALUE *ep, long flag) +{ + VALUE flags = ep[( 0)]; + ((void)0); + return flags & flag; +} +static inline unsigned long +VM_FRAME_TYPE(const rb_control_frame_t *cfp) +{ + return VM_ENV_FLAGS(cfp->ep, VM_FRAME_MAGIC_MASK); +} +static inline int +VM_FRAME_LAMBDA_P(const rb_control_frame_t *cfp) +{ + return VM_ENV_FLAGS(cfp->ep, VM_FRAME_FLAG_LAMBDA) != 0; +} +static inline int +VM_FRAME_CFRAME_KW_P(const rb_control_frame_t *cfp) +{ + return VM_ENV_FLAGS(cfp->ep, VM_FRAME_FLAG_CFRAME_KW) != 0; +} +static inline int +VM_FRAME_FINISHED_P(const rb_control_frame_t *cfp) +{ + return VM_ENV_FLAGS(cfp->ep, VM_FRAME_FLAG_FINISH) != 0; +} +static inline int +VM_FRAME_BMETHOD_P(const rb_control_frame_t *cfp) +{ + return VM_ENV_FLAGS(cfp->ep, VM_FRAME_FLAG_BMETHOD) != 0; +} +static inline int +rb_obj_is_iseq(VALUE iseq) +{ + return imemo_type_p(iseq, imemo_iseq); +} +static inline int +VM_FRAME_CFRAME_P(const rb_control_frame_t *cfp) +{ + int cframe_p = VM_ENV_FLAGS(cfp->ep, VM_FRAME_FLAG_CFRAME) != 0; + ((void)0); + return cframe_p; +} +static inline int +VM_FRAME_RUBYFRAME_P(const rb_control_frame_t *cfp) +{ + return !VM_FRAME_CFRAME_P(cfp); +} +static inline int +VM_ENV_LOCAL_P(const VALUE *ep) +{ + return VM_ENV_FLAGS(ep, VM_ENV_FLAG_LOCAL) ? 1 : 0; +} +static inline const VALUE * +VM_ENV_PREV_EP(const VALUE *ep) +{ + ((void)0); + return ((void *)(((ep[(-1)])) & ~0x03)); +} +static inline VALUE +VM_ENV_BLOCK_HANDLER(const VALUE *ep) +{ + ((void)0); + return ep[(-1)]; +} +static inline int +VM_ENV_ESCAPED_P(const VALUE *ep) +{ + ((void)0); + return VM_ENV_FLAGS(ep, VM_ENV_FLAG_ESCAPED) ? 1 : 0; +} +__attribute__((__nonnull__ (1))) +static inline VALUE +VM_ENV_ENVVAL(const VALUE *ep) +{ + VALUE envval = ep[( 1)]; + ((void)0); + ((void)0); + return envval; +} +__attribute__((__nonnull__ (1))) +static inline const rb_env_t * +VM_ENV_ENVVAL_PTR(const VALUE *ep) +{ + return (const rb_env_t *)VM_ENV_ENVVAL(ep); +} +static inline const rb_env_t * +vm_env_new(VALUE *env_ep, VALUE *env_body, unsigned int env_size, const rb_iseq_t *iseq) +{ + rb_env_t *env = (rb_env_t *)rb_imemo_new(imemo_env, (VALUE)env_ep, (VALUE)env_body, 0, (VALUE)iseq); + env->env_size = env_size; + env_ep[( 1)] = (VALUE)env; + return env; +} +static inline void +VM_FORCE_WRITE(const VALUE *ptr, VALUE v) +{ + *((VALUE *)ptr) = v; +} +static inline void +VM_FORCE_WRITE_SPECIAL_CONST(const VALUE *ptr, VALUE special_const_value) +{ + ((void)0); + VM_FORCE_WRITE(ptr, special_const_value); +} +static inline void +VM_STACK_ENV_WRITE(const VALUE *ep, int index, VALUE v) +{ + ((void)0); + VM_FORCE_WRITE(&ep[index], v); +}static inline +const VALUE *rb_vm_ep_local_ep(const VALUE *ep); +const VALUE *rb_vm_proc_local_ep(VALUE proc);static inline +void rb_vm_block_ep_update(VALUE obj, const struct rb_block *dst, const VALUE *ep); +void rb_vm_block_copy(VALUE obj, const struct rb_block *dst, const struct rb_block *src);static inline +VALUE rb_vm_frame_block_handler(const rb_control_frame_t *cfp); +static inline const rb_control_frame_t * +RUBY_VM_END_CONTROL_FRAME(const rb_execution_context_t *ec) +{ + return (rb_control_frame_t *)(ec->vm_stack + ec->vm_stack_size); +} +static inline int +RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(const rb_execution_context_t *ec, const rb_control_frame_t *cfp) +{ + return !((void *)(RUBY_VM_END_CONTROL_FRAME(ec)) > (void *)(cfp)); +} +static inline int +VM_BH_ISEQ_BLOCK_P(VALUE block_handler) +{ + if ((block_handler & 0x03) == 0x01) { + return 1; + } + else { + return 0; + } +} +static inline VALUE +VM_BH_FROM_ISEQ_BLOCK(const struct rb_captured_block *captured) +{ + VALUE block_handler = ((VALUE)(captured) | (0x01)); + ((void)0); + return block_handler; +} +static inline const struct rb_captured_block * +VM_BH_TO_ISEQ_BLOCK(VALUE block_handler) +{ + struct rb_captured_block *captured = ((void *)((block_handler) & ~0x03)); + ((void)0); + return captured; +} +static inline int +VM_BH_IFUNC_P(VALUE block_handler) +{ + if ((block_handler & 0x03) == 0x03) { + return 1; + } + else { + return 0; + } +} +static inline VALUE +VM_BH_FROM_IFUNC_BLOCK(const struct rb_captured_block *captured) +{ + VALUE block_handler = ((VALUE)(captured) | (0x03)); + ((void)0); + return block_handler; +} +static inline const struct rb_captured_block * +VM_BH_TO_IFUNC_BLOCK(VALUE block_handler) +{ + struct rb_captured_block *captured = ((void *)((block_handler) & ~0x03)); + ((void)0); + return captured; +} +static inline const struct rb_captured_block * +VM_BH_TO_CAPT_BLOCK(VALUE block_handler) +{ + struct rb_captured_block *captured = ((void *)((block_handler) & ~0x03)); + ((void)0); + return captured; +} +static inline enum rb_block_handler_type +vm_block_handler_type(VALUE block_handler) +{ + if (VM_BH_ISEQ_BLOCK_P(block_handler)) { + return block_handler_type_iseq; + } + else if (VM_BH_IFUNC_P(block_handler)) { + return block_handler_type_ifunc; + } + else if (RB_SYMBOL_P(block_handler)) { + return block_handler_type_symbol; + } + else { + ((void)0); + return block_handler_type_proc; + } +} +static inline void +vm_block_handler_verify(__attribute__ ((__unused__)) VALUE block_handler) +{ + ((void)0); +} +static inline int +vm_cfp_forwarded_bh_p(const rb_control_frame_t *cfp, VALUE block_handler) +{ + return ((VALUE) cfp->block_code) == block_handler; +} +static inline enum rb_block_type +vm_block_type(const struct rb_block *block) +{ + return block->type; +} +static inline void +vm_block_type_set(const struct rb_block *block, enum rb_block_type type) +{ + struct rb_block *mb = (struct rb_block *)block; + mb->type = type; +} +static inline const struct rb_block * +vm_proc_block(VALUE procval) +{ + ((void)0); + return &((rb_proc_t *)(((struct RTypedData *)(procval))->data))->block; +} +static inline const rb_iseq_t *vm_block_iseq(const struct rb_block *block); +static inline const VALUE *vm_block_ep(const struct rb_block *block); +static inline const rb_iseq_t * +vm_proc_iseq(VALUE procval) +{ + return vm_block_iseq(vm_proc_block(procval)); +} +static inline const VALUE * +vm_proc_ep(VALUE procval) +{ + return vm_block_ep(vm_proc_block(procval)); +} +static inline const rb_iseq_t * +vm_block_iseq(const struct rb_block *block) +{ + switch (vm_block_type(block)) { + case block_type_iseq: return rb_iseq_check(block->as.captured.code.iseq); + case block_type_proc: return vm_proc_iseq(block->as.proc); + case block_type_ifunc: + case block_type_symbol: return ((void*)0); + } + __builtin_unreachable(); + return ((void*)0); +} +static inline const VALUE * +vm_block_ep(const struct rb_block *block) +{ + switch (vm_block_type(block)) { + case block_type_iseq: + case block_type_ifunc: return block->as.captured.ep; + case block_type_proc: return vm_proc_ep(block->as.proc); + case block_type_symbol: return ((void*)0); + } + __builtin_unreachable(); + return ((void*)0); +} +static inline VALUE +vm_block_self(const struct rb_block *block) +{ + switch (vm_block_type(block)) { + case block_type_iseq: + case block_type_ifunc: + return block->as.captured.self; + case block_type_proc: + return vm_block_self(vm_proc_block(block->as.proc)); + case block_type_symbol: + return ((VALUE)RUBY_Qundef); + } + __builtin_unreachable(); + return ((VALUE)RUBY_Qundef); +} +static inline VALUE +VM_BH_TO_SYMBOL(VALUE block_handler) +{ + ((void)0); + return block_handler; +} +static inline VALUE +VM_BH_FROM_SYMBOL(VALUE symbol) +{ + ((void)0); + return symbol; +} +static inline VALUE +VM_BH_TO_PROC(VALUE block_handler) +{ + ((void)0); + return block_handler; +} +static inline VALUE +VM_BH_FROM_PROC(VALUE procval) +{ + ((void)0); + return procval; +} +VALUE rb_thread_alloc(VALUE klass); +VALUE rb_binding_alloc(VALUE klass); +VALUE rb_proc_alloc(VALUE klass); +VALUE rb_proc_dup(VALUE self); +extern void rb_vmdebug_stack_dump_raw(const rb_execution_context_t *ec, const rb_control_frame_t *cfp); +extern void rb_vmdebug_debug_print_pre(const rb_execution_context_t *ec, const rb_control_frame_t *cfp, const VALUE *_pc); +extern void rb_vmdebug_debug_print_post(const rb_execution_context_t *ec, const rb_control_frame_t *cfp +); +void rb_vm_bugreport(const void *); +typedef void (*ruby_sighandler_t)(int); +__attribute__((__format__(__printf__, 4, 5))) +__declspec(noreturn) void rb_bug_for_fatal_signal(ruby_sighandler_t default_sighandler, int sig, const void *, const char *fmt, ...); +VALUE rb_iseq_eval(const rb_iseq_t *iseq); +VALUE rb_iseq_eval_main(const rb_iseq_t *iseq); +VALUE rb_iseq_path(const rb_iseq_t *iseq); +VALUE rb_iseq_realpath(const rb_iseq_t *iseq); +VALUE rb_iseq_pathobj_new(VALUE path, VALUE realpath); +void rb_iseq_pathobj_set(const rb_iseq_t *iseq, VALUE path, VALUE realpath); +int rb_ec_frame_method_id_and_class(const rb_execution_context_t *ec, ID *idp, ID *called_idp, VALUE *klassp); +void rb_ec_setup_exception(const rb_execution_context_t *ec, VALUE mesg, VALUE cause); +VALUE rb_vm_invoke_proc(rb_execution_context_t *ec, rb_proc_t *proc, int argc, const VALUE *argv, int kw_splat, VALUE block_handler); +VALUE rb_vm_make_proc_lambda(const rb_execution_context_t *ec, const struct rb_captured_block *captured, VALUE klass, int8_t is_lambda); +static inline VALUE +rb_vm_make_proc(const rb_execution_context_t *ec, const struct rb_captured_block *captured, VALUE klass) +{ + return rb_vm_make_proc_lambda(ec, captured, klass, 0); +} +static inline VALUE +rb_vm_make_lambda(const rb_execution_context_t *ec, const struct rb_captured_block *captured, VALUE klass) +{ + return rb_vm_make_proc_lambda(ec, captured, klass, 1); +} +VALUE rb_vm_make_binding(const rb_execution_context_t *ec, const rb_control_frame_t *src_cfp); +VALUE rb_vm_env_local_variables(const rb_env_t *env); +const rb_env_t *rb_vm_env_prev_env(const rb_env_t *env); +const VALUE *rb_binding_add_dynavars(VALUE bindval, rb_binding_t *bind, int dyncount, const ID *dynvars); +void rb_vm_inc_const_missing_count(void); +VALUE rb_vm_call_kw(rb_execution_context_t *ec, VALUE recv, VALUE id, int argc, + const VALUE *argv, const rb_callable_method_entry_t *me, int kw_splat);static inline +void rb_vm_pop_frame_no_int(rb_execution_context_t *ec); +static void rb_vm_pop_frame(rb_execution_context_t *ec); +void rb_thread_start_timer_thread(void); +void rb_thread_stop_timer_thread(void); +void rb_thread_reset_timer_thread(void); +void rb_thread_wakeup_timer_thread(int); +static inline void +rb_vm_living_threads_init(rb_vm_t *vm) +{ + ccan_list_head_init(&vm->waiting_fds); + ccan_list_head_init(&vm->waiting_pids); + ccan_list_head_init(&vm->workqueue); + ccan_list_head_init(&vm->waiting_grps); + ccan_list_head_init(&vm->ractor.set); +} +typedef int rb_backtrace_iter_func(void *, VALUE, int, VALUE); +rb_control_frame_t *rb_vm_get_ruby_level_next_cfp(const rb_execution_context_t *ec, const rb_control_frame_t *cfp); +rb_control_frame_t *rb_vm_get_binding_creatable_next_cfp(const rb_execution_context_t *ec, const rb_control_frame_t *cfp); +int rb_vm_get_sourceline(const rb_control_frame_t *); +void rb_vm_stack_to_heap(rb_execution_context_t *ec); +void ruby_thread_init_stack(rb_thread_t *th); +rb_thread_t * ruby_thread_from_native(void); +int ruby_thread_set_native(rb_thread_t *th); +int rb_vm_control_frame_id_and_class(const rb_control_frame_t *cfp, ID *idp, ID *called_idp, VALUE *klassp); +void rb_vm_rewind_cfp(rb_execution_context_t *ec, rb_control_frame_t *cfp); +static VALUE rb_vm_bh_to_procval(const rb_execution_context_t *ec, VALUE block_handler); +void rb_vm_register_special_exception_str(enum ruby_special_exceptions sp, VALUE exception_class, VALUE mesg); +void rb_gc_mark_machine_stack(const rb_execution_context_t *ec);static inline +void rb_vm_rewrite_cref(rb_cref_t *node, VALUE old_klass, VALUE new_klass, rb_cref_t **new_cref_ptr); +static const rb_callable_method_entry_t *rb_vm_frame_method_entry(const rb_control_frame_t *cfp); +VALUE rb_catch_protect(VALUE t, rb_block_call_func *func, VALUE data, enum ruby_tag_type *stateptr); +rb_execution_context_t *rb_vm_main_ractor_ec(rb_vm_t *vm); +extern struct rb_ractor_struct *ruby_single_main_ractor; +extern rb_vm_t *ruby_current_vm_ptr; +extern rb_event_flag_t ruby_vm_event_flags; +extern rb_event_flag_t ruby_vm_event_enabled_global_flags; +extern unsigned int ruby_vm_event_local_num; +static inline rb_thread_t * +rb_ec_thread_ptr(const rb_execution_context_t *ec) +{ + return ec->thread_ptr; +} +static inline rb_ractor_t * +rb_ec_ractor_ptr(const rb_execution_context_t *ec) +{ + const rb_thread_t *th = rb_ec_thread_ptr(ec); + if (th) { + ((void)0); + return th->ractor; + } + else { + return ((void*)0); + } +} +static inline rb_vm_t * +rb_ec_vm_ptr(const rb_execution_context_t *ec) +{ + const rb_thread_t *th = rb_ec_thread_ptr(ec); + if (th) { + return th->vm; + } + else { + return ((void*)0); + } +} +static inline rb_execution_context_t * +rb_current_execution_context(_Bool expect_ec) +{ + rb_execution_context_t *ec = rb_current_ec(); + ((void)0); + return ec; +} +static inline rb_thread_t * +rb_current_thread(void) +{ + const rb_execution_context_t *ec = rb_current_execution_context(1); + return rb_ec_thread_ptr(ec); +} +static inline rb_ractor_t * +rb_current_ractor(void) +{ + if (ruby_single_main_ractor) { + return ruby_single_main_ractor; + } + else { + const rb_execution_context_t *ec = rb_current_execution_context(1); + return rb_ec_ractor_ptr(ec); + } +} +static inline rb_vm_t * +rb_current_vm(void) +{ + return ruby_current_vm_ptr; +} +void rb_ec_vm_lock_rec_release(const rb_execution_context_t *ec, + unsigned int recorded_lock_rec, + unsigned int current_lock_rec); +static inline unsigned int +rb_ec_vm_lock_rec(const rb_execution_context_t *ec) +{ + rb_vm_t *vm = rb_ec_vm_ptr(ec); + if (vm->ractor.sync.lock_owner != rb_ec_ractor_ptr(ec)) { + return 0; + } + else { + return vm->ractor.sync.lock_rec; + } +} +enum { + TIMER_INTERRUPT_MASK = 0x01, + PENDING_INTERRUPT_MASK = 0x02, + POSTPONED_JOB_INTERRUPT_MASK = 0x04, + TRAP_INTERRUPT_MASK = 0x08, + TERMINATE_INTERRUPT_MASK = 0x10, + VM_BARRIER_INTERRUPT_MASK = 0x20, +}; +static inline _Bool +RUBY_VM_INTERRUPTED_ANY(rb_execution_context_t *ec) +{ + return ec->interrupt_flag & ~(ec)->interrupt_mask; +} +VALUE rb_exc_set_backtrace(VALUE exc, VALUE bt); +int rb_signal_buff_size(void); +int rb_signal_exec(rb_thread_t *th, int sig); +void rb_threadptr_check_signal(rb_thread_t *mth); +void rb_threadptr_signal_raise(rb_thread_t *th, int sig); +void rb_threadptr_signal_exit(rb_thread_t *th); +int rb_threadptr_execute_interrupts(rb_thread_t *, int); +void rb_threadptr_interrupt(rb_thread_t *th); +void rb_threadptr_unlock_all_locking_mutexes(rb_thread_t *th); +void rb_threadptr_pending_interrupt_clear(rb_thread_t *th); +void rb_threadptr_pending_interrupt_enque(rb_thread_t *th, VALUE v); +VALUE rb_ec_get_errinfo(const rb_execution_context_t *ec); +void rb_ec_error_print(rb_execution_context_t * volatile ec, volatile VALUE errinfo); +void rb_execution_context_update(rb_execution_context_t *ec); +void rb_execution_context_mark(const rb_execution_context_t *ec); +void rb_fiber_close(rb_fiber_t *fib); +void Init_native_thread(rb_thread_t *th); +int rb_vm_check_ints_blocking(rb_execution_context_t *ec); +void rb_vm_cond_wait(rb_vm_t *vm, rb_nativethread_cond_t *cond); +void rb_vm_cond_timedwait(rb_vm_t *vm, rb_nativethread_cond_t *cond, unsigned long msec); +static inline void +rb_vm_check_ints(rb_execution_context_t *ec) +{ + ((void)0); + if ((__builtin_expect(!!(RUBY_VM_INTERRUPTED_ANY(ec)), 0))) { + rb_threadptr_execute_interrupts(rb_ec_thread_ptr(ec), 0); + } +} +struct rb_trace_arg_struct { + rb_event_flag_t event; + rb_execution_context_t *ec; + const rb_control_frame_t *cfp; + VALUE self; + ID id; + ID called_id; + VALUE klass; + VALUE data; + int klass_solved; + int lineno; + VALUE path; +}; +void rb_hook_list_mark(rb_hook_list_t *hooks); +void rb_hook_list_free(rb_hook_list_t *hooks); +void rb_hook_list_connect_tracepoint(VALUE target, rb_hook_list_t *list, VALUE tpval, unsigned int target_line); +void rb_hook_list_remove_tracepoint(rb_hook_list_t *list, VALUE tpval); +void rb_exec_event_hooks(struct rb_trace_arg_struct *trace_arg, rb_hook_list_t *hooks, int pop_p); +static inline void +rb_exec_event_hook_orig(rb_execution_context_t *ec, rb_hook_list_t *hooks, rb_event_flag_t flag, + VALUE self, ID id, ID called_id, VALUE klass, VALUE data, int pop_p) +{ + struct rb_trace_arg_struct trace_arg; + ((void)0); + trace_arg.event = flag; + trace_arg.ec = ec; + trace_arg.cfp = ec->cfp; + trace_arg.self = self; + trace_arg.id = id; + trace_arg.called_id = called_id; + trace_arg.klass = klass; + trace_arg.data = data; + trace_arg.path = ((VALUE)RUBY_Qundef); + trace_arg.klass_solved = 0; + rb_exec_event_hooks(&trace_arg, hooks, pop_p); +} +struct rb_ractor_pub { + VALUE self; + uint32_t id; + rb_hook_list_t hooks; +}; +static inline rb_hook_list_t * +rb_ec_ractor_hooks(const rb_execution_context_t *ec) +{ + struct rb_ractor_pub *cr_pub = (struct rb_ractor_pub *)rb_ec_ractor_ptr(ec); + return &cr_pub->hooks; +} +static inline void +rb_exec_event_hook_script_compiled(rb_execution_context_t *ec, const rb_iseq_t *iseq, VALUE eval_script) +{ + do { const rb_event_flag_t flag_arg_ = (0x2000); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, ec->cfp->self, 0, 0, 0, RB_NIL_P(eval_script) ? (VALUE)iseq : rb_ary_new_from_args(2, eval_script, (VALUE)iseq), 0); } } while (0); +} +void rb_vm_trap_exit(rb_vm_t *vm); +int rb_thread_check_trap_pending(void); +extern VALUE rb_get_coverages(void); +extern void rb_set_coverages(VALUE, int, VALUE); +extern void rb_clear_coverages(void); +extern void rb_reset_coverages(void); +extern void rb_resume_coverages(void); +extern void rb_suspend_coverages(void); +void rb_postponed_job_flush(rb_vm_t *vm); +extern VALUE rb_eRactorUnsafeError; +extern VALUE rb_eRactorIsolationError; + +static inline void +vm_passed_block_handler_set(rb_execution_context_t *ec, VALUE block_handler) +{ + vm_block_handler_verify(block_handler); + ec->passed_block_handler = block_handler; +} +static inline void +pass_passed_block_handler(rb_execution_context_t *ec) +{ + VALUE block_handler = rb_vm_frame_block_handler(ec->cfp); + vm_passed_block_handler_set(ec, block_handler); + VM_ENV_FLAGS_SET(ec->cfp->ep, VM_FRAME_FLAG_PASSED); +} +extern char ***_NSGetArgv(void); +extern int *_NSGetArgc(void); +extern char ***_NSGetEnviron(void); +extern char **_NSGetProgname(void); +extern struct mach_header_64 * + _NSGetMachExecuteHeader(void); +extern int * __error(void); +static inline void +rb_ec_vm_lock_rec_check(const rb_execution_context_t *ec, unsigned int recorded_lock_rec) +{ + unsigned int current_lock_rec = rb_ec_vm_lock_rec(ec); + if (current_lock_rec != recorded_lock_rec) { + rb_ec_vm_lock_rec_release(ec, recorded_lock_rec, current_lock_rec); + } +} +static inline int +rb_ec_tag_state(const rb_execution_context_t *ec) +{ + struct rb_vm_tag *tag = ec->tag; + enum ruby_tag_type state = tag->state; + tag->state = RUBY_TAG_NONE; + rb_ec_vm_lock_rec_check(ec, tag->lock_rec); + return state; +} +__declspec(noreturn) static inline void rb_ec_tag_jump(const rb_execution_context_t *ec, enum ruby_tag_type st); +static inline void +rb_ec_tag_jump(const rb_execution_context_t *ec, enum ruby_tag_type st) +{ + ec->tag->state = st; + siglongjmp(((ec->tag->buf)),(1)); +} +static inline int CREF_SINGLETON(const rb_cref_t *cref); +static inline VALUE +CREF_CLASS(const rb_cref_t *cref) +{ + if (CREF_SINGLETON(cref)) { + return rb_class_of(cref->klass_or_self); + } + else { + return cref->klass_or_self; + } +} +static inline VALUE +CREF_CLASS_FOR_DEFINITION(const rb_cref_t *cref) +{ + if (CREF_SINGLETON(cref)) { + return rb_singleton_class(cref->klass_or_self); + } + else { + return cref->klass_or_self; + } +} +static inline rb_cref_t * +CREF_NEXT(const rb_cref_t *cref) +{ + return cref->next; +} +static inline const rb_scope_visibility_t * +CREF_SCOPE_VISI(const rb_cref_t *cref) +{ + return &cref->scope_visi; +} +static inline VALUE +CREF_REFINEMENTS(const rb_cref_t *cref) +{ + return cref->refinements; +} +static inline void +CREF_REFINEMENTS_SET(rb_cref_t *cref, VALUE refs) +{ + rb_obj_write((VALUE)(cref), __extension__({ + ; + ; __typeof__((VALUE *)(&cref->refinements)) unaligned_member_access_result = ((VALUE *)(&cref->refinements)); + ; unaligned_member_access_result; }), (VALUE)(refs), "./eval_intern.h", 227); +} +static inline int +CREF_PUSHED_BY_EVAL(const rb_cref_t *cref) +{ + return cref->flags & ((VALUE)RUBY_FL_USER5); +} +static inline void +CREF_PUSHED_BY_EVAL_SET(rb_cref_t *cref) +{ + cref->flags |= ((VALUE)RUBY_FL_USER5); +} +static inline int +CREF_SINGLETON(const rb_cref_t *cref) +{ + return cref->flags & ((VALUE)RUBY_FL_USER7); +} +static inline void +CREF_SINGLETON_SET(rb_cref_t *cref) +{ + cref->flags |= ((VALUE)RUBY_FL_USER7); +} +static inline int +CREF_OMOD_SHARED(const rb_cref_t *cref) +{ + return cref->flags & ((VALUE)RUBY_FL_USER6); +} +static inline void +CREF_OMOD_SHARED_SET(rb_cref_t *cref) +{ + cref->flags |= ((VALUE)RUBY_FL_USER6); +} +static inline void +CREF_OMOD_SHARED_UNSET(rb_cref_t *cref) +{ + cref->flags &= ~((VALUE)RUBY_FL_USER6); +} +enum { + RAISED_EXCEPTION = 1, + RAISED_STACKOVERFLOW = 2, + RAISED_NOMEMORY = 4 +}; +int rb_ec_set_raised(rb_execution_context_t *ec); +int rb_ec_reset_raised(rb_execution_context_t *ec); +int rb_ec_stack_check(rb_execution_context_t *ec); +VALUE rb_f_eval(int argc, const VALUE *argv, VALUE self); +VALUE rb_make_exception(int argc, const VALUE *argv); +__declspec(noreturn) void rb_method_name_error(VALUE, VALUE); +__declspec(noreturn) void rb_fiber_start(rb_fiber_t*); +__declspec(noreturn) void rb_print_undef(VALUE, ID, rb_method_visibility_t); +__declspec(noreturn) void rb_print_undef_str(VALUE, VALUE); +__declspec(noreturn) void rb_print_inaccessible(VALUE, ID, rb_method_visibility_t); +__declspec(noreturn) void rb_vm_localjump_error(const char *,VALUE, int); +__declspec(noreturn) void rb_vm_jump_tag_but_local_jump(int); +VALUE rb_vm_make_jump_tag_but_local_jump(int state, VALUE val); +rb_cref_t *rb_vm_cref(void); +rb_cref_t *rb_vm_cref_replace_with_duplicated_cref(void); +VALUE rb_vm_call_cfunc(VALUE recv, VALUE (*func)(VALUE), VALUE arg, VALUE block_handler, VALUE filename); +void rb_vm_set_progname(VALUE filename); +VALUE rb_vm_cbase(void); +VALUE rb_ec_backtrace_object(const rb_execution_context_t *ec); +VALUE rb_ec_backtrace_str_ary(const rb_execution_context_t *ec, long lev, long n); +VALUE rb_ec_backtrace_location_ary(const rb_execution_context_t *ec, long lev, long n, _Bool skip_internal); +static inline char * +rb_char_next(const char *p) +{ + if (p) { + int len = mblen(p, 2147483647); + p += len > 0 ? len : 1; + } + return (char *)p; +} + +const char *rb_obj_info(VALUE obj); +const char *rb_raw_obj_info(char *const buff, const size_t buff_size, VALUE obj); +VALUE rb_gc_disable_no_rest(void); +struct rb_thread_struct; +size_t rb_size_pool_slot_size(unsigned char pool_id); +size_t rb_objspace_data_type_memsize(VALUE obj); +void rb_objspace_reachable_objects_from(VALUE obj, void (func)(VALUE, void *), void *data); +void rb_objspace_reachable_objects_from_root(void (func)(const char *category, VALUE, void *), void *data); +int rb_objspace_markable_object_p(VALUE obj); +int rb_objspace_internal_object_p(VALUE obj); +int rb_objspace_marked_object_p(VALUE obj); +void rb_objspace_each_objects( + int (*callback)(void *start, void *end, size_t stride, void *data), + void *data); +void rb_objspace_each_objects_without_setup( + int (*callback)(void *, void *, size_t, void *), + void *data); +size_t rb_gc_obj_slot_size(VALUE obj); + + +struct rb_iseq_struct; +int rb_dvar_defined(ID, const struct rb_iseq_struct *); +int rb_local_defined(ID, const struct rb_iseq_struct *); +const char *rb_insns_name(int i); +VALUE rb_insns_name_array(void); +int rb_iseq_cdhash_cmp(VALUE val, VALUE lit); +st_index_t rb_iseq_cdhash_hash(VALUE a); +int rb_vm_insn_addr2insn(const void *); +int rb_vm_insn_decode(const VALUE encoded); +extern _Bool ruby_vm_keep_script_lines; +rb_event_flag_t rb_iseq_event_flags(const struct rb_iseq_struct *iseq, size_t pos); + + +extern const int ruby_api_version[]; +typedef void (*rb_iseq_callback)(const rb_iseq_t *, void *); +extern const ID rb_iseq_shared_exc_local_tbl[]; +static inline rb_snum_t +ISEQ_FLIP_CNT_INCREMENT(const rb_iseq_t *iseq) +{ + rb_snum_t cnt = ((iseq)->body)->variable.flip_count; + ((iseq)->body)->variable.flip_count += 1; + return cnt; +} +static inline VALUE * +ISEQ_ORIGINAL_ISEQ(const rb_iseq_t *iseq) +{ + return ((iseq)->body)->variable.original_iseq; +} +static inline void +ISEQ_ORIGINAL_ISEQ_CLEAR(const rb_iseq_t *iseq) +{ + void *ptr = ((iseq)->body)->variable.original_iseq; + ((iseq)->body)->variable.original_iseq = ((void*)0); + if (ptr) { + ruby_xfree(ptr); + } +} +static inline VALUE * +ISEQ_ORIGINAL_ISEQ_ALLOC(const rb_iseq_t *iseq, long size) +{ + return ((iseq)->body)->variable.original_iseq = + ((VALUE *)ruby_xmalloc2((size), sizeof(VALUE))); +} +struct iseq_compile_data { + const VALUE err_info; + const VALUE catch_table_ary; + struct iseq_label_data *start_label; + struct iseq_label_data *end_label; + struct iseq_label_data *redo_label; + const rb_iseq_t *current_block; + struct iseq_compile_data_ensure_node_stack *ensure_node_stack; + struct { + struct iseq_compile_data_storage *storage_head; + struct iseq_compile_data_storage *storage_current; + } node; + struct { + struct iseq_compile_data_storage *storage_head; + struct iseq_compile_data_storage *storage_current; + } insn; + _Bool in_rescue; + int loopval_popped; + int last_line; + int label_no; + int node_level; + int isolated_depth; + unsigned int ci_index; + unsigned int ic_index; + const rb_compile_option_t *option; + struct rb_id_table *ivar_cache_table; + const struct rb_builtin_function *builtin_function_table; + const NODE *root_node; +}; +static inline struct iseq_compile_data * +ISEQ_COMPILE_DATA(const rb_iseq_t *iseq) +{ + if (iseq->flags & ((VALUE)RUBY_FL_USER6)) { + return iseq->aux.compile_data; + } + else { + return ((void*)0); + } +} +static inline void +ISEQ_COMPILE_DATA_ALLOC(rb_iseq_t *iseq) +{ + iseq->aux.compile_data = (((struct iseq_compile_data *)ruby_xcalloc((1), sizeof(struct iseq_compile_data)))); + iseq->flags |= ((VALUE)RUBY_FL_USER6); +} +static inline void +ISEQ_COMPILE_DATA_CLEAR(rb_iseq_t *iseq) +{ + iseq->flags &= ~((VALUE)RUBY_FL_USER6); + iseq->aux.compile_data = ((void*)0); +} +static inline rb_iseq_t * +iseq_imemo_alloc(void) +{ + return (rb_iseq_t *)rb_imemo_new(imemo_iseq, 0, 0, 0, 0); +} +VALUE rb_iseq_ibf_dump(const rb_iseq_t *iseq, VALUE opt); +void rb_ibf_load_iseq_complete(rb_iseq_t *iseq); +const rb_iseq_t *rb_iseq_ibf_load(VALUE str); +const rb_iseq_t *rb_iseq_ibf_load_bytes(const char *cstr, size_t); +VALUE rb_iseq_ibf_load_extra_data(VALUE str); +void rb_iseq_init_trace(rb_iseq_t *iseq); +int rb_iseq_add_local_tracepoint_recursively(const rb_iseq_t *iseq, rb_event_flag_t turnon_events, VALUE tpval, unsigned int target_line, _Bool target_bmethod); +int rb_iseq_remove_local_tracepoint_recursively(const rb_iseq_t *iseq, VALUE tpval); +const rb_iseq_t *rb_iseq_load_iseq(VALUE fname); +unsigned int *rb_iseq_insns_info_decode_positions(const struct rb_iseq_constant_body *body); +int rb_vm_insn_addr2opcode(const void *addr); +VALUE rb_iseq_compile_node(rb_iseq_t *iseq, const NODE *node); +VALUE rb_iseq_compile_callback(rb_iseq_t *iseq, const struct rb_iseq_new_with_callback_callback_func * ifunc); +VALUE *rb_iseq_original_iseq(const rb_iseq_t *iseq); +void rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE misc, + VALUE locals, VALUE args, + VALUE exception, VALUE body); +void rb_iseq_mark_insn_storage(struct iseq_compile_data_storage *arena); +VALUE rb_iseq_load(VALUE data, VALUE parent, VALUE opt); +VALUE rb_iseq_parameters(const rb_iseq_t *iseq, int is_proc); +unsigned int rb_iseq_line_no(const rb_iseq_t *iseq, size_t pos); +int rb_iseq_node_id(const rb_iseq_t *iseq, size_t pos); +void rb_iseq_trace_set(const rb_iseq_t *iseq, rb_event_flag_t turnon_events); +void rb_iseq_trace_set_all(rb_event_flag_t turnon_events); +void rb_iseq_insns_info_encode_positions(const rb_iseq_t *iseq); +struct rb_iseq_constant_body *rb_iseq_constant_body_alloc(void); +VALUE rb_iseqw_new(const rb_iseq_t *iseq); +const rb_iseq_t *rb_iseqw_to_iseq(VALUE iseqw); +VALUE rb_iseq_absolute_path(const rb_iseq_t *iseq); +int rb_iseq_from_eval_p(const rb_iseq_t *iseq); +VALUE rb_iseq_type(const rb_iseq_t *iseq); +VALUE rb_iseq_label(const rb_iseq_t *iseq); +VALUE rb_iseq_base_label(const rb_iseq_t *iseq); +VALUE rb_iseq_first_lineno(const rb_iseq_t *iseq); +VALUE rb_iseq_method_name(const rb_iseq_t *iseq); +void rb_iseq_code_location(const rb_iseq_t *iseq, int *first_lineno, int *first_column, int *last_lineno, int *last_column); +void rb_iseq_remove_coverage_all(void); +const rb_iseq_t *rb_method_iseq(VALUE body); +const rb_iseq_t *rb_proc_get_iseq(VALUE proc, int *is_proc); +struct rb_compile_option_struct { + unsigned int inline_const_cache: 1; + unsigned int peephole_optimization: 1; + unsigned int tailcall_optimization: 1; + unsigned int specialized_instruction: 1; + unsigned int operands_unification: 1; + unsigned int instructions_unification: 1; + unsigned int stack_caching: 1; + unsigned int frozen_string_literal: 1; + unsigned int debug_frozen_string_literal: 1; + unsigned int coverage_enabled: 1; + int debug_level; +}; +struct iseq_insn_info_entry { + int line_no; + int node_id; + rb_event_flag_t events; +}; +enum rb_catch_type { + CATCH_TYPE_RESCUE = __builtin_choose_expr( __builtin_constant_p(1), ((VALUE)(1)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(1)), + CATCH_TYPE_ENSURE = __builtin_choose_expr( __builtin_constant_p(2), ((VALUE)(2)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(2)), + CATCH_TYPE_RETRY = __builtin_choose_expr( __builtin_constant_p(3), ((VALUE)(3)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(3)), + CATCH_TYPE_BREAK = __builtin_choose_expr( __builtin_constant_p(4), ((VALUE)(4)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(4)), + CATCH_TYPE_REDO = __builtin_choose_expr( __builtin_constant_p(5), ((VALUE)(5)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(5)), + CATCH_TYPE_NEXT = __builtin_choose_expr( __builtin_constant_p(6), ((VALUE)(6)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(6)) +}; +struct iseq_catch_table_entry { + enum rb_catch_type type; + rb_iseq_t *iseq; + unsigned int start; + unsigned int end; + unsigned int cont; + unsigned int sp; +}; +struct iseq_catch_table { unsigned int size; struct iseq_catch_table_entry entries[];} __attribute__((packed)); +static inline int +iseq_catch_table_bytes(int n) +{ + enum { + catch_table_entry_size = sizeof(struct iseq_catch_table_entry), + catch_table_entries_max = (2147483647 - __builtin_offsetof(struct iseq_catch_table, entries)) / catch_table_entry_size + }; + if (n > catch_table_entries_max) rb_fatal("too large iseq_catch_table - %d", n); + return (int)(__builtin_offsetof(struct iseq_catch_table, entries) + + n * catch_table_entry_size); +} +struct iseq_compile_data_storage { + struct iseq_compile_data_storage *next; + unsigned int pos; + unsigned int size; + char buff[]; +}; +enum defined_type { + DEFINED_NOT_DEFINED, + DEFINED_NIL = 1, + DEFINED_IVAR, + DEFINED_LVAR, + DEFINED_GVAR, + DEFINED_CVAR, + DEFINED_CONST, + DEFINED_METHOD, + DEFINED_YIELD, + DEFINED_ZSUPER, + DEFINED_SELF, + DEFINED_TRUE, + DEFINED_FALSE, + DEFINED_ASGN, + DEFINED_EXPR, + DEFINED_REF, + DEFINED_FUNC, + DEFINED_CONST_FROM +}; +VALUE rb_iseq_defined_string(enum defined_type type); +VALUE rb_iseq_local_variables(const rb_iseq_t *iseq); + +struct rb_thread_struct; +struct rb_fiber_struct; +struct rb_execution_context_struct; +void rb_fiber_reset_root_local_storage(struct rb_thread_struct *); +void ruby_register_rollback_func_for_ensure(VALUE (*ensure_func)(VALUE), VALUE (*rollback_func)(VALUE)); +void rb_jit_cont_init(void); +void rb_jit_cont_each_iseq(rb_iseq_callback callback, void *data); +void rb_jit_cont_finish(void); +VALUE rb_fiber_inherit_storage(struct rb_execution_context_struct *ec, struct rb_fiber_struct *fiber); +VALUE rb_fiberptr_self(struct rb_fiber_struct *fiber); +unsigned int rb_fiberptr_blocking(struct rb_fiber_struct *fiber); +struct rb_execution_context_struct * rb_fiberptr_get_ec(struct rb_fiber_struct *fiber); + + + + +enum ruby_coderange_type { + RUBY_ENC_CODERANGE_UNKNOWN = 0, + RUBY_ENC_CODERANGE_7BIT = ((int)RUBY_FL_USER8), + RUBY_ENC_CODERANGE_VALID = ((int)RUBY_FL_USER9), + RUBY_ENC_CODERANGE_BROKEN = ((int)(RUBY_FL_USER8|RUBY_FL_USER9)), + RUBY_ENC_CODERANGE_MASK = (RUBY_ENC_CODERANGE_7BIT| + RUBY_ENC_CODERANGE_VALID| + RUBY_ENC_CODERANGE_BROKEN) +}; +__attribute__((__const__)) +static inline int +rb_enc_coderange_clean_p(int cr) +{ + return (cr ^ (cr >> 1)) & RUBY_ENC_CODERANGE_7BIT; +} +__attribute__((__const__)) +static inline _Bool +RB_ENC_CODERANGE_CLEAN_P(enum ruby_coderange_type cr) +{ + return rb_enc_coderange_clean_p(cr); +} +__attribute__((__pure__)) +static inline enum ruby_coderange_type +RB_ENC_CODERANGE(VALUE obj) +{ + VALUE ret = RB_FL_TEST_RAW(obj, RUBY_ENC_CODERANGE_MASK); + return ((enum ruby_coderange_type)ret); +} +__attribute__((__pure__)) +static inline _Bool +RB_ENC_CODERANGE_ASCIIONLY(VALUE obj) +{ + return RB_ENC_CODERANGE(obj) == RUBY_ENC_CODERANGE_7BIT; +} +static inline void +RB_ENC_CODERANGE_SET(VALUE obj, enum ruby_coderange_type cr) +{ + RB_FL_UNSET_RAW(obj, RUBY_ENC_CODERANGE_MASK); + RB_FL_SET_RAW(obj, cr); +} +static inline void +RB_ENC_CODERANGE_CLEAR(VALUE obj) +{ + RB_FL_UNSET_RAW(obj, RUBY_ENC_CODERANGE_MASK); +} +__attribute__((__const__)) +static inline enum ruby_coderange_type +RB_ENC_CODERANGE_AND(enum ruby_coderange_type a, enum ruby_coderange_type b) +{ + if (a == RUBY_ENC_CODERANGE_7BIT) { + return b; + } + else if (a != RUBY_ENC_CODERANGE_VALID) { + return RUBY_ENC_CODERANGE_UNKNOWN; + } + else if (b == RUBY_ENC_CODERANGE_7BIT) { + return RUBY_ENC_CODERANGE_VALID; + } + else { + return b; + } +} + + +typedef unsigned char OnigUChar; +typedef unsigned int OnigCodePoint; +typedef unsigned int OnigCtype; +typedef size_t OnigDistance; +typedef ptrdiff_t OnigPosition; +typedef unsigned int OnigCaseFoldType; +extern OnigCaseFoldType OnigDefaultCaseFoldFlag; +typedef struct { + int byte_len; + int code_len; + OnigCodePoint code[3]; +} OnigCaseFoldCodeItem; +typedef struct { + OnigCodePoint esc; + OnigCodePoint anychar; + OnigCodePoint anytime; + OnigCodePoint zero_or_one_time; + OnigCodePoint one_or_more_time; + OnigCodePoint anychar_anytime; +} OnigMetaCharTableType; +typedef int (*OnigApplyAllCaseFoldFunc)(OnigCodePoint from, OnigCodePoint* to, int to_len, void* arg); +typedef struct OnigEncodingTypeST { + int (*precise_mbc_enc_len)(const OnigUChar* p,const OnigUChar* e, const struct OnigEncodingTypeST* enc); + const char* name; + int max_enc_len; + int min_enc_len; + int (*is_mbc_newline)(const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc); + OnigCodePoint (*mbc_to_code)(const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc); + int (*code_to_mbclen)(OnigCodePoint code, const struct OnigEncodingTypeST* enc); + int (*code_to_mbc)(OnigCodePoint code, OnigUChar *buf, const struct OnigEncodingTypeST* enc); + int (*mbc_case_fold)(OnigCaseFoldType flag, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, const struct OnigEncodingTypeST* enc); + int (*apply_all_case_fold)(OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, const struct OnigEncodingTypeST* enc); + int (*get_case_fold_codes_by_str)(OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem acs[], const struct OnigEncodingTypeST* enc); + int (*property_name_to_ctype)(const struct OnigEncodingTypeST* enc, const OnigUChar* p, const OnigUChar* end); + int (*is_code_ctype)(OnigCodePoint code, OnigCtype ctype, const struct OnigEncodingTypeST* enc); + int (*get_ctype_code_range)(OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[], const struct OnigEncodingTypeST* enc); + OnigUChar* (*left_adjust_char_head)(const OnigUChar* start, const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc); + int (*is_allowed_reverse_match)(const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc); + int (*case_map)(OnigCaseFoldType* flagP, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, const struct OnigEncodingTypeST* enc); + int ruby_encoding_index; + unsigned int flags; +} OnigEncodingType; +typedef const OnigEncodingType* OnigEncoding; +extern const OnigEncodingType OnigEncodingASCII; +extern +int onigenc_ascii_only_case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, const struct OnigEncodingTypeST* enc); +extern +int onigenc_mbclen(const OnigUChar* p,const OnigUChar* e, const struct OnigEncodingTypeST* enc); +extern +OnigUChar* onigenc_step_back(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, int n); +extern +int onigenc_init(void); +extern +int onigenc_set_default_encoding(OnigEncoding enc); +extern +OnigEncoding onigenc_get_default_encoding(void); +extern +OnigUChar* onigenc_get_right_adjust_char_head_with_prev(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, const OnigUChar** prev); +extern +OnigUChar* onigenc_get_prev_char_head(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end); +extern +OnigUChar* onigenc_get_left_adjust_char_head(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end); +extern +OnigUChar* onigenc_get_right_adjust_char_head(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end); +extern +int onigenc_strlen(OnigEncoding enc, const OnigUChar* p, const OnigUChar* end); +extern +int onigenc_strlen_null(OnigEncoding enc, const OnigUChar* p); +extern +int onigenc_str_bytelen_null(OnigEncoding enc, const OnigUChar* p); +typedef unsigned int OnigOptionType; +typedef struct { + unsigned int op; + unsigned int op2; + unsigned int behavior; + OnigOptionType options; + OnigMetaCharTableType meta_char_table; +} OnigSyntaxType; +extern const OnigSyntaxType OnigSyntaxASIS; +extern const OnigSyntaxType OnigSyntaxPosixBasic; +extern const OnigSyntaxType OnigSyntaxPosixExtended; +extern const OnigSyntaxType OnigSyntaxEmacs; +extern const OnigSyntaxType OnigSyntaxGrep; +extern const OnigSyntaxType OnigSyntaxGnuRegex; +extern const OnigSyntaxType OnigSyntaxJava; +extern const OnigSyntaxType OnigSyntaxPerl58; +extern const OnigSyntaxType OnigSyntaxPerl58_NG; +extern const OnigSyntaxType OnigSyntaxPerl; +extern const OnigSyntaxType OnigSyntaxRuby; +extern const OnigSyntaxType OnigSyntaxPython; +extern const OnigSyntaxType* OnigDefaultSyntax; +struct re_registers { + int allocated; + int num_regs; + OnigPosition* beg; + OnigPosition* end; +}; +typedef struct re_registers OnigRegion; +typedef struct { + OnigEncoding enc; + OnigUChar* par; + OnigUChar* par_end; +} OnigErrorInfo; +typedef struct { + int lower; + int upper; + long base_num; + long inner_num; +} OnigRepeatRange; +typedef void (*OnigWarnFunc)(const char* s); +extern void onig_null_warn(const char* s); +typedef struct re_pattern_buffer { + unsigned char* p; + unsigned int used; + unsigned int alloc; + int num_mem; + int num_repeat; + int num_null_check; + int num_comb_exp_check; + int num_call; + unsigned int capture_history; + unsigned int bt_mem_start; + unsigned int bt_mem_end; + int stack_pop_level; + int repeat_range_alloc; + OnigOptionType options; + OnigRepeatRange* repeat_range; + OnigEncoding enc; + const OnigSyntaxType* syntax; + void* name_table; + OnigCaseFoldType case_fold_flag; + int optimize; + int threshold_len; + int anchor; + OnigDistance anchor_dmin; + OnigDistance anchor_dmax; + int sub_anchor; + unsigned char *exact; + unsigned char *exact_end; + unsigned char map[256]; + int *int_map; + int *int_map_backward; + OnigDistance dmin; + OnigDistance dmax; + uint64_t timelimit; + struct re_pattern_buffer* chain; +} OnigRegexType; +typedef OnigRegexType* OnigRegex; +typedef OnigRegexType regex_t; +typedef struct { + int num_of_elements; + OnigEncoding pattern_enc; + OnigEncoding target_enc; + const OnigSyntaxType* syntax; + OnigOptionType option; + OnigCaseFoldType case_fold_flag; +} OnigCompileInfo; +extern +int onig_initialize(OnigEncoding encodings[], int n); +extern +int onig_init(void); +extern +int onig_error_code_to_str(OnigUChar* s, OnigPosition err_code, ...); +extern +void onig_set_warn_func(OnigWarnFunc f); +extern +void onig_set_verb_warn_func(OnigWarnFunc f); +extern +int onig_new(OnigRegex*, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, const OnigSyntaxType* syntax, OnigErrorInfo* einfo); +extern +int onig_reg_init(OnigRegex reg, OnigOptionType option, OnigCaseFoldType case_fold_flag, OnigEncoding enc, const OnigSyntaxType* syntax); +extern +int onig_new_without_alloc(OnigRegex, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, const OnigSyntaxType* syntax, OnigErrorInfo* einfo); +extern +int onig_new_deluxe(OnigRegex* reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo); +extern +void onig_free(OnigRegex); +extern +void onig_free_body(OnigRegex); +extern +OnigPosition onig_scan(OnigRegex reg, const OnigUChar* str, const OnigUChar* end, OnigRegion* region, OnigOptionType option, int (*scan_callback)(OnigPosition, OnigPosition, OnigRegion*, void*), void* callback_arg); +extern +OnigPosition onig_search(OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option); +extern +OnigPosition onig_search_gpos(OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* global_pos, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option); +extern +OnigPosition onig_match(OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* at, OnigRegion* region, OnigOptionType option); +extern +int onig_check_linear_time(OnigRegex reg); +extern +OnigRegion* onig_region_new(void); +extern +void onig_region_init(OnigRegion* region); +extern +void onig_region_free(OnigRegion* region, int free_self); +extern +void onig_region_copy(OnigRegion* to, const OnigRegion* from); +extern +void onig_region_clear(OnigRegion* region); +extern +int onig_region_resize(OnigRegion* region, int n); +extern +int onig_region_set(OnigRegion* region, int at, int beg, int end); +extern +int onig_name_to_group_numbers(OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, int** nums); +extern +int onig_name_to_backref_number(OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, const OnigRegion *region); +extern +int onig_foreach_name(OnigRegex reg, int (*func)(const OnigUChar*, const OnigUChar*,int,int*,OnigRegex,void*), void* arg); +extern +int onig_number_of_names(const OnigRegexType *reg); +extern +int onig_number_of_captures(const OnigRegexType *reg); +extern +int onig_number_of_capture_histories(const OnigRegexType *reg); +extern +int onig_capture_tree_traverse(OnigRegion* region, int at, int(*callback_func)(int,OnigPosition,OnigPosition,int,int,void*), void* arg); +extern +int onig_noname_group_capture_is_active(const OnigRegexType *reg); +extern +OnigEncoding onig_get_encoding(const OnigRegexType *reg); +extern +OnigOptionType onig_get_options(const OnigRegexType *reg); +extern +OnigCaseFoldType onig_get_case_fold_flag(const OnigRegexType *reg); +extern +const OnigSyntaxType* onig_get_syntax(const OnigRegexType *reg); +extern +int onig_set_default_syntax(const OnigSyntaxType* syntax); +extern +void onig_copy_syntax(OnigSyntaxType* to, const OnigSyntaxType* from); +extern +unsigned int onig_get_syntax_op(const OnigSyntaxType* syntax); +extern +unsigned int onig_get_syntax_op2(const OnigSyntaxType* syntax); +extern +unsigned int onig_get_syntax_behavior(const OnigSyntaxType* syntax); +extern +OnigOptionType onig_get_syntax_options(const OnigSyntaxType* syntax); +extern +void onig_set_syntax_op(OnigSyntaxType* syntax, unsigned int op); +extern +void onig_set_syntax_op2(OnigSyntaxType* syntax, unsigned int op2); +extern +void onig_set_syntax_behavior(OnigSyntaxType* syntax, unsigned int behavior); +extern +void onig_set_syntax_options(OnigSyntaxType* syntax, OnigOptionType options); +extern +int onig_set_meta_char(OnigSyntaxType* syntax, unsigned int what, OnigCodePoint code); +extern +void onig_copy_encoding(OnigEncodingType *to, OnigEncoding from); +extern +OnigCaseFoldType onig_get_default_case_fold_flag(void); +extern +int onig_set_default_case_fold_flag(OnigCaseFoldType case_fold_flag); +extern +unsigned int onig_get_match_stack_limit_size(void); +extern +int onig_set_match_stack_limit_size(unsigned int size); +extern +unsigned int onig_get_parse_depth_limit(void); +extern +int onig_set_parse_depth_limit(unsigned int depth); +extern +int onig_end(void); +extern +const char* onig_version(void); +extern +const char* onig_copyright(void); + + +extern VALUE rb_cEncoding; +enum ruby_encoding_consts { + RUBY_ENCODING_INLINE_MAX = 127, + RUBY_ENCODING_SHIFT = (RUBY_FL_USHIFT+10), + RUBY_ENCODING_MASK = (RUBY_ENCODING_INLINE_MAX<> RUBY_ENCODING_SHIFT; + return ((int)ret); +} +typedef const OnigEncodingType rb_encoding; +__declspec(noalias) +int rb_char_to_option_kcode(int c, int *option, int *kcode); +int rb_enc_replicate(const char *name, rb_encoding *src); +int rb_define_dummy_encoding(const char *name); +__attribute__((__pure__)) +int rb_enc_dummy_p(rb_encoding *enc); +__attribute__((__pure__)) +int rb_enc_to_index(rb_encoding *enc); +int rb_enc_get_index(VALUE obj); +static inline int +RB_ENCODING_GET(VALUE obj) +{ + int encindex = RB_ENCODING_GET_INLINED(obj); + if (encindex == RUBY_ENCODING_INLINE_MAX) { + return rb_enc_get_index(obj); + } + else { + return encindex; + } +} +void rb_enc_set_index(VALUE obj, int encindex); +static inline void +RB_ENCODING_SET(VALUE obj, int encindex) +{ + rb_enc_set_index(obj, encindex); +} +static inline void +RB_ENCODING_CODERANGE_SET(VALUE obj, int encindex, enum ruby_coderange_type cr) +{ + RB_ENCODING_SET(obj, encindex); + RB_ENC_CODERANGE_SET(obj, cr); +} +__attribute__((__pure__)) +int rb_enc_capable(VALUE obj); +int rb_enc_find_index(const char *name); +int rb_enc_alias(const char *alias, const char *orig); +int rb_to_encoding_index(VALUE obj); +rb_encoding *rb_to_encoding(VALUE obj); +rb_encoding *rb_find_encoding(VALUE obj); +rb_encoding *rb_enc_get(VALUE obj); +rb_encoding *rb_enc_compatible(VALUE str1, VALUE str2); +rb_encoding *rb_enc_check(VALUE str1,VALUE str2); +VALUE rb_enc_associate_index(VALUE obj, int encindex); +VALUE rb_enc_associate(VALUE obj, rb_encoding *enc); +void rb_enc_copy(VALUE dst, VALUE src); +rb_encoding *rb_enc_from_index(int idx); +rb_encoding *rb_enc_find(const char *name); +static inline const char * +rb_enc_name(rb_encoding *enc) +{ + return enc->name; +} +static inline int +rb_enc_mbminlen(rb_encoding *enc) +{ + return enc->min_enc_len; +} +static inline int +rb_enc_mbmaxlen(rb_encoding *enc) +{ + return enc->max_enc_len; +} +int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc); +int rb_enc_fast_mbclen(const char *p, const char *e, rb_encoding *enc); +int rb_enc_precise_mbclen(const char *p, const char *e, rb_encoding *enc); +int rb_enc_ascget(const char *p, const char *e, int *len, rb_encoding *enc); +unsigned int rb_enc_codepoint_len(const char *p, const char *e, int *len, rb_encoding *enc); +static inline unsigned int +rb_enc_codepoint(const char *p, const char *e, rb_encoding *enc) +{ + return rb_enc_codepoint_len(p, e, 0, enc); +} +static inline OnigCodePoint +rb_enc_mbc_to_codepoint(const char *p, const char *e, rb_encoding *enc) +{ + const OnigUChar *up = ((const OnigUChar *)p); + const OnigUChar *ue = ((const OnigUChar *)e); + return (enc)->mbc_to_code((up),(ue),enc); +} +int rb_enc_codelen(int code, rb_encoding *enc); +static inline int +rb_enc_code_to_mbclen(int c, rb_encoding *enc) +{ + OnigCodePoint uc = ((OnigCodePoint)c); + return (enc)->code_to_mbclen(uc,enc); +} +static inline int +rb_enc_mbcput(unsigned int c, void *buf, rb_encoding *enc) +{ + OnigCodePoint uc = ((OnigCodePoint)c); + OnigUChar *ubuf = ((OnigUChar *)buf); + return (enc)->code_to_mbc(uc,ubuf,enc); +} +static inline char * +rb_enc_prev_char(const char *s, const char *p, const char *e, rb_encoding *enc) +{ + const OnigUChar *us = ((const OnigUChar *)s); + const OnigUChar *up = ((const OnigUChar *)p); + const OnigUChar *ue = ((const OnigUChar *)e); + OnigUChar *ur = onigenc_get_prev_char_head(enc, us, up, ue); + return ((char *)ur); +} +static inline char * +rb_enc_left_char_head(const char *s, const char *p, const char *e, rb_encoding *enc) +{ + const OnigUChar *us = ((const OnigUChar *)s); + const OnigUChar *up = ((const OnigUChar *)p); + const OnigUChar *ue = ((const OnigUChar *)e); + OnigUChar *ur = onigenc_get_left_adjust_char_head(enc, us, up, ue); + return ((char *)ur); +} +static inline char * +rb_enc_right_char_head(const char *s, const char *p, const char *e, rb_encoding *enc) +{ + const OnigUChar *us = ((const OnigUChar *)s); + const OnigUChar *up = ((const OnigUChar *)p); + const OnigUChar *ue = ((const OnigUChar *)e); + OnigUChar *ur = onigenc_get_right_adjust_char_head(enc, us, up, ue); + return ((char *)ur); +} +static inline char * +rb_enc_step_back(const char *s, const char *p, const char *e, int n, rb_encoding *enc) +{ + const OnigUChar *us = ((const OnigUChar *)s); + const OnigUChar *up = ((const OnigUChar *)p); + const OnigUChar *ue = ((const OnigUChar *)e); + const OnigUChar *ur = onigenc_step_back(enc, us, up, ue, n); + return ((char *)ur); +} +static inline int +rb_enc_asciicompat_inline(rb_encoding *enc) +{ + return rb_enc_mbminlen(enc)==1 && !rb_enc_dummy_p(enc); +} +static inline _Bool +rb_enc_asciicompat(rb_encoding *enc) +{ + if (rb_enc_mbminlen(enc) != 1) { + return 0; + } + else if (rb_enc_dummy_p(enc)) { + return 0; + } + else { + return 1; + } +} +static inline _Bool +rb_enc_str_asciicompat_p(VALUE str) +{ + rb_encoding *enc = rb_enc_get(str); + return rb_enc_asciicompat(enc); +} +VALUE rb_enc_from_encoding(rb_encoding *enc); +__attribute__((__pure__)) +int rb_enc_unicode_p(rb_encoding *enc); +__attribute__((__returns_nonnull__)) +rb_encoding *rb_ascii8bit_encoding(void); +__attribute__((__returns_nonnull__)) +rb_encoding *rb_utf8_encoding(void); +__attribute__((__returns_nonnull__)) +rb_encoding *rb_usascii_encoding(void); +rb_encoding *rb_locale_encoding(void); +rb_encoding *rb_filesystem_encoding(void); +rb_encoding *rb_default_external_encoding(void); +rb_encoding *rb_default_internal_encoding(void); +__attribute__((__const__)) +int rb_ascii8bit_encindex(void); +static inline _Bool +RB_ENCODING_IS_ASCII8BIT(VALUE obj) +{ + return RB_ENCODING_GET_INLINED(obj) == rb_ascii8bit_encindex(); +} +__attribute__((__const__)) +int rb_utf8_encindex(void); +__attribute__((__const__)) +int rb_usascii_encindex(void); +int rb_locale_encindex(void); +int rb_filesystem_encindex(void); +VALUE rb_enc_default_external(void); +VALUE rb_enc_default_internal(void); +void rb_enc_set_default_external(VALUE encoding); +void rb_enc_set_default_internal(VALUE encoding); +VALUE rb_locale_charmap(VALUE klass); +static inline _Bool +rb_enc_is_newline(const char *p, const char *e, rb_encoding *enc) +{ + OnigUChar *up = ((OnigUChar *)p); + OnigUChar *ue = ((OnigUChar *)e); + return (enc)->is_mbc_newline((up),(ue),enc); +} +static inline _Bool +rb_enc_isctype(OnigCodePoint c, OnigCtype t, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,t,enc); +} +static inline _Bool +rb_enc_isascii(OnigCodePoint c, rb_encoding *enc) +{ + return ((c) < 128); +} +static inline _Bool +rb_enc_isalpha(OnigCodePoint c, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,1,enc); +} +static inline _Bool +rb_enc_islower(OnigCodePoint c, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,6,enc); +} +static inline _Bool +rb_enc_isupper(OnigCodePoint c, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,10,enc); +} +static inline _Bool +rb_enc_iscntrl(OnigCodePoint c, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,3,enc); +} +static inline _Bool +rb_enc_ispunct(OnigCodePoint c, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,8,enc); +} +static inline _Bool +rb_enc_isalnum(OnigCodePoint c, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,13,enc); +} +static inline _Bool +rb_enc_isprint(OnigCodePoint c, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,7,enc); +} +static inline _Bool +rb_enc_isspace(OnigCodePoint c, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,9,enc); +} +static inline _Bool +rb_enc_isdigit(OnigCodePoint c, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,4,enc); +} +__attribute__((__const__)) +int rb_enc_toupper(int c, rb_encoding *enc); +__attribute__((__const__)) +int rb_enc_tolower(int c, rb_encoding *enc); + + +__attribute__((__nonnull__ ())) +char *rb_enc_path_next(const char *path, const char *end, rb_encoding *enc); +__attribute__((__nonnull__ ())) +char *rb_enc_path_skip_prefix(const char *path, const char *end, rb_encoding *enc); +__attribute__((__nonnull__ ())) +char *rb_enc_path_last_separator(const char *path, const char *end, rb_encoding *enc); +__attribute__((__nonnull__ ())) +char *rb_enc_path_end(const char *path, const char *end, rb_encoding *enc); +__attribute__((__nonnull__ (1, 4))) +const char *ruby_enc_find_basename(const char *name, long *baselen, long *alllen, rb_encoding *enc); +__attribute__((__nonnull__ (1, 3))) +const char *ruby_enc_find_extname(const char *name, long *len, rb_encoding *enc); + +VALUE rb_enc_reg_new(const char *ptr, long len, rb_encoding *enc, int opts); + +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 3))) +VALUE rb_enc_sprintf(rb_encoding *enc, const char *fmt, ...); +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 0))) +VALUE rb_enc_vsprintf(rb_encoding *enc, const char *fmt, va_list ap); +__declspec(noreturn) +__attribute__((__nonnull__ (3))) +__attribute__((__format__(__printf__, 3, 4))) +void rb_enc_raise(rb_encoding *enc, VALUE exc, const char *fmt, ...); + +VALUE rb_enc_str_new(const char *ptr, long len, rb_encoding *enc); +__attribute__((__nonnull__ (1))) +VALUE rb_enc_str_new_cstr(const char *ptr, rb_encoding *enc); +VALUE rb_enc_str_new_static(const char *ptr, long len, rb_encoding *enc); +VALUE rb_enc_interned_str(const char *ptr, long len, rb_encoding *enc); +__attribute__((__nonnull__ (1))) +VALUE rb_enc_interned_str_cstr(const char *ptr, rb_encoding *enc); +long rb_enc_strlen(const char *head, const char *tail, rb_encoding *enc); +char *rb_enc_nth(const char *head, const char *tail, long nth, rb_encoding *enc); +VALUE rb_obj_encoding(VALUE obj); +VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc); +VALUE rb_enc_uint_chr(unsigned int code, rb_encoding *enc); +VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *enc); +VALUE rb_str_export_to_enc(VALUE obj, rb_encoding *enc); +VALUE rb_str_conv_enc(VALUE str, rb_encoding *from, rb_encoding *to); +VALUE rb_str_conv_enc_opts(VALUE str, rb_encoding *from, rb_encoding *to, int ecflags, VALUE ecopts); +int rb_enc_str_coderange(VALUE str); +long rb_str_coderange_scan_restartable(const char *str, const char *end, rb_encoding *enc, int *cr); +int rb_enc_str_asciionly_p(VALUE str); +__attribute__((__nonnull__ ())) +long rb_memsearch(const void *x, long m, const void *y, long n, rb_encoding *enc); +__attribute__((__nonnull__ ())) +static inline VALUE +rbimpl_enc_str_new_cstr(const char *str, rb_encoding *enc) +{ + long len = rbimpl_strlen(str); + return rb_enc_str_new_static(str, len, enc); +} + +ID rb_intern3(const char *name, long len, rb_encoding *enc); +__attribute__((__nonnull__ ())) +int rb_enc_symname_p(const char *str, rb_encoding *enc); +int rb_enc_symname2_p(const char *name, long len, rb_encoding *enc); +ID rb_check_id_cstr(const char *ptr, long len, rb_encoding *enc); +VALUE rb_check_symbol_cstr(const char *ptr, long len, rb_encoding *enc); + +typedef enum { + econv_invalid_byte_sequence, + econv_undefined_conversion, + econv_destination_buffer_full, + econv_source_buffer_empty, + econv_finished, + econv_after_output, + econv_incomplete_input +} rb_econv_result_t; +typedef struct rb_econv_t rb_econv_t; +VALUE rb_str_encode(VALUE str, VALUE to, int ecflags, VALUE ecopts); +int rb_econv_has_convpath_p(const char* from_encoding, const char* to_encoding); +int rb_econv_prepare_options(VALUE opthash, VALUE *ecopts, int ecflags); +int rb_econv_prepare_opts(VALUE opthash, VALUE *ecopts); +rb_econv_t *rb_econv_open(const char *source_encoding, const char *destination_encoding, int ecflags); +rb_econv_t *rb_econv_open_opts(const char *source_encoding, const char *destination_encoding, int ecflags, VALUE ecopts); +rb_econv_result_t rb_econv_convert(rb_econv_t *ec, + const unsigned char **source_buffer_ptr, const unsigned char *source_buffer_end, + unsigned char **destination_buffer_ptr, unsigned char *destination_buffer_end, + int flags); +void rb_econv_close(rb_econv_t *ec); +int rb_econv_set_replacement(rb_econv_t *ec, const unsigned char *str, size_t len, const char *encname); +int rb_econv_decorate_at_first(rb_econv_t *ec, const char *decorator_name); +int rb_econv_decorate_at_last(rb_econv_t *ec, const char *decorator_name); +VALUE rb_econv_open_exc(const char *senc, const char *denc, int ecflags); +int rb_econv_insert_output(rb_econv_t *ec, + const unsigned char *str, size_t len, const char *str_encoding); +const char *rb_econv_encoding_to_insert_output(rb_econv_t *ec); +void rb_econv_check_error(rb_econv_t *ec); +VALUE rb_econv_make_exception(rb_econv_t *ec); +int rb_econv_putbackable(rb_econv_t *ec); +void rb_econv_putback(rb_econv_t *ec, unsigned char *p, int n); +const char *rb_econv_asciicompat_encoding(const char *encname); +VALUE rb_econv_str_convert(rb_econv_t *ec, VALUE src, int flags); +VALUE rb_econv_substr_convert(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, int flags); +VALUE rb_econv_str_append(rb_econv_t *ec, VALUE src, VALUE dst, int flags); +VALUE rb_econv_substr_append(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, VALUE dst, int flags); +VALUE rb_econv_append(rb_econv_t *ec, const char *bytesrc, long bytesize, VALUE dst, int flags); +void rb_econv_binmode(rb_econv_t *ec); +enum ruby_econv_flag_type { + RUBY_ECONV_ERROR_HANDLER_MASK = 0x000000ff, + RUBY_ECONV_INVALID_MASK = 0x0000000f, + RUBY_ECONV_INVALID_REPLACE = 0x00000002, + RUBY_ECONV_UNDEF_MASK = 0x000000f0, + RUBY_ECONV_UNDEF_REPLACE = 0x00000020, + RUBY_ECONV_UNDEF_HEX_CHARREF = 0x00000030, + RUBY_ECONV_DECORATOR_MASK = 0x0001ff00, + RUBY_ECONV_NEWLINE_DECORATOR_MASK = 0x00007f00, + RUBY_ECONV_NEWLINE_DECORATOR_READ_MASK = 0x00000f00, + RUBY_ECONV_NEWLINE_DECORATOR_WRITE_MASK = 0x00007000, + RUBY_ECONV_UNIVERSAL_NEWLINE_DECORATOR = 0x00000100, + RUBY_ECONV_CRLF_NEWLINE_DECORATOR = 0x00001000, + RUBY_ECONV_CR_NEWLINE_DECORATOR = 0x00002000, + RUBY_ECONV_LF_NEWLINE_DECORATOR = 0x00004000, + RUBY_ECONV_XML_TEXT_DECORATOR = 0x00008000, + RUBY_ECONV_XML_ATTR_CONTENT_DECORATOR = 0x00010000, + RUBY_ECONV_STATEFUL_DECORATOR_MASK = 0x00f00000, + RUBY_ECONV_XML_ATTR_QUOTE_DECORATOR = 0x00100000, + RUBY_ECONV_DEFAULT_NEWLINE_DECORATOR = + 0, + RUBY_ECONV_PARTIAL_INPUT = 0x00020000, + RUBY_ECONV_AFTER_OUTPUT = 0x00040000, + RUBY_ECONV_FLAGS_PLACEHOLDER +}; +VALUE rb_fstring(VALUE); +VALUE rb_fstring_cstr(const char *str); +VALUE rb_fstring_enc_new(const char *ptr, long len, rb_encoding *enc); +int rb_str_buf_cat_escaped_char(VALUE result, unsigned int c, int unicode_p); +int rb_str_symname_p(VALUE); +VALUE rb_str_quote_unprintable(VALUE); +char *rb_str_fill_terminator(VALUE str, const int termlen); +void rb_str_change_terminator_length(VALUE str, const int oldtermlen, const int termlen); +VALUE rb_str_locktmp_ensure(VALUE str, VALUE (*func)(VALUE), VALUE arg); +VALUE rb_str_chomp_string(VALUE str, VALUE chomp); +VALUE rb_external_str_with_enc(VALUE str, rb_encoding *eenc); +VALUE rb_str_cat_conv_enc_opts(VALUE newstr, long ofs, const char *ptr, long len, + rb_encoding *from, int ecflags, VALUE ecopts); +VALUE rb_enc_str_scrub(rb_encoding *enc, VALUE str, VALUE repl); +VALUE rb_str_escape(VALUE str); +size_t rb_str_memsize(VALUE); +char *rb_str_to_cstr(VALUE str); +const char *ruby_escaped_char(int c); +void rb_str_make_independent(VALUE str); +int rb_enc_str_coderange_scan(VALUE str, rb_encoding *enc); +int rb_ascii8bit_appendable_encoding_index(rb_encoding *enc, unsigned int code); +VALUE rb_str_include(VALUE str, VALUE arg); +static inline _Bool STR_EMBED_P(VALUE str); +static inline _Bool STR_SHARED_P(VALUE str); +static inline VALUE QUOTE(VALUE v); +static inline VALUE QUOTE_ID(ID v); +static inline _Bool is_ascii_string(VALUE str); +static inline _Bool is_broken_string(VALUE str); +static inline VALUE rb_str_eql_internal(const VALUE str1, const VALUE str2); +VALUE rb_str_tmp_frozen_acquire(VALUE str); +void rb_str_tmp_frozen_release(VALUE str, VALUE tmp); +VALUE rb_setup_fake_str(struct RString *fake_str, const char *name, long len, rb_encoding *enc); +VALUE rb_str_upto_each(VALUE, VALUE, int, int (*each)(VALUE, VALUE), VALUE); +VALUE rb_str_upto_endless_each(VALUE, int (*each)(VALUE, VALUE), VALUE); +void rb_str_make_embedded(VALUE); +size_t rb_str_size_as_embedded(VALUE); +_Bool rb_str_reembeddable_p(VALUE); +void rb_str_update_shared_ary(VALUE str, VALUE old_root, VALUE new_root); +VALUE rb_fstring_new(const char *ptr, long len); +VALUE rb_obj_as_string_result(VALUE str, VALUE obj); +VALUE rb_str_opt_plus(VALUE x, VALUE y); +VALUE rb_str_concat_literals(size_t num, const VALUE *strary); +VALUE rb_str_eql(VALUE str1, VALUE str2); +VALUE rb_id_quote_unprintable(ID); +VALUE rb_sym_proc_call(ID mid, int argc, const VALUE *argv, int kw_splat, VALUE passed_proc); +struct rb_execution_context_struct; +VALUE rb_ec_str_resurrect(struct rb_execution_context_struct *ec, VALUE str); +static inline VALUE +QUOTE(VALUE v) +{ + return rb_str_quote_unprintable(v); +} +static inline VALUE +QUOTE_ID(ID i) +{ + return rb_id_quote_unprintable(i); +} +static inline _Bool +STR_EMBED_P(VALUE str) +{ + return ! RB_FL_TEST_RAW(str, ((VALUE)RUBY_FL_USER1)); +} +static inline _Bool +STR_SHARED_P(VALUE str) +{ + return RB_FL_ALL_RAW(str, ((VALUE)RUBY_FL_USER1) | ((VALUE)RUBY_FL_USER2)); +} +static inline _Bool +is_ascii_string(VALUE str) +{ + return rb_enc_str_coderange(str) == RUBY_ENC_CODERANGE_7BIT; +} +static inline _Bool +is_broken_string(VALUE str) +{ + return rb_enc_str_coderange(str) == RUBY_ENC_CODERANGE_BROKEN; +} +static inline VALUE +rb_str_eql_internal(const VALUE str1, const VALUE str2) +{ + const long len = RSTRING_LEN(str1); + const char *ptr1, *ptr2; + if (len != RSTRING_LEN(str2)) return ((VALUE)RUBY_Qfalse); + if (!rb_str_comparable(str1, str2)) return ((VALUE)RUBY_Qfalse); + if ((ptr1 = RSTRING_PTR(str1)) == (ptr2 = RSTRING_PTR(str2))) + return ((VALUE)RUBY_Qtrue); + if (memcmp(ptr1, ptr2, len) == 0) + return ((VALUE)RUBY_Qtrue); + return ((VALUE)RUBY_Qfalse); +} +extern long rb_backtrace_length_limit; +extern VALUE rb_eEAGAIN; +extern VALUE rb_eEWOULDBLOCK; +extern VALUE rb_eEINPROGRESS; +__attribute__((__format__(__printf__, 3, 0))) +void rb_report_bug_valist(VALUE file, int line, const char *fmt, va_list args); +__declspec(noreturn) void rb_async_bug_errno(const char *,int); +const char *rb_builtin_type_name(int t); +const char *rb_builtin_class_name(VALUE x); +__attribute__((__format__(__printf__, (1), (3)))) void rb_warn_deprecated(const char *fmt, const char *suggest, ...); +__attribute__((__format__(__printf__, (2), (4)))) void rb_warn_deprecated_to_remove(const char *removal, const char *fmt, const char *suggest, ...); +__attribute__((__format__(__printf__, 6, 0))) +VALUE rb_syntax_error_append(VALUE, VALUE, int, int, rb_encoding*, const char*, va_list); +__attribute__((__format__(__printf__, (2), (3)))) void rb_enc_warn(rb_encoding *enc, const char *fmt, ...); +__attribute__((__format__(__printf__, (2), (3)))) void rb_sys_enc_warning(rb_encoding *enc, const char *fmt, ...); +__attribute__((__format__(__printf__, (3), (4)))) void rb_syserr_enc_warning(int err, rb_encoding *enc, const char *fmt, ...); +rb_warning_category_t rb_warning_category_from_name(VALUE category); +_Bool rb_warning_category_enabled_p(rb_warning_category_t category); +VALUE rb_name_err_new(VALUE mesg, VALUE recv, VALUE method); +VALUE rb_nomethod_err_new(VALUE mesg, VALUE recv, VALUE method, VALUE args, int priv); +VALUE rb_key_err_new(VALUE mesg, VALUE recv, VALUE name); +__attribute__((__format__(__printf__, (1), (2)))) VALUE rb_warning_string(const char *fmt, ...); +__attribute__((__format__(__printf__, 2, 0))) +__declspec(noreturn) void rb_vraise(VALUE, const char *, va_list); +__declspec(noreturn) static inline void rb_raise_cstr(VALUE etype, const char *mesg); +__declspec(noreturn) static inline void rb_raise_cstr_i(VALUE etype, VALUE mesg); +__declspec(noreturn) static inline void rb_name_err_raise_str(VALUE mesg, VALUE recv, VALUE name); +__declspec(noreturn) static inline void rb_name_err_raise(const char *mesg, VALUE recv, VALUE name); +__declspec(noreturn) static inline void rb_key_err_raise(VALUE mesg, VALUE recv, VALUE name); +static inline void Check_Type(VALUE v, enum ruby_value_type t); +static inline _Bool rb_typeddata_is_instance_of_inline(VALUE obj, const rb_data_type_t *data_type); +int rb_bug_reporter_add(void (*func)(FILE *, void *), void *data); +__declspec(noreturn) void rb_sys_fail_path_in(const char *func_name, VALUE path); +__declspec(noreturn) void rb_syserr_fail_path_in(const char *func_name, int err, VALUE path); +VALUE rb_syserr_new_path_in(const char *func_name, int n, VALUE path); +static inline void +rb_raise_cstr_i(VALUE etype, VALUE mesg) +{ + VALUE exc = rb_exc_new_str(etype, mesg); + rb_exc_raise(exc); +} +static inline void +rb_raise_cstr(VALUE etype, const char *mesg) +{ + VALUE str = ((__builtin_constant_p(mesg) ? rbimpl_str_new_cstr : rb_str_new_cstr) (mesg)); + rb_raise_cstr_i(etype, str); +} +static inline void +rb_name_err_raise_str(VALUE mesg, VALUE recv, VALUE name) +{ + VALUE exc = rb_name_err_new(mesg, recv, name); + rb_exc_raise(exc); +} +static inline void +rb_name_err_raise(const char *mesg, VALUE recv, VALUE name) +{ + VALUE str = (__builtin_constant_p(mesg) ? rb_fstring_new((mesg), (long)strlen(mesg)) : (rb_fstring_cstr)(mesg)); + rb_name_err_raise_str(str, recv, name); +} +static inline void +rb_key_err_raise(VALUE mesg, VALUE recv, VALUE name) +{ + VALUE exc = rb_key_err_new(mesg, recv, name); + rb_exc_raise(exc); +} +static inline _Bool +rb_typeddata_is_instance_of_inline(VALUE obj, const rb_data_type_t *data_type) +{ + return (__builtin_constant_p(RUBY_T_DATA) ? rbimpl_RB_TYPE_P_fastpath((obj), (RUBY_T_DATA)) : (RB_TYPE_P)((obj), (RUBY_T_DATA))) && RTYPEDDATA_P(obj) && (RTYPEDDATA_TYPE(obj) == data_type); +} + +extern ID ruby_static_id_signo; +extern ID ruby_static_id_status; +VALUE rb_refinement_module_get_refined_class(VALUE module); +void rb_class_modify_check(VALUE); +__declspec(noreturn) VALUE rb_f_raise(int argc, VALUE *argv); +VALUE rb_get_backtrace(VALUE info); +void rb_call_end_proc(VALUE data); +void rb_mark_end_proc(void); + +void Init_class_hierarchy(void); +void Init_enc(void); +void Init_ext(void); +void Init_File(void); +void Init_heap(void); +int Init_enc_set_filesystem_encoding(void); +void Init_newline(void); +void Init_BareVM(void); +void Init_vm_objects(void); +void Init_vm_backtrace(void); +void Init_vm_eval(void);static inline +void Init_vm_stack_canary(void); +void Init_eval_method(void); +void rb_call_inits(void); + +VALUE rb_class_search_ancestor(VALUE klass, VALUE super); +__declspec(noreturn) void rb_undefined_alloc(VALUE klass); +double rb_num_to_dbl(VALUE val); +VALUE rb_obj_dig(int argc, VALUE *argv, VALUE self, VALUE notfound); +VALUE rb_immutable_obj_clone(int, VALUE *, VALUE); +VALUE rb_check_convert_type_with_id(VALUE,int,const char*,ID); +int rb_bool_expected(VALUE, const char *, int raise); +static inline void RBASIC_CLEAR_CLASS(VALUE obj); +static inline void RBASIC_SET_CLASS_RAW(VALUE obj, VALUE klass); +static inline void RBASIC_SET_CLASS(VALUE obj, VALUE klass); +int rb_opts_exception_p(VALUE opts, int default_value); +__attribute__((__const__)) VALUE rb_obj_equal(VALUE obj1, VALUE obj2); +__attribute__((__const__)) VALUE rb_obj_not(VALUE obj); +VALUE rb_obj_not_equal(VALUE obj1, VALUE obj2); +void rb_obj_copy_ivar(VALUE dest, VALUE obj); +VALUE rb_false(VALUE obj); +VALUE rb_convert_type_with_id(VALUE v, int t, const char* nam, ID mid); +VALUE rb_obj_size(VALUE self, VALUE args, VALUE obj); +VALUE rb_get_freeze_opt(int argc, VALUE *argv); +static inline void +RBASIC_SET_CLASS_RAW(VALUE obj, VALUE klass) +{ + const VALUE *ptr = &((struct RBasic *)(obj))->klass; + *(VALUE *)ptr = klass; +} +static inline void +RBASIC_CLEAR_CLASS(VALUE obj) +{ + RBASIC_SET_CLASS_RAW(obj, 0); +} +static inline void +RBASIC_SET_CLASS(VALUE obj, VALUE klass) +{ + VALUE oldv = RBASIC_CLASS(obj); + RBASIC_SET_CLASS_RAW(obj, klass); + (rb_obj_written((VALUE)(obj), (VALUE)(oldv), (VALUE)(klass), "./internal/object.h", 59)); +} + +struct rb_iseq_struct; +VALUE rb_parser_set_yydebug(VALUE, VALUE); +void *rb_parser_load_file(VALUE parser, VALUE name); +void rb_parser_keep_script_lines(VALUE vparser); +void rb_parser_error_tolerant(VALUE vparser); +void rb_parser_keep_tokens(VALUE vparser); +VALUE rb_parser_set_context(VALUE, const struct rb_iseq_struct *, int); + +struct rb_block; +struct rb_iseq_struct; +VALUE rb_proc_location(VALUE self); +st_index_t rb_hash_proc(st_index_t hash, VALUE proc); +int rb_block_pair_yield_optimizable(void); +int rb_block_arity(void); +int rb_block_min_max_arity(int *max); +VALUE rb_block_to_s(VALUE self, const struct rb_block *block, const char *additional_info); +VALUE rb_callable_receiver(VALUE); +VALUE rb_func_proc_new(rb_block_call_func_t func, VALUE val); +VALUE rb_func_lambda_new(rb_block_call_func_t func, VALUE val, int min_argc, int max_argc); +VALUE rb_iseq_location(const struct rb_iseq_struct *iseq); +VALUE rb_sym_to_proc(VALUE sym); + +VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline); +VALUE rb_reg_check_preprocess(VALUE); +long rb_reg_search0(VALUE, VALUE, long, int, int); +VALUE rb_reg_match_p(VALUE re, VALUE str, long pos); +_Bool rb_reg_start_with_p(VALUE re, VALUE str); +VALUE rb_reg_hash(VALUE re); +VALUE rb_reg_equal(VALUE re1, VALUE re2); +void rb_backref_set_string(VALUE string, long pos, long len); +void rb_match_unbusy(VALUE); +int rb_match_count(VALUE match); +int rb_match_nth_defined(int nth, VALUE match); +VALUE rb_reg_new_ary(VALUE ary, int options); + +VALUE rb_to_symbol_type(VALUE obj); +VALUE rb_sym_intern(const char *ptr, long len, rb_encoding *enc); +VALUE rb_sym_intern_ascii(const char *ptr, long len); +VALUE rb_sym_intern_ascii_cstr(const char *ptr); +int rb_is_const_name(VALUE name); +int rb_is_class_name(VALUE name); +int rb_is_instance_name(VALUE name); +int rb_is_local_name(VALUE name); +__attribute__((__pure__)) int rb_is_const_sym(VALUE sym); +__attribute__((__pure__)) int rb_is_attrset_sym(VALUE sym); +ID rb_make_internal_id(void); +ID rb_make_temporary_id(size_t n); +void rb_gc_free_dsymbol(VALUE); +int rb_static_id_valid_p(ID id); + +struct rb_thread_struct; +VALUE rb_obj_is_mutex(VALUE obj); +VALUE rb_suppress_tracing(VALUE (*func)(VALUE), VALUE arg); +void rb_thread_execute_interrupts(VALUE th); +VALUE rb_get_coverages(void); +int rb_get_coverage_mode(void); +VALUE rb_default_coverage(int); +VALUE rb_thread_shield_new(void); +_Bool rb_thread_shield_owned(VALUE self); +VALUE rb_thread_shield_wait(VALUE self); +VALUE rb_thread_shield_release(VALUE self); +VALUE rb_thread_shield_destroy(VALUE self); +int rb_thread_to_be_killed(VALUE thread); +void rb_mutex_allow_trap(VALUE self, int val); +VALUE rb_uninterruptible(VALUE (*b_proc)(VALUE), VALUE data); +VALUE rb_mutex_owned_p(VALUE self); +VALUE rb_exec_recursive_outer_mid(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE h, ID mid); +int rb_thread_wait_for_single_fd(int fd, int events, struct timeval * timeout); +VALUE rb_thread_io_blocking_region(rb_blocking_function_t *func, void *data1, int fd); +int ruby_thread_has_gvl_p(void); +int rb_threadptr_execute_interrupts(struct rb_thread_struct *th, int blocking_timing); + + +typedef struct { + int coverage_sandboxed; + intptr_t coverage_fd; + unsigned int coverage_max_block_size; +} __sanitizer_sandbox_arguments; +void __sanitizer_set_report_path(const char *path); +void __sanitizer_set_report_fd(void *fd); +const char *__sanitizer_get_report_path(); +void __sanitizer_sandbox_on_notify(__sanitizer_sandbox_arguments *args); +void __sanitizer_report_error_summary(const char *error_summary); +uint16_t __sanitizer_unaligned_load16(const void *p); +uint32_t __sanitizer_unaligned_load32(const void *p); +uint64_t __sanitizer_unaligned_load64(const void *p); +void __sanitizer_unaligned_store16(void *p, uint16_t x); +void __sanitizer_unaligned_store32(void *p, uint32_t x); +void __sanitizer_unaligned_store64(void *p, uint64_t x); +int __sanitizer_acquire_crash_state(); +void __sanitizer_annotate_contiguous_container(const void *beg, + const void *end, + const void *old_mid, + const void *new_mid); +int __sanitizer_verify_contiguous_container(const void *beg, const void *mid, + const void *end); +const void *__sanitizer_contiguous_container_find_bad_address(const void *beg, + const void *mid, + const void *end); +void __sanitizer_print_stack_trace(void); +void __sanitizer_symbolize_pc(void *pc, const char *fmt, char *out_buf, + size_t out_buf_size); +void __sanitizer_symbolize_global(void *data_ptr, const char *fmt, + char *out_buf, size_t out_buf_size); +void __sanitizer_set_death_callback(void (*callback)(void)); +void __sanitizer_weak_hook_memcmp(void *called_pc, const void *s1, + const void *s2, size_t n, int result); +void __sanitizer_weak_hook_strncmp(void *called_pc, const char *s1, + const char *s2, size_t n, int result); +void __sanitizer_weak_hook_strncasecmp(void *called_pc, const char *s1, + const char *s2, size_t n, int result); +void __sanitizer_weak_hook_strcmp(void *called_pc, const char *s1, + const char *s2, int result); +void __sanitizer_weak_hook_strcasecmp(void *called_pc, const char *s1, + const char *s2, int result); +void __sanitizer_weak_hook_strstr(void *called_pc, const char *s1, + const char *s2, char *result); +void __sanitizer_weak_hook_strcasestr(void *called_pc, const char *s1, + const char *s2, char *result); +void __sanitizer_weak_hook_memmem(void *called_pc, + const void *s1, size_t len1, + const void *s2, size_t len2, void *result); +void __sanitizer_print_memory_profile(size_t top_percent, + size_t max_number_of_contexts); +void __sanitizer_start_switch_fiber(void **fake_stack_save, + const void *bottom, size_t size); +void __sanitizer_finish_switch_fiber(void *fake_stack_save, + const void **bottom_old, + size_t *size_old); +int __sanitizer_get_module_and_offset_for_pc(void *pc, char *module_path, + size_t module_path_len, + void **pc_offset); +void __asan_poison_memory_region(void const volatile *addr, size_t size); +void __asan_unpoison_memory_region(void const volatile *addr, size_t size); +int __asan_address_is_poisoned(void const volatile *addr); +void *__asan_region_is_poisoned(void *beg, size_t size); +void __asan_describe_address(void *addr); +int __asan_report_present(void); +void *__asan_get_report_pc(void); +void *__asan_get_report_bp(void); +void *__asan_get_report_sp(void); +void *__asan_get_report_address(void); +int __asan_get_report_access_type(void); +size_t __asan_get_report_access_size(void); +const char *__asan_get_report_description(void); +const char *__asan_locate_address(void *addr, char *name, size_t name_size, + void **region_address, size_t *region_size); +size_t __asan_get_alloc_stack(void *addr, void **trace, size_t size, + int *thread_id); +size_t __asan_get_free_stack(void *addr, void **trace, size_t size, + int *thread_id); +void __asan_get_shadow_mapping(size_t *shadow_scale, size_t *shadow_offset); +void __asan_report_error(void *pc, void *bp, void *sp, + void *addr, int is_write, size_t access_size); +void __asan_set_death_callback(void (*callback)(void)); +void __asan_set_error_report_callback(void (*callback)(const char *)); +void __asan_on_error(void); +void __asan_print_accumulated_stats(void); +const char* __asan_default_options(void); +void *__asan_get_current_fake_stack(void); +void *__asan_addr_is_in_fake_stack(void *fake_stack, void *addr, void **beg, + void **end); +void __asan_handle_no_return(void); +int __asan_update_allocation_context(void* addr); + + + +struct rb_id_table; +enum rb_id_table_iterator_result { + ID_TABLE_CONTINUE = ST_CONTINUE, + ID_TABLE_STOP = ST_STOP, + ID_TABLE_DELETE = ST_DELETE, + ID_TABLE_REPLACE = ST_REPLACE, + ID_TABLE_ITERATOR_RESULT_END +}; +struct rb_id_table *rb_id_table_create(size_t size); +void rb_id_table_free(struct rb_id_table *tbl); +void rb_id_table_clear(struct rb_id_table *tbl); +size_t rb_id_table_memsize(const struct rb_id_table *tbl); +int rb_id_table_insert(struct rb_id_table *tbl, ID id, VALUE val); +int rb_id_table_lookup(struct rb_id_table *tbl, ID id, VALUE *valp); +int rb_id_table_delete(struct rb_id_table *tbl, ID id); +typedef enum rb_id_table_iterator_result rb_id_table_update_value_callback_func_t(VALUE *val, void *data, int existing); +typedef enum rb_id_table_iterator_result rb_id_table_foreach_func_t(ID id, VALUE val, void *data); +typedef enum rb_id_table_iterator_result rb_id_table_foreach_values_func_t(VALUE val, void *data); +void rb_id_table_foreach(struct rb_id_table *tbl, rb_id_table_foreach_func_t *func, void *data); +void rb_id_table_foreach_values(struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, void *data); +void rb_id_table_foreach_values_with_replace(struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, rb_id_table_update_value_callback_func_t *replace, void *data); +size_t rb_id_table_size(const struct rb_id_table *tbl); + +typedef enum { + CONST_DEPRECATED = 0x100, + CONST_VISIBILITY_MASK = 0xff, + CONST_PUBLIC = 0x00, + CONST_PRIVATE, + CONST_VISIBILITY_MAX +} rb_const_flag_t; +typedef struct rb_const_entry_struct { + rb_const_flag_t flag; + int line; + VALUE value; + VALUE file; +} rb_const_entry_t; +VALUE rb_mod_private_constant(int argc, const VALUE *argv, VALUE obj); +VALUE rb_mod_public_constant(int argc, const VALUE *argv, VALUE obj); +VALUE rb_mod_deprecate_constant(int argc, const VALUE *argv, VALUE obj); +void rb_free_const_table(struct rb_id_table *tbl); +VALUE rb_const_source_location(VALUE, ID); +int rb_autoloading_value(VALUE mod, ID id, VALUE *value, rb_const_flag_t *flag); +rb_const_entry_t *rb_const_lookup(VALUE klass, ID id); +VALUE rb_public_const_get_at(VALUE klass, ID id); +VALUE rb_public_const_get_from(VALUE klass, ID id); +int rb_public_const_defined_from(VALUE klass, ID id); +VALUE rb_const_source_location_at(VALUE, ID); +void rb_gc_mark_global_tbl(void); +void rb_gc_update_global_tbl(void); +size_t rb_generic_ivar_memsize(VALUE); +VALUE rb_search_class_path(VALUE); +VALUE rb_attr_delete(VALUE, ID); +void rb_autoload_str(VALUE mod, ID id, VALUE file); +VALUE rb_autoload_at_p(VALUE, ID, int); +__declspec(noreturn) VALUE rb_mod_const_missing(VALUE,VALUE); +rb_gvar_getter_t *rb_gvar_getter_function_of(ID); +rb_gvar_setter_t *rb_gvar_setter_function_of(ID); +void rb_gvar_readonly_setter(VALUE v, ID id, VALUE *_); +void rb_gvar_ractor_local(const char *name); +static inline _Bool ROBJ_TRANSIENT_P(VALUE obj); +static inline void ROBJ_TRANSIENT_SET(VALUE obj); +static inline void ROBJ_TRANSIENT_UNSET(VALUE obj); +struct gen_ivtbl; +int rb_gen_ivtbl_get(VALUE obj, ID id, struct gen_ivtbl **ivtbl); +int rb_obj_evacuate_ivs_to_hash_table(ID key, VALUE val, st_data_t arg); +void rb_mark_generic_ivar(VALUE); +void rb_mv_generic_ivar(VALUE src, VALUE dst); +VALUE rb_const_missing(VALUE klass, VALUE name); +int rb_class_ivar_set(VALUE klass, ID vid, VALUE value); +void rb_iv_tbl_copy(VALUE dst, VALUE src); +VALUE rb_ivar_lookup(VALUE obj, ID id, VALUE undef); +VALUE rb_gvar_get(ID); +VALUE rb_gvar_set(ID, VALUE); +VALUE rb_gvar_defined(ID); +void rb_const_warn_if_deprecated(const rb_const_entry_t *, VALUE, ID); +rb_shape_t * rb_grow_iv_list(VALUE obj); +void rb_ensure_iv_list_size(VALUE obj, uint32_t len, uint32_t newsize); +struct gen_ivtbl *rb_ensure_generic_iv_list_size(VALUE obj, rb_shape_t *shape, uint32_t newsize); +attr_index_t rb_obj_ivar_set(VALUE obj, ID id, VALUE val); +static inline _Bool +ROBJ_TRANSIENT_P(VALUE obj) +{ + return RB_FL_TEST_RAW(obj, ((VALUE)RUBY_FL_USER2)); +} +static inline void +ROBJ_TRANSIENT_SET(VALUE obj) +{ + RB_FL_SET_RAW(obj, ((VALUE)RUBY_FL_USER2)); +} +static inline void +ROBJ_TRANSIENT_UNSET(VALUE obj) +{ + RB_FL_UNSET_RAW(obj, ((VALUE)RUBY_FL_USER2)); +} + + + +enum rb_mjit_func_state { + MJIT_FUNC_NOT_COMPILED = 0, + MJIT_FUNC_COMPILING = 1, + MJIT_FUNC_FAILED = 2, +}; +struct mjit_options { + _Bool on; + _Bool save_temps; + _Bool warnings; + _Bool debug; + char* debug_flags; + _Bool wait; + unsigned int call_threshold; + int verbose; + int max_cache_size; + _Bool pause; + _Bool custom; +}; +struct rb_mjit_compile_info { + _Bool disable_ivar_cache; + _Bool disable_exivar_cache; + _Bool disable_send_cache; + _Bool disable_inlining; + _Bool disable_const_cache; +}; +typedef VALUE (*jit_func_t)(rb_execution_context_t *, rb_control_frame_t *); +extern struct mjit_options mjit_opts; +extern _Bool mjit_call_p; +extern void rb_mjit_add_iseq_to_process(const rb_iseq_t *iseq); +extern struct rb_mjit_compile_info* rb_mjit_iseq_compile_info(const struct rb_iseq_constant_body *body); +extern void rb_mjit_recompile_send(const rb_iseq_t *iseq); +extern void rb_mjit_recompile_ivar(const rb_iseq_t *iseq); +extern void rb_mjit_recompile_exivar(const rb_iseq_t *iseq); +extern void rb_mjit_recompile_inlining(const rb_iseq_t *iseq); +extern void rb_mjit_recompile_const(const rb_iseq_t *iseq); +extern void mjit_cancel_all(const char *reason); +extern _Bool mjit_compile(FILE *f, const rb_iseq_t *iseq, const char *funcname, int id); +extern void mjit_init(const struct mjit_options *opts); +extern void mjit_free_iseq(const rb_iseq_t *iseq); +extern void mjit_update_references(const rb_iseq_t *iseq); +extern void mjit_mark(void); +extern void mjit_mark_cc_entries(const struct rb_iseq_constant_body *const body); +extern void mjit_notify_waitpid(int exit_code); +extern void rb_mjit_bop_redefined(int redefined_flag, enum ruby_basic_operators bop); +extern void rb_mjit_cme_invalidate(rb_callable_method_entry_t *cme); +extern void rb_mjit_before_ractor_spawn(void); +extern void rb_mjit_constant_state_changed(ID id); +extern void rb_mjit_constant_ic_update(const rb_iseq_t *const iseq, IC ic, unsigned insn_idx); +extern void rb_mjit_tracing_invalidate_all(rb_event_flag_t new_iseq_events); +void mjit_child_after_fork(void); +VALUE mjit_pause(_Bool wait_p); +VALUE mjit_resume(void); +void mjit_finish(_Bool close_handle_p); + +static inline _Bool rb_yjit_enabled_p(void) { return 0; } +static inline unsigned rb_yjit_call_threshold(void) { return (2147483647 *2U +1U); } +static inline void rb_yjit_invalidate_all_method_lookup_assumptions(void) {} +static inline void rb_yjit_cme_invalidate(rb_callable_method_entry_t *cme) {} +static inline void rb_yjit_collect_vm_usage_insn(int insn) {} +static inline void rb_yjit_collect_binding_alloc(void) {} +static inline void rb_yjit_collect_binding_set(void) {} +static inline _Bool rb_yjit_compile_iseq(const rb_iseq_t *iseq, rb_execution_context_t *ec) { return 0; } +static inline void rb_yjit_init(void) {} +static inline void rb_yjit_bop_redefined(int redefined_flag, enum ruby_basic_operators bop) {} +static inline void rb_yjit_constant_state_changed(ID id) {} +static inline void rb_yjit_iseq_mark(void *payload) {} +static inline void rb_yjit_iseq_update_references(void *payload) {} +static inline void rb_yjit_iseq_free(void *payload) {} +static inline void rb_yjit_before_ractor_spawn(void) {} +static inline void rb_yjit_constant_ic_update(const rb_iseq_t *const iseq, IC ic, unsigned insn_idx) {} +static inline void rb_yjit_tracing_invalidate_all(void) {} + + +typedef struct rb_vm_struct ruby_vm_t; +int ruby_vm_destruct(ruby_vm_t *vm); +void ruby_vm_at_exit(void(*func)(ruby_vm_t *)); + + +enum rb_debug_counter_type { +RB_DEBUG_COUNTER_mc_inline_hit, +RB_DEBUG_COUNTER_mc_inline_miss_klass, +RB_DEBUG_COUNTER_mc_inline_miss_invalidated, +RB_DEBUG_COUNTER_mc_inline_miss_empty, +RB_DEBUG_COUNTER_mc_inline_miss_same_cc, +RB_DEBUG_COUNTER_mc_inline_miss_same_cme, +RB_DEBUG_COUNTER_mc_inline_miss_same_def, +RB_DEBUG_COUNTER_mc_inline_miss_diff, +RB_DEBUG_COUNTER_cvar_write_inline_hit, +RB_DEBUG_COUNTER_cvar_read_inline_hit, +RB_DEBUG_COUNTER_cvar_inline_miss, +RB_DEBUG_COUNTER_cvar_class_invalidate, +RB_DEBUG_COUNTER_cvar_include_invalidate, +RB_DEBUG_COUNTER_mc_cme_complement, +RB_DEBUG_COUNTER_mc_cme_complement_hit, +RB_DEBUG_COUNTER_mc_search, +RB_DEBUG_COUNTER_mc_search_notfound, +RB_DEBUG_COUNTER_mc_search_super, +RB_DEBUG_COUNTER_ci_packed, +RB_DEBUG_COUNTER_ci_kw, +RB_DEBUG_COUNTER_ci_nokw, +RB_DEBUG_COUNTER_ci_runtime, +RB_DEBUG_COUNTER_cc_new, +RB_DEBUG_COUNTER_cc_temp, +RB_DEBUG_COUNTER_cc_found_in_ccs, +RB_DEBUG_COUNTER_cc_not_found_in_ccs, +RB_DEBUG_COUNTER_cc_ent_invalidate, +RB_DEBUG_COUNTER_cc_cme_invalidate, +RB_DEBUG_COUNTER_cc_invalidate_leaf, +RB_DEBUG_COUNTER_cc_invalidate_leaf_ccs, +RB_DEBUG_COUNTER_cc_invalidate_leaf_callable, +RB_DEBUG_COUNTER_cc_invalidate_tree, +RB_DEBUG_COUNTER_cc_invalidate_tree_cme, +RB_DEBUG_COUNTER_cc_invalidate_tree_callable, +RB_DEBUG_COUNTER_cc_invalidate_negative, +RB_DEBUG_COUNTER_ccs_free, +RB_DEBUG_COUNTER_ccs_maxlen, +RB_DEBUG_COUNTER_ccs_found, +RB_DEBUG_COUNTER_ccs_not_found, +RB_DEBUG_COUNTER_call0_public, +RB_DEBUG_COUNTER_call0_other, +RB_DEBUG_COUNTER_gccct_hit, +RB_DEBUG_COUNTER_gccct_miss, +RB_DEBUG_COUNTER_gccct_null, +RB_DEBUG_COUNTER_iseq_num, +RB_DEBUG_COUNTER_iseq_cd_num, +RB_DEBUG_COUNTER_ccf_general, +RB_DEBUG_COUNTER_ccf_iseq_setup, +RB_DEBUG_COUNTER_ccf_iseq_setup_0start, +RB_DEBUG_COUNTER_ccf_iseq_setup_tailcall_0start, +RB_DEBUG_COUNTER_ccf_iseq_fix, +RB_DEBUG_COUNTER_ccf_iseq_opt, +RB_DEBUG_COUNTER_ccf_iseq_kw1, +RB_DEBUG_COUNTER_ccf_iseq_kw2, +RB_DEBUG_COUNTER_ccf_cfunc, +RB_DEBUG_COUNTER_ccf_cfunc_with_frame, +RB_DEBUG_COUNTER_ccf_ivar, +RB_DEBUG_COUNTER_ccf_attrset, +RB_DEBUG_COUNTER_ccf_method_missing, +RB_DEBUG_COUNTER_ccf_zsuper, +RB_DEBUG_COUNTER_ccf_bmethod, +RB_DEBUG_COUNTER_ccf_opt_send, +RB_DEBUG_COUNTER_ccf_opt_call, +RB_DEBUG_COUNTER_ccf_opt_block_call, +RB_DEBUG_COUNTER_ccf_opt_struct_aref, +RB_DEBUG_COUNTER_ccf_opt_struct_aset, +RB_DEBUG_COUNTER_ccf_super_method, +RB_DEBUG_COUNTER_frame_push, +RB_DEBUG_COUNTER_frame_push_method, +RB_DEBUG_COUNTER_frame_push_block, +RB_DEBUG_COUNTER_frame_push_class, +RB_DEBUG_COUNTER_frame_push_top, +RB_DEBUG_COUNTER_frame_push_cfunc, +RB_DEBUG_COUNTER_frame_push_ifunc, +RB_DEBUG_COUNTER_frame_push_eval, +RB_DEBUG_COUNTER_frame_push_rescue, +RB_DEBUG_COUNTER_frame_push_dummy, +RB_DEBUG_COUNTER_frame_R2R, +RB_DEBUG_COUNTER_frame_R2C, +RB_DEBUG_COUNTER_frame_C2C, +RB_DEBUG_COUNTER_frame_C2R, +RB_DEBUG_COUNTER_ivar_get_ic_hit, +RB_DEBUG_COUNTER_ivar_get_ic_miss, +RB_DEBUG_COUNTER_ivar_get_ic_miss_noobject, +RB_DEBUG_COUNTER_ivar_set_ic_hit, +RB_DEBUG_COUNTER_ivar_set_ic_miss, +RB_DEBUG_COUNTER_ivar_set_ic_miss_iv_hit, +RB_DEBUG_COUNTER_ivar_set_ic_miss_noobject, +RB_DEBUG_COUNTER_ivar_get_base, +RB_DEBUG_COUNTER_ivar_set_base, +RB_DEBUG_COUNTER_ivar_get_ic_miss_set, +RB_DEBUG_COUNTER_ivar_get_cc_miss_set, +RB_DEBUG_COUNTER_ivar_get_ic_miss_unset, +RB_DEBUG_COUNTER_ivar_get_cc_miss_unset, +RB_DEBUG_COUNTER_lvar_get, +RB_DEBUG_COUNTER_lvar_get_dynamic, +RB_DEBUG_COUNTER_lvar_set, +RB_DEBUG_COUNTER_lvar_set_dynamic, +RB_DEBUG_COUNTER_lvar_set_slowpath, +RB_DEBUG_COUNTER_gc_count, +RB_DEBUG_COUNTER_gc_minor_newobj, +RB_DEBUG_COUNTER_gc_minor_malloc, +RB_DEBUG_COUNTER_gc_minor_method, +RB_DEBUG_COUNTER_gc_minor_capi, +RB_DEBUG_COUNTER_gc_minor_stress, +RB_DEBUG_COUNTER_gc_major_nofree, +RB_DEBUG_COUNTER_gc_major_oldgen, +RB_DEBUG_COUNTER_gc_major_shady, +RB_DEBUG_COUNTER_gc_major_force, +RB_DEBUG_COUNTER_gc_major_oldmalloc, +RB_DEBUG_COUNTER_gc_enter_start, +RB_DEBUG_COUNTER_gc_enter_mark_continue, +RB_DEBUG_COUNTER_gc_enter_sweep_continue, +RB_DEBUG_COUNTER_gc_enter_rest, +RB_DEBUG_COUNTER_gc_enter_finalizer, +RB_DEBUG_COUNTER_gc_isptr_trial, +RB_DEBUG_COUNTER_gc_isptr_range, +RB_DEBUG_COUNTER_gc_isptr_align, +RB_DEBUG_COUNTER_gc_isptr_maybe, +RB_DEBUG_COUNTER_obj_newobj, +RB_DEBUG_COUNTER_obj_newobj_slowpath, +RB_DEBUG_COUNTER_obj_newobj_wb_unprotected, +RB_DEBUG_COUNTER_obj_free, +RB_DEBUG_COUNTER_obj_promote, +RB_DEBUG_COUNTER_obj_wb_unprotect, +RB_DEBUG_COUNTER_obj_obj_embed, +RB_DEBUG_COUNTER_obj_obj_transient, +RB_DEBUG_COUNTER_obj_obj_ptr, +RB_DEBUG_COUNTER_obj_obj_too_complex, +RB_DEBUG_COUNTER_obj_str_ptr, +RB_DEBUG_COUNTER_obj_str_embed, +RB_DEBUG_COUNTER_obj_str_shared, +RB_DEBUG_COUNTER_obj_str_nofree, +RB_DEBUG_COUNTER_obj_str_fstr, +RB_DEBUG_COUNTER_obj_ary_embed, +RB_DEBUG_COUNTER_obj_ary_transient, +RB_DEBUG_COUNTER_obj_ary_ptr, +RB_DEBUG_COUNTER_obj_ary_extracapa, +RB_DEBUG_COUNTER_obj_ary_shared_create, +RB_DEBUG_COUNTER_obj_ary_shared, +RB_DEBUG_COUNTER_obj_ary_shared_root_occupied, +RB_DEBUG_COUNTER_obj_hash_empty, +RB_DEBUG_COUNTER_obj_hash_1, +RB_DEBUG_COUNTER_obj_hash_2, +RB_DEBUG_COUNTER_obj_hash_3, +RB_DEBUG_COUNTER_obj_hash_4, +RB_DEBUG_COUNTER_obj_hash_5_8, +RB_DEBUG_COUNTER_obj_hash_g8, +RB_DEBUG_COUNTER_obj_hash_null, +RB_DEBUG_COUNTER_obj_hash_ar, +RB_DEBUG_COUNTER_obj_hash_st, +RB_DEBUG_COUNTER_obj_hash_transient, +RB_DEBUG_COUNTER_obj_hash_force_convert, +RB_DEBUG_COUNTER_obj_struct_embed, +RB_DEBUG_COUNTER_obj_struct_transient, +RB_DEBUG_COUNTER_obj_struct_ptr, +RB_DEBUG_COUNTER_obj_data_empty, +RB_DEBUG_COUNTER_obj_data_xfree, +RB_DEBUG_COUNTER_obj_data_imm_free, +RB_DEBUG_COUNTER_obj_data_zombie, +RB_DEBUG_COUNTER_obj_match_under4, +RB_DEBUG_COUNTER_obj_match_ge4, +RB_DEBUG_COUNTER_obj_match_ge8, +RB_DEBUG_COUNTER_obj_match_ptr, +RB_DEBUG_COUNTER_obj_iclass_ptr, +RB_DEBUG_COUNTER_obj_class_ptr, +RB_DEBUG_COUNTER_obj_module_ptr, +RB_DEBUG_COUNTER_obj_bignum_ptr, +RB_DEBUG_COUNTER_obj_bignum_embed, +RB_DEBUG_COUNTER_obj_float, +RB_DEBUG_COUNTER_obj_complex, +RB_DEBUG_COUNTER_obj_rational, +RB_DEBUG_COUNTER_obj_regexp_ptr, +RB_DEBUG_COUNTER_obj_file_ptr, +RB_DEBUG_COUNTER_obj_symbol, +RB_DEBUG_COUNTER_obj_imemo_ment, +RB_DEBUG_COUNTER_obj_imemo_iseq, +RB_DEBUG_COUNTER_obj_imemo_env, +RB_DEBUG_COUNTER_obj_imemo_tmpbuf, +RB_DEBUG_COUNTER_obj_imemo_ast, +RB_DEBUG_COUNTER_obj_imemo_cref, +RB_DEBUG_COUNTER_obj_imemo_svar, +RB_DEBUG_COUNTER_obj_imemo_throw_data, +RB_DEBUG_COUNTER_obj_imemo_ifunc, +RB_DEBUG_COUNTER_obj_imemo_memo, +RB_DEBUG_COUNTER_obj_imemo_parser_strterm, +RB_DEBUG_COUNTER_obj_imemo_callinfo, +RB_DEBUG_COUNTER_obj_imemo_callcache, +RB_DEBUG_COUNTER_obj_imemo_constcache, +RB_DEBUG_COUNTER_artable_hint_hit, +RB_DEBUG_COUNTER_artable_hint_miss, +RB_DEBUG_COUNTER_artable_hint_notfound, +RB_DEBUG_COUNTER_heap_xmalloc, +RB_DEBUG_COUNTER_heap_xrealloc, +RB_DEBUG_COUNTER_heap_xfree, +RB_DEBUG_COUNTER_theap_alloc, +RB_DEBUG_COUNTER_theap_alloc_fail, +RB_DEBUG_COUNTER_theap_evacuate, +RB_DEBUG_COUNTER_vm_sync_lock, +RB_DEBUG_COUNTER_vm_sync_lock_enter, +RB_DEBUG_COUNTER_vm_sync_lock_enter_nb, +RB_DEBUG_COUNTER_vm_sync_lock_enter_cr, +RB_DEBUG_COUNTER_vm_sync_barrier, + RB_DEBUG_COUNTER_MAX +}; +void rb_debug_counter_show_results(const char *msg); +size_t ruby_debug_counter_get(const char **names_ptr, size_t *counters_ptr); +void ruby_debug_counter_reset(void); +void ruby_debug_counter_show_at_exit(int enable); + +struct rb_subclass_entry { + VALUE klass; + struct rb_subclass_entry *next; + struct rb_subclass_entry *prev; +}; +struct rb_cvar_class_tbl_entry { + uint32_t index; + rb_serial_t global_cvar_state; + VALUE class_value; +}; +struct rb_classext_struct { + VALUE *iv_ptr; + struct rb_id_table *const_tbl; + struct rb_id_table *callable_m_tbl; + struct rb_id_table *cc_tbl; + struct rb_id_table *cvc_tbl; + size_t superclass_depth; + VALUE *superclasses; + struct rb_subclass_entry *subclasses; + struct rb_subclass_entry *subclass_entry; + struct rb_subclass_entry *module_subclass_entry; + const VALUE origin_; + const VALUE refined_class; + rb_alloc_func_t allocator; + const VALUE includer; + uint32_t max_iv_count; + uint32_t variation_count; +}; +struct RClass { + struct RBasic basic; + VALUE super; + struct rb_id_table *m_tbl; +}; +typedef struct rb_subclass_entry rb_subclass_entry_t; +typedef struct rb_classext_struct rb_classext_t; +void rb_class_subclass_add(VALUE super, VALUE klass); +void rb_class_remove_from_super_subclasses(VALUE); +void rb_class_update_superclasses(VALUE); +size_t rb_class_superclasses_memsize(VALUE); +void rb_class_remove_subclass_head(VALUE); +int rb_singleton_class_internal_p(VALUE sklass); +VALUE rb_class_boot(VALUE); +VALUE rb_class_s_alloc(VALUE klass); +VALUE rb_module_s_alloc(VALUE klass); +void rb_module_set_initialized(VALUE module); +void rb_module_check_initializable(VALUE module); +VALUE rb_make_metaclass(VALUE, VALUE); +VALUE rb_include_class_new(VALUE, VALUE); +void rb_class_foreach_subclass(VALUE klass, void (*f)(VALUE, VALUE), VALUE); +void rb_class_detach_subclasses(VALUE); +void rb_class_detach_module_subclasses(VALUE); +void rb_class_remove_from_module_subclasses(VALUE); +VALUE rb_obj_methods(int argc, const VALUE *argv, VALUE obj); +VALUE rb_obj_protected_methods(int argc, const VALUE *argv, VALUE obj); +VALUE rb_obj_private_methods(int argc, const VALUE *argv, VALUE obj); +VALUE rb_obj_public_methods(int argc, const VALUE *argv, VALUE obj); +VALUE rb_class_undefined_instance_methods(VALUE mod); +VALUE rb_special_singleton_class(VALUE); +VALUE rb_singleton_class_clone_and_attach(VALUE obj, VALUE attach); +VALUE rb_singleton_class_get(VALUE obj); +void rb_undef_methods_from(VALUE klass, VALUE super); +static inline void RCLASS_SET_ORIGIN(VALUE klass, VALUE origin); +static inline void RICLASS_SET_ORIGIN_SHARED_MTBL(VALUE iclass); +static inline VALUE RCLASS_SUPER(VALUE klass); +static inline VALUE RCLASS_SET_SUPER(VALUE klass, VALUE super); +static inline void RCLASS_SET_INCLUDER(VALUE iclass, VALUE klass); +VALUE rb_class_inherited(VALUE, VALUE); +VALUE rb_keyword_error_new(const char *, VALUE); +static inline void +RCLASS_SET_ORIGIN(VALUE klass, VALUE origin) +{ + rb_obj_write((VALUE)(klass), __extension__({ + ; + ; __typeof__((VALUE *)(&(((rb_classext_t *)((char *)(klass) + sizeof(struct RClass)))->origin_))) unaligned_member_access_result = ((VALUE *)(&(((rb_classext_t *)((char *)(klass) + sizeof(struct RClass)))->origin_))); + ; unaligned_member_access_result; }), (VALUE)(origin), "./internal/class.h", 142); + if (klass != origin) RB_FL_SET(origin, ((VALUE)RUBY_FL_USER0)); +} +static inline void +RICLASS_SET_ORIGIN_SHARED_MTBL(VALUE iclass) +{ + RB_FL_SET(iclass, ((VALUE)RUBY_FL_USER3)); +} +static inline _Bool +RICLASS_OWNS_M_TBL_P(VALUE iclass) +{ + return RB_FL_TEST_RAW(iclass, ((VALUE)RUBY_FL_USER0) | ((VALUE)RUBY_FL_USER3)) == ((VALUE)RUBY_FL_USER0); +} +static inline void +RCLASS_SET_INCLUDER(VALUE iclass, VALUE klass) +{ + rb_obj_write((VALUE)(iclass), __extension__({ + ; + ; __typeof__((VALUE *)(&(((rb_classext_t *)((char *)(iclass) + sizeof(struct RClass)))->includer))) unaligned_member_access_result = ((VALUE *)(&(((rb_classext_t *)((char *)(iclass) + sizeof(struct RClass)))->includer))); + ; unaligned_member_access_result; }), (VALUE)(klass), "./internal/class.h", 161); +} +static inline VALUE +RCLASS_SUPER(VALUE klass) +{ + return ((struct RClass *)(klass))->super; +} +static inline VALUE +RCLASS_SET_SUPER(VALUE klass, VALUE super) +{ + if (super) { + rb_class_remove_from_super_subclasses(klass); + rb_class_subclass_add(super, klass); + } + rb_obj_write((VALUE)(klass), __extension__({ + ; + ; __typeof__((VALUE *)(&((struct RClass *)(klass))->super)) unaligned_member_access_result = ((VALUE *)(&((struct RClass *)(klass))->super)); + ; unaligned_member_access_result; }), (VALUE)(super), "./internal/class.h", 177); + rb_class_update_superclasses(klass); + return super; +} +enum vm_call_flag_bits { + VM_CALL_ARGS_SPLAT_bit, + VM_CALL_ARGS_BLOCKARG_bit, + VM_CALL_FCALL_bit, + VM_CALL_VCALL_bit, + VM_CALL_ARGS_SIMPLE_bit, + VM_CALL_BLOCKISEQ_bit, + VM_CALL_KWARG_bit, + VM_CALL_KW_SPLAT_bit, + VM_CALL_TAILCALL_bit, + VM_CALL_SUPER_bit, + VM_CALL_ZSUPER_bit, + VM_CALL_OPT_SEND_bit, + VM_CALL_KW_SPLAT_MUT_bit, + VM_CALL__END +}; +struct rb_callinfo_kwarg { + int keyword_len; + VALUE keywords[]; +}; +static inline size_t +rb_callinfo_kwarg_bytes(int keyword_len) +{ + return rb_size_mul_add_or_raise( + keyword_len, + sizeof(VALUE), + sizeof(struct rb_callinfo_kwarg), + rb_eRuntimeError); +} +struct rb_callinfo { + VALUE flags; + const struct rb_callinfo_kwarg *kwarg; + VALUE mid; + VALUE flag; + VALUE argc; +}; +static inline _Bool +vm_ci_packed_p(const struct rb_callinfo *ci) +{ + if ((__builtin_expect(!!(((VALUE)ci) & 0x01), 1))) { + return 1; + } + else { + ((void)0); + return 0; + } +} +static inline _Bool +vm_ci_p(const struct rb_callinfo *ci) +{ + if (vm_ci_packed_p(ci) || imemo_type_p((VALUE)ci, imemo_callinfo)) { + return 1; + } + else { + return 0; + } +} +static inline ID +vm_ci_mid(const struct rb_callinfo *ci) +{ + if (vm_ci_packed_p(ci)) { + return (((VALUE)ci) >> (1 + 15 + 16)) & ((((VALUE)1)<<32) - 1); + } + else { + return (ID)ci->mid; + } +} +static inline unsigned int +vm_ci_flag(const struct rb_callinfo *ci) +{ + if (vm_ci_packed_p(ci)) { + return (unsigned int)((((VALUE)ci) >> (1 + 15)) & ((((VALUE)1)<<16) - 1)); + } + else { + return (unsigned int)ci->flag; + } +} +static inline unsigned int +vm_ci_argc(const struct rb_callinfo *ci) +{ + if (vm_ci_packed_p(ci)) { + return (unsigned int)((((VALUE)ci) >> (1)) & ((((VALUE)1)<<15) - 1)); + } + else { + return (unsigned int)ci->argc; + } +} +static inline const struct rb_callinfo_kwarg * +vm_ci_kwarg(const struct rb_callinfo *ci) +{ + if (vm_ci_packed_p(ci)) { + return ((void*)0); + } + else { + return ci->kwarg; + } +} +static inline void +vm_ci_dump(const struct rb_callinfo *ci) +{ + if (vm_ci_packed_p(ci)) { + ruby_debug_printf("packed_ci ID:%s flag:%x argc:%u\n", + rb_id2name(vm_ci_mid(ci)), vm_ci_flag(ci), vm_ci_argc(ci)); + } + else { + rb_obj_info_dump_loc((VALUE)(ci), "./vm_callinfo.h", 177, __func__); + } +} +static inline const struct rb_callinfo * +vm_ci_new_(ID mid, unsigned int flag, unsigned int argc, const struct rb_callinfo_kwarg *kwarg, const char *file, int line) +{ + if ((((mid ) & ~((((VALUE)1)<<32) - 1)) ? 0 : ((flag) & ~((((VALUE)1)<<16) - 1)) ? 0 : ((argc) & ~((((VALUE)1)<<15) - 1)) ? 0 : (kwarg) ? 0 : 1)) { + ((void)0); + return ((const struct rb_callinfo *) ((((VALUE)(mid )) << (1 + 15 + 16)) | (((VALUE)(flag)) << (1 + 15)) | (((VALUE)(argc)) << (1)) | RUBY_FIXNUM_FLAG)); + } + const _Bool debug = 0; + if (debug) ruby_debug_printf("%s:%d ", file, line); + const struct rb_callinfo *ci = (const struct rb_callinfo *) + rb_imemo_new(imemo_callinfo, + (VALUE)mid, + (VALUE)flag, + (VALUE)argc, + (VALUE)kwarg); + if (debug) rb_obj_info_dump_loc((VALUE)(ci), "./vm_callinfo.h", 218, __func__); + if (kwarg) { + ((void)0); + } + else { + ((void)0); + } + ((void)0); + ((void)0); + return ci; +} +static inline const struct rb_callinfo * +vm_ci_new_runtime_(ID mid, unsigned int flag, unsigned int argc, const struct rb_callinfo_kwarg *kwarg, const char *file, int line) +{ + ((void)0); + return vm_ci_new_(mid, flag, argc, kwarg, file, line); +} +static inline _Bool +vm_ci_markable(const struct rb_callinfo *ci) +{ + if (! ci) { + return 0; + } + else if (vm_ci_packed_p(ci)) { + return 1; + } + else { + ((void)0); + return ! RB_FL_ANY_RAW((VALUE)ci, ((VALUE)RUBY_FL_USER4)); + } +} +typedef VALUE (*vm_call_handler)( + struct rb_execution_context_struct *ec, + struct rb_control_frame_struct *cfp, + struct rb_calling_info *calling); +struct rb_callcache { + const VALUE flags; + const VALUE klass; + const struct rb_callable_method_entry_struct * const cme_; + const vm_call_handler call_; + union { + struct { + uintptr_t value; + } attr; + const enum method_missing_reason method_missing_reason; + VALUE v; + } aux_; +}; +extern const struct rb_callcache *rb_vm_empty_cc(void); +extern const struct rb_callcache *rb_vm_empty_cc_for_super(void); +static inline void vm_cc_attr_index_set(const struct rb_callcache *cc, attr_index_t index, shape_id_t dest_shape_id); +static inline void +vm_cc_attr_index_initialize(const struct rb_callcache *cc, shape_id_t shape_id) +{ + vm_cc_attr_index_set(cc, (attr_index_t)-1, shape_id); +} +static inline const struct rb_callcache * +vm_cc_new(VALUE klass, + const struct rb_callable_method_entry_struct *cme, + vm_call_handler call) +{ + const struct rb_callcache *cc = (const struct rb_callcache *)rb_imemo_new(imemo_callcache, (VALUE)cme, (VALUE)call, 0, klass); + vm_cc_attr_index_initialize(cc, (((uintptr_t)1 << 32) - 1)); + ((void)0); + return cc; +} +static inline _Bool +vm_cc_class_check(const struct rb_callcache *cc, VALUE klass) +{ + ((void)0); + ((void)0); + return cc->klass == klass; +} +static inline int +vm_cc_markable(const struct rb_callcache *cc) +{ + ((void)0); + return RB_FL_TEST_RAW((VALUE)cc, ((VALUE)RUBY_FL_FREEZE)) == 0; +} +static inline const struct rb_callable_method_entry_struct * +vm_cc_cme(const struct rb_callcache *cc) +{ + ((void)0); + ((void)0); + return cc->cme_; +} +static inline vm_call_handler +vm_cc_call(const struct rb_callcache *cc) +{ + ((void)0); + ((void)0); + return cc->call_; +} +static inline attr_index_t +vm_cc_attr_index(const struct rb_callcache *cc) +{ + ((void)0); + return (attr_index_t)((cc->aux_.attr.value & (((VALUE)-1) >> 32)) - 1); +} +static inline shape_id_t +vm_cc_attr_index_dest_shape_id(const struct rb_callcache *cc) +{ + ((void)0); + return cc->aux_.attr.value >> ((8 * 8) - 32); +} +static inline void +vm_cc_atomic_shape_and_index(const struct rb_callcache *cc, shape_id_t * shape_id, attr_index_t * index) +{ + uintptr_t cache_value = cc->aux_.attr.value; + *shape_id = (shape_id_t)(cache_value >> ((8 * 8) - 32)); + *index = (attr_index_t)(cache_value & (((VALUE)-1) >> 32)) - 1; + return; +} +static inline void +vm_ic_atomic_shape_and_index(const struct iseq_inline_iv_cache_entry *ic, shape_id_t * shape_id, attr_index_t * index) +{ + uintptr_t cache_value = ic->value; + *shape_id = (shape_id_t)(cache_value >> ((8 * 8) - 32)); + *index = (attr_index_t)(cache_value & (((VALUE)-1) >> 32)) - 1; + return; +} +static inline shape_id_t +vm_ic_attr_index_dest_shape_id(const struct iseq_inline_iv_cache_entry *ic) +{ + return (shape_id_t)(ic->value >> ((8 * 8) - 32)); +} +static inline unsigned int +vm_cc_cmethod_missing_reason(const struct rb_callcache *cc) +{ + ((void)0); + return cc->aux_.method_missing_reason; +} +static inline _Bool +vm_cc_invalidated_p(const struct rb_callcache *cc) +{ + if (cc->klass && !((vm_cc_cme(cc))->flags & ((VALUE)RUBY_FL_USER9))) { + return 0; + } + else { + return 1; + } +} +static inline _Bool +vm_cc_valid_p(const struct rb_callcache *cc, const rb_callable_method_entry_t *cc_cme, VALUE klass) +{ + ((void)0); + if (cc->klass == klass && !((cc_cme)->flags & ((VALUE)RUBY_FL_USER9))) { + return 1; + } + else { + return 0; + } +} +static inline void +vm_cc_call_set(const struct rb_callcache *cc, vm_call_handler call) +{ + ((void)0); + ((void)0); + *(vm_call_handler *)&cc->call_ = call; +} +static inline void +vm_cc_attr_index_set(const struct rb_callcache *cc, attr_index_t index, shape_id_t dest_shape_id) +{ + uintptr_t *attr_value = (uintptr_t *)&cc->aux_.attr.value; + if (!vm_cc_markable(cc)) { + *attr_value = (uintptr_t)(((uintptr_t)1 << 32) - 1) << ((8 * 8) - 32); + return; + } + ((void)0); + ((void)0); + *attr_value = (attr_index_t)(index + 1) | ((uintptr_t)(dest_shape_id) << ((8 * 8) - 32)); +} +static inline void +vm_ic_attr_index_set(const rb_iseq_t *iseq, const struct iseq_inline_iv_cache_entry *ic, attr_index_t index, shape_id_t dest_shape_id) +{ + *(uintptr_t *)&ic->value = ((uintptr_t)dest_shape_id << ((8 * 8) - 32)) | (attr_index_t)(index + 1); +} +static inline void +vm_ic_attr_index_initialize(const struct iseq_inline_iv_cache_entry *ic, shape_id_t shape_id) +{ + *(uintptr_t *)&ic->value = (uintptr_t)shape_id << ((8 * 8) - 32); +} +static inline void +vm_cc_method_missing_reason_set(const struct rb_callcache *cc, enum method_missing_reason reason) +{ + ((void)0); + ((void)0); + *(enum method_missing_reason *)&cc->aux_.method_missing_reason = reason; +} +static inline void +vm_cc_invalidate(const struct rb_callcache *cc) +{ + ((void)0); + ((void)0); + ((void)0); + *(VALUE *)&cc->klass = 0; + ((void)0); +} +struct rb_call_data { + const struct rb_callinfo *ci; + const struct rb_callcache *cc; +}; +struct rb_class_cc_entries { + int capa; + int len; + const struct rb_callable_method_entry_struct *cme; + struct rb_class_cc_entries_entry { + const struct rb_callinfo *ci; + const struct rb_callcache *cc; + } *entries; +}; +void rb_vm_ccs_free(struct rb_class_cc_entries *ccs); + +struct RNode; +VALUE ruby_debug_print_value(int level, int debug_level, const char *header, VALUE v); +ID ruby_debug_print_id(int level, int debug_level, const char *header, ID id); +struct RNode *ruby_debug_print_node(int level, int debug_level, const char *header, const struct RNode *node); +int ruby_debug_print_indent(int level, int debug_level, int indent_level); +void ruby_debug_gc_check_func(void); +void ruby_set_debug_option(const char *str); +extern enum ruby_debug_log_mode { + ruby_debug_log_disabled = 0x00, + ruby_debug_log_memory = 0x01, + ruby_debug_log_stderr = 0x02, + ruby_debug_log_file = 0x04, +} ruby_debug_log_mode; +__attribute__((__format__(__printf__, 4, 5))) +void ruby_debug_log(const char *file, int line, const char *func_name, const char *fmt, ...); +void ruby_debug_log_print(unsigned int n); +_Bool ruby_debug_log_filter(const char *func_name, const char *file_name); + +typedef long OFFSET; +typedef unsigned long lindex_t; +typedef VALUE GENTRY; +typedef rb_iseq_t *ISEQ; + +extern VALUE ruby_vm_const_missing_count; +extern rb_serial_t ruby_vm_constant_cache_invalidations; +extern rb_serial_t ruby_vm_constant_cache_misses; +extern rb_serial_t ruby_vm_global_cvar_state; +static inline void +CC_SET_FASTPATH(const struct rb_callcache *cc, vm_call_handler func, _Bool enabled) +{ + if ((__builtin_expect(!!(enabled), 1))) { + vm_cc_call_set(cc, func); + } +} +static inline struct vm_throw_data * +THROW_DATA_NEW(VALUE val, const rb_control_frame_t *cf, int st) +{ + struct vm_throw_data *obj = (struct vm_throw_data *)rb_imemo_new(imemo_throw_data, val, (VALUE)cf, 0, 0); + obj->throw_state = st; + return obj; +} +static inline VALUE +THROW_DATA_VAL(const struct vm_throw_data *obj) +{ + ((void)0); + return obj->throw_obj; +} +static inline const rb_control_frame_t * +THROW_DATA_CATCH_FRAME(const struct vm_throw_data *obj) +{ + ((void)0); + return obj->catch_frame; +} +static inline int +THROW_DATA_STATE(const struct vm_throw_data *obj) +{ + ((void)0); + return obj->throw_state; +} +static inline int +THROW_DATA_CONSUMED_P(const struct vm_throw_data *obj) +{ + ((void)0); + return obj->flags & ((VALUE)RUBY_FL_USER4); +} +static inline void +THROW_DATA_CATCH_FRAME_SET(struct vm_throw_data *obj, const rb_control_frame_t *cfp) +{ + ((void)0); + obj->catch_frame = cfp; +} +static inline void +THROW_DATA_STATE_SET(struct vm_throw_data *obj, int st) +{ + ((void)0); + obj->throw_state = st; +} +static inline void +THROW_DATA_CONSUMED_SET(struct vm_throw_data *obj) +{ + if (imemo_throw_data_p((VALUE)obj) && + THROW_DATA_STATE(obj) == RUBY_TAG_BREAK) { + obj->flags |= ((VALUE)RUBY_FL_USER4); + } +} +static inline _Bool +vm_call_cacheable(const struct rb_callinfo *ci, const struct rb_callcache *cc) +{ + return (vm_ci_flag(ci) & (0x01 << VM_CALL_FCALL_bit)) || + (rb_method_visibility_t)(((vm_cc_cme(cc))->flags & (((VALUE)RUBY_FL_USER4) | ((VALUE)RUBY_FL_USER5))) >> ((((VALUE)RUBY_FL_USHIFT) + 4)+0)) != METHOD_VISI_PROTECTED; +} +static inline _Bool +vm_call_iseq_optimizable_p(const struct rb_callinfo *ci, const struct rb_callcache *cc) +{ + return !(vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_SPLAT_bit)) && !(vm_ci_flag(ci) & (0x01 << VM_CALL_KWARG_bit)) && vm_call_cacheable(ci, cc); +} + + +struct rb_ractor_local_storage_type { + void (*mark)(void *ptr); + void (*free)(void *ptr); +}; +typedef struct rb_ractor_local_key_struct *rb_ractor_local_key_t; +extern VALUE rb_cRactor; +VALUE rb_ractor_stdin(void); +VALUE rb_ractor_stdout(void); +VALUE rb_ractor_stderr(void); +void rb_ractor_stdin_set(VALUE io); +void rb_ractor_stdout_set(VALUE io); +void rb_ractor_stderr_set(VALUE io); +rb_ractor_local_key_t rb_ractor_local_storage_value_newkey(void); +VALUE rb_ractor_local_storage_value(rb_ractor_local_key_t key); +_Bool rb_ractor_local_storage_value_lookup(rb_ractor_local_key_t key, VALUE *val); +void rb_ractor_local_storage_value_set(rb_ractor_local_key_t key, VALUE val); +extern const struct rb_ractor_local_storage_type rb_ractor_local_storage_type_free; +rb_ractor_local_key_t rb_ractor_local_storage_ptr_newkey(const struct rb_ractor_local_storage_type *type); +void *rb_ractor_local_storage_ptr(rb_ractor_local_key_t key); +void rb_ractor_local_storage_ptr_set(rb_ractor_local_key_t key, void *ptr); +VALUE rb_ractor_make_shareable(VALUE obj); +VALUE rb_ractor_make_shareable_copy(VALUE obj); +static inline _Bool +rb_ractor_shareable_p(VALUE obj) +{ + _Bool rb_ractor_shareable_p_continue(VALUE obj); + if (RB_SPECIAL_CONST_P(obj)) { + return 1; + } + else if (RB_FL_TEST_RAW((obj), RUBY_FL_SHAREABLE)) { + return 1; + } + else { + return rb_ractor_shareable_p_continue(obj); + } +} +enum rb_ractor_basket_type { + basket_type_none, + basket_type_ref, + basket_type_copy, + basket_type_move, + basket_type_will, + basket_type_deleted, + basket_type_reserved, +}; +struct rb_ractor_basket { + _Bool exception; + enum rb_ractor_basket_type type; + VALUE v; + VALUE sender; +}; +struct rb_ractor_queue { + struct rb_ractor_basket *baskets; + int start; + int cnt; + int size; + unsigned int serial; + unsigned int reserved_cnt; +}; +struct rb_ractor_waiting_list { + int cnt; + int size; + rb_ractor_t **ractors; +}; +enum rb_ractor_wait_status { + wait_none = 0x00, + wait_receiving = 0x01, + wait_taking = 0x02, + wait_yielding = 0x04, + wait_moving = 0x08, +}; +enum rb_ractor_wakeup_status { + wakeup_none, + wakeup_by_send, + wakeup_by_yield, + wakeup_by_take, + wakeup_by_close, + wakeup_by_interrupt, + wakeup_by_retry, +}; +struct rb_ractor_sync { + rb_nativethread_lock_t lock; + rb_nativethread_cond_t cond; + struct rb_ractor_queue incoming_queue; + struct rb_ractor_waiting_list taking_ractors; + _Bool incoming_port_closed; + _Bool outgoing_port_closed; + struct ractor_wait { + enum rb_ractor_wait_status status; + enum rb_ractor_wakeup_status wakeup_status; + struct rb_ractor_basket yielded_basket; + struct rb_ractor_basket taken_basket; + } wait; +}; +enum ractor_status { + ractor_created, + ractor_running, + ractor_blocking, + ractor_terminated, +}; +struct rb_ractor_struct { + struct rb_ractor_pub pub; + struct rb_ractor_sync sync; + VALUE receiving_mutex; + _Bool yield_atexit; + rb_nativethread_cond_t barrier_wait_cond; + struct { + struct ccan_list_head set; + unsigned int cnt; + unsigned int blocking_cnt; + unsigned int sleeper; + struct rb_thread_sched sched; + rb_execution_context_t *running_ec; + rb_thread_t *main; + } threads; + VALUE thgroup_default; + VALUE name; + VALUE loc; + enum ractor_status status_; + struct ccan_list_node vmlr_node; + st_table *local_storage; + struct rb_id_table *idkey_local_storage; + VALUE r_stdin; + VALUE r_stdout; + VALUE r_stderr; + VALUE verbose; + VALUE debug; + rb_ractor_newobj_cache_t newobj_cache; + struct gc_mark_func_data_struct { + void *data; + void (*mark_func)(VALUE v, void *data); + } *mfd; +}; +static inline VALUE +rb_ractor_self(const rb_ractor_t *r) +{ + return r->pub.self; +} +rb_ractor_t *rb_ractor_main_alloc(void); +void rb_ractor_main_setup(rb_vm_t *vm, rb_ractor_t *main_ractor, rb_thread_t *main_thread); +void rb_ractor_atexit(rb_execution_context_t *ec, VALUE result); +void rb_ractor_atexit_exception(rb_execution_context_t *ec); +void rb_ractor_teardown(rb_execution_context_t *ec); +void rb_ractor_receive_parameters(rb_execution_context_t *ec, rb_ractor_t *g, int len, VALUE *ptr); +void rb_ractor_send_parameters(rb_execution_context_t *ec, rb_ractor_t *g, VALUE args); +VALUE rb_thread_create_ractor(rb_ractor_t *g, VALUE args, VALUE proc); +int rb_ractor_living_thread_num(const rb_ractor_t *); +VALUE rb_ractor_thread_list(rb_ractor_t *r); +_Bool rb_ractor_p(VALUE rv); +void rb_ractor_living_threads_init(rb_ractor_t *r); +void rb_ractor_living_threads_insert(rb_ractor_t *r, rb_thread_t *th); +void rb_ractor_living_threads_remove(rb_ractor_t *r, rb_thread_t *th); +void rb_ractor_blocking_threads_inc(rb_ractor_t *r, const char *file, int line); +void rb_ractor_blocking_threads_dec(rb_ractor_t *r, const char *file, int line); +void rb_ractor_vm_barrier_interrupt_running_thread(rb_ractor_t *r); +void rb_ractor_terminate_interrupt_main_thread(rb_ractor_t *r); +void rb_ractor_terminate_all(void); +_Bool rb_ractor_main_p_(void); +void rb_ractor_finish_marking(void); +void rb_ractor_atfork(rb_vm_t *vm, rb_thread_t *th); +VALUE rb_ractor_ensure_shareable(VALUE obj, VALUE name); +_Bool rb_ractor_shareable_p_continue(VALUE obj); +void rb_ractor_local_storage_delkey(rb_ractor_local_key_t key); +static inline _Bool +rb_ractor_main_p(void) +{ + if (ruby_single_main_ractor) { + return 1; + } + else { + return rb_ractor_main_p_(); + } +} +static inline _Bool +rb_ractor_status_p(rb_ractor_t *r, enum ractor_status status) +{ + return r->status_ == status; +} +static inline void +rb_ractor_sleeper_threads_inc(rb_ractor_t *r) +{ + r->threads.sleeper++; +} +static inline void +rb_ractor_sleeper_threads_dec(rb_ractor_t *r) +{ + r->threads.sleeper--; +} +static inline void +rb_ractor_sleeper_threads_clear(rb_ractor_t *r) +{ + r->threads.sleeper = 0; +} +static inline int +rb_ractor_sleeper_thread_num(rb_ractor_t *r) +{ + return r->threads.sleeper; +} +static inline void +rb_ractor_thread_switch(rb_ractor_t *cr, rb_thread_t *th) +{ + if (cr->threads.running_ec != th->ec) { + if (0) { + ruby_debug_printf("rb_ractor_thread_switch ec:%p->%p\n", + (void *)cr->threads.running_ec, (void *)th->ec); + } + } + else { + return; + } + if (cr->threads.running_ec != th->ec) { + th->running_time_us = 0; + } + cr->threads.running_ec = th->ec; + ((void)0); +} +static inline void +rb_ractor_set_current_ec_(rb_ractor_t *cr, rb_execution_context_t *ec, const char *file, int line) +{ + rb_current_ec_set(ec); + ; + ((void)0); + cr->threads.running_ec = ec; +} +void rb_vm_ractor_blocking_cnt_inc(rb_vm_t *vm, rb_ractor_t *cr, const char *file, int line); +void rb_vm_ractor_blocking_cnt_dec(rb_vm_t *vm, rb_ractor_t *cr, const char *file, int line); +static inline uint32_t +rb_ractor_id(const rb_ractor_t *r) +{ + return r->pub.id; +} + +_Bool rb_vm_locked_p(void); +void rb_vm_lock_body(void); +void rb_vm_unlock_body(void); +struct rb_ractor_struct; +void rb_vm_lock_enter_body_cr(struct rb_ractor_struct *cr, unsigned int *lev ); +void rb_vm_lock_enter_body_nb(unsigned int *lev ); +void rb_vm_lock_enter_body(unsigned int *lev ); +void rb_vm_lock_leave_body(unsigned int *lev ); +void rb_vm_barrier(void); +extern struct rb_ractor_struct *ruby_single_main_ractor; +static inline _Bool +rb_multi_ractor_p(void) +{ + if ((__builtin_expect(!!(ruby_single_main_ractor), 1))) { + ((void)0); + return 0; + } + else { + return 1; + } +} +static inline void +rb_vm_lock(const char *file, int line) +{ + ((void)0); + if (rb_multi_ractor_p()) { + rb_vm_lock_body(); + } +} +static inline void +rb_vm_unlock(const char *file, int line) +{ + if (rb_multi_ractor_p()) { + rb_vm_unlock_body(); + } +} +static inline void +rb_vm_lock_enter(unsigned int *lev, const char *file, int line) +{ + ((void)0); + if (rb_multi_ractor_p()) { + rb_vm_lock_enter_body(lev ); + } +} +static inline void +rb_vm_lock_enter_nb(unsigned int *lev, const char *file, int line) +{ + ((void)0); + if (rb_multi_ractor_p()) { + rb_vm_lock_enter_body_nb(lev ); + } +} +static inline void +rb_vm_lock_leave(unsigned int *lev, const char *file, int line) +{ + if (rb_multi_ractor_p()) { + rb_vm_lock_leave_body(lev ); + } +} +static inline void +rb_vm_lock_enter_cr(struct rb_ractor_struct *cr, unsigned int *levp, const char *file, int line) +{ + ((void)0); + rb_vm_lock_enter_body_cr(cr, levp ); +} +static inline void +rb_vm_lock_leave_cr(struct rb_ractor_struct *cr, unsigned int *levp, const char *file, int line) +{ + rb_vm_lock_leave_body(levp ); +} + + +struct rb_builtin_function { + const void * const func_ptr; + const int argc; + const int index; + const char * const name; + void (*compiler)(VALUE, long, unsigned, _Bool); +}; +void rb_load_with_builtin_functions(const char *feature_name, const struct rb_builtin_function *table); +typedef VALUE (*rb_builtin_arity0_function_type)(rb_execution_context_t *ec, VALUE self); +typedef VALUE (*rb_builtin_arity1_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE); +typedef VALUE (*rb_builtin_arity2_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE); +typedef VALUE (*rb_builtin_arity3_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity4_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity5_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity6_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity7_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity8_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity9_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity10_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity11_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity12_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity13_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity14_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity15_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +static inline void rb_builtin_function_check_arity0(rb_builtin_arity0_function_type f){} +static inline void rb_builtin_function_check_arity1(rb_builtin_arity1_function_type f){} +static inline void rb_builtin_function_check_arity2(rb_builtin_arity2_function_type f){} +static inline void rb_builtin_function_check_arity3(rb_builtin_arity3_function_type f){} +static inline void rb_builtin_function_check_arity4(rb_builtin_arity4_function_type f){} +static inline void rb_builtin_function_check_arity5(rb_builtin_arity5_function_type f){} +static inline void rb_builtin_function_check_arity6(rb_builtin_arity6_function_type f){} +static inline void rb_builtin_function_check_arity7(rb_builtin_arity7_function_type f){} +static inline void rb_builtin_function_check_arity8(rb_builtin_arity8_function_type f){} +static inline void rb_builtin_function_check_arity9(rb_builtin_arity9_function_type f){} +static inline void rb_builtin_function_check_arity10(rb_builtin_arity10_function_type f){} +static inline void rb_builtin_function_check_arity11(rb_builtin_arity11_function_type f){} +static inline void rb_builtin_function_check_arity12(rb_builtin_arity12_function_type f){} +static inline void rb_builtin_function_check_arity13(rb_builtin_arity13_function_type f){} +static inline void rb_builtin_function_check_arity14(rb_builtin_arity14_function_type f){} +static inline void rb_builtin_function_check_arity15(rb_builtin_arity15_function_type f){}static inline +__attribute__((__pure__)) VALUE rb_vm_lvar_exposed(rb_execution_context_t *ec, int index);static inline +VALUE rb_vm_lvar_exposed(rb_execution_context_t *ec, int index); +__attribute__((__pure__)) static inline VALUE rb_vm_lvar(rb_execution_context_t *ec, int index); +static inline VALUE +rb_vm_lvar(rb_execution_context_t *ec, int index) +{ + return ec->cfp->ep[index]; +} +struct builtin_binary { + const char *feature; + const unsigned char *bin; + size_t bin_size; +}; + + +struct ruby_dtrace_method_hook_args { + const char *classname; + const char *methodname; + const char *filename; + int line_no; + volatile VALUE klass; + volatile VALUE name; +}; +__declspec(noinline) int rb_dtrace_setup(rb_execution_context_t *, VALUE, ID, struct ruby_dtrace_method_hook_args *); +VALUE rb_str_concat_literals(size_t, const VALUE*); +__attribute__ ((__visibility__("default"))) extern +VALUE rb_vm_exec(rb_execution_context_t *, _Bool); +extern const char *const rb_debug_counter_names[]; +__attribute__((__pure__)) static inline const VALUE *VM_EP_LEP(const VALUE *); +static inline const VALUE * +VM_EP_LEP(const VALUE *ep) +{ + while (!VM_ENV_LOCAL_P(ep)) { + ep = VM_ENV_PREV_EP(ep); + } + return ep; +} +static inline const rb_control_frame_t * +rb_vm_search_cf_from_ep(const rb_execution_context_t *ec, const rb_control_frame_t *cfp, const VALUE * const ep) +{ + if (!ep) { + return ((void*)0); + } + else { + const rb_control_frame_t * const eocfp = RUBY_VM_END_CONTROL_FRAME(ec); + while (cfp < eocfp) { + if (cfp->ep == ep) { + return cfp; + } + cfp = ((cfp)+1); + } + return ((void*)0); + } +}static inline +const VALUE * +rb_vm_ep_local_ep(const VALUE *ep) +{ + return VM_EP_LEP(ep); +} +__attribute__((__pure__)) static inline const VALUE *VM_CF_LEP(const rb_control_frame_t * const cfp); +static inline const VALUE * +VM_CF_LEP(const rb_control_frame_t * const cfp) +{ + return VM_EP_LEP(cfp->ep); +} +static inline const VALUE * +VM_CF_PREV_EP(const rb_control_frame_t * const cfp) +{ + return VM_ENV_PREV_EP(cfp->ep); +} +__attribute__((__pure__)) static inline VALUE VM_CF_BLOCK_HANDLER(const rb_control_frame_t * const cfp); +static inline VALUE +VM_CF_BLOCK_HANDLER(const rb_control_frame_t * const cfp) +{ + const VALUE *ep = VM_CF_LEP(cfp); + return VM_ENV_BLOCK_HANDLER(ep); +}static inline +int +rb_vm_cframe_keyword_p(const rb_control_frame_t *cfp) +{ + return VM_FRAME_CFRAME_KW_P(cfp); +}static inline +VALUE +rb_vm_frame_block_handler(const rb_control_frame_t *cfp) +{ + return VM_CF_BLOCK_HANDLER(cfp); +} +static struct rb_captured_block * +VM_CFP_TO_CAPTURED_BLOCK(const rb_control_frame_t *cfp) +{ + ((void)0); + return (struct rb_captured_block *)&cfp->self; +} +static rb_control_frame_t * +VM_CAPTURED_BLOCK_TO_CFP(const struct rb_captured_block *captured) +{ + rb_control_frame_t *cfp = ((rb_control_frame_t *)((VALUE *)(captured) - 3)); + ((void)0); + ((void)0); + return cfp; +} +static int +VM_BH_FROM_CFP_P(VALUE block_handler, const rb_control_frame_t *cfp) +{ + const struct rb_captured_block *captured = VM_CFP_TO_CAPTURED_BLOCK(cfp); + return ((void *)((block_handler) & ~0x03)) == captured; +} +static VALUE +vm_passed_block_handler(rb_execution_context_t *ec) +{ + VALUE block_handler = ec->passed_block_handler; + ec->passed_block_handler = 0; + vm_block_handler_verify(block_handler); + return block_handler; +} +static rb_cref_t * +vm_cref_new0(VALUE klass, rb_method_visibility_t visi, int module_func, rb_cref_t *prev_cref, int pushed_by_eval, int use_prev_prev, int singleton) +{ + VALUE refinements = ((VALUE)RUBY_Qnil); + int omod_shared = 0; + rb_cref_t *cref; + union { + rb_scope_visibility_t visi; + VALUE value; + } scope_visi; + scope_visi.visi.method_visi = visi; + scope_visi.visi.module_func = module_func; + if (prev_cref != ((void*)0) && prev_cref != (void *)1 ) { + refinements = CREF_REFINEMENTS(prev_cref); + if (!RB_NIL_P(refinements)) { + omod_shared = 1; + CREF_OMOD_SHARED_SET(prev_cref); + } + } + ((void)0); + cref = (rb_cref_t *)rb_imemo_new(imemo_cref, klass, (VALUE)(use_prev_prev ? CREF_NEXT(prev_cref) : prev_cref), scope_visi.value, refinements); + if (pushed_by_eval) CREF_PUSHED_BY_EVAL_SET(cref); + if (omod_shared) CREF_OMOD_SHARED_SET(cref); + if (singleton) CREF_SINGLETON_SET(cref); + return cref; +} +static rb_cref_t * +vm_cref_new(VALUE klass, rb_method_visibility_t visi, int module_func, rb_cref_t *prev_cref, int pushed_by_eval, int singleton) +{ + return vm_cref_new0(klass, visi, module_func, prev_cref, pushed_by_eval, 0, singleton); +} +static rb_cref_t * +vm_cref_new_use_prev(VALUE klass, rb_method_visibility_t visi, int module_func, rb_cref_t *prev_cref, int pushed_by_eval) +{ + return vm_cref_new0(klass, visi, module_func, prev_cref, pushed_by_eval, 1, 0); +} +static int +ref_delete_symkey(VALUE key, VALUE value, VALUE unused) +{ + return RB_SYMBOL_P(key) ? ST_DELETE : ST_CONTINUE; +} +static rb_cref_t * +vm_cref_dup(const rb_cref_t *cref) +{ + const rb_scope_visibility_t *visi = CREF_SCOPE_VISI(cref); + rb_cref_t *next_cref = CREF_NEXT(cref), *new_cref; + int pushed_by_eval = CREF_PUSHED_BY_EVAL(cref); + int singleton = CREF_SINGLETON(cref); + new_cref = vm_cref_new(cref->klass_or_self, visi->method_visi, visi->module_func, next_cref, pushed_by_eval, singleton); + if (!RB_NIL_P(CREF_REFINEMENTS(cref))) { + VALUE ref = rb_hash_dup(CREF_REFINEMENTS(cref)); + rb_hash_foreach(ref, ref_delete_symkey, ((VALUE)RUBY_Qnil)); + CREF_REFINEMENTS_SET(new_cref, ref); + CREF_OMOD_SHARED_UNSET(new_cref); + } + return new_cref; +}static inline +rb_cref_t * +rb_vm_cref_dup_without_refinements(const rb_cref_t *cref) +{ + const rb_scope_visibility_t *visi = CREF_SCOPE_VISI(cref); + rb_cref_t *next_cref = CREF_NEXT(cref), *new_cref; + int pushed_by_eval = CREF_PUSHED_BY_EVAL(cref); + int singleton = CREF_SINGLETON(cref); + new_cref = vm_cref_new(cref->klass_or_self, visi->method_visi, visi->module_func, next_cref, pushed_by_eval, singleton); + if (!RB_NIL_P(CREF_REFINEMENTS(cref))) { + CREF_REFINEMENTS_SET(new_cref, ((VALUE)RUBY_Qnil)); + CREF_OMOD_SHARED_UNSET(new_cref); + } + return new_cref; +} +static rb_cref_t * +vm_cref_new_toplevel(rb_execution_context_t *ec) +{ + rb_cref_t *cref = vm_cref_new(rb_cObject, METHOD_VISI_PRIVATE , 0, ((void*)0), 0, 0); + VALUE top_wrapper = rb_ec_thread_ptr(ec)->top_wrapper; + if (top_wrapper) { + cref = vm_cref_new(top_wrapper, METHOD_VISI_PRIVATE, 0, cref, 0, 0); + } + return cref; +}static inline +rb_cref_t * +rb_vm_cref_new_toplevel(void) +{ + return vm_cref_new_toplevel(rb_current_execution_context(1)); +} +static void +vm_cref_dump(const char *mesg, const rb_cref_t *cref) +{ + ruby_debug_printf("vm_cref_dump: %s (%p)\n", mesg, (void *)cref); + while (cref) { + ruby_debug_printf("= cref| klass: %s\n", RSTRING_PTR(rb_class_path(CREF_CLASS(cref)))); + cref = CREF_NEXT(cref); + } +}static inline +void +rb_vm_block_ep_update(VALUE obj, const struct rb_block *dst, const VALUE *ep) +{ + *((const VALUE **)&dst->as.captured.ep) = ep; + (rb_obj_written((VALUE)(obj), (VALUE)(((VALUE)RUBY_Qundef)), (VALUE)(VM_ENV_ENVVAL(ep)), "./vm.c", 360)); +} +static void +vm_bind_update_env(VALUE bindval, rb_binding_t *bind, VALUE envval) +{ + const rb_env_t *env = (rb_env_t *)envval; + rb_obj_write((VALUE)(bindval), __extension__({ + ; + ; __typeof__((VALUE *)(&bind->block.as.captured.code.iseq)) unaligned_member_access_result = ((VALUE *)(&bind->block.as.captured.code.iseq)); + ; unaligned_member_access_result; }), (VALUE)(env->iseq), "./vm.c", 367); + rb_vm_block_ep_update(bindval, &bind->block, env->ep); +} +static VALUE vm_make_env_object(const rb_execution_context_t *ec, rb_control_frame_t *cfp); +extern VALUE rb_vm_invoke_bmethod(rb_execution_context_t *ec, rb_proc_t *proc, VALUE self, + int argc, const VALUE *argv, int kw_splat, VALUE block_handler, + const rb_callable_method_entry_t *me); +static VALUE vm_invoke_proc(rb_execution_context_t *ec, rb_proc_t *proc, VALUE self, int argc, const VALUE *argv, int kw_splat, VALUE block_handler); +__declspec(noinline) static __attribute__((__cold__)) VALUE mjit_check_iseq(rb_execution_context_t *ec, const rb_iseq_t *iseq, struct rb_iseq_constant_body *body); +static VALUE +mjit_check_iseq(rb_execution_context_t *ec, const rb_iseq_t *iseq, struct rb_iseq_constant_body *body) +{ + uintptr_t mjit_state = (uintptr_t)(body->jit_func); + __builtin_assume(((uintptr_t)(mjit_state) <= (uintptr_t)MJIT_FUNC_FAILED)); + switch ((enum rb_mjit_func_state)mjit_state) { + case MJIT_FUNC_NOT_COMPILED: + if (body->total_calls == mjit_opts.call_threshold) { + rb_mjit_add_iseq_to_process(iseq); + if ((__builtin_expect(!!(mjit_opts.wait && !((uintptr_t)(body->jit_func) <= (uintptr_t)MJIT_FUNC_FAILED)), 0))) { + return body->jit_func(ec, ec->cfp); + } + } + break; + case MJIT_FUNC_COMPILING: + case MJIT_FUNC_FAILED: + break; + } + return ((VALUE)RUBY_Qundef); +} +static inline VALUE +jit_exec(rb_execution_context_t *ec) +{ + const rb_iseq_t *iseq = ec->cfp->iseq; + struct rb_iseq_constant_body *body = ((iseq)->body); + _Bool yjit_enabled = rb_yjit_enabled_p(); + if (yjit_enabled || mjit_call_p) { + body->total_calls++; + } + else { + return ((VALUE)RUBY_Qundef); + } + jit_func_t func; + if (yjit_enabled) { + if (body->total_calls == rb_yjit_call_threshold()) { + if (!rb_yjit_compile_iseq(iseq, ec)) { + return ((VALUE)RUBY_Qundef); + } + } + if ((func = body->jit_func) == 0) { + return ((VALUE)RUBY_Qundef); + } + } + else if ((__builtin_expect(!!(((uintptr_t)(func = body->jit_func) <= (uintptr_t)MJIT_FUNC_FAILED)), 0))) { + return mjit_check_iseq(ec, iseq, body); + } + return func(ec, ec->cfp); +} + +VALUE rb_invcmp(VALUE, VALUE); + +struct ar_table_struct; +typedef unsigned char ar_hint_t; +enum ruby_rhash_flags { + RHASH_PASS_AS_KEYWORDS = ((VALUE)RUBY_FL_USER1), + RHASH_PROC_DEFAULT = ((VALUE)RUBY_FL_USER2), + RHASH_ST_TABLE_FLAG = ((VALUE)RUBY_FL_USER3), + RHASH_AR_TABLE_SIZE_MASK = (((VALUE)RUBY_FL_USER4)|((VALUE)RUBY_FL_USER5)|((VALUE)RUBY_FL_USER6)|((VALUE)RUBY_FL_USER7)), + RHASH_AR_TABLE_SIZE_SHIFT = (((VALUE)RUBY_FL_USHIFT)+4), + RHASH_AR_TABLE_BOUND_MASK = (((VALUE)RUBY_FL_USER8)|((VALUE)RUBY_FL_USER9)|((VALUE)RUBY_FL_USER10)|((VALUE)RUBY_FL_USER11)), + RHASH_AR_TABLE_BOUND_SHIFT = (((VALUE)RUBY_FL_USHIFT)+8), + RHASH_TRANSIENT_FLAG = ((VALUE)RUBY_FL_USER12), + RHASH_LEV_SHIFT = (((VALUE)RUBY_FL_USHIFT) + 13), + RHASH_LEV_MAX = 127, +}; +struct RHash { + struct RBasic basic; + union { + st_table *st; + struct ar_table_struct *ar; + } as; + const VALUE ifnone; + union { + ar_hint_t ary[8]; + VALUE word; + } ar_hint; +}; +void rb_hash_st_table_set(VALUE hash, st_table *st); +VALUE rb_hash_default_value(VALUE hash, VALUE key); +VALUE rb_hash_set_default_proc(VALUE hash, VALUE proc); +long rb_dbl_long_hash(double d); +st_table *rb_init_identtable(void); +VALUE rb_to_hash_type(VALUE obj); +VALUE rb_hash_key_str(VALUE); +VALUE rb_hash_values(VALUE hash); +VALUE rb_hash_rehash(VALUE hash); +int rb_hash_add_new_element(VALUE hash, VALUE key, VALUE val); +VALUE rb_hash_set_pair(VALUE hash, VALUE pair); +int rb_hash_stlike_delete(VALUE hash, st_data_t *pkey, st_data_t *pval); +int rb_hash_stlike_foreach_with_replace(VALUE hash, st_foreach_check_callback_func *func, st_update_callback_func *replace, st_data_t arg); +int rb_hash_stlike_update(VALUE hash, st_data_t key, st_update_callback_func *func, st_data_t arg); +extern st_table *rb_hash_st_table(VALUE hash); +VALUE rb_ident_hash_new_with_size(st_index_t size); +static inline unsigned RHASH_AR_TABLE_SIZE_RAW(VALUE h); +static inline VALUE RHASH_IFNONE(VALUE h); +static inline size_t RHASH_SIZE(VALUE h); +static inline _Bool RHASH_EMPTY_P(VALUE h); +static inline _Bool RHASH_AR_TABLE_P(VALUE h); +static inline _Bool RHASH_ST_TABLE_P(VALUE h); +static inline struct ar_table_struct *RHASH_AR_TABLE(VALUE h); +static inline st_table *RHASH_ST_TABLE(VALUE h); +static inline size_t RHASH_ST_SIZE(VALUE h); +static inline void RHASH_ST_CLEAR(VALUE h); +static inline _Bool RHASH_TRANSIENT_P(VALUE h); +static inline void RHASH_SET_TRANSIENT_FLAG(VALUE h); +static inline void RHASH_UNSET_TRANSIENT_FLAG(VALUE h); +VALUE rb_hash_delete_entry(VALUE hash, VALUE key); +VALUE rb_ident_hash_new(void); +int rb_hash_stlike_foreach(VALUE hash, st_foreach_callback_func *func, st_data_t arg); +VALUE rb_hash_new_with_size(st_index_t size); +VALUE rb_hash_resurrect(VALUE hash); +int rb_hash_stlike_lookup(VALUE hash, st_data_t key, st_data_t *pval); +VALUE rb_hash_keys(VALUE hash); +VALUE rb_hash_has_key(VALUE hash, VALUE key); +VALUE rb_hash_compare_by_id_p(VALUE hash); +st_table *rb_hash_tbl_raw(VALUE hash, const char *file, int line); +VALUE rb_hash_compare_by_id(VALUE hash); +static inline _Bool +RHASH_AR_TABLE_P(VALUE h) +{ + return ! RB_FL_TEST_RAW(h, RHASH_ST_TABLE_FLAG); +} +static inline struct ar_table_struct * +RHASH_AR_TABLE(VALUE h) +{ + return ((struct RHash *)(h))->as.ar; +} +static inline st_table * +RHASH_ST_TABLE(VALUE h) +{ + return ((struct RHash *)(h))->as.st; +} +static inline VALUE +RHASH_IFNONE(VALUE h) +{ + return ((struct RHash *)(h))->ifnone; +} +static inline size_t +RHASH_SIZE(VALUE h) +{ + if (RHASH_AR_TABLE_P(h)) { + return RHASH_AR_TABLE_SIZE_RAW(h); + } + else { + return RHASH_ST_SIZE(h); + } +} +static inline _Bool +RHASH_EMPTY_P(VALUE h) +{ + return RHASH_SIZE(h) == 0; +} +static inline _Bool +RHASH_ST_TABLE_P(VALUE h) +{ + return ! RHASH_AR_TABLE_P(h); +} +static inline size_t +RHASH_ST_SIZE(VALUE h) +{ + return RHASH_ST_TABLE(h)->num_entries; +} +static inline void +RHASH_ST_CLEAR(VALUE h) +{ + RB_FL_UNSET_RAW(h, RHASH_ST_TABLE_FLAG); + ((struct RHash *)(h))->as.ar = ((void*)0); +} +static inline unsigned +RHASH_AR_TABLE_SIZE_RAW(VALUE h) +{ + VALUE ret = RB_FL_TEST_RAW(h, RHASH_AR_TABLE_SIZE_MASK); + ret >>= RHASH_AR_TABLE_SIZE_SHIFT; + return (unsigned)ret; +} +static inline _Bool +RHASH_TRANSIENT_P(VALUE h) +{ + return RB_FL_TEST_RAW(h, RHASH_TRANSIENT_FLAG); +} +static inline void +RHASH_SET_TRANSIENT_FLAG(VALUE h) +{ + RB_FL_SET_RAW(h, RHASH_TRANSIENT_FLAG); +} +static inline void +RHASH_UNSET_TRANSIENT_FLAG(VALUE h) +{ + RB_FL_UNSET_RAW(h, RHASH_TRANSIENT_FLAG); +} + + +enum rb_int_parse_flags { + RB_INT_PARSE_SIGN = 0x01, + RB_INT_PARSE_UNDERSCORE = 0x02, + RB_INT_PARSE_PREFIX = 0x04, + RB_INT_PARSE_ALL = 0x07, + RB_INT_PARSE_DEFAULT = 0x07, +}; +struct RBignum { + struct RBasic basic; + union { + struct { + size_t len; + unsigned int *digits; + } heap; + unsigned int ary[(8*3/4)]; + } as; +}; +extern const char ruby_digitmap[]; +double rb_big_fdiv_double(VALUE x, VALUE y); +VALUE rb_big_uminus(VALUE x); +VALUE rb_big_hash(VALUE); +VALUE rb_big_odd_p(VALUE); +VALUE rb_big_even_p(VALUE); +size_t rb_big_size(VALUE); +VALUE rb_integer_float_cmp(VALUE x, VALUE y); +VALUE rb_integer_float_eq(VALUE x, VALUE y); +VALUE rb_str_convert_to_inum(VALUE str, int base, int badcheck, int raise_exception); +VALUE rb_big_comp(VALUE x); +VALUE rb_big_aref(VALUE x, VALUE y); +VALUE rb_big_abs(VALUE x); +VALUE rb_big_size_m(VALUE big); +VALUE rb_big_bit_length(VALUE big); +VALUE rb_big_remainder(VALUE x, VALUE y); +VALUE rb_big_gt(VALUE x, VALUE y); +VALUE rb_big_ge(VALUE x, VALUE y); +VALUE rb_big_lt(VALUE x, VALUE y); +VALUE rb_big_le(VALUE x, VALUE y); +VALUE rb_int_powm(int const argc, VALUE * const argv, VALUE const num); +VALUE rb_big_isqrt(VALUE n); +static inline _Bool BIGNUM_SIGN(VALUE b); +static inline _Bool BIGNUM_POSITIVE_P(VALUE b); +static inline _Bool BIGNUM_NEGATIVE_P(VALUE b); +static inline void BIGNUM_SET_SIGN(VALUE b, _Bool sign); +static inline void BIGNUM_NEGATE(VALUE b); +static inline size_t BIGNUM_LEN(VALUE b); +static inline unsigned int *BIGNUM_DIGITS(VALUE b); +static inline int BIGNUM_LENINT(VALUE b); +static inline _Bool BIGNUM_EMBED_P(VALUE b); +VALUE rb_big_mul_normal(VALUE x, VALUE y); +VALUE rb_big_mul_balance(VALUE x, VALUE y); +VALUE rb_big_mul_karatsuba(VALUE x, VALUE y); +VALUE rb_big_mul_toom3(VALUE x, VALUE y); +VALUE rb_big_sq_fast(VALUE x); +VALUE rb_big_divrem_normal(VALUE x, VALUE y); +VALUE rb_big2str_poweroftwo(VALUE x, int base); +VALUE rb_big2str_generic(VALUE x, int base); +VALUE rb_str2big_poweroftwo(VALUE arg, int base, int badcheck); +VALUE rb_str2big_normal(VALUE arg, int base, int badcheck); +VALUE rb_str2big_karatsuba(VALUE arg, int base, int badcheck); +VALUE rb_int_parse_cstr(const char *str, ssize_t len, char **endp, size_t *ndigits, int base, int flags); +VALUE rb_int128t2big(__int128 n); +static inline _Bool +BIGNUM_SIGN(VALUE b) +{ + return RB_FL_TEST_RAW(b, ((VALUE)RUBY_FL_USER1)); +} +static inline _Bool +BIGNUM_POSITIVE_P(VALUE b) +{ + return BIGNUM_SIGN(b); +} +static inline _Bool +BIGNUM_NEGATIVE_P(VALUE b) +{ + return ! BIGNUM_POSITIVE_P(b); +} +static inline void +BIGNUM_SET_SIGN(VALUE b, _Bool sign) +{ + if (sign) { + RB_FL_SET_RAW(b, ((VALUE)RUBY_FL_USER1)); + } + else { + RB_FL_UNSET_RAW(b, ((VALUE)RUBY_FL_USER1)); + } +} +static inline void +BIGNUM_NEGATE(VALUE b) +{ + RB_FL_REVERSE_RAW(b, ((VALUE)RUBY_FL_USER1)); +} +static inline size_t +BIGNUM_LEN(VALUE b) +{ + if (! BIGNUM_EMBED_P(b)) { + return ((struct RBignum *)(b))->as.heap.len; + } + else { + size_t ret = ((struct RBasic *)(b))->flags; + ret &= (~(~(VALUE)0U << 3) << (((VALUE)RUBY_FL_USHIFT)+3)); + ret >>= (((VALUE)RUBY_FL_USHIFT)+3); + return ret; + } +} +static inline int +BIGNUM_LENINT(VALUE b) +{ + return rb_long2int_inline(BIGNUM_LEN(b)); +} +static inline unsigned int * +BIGNUM_DIGITS(VALUE b) +{ + if (BIGNUM_EMBED_P(b)) { + return ((struct RBignum *)(b))->as.ary; + } + else { + return ((struct RBignum *)(b))->as.heap.digits; + } +} +static inline _Bool +BIGNUM_EMBED_P(VALUE b) +{ + return RB_FL_TEST_RAW(b, ((VALUE)((VALUE)RUBY_FL_USER2))); +} + +static inline uint16_t ruby_swap16(uint16_t); +static inline uint32_t ruby_swap32(uint32_t); +static inline uint64_t ruby_swap64(uint64_t); +static inline unsigned nlz_int(unsigned x); +static inline unsigned nlz_long(unsigned long x); +static inline unsigned nlz_long_long(unsigned long long x); +static inline unsigned nlz_intptr(uintptr_t x); +static inline unsigned nlz_int32(uint32_t x); +static inline unsigned nlz_int64(uint64_t x); +static inline unsigned nlz_int128(unsigned __int128 x); +static inline unsigned rb_popcount32(uint32_t x); +static inline unsigned rb_popcount64(uint64_t x); +static inline unsigned rb_popcount_intptr(uintptr_t x); +static inline int ntz_int32(uint32_t x); +static inline int ntz_int64(uint64_t x); +static inline int ntz_intptr(uintptr_t x); +static inline VALUE RUBY_BIT_ROTL(VALUE, int); +static inline VALUE RUBY_BIT_ROTR(VALUE, int); +static inline uint16_t +ruby_swap16(uint16_t x) +{ + return __builtin_bswap16(x); +} +static inline uint32_t +ruby_swap32(uint32_t x) +{ + return __builtin_bswap32(x); +} +static inline uint64_t +ruby_swap64(uint64_t x) +{ + return __builtin_bswap64(x); +} +static inline unsigned int +nlz_int32(uint32_t x) +{ + __extension__ _Static_assert(sizeof(int) * 8 == 32, "sizeof_int" ": " "sizeof(int) * CHAR_BIT == 32"); + return x ? (unsigned int)__builtin_clz(x) : 32; +} +static inline unsigned int +nlz_int64(uint64_t x) +{ + if (x == 0) { + return 64; + } + else if (sizeof(long) * 8 == 64) { + return (unsigned int)__builtin_clzl((unsigned long)x); + } + else if (sizeof(long long) * 8 == 64) { + return (unsigned int)__builtin_clzll((unsigned long long)x); + } + else { + __builtin_unreachable(); + } +} +static inline unsigned int +nlz_int128(unsigned __int128 x) +{ + uint64_t y = (uint64_t)(x >> 64); + if (x == 0) { + return 128; + } + else if (y == 0) { + return (unsigned int)nlz_int64(x) + 64; + } + else { + return (unsigned int)nlz_int64(y); + } +} +static inline unsigned int +nlz_int(unsigned int x) +{ + if (sizeof(unsigned int) * 8 == 32) { + return nlz_int32((uint32_t)x); + } + else if (sizeof(unsigned int) * 8 == 64) { + return nlz_int64((uint64_t)x); + } + else { + __builtin_unreachable(); + } +} +static inline unsigned int +nlz_long(unsigned long x) +{ + if (sizeof(unsigned long) * 8 == 32) { + return nlz_int32((uint32_t)x); + } + else if (sizeof(unsigned long) * 8 == 64) { + return nlz_int64((uint64_t)x); + } + else { + __builtin_unreachable(); + } +} +static inline unsigned int +nlz_long_long(unsigned long long x) +{ + if (sizeof(unsigned long long) * 8 == 64) { + return nlz_int64((uint64_t)x); + } + else if (sizeof(unsigned long long) * 8 == 128) { + return nlz_int128((unsigned __int128)x); + } + else { + __builtin_unreachable(); + } +} +static inline unsigned int +nlz_intptr(uintptr_t x) +{ + if (sizeof(uintptr_t) == sizeof(unsigned int)) { + return nlz_int((unsigned int)x); + } + if (sizeof(uintptr_t) == sizeof(unsigned long)) { + return nlz_long((unsigned long)x); + } + if (sizeof(uintptr_t) == sizeof(unsigned long long)) { + return nlz_long_long((unsigned long long)x); + } + else { + __builtin_unreachable(); + } +} +static inline unsigned int +rb_popcount32(uint32_t x) +{ + __extension__ _Static_assert(sizeof(int) * 8 >= 32, "sizeof_int" ": " "sizeof(int) * CHAR_BIT >= 32"); + return (unsigned int)__builtin_popcount(x); +} +static inline unsigned int +rb_popcount64(uint64_t x) +{ + if (sizeof(long) * 8 == 64) { + return (unsigned int)__builtin_popcountl((unsigned long)x); + } + else if (sizeof(long long) * 8 == 64) { + return (unsigned int)__builtin_popcountll((unsigned long long)x); + } + else { + __builtin_unreachable(); + } +} +static inline unsigned int +rb_popcount_intptr(uintptr_t x) +{ + if (sizeof(uintptr_t) * 8 == 64) { + return rb_popcount64((uint64_t)x); + } + else if (sizeof(uintptr_t) * 8 == 32) { + return rb_popcount32((uint32_t)x); + } + else { + __builtin_unreachable(); + } +} +static inline int +ntz_int32(uint32_t x) +{ + __extension__ _Static_assert(sizeof(int) * 8 == 32, "sizeof_int" ": " "sizeof(int) * CHAR_BIT == 32"); + return x ? (unsigned)__builtin_ctz(x) : 32; +} +static inline int +ntz_int64(uint64_t x) +{ + if (x == 0) { + return 64; + } + else if (sizeof(long) * 8 == 64) { + return (unsigned)__builtin_ctzl((unsigned long)x); + } + else if (sizeof(long long) * 8 == 64) { + return (unsigned)__builtin_ctzll((unsigned long long)x); + } + else { + __builtin_unreachable(); + } +} +static inline int +ntz_intptr(uintptr_t x) +{ + if (sizeof(uintptr_t) * 8 == 64) { + return ntz_int64((uint64_t)x); + } + else if (sizeof(uintptr_t) * 8 == 32) { + return ntz_int32((uint32_t)x); + } + else { + __builtin_unreachable(); + } +} +static inline VALUE +RUBY_BIT_ROTL(VALUE v, int n) +{ + return __builtin_rotateleft64(v, n); +} +static inline VALUE +RUBY_BIT_ROTR(VALUE v, int n) +{ + return __builtin_rotateright64(v, n); +} + +VALUE rb_int128t2big(__int128 n); +static inline long rb_overflowed_fix_to_int(long x); +static inline VALUE rb_fix_plus_fix(VALUE x, VALUE y); +static inline VALUE rb_fix_minus_fix(VALUE x, VALUE y); +static inline VALUE rb_fix_mul_fix(VALUE x, VALUE y); +static inline void rb_fix_divmod_fix(VALUE x, VALUE y, VALUE *divp, VALUE *modp); +static inline VALUE rb_fix_div_fix(VALUE x, VALUE y); +static inline VALUE rb_fix_mod_fix(VALUE x, VALUE y); +static inline _Bool FIXNUM_POSITIVE_P(VALUE num); +static inline _Bool FIXNUM_NEGATIVE_P(VALUE num); +static inline _Bool FIXNUM_ZERO_P(VALUE num); +static inline long +rb_overflowed_fix_to_int(long x) +{ + return (long)((unsigned long)(x >> 1) ^ (1LU << (8 * 8 - 1))); +} +static inline VALUE +rb_fix_plus_fix(VALUE x, VALUE y) +{ + long lz; + if (__builtin_add_overflow((long)x, (long)y-1, &lz)) { + return rb_int2big(rb_overflowed_fix_to_int(lz)); + } + else { + return (VALUE)lz; + } +} +static inline VALUE +rb_fix_minus_fix(VALUE x, VALUE y) +{ + long lz; + if (__builtin_sub_overflow((long)x, (long)y-1, &lz)) { + return rb_int2big(rb_overflowed_fix_to_int(lz)); + } + else { + return (VALUE)lz; + } +} +static inline VALUE +rb_fix_mul_fix(VALUE x, VALUE y) +{ + long lx = rb_fix2long(x); + long ly = rb_fix2long(y); + return (((((__int128)lx * (__int128)ly) < (9223372036854775807L / 2) + 1) && (((__int128)lx * (__int128)ly) >= ((-9223372036854775807L -1L) / 2))) ? RB_INT2FIX((__int128)lx * (__int128)ly) : rb_int128t2big((__int128)lx * (__int128)ly)); +} +static inline void +rb_fix_divmod_fix(VALUE a, VALUE b, VALUE *divp, VALUE *modp) +{ + long x = rb_fix2long(a); + long y = rb_fix2long(b); + long div, mod; + if (x == ((-9223372036854775807L -1L) / 2) && y == -1) { + if (divp) *divp = rb_long2num_inline(-((-9223372036854775807L -1L) / 2)); + if (modp) *modp = RB_INT2FIX(0); + return; + } + div = x / y; + mod = x % y; + if (y > 0 ? mod < 0 : mod > 0) { + mod += y; + div -= 1; + } + if (divp) *divp = RB_INT2FIX(div); + if (modp) *modp = RB_INT2FIX(mod); +} +static inline VALUE +rb_fix_div_fix(VALUE x, VALUE y) +{ + VALUE div; + rb_fix_divmod_fix(x, y, &div, ((void*)0)); + return div; +} +static inline VALUE +rb_fix_mod_fix(VALUE x, VALUE y) +{ + VALUE mod; + rb_fix_divmod_fix(x, y, ((void*)0), &mod); + return mod; +} +static inline _Bool +FIXNUM_POSITIVE_P(VALUE num) +{ + return (long)num > (long)__builtin_choose_expr( __builtin_constant_p(0), ((VALUE)(0)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(0)); +} +static inline _Bool +FIXNUM_NEGATIVE_P(VALUE num) +{ + return (long)num < 0; +} +static inline _Bool +FIXNUM_ZERO_P(VALUE num) +{ + return num == __builtin_choose_expr( __builtin_constant_p(0), ((VALUE)(0)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(0)); +} +enum ruby_num_rounding_mode { + RUBY_NUM_ROUND_HALF_UP, + RUBY_NUM_ROUND_HALF_EVEN, + RUBY_NUM_ROUND_HALF_DOWN, + RUBY_NUM_ROUND_DEFAULT = RUBY_NUM_ROUND_HALF_UP, +}; +typedef double rb_float_value_type; +struct RFloat { + struct RBasic basic; + rb_float_value_type float_value; +}; +int rb_num_to_uint(VALUE val, unsigned int *ret); +VALUE ruby_num_interval_step_size(VALUE from, VALUE to, VALUE step, int excl); +double ruby_float_step_size(double beg, double end, double unit, int excl); +int ruby_float_step(VALUE from, VALUE to, VALUE step, int excl, int allow_endless); +int rb_num_negative_p(VALUE); +VALUE rb_int_succ(VALUE num); +VALUE rb_float_uminus(VALUE num); +VALUE rb_int_plus(VALUE x, VALUE y); +VALUE rb_float_plus(VALUE x, VALUE y); +VALUE rb_int_minus(VALUE x, VALUE y); +VALUE rb_float_minus(VALUE x, VALUE y); +VALUE rb_int_mul(VALUE x, VALUE y); +VALUE rb_float_mul(VALUE x, VALUE y); +VALUE rb_float_div(VALUE x, VALUE y); +VALUE rb_int_idiv(VALUE x, VALUE y); +VALUE rb_int_modulo(VALUE x, VALUE y); +VALUE rb_int2str(VALUE num, int base); +VALUE rb_fix_plus(VALUE x, VALUE y); +VALUE rb_int_gt(VALUE x, VALUE y); +VALUE rb_float_gt(VALUE x, VALUE y); +VALUE rb_int_ge(VALUE x, VALUE y); +enum ruby_num_rounding_mode rb_num_get_rounding_option(VALUE opts); +double rb_int_fdiv_double(VALUE x, VALUE y); +VALUE rb_int_pow(VALUE x, VALUE y); +VALUE rb_float_pow(VALUE x, VALUE y); +VALUE rb_int_cmp(VALUE x, VALUE y); +VALUE rb_int_equal(VALUE x, VALUE y); +VALUE rb_int_divmod(VALUE x, VALUE y); +VALUE rb_int_and(VALUE x, VALUE y); +VALUE rb_int_lshift(VALUE x, VALUE y); +VALUE rb_int_div(VALUE x, VALUE y); +int rb_int_positive_p(VALUE num); +int rb_int_negative_p(VALUE num); +VALUE rb_check_integer_type(VALUE); +VALUE rb_num_pow(VALUE x, VALUE y); +VALUE rb_float_ceil(VALUE num, int ndigits); +VALUE rb_float_floor(VALUE x, int ndigits); +VALUE rb_float_abs(VALUE flt); +static inline VALUE rb_num_compare_with_zero(VALUE num, ID mid); +static inline int rb_num_positive_int_p(VALUE num); +static inline int rb_num_negative_int_p(VALUE num); +static inline double rb_float_flonum_value(VALUE v); +static inline double rb_float_noflonum_value(VALUE v); +static inline double rb_float_value_inline(VALUE v); +static inline VALUE rb_float_new_inline(double d); +static inline _Bool INT_POSITIVE_P(VALUE num); +static inline _Bool INT_NEGATIVE_P(VALUE num); +static inline _Bool FLOAT_ZERO_P(VALUE num); +VALUE rb_flo_div_flo(VALUE x, VALUE y); +double ruby_float_mod(double x, double y); +VALUE rb_float_equal(VALUE x, VALUE y); +int rb_float_cmp(VALUE x, VALUE y); +VALUE rb_float_eql(VALUE x, VALUE y); +VALUE rb_fix_aref(VALUE fix, VALUE idx); +VALUE rb_int_zero_p(VALUE num); +VALUE rb_int_even_p(VALUE num); +VALUE rb_int_odd_p(VALUE num); +VALUE rb_int_abs(VALUE num); +VALUE rb_int_bit_length(VALUE num); +VALUE rb_int_uminus(VALUE num); +VALUE rb_int_comp(VALUE num); +static inline _Bool +INT_POSITIVE_P(VALUE num) +{ + if (RB_FIXNUM_P(num)) { + return FIXNUM_POSITIVE_P(num); + } + else { + return BIGNUM_POSITIVE_P(num); + } +} +static inline _Bool +INT_NEGATIVE_P(VALUE num) +{ + if (RB_FIXNUM_P(num)) { + return FIXNUM_NEGATIVE_P(num); + } + else { + return BIGNUM_NEGATIVE_P(num); + } +} +static inline _Bool +FLOAT_ZERO_P(VALUE num) +{ + return rb_float_value_inline(num) == 0.0; +} +static inline VALUE +rb_num_compare_with_zero(VALUE num, ID mid) +{ + VALUE zero = __builtin_choose_expr( __builtin_constant_p(0), ((VALUE)(0)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(0)); + VALUE r = rb_check_funcall(num, mid, 1, &zero); + if (r == ((VALUE)RUBY_Qundef)) { + rb_cmperr(num, zero); + } + return r; +} +static inline int +rb_num_positive_int_p(VALUE num) +{ + const ID mid = '>'; + if (RB_FIXNUM_P(num)) { + if (rb_method_basic_definition_p(rb_cInteger, mid)) + return FIXNUM_POSITIVE_P(num); + } + else if ((__builtin_constant_p(RUBY_T_BIGNUM) ? rbimpl_RB_TYPE_P_fastpath((num), (RUBY_T_BIGNUM)) : (RB_TYPE_P)((num), (RUBY_T_BIGNUM)))) { + if (rb_method_basic_definition_p(rb_cInteger, mid)) + return BIGNUM_POSITIVE_P(num); + } + return RB_TEST(rb_num_compare_with_zero(num, mid)); +} +static inline int +rb_num_negative_int_p(VALUE num) +{ + const ID mid = '<'; + if (RB_FIXNUM_P(num)) { + if (rb_method_basic_definition_p(rb_cInteger, mid)) + return FIXNUM_NEGATIVE_P(num); + } + else if ((__builtin_constant_p(RUBY_T_BIGNUM) ? rbimpl_RB_TYPE_P_fastpath((num), (RUBY_T_BIGNUM)) : (RB_TYPE_P)((num), (RUBY_T_BIGNUM)))) { + if (rb_method_basic_definition_p(rb_cInteger, mid)) + return BIGNUM_NEGATIVE_P(num); + } + return RB_TEST(rb_num_compare_with_zero(num, mid)); +} +static inline double +rb_float_flonum_value(VALUE v) +{ + if (v != (VALUE)0x8000000000000002) { + union { + double d; + VALUE v; + } t; + VALUE b63 = (v >> 63); + t.v = RUBY_BIT_ROTR((2 - b63) | (v & ~(VALUE)0x03), 3); + return t.d; + } + return 0.0; +} +static inline double +rb_float_noflonum_value(VALUE v) +{ + return ((struct RFloat *)(v))->float_value; +} +static inline double +rb_float_value_inline(VALUE v) +{ + if (RB_FLONUM_P(v)) { + return rb_float_flonum_value(v); + } + return rb_float_noflonum_value(v); +} +static inline VALUE +rb_float_new_inline(double d) +{ + union { + double d; + VALUE v; + } t; + int bits; + t.d = d; + bits = (int)((VALUE)(t.v >> 60) & 0x7); + if (t.v != 0x3000000000000000 && + !((bits-3) & ~0x01)) { + return (RUBY_BIT_ROTL(t.v, 3) & ~(VALUE)0x01) | 0x02; + } + else if (t.v == (VALUE)0) { + return 0x8000000000000002; + } + return rb_float_new_in_heap(d); +} + + +int ruby_fill_random_bytes(void *, size_t, int); + + +enum { + RSTRUCT_EMBED_LEN_MAX = RVALUE_EMBED_LEN_MAX, + RSTRUCT_EMBED_LEN_MASK = (RUBY_FL_USER2|RUBY_FL_USER1), + RSTRUCT_EMBED_LEN_SHIFT = (RUBY_FL_USHIFT+1), + RSTRUCT_TRANSIENT_FLAG = ((VALUE)RUBY_FL_USER3), +}; +struct RStruct { + struct RBasic basic; + union { + struct { + long len; + const VALUE *ptr; + } heap; + const VALUE ary[RSTRUCT_EMBED_LEN_MAX]; + } as; +}; +VALUE rb_struct_init_copy(VALUE copy, VALUE s); +VALUE rb_struct_lookup(VALUE s, VALUE idx); +VALUE rb_struct_s_keyword_init(VALUE klass); +static inline const VALUE *rb_struct_const_heap_ptr(VALUE st); +static inline _Bool RSTRUCT_TRANSIENT_P(VALUE st); +static inline void RSTRUCT_TRANSIENT_SET(VALUE st); +static inline void RSTRUCT_TRANSIENT_UNSET(VALUE st); +static inline long RSTRUCT_EMBED_LEN(VALUE st); +static inline long internal_RSTRUCT_LEN(VALUE st); +static inline int RSTRUCT_LENINT(VALUE st); +static inline const VALUE *RSTRUCT_CONST_PTR(VALUE st); +static inline void internal_RSTRUCT_SET(VALUE st, long k, VALUE v); +static inline VALUE internal_RSTRUCT_GET(VALUE st, long k); +static inline _Bool +RSTRUCT_TRANSIENT_P(VALUE st) +{ + return RB_FL_TEST_RAW(st, RSTRUCT_TRANSIENT_FLAG); +} +static inline void +RSTRUCT_TRANSIENT_SET(VALUE st) +{ + RB_FL_SET_RAW(st, RSTRUCT_TRANSIENT_FLAG); +} +static inline void +RSTRUCT_TRANSIENT_UNSET(VALUE st) +{ + RB_FL_UNSET_RAW(st, RSTRUCT_TRANSIENT_FLAG); +} +static inline long +RSTRUCT_EMBED_LEN(VALUE st) +{ + long ret = RB_FL_TEST_RAW(st, RSTRUCT_EMBED_LEN_MASK); + ret >>= RSTRUCT_EMBED_LEN_SHIFT; + return ret; +} +static inline long +internal_RSTRUCT_LEN(VALUE st) +{ + if (RB_FL_TEST_RAW(st, RSTRUCT_EMBED_LEN_MASK)) { + return RSTRUCT_EMBED_LEN(st); + } + else { + return ((struct RStruct *)(st))->as.heap.len; + } +} +static inline int +RSTRUCT_LENINT(VALUE st) +{ + return rb_long2int_inline(internal_RSTRUCT_LEN(st)); +} +static inline const VALUE * +RSTRUCT_CONST_PTR(VALUE st) +{ + const struct RStruct *p = ((struct RStruct *)(st)); + if (RB_FL_TEST_RAW(st, RSTRUCT_EMBED_LEN_MASK)) { + return p->as.ary; + } + else { + return p->as.heap.ptr; + } +} +static inline void +internal_RSTRUCT_SET(VALUE st, long k, VALUE v) +{ + rb_obj_write((VALUE)(st), __extension__({ + ; + ; __typeof__((VALUE *)(&RSTRUCT_CONST_PTR(st)[k])) unaligned_member_access_result = ((VALUE *)(&RSTRUCT_CONST_PTR(st)[k])); + ; unaligned_member_access_result; }), (VALUE)(v), "./internal/struct.h", 137); +} +static inline VALUE +internal_RSTRUCT_GET(VALUE st, long k) +{ + return RSTRUCT_CONST_PTR(st)[k]; +} +static inline const VALUE * +rb_struct_const_heap_ptr(VALUE st) +{ + return ((struct RStruct *)(st))->as.heap.ptr; +} + +struct gen_ivtbl { + uint32_t numiv; + VALUE ivptr[]; +}; +int rb_ivar_generic_ivtbl_lookup(VALUE obj, struct gen_ivtbl **); +enum ruby_vminsn_type { + YARVINSN_nop, + YARVINSN_getlocal, + YARVINSN_setlocal, + YARVINSN_getblockparam, + YARVINSN_setblockparam, + YARVINSN_getblockparamproxy, + YARVINSN_getspecial, + YARVINSN_setspecial, + YARVINSN_getinstancevariable, + YARVINSN_setinstancevariable, + YARVINSN_getclassvariable, + YARVINSN_setclassvariable, + YARVINSN_opt_getconstant_path, + YARVINSN_getconstant, + YARVINSN_setconstant, + YARVINSN_getglobal, + YARVINSN_setglobal, + YARVINSN_putnil, + YARVINSN_putself, + YARVINSN_putobject, + YARVINSN_putspecialobject, + YARVINSN_putstring, + YARVINSN_concatstrings, + YARVINSN_anytostring, + YARVINSN_toregexp, + YARVINSN_intern, + YARVINSN_newarray, + YARVINSN_newarraykwsplat, + YARVINSN_duparray, + YARVINSN_duphash, + YARVINSN_expandarray, + YARVINSN_concatarray, + YARVINSN_splatarray, + YARVINSN_newhash, + YARVINSN_newrange, + YARVINSN_pop, + YARVINSN_dup, + YARVINSN_dupn, + YARVINSN_swap, + YARVINSN_opt_reverse, + YARVINSN_topn, + YARVINSN_setn, + YARVINSN_adjuststack, + YARVINSN_defined, + YARVINSN_checkmatch, + YARVINSN_checkkeyword, + YARVINSN_checktype, + YARVINSN_defineclass, + YARVINSN_definemethod, + YARVINSN_definesmethod, + YARVINSN_send, + YARVINSN_opt_send_without_block, + YARVINSN_objtostring, + YARVINSN_opt_str_freeze, + YARVINSN_opt_nil_p, + YARVINSN_opt_str_uminus, + YARVINSN_opt_newarray_max, + YARVINSN_opt_newarray_min, + YARVINSN_invokesuper, + YARVINSN_invokeblock, + YARVINSN_leave, + YARVINSN_throw, + YARVINSN_jump, + YARVINSN_branchif, + YARVINSN_branchunless, + YARVINSN_branchnil, + YARVINSN_once, + YARVINSN_opt_case_dispatch, + YARVINSN_opt_plus, + YARVINSN_opt_minus, + YARVINSN_opt_mult, + YARVINSN_opt_div, + YARVINSN_opt_mod, + YARVINSN_opt_eq, + YARVINSN_opt_neq, + YARVINSN_opt_lt, + YARVINSN_opt_le, + YARVINSN_opt_gt, + YARVINSN_opt_ge, + YARVINSN_opt_ltlt, + YARVINSN_opt_and, + YARVINSN_opt_or, + YARVINSN_opt_aref, + YARVINSN_opt_aset, + YARVINSN_opt_aset_with, + YARVINSN_opt_aref_with, + YARVINSN_opt_length, + YARVINSN_opt_size, + YARVINSN_opt_empty_p, + YARVINSN_opt_succ, + YARVINSN_opt_not, + YARVINSN_opt_regexpmatch2, + YARVINSN_invokebuiltin, + YARVINSN_opt_invokebuiltin_delegate, + YARVINSN_opt_invokebuiltin_delegate_leave, + YARVINSN_getlocal_WC_0, + YARVINSN_getlocal_WC_1, + YARVINSN_setlocal_WC_0, + YARVINSN_setlocal_WC_1, + YARVINSN_putobject_INT2FIX_0_, + YARVINSN_putobject_INT2FIX_1_, + YARVINSN_trace_nop, + YARVINSN_trace_getlocal, + YARVINSN_trace_setlocal, + YARVINSN_trace_getblockparam, + YARVINSN_trace_setblockparam, + YARVINSN_trace_getblockparamproxy, + YARVINSN_trace_getspecial, + YARVINSN_trace_setspecial, + YARVINSN_trace_getinstancevariable, + YARVINSN_trace_setinstancevariable, + YARVINSN_trace_getclassvariable, + YARVINSN_trace_setclassvariable, + YARVINSN_trace_opt_getconstant_path, + YARVINSN_trace_getconstant, + YARVINSN_trace_setconstant, + YARVINSN_trace_getglobal, + YARVINSN_trace_setglobal, + YARVINSN_trace_putnil, + YARVINSN_trace_putself, + YARVINSN_trace_putobject, + YARVINSN_trace_putspecialobject, + YARVINSN_trace_putstring, + YARVINSN_trace_concatstrings, + YARVINSN_trace_anytostring, + YARVINSN_trace_toregexp, + YARVINSN_trace_intern, + YARVINSN_trace_newarray, + YARVINSN_trace_newarraykwsplat, + YARVINSN_trace_duparray, + YARVINSN_trace_duphash, + YARVINSN_trace_expandarray, + YARVINSN_trace_concatarray, + YARVINSN_trace_splatarray, + YARVINSN_trace_newhash, + YARVINSN_trace_newrange, + YARVINSN_trace_pop, + YARVINSN_trace_dup, + YARVINSN_trace_dupn, + YARVINSN_trace_swap, + YARVINSN_trace_opt_reverse, + YARVINSN_trace_topn, + YARVINSN_trace_setn, + YARVINSN_trace_adjuststack, + YARVINSN_trace_defined, + YARVINSN_trace_checkmatch, + YARVINSN_trace_checkkeyword, + YARVINSN_trace_checktype, + YARVINSN_trace_defineclass, + YARVINSN_trace_definemethod, + YARVINSN_trace_definesmethod, + YARVINSN_trace_send, + YARVINSN_trace_opt_send_without_block, + YARVINSN_trace_objtostring, + YARVINSN_trace_opt_str_freeze, + YARVINSN_trace_opt_nil_p, + YARVINSN_trace_opt_str_uminus, + YARVINSN_trace_opt_newarray_max, + YARVINSN_trace_opt_newarray_min, + YARVINSN_trace_invokesuper, + YARVINSN_trace_invokeblock, + YARVINSN_trace_leave, + YARVINSN_trace_throw, + YARVINSN_trace_jump, + YARVINSN_trace_branchif, + YARVINSN_trace_branchunless, + YARVINSN_trace_branchnil, + YARVINSN_trace_once, + YARVINSN_trace_opt_case_dispatch, + YARVINSN_trace_opt_plus, + YARVINSN_trace_opt_minus, + YARVINSN_trace_opt_mult, + YARVINSN_trace_opt_div, + YARVINSN_trace_opt_mod, + YARVINSN_trace_opt_eq, + YARVINSN_trace_opt_neq, + YARVINSN_trace_opt_lt, + YARVINSN_trace_opt_le, + YARVINSN_trace_opt_gt, + YARVINSN_trace_opt_ge, + YARVINSN_trace_opt_ltlt, + YARVINSN_trace_opt_and, + YARVINSN_trace_opt_or, + YARVINSN_trace_opt_aref, + YARVINSN_trace_opt_aset, + YARVINSN_trace_opt_aset_with, + YARVINSN_trace_opt_aref_with, + YARVINSN_trace_opt_length, + YARVINSN_trace_opt_size, + YARVINSN_trace_opt_empty_p, + YARVINSN_trace_opt_succ, + YARVINSN_trace_opt_not, + YARVINSN_trace_opt_regexpmatch2, + YARVINSN_trace_invokebuiltin, + YARVINSN_trace_opt_invokebuiltin_delegate, + YARVINSN_trace_opt_invokebuiltin_delegate_leave, + YARVINSN_trace_getlocal_WC_0, + YARVINSN_trace_getlocal_WC_1, + YARVINSN_trace_setlocal_WC_0, + YARVINSN_trace_setlocal_WC_1, + YARVINSN_trace_putobject_INT2FIX_0_, + YARVINSN_trace_putobject_INT2FIX_1_, + VM_INSTRUCTION_SIZE +}; +extern rb_method_definition_t *rb_method_definition_create(rb_method_type_t type, ID mid); +extern void rb_method_definition_set(const rb_method_entry_t *me, rb_method_definition_t *def, void *opts); +extern int rb_method_definition_eq(const rb_method_definition_t *d1, const rb_method_definition_t *d2); +extern VALUE rb_make_no_method_exception(VALUE exc, VALUE format, VALUE obj, + int argc, const VALUE *argv, int priv); +static rb_control_frame_t *vm_get_ruby_level_caller_cfp(const rb_execution_context_t *ec, const rb_control_frame_t *cfp); +static VALUE +ruby_vm_special_exception_copy(VALUE exc) +{ + VALUE e = rb_obj_alloc(rb_class_real(RBASIC_CLASS(exc))); + rb_obj_copy_ivar(e, exc); + return e; +} +__declspec(noreturn) static void ec_stack_overflow(rb_execution_context_t *ec, int); +static void +ec_stack_overflow(rb_execution_context_t *ec, int setup) +{ + VALUE mesg = rb_ec_vm_ptr(ec)->special_exceptions[ruby_error_sysstack]; + ec->raised_flag = RAISED_STACKOVERFLOW; + if (setup) { + VALUE at = rb_ec_backtrace_object(ec); + mesg = ruby_vm_special_exception_copy(mesg); + rb_ivar_set(mesg, idBt, at); + rb_ivar_set(mesg, idBt_locations, at); + } + ec->errinfo = mesg; + rb_ec_tag_jump(ec, RUBY_TAG_RAISE); +} +__declspec(noreturn) static void vm_stackoverflow(void); +__declspec(noinline) static __attribute__((__cold__)) void vm_stackoverflow(void); +static void +vm_stackoverflow(void) +{ + ec_stack_overflow(rb_current_execution_context(1), 1); +} +__declspec(noreturn) static void rb_ec_stack_overflow(rb_execution_context_t *ec, int crit); +static void +rb_ec_stack_overflow(rb_execution_context_t *ec, int crit) +{ + if (rb_during_gc()) { + rb_bug("system stack overflow during GC. Faulty native extension?"); + } + if (crit) { + ec->raised_flag = RAISED_STACKOVERFLOW; + ec->errinfo = rb_ec_vm_ptr(ec)->special_exceptions[ruby_error_stackfatal]; + rb_ec_tag_jump(ec, RUBY_TAG_RAISE); + } + ec_stack_overflow(ec, 1); +} +__extension__ _Static_assert((-2) == -2, "VM_ENV_DATA_INDEX_ME_CREF" ": " "VM_ENV_DATA_INDEX_ME_CREF == -2"); +__extension__ _Static_assert((-1) == -1, "VM_ENV_DATA_INDEX_SPECVAL" ": " "VM_ENV_DATA_INDEX_SPECVAL == -1"); +__extension__ _Static_assert(( 0) == -0, "VM_ENV_DATA_INDEX_FLAGS" ": " "VM_ENV_DATA_INDEX_FLAGS == -0"); +static void +vm_push_frame(rb_execution_context_t *ec, + const rb_iseq_t *iseq, + VALUE type, + VALUE self, + VALUE specval, + VALUE cref_or_me, + const VALUE *pc, + VALUE *sp, + int local_size, + int stack_max) +{ + rb_control_frame_t *const cfp = ((ec->cfp)-1); + ; + ((void)0); + do { __extension__ _Static_assert(sizeof(*(sp)) == sizeof(VALUE), "sizeof_sp" ": " "sizeof(*(sp)) == sizeof(VALUE)"); __extension__ _Static_assert(sizeof(*(cfp)) == sizeof(rb_control_frame_t), "sizeof_cfp" ": " "sizeof(*(cfp)) == sizeof(rb_control_frame_t)"); const struct rb_control_frame_struct *bound = (void *)&(sp)[(local_size + stack_max)]; if ((__builtin_expect(!!((cfp) <= &bound[1]), 0))) { vm_stackoverflow(); } } while (0); + ; + for (int i=0; i < local_size; i++) { + *sp++ = ((VALUE)RUBY_Qnil); + } + *sp++ = cref_or_me; + *sp++ = specval ; + *sp++ = type; + *cfp = (const struct rb_control_frame_struct) { + .pc = pc, + .sp = sp, + .iseq = iseq, + .self = self, + .ep = sp - 1, + .block_code = ((void*)0), + .__bp__ = sp, + .jit_return = ((void*)0) + }; + ec->cfp = cfp; + if (0 == 2) { + rb_vmdebug_stack_dump_raw(rb_current_execution_context(1), rb_current_execution_context(1)->cfp); + } + ; +}static inline +void +rb_vm_pop_frame_no_int(rb_execution_context_t *ec) +{ + rb_control_frame_t *cfp = ec->cfp; + if ((((0) > 0) ? (0) : 0) >= 4) rb_gc_verify_internal_consistency(); + if (0 == 2) rb_vmdebug_stack_dump_raw(rb_current_execution_context(1), rb_current_execution_context(1)->cfp); + ec->cfp = ((cfp)+1); +} +static inline int +vm_pop_frame(rb_execution_context_t *ec, rb_control_frame_t *cfp, const VALUE *ep) +{ + VALUE flags = ep[( 0)]; + if ((((0) > 0) ? (0) : 0) >= 4) rb_gc_verify_internal_consistency(); + if (0 == 2) rb_vmdebug_stack_dump_raw(rb_current_execution_context(1), rb_current_execution_context(1)->cfp); + rb_vm_check_ints(ec); + ec->cfp = ((cfp)+1); + return flags & VM_FRAME_FLAG_FINISH; +} +static void +rb_vm_pop_frame(rb_execution_context_t *ec) +{ + vm_pop_frame(ec, ec->cfp, ec->cfp->ep); +}static inline +VALUE +rb_vm_push_frame_fname(rb_execution_context_t *ec, VALUE fname) +{ + VALUE tmpbuf = rb_imemo_tmpbuf_auto_free_pointer(); + void *ptr = ruby_xcalloc(sizeof(struct rb_iseq_constant_body) + sizeof(struct rb_iseq_struct), 1); + rb_imemo_tmpbuf_set_ptr(tmpbuf, ptr); + struct rb_iseq_struct *dmy_iseq = (struct rb_iseq_struct *)ptr; + struct rb_iseq_constant_body *dmy_body = (struct rb_iseq_constant_body *)&dmy_iseq[1]; + dmy_iseq->body = dmy_body; + dmy_body->type = ISEQ_TYPE_TOP; + dmy_body->location.pathobj = fname; + vm_push_frame(ec, + dmy_iseq, + VM_FRAME_MAGIC_DUMMY | VM_ENV_FLAG_LOCAL | VM_FRAME_FLAG_FINISH, + ec->cfp->self, + 0, + ((VALUE)RUBY_Qfalse), + ((void*)0), + ec->cfp->sp, + 0, + 0); + return tmpbuf; +} +static inline VALUE +rb_arity_error_new(int argc, int min, int max) +{ + VALUE err_mess = rb_sprintf("wrong number of arguments (given %d, expected %d", argc, min); + if (min == max) { + } + else if (max == (-1)) { + ((__builtin_constant_p("+") ? rbimpl_str_cat_cstr : rb_str_cat_cstr) ((err_mess), ("+"))); + } + else { + rb_str_catf(err_mess, "..%d", max); + } + ((__builtin_constant_p(")") ? rbimpl_str_cat_cstr : rb_str_cat_cstr) ((err_mess), (")"))); + return rb_exc_new_str(rb_eArgError, err_mess); +} +static void +rb_error_arity(int argc, int min, int max) +{ + rb_exc_raise(rb_arity_error_new(argc, min, max)); +} +__declspec(noinline) static void vm_env_write_slowpath(const VALUE *ep, int index, VALUE v); +static void +vm_env_write_slowpath(const VALUE *ep, int index, VALUE v) +{ + rb_gc_writebarrier_remember(VM_ENV_ENVVAL(ep)); + VM_FORCE_WRITE(&ep[index], v); + VM_ENV_FLAGS_UNSET(ep, VM_ENV_FLAG_WB_REQUIRED); + ((void)0); +} +static inline void +vm_env_write(const VALUE *ep, int index, VALUE v) +{ + VALUE flags = ep[( 0)]; + if ((__builtin_expect(!!((flags & VM_ENV_FLAG_WB_REQUIRED) == 0), 1))) { + VM_STACK_ENV_WRITE(ep, index, v); + } + else { + vm_env_write_slowpath(ep, index, v); + } +} +static VALUE +rb_vm_bh_to_procval(const rb_execution_context_t *ec, VALUE block_handler) +{ + if (block_handler == 0) { + return ((VALUE)RUBY_Qnil); + } + else { + switch (vm_block_handler_type(block_handler)) { + case block_handler_type_iseq: + case block_handler_type_ifunc: + return rb_vm_make_proc(ec, VM_BH_TO_CAPT_BLOCK(block_handler), rb_cProc); + case block_handler_type_symbol: + return rb_sym_to_proc(VM_BH_TO_SYMBOL(block_handler)); + case block_handler_type_proc: + return VM_BH_TO_PROC(block_handler); + default: + __builtin_unreachable(); + } + } +} +static inline struct vm_svar * +lep_svar(const rb_execution_context_t *ec, const VALUE *lep) +{ + VALUE svar; + if (lep && (ec == ((void*)0) || ec->root_lep != lep)) { + svar = lep[(-2)]; + } + else { + svar = ec->root_svar; + } + ((void)0); + return (struct vm_svar *)svar; +} +static inline void +lep_svar_write(const rb_execution_context_t *ec, const VALUE *lep, const struct vm_svar *svar) +{ + ((void)0); + if (lep && (ec == ((void*)0) || ec->root_lep != lep)) { + vm_env_write(lep, (-2), (VALUE)svar); + } + else { + rb_obj_write((VALUE)(rb_ec_thread_ptr(ec)->self), __extension__({ + ; + ; __typeof__((VALUE *)(&ec->root_svar)) unaligned_member_access_result = ((VALUE *)(&ec->root_svar)); + ; unaligned_member_access_result; }), (VALUE)(svar), "./vm_insnhelper.c", 586); + } +} +static VALUE +lep_svar_get(const rb_execution_context_t *ec, const VALUE *lep, rb_num_t key) +{ + const struct vm_svar *svar = lep_svar(ec, lep); + if ((VALUE)svar == ((VALUE)RUBY_Qfalse) || imemo_type((VALUE)svar) != imemo_svar) return ((VALUE)RUBY_Qnil); + switch (key) { + case VM_SVAR_LASTLINE: + return svar->lastline; + case VM_SVAR_BACKREF: + return svar->backref; + default: { + const VALUE ary = svar->others; + if (RB_NIL_P(ary)) { + return ((VALUE)RUBY_Qnil); + } + else { + return rb_ary_entry(ary, key - VM_SVAR_EXTRA_START); + } + } + } +} +static struct vm_svar * +svar_new(VALUE obj) +{ + return (struct vm_svar *)rb_imemo_new(imemo_svar, ((VALUE)RUBY_Qnil), ((VALUE)RUBY_Qnil), ((VALUE)RUBY_Qnil), obj); +} +static void +lep_svar_set(const rb_execution_context_t *ec, const VALUE *lep, rb_num_t key, VALUE val) +{ + struct vm_svar *svar = lep_svar(ec, lep); + if ((VALUE)svar == ((VALUE)RUBY_Qfalse) || imemo_type((VALUE)svar) != imemo_svar) { + lep_svar_write(ec, lep, svar = svar_new((VALUE)svar)); + } + switch (key) { + case VM_SVAR_LASTLINE: + rb_obj_write((VALUE)(svar), __extension__({ + ; + ; __typeof__((VALUE *)(&svar->lastline)) unaligned_member_access_result = ((VALUE *)(&svar->lastline)); + ; unaligned_member_access_result; }), (VALUE)(val), "./vm_insnhelper.c", 632); + return; + case VM_SVAR_BACKREF: + rb_obj_write((VALUE)(svar), __extension__({ + ; + ; __typeof__((VALUE *)(&svar->backref)) unaligned_member_access_result = ((VALUE *)(&svar->backref)); + ; unaligned_member_access_result; }), (VALUE)(val), "./vm_insnhelper.c", 635); + return; + default: { + VALUE ary = svar->others; + if (RB_NIL_P(ary)) { + rb_obj_write((VALUE)(svar), __extension__({ + ; + ; __typeof__((VALUE *)(&svar->others)) unaligned_member_access_result = ((VALUE *)(&svar->others)); + ; unaligned_member_access_result; }), (VALUE)(ary = rb_ary_new()), "./vm_insnhelper.c", 641); + } + rb_ary_store(ary, key - VM_SVAR_EXTRA_START, val); + } + } +} +static inline VALUE +vm_getspecial(const rb_execution_context_t *ec, const VALUE *lep, rb_num_t key, rb_num_t type) +{ + VALUE val; + if (type == 0) { + val = lep_svar_get(ec, lep, key); + } + else { + VALUE backref = lep_svar_get(ec, lep, VM_SVAR_BACKREF); + if (type & 0x01) { + switch (type >> 1) { + case '&': + val = rb_reg_last_match(backref); + break; + case '`': + val = rb_reg_match_pre(backref); + break; + case '\'': + val = rb_reg_match_post(backref); + break; + case '+': + val = rb_reg_match_last(backref); + break; + default: + rb_bug("unexpected back-ref"); + } + } + else { + val = rb_reg_nth_match((int)(type >> 1), backref); + } + } + return val; +} +__attribute__((__pure__)) static rb_callable_method_entry_t *check_method_entry(VALUE obj, int can_be_svar); +static rb_callable_method_entry_t * +check_method_entry(VALUE obj, int can_be_svar) +{ + if (obj == ((VALUE)RUBY_Qfalse)) return ((void*)0); + switch (imemo_type(obj)) { + case imemo_ment: + return (rb_callable_method_entry_t *)obj; + case imemo_cref: + return ((void*)0); + case imemo_svar: + if (can_be_svar) { + return check_method_entry(((struct vm_svar *)obj)->cref_or_me, 0); + } + default: + return ((void*)0); + } +} +static const rb_callable_method_entry_t * +rb_vm_frame_method_entry(const rb_control_frame_t *cfp) +{ + const VALUE *ep = cfp->ep; + rb_callable_method_entry_t *me; + while (!VM_ENV_LOCAL_P(ep)) { + if ((me = check_method_entry(ep[(-2)], 0)) != ((void*)0)) return me; + ep = VM_ENV_PREV_EP(ep); + } + return check_method_entry(ep[(-2)], 1); +} +static const rb_iseq_t * +method_entry_iseqptr(const rb_callable_method_entry_t *me) +{ + switch (me->def->type) { + case VM_METHOD_TYPE_ISEQ: + return me->def->body.iseq.iseqptr; + default: + return ((void*)0); + } +} +static rb_cref_t * +method_entry_cref(const rb_callable_method_entry_t *me) +{ + switch (me->def->type) { + case VM_METHOD_TYPE_ISEQ: + return me->def->body.iseq.cref; + default: + return ((void*)0); + } +} +__attribute__((__pure__)) static rb_cref_t *check_cref(VALUE, int); +static rb_cref_t * +check_cref(VALUE obj, int can_be_svar) +{ + if (obj == ((VALUE)RUBY_Qfalse)) return ((void*)0); + switch (imemo_type(obj)) { + case imemo_ment: + return method_entry_cref((rb_callable_method_entry_t *)obj); + case imemo_cref: + return (rb_cref_t *)obj; + case imemo_svar: + if (can_be_svar) { + return check_cref(((struct vm_svar *)obj)->cref_or_me, 0); + } + default: + return ((void*)0); + } +} +static inline rb_cref_t * +vm_env_cref(const VALUE *ep) +{ + rb_cref_t *cref; + while (!VM_ENV_LOCAL_P(ep)) { + if ((cref = check_cref(ep[(-2)], 0)) != ((void*)0)) return cref; + ep = VM_ENV_PREV_EP(ep); + } + return check_cref(ep[(-2)], 1); +} +static int +is_cref(const VALUE v, int can_be_svar) +{ + if ((__builtin_constant_p(RUBY_T_IMEMO) ? rbimpl_RB_TYPE_P_fastpath((v), (RUBY_T_IMEMO)) : (RB_TYPE_P)((v), (RUBY_T_IMEMO)))) { + switch (imemo_type(v)) { + case imemo_cref: + return 1; + case imemo_svar: + if (can_be_svar) return is_cref(((struct vm_svar *)v)->cref_or_me, 0); + default: + break; + } + } + return 0; +} +static int +vm_env_cref_by_cref(const VALUE *ep) +{ + while (!VM_ENV_LOCAL_P(ep)) { + if (is_cref(ep[(-2)], 0)) return 1; + ep = VM_ENV_PREV_EP(ep); + } + return is_cref(ep[(-2)], 1); +} +static rb_cref_t * +cref_replace_with_duplicated_cref_each_frame(const VALUE *vptr, int can_be_svar, VALUE parent) +{ + const VALUE v = *vptr; + rb_cref_t *cref, *new_cref; + if ((__builtin_constant_p(RUBY_T_IMEMO) ? rbimpl_RB_TYPE_P_fastpath((v), (RUBY_T_IMEMO)) : (RB_TYPE_P)((v), (RUBY_T_IMEMO)))) { + switch (imemo_type(v)) { + case imemo_cref: + cref = (rb_cref_t *)v; + new_cref = vm_cref_dup(cref); + if (parent) { + rb_obj_write((VALUE)(parent), __extension__({ + ; + ; __typeof__((VALUE *)(vptr)) unaligned_member_access_result = ((VALUE *)(vptr)); + ; unaligned_member_access_result; }), (VALUE)(new_cref), "./vm_insnhelper.c", 827); + } + else { + VM_FORCE_WRITE(vptr, (VALUE)new_cref); + } + return (rb_cref_t *)new_cref; + case imemo_svar: + if (can_be_svar) { + return cref_replace_with_duplicated_cref_each_frame(&((struct vm_svar *)v)->cref_or_me, 0, v); + } + case imemo_ment: + rb_bug("cref_replace_with_duplicated_cref_each_frame: unreachable"); + default: + break; + } + } + return ((void*)0); +} +static rb_cref_t * +vm_cref_replace_with_duplicated_cref(const VALUE *ep) +{ + if (vm_env_cref_by_cref(ep)) { + rb_cref_t *cref; + VALUE envval; + while (!VM_ENV_LOCAL_P(ep)) { + envval = VM_ENV_ESCAPED_P(ep) ? VM_ENV_ENVVAL(ep) : ((VALUE)RUBY_Qfalse); + if ((cref = cref_replace_with_duplicated_cref_each_frame(&ep[(-2)], 0, envval)) != ((void*)0)) { + return cref; + } + ep = VM_ENV_PREV_EP(ep); + } + envval = VM_ENV_ESCAPED_P(ep) ? VM_ENV_ENVVAL(ep) : ((VALUE)RUBY_Qfalse); + return cref_replace_with_duplicated_cref_each_frame(&ep[(-2)], 1, envval); + } + else { + rb_bug("vm_cref_dup: unreachable"); + } +} +static rb_cref_t * +vm_get_cref(const VALUE *ep) +{ + rb_cref_t *cref = vm_env_cref(ep); + if (cref != ((void*)0)) { + return cref; + } + else { + rb_bug("vm_get_cref: unreachable"); + } +}static inline +rb_cref_t * +rb_vm_get_cref(const VALUE *ep) +{ + return vm_get_cref(ep); +} +static rb_cref_t * +vm_ec_cref(const rb_execution_context_t *ec) +{ + const rb_control_frame_t *cfp = rb_vm_get_ruby_level_next_cfp(ec, ec->cfp); + if (cfp == ((void*)0)) { + return ((void*)0); + } + return vm_get_cref(cfp->ep); +} +static const rb_cref_t * +vm_get_const_key_cref(const VALUE *ep) +{ + const rb_cref_t *cref = vm_get_cref(ep); + const rb_cref_t *key_cref = cref; + while (cref) { + if (RB_FL_TEST(CREF_CLASS(cref), ((VALUE)RUBY_FL_SINGLETON)) || + RB_FL_TEST(CREF_CLASS(cref), ((VALUE)RUBY_FL_USER1))) { + return key_cref; + } + cref = CREF_NEXT(cref); + } + return ((void*)0); +}static inline +void +rb_vm_rewrite_cref(rb_cref_t *cref, VALUE old_klass, VALUE new_klass, rb_cref_t **new_cref_ptr) +{ + rb_cref_t *new_cref; + while (cref) { + if (CREF_CLASS(cref) == old_klass) { + new_cref = vm_cref_new_use_prev(new_klass, METHOD_VISI_UNDEF, 0, cref, 0); + *new_cref_ptr = new_cref; + return; + } + new_cref = vm_cref_new_use_prev(CREF_CLASS(cref), METHOD_VISI_UNDEF, 0, cref, 0); + cref = CREF_NEXT(cref); + *new_cref_ptr = new_cref; + new_cref_ptr = &new_cref->next; + } + *new_cref_ptr = ((void*)0); +} +static rb_cref_t * +vm_cref_push(const rb_execution_context_t *ec, VALUE klass, const VALUE *ep, int pushed_by_eval, int singleton) +{ + rb_cref_t *prev_cref = ((void*)0); + if (ep) { + prev_cref = vm_env_cref(ep); + } + else { + rb_control_frame_t *cfp = vm_get_ruby_level_caller_cfp(ec, ec->cfp); + if (cfp) { + prev_cref = vm_env_cref(cfp->ep); + } + } + return vm_cref_new(klass, METHOD_VISI_PUBLIC, 0, prev_cref, pushed_by_eval, singleton); +} +static inline VALUE +vm_get_cbase(const VALUE *ep) +{ + const rb_cref_t *cref = vm_get_cref(ep); + return CREF_CLASS_FOR_DEFINITION(cref); +} +static inline VALUE +vm_get_const_base(const VALUE *ep) +{ + const rb_cref_t *cref = vm_get_cref(ep); + while (cref) { + if (!CREF_PUSHED_BY_EVAL(cref)) { + return CREF_CLASS_FOR_DEFINITION(cref); + } + cref = CREF_NEXT(cref); + } + return ((VALUE)RUBY_Qundef); +} +static inline void +vm_check_if_namespace(VALUE klass) +{ + if (!(__builtin_constant_p(RUBY_T_CLASS) ? rbimpl_RB_TYPE_P_fastpath((klass), (RUBY_T_CLASS)) : (RB_TYPE_P)((klass), (RUBY_T_CLASS))) && !(__builtin_constant_p(RUBY_T_MODULE) ? rbimpl_RB_TYPE_P_fastpath((klass), (RUBY_T_MODULE)) : (RB_TYPE_P)((klass), (RUBY_T_MODULE)))) { + rb_raise(rb_eTypeError, "%+""l""i" "\v"" is not a class/module", klass); + } +} +static inline void +vm_ensure_not_refinement_module(VALUE self) +{ + if ((__builtin_constant_p(RUBY_T_MODULE) ? rbimpl_RB_TYPE_P_fastpath((self), (RUBY_T_MODULE)) : (RB_TYPE_P)((self), (RUBY_T_MODULE))) && RB_FL_TEST(self, RMODULE_IS_REFINEMENT)) { + rb_warn("not defined at the refinement, but at the outer class/module"); + } +} +static inline VALUE +vm_get_iclass(const rb_control_frame_t *cfp, VALUE klass) +{ + return klass; +} +static inline VALUE +vm_get_ev_const(rb_execution_context_t *ec, VALUE orig_klass, ID id, _Bool allow_nil, int is_defined) +{ + void rb_const_warn_if_deprecated(const rb_const_entry_t *ce, VALUE klass, ID id); + VALUE val; + if (RB_NIL_P(orig_klass) && allow_nil) { + const rb_cref_t *root_cref = vm_get_cref(ec->cfp->ep); + const rb_cref_t *cref; + VALUE klass = ((VALUE)RUBY_Qnil); + while (root_cref && CREF_PUSHED_BY_EVAL(root_cref)) { + root_cref = CREF_NEXT(root_cref); + } + cref = root_cref; + while (cref && CREF_NEXT(cref)) { + if (CREF_PUSHED_BY_EVAL(cref)) { + klass = ((VALUE)RUBY_Qnil); + } + else { + klass = CREF_CLASS(cref); + } + cref = CREF_NEXT(cref); + if (!RB_NIL_P(klass)) { + VALUE av, am = 0; + rb_const_entry_t *ce; + search_continue: + if ((ce = rb_const_lookup(klass, id))) { + rb_const_warn_if_deprecated(ce, klass, id); + val = ce->value; + if (RB_UNDEF_P(val)) { + if (am == klass) break; + am = klass; + if (is_defined) return 1; + if (rb_autoloading_value(klass, id, &av, ((void*)0))) return av; + rb_autoload_load(klass, id); + goto search_continue; + } + else { + if (is_defined) { + return 1; + } + else { + if ((__builtin_expect(!!(!rb_ractor_main_p()), 0))) { + if (!rb_ractor_shareable_p(val)) { + rb_raise(rb_eRactorIsolationError, + "can not access non-shareable objects in constant %""l""i" "\v""::%s by non-main ractor.", rb_class_path(klass), rb_id2name(id)); + } + } + return val; + } + } + } + } + } + if (root_cref && !RB_NIL_P(CREF_CLASS(root_cref))) { + klass = vm_get_iclass(ec->cfp, CREF_CLASS(root_cref)); + } + else { + klass = rb_class_of(ec->cfp->self); + } + if (is_defined) { + return rb_const_defined(klass, id); + } + else { + return rb_const_get(klass, id); + } + } + else { + vm_check_if_namespace(orig_klass); + if (is_defined) { + return rb_public_const_defined_from(orig_klass, id); + } + else { + return rb_public_const_get_from(orig_klass, id); + } + } +}static inline +VALUE +rb_vm_get_ev_const(rb_execution_context_t *ec, VALUE orig_klass, ID id, VALUE allow_nil) +{ + return vm_get_ev_const(ec, orig_klass, id, allow_nil == ((VALUE)RUBY_Qtrue), 0); +} +static inline VALUE +vm_get_ev_const_chain(rb_execution_context_t *ec, const ID *segments) +{ + VALUE val = ((VALUE)RUBY_Qnil); + int idx = 0; + int allow_nil = 1; + if (segments[0] == idNULL) { + val = rb_cObject; + idx++; + allow_nil = 0; + } + while (segments[idx]) { + ID id = segments[idx++]; + val = vm_get_ev_const(ec, val, id, allow_nil, 0); + allow_nil = 0; + } + return val; +} +static inline VALUE +vm_get_cvar_base(const rb_cref_t *cref, const rb_control_frame_t *cfp, int top_level_raise) +{ + VALUE klass; + if (!cref) { + rb_bug("vm_get_cvar_base: no cref"); + } + while (CREF_NEXT(cref) && + (RB_NIL_P(CREF_CLASS(cref)) || RB_FL_TEST(CREF_CLASS(cref), ((VALUE)RUBY_FL_SINGLETON)) || + CREF_PUSHED_BY_EVAL(cref) || CREF_SINGLETON(cref))) { + cref = CREF_NEXT(cref); + } + if (top_level_raise && !CREF_NEXT(cref)) { + rb_raise(rb_eRuntimeError, "class variable access from toplevel"); + } + klass = vm_get_iclass(cfp, CREF_CLASS(cref)); + if (RB_NIL_P(klass)) { + rb_raise(rb_eTypeError, "no class variables available"); + } + return klass; +} +__attribute__ ((__always_inline__)) static void fill_ivar_cache(const rb_iseq_t *iseq, IVC ic, const struct rb_callcache *cc, int is_attr, attr_index_t index, shape_id_t shape_id); +static inline void +fill_ivar_cache(const rb_iseq_t *iseq, IVC ic, const struct rb_callcache *cc, int is_attr, attr_index_t index, shape_id_t shape_id) +{ + if (is_attr) { + vm_cc_attr_index_set(cc, index, shape_id); + } + else { + vm_ic_attr_index_set(iseq, ic, index, shape_id); + } +} +__attribute__ ((__always_inline__)) static VALUE vm_getivar(VALUE, ID, const rb_iseq_t *, IVC, const struct rb_callcache *, int); +static inline VALUE +vm_getivar(VALUE obj, ID id, const rb_iseq_t *iseq, IVC ic, const struct rb_callcache *cc, int is_attr) +{ + VALUE val = ((VALUE)RUBY_Qundef); + shape_id_t shape_id; + VALUE * ivar_list; + if (RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qnil); + } + shape_id = RBASIC_SHAPE_ID(obj); + switch (RB_BUILTIN_TYPE(obj)) { + case RUBY_T_OBJECT: + ivar_list = ROBJECT_IVPTR(obj); + ((void)0); + break; + case RUBY_T_CLASS: + case RUBY_T_MODULE: + { + if ((__builtin_expect(!!(!rb_ractor_main_p()), 0))) { + goto general_path; + } + ivar_list = (((rb_classext_t *)((char *)(obj) + sizeof(struct RClass)))->iv_ptr); + break; + } + default: + if (RB_FL_TEST_RAW(obj, ((VALUE)RUBY_FL_EXIVAR))) { + struct gen_ivtbl *ivtbl; + rb_gen_ivtbl_get(obj, id, &ivtbl); + ivar_list = ivtbl->ivptr; + } + else { + return ((VALUE)RUBY_Qnil); + } + } + shape_id_t cached_id; + attr_index_t index; + if (is_attr) { + vm_cc_atomic_shape_and_index(cc, &cached_id, &index); + } + else { + vm_ic_atomic_shape_and_index(ic, &cached_id, &index); + } + if ((__builtin_expect(!!(cached_id == shape_id), 1))) { + ((void)0); + if (index == (attr_index_t)-1) { + return ((VALUE)RUBY_Qnil); + } + val = ivar_list[index]; + ((void)0); + } + else { + rb_shape_t *shape = rb_shape_get_shape_by_id(shape_id); + if (shape_id == ((5 * 2) + 1)) { + if (!rb_id_table_lookup(ROBJECT_IV_HASH(obj), id, &val)) { + val = ((VALUE)RUBY_Qnil); + } + } + else { + if (rb_shape_get_iv_index(shape, id, &index)) { + fill_ivar_cache(iseq, ic, cc, is_attr, index, shape_id); + val = ivar_list[index]; + ((void)0); + } + else { + if (is_attr) { + vm_cc_attr_index_initialize(cc, shape_id); + } + else { + vm_ic_attr_index_initialize(ic, shape_id); + } + val = ((VALUE)RUBY_Qnil); + } + } + } + ((void)0); + return val; +general_path: + ((void)0); + if (is_attr) { + return rb_attr_get(obj, id); + } + else { + return rb_ivar_get(obj, id); + } +} +static void +populate_cache(attr_index_t index, shape_id_t next_shape_id, ID id, const rb_iseq_t *iseq, IVC ic, const struct rb_callcache *cc, _Bool is_attr) +{ + ((void)0); + if (is_attr) { + vm_cc_attr_index_set(cc, index, next_shape_id); + } + else { + vm_ic_attr_index_set(iseq, ic, index, next_shape_id); + } +} +__attribute__ ((__always_inline__)) static VALUE vm_setivar_slowpath(VALUE obj, ID id, VALUE val, const rb_iseq_t *iseq, IVC ic, const struct rb_callcache *cc, int is_attr); +__declspec(noinline) static VALUE vm_setivar_slowpath_ivar(VALUE obj, ID id, VALUE val, const rb_iseq_t *iseq, IVC ic); +__declspec(noinline) static VALUE vm_setivar_slowpath_attr(VALUE obj, ID id, VALUE val, const struct rb_callcache *cc); +static VALUE +vm_setivar_slowpath(VALUE obj, ID id, VALUE val, const rb_iseq_t *iseq, IVC ic, const struct rb_callcache *cc, int is_attr) +{ + switch (RB_BUILTIN_TYPE(obj)) { + case RUBY_T_OBJECT: + { + do { VALUE frozen_obj = (obj); if ((__builtin_expect(!!(RB_OBJ_FROZEN(frozen_obj)), 0))) { rb_error_frozen_object(frozen_obj); } } while (0); + attr_index_t index = rb_obj_ivar_set(obj, id, val); + shape_id_t next_shape_id = ROBJECT_SHAPE_ID(obj); + if (next_shape_id != ((5 * 2) + 1)) { + populate_cache(index, next_shape_id, id, iseq, ic, cc, is_attr); + } + ((void)0); + return val; + } + case RUBY_T_CLASS: + case RUBY_T_MODULE: + break; + default: + { + rb_ivar_set(obj, id, val); + shape_id_t next_shape_id = rb_shape_get_shape_id(obj); + rb_shape_t *next_shape = rb_shape_get_shape_by_id(next_shape_id); + attr_index_t index; + if (rb_shape_get_iv_index(next_shape, id, &index)) { + if (index >= (attr_index_t)(-1)) { + rb_raise(rb_eArgError, "too many instance variables"); + } + populate_cache(index, next_shape_id, id, iseq, ic, cc, is_attr); + } + else { + rb_bug("didn't find the id\n"); + } + return val; + } + } + ((void)0); + return rb_ivar_set(obj, id, val); +} +static VALUE +vm_setivar_slowpath_ivar(VALUE obj, ID id, VALUE val, const rb_iseq_t *iseq, IVC ic) +{ + return vm_setivar_slowpath(obj, id, val, iseq, ic, ((void*)0), 0); +} +static VALUE +vm_setivar_slowpath_attr(VALUE obj, ID id, VALUE val, const struct rb_callcache *cc) +{ + return vm_setivar_slowpath(obj, id, val, ((void*)0), ((void*)0), cc, 1); +} +__declspec(noinline) static VALUE vm_setivar_default(VALUE obj, ID id, VALUE val, shape_id_t dest_shape_id, attr_index_t index); +static VALUE +vm_setivar_default(VALUE obj, ID id, VALUE val, shape_id_t dest_shape_id, attr_index_t index) +{ + shape_id_t shape_id = RBASIC_SHAPE_ID(obj); + struct gen_ivtbl *ivtbl = 0; + if (shape_id == dest_shape_id) { + ((void)0); + rb_gen_ivtbl_get(obj, 0, &ivtbl); + } + else if (dest_shape_id != (((uintptr_t)1 << 32) - 1)) { + rb_shape_t * dest_shape = rb_shape_get_shape_by_id(dest_shape_id); + shape_id_t source_shape_id = dest_shape->parent_id; + if (shape_id == source_shape_id && dest_shape->edge_name == id && dest_shape->type == SHAPE_IVAR) { + ivtbl = rb_ensure_generic_iv_list_size(obj, dest_shape, index + 1); + RBASIC_SET_SHAPE_ID(obj, dest_shape_id); + } + else { + return ((VALUE)RUBY_Qundef); + } + } + else { + return ((VALUE)RUBY_Qundef); + } + VALUE *ptr = ivtbl->ivptr; + rb_obj_write((VALUE)(obj), __extension__({ + ; + ; __typeof__((VALUE *)(&ptr[index])) unaligned_member_access_result = ((VALUE *)(&ptr[index])); + ; unaligned_member_access_result; }), (VALUE)(val), "./vm_insnhelper.c", 1423); + ((void)0); + return val; +} +static inline VALUE +vm_setivar(VALUE obj, ID id, VALUE val, shape_id_t dest_shape_id, attr_index_t index) +{ + switch (RB_BUILTIN_TYPE(obj)) { + case RUBY_T_OBJECT: + { + ((void)0); + shape_id_t shape_id = ROBJECT_SHAPE_ID(obj); + ((void)0); + if ((__builtin_expect(!!(shape_id == dest_shape_id), 1))) { + ((void)0); + ((void)0); + } + else if (dest_shape_id != (((uintptr_t)1 << 32) - 1)) { + rb_shape_t *dest_shape = rb_shape_get_shape_by_id(dest_shape_id); + shape_id_t source_shape_id = dest_shape->parent_id; + if (shape_id == source_shape_id && dest_shape->edge_name == id) { + ((void)0); + ROBJECT_SET_SHAPE_ID(obj, dest_shape_id); + ((void)0); + ((void)0); + } + else { + break; + } + } + else { + break; + } + VALUE *ptr = ROBJECT_IVPTR(obj); + ((void)0); + rb_obj_write((VALUE)(obj), __extension__({ + ; + ; __typeof__((VALUE *)(&ptr[index])) unaligned_member_access_result = ((VALUE *)(&ptr[index])); + ; unaligned_member_access_result; }), (VALUE)(val), "./vm_insnhelper.c", 1469); + ((void)0); + return val; + } + break; + case RUBY_T_CLASS: + case RUBY_T_MODULE: + ((void)0); + default: + break; + } + return ((VALUE)RUBY_Qundef); +} +static VALUE +update_classvariable_cache(const rb_iseq_t *iseq, VALUE klass, ID id, ICVARC ic) +{ + VALUE defined_class = 0; + VALUE cvar_value = rb_cvar_find(klass, id, &defined_class); + if ((__builtin_constant_p(RUBY_T_ICLASS) ? rbimpl_RB_TYPE_P_fastpath((defined_class), (RUBY_T_ICLASS)) : (RB_TYPE_P)((defined_class), (RUBY_T_ICLASS)))) { + defined_class = ((struct RBasic *)(defined_class))->klass; + } + struct rb_id_table *rb_cvc_tbl = (((rb_classext_t *)((char *)(defined_class) + sizeof(struct RClass)))->cvc_tbl); + if (!rb_cvc_tbl) { + rb_bug("the cvc table should be set"); + } + VALUE ent_data; + if (!rb_id_table_lookup(rb_cvc_tbl, id, &ent_data)) { + rb_bug("should have cvar cache entry"); + } + struct rb_cvar_class_tbl_entry *ent = (void *)ent_data; + ent->global_cvar_state = (ruby_vm_global_cvar_state); + ic->entry = ent; + (rb_obj_written((VALUE)(iseq), (VALUE)(((VALUE)RUBY_Qundef)), (VALUE)(ent->class_value), "./vm_insnhelper.c", 1510)); + return cvar_value; +} +static inline VALUE +vm_getclassvariable(const rb_iseq_t *iseq, const rb_control_frame_t *reg_cfp, ID id, ICVARC ic) +{ + const rb_cref_t *cref; + if (ic->entry && ic->entry->global_cvar_state == (ruby_vm_global_cvar_state) && (__builtin_expect(!!(rb_ractor_main_p()), 1))) { + ((void)0); + VALUE v = rb_ivar_lookup(ic->entry->class_value, id, ((VALUE)RUBY_Qundef)); + ((void)0); + return v; + } + cref = vm_get_cref(((((reg_cfp)->ep)))); + VALUE klass = vm_get_cvar_base(cref, reg_cfp, 1); + return update_classvariable_cache(iseq, klass, id, ic); +}static inline +VALUE +rb_vm_getclassvariable(const rb_iseq_t *iseq, const rb_control_frame_t *cfp, ID id, ICVARC ic) +{ + return vm_getclassvariable(iseq, cfp, id, ic); +} +static inline void +vm_setclassvariable(const rb_iseq_t *iseq, const rb_control_frame_t *reg_cfp, ID id, VALUE val, ICVARC ic) +{ + const rb_cref_t *cref; + if (ic->entry && ic->entry->global_cvar_state == (ruby_vm_global_cvar_state)) { + ((void)0); + rb_class_ivar_set(ic->entry->class_value, id, val); + return; + } + cref = vm_get_cref(((((reg_cfp)->ep)))); + VALUE klass = vm_get_cvar_base(cref, reg_cfp, 1); + rb_cvar_set(klass, id, val); + update_classvariable_cache(iseq, klass, id, ic); +}static inline +void +rb_vm_setclassvariable(const rb_iseq_t *iseq, const rb_control_frame_t *cfp, ID id, VALUE val, ICVARC ic) +{ + vm_setclassvariable(iseq, cfp, id, val, ic); +} +static inline VALUE +vm_getinstancevariable(const rb_iseq_t *iseq, VALUE obj, ID id, IVC ic) +{ + return vm_getivar(obj, id, iseq, ic, ((void*)0), 0); +} +static inline void +vm_setinstancevariable(const rb_iseq_t *iseq, VALUE obj, ID id, VALUE val, IVC ic) +{ + if (RB_SPECIAL_CONST_P(obj)) { + rb_error_frozen_object(obj); + return; + } + shape_id_t dest_shape_id; + attr_index_t index; + vm_ic_atomic_shape_and_index(ic, &dest_shape_id, &index); + if ((__builtin_expect(!!(RB_UNDEF_P(vm_setivar(obj, id, val, dest_shape_id, index))), 0))) { + switch (RB_BUILTIN_TYPE(obj)) { + case RUBY_T_OBJECT: + case RUBY_T_CLASS: + case RUBY_T_MODULE: + break; + default: + if (!RB_UNDEF_P(vm_setivar_default(obj, id, val, dest_shape_id, index))) { + return; + } + } + vm_setivar_slowpath_ivar(obj, id, val, iseq, ic); + } +}static inline +void +rb_vm_setinstancevariable(const rb_iseq_t *iseq, VALUE obj, ID id, VALUE val, IVC ic) +{ + vm_setinstancevariable(iseq, obj, id, val, ic); +} +static VALUE +vm_throw_continue(const rb_execution_context_t *ec, VALUE err) +{ + if (RB_FIXNUM_P(err)) { + ec->tag->state = RB_FIX2INT(err); + } + else if (RB_SYMBOL_P(err)) { + ec->tag->state = RUBY_TAG_THROW; + } + else if (imemo_throw_data_p((VALUE)err)) { + ec->tag->state = THROW_DATA_STATE((struct vm_throw_data *)err); + } + else { + ec->tag->state = RUBY_TAG_RAISE; + } + return err; +} +static VALUE +vm_throw_start(const rb_execution_context_t *ec, rb_control_frame_t *const reg_cfp, enum ruby_tag_type state, + const int flag, const VALUE throwobj) +{ + const rb_control_frame_t *escape_cfp = ((void*)0); + const rb_control_frame_t * const eocfp = RUBY_VM_END_CONTROL_FRAME(ec); + if (flag != 0) { + } + else if (state == RUBY_TAG_BREAK) { + int is_orphan = 1; + const VALUE *ep = ((((reg_cfp)->ep))); + const rb_iseq_t *base_iseq = ((((reg_cfp)))->iseq); + escape_cfp = reg_cfp; + while (((base_iseq)->body)->type != ISEQ_TYPE_BLOCK) { + if (((escape_cfp->iseq)->body)->type == ISEQ_TYPE_CLASS) { + escape_cfp = ((escape_cfp)+1); + ep = escape_cfp->ep; + base_iseq = escape_cfp->iseq; + } + else { + ep = VM_ENV_PREV_EP(ep); + base_iseq = ((base_iseq)->body)->parent_iseq; + escape_cfp = rb_vm_search_cf_from_ep(ec, escape_cfp, ep); + ((void)0); + } + } + if (VM_FRAME_LAMBDA_P(escape_cfp)) { + is_orphan = 0; + state = RUBY_TAG_RETURN; + } + else { + ep = VM_ENV_PREV_EP(ep); + while (escape_cfp < eocfp) { + if (escape_cfp->ep == ep) { + const rb_iseq_t *const iseq = escape_cfp->iseq; + const VALUE epc = escape_cfp->pc - ((iseq)->body)->iseq_encoded; + const struct iseq_catch_table *const ct = ((iseq)->body)->catch_table; + unsigned int i; + if (!ct) break; + for (i=0; i < ct->size; i++) { + const struct iseq_catch_table_entry *const entry = + __extension__({ + ; + ; __typeof__(&(ct)->entries[i]) unaligned_member_access_result = (&(ct)->entries[i]); + ; unaligned_member_access_result; }); + if (entry->type == CATCH_TYPE_BREAK && + entry->iseq == base_iseq && + entry->start < epc && entry->end >= epc) { + if (entry->cont == epc) { + is_orphan = 0; + } + break; + } + } + break; + } + escape_cfp = ((escape_cfp)+1); + } + } + if (is_orphan) { + rb_vm_localjump_error("break from proc-closure", throwobj, RUBY_TAG_BREAK); + } + } + else if (state == RUBY_TAG_RETRY) { + const VALUE *ep = VM_ENV_PREV_EP(((((reg_cfp)->ep)))); + escape_cfp = rb_vm_search_cf_from_ep(ec, reg_cfp, ep); + } + else if (state == RUBY_TAG_RETURN) { + const VALUE *current_ep = ((((reg_cfp)->ep))); + const VALUE *target_ep = ((void*)0), *target_lep, *ep = current_ep; + int in_class_frame = 0; + int toplevel = 1; + escape_cfp = reg_cfp; + while (!VM_ENV_LOCAL_P(ep)) { + if (VM_ENV_FLAGS(ep, VM_FRAME_FLAG_LAMBDA) && target_ep == ((void*)0)) { + target_ep = ep; + } + ep = VM_ENV_PREV_EP(ep); + } + target_lep = ep; + while (escape_cfp < eocfp) { + const VALUE *lep = VM_CF_LEP(escape_cfp); + if (!target_lep) { + target_lep = lep; + } + if (lep == target_lep && + VM_FRAME_RUBYFRAME_P(escape_cfp) && + ((escape_cfp->iseq)->body)->type == ISEQ_TYPE_CLASS) { + in_class_frame = 1; + target_lep = 0; + } + if (lep == target_lep) { + if (VM_FRAME_LAMBDA_P(escape_cfp)) { + toplevel = 0; + if (in_class_frame) { + goto valid_return; + } + else { + const VALUE *tep = current_ep; + while (target_lep != tep) { + if (escape_cfp->ep == tep) { + if (tep == target_ep) { + goto valid_return; + } + else { + goto unexpected_return; + } + } + tep = VM_ENV_PREV_EP(tep); + } + } + } + else if (VM_FRAME_RUBYFRAME_P(escape_cfp)) { + switch (((escape_cfp->iseq)->body)->type) { + case ISEQ_TYPE_TOP: + case ISEQ_TYPE_MAIN: + if (toplevel) { + if (in_class_frame) goto unexpected_return; + if (target_ep == ((void*)0)) { + goto valid_return; + } + else { + goto unexpected_return; + } + } + break; + case ISEQ_TYPE_EVAL: + case ISEQ_TYPE_CLASS: + toplevel = 0; + break; + default: + break; + } + } + } + if (escape_cfp->ep == target_lep && ((escape_cfp->iseq)->body)->type == ISEQ_TYPE_METHOD) { + if (target_ep == ((void*)0)) { + goto valid_return; + } + else { + goto unexpected_return; + } + } + escape_cfp = ((escape_cfp)+1); + } + unexpected_return:; + rb_vm_localjump_error("unexpected return", throwobj, RUBY_TAG_RETURN); + valid_return:; + } + else { + rb_bug("isns(throw): unsupported throw type"); + } + ec->tag->state = state; + return (VALUE)THROW_DATA_NEW(throwobj, escape_cfp, state); +} +static VALUE +vm_throw(const rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + rb_num_t throw_state, VALUE throwobj) +{ + const int state = (int)(throw_state & VM_THROW_STATE_MASK); + const int flag = (int)(throw_state & VM_THROW_NO_ESCAPE_FLAG); + if (state != 0) { + return vm_throw_start(ec, reg_cfp, state, flag, throwobj); + } + else { + return vm_throw_continue(ec, throwobj); + } +} +static inline void +vm_expandarray(VALUE *sp, VALUE ary, rb_num_t num, int flag) +{ + int is_splat = flag & 0x01; + rb_num_t space_size = num + is_splat; + VALUE *base = sp - 1; + const VALUE *ptr; + rb_num_t len; + const VALUE obj = ary; + if (!(__builtin_constant_p(RUBY_T_ARRAY) ? rbimpl_RB_TYPE_P_fastpath((ary), (RUBY_T_ARRAY)) : (RB_TYPE_P)((ary), (RUBY_T_ARRAY))) && RB_NIL_P(ary = rb_check_array_type(ary))) { + ary = obj; + ptr = &ary; + len = 1; + } + else { + ptr = rb_array_const_ptr_transient(ary); + len = (rb_num_t)rb_array_len(ary); + } + if (space_size == 0) { + } + else if (flag & 0x02) { + rb_num_t i = 0, j; + if (len < num) { + for (i=0; i len) { + *bptr = rb_ary_new(); + } + else { + *bptr = rb_ary_new_from_values(len - num, ptr + num); + } + } + } + (*__extension__ ({ volatile VALUE *rb_gc_guarded_ptr = &(ary); __asm__("" : : "m"(rb_gc_guarded_ptr)); rb_gc_guarded_ptr; })); +} +static VALUE vm_call_general(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling); +static VALUE vm_mtbl_dump(VALUE klass, ID target_mid); +static struct rb_class_cc_entries * +vm_ccs_create(VALUE klass, const rb_callable_method_entry_t *cme) +{ + struct rb_class_cc_entries *ccs = ((struct rb_class_cc_entries *)ruby_xmalloc(sizeof(struct rb_class_cc_entries))); + ccs->capa = 0; + ccs->len = 0; + rb_obj_write((VALUE)(klass), __extension__({ + ; + ; __typeof__((VALUE *)(&ccs->cme)) unaligned_member_access_result = ((VALUE *)(&ccs->cme)); + ; unaligned_member_access_result; }), (VALUE)(cme), "./vm_insnhelper.c", 1898); + (((rb_callable_method_entry_t *)cme)->flags |= ((VALUE)RUBY_FL_USER8)); + ccs->entries = ((void*)0); + return ccs; +} +static void +vm_ccs_push(VALUE klass, struct rb_class_cc_entries *ccs, const struct rb_callinfo *ci, const struct rb_callcache *cc) +{ + if (! vm_cc_markable(cc)) { + return; + } + else if (! vm_ci_markable(ci)) { + return; + } + if ((__builtin_expect(!!(ccs->len == ccs->capa), 0))) { + if (ccs->capa == 0) { + ccs->capa = 1; + ccs->entries = ((struct rb_class_cc_entries_entry *)ruby_xmalloc2((ccs->capa), sizeof(struct rb_class_cc_entries_entry))); + } + else { + ccs->capa *= 2; + ((ccs->entries) = ((struct rb_class_cc_entries_entry *)ruby_xrealloc2((void *)(ccs->entries), (ccs->capa), sizeof(struct rb_class_cc_entries_entry)))); + } + } + ((void)0); + const int pos = ccs->len++; + rb_obj_write((VALUE)(klass), __extension__({ + ; + ; __typeof__((VALUE *)(&ccs->entries[pos].ci)) unaligned_member_access_result = ((VALUE *)(&ccs->entries[pos].ci)); + ; unaligned_member_access_result; }), (VALUE)(ci), "./vm_insnhelper.c", 1927); + rb_obj_write((VALUE)(klass), __extension__({ + ; + ; __typeof__((VALUE *)(&ccs->entries[pos].cc)) unaligned_member_access_result = ((VALUE *)(&ccs->entries[pos].cc)); + ; unaligned_member_access_result; }), (VALUE)(cc), "./vm_insnhelper.c", 1928); + if (0) { + } +} +static const struct rb_callcache * +vm_search_method_slowpath0(VALUE cd_owner, struct rb_call_data *cd, VALUE klass) +{ + const struct rb_callcache *cc = rb_vm_search_method_slowpath(cd->ci, klass); + cd->cc = cc; + const struct rb_callcache *empty_cc = + rb_vm_empty_cc(); + if (cd_owner && cc != empty_cc) (rb_obj_written((VALUE)(cd_owner), (VALUE)(((VALUE)RUBY_Qundef)), (VALUE)(cc), "./vm_insnhelper.c", 2110)); + ((void)0); + return cc; +} +static const struct rb_callcache * +vm_search_method_fastpath(VALUE cd_owner, struct rb_call_data *cd, VALUE klass) +{ + const struct rb_callcache *cc = cd->cc; + if ((__builtin_expect(!!(vm_cc_class_check(cc, klass)), 1))) { + if ((__builtin_expect(!!(!((vm_cc_cme(cc))->flags & ((VALUE)RUBY_FL_USER9))), 1))) { + ((void)0); + ((void)0); + ((void)0); + return cc; + } + ((void)0); + } + else { + ((void)0); + } + return vm_search_method_slowpath0(cd_owner, cd, klass); +} +static const struct rb_callcache * +vm_search_method(VALUE cd_owner, struct rb_call_data *cd, VALUE recv) +{ + VALUE klass = rb_class_of(recv); + ((void)0); + ((void)0); + return vm_search_method_fastpath(cd_owner, cd, klass); +} +typedef union { + VALUE (*anyargs)(); + VALUE (*f00)(VALUE); + VALUE (*f01)(VALUE, VALUE); + VALUE (*f02)(VALUE, VALUE, VALUE); + VALUE (*f03)(VALUE, VALUE, VALUE, VALUE); + VALUE (*f04)(VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f05)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f06)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f07)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f08)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f09)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f10)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f11)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f12)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f13)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f14)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f15)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*fm1)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE); +} __attribute__((__transparent_union__)) cfunc_type; +static inline int +check_cfunc(const rb_callable_method_entry_t *me, cfunc_type func) +{ + if (! me) { + return 0; + } + else { + ((void)0); + ((void)0); + ((void)0); + if (me->def->type != VM_METHOD_TYPE_CFUNC) { + return 0; + } + else { + return me->def->body.cfunc.func == func.anyargs; + } + } +} +static inline int +vm_method_cfunc_is(const rb_iseq_t *iseq, CALL_DATA cd, VALUE recv, cfunc_type func) +{ + ((void)0); + const struct rb_callcache *cc = vm_search_method((VALUE)iseq, cd, recv); + return check_cfunc(vm_cc_cme(cc), func); +} +static inline _Bool +FIXNUM_2_P(VALUE a, VALUE b) +{ + long x = a; + long y = b; + long z = x & y & 1; + return z == 1; +} +static inline _Bool +FLONUM_2_P(VALUE a, VALUE b) +{ + long x = a; + long y = b; + long z = ((x ^ 2) | (y ^ 2)) & 3; + return !z; +} +static VALUE +opt_equality_specialized(VALUE recv, VALUE obj) +{ + if (FIXNUM_2_P(recv, obj) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_EQ)]&((1 << 0))) == 0), 1)))) { + goto compare_by_identity; + } + else if (FLONUM_2_P(recv, obj) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_EQ)]&((1 << 1))) == 0), 1)))) { + goto compare_by_identity; + } + else if (RB_STATIC_SYM_P(recv) && RB_STATIC_SYM_P(obj) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_EQ)]&((1 << 6))) == 0), 1)))) { + goto compare_by_identity; + } + else if (RB_SPECIAL_CONST_P(recv)) { + } + else if (RBASIC_CLASS(recv) == rb_cFloat && RB_FLOAT_TYPE_P(obj) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_EQ)]&((1 << 1))) == 0), 1)))) { + double a = rb_float_value_inline(recv); + double b = rb_float_value_inline(obj); + return ((a == b) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else if (RBASIC_CLASS(recv) == rb_cString && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_EQ)]&((1 << 2))) == 0), 1)))) { + if (recv == obj) { + return ((VALUE)RUBY_Qtrue); + } + else if ((__builtin_constant_p(RUBY_T_STRING) ? rbimpl_RB_TYPE_P_fastpath((obj), (RUBY_T_STRING)) : (RB_TYPE_P)((obj), (RUBY_T_STRING)))) { + return rb_str_eql_internal(obj, recv); + } + } + return ((VALUE)RUBY_Qundef); + compare_by_identity: + return ((recv == obj) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); +} +static VALUE +opt_equality(const rb_iseq_t *cd_owner, VALUE recv, VALUE obj, CALL_DATA cd) +{ + ((void)0); + VALUE val = opt_equality_specialized(recv, obj); + if (!RB_UNDEF_P(val)) return val; + if (!vm_method_cfunc_is(cd_owner, cd, recv, rb_obj_equal)) { + return ((VALUE)RUBY_Qundef); + } + else { + return ((recv == obj) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } +} +extern VALUE rb_vm_call0(rb_execution_context_t *ec, VALUE, ID, int, const VALUE*, const rb_callable_method_entry_t *, int kw_splat); +extern VALUE rb_vm_call_with_refinements(rb_execution_context_t *, VALUE, ID, int, const VALUE *, int); +static VALUE +check_match(rb_execution_context_t *ec, VALUE pattern, VALUE target, enum vm_check_match_type type) +{ + switch (type) { + case VM_CHECKMATCH_TYPE_WHEN: + return pattern; + case VM_CHECKMATCH_TYPE_RESCUE: + if (!rb_obj_is_kind_of(pattern, rb_cModule)) { + rb_raise(rb_eTypeError, "class or module required for rescue clause"); + } + case VM_CHECKMATCH_TYPE_CASE: { + return rb_vm_call_with_refinements(ec, pattern, idEqq, 1, &target, 0); + } + default: + rb_bug("check_match: unreachable"); + } +} +static inline VALUE +double_cmp_lt(double a, double b) +{ + ; + return ((a < b) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); +} +static inline VALUE +double_cmp_le(double a, double b) +{ + ; + return ((a <= b) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); +} +static inline VALUE +double_cmp_gt(double a, double b) +{ + ; + return ((a > b) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); +} +static inline VALUE +double_cmp_ge(double a, double b) +{ + ; + return ((a >= b) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); +} +static inline VALUE * +vm_base_ptr(const rb_control_frame_t *cfp) +{ + return cfp->__bp__; +} +__declspec(noreturn) static void raise_argument_error(rb_execution_context_t *ec, const rb_iseq_t *iseq, const VALUE exc); +__declspec(noreturn) static void argument_arity_error(rb_execution_context_t *ec, const rb_iseq_t *iseq, const int miss_argc, const int min_argc, const int max_argc); +__declspec(noreturn) static void argument_kw_error(rb_execution_context_t *ec, const rb_iseq_t *iseq, const char *error, const VALUE keys); +VALUE rb_keyword_error_new(const char *error, VALUE keys); +static VALUE method_missing(rb_execution_context_t *ec, VALUE obj, ID id, int argc, const VALUE *argv, + enum method_missing_reason call_status, int kw_splat); +__attribute__ ((__visibility__("default"))) extern +const rb_callable_method_entry_t *rb_resolve_refined_method_callable(VALUE refinements, const rb_callable_method_entry_t *me); +struct args_info { + VALUE *argv; + int argc; + int rest_index; + int rest_dupped; + const struct rb_callinfo_kwarg *kw_arg; + VALUE *kw_argv; + VALUE rest; +}; +enum arg_setup_type { + arg_setup_method, + arg_setup_block +}; +static inline void +arg_rest_dup(struct args_info *args) +{ + if (!args->rest_dupped) { + args->rest = rb_ary_dup(args->rest); + args->rest_dupped = 1; + } +} +static inline int +args_argc(struct args_info *args) +{ + if (args->rest == ((VALUE)RUBY_Qfalse)) { + return args->argc; + } + else { + return args->argc + RARRAY_LENINT(args->rest) - args->rest_index; + } +} +static inline void +args_extend(struct args_info *args, const int min_argc) +{ + int i; + if (args->rest) { + arg_rest_dup(args); + ((void)0); + for (i=args->argc + RARRAY_LENINT(args->rest); irest, ((VALUE)RUBY_Qnil)); + } + } + else { + for (i=args->argc; iargv[args->argc++] = ((VALUE)RUBY_Qnil); + } + } +} +static inline void +args_reduce(struct args_info *args, int over_argc) +{ + if (args->rest) { + const long len = rb_array_len(args->rest); + if (len > over_argc) { + arg_rest_dup(args); + rb_ary_resize(args->rest, len - over_argc); + return; + } + else { + args->rest = ((VALUE)RUBY_Qfalse); + over_argc -= len; + } + } + ((void)0); + args->argc -= over_argc; +} +static inline int +args_check_block_arg0(struct args_info *args) +{ + VALUE ary = ((VALUE)RUBY_Qnil); + if (args->rest && rb_array_len(args->rest) == 1) { + VALUE arg0 = RARRAY_AREF(args->rest, 0); + ary = rb_check_array_type(arg0); + } + else if (args->argc == 1) { + VALUE arg0 = args->argv[0]; + ary = rb_check_array_type(arg0); + args->argv[0] = arg0; + } + if (!RB_NIL_P(ary)) { + args->rest = ary; + args->rest_index = 0; + args->argc = 0; + return 1; + } + return 0; +} +static inline void +args_copy(struct args_info *args) +{ + if (args->rest != ((VALUE)RUBY_Qfalse)) { + int argc = args->argc; + args->argc = 0; + arg_rest_dup(args); + while (args->rest_index > 0 && argc > 0) { + RARRAY_ASET(args->rest, --args->rest_index, args->argv[--argc]); + } + while (argc > 0) { + rb_ary_unshift(args->rest, args->argv[--argc]); + } + } + else if (args->argc > 0) { + args->rest = rb_ary_new_from_values(args->argc, args->argv); + args->rest_index = 0; + args->rest_dupped = 1; + args->argc = 0; + } +} +static inline const VALUE * +args_rest_argv(struct args_info *args) +{ + return rb_array_const_ptr_transient(args->rest) + args->rest_index; +} +static inline VALUE +args_rest_array(struct args_info *args) +{ + VALUE ary; + if (args->rest) { + ary = rb_ary_behead(args->rest, args->rest_index); + args->rest_index = 0; + args->rest = 0; + } + else { + ary = rb_ary_new(); + } + return ary; +} +static int +args_kw_argv_to_hash(struct args_info *args) +{ + const struct rb_callinfo_kwarg *kw_arg = args->kw_arg; + const VALUE *const passed_keywords = kw_arg->keywords; + const int kw_len = kw_arg->keyword_len; + VALUE h = rb_hash_new_with_size(kw_len); + const int kw_start = args->argc - kw_len; + const VALUE * const kw_argv = args->argv + kw_start; + int i; + args->argc = kw_start + 1; + for (i=0; iargv[args->argc - 1] = h; + return args->argc; +} +static inline void +args_setup_lead_parameters(struct args_info *args, int argc, VALUE *locals) +{ + if (args->argc >= argc) { + args->argc -= argc; + args->argv += argc; + } + else { + int i, j; + const VALUE *argv = args_rest_argv(args); + for (i=args->argc, j=0; irest_index += argc - args->argc; + args->argc = 0; + } +} +static inline void +args_setup_post_parameters(struct args_info *args, int argc, VALUE *locals) +{ + long len; + len = rb_array_len(args->rest); + ruby_nonempty_memcpy((locals), (rb_array_const_ptr_transient(args->rest) + len - argc), rbimpl_size_mul_or_raise(sizeof(VALUE), (argc))); + rb_ary_resize(args->rest, len - argc); +} +static inline int +args_setup_opt_parameters(struct args_info *args, int opt_max, VALUE *locals) +{ + int i; + if (args->argc >= opt_max) { + args->argc -= opt_max; + args->argv += opt_max; + i = opt_max; + } + else { + int j; + i = args->argc; + args->argc = 0; + if (args->rest) { + int len = RARRAY_LENINT(args->rest); + const VALUE *argv = rb_array_const_ptr_transient(args->rest); + for (; irest_index < len; i++, args->rest_index++) { + locals[i] = argv[args->rest_index]; + } + } + for (j=i; jbody)->param.keyword->table; + const int req_key_num = ((iseq)->body)->param.keyword->required_num; + const int key_num = ((iseq)->body)->param.keyword->num; + const VALUE * const default_values = ((iseq)->body)->param.keyword->default_values; + VALUE missing = 0; + int i, di, found = 0; + int unspecified_bits = 0; + VALUE unspecified_bits_value = ((VALUE)RUBY_Qnil); + for (i=0; ibody)->param.flags.has_kwrest) { + const int rest_hash_index = key_num + 1; + locals[rest_hash_index] = make_rest_kw_hash(passed_keywords, passed_keyword_len, passed_values); + } + else { + if (found != passed_keyword_len) { + VALUE keys = make_unknown_kw_hash(passed_keywords, passed_keyword_len, passed_values); + argument_kw_error(ec, iseq, "unknown", keys); + } + } + if (RB_NIL_P(unspecified_bits_value)) { + unspecified_bits_value = __builtin_choose_expr( __builtin_constant_p(unspecified_bits), ((VALUE)(unspecified_bits)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(unspecified_bits)); + } + locals[key_num] = unspecified_bits_value; +} +static inline void +args_setup_kw_rest_parameter(VALUE keyword_hash, VALUE *locals, int kw_flag) +{ + if (RB_NIL_P(keyword_hash)) { + keyword_hash = rb_hash_new(); + } + else if (!(kw_flag & (0x01 << VM_CALL_KW_SPLAT_MUT_bit))) { + keyword_hash = rb_hash_dup(keyword_hash); + } + locals[0] = keyword_hash; +} +static inline void +args_setup_block_parameter(const rb_execution_context_t *ec, struct rb_calling_info *calling, VALUE *locals) +{ + VALUE block_handler = calling->block_handler; + *locals = rb_vm_bh_to_procval(ec, block_handler); +} +struct fill_values_arg { + VALUE *keys; + VALUE *vals; + int argc; +}; +static int +fill_keys_values(st_data_t key, st_data_t val, st_data_t ptr) +{ + struct fill_values_arg *arg = (struct fill_values_arg *)ptr; + int i = arg->argc++; + arg->keys[i] = (VALUE)key; + arg->vals[i] = (VALUE)val; + return ST_CONTINUE; +} +static inline int +ignore_keyword_hash_p(VALUE keyword_hash, const rb_iseq_t * const iseq, unsigned int * kw_flag, VALUE * converted_keyword_hash) +{ + if (!(__builtin_constant_p(RUBY_T_HASH) ? rbimpl_RB_TYPE_P_fastpath((keyword_hash), (RUBY_T_HASH)) : (RB_TYPE_P)((keyword_hash), (RUBY_T_HASH)))) { + keyword_hash = rb_to_hash_type(keyword_hash); + } + if (!(*kw_flag & (0x01 << VM_CALL_KW_SPLAT_MUT_bit)) && + (((iseq)->body)->param.flags.has_kwrest || + ((iseq)->body)->param.flags.ruby2_keywords)) { + *kw_flag |= (0x01 << VM_CALL_KW_SPLAT_MUT_bit); + keyword_hash = rb_hash_dup(keyword_hash); + } + *converted_keyword_hash = keyword_hash; + return !(((iseq)->body)->param.flags.has_kw) && + !(((iseq)->body)->param.flags.has_kwrest) && + RHASH_EMPTY_P(keyword_hash); +} +COLDFUNC static int +setup_parameters_complex(rb_execution_context_t * const ec, const rb_iseq_t * const iseq, + struct rb_calling_info *const calling, + const struct rb_callinfo *ci, + VALUE * const locals, const enum arg_setup_type arg_setup_type) { + const int min_argc = ((iseq)->body)->param.lead_num + ((iseq)->body)->param.post_num; + const int max_argc = (((iseq)->body)->param.flags.has_rest == 0) ? min_argc + ((iseq)->body)->param.opt_num : (-1); + int given_argc; + unsigned int kw_flag = vm_ci_flag(ci) & ((0x01 << VM_CALL_KWARG_bit) | (0x01 << VM_CALL_KW_SPLAT_bit) | (0x01 << VM_CALL_KW_SPLAT_MUT_bit)); + int opt_pc = 0, allow_autosplat = !kw_flag; + struct args_info args_body, *args; + VALUE keyword_hash = ((VALUE)RUBY_Qnil); + VALUE * const orig_sp = ec->cfp->sp; + unsigned int i; + VALUE flag_keyword_hash = 0; + VALUE splat_flagged_keyword_hash = 0; + VALUE converted_keyword_hash = 0; + VALUE rest_last = 0; + ; + for (i=calling->argc; i<((iseq)->body)->param.size; i++) { + locals[i] = ((VALUE)RUBY_Qnil); + } + ec->cfp->sp = &locals[i]; + args = &args_body; + given_argc = args->argc = calling->argc; + args->argv = locals; + args->rest_dupped = 0; + if (kw_flag & (0x01 << VM_CALL_KWARG_bit)) { + args->kw_arg = vm_ci_kwarg(ci); + if (((iseq)->body)->param.flags.has_kw) { + int kw_len = args->kw_arg->keyword_len; + args->kw_argv = ((VALUE *)__builtin_alloca(rbimpl_size_mul_or_raise(sizeof(VALUE), (kw_len)))); + args->argc -= kw_len; + given_argc -= kw_len; + ruby_nonempty_memcpy((args->kw_argv), (locals + args->argc), rbimpl_size_mul_or_raise(sizeof(VALUE), (kw_len))); + } + else { + args->kw_argv = ((void*)0); + given_argc = args_kw_argv_to_hash(args); + kw_flag |= (0x01 << VM_CALL_KW_SPLAT_bit) | (0x01 << VM_CALL_KW_SPLAT_MUT_bit); + } + } + else { + args->kw_arg = ((void*)0); + args->kw_argv = ((void*)0); + } + if (vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_SPLAT_bit)) { + int len; + args->rest = locals[--args->argc]; + args->rest_index = 0; + len = RARRAY_LENINT(args->rest); + given_argc += len - 1; + rest_last = RARRAY_AREF(args->rest, len - 1); + if (!kw_flag && len > 0) { + if ((__builtin_constant_p(RUBY_T_HASH) ? rbimpl_RB_TYPE_P_fastpath((rest_last), (RUBY_T_HASH)) : (RB_TYPE_P)((rest_last), (RUBY_T_HASH))) && + (((struct RHash *)rest_last)->basic.flags & RHASH_PASS_AS_KEYWORDS)) { + splat_flagged_keyword_hash = rest_last; + rest_last = rb_hash_dup(rest_last); + kw_flag |= (0x01 << VM_CALL_KW_SPLAT_bit) | (0x01 << VM_CALL_KW_SPLAT_MUT_bit); + } + else { + rest_last = 0; + } + } + if (kw_flag & (0x01 << VM_CALL_KW_SPLAT_bit)) { + if (ignore_keyword_hash_p(rest_last, iseq, &kw_flag, &converted_keyword_hash)) { + arg_rest_dup(args); + rb_ary_pop(args->rest); + given_argc--; + kw_flag &= ~((0x01 << VM_CALL_KW_SPLAT_bit) | (0x01 << VM_CALL_KW_SPLAT_MUT_bit)); + } + else { + if (rest_last != converted_keyword_hash) { + rest_last = converted_keyword_hash; + arg_rest_dup(args); + RARRAY_ASET(args->rest, len - 1, rest_last); + } + if (((iseq)->body)->param.flags.ruby2_keywords && rest_last) { + flag_keyword_hash = rest_last; + } + else if (((iseq)->body)->param.flags.has_kw || ((iseq)->body)->param.flags.has_kwrest) { + arg_rest_dup(args); + rb_ary_pop(args->rest); + given_argc--; + keyword_hash = rest_last; + } + } + } + } + else { + if (kw_flag & (0x01 << VM_CALL_KW_SPLAT_bit)) { + VALUE last_arg = args->argv[args->argc-1]; + if (ignore_keyword_hash_p(last_arg, iseq, &kw_flag, &converted_keyword_hash)) { + args->argc--; + given_argc--; + kw_flag &= ~((0x01 << VM_CALL_KW_SPLAT_bit) | (0x01 << VM_CALL_KW_SPLAT_MUT_bit)); + } + else { + if (last_arg != converted_keyword_hash) { + last_arg = converted_keyword_hash; + args->argv[args->argc-1] = last_arg; + } + if (((iseq)->body)->param.flags.ruby2_keywords) { + flag_keyword_hash = last_arg; + } + else if (((iseq)->body)->param.flags.has_kw || ((iseq)->body)->param.flags.has_kwrest) { + args->argc--; + given_argc--; + keyword_hash = last_arg; + } + } + } + args->rest = ((VALUE)RUBY_Qfalse); + } + if (flag_keyword_hash && (__builtin_constant_p(RUBY_T_HASH) ? rbimpl_RB_TYPE_P_fastpath((flag_keyword_hash), (RUBY_T_HASH)) : (RB_TYPE_P)((flag_keyword_hash), (RUBY_T_HASH)))) { + ((struct RHash *)flag_keyword_hash)->basic.flags |= RHASH_PASS_AS_KEYWORDS; + } + if (kw_flag && ((iseq)->body)->param.flags.accepts_no_kwarg) { + rb_raise(rb_eArgError, "no keywords accepted"); + } + switch (arg_setup_type) { + case arg_setup_method: + break; + case arg_setup_block: + if (given_argc == (RB_NIL_P(keyword_hash) ? 1 : 2) && + allow_autosplat && + (min_argc > 0 || ((iseq)->body)->param.opt_num > 1) && + !((iseq)->body)->param.flags.ambiguous_param0 && + !((((iseq)->body)->param.flags.has_kw || + ((iseq)->body)->param.flags.has_kwrest) + && max_argc == 1) && + args_check_block_arg0(args)) { + given_argc = RARRAY_LENINT(args->rest); + } + break; + } + if (given_argc < min_argc) { + if (arg_setup_type == arg_setup_block) { + do { __extension__ _Static_assert(sizeof(*((ec->cfp)->sp)) == sizeof(VALUE), "sizeof_sp" ": " "sizeof(*((ec->cfp)->sp)) == sizeof(VALUE)"); __extension__ _Static_assert(sizeof(*((ec->cfp))) == sizeof(rb_control_frame_t), "sizeof_cfp" ": " "sizeof(*((ec->cfp))) == sizeof(rb_control_frame_t)"); const struct rb_control_frame_struct *bound = (void *)&((ec->cfp)->sp)[((min_argc))]; if ((__builtin_expect(!!(((ec->cfp)) <= &bound[1]), 0))) { vm_stackoverflow(); } } while (0); + given_argc = min_argc; + args_extend(args, min_argc); + } + else { + argument_arity_error(ec, iseq, given_argc, min_argc, max_argc); + } + } + if (given_argc > max_argc && max_argc != (-1)) { + if (arg_setup_type == arg_setup_block) { + args_reduce(args, given_argc - max_argc); + given_argc = max_argc; + } + else { + argument_arity_error(ec, iseq, given_argc, min_argc, max_argc); + } + } + if (((iseq)->body)->param.flags.has_lead) { + args_setup_lead_parameters(args, ((iseq)->body)->param.lead_num, locals + 0); + } + if (((iseq)->body)->param.flags.has_rest || ((iseq)->body)->param.flags.has_post){ + args_copy(args); + } + if (((iseq)->body)->param.flags.has_post) { + args_setup_post_parameters(args, ((iseq)->body)->param.post_num, locals + ((iseq)->body)->param.post_start); + } + if (((iseq)->body)->param.flags.has_opt) { + int opt = args_setup_opt_parameters(args, ((iseq)->body)->param.opt_num, locals + ((iseq)->body)->param.lead_num); + opt_pc = (int)((iseq)->body)->param.opt_table[opt]; + } + if (((iseq)->body)->param.flags.has_rest) { + args_setup_rest_parameter(args, locals + ((iseq)->body)->param.rest_start); + VALUE ary = *(locals + ((iseq)->body)->param.rest_start); + VALUE index = rb_array_len(ary) - 1; + if (splat_flagged_keyword_hash && + !((iseq)->body)->param.flags.ruby2_keywords && + !((iseq)->body)->param.flags.has_kw && + !((iseq)->body)->param.flags.has_kwrest && + RARRAY_AREF(ary, index) == splat_flagged_keyword_hash) { + ((struct RHash *)rest_last)->basic.flags &= ~RHASH_PASS_AS_KEYWORDS; + RARRAY_ASET(ary, index, rest_last); + } + } + if (((iseq)->body)->param.flags.has_kw) { + VALUE * const klocals = locals + ((iseq)->body)->param.keyword->bits_start - ((iseq)->body)->param.keyword->num; + if (args->kw_argv != ((void*)0)) { + const struct rb_callinfo_kwarg *kw_arg = args->kw_arg; + args_setup_kw_parameters(ec, iseq, args->kw_argv, kw_arg->keyword_len, kw_arg->keywords, klocals); + } + else if (!RB_NIL_P(keyword_hash)) { + int kw_len = rb_long2int_inline(RHASH_SIZE(keyword_hash)); + struct fill_values_arg arg; + arg.keys = args->kw_argv = ((VALUE *)__builtin_alloca(rbimpl_size_mul_or_raise(sizeof(VALUE), (kw_len * 2)))); + arg.vals = arg.keys + kw_len; + arg.argc = 0; + rb_hash_foreach(keyword_hash, fill_keys_values, (VALUE)&arg); + ((void)0); + args_setup_kw_parameters(ec, iseq, arg.vals, kw_len, arg.keys, klocals); + } + else { + ((void)0); + args_setup_kw_parameters(ec, iseq, ((void*)0), 0, ((void*)0), klocals); + } + } + else if (((iseq)->body)->param.flags.has_kwrest) { + args_setup_kw_rest_parameter(keyword_hash, locals + ((iseq)->body)->param.keyword->rest_start, kw_flag); + } + else if (!RB_NIL_P(keyword_hash) && RHASH_SIZE(keyword_hash) > 0 && arg_setup_type == arg_setup_method) { + argument_kw_error(ec, iseq, "unknown", rb_hash_keys(keyword_hash)); + } + if (((iseq)->body)->param.flags.has_block) { + if (((iseq)->body)->local_iseq == iseq) { + } + else { + args_setup_block_parameter(ec, calling, locals + ((iseq)->body)->param.block_start); + } + } + ec->cfp->sp = orig_sp; + return opt_pc; +} +static void +raise_argument_error(rb_execution_context_t *ec, const rb_iseq_t *iseq, const VALUE exc) +{ + VALUE at; + if (iseq) { + vm_push_frame(ec, iseq, VM_FRAME_MAGIC_DUMMY | VM_ENV_FLAG_LOCAL, ((VALUE)RUBY_Qnil) , + 0 , ((VALUE)RUBY_Qfalse) , + ((iseq)->body)->iseq_encoded, + ec->cfp->sp, 0, 0 ); + at = rb_ec_backtrace_object(ec); + rb_backtrace_use_iseq_first_lineno_for_last_location(at); + rb_vm_pop_frame(ec); + } + else { + at = rb_ec_backtrace_object(ec); + } + rb_ivar_set(exc, idBt_locations, at); + rb_exc_set_backtrace(exc, at); + rb_exc_raise(exc); +} +static void +argument_arity_error(rb_execution_context_t *ec, const rb_iseq_t *iseq, const int miss_argc, const int min_argc, const int max_argc) +{ + VALUE exc = rb_arity_error_new(miss_argc, min_argc, max_argc); + if (((iseq)->body)->param.flags.has_kw) { + const struct rb_iseq_param_keyword *const kw = ((iseq)->body)->param.keyword; + const ID *keywords = kw->table; + int req_key_num = kw->required_num; + if (req_key_num > 0) { + static const char required[] = "; required keywords"; + VALUE mesg = rb_attr_get(exc, idMesg); + rb_str_resize(mesg, RSTRING_LEN(mesg)-1); + rb_str_cat(mesg, required, sizeof(required) - 1 - (req_key_num == 1)); + ((__builtin_constant_p(":") ? rbimpl_str_cat_cstr : rb_str_cat_cstr) ((mesg), (":"))); + do { + ((__builtin_constant_p(" ") ? rbimpl_str_cat_cstr : rb_str_cat_cstr) ((mesg), (" "))); + rb_str_append(mesg, rb_id2str(*keywords++)); + ((__builtin_constant_p(",") ? rbimpl_str_cat_cstr : rb_str_cat_cstr) ((mesg), (","))); + } while (--req_key_num); + RSTRING_PTR(mesg)[RSTRING_LEN(mesg)-1] = ')'; + } + } + raise_argument_error(ec, iseq, exc); +} +static void +argument_kw_error(rb_execution_context_t *ec, const rb_iseq_t *iseq, const char *error, const VALUE keys) +{ + raise_argument_error(ec, iseq, rb_keyword_error_new(error, keys)); +} +static inline void +vm_caller_setup_arg_splat(rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + int argc = calling->argc; + VALUE *argv = cfp->sp - argc; + VALUE ary = argv[argc-1]; + ; + cfp->sp--; + if (!RB_NIL_P(ary)) { + const VALUE *ptr = rb_array_const_ptr_transient(ary); + long len = rb_array_len(ary), i; + do { __extension__ _Static_assert(sizeof(*((cfp)->sp)) == sizeof(VALUE), "sizeof_sp" ": " "sizeof(*((cfp)->sp)) == sizeof(VALUE)"); __extension__ _Static_assert(sizeof(*((cfp))) == sizeof(rb_control_frame_t), "sizeof_cfp" ": " "sizeof(*((cfp))) == sizeof(rb_control_frame_t)"); const struct rb_control_frame_struct *bound = (void *)&((cfp)->sp)[((len))]; if ((__builtin_expect(!!(((cfp)) <= &bound[1]), 0))) { vm_stackoverflow(); } } while (0); + for (i = 0; i < len; i++) { + *cfp->sp++ = ptr[i]; + } + calling->argc += i - 1; + } +} +static inline void +vm_caller_setup_arg_kw(rb_control_frame_t *cfp, struct rb_calling_info *calling, const struct rb_callinfo *ci) +{ + const VALUE *const passed_keywords = vm_ci_kwarg(ci)->keywords; + const int kw_len = vm_ci_kwarg(ci)->keyword_len; + const VALUE h = rb_hash_new_with_size(kw_len); + VALUE *sp = cfp->sp; + int i; + for (i=0; isp -= kw_len - 1; + calling->argc -= kw_len - 1; + calling->kw_splat = 1; +} +static VALUE +vm_to_proc(VALUE proc) +{ + if ((__builtin_expect(!!(!rb_obj_is_proc(proc)), 0))) { + VALUE b; + const rb_callable_method_entry_t *me = + rb_callable_method_entry_with_refinements(rb_class_of(proc), idTo_proc, ((void*)0)); + if (me) { + b = rb_vm_call0(rb_current_execution_context(1), proc, idTo_proc, 0, ((void*)0), me, 0); + } + else { + b = rb_check_convert_type_with_id(proc, RUBY_T_DATA, "Proc", idTo_proc); + } + if (RB_NIL_P(b) || !rb_obj_is_proc(b)) { + rb_raise(rb_eTypeError, + "wrong argument type %s (expected Proc)", + rb_obj_classname(proc)); + } + return b; + } + else { + return proc; + } +} +static VALUE +refine_sym_proc_call(VALUE yielded_arg, VALUE callback_arg, int argc, const VALUE *argv, VALUE blockarg) +{ + VALUE obj; + ID mid; + const rb_callable_method_entry_t *me = 0; + rb_execution_context_t *ec; + const VALUE symbol = RARRAY_AREF(callback_arg, 0); + const VALUE refinements = RARRAY_AREF(callback_arg, 1); + int kw_splat = rb_keyword_given_p(); + VALUE klass; + if (argc-- < 1) { + rb_raise(rb_eArgError, "no receiver given"); + } + obj = *argv++; + mid = rb_sym2id(symbol); + for (klass = rb_class_of(obj); klass; klass = RCLASS_SUPER(klass)) { + me = rb_callable_method_entry(klass, mid); + if (me) { + me = rb_resolve_refined_method_callable(refinements, me); + if (me) break; + } + } + ec = rb_current_execution_context(1); + if (!RB_NIL_P(blockarg)) { + vm_passed_block_handler_set(ec, blockarg); + } + if (!me) { + return method_missing(ec, obj, mid, argc, argv, MISSING_NOENTRY, kw_splat); + } + return rb_vm_call0(ec, obj, mid, argc, argv, me, kw_splat); +} +static VALUE +vm_caller_setup_arg_block(const rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + const struct rb_callinfo *ci, const rb_iseq_t *blockiseq, const int is_super) +{ + if (vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_BLOCKARG_bit)) { + VALUE block_code = *(--reg_cfp->sp); + if (RB_NIL_P(block_code)) { + return 0; + } + else if (block_code == rb_block_param_proxy) { + ((void)0); + VALUE handler = VM_CF_BLOCK_HANDLER(reg_cfp); + reg_cfp->block_code = (const void *) handler; + return handler; + } + else if (RB_SYMBOL_P(block_code) && rb_method_basic_definition_p(rb_cSymbol, idTo_proc)) { + const rb_cref_t *cref = vm_env_cref(reg_cfp->ep); + if (cref && !RB_NIL_P(cref->refinements)) { + VALUE ref = cref->refinements; + VALUE func = rb_hash_lookup(ref, block_code); + if (RB_NIL_P(func)) { + VALUE callback_arg = rb_ary_hidden_new(2); + rb_ary_push(callback_arg, block_code); + rb_ary_push(callback_arg, ref); + RB_OBJ_FREEZE_RAW(callback_arg); + func = rb_func_lambda_new(refine_sym_proc_call, callback_arg, 1, (-1)); + rb_hash_aset(ref, block_code, func); + } + block_code = func; + } + return block_code; + } + else { + return vm_to_proc(block_code); + } + } + else if (blockiseq != ((void*)0)) { + struct rb_captured_block *captured = VM_CFP_TO_CAPTURED_BLOCK(reg_cfp); + captured->code.iseq = blockiseq; + return VM_BH_FROM_ISEQ_BLOCK(captured); + } + else { + if (is_super) { + return ((VM_EP_LEP(((((reg_cfp)->ep)))))[(-1)]); + } + else { + return 0; + } + } +} + +static inline VALUE vm_call_iseq_setup_2(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, int opt_pc, int param_size, int local_size); +__attribute__ ((__always_inline__)) static VALUE vm_call_iseq_setup_normal(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, const rb_callable_method_entry_t *me, int opt_pc, int param_size, int local_size); +static inline VALUE vm_call_iseq_setup_tailcall(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, int opt_pc); +static VALUE vm_call_super_method(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling); +static VALUE vm_call_method_nome(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling); +static VALUE vm_call_method_each_type(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling); +static inline VALUE vm_call_method(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling); +static vm_call_handler vm_call_iseq_setup_func(const struct rb_callinfo *ci, const int param_size, const int local_size); +static VALUE +vm_call_iseq_setup_tailcall_0start(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_tailcall(ec, cfp, calling, 0); +} +static VALUE +vm_call_iseq_setup_normal_0start(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + const struct rb_callcache *cc = calling->cc; + const rb_iseq_t *iseq = def_iseq_ptr(vm_cc_cme(cc)->def); + int param = ((iseq)->body)->param.size; + int local = ((iseq)->body)->local_table_size; + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(cc), 0, param, local); +} +static _Bool +rb_simple_iseq_p(const rb_iseq_t *iseq) +{ + return ((iseq)->body)->param.flags.has_opt == 0 && + ((iseq)->body)->param.flags.has_rest == 0 && + ((iseq)->body)->param.flags.has_post == 0 && + ((iseq)->body)->param.flags.has_kw == 0 && + ((iseq)->body)->param.flags.has_kwrest == 0 && + ((iseq)->body)->param.flags.accepts_no_kwarg == 0 && + ((iseq)->body)->param.flags.has_block == 0; +}static inline +__attribute__ ((__visibility__("default"))) _Bool +rb_iseq_only_optparam_p(const rb_iseq_t *iseq) +{ + return ((iseq)->body)->param.flags.has_opt == 1 && + ((iseq)->body)->param.flags.has_rest == 0 && + ((iseq)->body)->param.flags.has_post == 0 && + ((iseq)->body)->param.flags.has_kw == 0 && + ((iseq)->body)->param.flags.has_kwrest == 0 && + ((iseq)->body)->param.flags.accepts_no_kwarg == 0 && + ((iseq)->body)->param.flags.has_block == 0; +}static inline +__attribute__ ((__visibility__("default"))) _Bool +rb_iseq_only_kwparam_p(const rb_iseq_t *iseq) +{ + return ((iseq)->body)->param.flags.has_opt == 0 && + ((iseq)->body)->param.flags.has_rest == 0 && + ((iseq)->body)->param.flags.has_post == 0 && + ((iseq)->body)->param.flags.has_kw == 1 && + ((iseq)->body)->param.flags.has_kwrest == 0 && + ((iseq)->body)->param.flags.has_block == 0; +} +static _Bool +rb_splat_or_kwargs_p(const struct rb_callinfo *__restrict__ ci) +{ + return (vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_SPLAT_bit)) || (vm_ci_flag(ci) & ((0x01 << VM_CALL_KWARG_bit) | (0x01 << VM_CALL_KW_SPLAT_bit))); +} +static inline void +CALLER_SETUP_ARG(struct rb_control_frame_struct *__restrict__ cfp, + struct rb_calling_info *__restrict__ calling, + const struct rb_callinfo *__restrict__ ci) +{ + if ((__builtin_expect(!!((vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_SPLAT_bit))), 0))) { + VALUE final_hash; + vm_caller_setup_arg_splat(cfp, calling); + if (!(vm_ci_flag(ci) & ((0x01 << VM_CALL_KWARG_bit) | (0x01 << VM_CALL_KW_SPLAT_bit))) && + calling->argc > 0 && + (__builtin_constant_p(RUBY_T_HASH) ? rbimpl_RB_TYPE_P_fastpath(((final_hash = *(cfp->sp - 1))), (RUBY_T_HASH)) : (RB_TYPE_P)(((final_hash = *(cfp->sp - 1))), (RUBY_T_HASH))) && + (((struct RHash *)final_hash)->basic.flags & RHASH_PASS_AS_KEYWORDS)) { + *(cfp->sp - 1) = rb_hash_dup(final_hash); + calling->kw_splat = 1; + } + } + if ((__builtin_expect(!!((vm_ci_flag(ci) & ((0x01 << VM_CALL_KWARG_bit) | (0x01 << VM_CALL_KW_SPLAT_bit)))), 0))) { + if ((vm_ci_flag(ci) & (0x01 << VM_CALL_KWARG_bit))) { + vm_caller_setup_arg_kw(cfp, calling, ci); + } + else { + VALUE keyword_hash = cfp->sp[-1]; + if (!(__builtin_constant_p(RUBY_T_HASH) ? rbimpl_RB_TYPE_P_fastpath((keyword_hash), (RUBY_T_HASH)) : (RB_TYPE_P)((keyword_hash), (RUBY_T_HASH)))) { + cfp->sp[-1] = rb_hash_dup(rb_to_hash_type(keyword_hash)); + } + else if (!(vm_ci_flag(ci) & (0x01 << VM_CALL_KW_SPLAT_MUT_bit))) { + cfp->sp[-1] = rb_hash_dup(keyword_hash); + } + } + } +} +static inline void +CALLER_REMOVE_EMPTY_KW_SPLAT(struct rb_control_frame_struct *__restrict__ cfp, + struct rb_calling_info *__restrict__ calling, + const struct rb_callinfo *__restrict__ ci) +{ + if ((__builtin_expect(!!(calling->kw_splat), 0))) { + if (RHASH_EMPTY_P(cfp->sp[-1])) { + cfp->sp--; + calling->argc--; + calling->kw_splat = 0; + } + } +} +static VALUE +vm_call_iseq_setup_normal_opt_start(rb_execution_context_t *ec, rb_control_frame_t *cfp, + struct rb_calling_info *calling) +{ + const struct rb_callcache *cc = calling->cc; + const rb_iseq_t *iseq = def_iseq_ptr(vm_cc_cme(cc)->def); + const int lead_num = ((iseq)->body)->param.lead_num; + const int opt = calling->argc - lead_num; + const int opt_num = ((iseq)->body)->param.opt_num; + const int opt_pc = (int)((iseq)->body)->param.opt_table[opt]; + const int param = ((iseq)->body)->param.size; + const int local = ((iseq)->body)->local_table_size; + const int delta = opt_num - opt; + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(cc), opt_pc, param - delta, local); +} +static VALUE +vm_call_iseq_setup_tailcall_opt_start(rb_execution_context_t *ec, rb_control_frame_t *cfp, + struct rb_calling_info *calling) +{ + const struct rb_callcache *cc = calling->cc; + const rb_iseq_t *iseq = def_iseq_ptr(vm_cc_cme(cc)->def); + const int lead_num = ((iseq)->body)->param.lead_num; + const int opt = calling->argc - lead_num; + const int opt_pc = (int)((iseq)->body)->param.opt_table[opt]; + ((void)0); + return vm_call_iseq_setup_tailcall(ec, cfp, calling, opt_pc); +} +static void +args_setup_kw_parameters(rb_execution_context_t *const ec, const rb_iseq_t *const iseq, + VALUE *const passed_values, const int passed_keyword_len, const VALUE *const passed_keywords, + VALUE *const locals); +static VALUE +vm_call_iseq_setup_kwparm_kwarg(rb_execution_context_t *ec, rb_control_frame_t *cfp, + struct rb_calling_info *calling) +{ + const struct rb_callinfo *ci = calling->ci; + const struct rb_callcache *cc = calling->cc; + ((void)0); + ((void)0); + const rb_iseq_t *iseq = def_iseq_ptr(vm_cc_cme(cc)->def); + const struct rb_iseq_param_keyword *kw_param = ((iseq)->body)->param.keyword; + const struct rb_callinfo_kwarg *kw_arg = vm_ci_kwarg(ci); + const int ci_kw_len = kw_arg->keyword_len; + const VALUE * const ci_keywords = kw_arg->keywords; + VALUE *argv = cfp->sp - calling->argc; + VALUE *const klocals = argv + kw_param->bits_start - kw_param->num; + const int lead_num = ((iseq)->body)->param.lead_num; + VALUE * const ci_kws = ((VALUE *)__builtin_alloca(rbimpl_size_mul_or_raise(sizeof(VALUE), (ci_kw_len)))); + ruby_nonempty_memcpy((ci_kws), (argv + lead_num), rbimpl_size_mul_or_raise(sizeof(VALUE), (ci_kw_len))); + args_setup_kw_parameters(ec, iseq, ci_kws, ci_kw_len, ci_keywords, klocals); + int param = ((iseq)->body)->param.size; + int local = ((iseq)->body)->local_table_size; + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(cc), 0, param, local); +} +static VALUE +vm_call_iseq_setup_kwparm_nokwarg(rb_execution_context_t *ec, rb_control_frame_t *cfp, + struct rb_calling_info *calling) +{ + const struct rb_callinfo *__attribute__ ((__unused__)) ci = calling->ci; + const struct rb_callcache *cc = calling->cc; + ((void)0); + ((void)0); + const rb_iseq_t *iseq = def_iseq_ptr(vm_cc_cme(cc)->def); + const struct rb_iseq_param_keyword *kw_param = ((iseq)->body)->param.keyword; + VALUE * const argv = cfp->sp - calling->argc; + VALUE * const klocals = argv + kw_param->bits_start - kw_param->num; + int i; + for (i=0; inum; i++) { + klocals[i] = kw_param->default_values[i]; + } + klocals[i] = __builtin_choose_expr( __builtin_constant_p(0), ((VALUE)(0)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(0)); + int param = ((iseq)->body)->param.size; + int local = ((iseq)->body)->local_table_size; + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(cc), 0, param, local); +} +static inline int +vm_callee_setup_arg(rb_execution_context_t *ec, struct rb_calling_info *calling, + const rb_iseq_t *iseq, VALUE *argv, int param_size, int local_size) +{ + const struct rb_callinfo *ci = calling->ci; + const struct rb_callcache *cc = calling->cc; + _Bool cacheable_ci = vm_ci_markable(ci); + if ((__builtin_expect(!!(!(vm_ci_flag(ci) & (0x01 << VM_CALL_KW_SPLAT_bit))), 1))) { + if ((__builtin_expect(!!(rb_simple_iseq_p(iseq)), 1))) { + rb_control_frame_t *cfp = ec->cfp; + CALLER_SETUP_ARG(cfp, calling, ci); + CALLER_REMOVE_EMPTY_KW_SPLAT(cfp, calling, ci); + if (calling->argc != ((iseq)->body)->param.lead_num) { + argument_arity_error(ec, iseq, calling->argc, ((iseq)->body)->param.lead_num, ((iseq)->body)->param.lead_num); + } + ((void)0); + ((void)0); + CC_SET_FASTPATH(cc, vm_call_iseq_setup_func(ci, param_size, local_size), cacheable_ci && vm_call_iseq_optimizable_p(ci, cc)); + return 0; + } + else if (rb_iseq_only_optparam_p(iseq)) { + rb_control_frame_t *cfp = ec->cfp; + CALLER_SETUP_ARG(cfp, calling, ci); + CALLER_REMOVE_EMPTY_KW_SPLAT(cfp, calling, ci); + const int lead_num = ((iseq)->body)->param.lead_num; + const int opt_num = ((iseq)->body)->param.opt_num; + const int argc = calling->argc; + const int opt = argc - lead_num; + if (opt < 0 || opt > opt_num) { + argument_arity_error(ec, iseq, argc, lead_num, lead_num + opt_num); + } + if ((__builtin_expect(!!(!(vm_ci_flag(ci) & (0x01 << VM_CALL_TAILCALL_bit))), 1))) { + CC_SET_FASTPATH(cc, vm_call_iseq_setup_normal_opt_start, + !(vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_SPLAT_bit)) && !(vm_ci_flag(ci) & (0x01 << VM_CALL_KWARG_bit)) && + cacheable_ci && vm_call_cacheable(ci, cc)); + } + else { + CC_SET_FASTPATH(cc, vm_call_iseq_setup_tailcall_opt_start, + !(vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_SPLAT_bit)) && !(vm_ci_flag(ci) & (0x01 << VM_CALL_KWARG_bit)) && + cacheable_ci && vm_call_cacheable(ci, cc)); + } + ((void)0); + for (int i=argc; ibody)->param.opt_table[opt]; + } + else if (rb_iseq_only_kwparam_p(iseq) && !(vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_SPLAT_bit))) { + const int lead_num = ((iseq)->body)->param.lead_num; + const int argc = calling->argc; + const struct rb_iseq_param_keyword *kw_param = ((iseq)->body)->param.keyword; + if (vm_ci_flag(ci) & (0x01 << VM_CALL_KWARG_bit)) { + const struct rb_callinfo_kwarg *kw_arg = vm_ci_kwarg(ci); + if (argc - kw_arg->keyword_len == lead_num) { + const int ci_kw_len = kw_arg->keyword_len; + const VALUE * const ci_keywords = kw_arg->keywords; + VALUE * const ci_kws = ((VALUE *)__builtin_alloca(rbimpl_size_mul_or_raise(sizeof(VALUE), (ci_kw_len)))); + ruby_nonempty_memcpy((ci_kws), (argv + lead_num), rbimpl_size_mul_or_raise(sizeof(VALUE), (ci_kw_len))); + VALUE *const klocals = argv + kw_param->bits_start - kw_param->num; + args_setup_kw_parameters(ec, iseq, ci_kws, ci_kw_len, ci_keywords, klocals); + CC_SET_FASTPATH(cc, vm_call_iseq_setup_kwparm_kwarg, + cacheable_ci && vm_call_cacheable(ci, cc)); + return 0; + } + } + else if (argc == lead_num) { + VALUE *const klocals = argv + kw_param->bits_start - kw_param->num; + args_setup_kw_parameters(ec, iseq, ((void*)0), 0, ((void*)0), klocals); + if (klocals[kw_param->num] == __builtin_choose_expr( __builtin_constant_p(0), ((VALUE)(0)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(0))) { + CC_SET_FASTPATH(cc, vm_call_iseq_setup_kwparm_nokwarg, + cacheable_ci && vm_call_cacheable(ci, cc)); + } + return 0; + } + } + } + return setup_parameters_complex(ec, iseq, calling, ci, argv, arg_setup_method); +} +COLDFUNC static VALUE +vm_call_iseq_setup(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) { + ((void)0); + const struct rb_callcache *cc = calling->cc; + const rb_iseq_t *iseq = def_iseq_ptr(vm_cc_cme(cc)->def); + const int param_size = ((iseq)->body)->param.size; + const int local_size = ((iseq)->body)->local_table_size; + const int opt_pc = vm_callee_setup_arg(ec, calling, def_iseq_ptr(vm_cc_cme(cc)->def), cfp->sp - calling->argc, param_size, local_size); + return vm_call_iseq_setup_2(ec, cfp, calling, opt_pc, param_size, local_size); +} +COLDFUNC static VALUE +vm_call_iseq_setup_2(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, + int opt_pc, int param_size, int local_size) { + const struct rb_callinfo *ci = calling->ci; + const struct rb_callcache *cc = calling->cc; + if ((__builtin_expect(!!(!(vm_ci_flag(ci) & (0x01 << VM_CALL_TAILCALL_bit))), 1))) { + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(cc), opt_pc, param_size, local_size); + } + else { + return vm_call_iseq_setup_tailcall(ec, cfp, calling, opt_pc); + } +} +static inline VALUE +vm_call_iseq_setup_normal(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, const rb_callable_method_entry_t *me, + int opt_pc, int param_size, int local_size) +{ + const rb_iseq_t *iseq = def_iseq_ptr(me->def); + VALUE *argv = cfp->sp - calling->argc; + VALUE *sp = argv + param_size; + cfp->sp = argv - 1 ; + vm_push_frame(ec, iseq, VM_FRAME_MAGIC_METHOD | VM_ENV_FLAG_LOCAL, calling->recv, + calling->block_handler, (VALUE)me, + ((iseq)->body)->iseq_encoded + opt_pc, sp, + local_size - param_size, + ((iseq)->body)->stack_max); + return ((VALUE)RUBY_Qundef); +} +COLDFUNC static VALUE +vm_call_iseq_setup_tailcall(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, int opt_pc) { + const struct rb_callcache *cc = calling->cc; + unsigned int i; + VALUE *argv = cfp->sp - calling->argc; + const rb_callable_method_entry_t *me = vm_cc_cme(cc); + const rb_iseq_t *iseq = def_iseq_ptr(me->def); + VALUE *src_argv = argv; + VALUE *sp_orig, *sp; + VALUE finish_flag = VM_FRAME_FINISHED_P(cfp) ? VM_FRAME_FLAG_FINISH : 0; + if (VM_BH_FROM_CFP_P(calling->block_handler, cfp)) { + struct rb_captured_block *dst_captured = VM_CFP_TO_CAPTURED_BLOCK(((cfp)+1)); + const struct rb_captured_block *src_captured = VM_BH_TO_CAPT_BLOCK(calling->block_handler); + dst_captured->code.val = src_captured->code.val; + if (VM_BH_ISEQ_BLOCK_P(calling->block_handler)) { + calling->block_handler = VM_BH_FROM_ISEQ_BLOCK(dst_captured); + } + else { + calling->block_handler = VM_BH_FROM_IFUNC_BLOCK(dst_captured); + } + } + vm_pop_frame(ec, cfp, cfp->ep); + cfp = ec->cfp; + sp_orig = sp = cfp->sp; + sp[0] = calling->recv; + sp++; + for (i=0; i < ((iseq)->body)->param.size; i++) { + *sp++ = src_argv[i]; + } + vm_push_frame(ec, iseq, VM_FRAME_MAGIC_METHOD | VM_ENV_FLAG_LOCAL | finish_flag, + calling->recv, calling->block_handler, (VALUE)me, + ((iseq)->body)->iseq_encoded + opt_pc, sp, + ((iseq)->body)->local_table_size - ((iseq)->body)->param.size, + ((iseq)->body)->stack_max); + cfp->sp = sp_orig; + return ((VALUE)RUBY_Qundef); +} +static void +ractor_unsafe_check(void) +{ + if (!rb_ractor_main_p()) { + rb_raise(rb_eRactorUnsafeError, "ractor unsafe method called from not main ractor"); + } +} +static VALUE +call_cfunc_m2(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE) = (VALUE(*)(VALUE, VALUE))func; + return (*f)(recv, rb_ary_new_from_values(argc, argv)); +} +static VALUE +call_cfunc_m1(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(int, const VALUE *, VALUE) = (VALUE(*)(int, const VALUE *, VALUE))func; + return (*f)(argc, argv, recv); +} +static VALUE +call_cfunc_0(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE) = (VALUE(*)(VALUE))func; + return (*f)(recv); +} +static VALUE +call_cfunc_1(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE) = (VALUE(*)(VALUE, VALUE))func; + return (*f)(recv, argv[0]); +} +static VALUE +call_cfunc_2(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1]); +} +static VALUE +call_cfunc_3(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2]); +} +static VALUE +call_cfunc_4(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3]); +} +static VALUE +call_cfunc_5(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4]); +} +static VALUE +call_cfunc_6(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]); +} +static VALUE +call_cfunc_7(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6]); +} +static VALUE +call_cfunc_8(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7]); +} +static VALUE +call_cfunc_9(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8]); +} +static VALUE +call_cfunc_10(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9]); +} +static VALUE +call_cfunc_11(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10]); +} +static VALUE +call_cfunc_12(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11]); +} +static VALUE +call_cfunc_13(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12]); +} +static VALUE +call_cfunc_14(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12], argv[13]); +} +static VALUE +call_cfunc_15(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12], argv[13], argv[14]); +} +static VALUE +ractor_safe_call_cfunc_m2(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE) = (VALUE(*)(VALUE, VALUE))func; + return (*f)(recv, rb_ary_new_from_values(argc, argv)); +} +static VALUE +ractor_safe_call_cfunc_m1(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(int, const VALUE *, VALUE) = (VALUE(*)(int, const VALUE *, VALUE))func; + return (*f)(argc, argv, recv); +} +static VALUE +ractor_safe_call_cfunc_0(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE) = (VALUE(*)(VALUE))func; + return (*f)(recv); +} +static VALUE +ractor_safe_call_cfunc_1(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE) = (VALUE(*)(VALUE, VALUE))func; + return (*f)(recv, argv[0]); +} +static VALUE +ractor_safe_call_cfunc_2(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1]); +} +static VALUE +ractor_safe_call_cfunc_3(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2]); +} +static VALUE +ractor_safe_call_cfunc_4(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3]); +} +static VALUE +ractor_safe_call_cfunc_5(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4]); +} +static VALUE +ractor_safe_call_cfunc_6(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]); +} +static VALUE +ractor_safe_call_cfunc_7(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6]); +} +static VALUE +ractor_safe_call_cfunc_8(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7]); +} +static VALUE +ractor_safe_call_cfunc_9(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8]); +} +static VALUE +ractor_safe_call_cfunc_10(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9]); +} +static VALUE +ractor_safe_call_cfunc_11(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10]); +} +static VALUE +ractor_safe_call_cfunc_12(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11]); +} +static VALUE +ractor_safe_call_cfunc_13(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12]); +} +static VALUE +ractor_safe_call_cfunc_14(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12], argv[13]); +} +static VALUE +ractor_safe_call_cfunc_15(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12], argv[13], argv[14]); +} +static inline int +vm_cfp_consistent_p(rb_execution_context_t *ec, const rb_control_frame_t *reg_cfp) +{ + const int ov_flags = RAISED_STACKOVERFLOW; + if ((__builtin_expect(!!(reg_cfp == ec->cfp + 1), 1))) return 1; + if ((((ec)->raised_flag & (ov_flags)) != 0)) { + ((ec)->raised_flag &= ~(ov_flags)); + return 1; + } + return 0; +} +static inline +const rb_method_cfunc_t * +vm_method_cfunc_entry(const rb_callable_method_entry_t *me) +{ + return __extension__({ + ; + ; __typeof__(&(me->def)->body.cfunc) unaligned_member_access_result = (&(me->def)->body.cfunc); + ; unaligned_member_access_result; }); +} +static VALUE +vm_call_cfunc_with_frame(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + ((void)0); + const struct rb_callinfo *ci = calling->ci; + const struct rb_callcache *cc = calling->cc; + VALUE val; + const rb_callable_method_entry_t *me = vm_cc_cme(cc); + const rb_method_cfunc_t *cfunc = vm_method_cfunc_entry(me); + int len = cfunc->argc; + VALUE recv = calling->recv; + VALUE block_handler = calling->block_handler; + VALUE frame_type = VM_FRAME_MAGIC_CFUNC | VM_FRAME_FLAG_CFRAME | VM_ENV_FLAG_LOCAL; + int argc = calling->argc; + int orig_argc = argc; + if ((__builtin_expect(!!(calling->kw_splat), 0))) { + frame_type |= VM_FRAME_FLAG_CFRAME_KW; + } + do { if ((__builtin_expect(!!(0), 0))) { struct ruby_dtrace_method_hook_args args; if (rb_dtrace_setup(ec, me->owner, me->def->original_id, &args)) { do {} while (0); } } } while (0); + do { const rb_event_flag_t flag_arg_ = (0x0020); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, recv, me->def->original_id, vm_ci_mid(ci), me->owner, ((VALUE)RUBY_Qundef), 0); } } while (0); + vm_push_frame(ec, ((void*)0), frame_type, recv, + block_handler, (VALUE)me, + 0, ec->cfp->sp, 0, 0); + if (len >= 0) rb_check_arity(argc, len, len); + reg_cfp->sp -= orig_argc + 1; + val = (*cfunc->invoker)(recv, argc, reg_cfp->sp + 1, cfunc->func); + ((__builtin_expect(!!(vm_cfp_consistent_p(ec, reg_cfp)), 1)) ? (void)0 : rb_bug("vm_call_cfunc" ": cfp consistency error (%p, %p)", (void *)reg_cfp, (void *)(ec->cfp+1))); + rb_vm_pop_frame(ec); + do { const rb_event_flag_t flag_arg_ = (0x0040); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, recv, me->def->original_id, vm_ci_mid(ci), me->owner, val, 0); } } while (0); + do { if ((__builtin_expect(!!(0), 0))) { struct ruby_dtrace_method_hook_args args; if (rb_dtrace_setup(ec, me->owner, me->def->original_id, &args)) { do {} while (0); } } } while (0); + return val; +} +static VALUE +vm_call_cfunc(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + const struct rb_callinfo *ci = calling->ci; + ((void)0); + CALLER_SETUP_ARG(reg_cfp, calling, ci); + CALLER_REMOVE_EMPTY_KW_SPLAT(reg_cfp, calling, ci); + CC_SET_FASTPATH(calling->cc, vm_call_cfunc_with_frame, !rb_splat_or_kwargs_p(ci) && !calling->kw_splat); + return vm_call_cfunc_with_frame(ec, reg_cfp, calling); +} +static VALUE +vm_call_ivar(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + const struct rb_callcache *cc = calling->cc; + ((void)0); + cfp->sp -= 1; + VALUE ivar = vm_getivar(calling->recv, vm_cc_cme(cc)->def->body.attr.id, ((void*)0), ((void*)0), cc, 1); + return ivar; +} +static VALUE +vm_call_attrset_direct(rb_execution_context_t *ec, rb_control_frame_t *cfp, const struct rb_callcache *cc, VALUE obj) +{ + ((void)0); + VALUE val = *(cfp->sp - 1); + cfp->sp -= 2; + attr_index_t index = vm_cc_attr_index(cc); + shape_id_t dest_shape_id = vm_cc_attr_index_dest_shape_id(cc); + ID id = vm_cc_cme(cc)->def->body.attr.id; + do { VALUE frozen_obj = (obj); if ((__builtin_expect(!!(RB_OBJ_FROZEN(frozen_obj)), 0))) { rb_error_frozen_object(frozen_obj); } } while (0); + VALUE res = vm_setivar(obj, id, val, dest_shape_id, index); + if (RB_UNDEF_P(res)) { + switch (RB_BUILTIN_TYPE(obj)) { + case RUBY_T_OBJECT: + case RUBY_T_CLASS: + case RUBY_T_MODULE: + break; + default: + { + res = vm_setivar_default(obj, id, val, dest_shape_id, index); + if (!RB_UNDEF_P(res)) { + return res; + } + } + } + res = vm_setivar_slowpath_attr(obj, id, val, cc); + } + return res; +} +static VALUE +vm_call_attrset(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + return vm_call_attrset_direct(ec, cfp, calling->cc, calling->recv); +}static inline +_Bool +rb_vm_call_ivar_attrset_p(const vm_call_handler ch) +{ + return (ch == vm_call_ivar || ch == vm_call_attrset); +} +static inline VALUE +vm_call_bmethod_body(rb_execution_context_t *ec, struct rb_calling_info *calling, const VALUE *argv) +{ + rb_proc_t *proc; + VALUE val; + const struct rb_callcache *cc = calling->cc; + const rb_callable_method_entry_t *cme = vm_cc_cme(cc); + VALUE procv = cme->def->body.bmethod.proc; + if (!RB_FL_TEST_RAW((procv), RUBY_FL_SHAREABLE) && + cme->def->body.bmethod.defined_ractor != rb_ractor_self(rb_ec_ractor_ptr(ec))) { + rb_raise(rb_eRuntimeError, "defined with an un-shareable Proc in a different Ractor"); + } + (((proc)) = (rb_proc_t*)((struct RData *)(((procv))))->data); + val = rb_vm_invoke_bmethod(ec, proc, calling->recv, calling->argc, argv, calling->kw_splat, calling->block_handler, vm_cc_cme(cc)); + return val; +} +static VALUE +vm_call_bmethod(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + VALUE *argv; + int argc; + const struct rb_callinfo *ci = calling->ci; + CALLER_SETUP_ARG(cfp, calling, ci); + argc = calling->argc; + argv = ((VALUE *)__builtin_alloca(rbimpl_size_mul_or_raise(sizeof(VALUE), (argc)))); + ruby_nonempty_memcpy((argv), (cfp->sp - argc), rbimpl_size_mul_or_raise(sizeof(VALUE), (argc))); + cfp->sp += - argc - 1; + return vm_call_bmethod_body(ec, calling, argv); +}static inline +__attribute__ ((__visibility__("default"))) VALUE +rb_find_defined_class_by_owner(VALUE current_class, VALUE target_owner) +{ + VALUE klass = current_class; + if ((__builtin_constant_p(RUBY_T_ICLASS) ? rbimpl_RB_TYPE_P_fastpath((klass), (RUBY_T_ICLASS)) : (RB_TYPE_P)((klass), (RUBY_T_ICLASS))) && RB_FL_TEST(klass, ((VALUE)RUBY_FL_USER0)) && + (__builtin_constant_p(RUBY_T_CLASS) ? rbimpl_RB_TYPE_P_fastpath((RBASIC_CLASS(klass)), (RUBY_T_CLASS)) : (RB_TYPE_P)((RBASIC_CLASS(klass)), (RUBY_T_CLASS)))) { + klass = RBASIC_CLASS(klass); + } + while (RB_TEST(klass)) { + VALUE owner = (__builtin_constant_p(RUBY_T_ICLASS) ? rbimpl_RB_TYPE_P_fastpath((klass), (RUBY_T_ICLASS)) : (RB_TYPE_P)((klass), (RUBY_T_ICLASS))) ? RBASIC_CLASS(klass) : klass; + if (owner == target_owner) { + return klass; + } + klass = RCLASS_SUPER(klass); + } + return current_class; +} +static const rb_callable_method_entry_t * +aliased_callable_method_entry(const rb_callable_method_entry_t *me) +{ + const rb_method_entry_t *orig_me = me->def->body.alias.original_me; + const rb_callable_method_entry_t *cme; + if (orig_me->defined_class == 0) { + VALUE defined_class = rb_find_defined_class_by_owner(me->defined_class, orig_me->owner); + ((void)0); + cme = rb_method_entry_complement_defined_class(orig_me, me->called_id, defined_class); + if (me->def->alias_count + me->def->complemented_count == 0) { + rb_obj_write((VALUE)(me), __extension__({ + ; + ; __typeof__((VALUE *)(&me->def->body.alias.original_me)) unaligned_member_access_result = ((VALUE *)(&me->def->body.alias.original_me)); + ; unaligned_member_access_result; }), (VALUE)(cme), "./vm_insnhelper.c", 3417); + } + else { + rb_method_definition_t *def = + rb_method_definition_create(VM_METHOD_TYPE_ALIAS, me->def->original_id); + rb_method_definition_set((rb_method_entry_t *)me, def, (void *)cme); + } + } + else { + cme = (const rb_callable_method_entry_t *)orig_me; + } + ((void)0); + return cme; +}static inline +const rb_callable_method_entry_t * +rb_aliased_callable_method_entry(const rb_callable_method_entry_t *me) +{ + return aliased_callable_method_entry(me); +} +static VALUE +vm_call_alias(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + calling->cc = &(struct rb_callcache) { .flags = RUBY_T_IMEMO | (imemo_callcache << ((VALUE)RUBY_FL_USHIFT)) | ((VALUE)RUBY_FL_FREEZE) | ((VALUE)RUBY_FL_EXIVAR), .klass = ((VALUE)RUBY_Qundef), .cme_ = aliased_callable_method_entry(vm_cc_cme(calling->cc)), .call_ = vm_call_general, .aux_ = {{0}}, }; + return vm_call_method_each_type(ec, cfp, calling); +} +static enum method_missing_reason +ci_missing_reason(const struct rb_callinfo *ci) +{ + enum method_missing_reason stat = MISSING_NOENTRY; + if (vm_ci_flag(ci) & (0x01 << VM_CALL_VCALL_bit)) stat |= MISSING_VCALL; + if (vm_ci_flag(ci) & (0x01 << VM_CALL_FCALL_bit)) stat |= MISSING_FCALL; + if (vm_ci_flag(ci) & (0x01 << VM_CALL_SUPER_bit)) stat |= MISSING_SUPER; + return stat; +} +static VALUE vm_call_method_missing(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling); +static VALUE +vm_call_symbol(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + struct rb_calling_info *calling, const struct rb_callinfo *ci, VALUE symbol, int flags) +{ + __builtin_assume(calling->argc >= 0); + enum method_missing_reason missing_reason = MISSING_NOENTRY; + int argc = calling->argc; + VALUE recv = calling->recv; + VALUE klass = rb_class_of(recv); + ID mid = rb_check_id(&symbol); + flags |= (0x01 << VM_CALL_OPT_SEND_bit) | (calling->kw_splat ? (0x01 << VM_CALL_KW_SPLAT_bit) : 0); + if ((__builtin_expect(!!(! mid), 0))) { + mid = idMethodMissing; + missing_reason = ci_missing_reason(ci); + ec->method_missing_reason = missing_reason; + int i = argc; + do { __extension__ _Static_assert(sizeof(*((reg_cfp)->sp)) == sizeof(VALUE), "sizeof_sp" ": " "sizeof(*((reg_cfp)->sp)) == sizeof(VALUE)"); __extension__ _Static_assert(sizeof(*((reg_cfp))) == sizeof(rb_control_frame_t), "sizeof_cfp" ": " "sizeof(*((reg_cfp))) == sizeof(rb_control_frame_t)"); const struct rb_control_frame_struct *bound = (void *)&((reg_cfp)->sp)[((1))]; if ((__builtin_expect(!!(((reg_cfp)) <= &bound[1]), 0))) { vm_stackoverflow(); } } while (0); + (((reg_cfp)->sp) += (((1)))); + __builtin___memmove_chk ((&(*(((((reg_cfp)->sp)))-(i - 1)-1))), (&(*(((((reg_cfp)->sp)))-(i)-1))), rbimpl_size_mul_or_raise(sizeof(VALUE), (i)), __builtin_object_size ((&(*(((((reg_cfp)->sp)))-(i - 1)-1))), 0)); + argc = ++calling->argc; + if (rb_method_basic_definition_p(klass, idMethodMissing)) { + (*(((((reg_cfp)->sp)))-(i)-1)) = symbol; + int priv = vm_ci_flag(ci) & ((0x01 << VM_CALL_FCALL_bit) | (0x01 << VM_CALL_VCALL_bit)); + const VALUE *argv = (((((reg_cfp)->sp)))-(argc)); + VALUE exc = rb_make_no_method_exception( + rb_eNoMethodError, 0, recv, argc, argv, priv); + rb_exc_raise(exc); + } + else { + (*(((((reg_cfp)->sp)))-(i)-1)) = rb_str_intern(symbol); + } + } + calling->ci = &(struct rb_callinfo) { .flags = RUBY_T_IMEMO | (imemo_callinfo << ((VALUE)RUBY_FL_USHIFT)) | ((VALUE)RUBY_FL_USER4), .mid = mid, .flag = flags, .argc = argc, .kwarg = vm_ci_kwarg(ci), }; + calling->cc = &(struct rb_callcache) { .flags = RUBY_T_IMEMO | (imemo_callcache << ((VALUE)RUBY_FL_USHIFT)) | ((VALUE)RUBY_FL_FREEZE) | ((VALUE)RUBY_FL_EXIVAR), .klass = klass, .cme_ = rb_callable_method_entry_with_refinements(klass, mid, ((void*)0)), .call_ = vm_call_general, .aux_ = { .method_missing_reason = missing_reason }, }; + if (flags & (0x01 << VM_CALL_FCALL_bit)) { + return vm_call_method(ec, reg_cfp, calling); + } + const struct rb_callcache *cc = calling->cc; + ((void)0); + if (vm_cc_cme(cc) != ((void*)0)) { + switch ((rb_method_visibility_t)(((vm_cc_cme(cc))->flags & (((VALUE)RUBY_FL_USER4) | ((VALUE)RUBY_FL_USER5))) >> ((((VALUE)RUBY_FL_USHIFT) + 4)+0))) { + case METHOD_VISI_PUBLIC: + return vm_call_method_each_type(ec, reg_cfp, calling); + case METHOD_VISI_PRIVATE: + vm_cc_method_missing_reason_set(cc, MISSING_PRIVATE); + break; + case METHOD_VISI_PROTECTED: + vm_cc_method_missing_reason_set(cc, MISSING_PROTECTED); + break; + default: + __builtin_unreachable(); + } + return vm_call_method_missing(ec, reg_cfp, calling); + } + return vm_call_method_nome(ec, reg_cfp, calling); +} +static VALUE +vm_call_opt_send(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + ((void)0); + int i; + VALUE sym; + CALLER_SETUP_ARG(reg_cfp, calling, calling->ci); + i = calling->argc - 1; + if (calling->argc == 0) { + rb_raise(rb_eArgError, "no method name given"); + } + else { + sym = (*(((((reg_cfp)->sp)))-(i)-1)); + if (i > 0) { + __builtin___memmove_chk ((&(*(((((reg_cfp)->sp)))-(i)-1))), (&(*(((((reg_cfp)->sp)))-(i-1)-1))), rbimpl_size_mul_or_raise(sizeof(VALUE), (i)), __builtin_object_size ((&(*(((((reg_cfp)->sp)))-(i)-1))), 0)); + } + calling->argc -= 1; + (((reg_cfp)->sp) -= (((1)))); + return vm_call_symbol(ec, reg_cfp, calling, calling->ci, sym, (0x01 << VM_CALL_FCALL_bit)); + } +} +static VALUE +vm_call_method_missing_body(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling, + const struct rb_callinfo *orig_ci, enum method_missing_reason reason) +{ + ((void)0); + VALUE *argv = (((((reg_cfp)->sp)))-(calling->argc)); + unsigned int argc; + CALLER_SETUP_ARG(reg_cfp, calling, orig_ci); + argc = calling->argc + 1; + unsigned int flag = (0x01 << VM_CALL_FCALL_bit) | (0x01 << VM_CALL_OPT_SEND_bit) | (calling->kw_splat ? (0x01 << VM_CALL_KW_SPLAT_bit) : 0); + calling->argc = argc; + do { __extension__ _Static_assert(sizeof(*((reg_cfp)->sp)) == sizeof(VALUE), "sizeof_sp" ": " "sizeof(*((reg_cfp)->sp)) == sizeof(VALUE)"); __extension__ _Static_assert(sizeof(*((reg_cfp))) == sizeof(rb_control_frame_t), "sizeof_cfp" ": " "sizeof(*((reg_cfp))) == sizeof(rb_control_frame_t)"); const struct rb_control_frame_struct *bound = (void *)&((reg_cfp)->sp)[((1))]; if ((__builtin_expect(!!(((reg_cfp)) <= &bound[1]), 0))) { vm_stackoverflow(); } } while (0); + ; + if (argc > 1) { + __builtin___memmove_chk ((argv+1), (argv), rbimpl_size_mul_or_raise(sizeof(VALUE), (argc-1)), __builtin_object_size ((argv+1), 0)); + } + argv[0] = rb_id2sym(vm_ci_mid(orig_ci)); + (((reg_cfp)->sp) += (((1)))); + ec->method_missing_reason = reason; + calling->ci = &(struct rb_callinfo) { .flags = RUBY_T_IMEMO | (imemo_callinfo << ((VALUE)RUBY_FL_USHIFT)) | ((VALUE)RUBY_FL_USER4), .mid = idMethodMissing, .flag = flag, .argc = argc, .kwarg = vm_ci_kwarg(orig_ci), }; + calling->cc = &(struct rb_callcache) { .flags = RUBY_T_IMEMO | (imemo_callcache << ((VALUE)RUBY_FL_USHIFT)) | ((VALUE)RUBY_FL_FREEZE) | ((VALUE)RUBY_FL_EXIVAR), .klass = ((VALUE)RUBY_Qundef), .cme_ = rb_callable_method_entry_without_refinements(rb_class_of(calling->recv), idMethodMissing, ((void*)0)), .call_ = vm_call_general, .aux_ = {{ 0 }}, }; + return vm_call_method(ec, reg_cfp, calling); +} +static VALUE +vm_call_method_missing(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + return vm_call_method_missing_body(ec, reg_cfp, calling, calling->ci, vm_cc_cmethod_missing_reason(calling->cc)); +} +static const rb_callable_method_entry_t *refined_method_callable_without_refinement(const rb_callable_method_entry_t *me); +static VALUE +vm_call_zsuper(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, VALUE klass) +{ + klass = RCLASS_SUPER(klass); + const rb_callable_method_entry_t *cme = klass ? rb_callable_method_entry(klass, vm_ci_mid(calling->ci)) : ((void*)0); + if (cme == ((void*)0)) { + return vm_call_method_nome(ec, cfp, calling); + } + if (cme->def->type == VM_METHOD_TYPE_REFINED && + cme->def->body.refined.orig_me) { + cme = refined_method_callable_without_refinement(cme); + } + calling->cc = &(struct rb_callcache) { .flags = RUBY_T_IMEMO | (imemo_callcache << ((VALUE)RUBY_FL_USHIFT)) | ((VALUE)RUBY_FL_FREEZE) | ((VALUE)RUBY_FL_EXIVAR), .klass = ((VALUE)RUBY_Qundef), .cme_ = cme, .call_ = vm_call_general, .aux_ = {{ 0 }}, }; + return vm_call_method_each_type(ec, cfp, calling); +} +static inline VALUE +find_refinement(VALUE refinements, VALUE klass) +{ + if (RB_NIL_P(refinements)) { + return ((VALUE)RUBY_Qnil); + } + return rb_hash_lookup(refinements, klass); +} +__attribute__((__pure__)) static rb_control_frame_t * current_method_entry(const rb_execution_context_t *ec, rb_control_frame_t *cfp); +static rb_control_frame_t * +current_method_entry(const rb_execution_context_t *ec, rb_control_frame_t *cfp) +{ + rb_control_frame_t *top_cfp = cfp; + if (cfp->iseq && ((cfp->iseq)->body)->type == ISEQ_TYPE_BLOCK) { + const rb_iseq_t *local_iseq = ((cfp->iseq)->body)->local_iseq; + do { + cfp = ((cfp)+1); + if (RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(ec, cfp)) { + return top_cfp; + } + } while (cfp->iseq != local_iseq); + } + return cfp; +} +static const rb_callable_method_entry_t * +refined_method_callable_without_refinement(const rb_callable_method_entry_t *me) +{ + const rb_method_entry_t *orig_me = me->def->body.refined.orig_me; + const rb_callable_method_entry_t *cme; + if (orig_me->defined_class == 0) { + cme = ((void*)0); + rb_notimplement(); + } + else { + cme = (const rb_callable_method_entry_t *)orig_me; + } + ((void)0); + if ((!(cme) || !(cme)->def || (cme)->def->type == VM_METHOD_TYPE_UNDEF)) { + cme = ((void*)0); + } + return cme; +} +static const rb_callable_method_entry_t * +search_refined_method(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ID mid = vm_ci_mid(calling->ci); + const rb_cref_t *cref = vm_get_cref(cfp->ep); + const struct rb_callcache * const cc = calling->cc; + const rb_callable_method_entry_t *cme = vm_cc_cme(cc); + for (; cref; cref = CREF_NEXT(cref)) { + const VALUE refinement = find_refinement(CREF_REFINEMENTS(cref), vm_cc_cme(cc)->owner); + if (RB_NIL_P(refinement)) continue; + const rb_callable_method_entry_t *const ref_me = + rb_callable_method_entry(refinement, mid); + if (ref_me) { + if (vm_cc_call(cc) == vm_call_super_method) { + const rb_control_frame_t *top_cfp = current_method_entry(ec, cfp); + const rb_callable_method_entry_t *top_me = rb_vm_frame_method_entry(top_cfp); + if (top_me && rb_method_definition_eq(ref_me->def, top_me->def)) { + continue; + } + } + if (cme->def->type != VM_METHOD_TYPE_REFINED || + cme->def != ref_me->def) { + cme = ref_me; + } + if (ref_me->def->type != VM_METHOD_TYPE_REFINED) { + return cme; + } + } + else { + return ((void*)0); + } + } + if (vm_cc_cme(cc)->def->body.refined.orig_me) { + return refined_method_callable_without_refinement(vm_cc_cme(cc)); + } + else { + VALUE klass = RCLASS_SUPER(vm_cc_cme(cc)->defined_class); + const rb_callable_method_entry_t *cme = klass ? rb_callable_method_entry(klass, mid) : ((void*)0); + return cme; + } +} +static VALUE +vm_call_refined(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + struct rb_callcache *ref_cc = &(struct rb_callcache) { .flags = RUBY_T_IMEMO | (imemo_callcache << ((VALUE)RUBY_FL_USHIFT)) | ((VALUE)RUBY_FL_FREEZE) | ((VALUE)RUBY_FL_EXIVAR), .klass = ((VALUE)RUBY_Qundef), .cme_ = search_refined_method(ec, cfp, calling), .call_ = vm_call_general, .aux_ = {{ 0 }}, }; + if (vm_cc_cme(ref_cc)) { + calling->cc= ref_cc; + return vm_call_method(ec, cfp, calling); + } + else { + return vm_call_method_nome(ec, cfp, calling); + } +} +static inline VALUE vm_invoke_block(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling, const struct rb_callinfo *ci, _Bool is_lambda, VALUE block_handler); +__declspec(noinline) static VALUE vm_invoke_block_opt_call(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling, const struct rb_callinfo *ci, VALUE block_handler); +static VALUE +vm_invoke_block_opt_call(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + struct rb_calling_info *calling, const struct rb_callinfo *ci, VALUE block_handler) +{ + int argc = calling->argc; + if (argc > 0) __builtin___memmove_chk ((&(*(((((reg_cfp)->sp)))-(argc)-1))), (&(*(((((reg_cfp)->sp)))-(argc-1)-1))), rbimpl_size_mul_or_raise(sizeof(VALUE), (argc)), __builtin_object_size ((&(*(((((reg_cfp)->sp)))-(argc)-1))), 0)); + (((reg_cfp)->sp) -= (((1)))); + return vm_invoke_block(ec, reg_cfp, calling, ci, 0, block_handler); +} +static VALUE +vm_call_opt_call(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + ((void)0); + const struct rb_callinfo *ci = calling->ci; + VALUE procval = calling->recv; + return vm_invoke_block_opt_call(ec, reg_cfp, calling, ci, VM_BH_FROM_PROC(procval)); +} +static VALUE +vm_call_opt_block_call(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + ((void)0); + VALUE block_handler = VM_ENV_BLOCK_HANDLER(VM_CF_LEP(reg_cfp)); + const struct rb_callinfo *ci = calling->ci; + if (((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_CALL)]&((1 << 12))) == 0), 1)))) { + return vm_invoke_block_opt_call(ec, reg_cfp, calling, ci, block_handler); + } + else { + calling->recv = rb_vm_bh_to_procval(ec, block_handler); + calling->cc = rb_vm_search_method_slowpath(ci, rb_class_of(calling->recv)); + return vm_call_general(ec, reg_cfp, calling); + } +} +static VALUE +vm_call_opt_struct_aref0(rb_execution_context_t *ec, struct rb_calling_info *calling) +{ + VALUE recv = calling->recv; + ((void)0); + ((void)0); + ((void)0); + const unsigned int off = vm_cc_cme(calling->cc)->def->body.optimized.index; + return internal_RSTRUCT_GET(recv, off); +} +static VALUE +vm_call_opt_struct_aref(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + ((void)0); + VALUE ret = vm_call_opt_struct_aref0(ec, calling); + reg_cfp->sp -= 1; + return ret; +} +static VALUE +vm_call_opt_struct_aset0(rb_execution_context_t *ec, struct rb_calling_info *calling, VALUE val) +{ + VALUE recv = calling->recv; + ((void)0); + ((void)0); + ((void)0); + rb_check_frozen_inline(recv); + const unsigned int off = vm_cc_cme(calling->cc)->def->body.optimized.index; + internal_RSTRUCT_SET(recv, off, val); + return val; +} +static VALUE +vm_call_opt_struct_aset(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + ((void)0); + VALUE ret = vm_call_opt_struct_aset0(ec, calling, *(reg_cfp->sp - 1)); + reg_cfp->sp -= 2; + return ret; +} +__declspec(noinline) static VALUE vm_call_optimized(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, const struct rb_callinfo *ci, const struct rb_callcache *cc); +static VALUE +vm_call_optimized(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, + const struct rb_callinfo *ci, const struct rb_callcache *cc) +{ + switch (vm_cc_cme(cc)->def->body.optimized.type) { + case OPTIMIZED_METHOD_TYPE_SEND: + CC_SET_FASTPATH(cc, vm_call_opt_send, 1); + return vm_call_opt_send(ec, cfp, calling); + case OPTIMIZED_METHOD_TYPE_CALL: + CC_SET_FASTPATH(cc, vm_call_opt_call, 1); + return vm_call_opt_call(ec, cfp, calling); + case OPTIMIZED_METHOD_TYPE_BLOCK_CALL: + CC_SET_FASTPATH(cc, vm_call_opt_block_call, 1); + return vm_call_opt_block_call(ec, cfp, calling); + case OPTIMIZED_METHOD_TYPE_STRUCT_AREF: + CALLER_SETUP_ARG(cfp, calling, ci); + CALLER_REMOVE_EMPTY_KW_SPLAT(cfp, calling, ci); + rb_check_arity(calling->argc, 0, 0); + CC_SET_FASTPATH(cc, vm_call_opt_struct_aref, (vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_SIMPLE_bit))); + return vm_call_opt_struct_aref(ec, cfp, calling); + case OPTIMIZED_METHOD_TYPE_STRUCT_ASET: + CALLER_SETUP_ARG(cfp, calling, ci); + CALLER_REMOVE_EMPTY_KW_SPLAT(cfp, calling, ci); + rb_check_arity(calling->argc, 1, 1); + CC_SET_FASTPATH(cc, vm_call_opt_struct_aset, (vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_SIMPLE_bit))); + return vm_call_opt_struct_aset(ec, cfp, calling); + default: + rb_bug("vm_call_method: unsupported optimized method type (%d)", vm_cc_cme(cc)->def->body.optimized.type); + } +} +COLDFUNC static VALUE +vm_call_method_each_type(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) { + const struct rb_callinfo *ci = calling->ci; + const struct rb_callcache *cc = calling->cc; + const rb_callable_method_entry_t *cme = vm_cc_cme(cc); + VALUE v; + switch (cme->def->type) { + case VM_METHOD_TYPE_ISEQ: + CC_SET_FASTPATH(cc, vm_call_iseq_setup, 1); + return vm_call_iseq_setup(ec, cfp, calling); + case VM_METHOD_TYPE_NOTIMPLEMENTED: + case VM_METHOD_TYPE_CFUNC: + CC_SET_FASTPATH(cc, vm_call_cfunc, 1); + return vm_call_cfunc(ec, cfp, calling); + case VM_METHOD_TYPE_ATTRSET: + CALLER_SETUP_ARG(cfp, calling, ci); + CALLER_REMOVE_EMPTY_KW_SPLAT(cfp, calling, ci); + rb_check_arity(calling->argc, 1, 1); + const unsigned int aset_mask = ((0x01 << VM_CALL_ARGS_SPLAT_bit) | (0x01 << VM_CALL_KW_SPLAT_bit) | (0x01 << VM_CALL_KWARG_bit)); + if (vm_cc_markable(cc)) { + vm_cc_attr_index_initialize(cc, (((uintptr_t)1 << 32) - 1)); + if ((__builtin_expect(!!(ruby_vm_event_flags & (0x0020 | 0x0040)), 0))) { do { const rb_event_flag_t flag_arg_ = (0x0020); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, calling->recv, vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, ((VALUE)RUBY_Qundef), 0); } } while (0); v = vm_call_attrset_direct(ec, cfp, cc, calling->recv); do { const rb_event_flag_t flag_arg_ = (0x0040); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, calling->recv, vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, (v), 0); } } while (0); } else { CC_SET_FASTPATH(cc, vm_call_attrset, !(vm_ci_flag(ci) & aset_mask)); v = vm_call_attrset_direct(ec, cfp, cc, calling->recv); }; + } + else { + cc = &((struct rb_callcache) { + .flags = RUBY_T_IMEMO | + (imemo_callcache << ((VALUE)RUBY_FL_USHIFT)) | + ((VALUE)RUBY_FL_FREEZE) | + ((VALUE)(((uintptr_t)1 << 32) - 1) << ((8 * 8) - 32)) | + ((VALUE)RUBY_FL_EXIVAR), + .klass = cc->klass, + .cme_ = cc->cme_, + .call_ = cc->call_, + .aux_ = { + .attr = { + .value = (((uintptr_t)1 << 32) - 1) << ((8 * 8) - 32), + } + }, + }); + if ((__builtin_expect(!!(ruby_vm_event_flags & (0x0020 | 0x0040)), 0))) { do { const rb_event_flag_t flag_arg_ = (0x0020); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, calling->recv, vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, ((VALUE)RUBY_Qundef), 0); } } while (0); v = vm_call_attrset_direct(ec, cfp, cc, calling->recv); do { const rb_event_flag_t flag_arg_ = (0x0040); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, calling->recv, vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, (v), 0); } } while (0); } else { CC_SET_FASTPATH(cc, vm_call_attrset, !(vm_ci_flag(ci) & aset_mask)); v = vm_call_attrset_direct(ec, cfp, cc, calling->recv); }; + } + return v; + case VM_METHOD_TYPE_IVAR: + CALLER_SETUP_ARG(cfp, calling, ci); + CALLER_REMOVE_EMPTY_KW_SPLAT(cfp, calling, ci); + rb_check_arity(calling->argc, 0, 0); + vm_cc_attr_index_initialize(cc, (((uintptr_t)1 << 32) - 1)); + const unsigned int ivar_mask = ((0x01 << VM_CALL_ARGS_SPLAT_bit) | (0x01 << VM_CALL_KW_SPLAT_bit)); + if ((__builtin_expect(!!(ruby_vm_event_flags & (0x0020 | 0x0040)), 0))) { do { const rb_event_flag_t flag_arg_ = (0x0020); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, calling->recv, vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, ((VALUE)RUBY_Qundef), 0); } } while (0); v = vm_call_ivar(ec, cfp, calling); do { const rb_event_flag_t flag_arg_ = (0x0040); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, calling->recv, vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, (v), 0); } } while (0); } else { CC_SET_FASTPATH(cc, vm_call_ivar, !(vm_ci_flag(ci) & ivar_mask)); v = vm_call_ivar(ec, cfp, calling); }; + return v; + case VM_METHOD_TYPE_MISSING: + vm_cc_method_missing_reason_set(cc, 0); + CC_SET_FASTPATH(cc, vm_call_method_missing, 1); + return vm_call_method_missing(ec, cfp, calling); + case VM_METHOD_TYPE_BMETHOD: + CC_SET_FASTPATH(cc, vm_call_bmethod, 1); + return vm_call_bmethod(ec, cfp, calling); + case VM_METHOD_TYPE_ALIAS: + CC_SET_FASTPATH(cc, vm_call_alias, 1); + return vm_call_alias(ec, cfp, calling); + case VM_METHOD_TYPE_OPTIMIZED: + return vm_call_optimized(ec, cfp, calling, ci, cc); + case VM_METHOD_TYPE_UNDEF: + break; + case VM_METHOD_TYPE_ZSUPER: + return vm_call_zsuper(ec, cfp, calling, (((rb_classext_t *)((char *)(vm_cc_cme(cc)->defined_class) + sizeof(struct RClass)))->origin_)); + case VM_METHOD_TYPE_REFINED: + return vm_call_refined(ec, cfp, calling); + } + rb_bug("vm_call_method: unsupported method type (%d)", vm_cc_cme(cc)->def->type); +} +__declspec(noreturn) static void vm_raise_method_missing(rb_execution_context_t *ec, int argc, const VALUE *argv, VALUE obj, int call_status); +static VALUE +vm_call_method_nome(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + const struct rb_callinfo *ci = calling->ci; + const int stat = ci_missing_reason(ci); + if (vm_ci_mid(ci) == idMethodMissing) { + rb_control_frame_t *reg_cfp = cfp; + VALUE *argv = (((((reg_cfp)->sp)))-(calling->argc)); + vm_raise_method_missing(ec, calling->argc, argv, calling->recv, stat); + } + else { + return vm_call_method_missing_body(ec, cfp, calling, ci, stat); + } +} +static VALUE +vm_defined_class_for_protected_call(const rb_callable_method_entry_t *me) +{ + VALUE defined_class = me->defined_class; + VALUE refined_class = (((rb_classext_t *)((char *)(defined_class) + sizeof(struct RClass)))->refined_class); + return RB_NIL_P(refined_class) ? defined_class : refined_class; +} +static inline VALUE +vm_call_method(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + const struct rb_callinfo *ci = calling->ci; + const struct rb_callcache *cc = calling->cc; + ((void)0); + if (vm_cc_cme(cc) != ((void*)0)) { + switch ((rb_method_visibility_t)(((vm_cc_cme(cc))->flags & (((VALUE)RUBY_FL_USER4) | ((VALUE)RUBY_FL_USER5))) >> ((((VALUE)RUBY_FL_USHIFT) + 4)+0))) { + case METHOD_VISI_PUBLIC: + return vm_call_method_each_type(ec, cfp, calling); + case METHOD_VISI_PRIVATE: + if (!(vm_ci_flag(ci) & (0x01 << VM_CALL_FCALL_bit))) { + enum method_missing_reason stat = MISSING_PRIVATE; + if (vm_ci_flag(ci) & (0x01 << VM_CALL_VCALL_bit)) stat |= MISSING_VCALL; + vm_cc_method_missing_reason_set(cc, stat); + CC_SET_FASTPATH(cc, vm_call_method_missing, 1); + return vm_call_method_missing(ec, cfp, calling); + } + return vm_call_method_each_type(ec, cfp, calling); + case METHOD_VISI_PROTECTED: + if (!(vm_ci_flag(ci) & ((0x01 << VM_CALL_OPT_SEND_bit) | (0x01 << VM_CALL_FCALL_bit)))) { + VALUE defined_class = vm_defined_class_for_protected_call(vm_cc_cme(cc)); + if (!rb_obj_is_kind_of(cfp->self, defined_class)) { + vm_cc_method_missing_reason_set(cc, MISSING_PROTECTED); + return vm_call_method_missing(ec, cfp, calling); + } + else { + ((void)0); + struct rb_callcache cc_on_stack = *cc; + RB_FL_SET_RAW((VALUE)&cc_on_stack, ((VALUE)RUBY_FL_FREEZE)); + calling->cc = &cc_on_stack; + return vm_call_method_each_type(ec, cfp, calling); + } + } + return vm_call_method_each_type(ec, cfp, calling); + default: + rb_bug("unreachable"); + } + } + else { + return vm_call_method_nome(ec, cfp, calling); + } +} +static VALUE +vm_call_general(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_method(ec, reg_cfp, calling); +}static inline +void +rb_vm_cc_general(const struct rb_callcache *cc) +{ + ((void)0); + ((void)0); + *(vm_call_handler *)&cc->call_ = vm_call_general; +} +static VALUE +vm_call_super_method(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + ((void)0); + if (ec == ((void*)0)) rb_bug("unreachable"); + ((void)0); + return vm_call_method(ec, reg_cfp, calling); +} +static inline VALUE +vm_search_normal_superclass(VALUE klass) +{ + if (RB_BUILTIN_TYPE(klass) == RUBY_T_ICLASS && + (__builtin_constant_p(RUBY_T_MODULE) ? rbimpl_RB_TYPE_P_fastpath((((struct RBasic *)(klass))->klass), (RUBY_T_MODULE)) : (RB_TYPE_P)((((struct RBasic *)(klass))->klass), (RUBY_T_MODULE))) && + RB_FL_TEST_RAW(((struct RBasic *)(klass))->klass, RMODULE_IS_REFINEMENT)) { + klass = ((struct RBasic *)(klass))->klass; + } + klass = (((rb_classext_t *)((char *)(klass) + sizeof(struct RClass)))->origin_); + return RCLASS_SUPER(klass); +} +__declspec(noreturn) static void vm_super_outside(void); +static void +vm_super_outside(void) +{ + rb_raise(rb_eNoMethodError, "super called outside of method"); +} +static const struct rb_callcache * +empty_cc_for_super(void) +{ + return rb_vm_empty_cc_for_super(); +} +static const struct rb_callcache * +vm_search_super_method(const rb_control_frame_t *reg_cfp, struct rb_call_data *cd, VALUE recv) +{ + VALUE current_defined_class; + const rb_callable_method_entry_t *me = rb_vm_frame_method_entry(reg_cfp); + if (!me) { + vm_super_outside(); + } + current_defined_class = vm_defined_class_for_protected_call(me); + if (RB_BUILTIN_TYPE(current_defined_class) != RUBY_T_MODULE && + reg_cfp->iseq != method_entry_iseqptr(me) && + !rb_obj_is_kind_of(recv, current_defined_class)) { + VALUE m = (__builtin_constant_p(RUBY_T_ICLASS) ? rbimpl_RB_TYPE_P_fastpath((current_defined_class), (RUBY_T_ICLASS)) : (RB_TYPE_P)((current_defined_class), (RUBY_T_ICLASS))) ? + (((rb_classext_t *)((char *)(current_defined_class) + sizeof(struct RClass)))->includer) : current_defined_class; + if (m) { + rb_raise(rb_eTypeError, + "self has wrong type to call super in this context: " + "%""l""i" "\v"" (expected %""l""i" "\v"")", + rb_obj_class(recv), m); + } + } + if (me->def->type == VM_METHOD_TYPE_BMETHOD && (vm_ci_flag(cd->ci) & (0x01 << VM_CALL_ZSUPER_bit))) { + rb_raise(rb_eRuntimeError, + "implicit argument passing of super from method defined" + " by define_method() is not supported." + " Specify all arguments explicitly."); + } + ID mid = me->def->original_id; + cd->ci = vm_ci_new_runtime_(mid, vm_ci_flag(cd->ci), vm_ci_argc(cd->ci), vm_ci_kwarg(cd->ci), "./vm_insnhelper.c", 4186); + (rb_obj_written((VALUE)(reg_cfp->iseq), (VALUE)(((VALUE)RUBY_Qundef)), (VALUE)(cd->ci), "./vm_insnhelper.c", 4188)); + const struct rb_callcache *cc; + VALUE klass = vm_search_normal_superclass(me->defined_class); + if (!klass) { + cc = vm_cc_new(klass, ((void*)0), vm_call_method_missing); + rb_obj_write((VALUE)(reg_cfp->iseq), __extension__({ + ; + ; __typeof__((VALUE *)(&cd->cc)) unaligned_member_access_result = ((VALUE *)(&cd->cc)); + ; unaligned_member_access_result; }), (VALUE)(cc), "./vm_insnhelper.c", 4197); + } + else { + cc = vm_search_method_fastpath((VALUE)reg_cfp->iseq, cd, klass); + const rb_callable_method_entry_t *cached_cme = vm_cc_cme(cc); + if (cached_cme == ((void*)0)) { + cd->cc = empty_cc_for_super(); + } + else if (cached_cme->called_id != mid) { + const rb_callable_method_entry_t *cme = rb_callable_method_entry(klass, mid); + if (cme) { + cc = vm_cc_new(klass, cme, vm_call_super_method); + rb_obj_write((VALUE)(reg_cfp->iseq), __extension__({ + ; + ; __typeof__((VALUE *)(&cd->cc)) unaligned_member_access_result = ((VALUE *)(&cd->cc)); + ; unaligned_member_access_result; }), (VALUE)(cc), "./vm_insnhelper.c", 4212); + } + else { + cd->cc = cc = empty_cc_for_super(); + } + } + else { + switch (cached_cme->def->type) { + case VM_METHOD_TYPE_REFINED: + case VM_METHOD_TYPE_ATTRSET: + case VM_METHOD_TYPE_IVAR: + vm_cc_call_set(cc, vm_call_super_method); + break; + default: + break; + } + } + } + ((void)0); + return cc; +} +static inline int +block_proc_is_lambda(const VALUE procval) +{ + rb_proc_t *proc; + if (procval) { + (((proc)) = (rb_proc_t*)((struct RData *)(((procval))))->data); + return proc->is_lambda; + } + else { + return 0; + } +} +static VALUE +vm_yield_with_cfunc(rb_execution_context_t *ec, + const struct rb_captured_block *captured, + VALUE self, int argc, const VALUE *argv, int kw_splat, VALUE block_handler, + const rb_callable_method_entry_t *me) +{ + int is_lambda = 0; + VALUE val, arg, blockarg; + int frame_flag; + const struct vm_ifunc *ifunc = captured->code.ifunc; + if (is_lambda) { + arg = rb_ary_new_from_values(argc, argv); + } + else if (argc == 0) { + arg = ((VALUE)RUBY_Qnil); + } + else { + arg = argv[0]; + } + blockarg = rb_vm_bh_to_procval(ec, block_handler); + frame_flag = VM_FRAME_MAGIC_IFUNC | VM_FRAME_FLAG_CFRAME | (me ? VM_FRAME_FLAG_BMETHOD : 0); + if (kw_splat) { + frame_flag |= VM_FRAME_FLAG_CFRAME_KW; + } + vm_push_frame(ec, (const rb_iseq_t *)captured->code.ifunc, + frame_flag, + self, + ((VALUE)((captured->ep)) | (0x01)), + (VALUE)me, + 0, ec->cfp->sp, 0, 0); + val = (*ifunc->func)(arg, (VALUE)ifunc->data, argc, argv, blockarg); + rb_vm_pop_frame(ec); + return val; +} +static VALUE +vm_yield_with_symbol(rb_execution_context_t *ec, VALUE symbol, int argc, const VALUE *argv, int kw_splat, VALUE block_handler) +{ + return rb_sym_proc_call(rb_sym2id(symbol), argc, argv, kw_splat, rb_vm_bh_to_procval(ec, block_handler)); +} +static inline int +vm_callee_setup_block_arg_arg0_splat(rb_control_frame_t *cfp, const rb_iseq_t *iseq, VALUE *argv, VALUE ary) +{ + int i; + long len = rb_array_len(ary); + do { __extension__ _Static_assert(sizeof(*((cfp)->sp)) == sizeof(VALUE), "sizeof_sp" ": " "sizeof(*((cfp)->sp)) == sizeof(VALUE)"); __extension__ _Static_assert(sizeof(*((cfp))) == sizeof(rb_control_frame_t), "sizeof_cfp" ": " "sizeof(*((cfp))) == sizeof(rb_control_frame_t)"); const struct rb_control_frame_struct *bound = (void *)&((cfp)->sp)[((((iseq)->body)->param.lead_num))]; if ((__builtin_expect(!!(((cfp)) <= &bound[1]), 0))) { vm_stackoverflow(); } } while (0); + for (i=0; ibody)->param.lead_num; i++) { + argv[i] = RARRAY_AREF(ary, i); + } + return i; +} +static inline VALUE +vm_callee_setup_block_arg_arg0_check(VALUE *argv) +{ + VALUE ary, arg0 = argv[0]; + ary = rb_check_array_type(arg0); + ((void)0); + return ary; +} +static int +vm_callee_setup_block_arg(rb_execution_context_t *ec, struct rb_calling_info *calling, const struct rb_callinfo *ci, const rb_iseq_t *iseq, VALUE *argv, const enum arg_setup_type arg_setup_type) +{ + if (rb_simple_iseq_p(iseq)) { + rb_control_frame_t *cfp = ec->cfp; + VALUE arg0; + CALLER_SETUP_ARG(cfp, calling, ci); + CALLER_REMOVE_EMPTY_KW_SPLAT(cfp, calling, ci); + if (arg_setup_type == arg_setup_block && + calling->argc == 1 && + ((iseq)->body)->param.flags.has_lead && + !((iseq)->body)->param.flags.ambiguous_param0 && + !RB_NIL_P(arg0 = vm_callee_setup_block_arg_arg0_check(argv))) { + calling->argc = vm_callee_setup_block_arg_arg0_splat(cfp, iseq, argv, arg0); + } + if (calling->argc != ((iseq)->body)->param.lead_num) { + if (arg_setup_type == arg_setup_block) { + if (calling->argc < ((iseq)->body)->param.lead_num) { + int i; + do { __extension__ _Static_assert(sizeof(*((cfp)->sp)) == sizeof(VALUE), "sizeof_sp" ": " "sizeof(*((cfp)->sp)) == sizeof(VALUE)"); __extension__ _Static_assert(sizeof(*((cfp))) == sizeof(rb_control_frame_t), "sizeof_cfp" ": " "sizeof(*((cfp))) == sizeof(rb_control_frame_t)"); const struct rb_control_frame_struct *bound = (void *)&((cfp)->sp)[((((iseq)->body)->param.lead_num))]; if ((__builtin_expect(!!(((cfp)) <= &bound[1]), 0))) { vm_stackoverflow(); } } while (0); + for (i=calling->argc; i<((iseq)->body)->param.lead_num; i++) argv[i] = ((VALUE)RUBY_Qnil); + calling->argc = ((iseq)->body)->param.lead_num; + } + else if (calling->argc > ((iseq)->body)->param.lead_num) { + calling->argc = ((iseq)->body)->param.lead_num; + } + } + else { + argument_arity_error(ec, iseq, calling->argc, ((iseq)->body)->param.lead_num, ((iseq)->body)->param.lead_num); + } + } + return 0; + } + else { + return setup_parameters_complex(ec, iseq, calling, ci, argv, arg_setup_type); + } +} +static int +vm_yield_setup_args(rb_execution_context_t *ec, const rb_iseq_t *iseq, const int argc, VALUE *argv, int kw_splat, VALUE block_handler, enum arg_setup_type arg_setup_type) +{ + struct rb_calling_info calling_entry, *calling; + calling = &calling_entry; + calling->argc = argc; + calling->block_handler = block_handler; + calling->kw_splat = kw_splat; + calling->recv = ((VALUE)RUBY_Qundef); + struct rb_callinfo dummy_ci = (struct rb_callinfo) { .flags = RUBY_T_IMEMO | (imemo_callinfo << ((VALUE)RUBY_FL_USHIFT)) | ((VALUE)RUBY_FL_USER4), .mid = 0, .flag = (kw_splat ? (0x01 << VM_CALL_KW_SPLAT_bit) : 0), .argc = 0, .kwarg = 0, }; + return vm_callee_setup_block_arg(ec, calling, &dummy_ci, iseq, argv, arg_setup_type); +} +static VALUE +vm_invoke_iseq_block(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + struct rb_calling_info *calling, const struct rb_callinfo *ci, + _Bool is_lambda, VALUE block_handler) +{ + const struct rb_captured_block *captured = VM_BH_TO_ISEQ_BLOCK(block_handler); + const rb_iseq_t *iseq = rb_iseq_check(captured->code.iseq); + const int arg_size = ((iseq)->body)->param.size; + VALUE * const rsp = ((((reg_cfp)->sp))) - calling->argc; + int opt_pc = vm_callee_setup_block_arg(ec, calling, ci, iseq, rsp, is_lambda ? arg_setup_method : arg_setup_block); + (((reg_cfp)->sp) = (((rsp)))); + vm_push_frame(ec, iseq, + VM_FRAME_MAGIC_BLOCK | (is_lambda ? VM_FRAME_FLAG_LAMBDA : 0), + captured->self, + ((VALUE)((captured->ep)) | (0x01)), 0, + ((iseq)->body)->iseq_encoded + opt_pc, + rsp + arg_size, + ((iseq)->body)->local_table_size - arg_size, ((iseq)->body)->stack_max); + return ((VALUE)RUBY_Qundef); +} +static VALUE +vm_invoke_symbol_block(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + struct rb_calling_info *calling, const struct rb_callinfo *ci, + __attribute__ ((__unused__)) _Bool is_lambda, VALUE block_handler) +{ + if (calling->argc < 1) { + rb_raise(rb_eArgError, "no receiver given"); + } + else { + VALUE symbol = VM_BH_TO_SYMBOL(block_handler); + CALLER_SETUP_ARG(reg_cfp, calling, ci); + calling->recv = (*(((((reg_cfp)->sp)))-(--calling->argc)-1)); + return vm_call_symbol(ec, reg_cfp, calling, ci, symbol, 0); + } +} +static VALUE +vm_invoke_ifunc_block(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + struct rb_calling_info *calling, const struct rb_callinfo *ci, + __attribute__ ((__unused__)) _Bool is_lambda, VALUE block_handler) +{ + VALUE val; + int argc; + const struct rb_captured_block *captured = VM_BH_TO_IFUNC_BLOCK(block_handler); + CALLER_SETUP_ARG(ec->cfp, calling, ci); + CALLER_REMOVE_EMPTY_KW_SPLAT(ec->cfp, calling, ci); + argc = calling->argc; + val = vm_yield_with_cfunc(ec, captured, captured->self, argc, (((((reg_cfp)->sp)))-(argc)), calling->kw_splat, calling->block_handler, ((void*)0)); + ((((reg_cfp)->sp) -= (((argc))))); + return val; +} +static VALUE +vm_proc_to_block_handler(VALUE procval) +{ + const struct rb_block *block = vm_proc_block(procval); + switch (vm_block_type(block)) { + case block_type_iseq: + return VM_BH_FROM_ISEQ_BLOCK(&block->as.captured); + case block_type_ifunc: + return VM_BH_FROM_IFUNC_BLOCK(&block->as.captured); + case block_type_symbol: + return VM_BH_FROM_SYMBOL(block->as.symbol); + case block_type_proc: + return VM_BH_FROM_PROC(block->as.proc); + } + __builtin_unreachable(); + return ((VALUE)RUBY_Qundef); +} +static VALUE +vm_invoke_proc_block(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + struct rb_calling_info *calling, const struct rb_callinfo *ci, + _Bool is_lambda, VALUE block_handler) +{ + while (vm_block_handler_type(block_handler) == block_handler_type_proc) { + VALUE proc = VM_BH_TO_PROC(block_handler); + is_lambda = block_proc_is_lambda(proc); + block_handler = vm_proc_to_block_handler(proc); + } + return vm_invoke_block(ec, reg_cfp, calling, ci, is_lambda, block_handler); +} +static inline VALUE +vm_invoke_block(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + struct rb_calling_info *calling, const struct rb_callinfo *ci, + _Bool is_lambda, VALUE block_handler) +{ + VALUE (*func)(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + struct rb_calling_info *calling, const struct rb_callinfo *ci, + _Bool is_lambda, VALUE block_handler); + switch (vm_block_handler_type(block_handler)) { + case block_handler_type_iseq: func = vm_invoke_iseq_block; break; + case block_handler_type_ifunc: func = vm_invoke_ifunc_block; break; + case block_handler_type_proc: func = vm_invoke_proc_block; break; + case block_handler_type_symbol: func = vm_invoke_symbol_block; break; + default: rb_bug("vm_invoke_block: unreachable"); + } + return func(ec, reg_cfp, calling, ci, is_lambda, block_handler); +} +static VALUE +vm_make_proc_with_iseq(const rb_iseq_t *blockiseq) +{ + const rb_execution_context_t *ec = rb_current_execution_context(1); + const rb_control_frame_t *cfp = rb_vm_get_ruby_level_next_cfp(ec, ec->cfp); + struct rb_captured_block *captured; + if (cfp == 0) { + rb_bug("vm_make_proc_with_iseq: unreachable"); + } + captured = VM_CFP_TO_CAPTURED_BLOCK(cfp); + captured->code.iseq = blockiseq; + return rb_vm_make_proc(ec, captured, rb_cProc); +} +static VALUE +vm_once_exec(VALUE iseq) +{ + VALUE proc = vm_make_proc_with_iseq((rb_iseq_t *)iseq); + return rb_proc_call_with_block(proc, 0, 0, ((VALUE)RUBY_Qnil)); +} +static VALUE +vm_once_clear(VALUE data) +{ + union iseq_inline_storage_entry *is = (union iseq_inline_storage_entry *)data; + is->once.running_thread = ((void*)0); + return ((VALUE)RUBY_Qnil); +} +static _Bool +check_respond_to_missing(VALUE obj, VALUE v) +{ + VALUE args[2]; + VALUE r; + args[0] = obj; args[1] = ((VALUE)RUBY_Qfalse); + r = rb_check_funcall(v, idRespond_to_missing, 2, args); + if (!RB_UNDEF_P(r) && RB_TEST(r)) { + return 1; + } + else { + return 0; + } +} +static _Bool +vm_defined(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, rb_num_t op_type, VALUE obj, VALUE v) +{ + VALUE klass; + enum defined_type type = (enum defined_type)op_type; + switch (type) { + case DEFINED_IVAR: + return rb_ivar_defined((((((reg_cfp)))->self)), rb_sym2id(obj)); + break; + case DEFINED_GVAR: + return rb_gvar_defined(rb_sym2id(obj)); + break; + case DEFINED_CVAR: { + const rb_cref_t *cref = vm_get_cref(((((reg_cfp)->ep)))); + klass = vm_get_cvar_base(cref, (((reg_cfp))), 0); + return rb_cvar_defined(klass, rb_sym2id(obj)); + break; + } + case DEFINED_CONST: + case DEFINED_CONST_FROM: { + _Bool allow_nil = type == DEFINED_CONST; + klass = v; + return vm_get_ev_const(ec, klass, rb_sym2id(obj), allow_nil, 1); + break; + } + case DEFINED_FUNC: + klass = rb_class_of(v); + return rb_ec_obj_respond_to(ec, v, rb_sym2id(obj), 1); + break; + case DEFINED_METHOD:{ + VALUE klass = rb_class_of(v); + const rb_method_entry_t *me = rb_method_entry_with_refinements(klass, rb_sym2id(obj), ((void*)0)); + if (me) { + switch ((rb_method_visibility_t)(((me)->flags & (((VALUE)RUBY_FL_USER4) | ((VALUE)RUBY_FL_USER5))) >> ((((VALUE)RUBY_FL_USHIFT) + 4)+0))) { + case METHOD_VISI_PRIVATE: + break; + case METHOD_VISI_PROTECTED: + if (!rb_obj_is_kind_of((((((reg_cfp)))->self)), rb_class_real(me->defined_class))) { + break; + } + case METHOD_VISI_PUBLIC: + return 1; + break; + default: + rb_bug("vm_defined: unreachable: %u", (unsigned int)(rb_method_visibility_t)(((me)->flags & (((VALUE)RUBY_FL_USER4) | ((VALUE)RUBY_FL_USER5))) >> ((((VALUE)RUBY_FL_USHIFT) + 4)+0))); + } + } + else { + return check_respond_to_missing(obj, v); + } + break; + } + case DEFINED_YIELD: + if (((VM_EP_LEP(((((reg_cfp)->ep)))))[(-1)]) != 0) { + return 1; + } + break; + case DEFINED_ZSUPER: + { + const rb_callable_method_entry_t *me = rb_vm_frame_method_entry((((reg_cfp)))); + if (me) { + VALUE klass = vm_search_normal_superclass(me->defined_class); + ID id = me->def->original_id; + return rb_method_boundp(klass, id, 0); + } + } + break; + case DEFINED_REF:{ + return vm_getspecial(ec, (VM_EP_LEP(((((reg_cfp)->ep))))), ((VALUE)RUBY_Qfalse), RB_FIX2INT(obj)) != ((VALUE)RUBY_Qnil); + break; + } + default: + rb_bug("unimplemented defined? type (VM)"); + break; + } + return 0; +}static inline +_Bool +rb_vm_defined(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, rb_num_t op_type, VALUE obj, VALUE v) +{ + return vm_defined(ec, reg_cfp, op_type, obj, v); +} +static const VALUE * +vm_get_ep(const VALUE *const reg_ep, rb_num_t lv) +{ + rb_num_t i; + const VALUE *ep = reg_ep; + for (i = 0; i < lv; i++) { + ep = ((VALUE *)((ep)[(-1)] & ~0x03)); + } + return ep; +} +static VALUE +vm_get_special_object(const VALUE *const reg_ep, + enum vm_special_object_type type) +{ + switch (type) { + case VM_SPECIAL_OBJECT_VMCORE: + return rb_mRubyVMFrozenCore; + case VM_SPECIAL_OBJECT_CBASE: + return vm_get_cbase(reg_ep); + case VM_SPECIAL_OBJECT_CONST_BASE: + return vm_get_const_base(reg_ep); + default: + rb_bug("putspecialobject insn: unknown value_type %d", type); + } +} +static VALUE +vm_concat_array(VALUE ary1, VALUE ary2st) +{ + const VALUE ary2 = ary2st; + VALUE tmp1 = rb_check_to_array(ary1); + VALUE tmp2 = rb_check_to_array(ary2); + if (RB_NIL_P(tmp1)) { + tmp1 = rb_ary_new_from_args(1, ary1); + } + if (RB_NIL_P(tmp2)) { + tmp2 = rb_ary_new_from_args(1, ary2); + } + if (tmp1 == ary1) { + tmp1 = rb_ary_dup(ary1); + } + return rb_ary_concat(tmp1, tmp2); +}static inline +VALUE +rb_vm_concat_array(VALUE ary1, VALUE ary2st) +{ + return vm_concat_array(ary1, ary2st); +} +static VALUE +vm_splat_array(VALUE flag, VALUE ary) +{ + VALUE tmp = rb_check_to_array(ary); + if (RB_NIL_P(tmp)) { + return rb_ary_new_from_args(1, ary); + } + else if (RB_TEST(flag)) { + return rb_ary_dup(tmp); + } + else { + return tmp; + } +}static inline +VALUE +rb_vm_splat_array(VALUE flag, VALUE ary) +{ + return vm_splat_array(flag, ary); +} +static VALUE +vm_check_match(rb_execution_context_t *ec, VALUE target, VALUE pattern, rb_num_t flag) +{ + enum vm_check_match_type type = ((int)flag) & 0x03; + if (flag & 0x04) { + long i; + const long n = rb_array_len(pattern); + for (i = 0; i < n; i++) { + VALUE v = RARRAY_AREF(pattern, i); + VALUE c = check_match(ec, v, target, type); + if (RB_TEST(c)) { + return c; + } + } + return ((VALUE)RUBY_Qfalse); + } + else { + return check_match(ec, pattern, target, type); + } +} +static VALUE +vm_check_keyword(lindex_t bits, lindex_t idx, const VALUE *ep) +{ + const VALUE kw_bits = *(ep - bits); + if (RB_FIXNUM_P(kw_bits)) { + unsigned int b = (unsigned int)rb_fix2ulong(kw_bits); + if ((idx < (32-1)) && (b & (0x01 << idx))) + return ((VALUE)RUBY_Qfalse); + } + else { + ((void)0); + if (rb_hash_has_key(kw_bits, __builtin_choose_expr( __builtin_constant_p(idx), ((VALUE)(idx)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(idx)))) return ((VALUE)RUBY_Qfalse); + } + return ((VALUE)RUBY_Qtrue); +} +static void +vm_dtrace(rb_event_flag_t flag, rb_execution_context_t *ec) +{ + if (0 || + 0 || + 0 || + 0) { + switch (flag) { + case 0x0008: + do { if ((__builtin_expect(!!(0), 0))) { struct ruby_dtrace_method_hook_args args; if (rb_dtrace_setup(ec, 0, 0, &args)) { do {} while (0); } } } while (0); + return; + case 0x0020: + do { if ((__builtin_expect(!!(0), 0))) { struct ruby_dtrace_method_hook_args args; if (rb_dtrace_setup(ec, 0, 0, &args)) { do {} while (0); } } } while (0); + return; + case 0x0010: + do { if ((__builtin_expect(!!(0), 0))) { struct ruby_dtrace_method_hook_args args; if (rb_dtrace_setup(ec, 0, 0, &args)) { do {} while (0); } } } while (0); + return; + case 0x0040: + do { if ((__builtin_expect(!!(0), 0))) { struct ruby_dtrace_method_hook_args args; if (rb_dtrace_setup(ec, 0, 0, &args)) { do {} while (0); } } } while (0); + return; + } + } +} +static VALUE +vm_const_get_under(ID id, rb_num_t flags, VALUE cbase) +{ + if (!rb_const_defined_at(cbase, id)) { + return 0; + } + else if (((flags) & 0x08)) { + return rb_public_const_get_at(cbase, id); + } + else { + return rb_const_get_at(cbase, id); + } +} +static VALUE +vm_check_if_class(ID id, rb_num_t flags, VALUE super, VALUE klass) +{ + if (!(__builtin_constant_p(RUBY_T_CLASS) ? rbimpl_RB_TYPE_P_fastpath((klass), (RUBY_T_CLASS)) : (RB_TYPE_P)((klass), (RUBY_T_CLASS)))) { + return 0; + } + else if (((flags) & 0x10)) { + VALUE tmp = rb_class_real(RCLASS_SUPER(klass)); + if (tmp != super) { + rb_raise(rb_eTypeError, + "superclass mismatch for class %""l""i" "\v""", + rb_id2str(id)); + } + else { + return klass; + } + } + else { + return klass; + } +} +static VALUE +vm_check_if_module(ID id, VALUE mod) +{ + if (!(__builtin_constant_p(RUBY_T_MODULE) ? rbimpl_RB_TYPE_P_fastpath((mod), (RUBY_T_MODULE)) : (RB_TYPE_P)((mod), (RUBY_T_MODULE)))) { + return 0; + } + else { + return mod; + } +} +static VALUE +declare_under(ID id, VALUE cbase, VALUE c) +{ + rb_set_class_path_string(c, cbase, rb_id2str(id)); + rb_const_set(cbase, id, c); + return c; +} +static VALUE +vm_declare_class(ID id, rb_num_t flags, VALUE cbase, VALUE super) +{ + VALUE s = ((flags) & 0x10) ? super : rb_cObject; + VALUE c = declare_under(id, cbase, rb_define_class_id(id, s)); + rb_define_alloc_func(c, rb_get_alloc_func(c)); + rb_class_inherited(s, c); + return c; +} +static VALUE +vm_declare_module(ID id, VALUE cbase) +{ + return declare_under(id, cbase, rb_module_new()); +} +__declspec(noreturn) static void unmatched_redefinition(const char *type, VALUE cbase, ID id, VALUE old); +static void +unmatched_redefinition(const char *type, VALUE cbase, ID id, VALUE old) +{ + VALUE name = rb_id2str(id); + VALUE message = rb_sprintf("%""l""i" "\v"" is not a %s", + name, type); + VALUE location = rb_const_source_location_at(cbase, id); + if (!RB_NIL_P(location)) { + rb_str_catf(message, "\n%""l""i" "\v"":%""l""i" "\v"":" + " previous definition of %""l""i" "\v"" was here", + rb_ary_entry(location, 0), rb_ary_entry(location, 1), name); + } + rb_exc_raise(rb_exc_new_str(rb_eTypeError, message)); +} +static VALUE +vm_define_class(ID id, rb_num_t flags, VALUE cbase, VALUE super) +{ + VALUE klass; + if (((flags) & 0x10) && !(__builtin_constant_p(RUBY_T_CLASS) ? rbimpl_RB_TYPE_P_fastpath((super), (RUBY_T_CLASS)) : (RB_TYPE_P)((super), (RUBY_T_CLASS)))) { + rb_raise(rb_eTypeError, + "superclass must be an instance of Class (given an instance of %""l""i" "\v"")", + rb_obj_class(super)); + } + vm_check_if_namespace(cbase); + rb_autoload_load(cbase, id); + if ((klass = vm_const_get_under(id, flags, cbase)) != 0) { + if (!vm_check_if_class(id, flags, super, klass)) + unmatched_redefinition("class", cbase, id, klass); + return klass; + } + else { + return vm_declare_class(id, flags, cbase, super); + } +} +static VALUE +vm_define_module(ID id, rb_num_t flags, VALUE cbase) +{ + VALUE mod; + vm_check_if_namespace(cbase); + if ((mod = vm_const_get_under(id, flags, cbase)) != 0) { + if (!vm_check_if_module(id, mod)) + unmatched_redefinition("module", cbase, id, mod); + return mod; + } + else { + return vm_declare_module(id, cbase); + } +} +static VALUE +vm_find_or_create_class_by_id(ID id, + rb_num_t flags, + VALUE cbase, + VALUE super) +{ + rb_vm_defineclass_type_t type = ((rb_vm_defineclass_type_t)(flags) & VM_DEFINECLASS_TYPE_MASK); + switch (type) { + case VM_DEFINECLASS_TYPE_CLASS: + return vm_define_class(id, flags, cbase, super); + case VM_DEFINECLASS_TYPE_SINGLETON_CLASS: + return rb_singleton_class(cbase); + case VM_DEFINECLASS_TYPE_MODULE: + return vm_define_module(id, flags, cbase); + default: + rb_bug("unknown defineclass type: %d", (int)type); + } +} +static rb_method_visibility_t +vm_scope_visibility_get(const rb_execution_context_t *ec) +{ + const rb_control_frame_t *cfp = rb_vm_get_ruby_level_next_cfp(ec, ec->cfp); + if (!vm_env_cref_by_cref(cfp->ep)) { + return METHOD_VISI_PUBLIC; + } + else { + return CREF_SCOPE_VISI(vm_ec_cref(ec))->method_visi; + } +} +static int +vm_scope_module_func_check(const rb_execution_context_t *ec) +{ + const rb_control_frame_t *cfp = rb_vm_get_ruby_level_next_cfp(ec, ec->cfp); + if (!vm_env_cref_by_cref(cfp->ep)) { + return 0; + } + else { + return CREF_SCOPE_VISI(vm_ec_cref(ec))->module_func; + } +} +static void +vm_define_method(const rb_execution_context_t *ec, VALUE obj, ID id, VALUE iseqval, int is_singleton) +{ + VALUE klass; + rb_method_visibility_t visi; + rb_cref_t *cref = vm_ec_cref(ec); + if (is_singleton) { + klass = rb_singleton_class(obj); + visi = METHOD_VISI_PUBLIC; + } + else { + klass = CREF_CLASS_FOR_DEFINITION(cref); + visi = vm_scope_visibility_get(ec); + } + if (RB_NIL_P(klass)) { + rb_raise(rb_eTypeError, "no class/module to add method"); + } + rb_add_method_iseq(klass, id, (const rb_iseq_t *)iseqval, cref, visi); + if (id == (__builtin_constant_p("initialize") ? __extension__ ({ static ID rbimpl_id; rbimpl_intern_const(&rbimpl_id, ("initialize")); }) : (rb_intern)("initialize")) && klass != rb_cObject && (__builtin_constant_p(RUBY_T_CLASS) ? rbimpl_RB_TYPE_P_fastpath((klass), (RUBY_T_CLASS)) : (RB_TYPE_P)((klass), (RUBY_T_CLASS))) && (rb_get_alloc_func(klass) == rb_class_allocate_instance)) { + ((rb_classext_t *)((char *)(klass) + sizeof(struct RClass)))->max_iv_count = rb_estimate_iv_count(klass, (const rb_iseq_t *)iseqval); + } + if (!is_singleton && vm_scope_module_func_check(ec)) { + klass = rb_singleton_class(klass); + rb_add_method_iseq(klass, id, (const rb_iseq_t *)iseqval, cref, METHOD_VISI_PUBLIC); + } +} +static VALUE +vm_invokeblock_i(struct rb_execution_context_struct *ec, + struct rb_control_frame_struct *reg_cfp, + struct rb_calling_info *calling) +{ + const struct rb_callinfo *ci = calling->ci; + VALUE block_handler = VM_CF_BLOCK_HANDLER((((reg_cfp)))); + if (block_handler == 0) { + rb_vm_localjump_error("no block given (yield)", ((VALUE)RUBY_Qnil), 0); + } + else { + return vm_invoke_block(ec, (((reg_cfp))), calling, ci, 0, block_handler); + } +} +static const struct rb_callcache * +vm_search_method_wrap(const struct rb_control_frame_struct *reg_cfp, struct rb_call_data *cd, VALUE recv) +{ + return vm_search_method((VALUE)reg_cfp->iseq, cd, recv); +} +static const struct rb_callcache * +vm_search_invokeblock(const struct rb_control_frame_struct *reg_cfp, struct rb_call_data *cd, VALUE recv) +{ + static const struct rb_callcache cc = { + .flags = RUBY_T_IMEMO | (imemo_callcache << ((VALUE)RUBY_FL_USHIFT)) | ((VALUE)RUBY_FL_FREEZE), + .klass = 0, + .cme_ = 0, + .call_ = vm_invokeblock_i, + .aux_ = {0}, + }; + return &cc; +} +static +VALUE +vm_sendish( + struct rb_execution_context_struct *ec, + struct rb_control_frame_struct *reg_cfp, + struct rb_call_data *cd, + VALUE block_handler, + const struct rb_callcache *(*method_explorer)(const struct rb_control_frame_struct *cfp, struct rb_call_data *cd, VALUE recv) +) { + VALUE val = ((VALUE)RUBY_Qundef); + const struct rb_callinfo *ci = cd->ci; + const struct rb_callcache *cc; + int argc = vm_ci_argc(ci); + VALUE recv = (*(((((reg_cfp)->sp)))-(argc)-1)); + struct rb_calling_info calling = { + .block_handler = block_handler, + .kw_splat = (vm_ci_flag(ci) & (0x01 << VM_CALL_KW_SPLAT_bit)) > 0, + .recv = recv, + .argc = argc, + .ci = ci, + }; + calling.cc = cc = method_explorer((((reg_cfp))), cd, recv); + val = vm_cc_call(cc)(ec, (((reg_cfp))), &calling); + if (!RB_UNDEF_P(val)) { + return val; + } + else { + do { (reg_cfp) = ec->cfp; } while (0); + } + if (((((((reg_cfp)))->iseq))->body)->catch_except_p) { + VM_ENV_FLAGS_SET(((((reg_cfp)->ep))), VM_FRAME_FLAG_FINISH); + return rb_vm_exec(ec, 1); + } + else if (RB_UNDEF_P(val = jit_exec(ec))) { + VM_ENV_FLAGS_SET(((((reg_cfp)->ep))), VM_FRAME_FLAG_FINISH); + return rb_vm_exec(ec, 0); + } + else { + return val; + } +} +VALUE rb_nil_to_s(VALUE); +VALUE rb_true_to_s(VALUE); +VALUE rb_false_to_s(VALUE); +VALUE rb_int_to_s(int argc, VALUE *argv, VALUE x); +VALUE rb_fix_to_s(VALUE); +VALUE rb_mod_to_s(VALUE); +VALUE rb_mod_name(VALUE); +static VALUE +vm_objtostring(const rb_iseq_t *iseq, VALUE recv, CALL_DATA cd) +{ + int type = ((int)rb_type(recv)); + if (type == RUBY_T_STRING) { + return recv; + } + const struct rb_callcache *cc = vm_search_method((VALUE)iseq, cd, recv); + switch (type) { + case RUBY_T_SYMBOL: + if (check_cfunc(vm_cc_cme(cc), rb_sym_to_s)) { + return rb_sym2str(recv); + } + break; + case RUBY_T_MODULE: + case RUBY_T_CLASS: + if (check_cfunc(vm_cc_cme(cc), rb_mod_to_s)) { + VALUE val = rb_mod_name(recv); + if (RB_NIL_P(val)) { + val = rb_mod_to_s(recv); + } + return val; + } + break; + case RUBY_T_NIL: + if (check_cfunc(vm_cc_cme(cc), rb_nil_to_s)) { + return rb_nil_to_s(recv); + } + break; + case RUBY_T_TRUE: + if (check_cfunc(vm_cc_cme(cc), rb_true_to_s)) { + return rb_true_to_s(recv); + } + break; + case RUBY_T_FALSE: + if (check_cfunc(vm_cc_cme(cc), rb_false_to_s)) { + return rb_false_to_s(recv); + } + break; + case RUBY_T_FIXNUM: + if (check_cfunc(vm_cc_cme(cc), rb_int_to_s)) { + return rb_fix_to_s(recv); + } + break; + } + return ((VALUE)RUBY_Qundef); +} +static VALUE +vm_opt_str_freeze(VALUE str, int bop, ID id) +{ + if (((__builtin_expect(!!((ruby_vm_redefined_flag[(bop)]&((1 << 2))) == 0), 1)))) { + return str; + } + else { + return ((VALUE)RUBY_Qundef); + } +} +static VALUE +vm_opt_newarray_max(rb_execution_context_t *ec, rb_num_t num, const VALUE *ptr) +{ + if (((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MAX)]&((1 << 3))) == 0), 1)))) { + if (num == 0) { + return ((VALUE)RUBY_Qnil); + } + else { + VALUE result = *ptr; + rb_snum_t i = num - 1; + while (i-- > 0) { + const VALUE v = *++ptr; + if (((RB_FIXNUM_P(v) && RB_FIXNUM_P(result) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_CMP)]&((1 << 0))) == 0), 1)))) ? (((long)v > (long)result) ? 1 : ((long)v < (long)result) ? -1 : 0) : (((__builtin_constant_p(RUBY_T_STRING) ? rbimpl_RB_TYPE_P_fastpath(((v)), (RUBY_T_STRING)) : (RB_TYPE_P)(((v)), (RUBY_T_STRING))) && rb_class_of(v) == rb_cString) && ((__builtin_constant_p(RUBY_T_STRING) ? rbimpl_RB_TYPE_P_fastpath(((result)), (RUBY_T_STRING)) : (RB_TYPE_P)(((result)), (RUBY_T_STRING))) && rb_class_of(result) == rb_cString) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_CMP)]&((1 << 2))) == 0), 1)))) ? rb_str_cmp(v, result) : (RB_FLOAT_TYPE_P(v) && RB_FLOAT_TYPE_P(result) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_CMP)]&((1 << 1))) == 0), 1)))) ? rb_float_cmp(v, result) : rb_cmpint(rb_funcallv(v, idCmp, 1, &result), v, result)) > 0) { + result = v; + } + } + return result; + } + } + else { + return rb_vm_call_with_refinements(ec, rb_ary_new_from_values(num, ptr), idMax, 0, ((void*)0), 0); + } +}static inline +VALUE +rb_vm_opt_newarray_max(rb_execution_context_t *ec, rb_num_t num, const VALUE *ptr) +{ + return vm_opt_newarray_max(ec, num, ptr); +} +static VALUE +vm_opt_newarray_min(rb_execution_context_t *ec, rb_num_t num, const VALUE *ptr) +{ + if (((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MIN)]&((1 << 3))) == 0), 1)))) { + if (num == 0) { + return ((VALUE)RUBY_Qnil); + } + else { + VALUE result = *ptr; + rb_snum_t i = num - 1; + while (i-- > 0) { + const VALUE v = *++ptr; + if (((RB_FIXNUM_P(v) && RB_FIXNUM_P(result) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_CMP)]&((1 << 0))) == 0), 1)))) ? (((long)v > (long)result) ? 1 : ((long)v < (long)result) ? -1 : 0) : (((__builtin_constant_p(RUBY_T_STRING) ? rbimpl_RB_TYPE_P_fastpath(((v)), (RUBY_T_STRING)) : (RB_TYPE_P)(((v)), (RUBY_T_STRING))) && rb_class_of(v) == rb_cString) && ((__builtin_constant_p(RUBY_T_STRING) ? rbimpl_RB_TYPE_P_fastpath(((result)), (RUBY_T_STRING)) : (RB_TYPE_P)(((result)), (RUBY_T_STRING))) && rb_class_of(result) == rb_cString) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_CMP)]&((1 << 2))) == 0), 1)))) ? rb_str_cmp(v, result) : (RB_FLOAT_TYPE_P(v) && RB_FLOAT_TYPE_P(result) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_CMP)]&((1 << 1))) == 0), 1)))) ? rb_float_cmp(v, result) : rb_cmpint(rb_funcallv(v, idCmp, 1, &result), v, result)) < 0) { + result = v; + } + } + return result; + } + } + else { + return rb_vm_call_with_refinements(ec, rb_ary_new_from_values(num, ptr), idMin, 0, ((void*)0), 0); + } +}static inline +VALUE +rb_vm_opt_newarray_min(rb_execution_context_t *ec, rb_num_t num, const VALUE *ptr) +{ + return vm_opt_newarray_min(ec, num, ptr); +} +static void +vm_track_constant_cache(ID id, void *ic) +{ + struct rb_id_table *const_cache = rb_current_vm()->constant_cache; + VALUE lookup_result; + st_table *ics; + if (rb_id_table_lookup(const_cache, id, &lookup_result)) { + ics = (st_table *)lookup_result; + } + else { + ics = rb_st_init_numtable(); + rb_id_table_insert(const_cache, id, (VALUE)ics); + } + rb_st_insert(ics, (st_data_t) ic, (st_data_t) ((VALUE)RUBY_Qtrue)); +} +static void +vm_ic_track_const_chain(rb_control_frame_t *cfp, IC ic, const ID *segments) +{ + { unsigned int _lev; rb_vm_lock_enter(&_lev, "./vm_insnhelper.c", 5291);; + for (int i = 0; segments[i]; i++) { + ID id = segments[i]; + if (id == idNULL) continue; + vm_track_constant_cache(id, ic); + } + rb_vm_lock_leave(&_lev, "./vm_insnhelper.c", 5299); }; +} +static inline _Bool +vm_inlined_ic_hit_p(VALUE flags, VALUE value, const rb_cref_t *ic_cref, const VALUE *reg_ep) +{ + if ((flags & ((VALUE)RUBY_FL_USER4)) || rb_ractor_main_p()) { + ((void)0); + return (ic_cref == ((void*)0) || + ic_cref == vm_get_cref(reg_ep)); + } + return 0; +} +static _Bool +vm_ic_hit_p(const struct iseq_inline_constant_cache_entry *ice, const VALUE *reg_ep) +{ + ((void)0); + return vm_inlined_ic_hit_p(ice->flags, ice->value, ice->ic_cref, reg_ep); +}static inline +_Bool +rb_vm_ic_hit_p(IC ic, const VALUE *reg_ep) +{ + return ic->entry && vm_ic_hit_p(ic->entry, reg_ep); +} +COLDFUNC static void +vm_ic_update(const rb_iseq_t *iseq, IC ic, VALUE val, const VALUE *reg_ep, const VALUE *pc) { + if (ruby_vm_const_missing_count > 0) { + ruby_vm_const_missing_count = 0; + ic->entry = ((void*)0); + return; + } + struct iseq_inline_constant_cache_entry *ice = (struct iseq_inline_constant_cache_entry *)rb_imemo_new(imemo_constcache, 0, 0, 0, 0); + rb_obj_write((VALUE)(ice), __extension__({ + ; + ; __typeof__((VALUE *)(&ice->value)) unaligned_member_access_result = ((VALUE *)(&ice->value)); + ; unaligned_member_access_result; }), (VALUE)(val), "./vm_insnhelper.c", 5339); + ice->ic_cref = vm_get_const_key_cref(reg_ep); + if (rb_ractor_shareable_p(val)) ice->flags |= ((VALUE)RUBY_FL_USER4); + rb_obj_write((VALUE)(iseq), __extension__({ + ; + ; __typeof__((VALUE *)(&ic->entry)) unaligned_member_access_result = ((VALUE *)(&ic->entry)); + ; unaligned_member_access_result; }), (VALUE)(ice), "./vm_insnhelper.c", 5342); + ((void)0); + unsigned pos = (unsigned)(pc - ((iseq)->body)->iseq_encoded); + rb_yjit_constant_ic_update(iseq, ic, pos); + rb_mjit_constant_ic_update(iseq, ic, pos); +} +static VALUE +vm_once_dispatch(rb_execution_context_t *ec, ISEQ iseq, ISE is) +{ + rb_thread_t *th = rb_ec_thread_ptr(ec); + rb_thread_t *const RUNNING_THREAD_ONCE_DONE = (rb_thread_t *)(0x1); + again: + if (is->once.running_thread == RUNNING_THREAD_ONCE_DONE) { + return is->once.value; + } + else if (is->once.running_thread == ((void*)0)) { + VALUE val; + is->once.running_thread = th; + val = rb_ensure(vm_once_exec, (VALUE)iseq, vm_once_clear, (VALUE)is); + rb_obj_write((VALUE)(ec->cfp->iseq), __extension__({ + ; + ; __typeof__((VALUE *)(&is->once.value)) unaligned_member_access_result = ((VALUE *)(&is->once.value)); + ; unaligned_member_access_result; }), (VALUE)(val), "./vm_insnhelper.c", 5364); + is->once.running_thread = RUNNING_THREAD_ONCE_DONE; + return val; + } + else if (is->once.running_thread == th) { + return vm_once_exec((VALUE)iseq); + } + else { + rb_vm_check_ints(ec); + rb_thread_schedule(); + goto again; + } +} +static OFFSET +vm_case_dispatch(CDHASH hash, OFFSET else_offset, VALUE key) +{ + switch (__extension__({ VALUE arg_obj = (key); RB_SPECIAL_CONST_P(arg_obj) ? -1 : (int)RB_BUILTIN_TYPE(arg_obj); })) { + case -1: + case RUBY_T_FLOAT: + case RUBY_T_SYMBOL: + case RUBY_T_BIGNUM: + case RUBY_T_STRING: + if (((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_EQQ)]&((1 << 6) | (1 << 0) | (1 << 1) | (1 << 9) | (1 << 10) | (1 << 11) | (1 << 2))) == 0), 1)))) { + st_data_t val; + if (RB_FLOAT_TYPE_P(key)) { + double kval = rb_float_value_inline(key); + if (!( sizeof(kval) == sizeof(float) ? __inline_isinff((float)(kval)) : sizeof(kval) == sizeof(double) ? __inline_isinfd((double)(kval)) : __inline_isinfl((long double)(kval))) && modf(kval, &kval) == 0.0) { + key = (((kval) < (9223372036854775807L / 2) + 1) && ((kval) >= ((-9223372036854775807L -1L) / 2))) ? RB_INT2FIX((long)kval) : rb_dbl2big(kval); + } + } + if (rb_hash_stlike_lookup(hash, key, &val)) { + return rb_fix2long((VALUE)val); + } + else { + return else_offset; + } + } + } + return 0; +} +__declspec(noreturn) static void vm_stack_consistency_error(const rb_execution_context_t *ec, const rb_control_frame_t *, const VALUE *); +static void +vm_stack_consistency_error(const rb_execution_context_t *ec, + const rb_control_frame_t *cfp, + const VALUE *bp) +{ + const ptrdiff_t nsp = ((cfp->sp) - (ec)->vm_stack); + const ptrdiff_t nbp = ((bp) - (ec)->vm_stack); + static const char stack_consistency_error[] = + "Stack consistency error (sp: %""t""d"", bp: %""t""d"")"; + rb_bug(stack_consistency_error, nsp, nbp); +} +ALWAYS_INLINE(static inline VALUE +vm_opt_plus(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_plus(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_PLUS)]&((1 << 0))) == 0), 1)))) { + return rb_fix_plus_fix(recv, obj); + } + else if (FLONUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_PLUS)]&((1 << 1))) == 0), 1)))) { + return rb_float_new_inline(rb_float_value_inline(recv) + rb_float_value_inline(obj)); + } + else if (RB_SPECIAL_CONST_P(recv) || RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cFloat && + RBASIC_CLASS(obj) == rb_cFloat && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_PLUS)]&((1 << 1))) == 0), 1)))) { + return rb_float_new_inline(rb_float_value_inline(recv) + rb_float_value_inline(obj)); + } + else if (RBASIC_CLASS(recv) == rb_cString && + RBASIC_CLASS(obj) == rb_cString && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_PLUS)]&((1 << 2))) == 0), 1)))) { + return rb_str_opt_plus(recv, obj); + } + else if (RBASIC_CLASS(recv) == rb_cArray && + RBASIC_CLASS(obj) == rb_cArray && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_PLUS)]&((1 << 3))) == 0), 1)))) { + return rb_ary_plus(recv, obj); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_minus(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_minus(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MINUS)]&((1 << 0))) == 0), 1)))) { + return rb_fix_minus_fix(recv, obj); + } + else if (FLONUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MINUS)]&((1 << 1))) == 0), 1)))) { + return rb_float_new_inline(rb_float_value_inline(recv) - rb_float_value_inline(obj)); + } + else if (RB_SPECIAL_CONST_P(recv) || RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cFloat && + RBASIC_CLASS(obj) == rb_cFloat && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MINUS)]&((1 << 1))) == 0), 1)))) { + return rb_float_new_inline(rb_float_value_inline(recv) - rb_float_value_inline(obj)); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_mult(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_mult(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MULT)]&((1 << 0))) == 0), 1)))) { + return rb_fix_mul_fix(recv, obj); + } + else if (FLONUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MULT)]&((1 << 1))) == 0), 1)))) { + return rb_float_new_inline(rb_float_value_inline(recv) * rb_float_value_inline(obj)); + } + else if (RB_SPECIAL_CONST_P(recv) || RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cFloat && + RBASIC_CLASS(obj) == rb_cFloat && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MULT)]&((1 << 1))) == 0), 1)))) { + return rb_float_new_inline(rb_float_value_inline(recv) * rb_float_value_inline(obj)); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_div(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_div(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_DIV)]&((1 << 0))) == 0), 1)))) { + return (rb_fix2long(obj) == 0) ? ((VALUE)RUBY_Qundef) : rb_fix_div_fix(recv, obj); + } + else if (FLONUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_DIV)]&((1 << 1))) == 0), 1)))) { + return rb_flo_div_flo(recv, obj); + } + else if (RB_SPECIAL_CONST_P(recv) || RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cFloat && + RBASIC_CLASS(obj) == rb_cFloat && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_DIV)]&((1 << 1))) == 0), 1)))) { + return rb_flo_div_flo(recv, obj); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_mod(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_mod(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MOD)]&((1 << 0))) == 0), 1)))) { + return (rb_fix2long(obj) == 0) ? ((VALUE)RUBY_Qundef) : rb_fix_mod_fix(recv, obj); + } + else if (FLONUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MOD)]&((1 << 1))) == 0), 1)))) { + return rb_float_new_inline(ruby_float_mod(rb_float_value_inline(recv), rb_float_value_inline(obj))); + } + else if (RB_SPECIAL_CONST_P(recv) || RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cFloat && + RBASIC_CLASS(obj) == rb_cFloat && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MOD)]&((1 << 1))) == 0), 1)))) { + return rb_float_new_inline(ruby_float_mod(rb_float_value_inline(recv), rb_float_value_inline(obj))); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_neq(const rb_iseq_t *iseq, CALL_DATA cd, CALL_DATA cd_eq, VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_neq(const rb_iseq_t *iseq, CALL_DATA cd, CALL_DATA cd_eq, VALUE recv, VALUE obj) { + if (vm_method_cfunc_is(iseq, cd, recv, rb_obj_not_equal)) { + VALUE val = opt_equality(iseq, recv, obj, cd_eq); + if (!RB_UNDEF_P(val)) { + return ((!RB_TEST(val)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + } + return ((VALUE)RUBY_Qundef); +} +ALWAYS_INLINE(static inline VALUE +vm_opt_lt(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_lt(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_LT)]&((1 << 0))) == 0), 1)))) { + return (((long)recv < (long)obj) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else if (FLONUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_LT)]&((1 << 1))) == 0), 1)))) { + return ((rb_float_value_inline(recv) < rb_float_value_inline(obj)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else if (RB_SPECIAL_CONST_P(recv) || RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cFloat && + RBASIC_CLASS(obj) == rb_cFloat && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_LT)]&((1 << 1))) == 0), 1)))) { + ; + return ((rb_float_value_inline(recv) < rb_float_value_inline(obj)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_le(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_le(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_LE)]&((1 << 0))) == 0), 1)))) { + return (((long)recv <= (long)obj) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else if (FLONUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_LE)]&((1 << 1))) == 0), 1)))) { + return ((rb_float_value_inline(recv) <= rb_float_value_inline(obj)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else if (RB_SPECIAL_CONST_P(recv) || RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cFloat && + RBASIC_CLASS(obj) == rb_cFloat && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_LE)]&((1 << 1))) == 0), 1)))) { + ; + return ((rb_float_value_inline(recv) <= rb_float_value_inline(obj)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_gt(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_gt(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_GT)]&((1 << 0))) == 0), 1)))) { + return (((long)recv > (long)obj) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else if (FLONUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_GT)]&((1 << 1))) == 0), 1)))) { + return ((rb_float_value_inline(recv) > rb_float_value_inline(obj)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else if (RB_SPECIAL_CONST_P(recv) || RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cFloat && + RBASIC_CLASS(obj) == rb_cFloat && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_GT)]&((1 << 1))) == 0), 1)))) { + ; + return ((rb_float_value_inline(recv) > rb_float_value_inline(obj)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_ge(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_ge(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_GE)]&((1 << 0))) == 0), 1)))) { + return (((long)recv >= (long)obj) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else if (FLONUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_GE)]&((1 << 1))) == 0), 1)))) { + return ((rb_float_value_inline(recv) >= rb_float_value_inline(obj)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else if (RB_SPECIAL_CONST_P(recv) || RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cFloat && + RBASIC_CLASS(obj) == rb_cFloat && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_GE)]&((1 << 1))) == 0), 1)))) { + ; + return ((rb_float_value_inline(recv) >= rb_float_value_inline(obj)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_ltlt(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_ltlt(VALUE recv, VALUE obj) { + if (RB_SPECIAL_CONST_P(recv)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cString && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_LTLT)]&((1 << 2))) == 0), 1)))) { + if ((__builtin_expect(!!((__builtin_constant_p(RUBY_T_STRING) ? rbimpl_RB_TYPE_P_fastpath((obj), (RUBY_T_STRING)) : (RB_TYPE_P)((obj), (RUBY_T_STRING)))), 1))) { + return rb_str_buf_append(recv, obj); + } + else { + return rb_str_concat(recv, obj); + } + } + else if (RBASIC_CLASS(recv) == rb_cArray && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_LTLT)]&((1 << 3))) == 0), 1)))) { + return rb_ary_push(recv, obj); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_and(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_and(VALUE recv, VALUE obj) { + VALUE ret = ((long) recv) & ((long) obj); + if (RB_FIXNUM_P(ret) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_AND)]&((1 << 0))) == 0), 1)))) { + return ret; + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_or(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_or(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_OR)]&((1 << 0))) == 0), 1)))) { + return recv | obj; + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_aref(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_aref(VALUE recv, VALUE obj) { + if (RB_SPECIAL_CONST_P(recv)) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_AREF)]&((1 << 0))) == 0), 1)))) { + return rb_fix_aref(recv, obj); + } + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cArray && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_AREF)]&((1 << 3))) == 0), 1)))) { + if (RB_FIXNUM_P(obj)) { + return rb_ary_entry_internal(recv, rb_fix2long(obj)); + } + else { + return rb_ary_aref1(recv, obj); + } + } + else if (RBASIC_CLASS(recv) == rb_cHash && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_AREF)]&((1 << 4))) == 0), 1)))) { + return rb_hash_aref(recv, obj); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_aset(VALUE recv, VALUE obj, VALUE set)); +static inline VALUE +vm_opt_aset(VALUE recv, VALUE obj, VALUE set) { + if (RB_SPECIAL_CONST_P(recv)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cArray && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_ASET)]&((1 << 3))) == 0), 1))) && + RB_FIXNUM_P(obj)) { + rb_ary_store(recv, rb_fix2long(obj), set); + return set; + } + else if (RBASIC_CLASS(recv) == rb_cHash && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_ASET)]&((1 << 4))) == 0), 1)))) { + rb_hash_aset(recv, obj, set); + return set; + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_aref_with(VALUE recv, VALUE key)); +static inline VALUE +vm_opt_aref_with(VALUE recv, VALUE key) { + if (!RB_SPECIAL_CONST_P(recv) && RBASIC_CLASS(recv) == rb_cHash && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_AREF)]&((1 << 4))) == 0), 1))) && + rb_hash_compare_by_id_p(recv) == ((VALUE)RUBY_Qfalse) && + !RB_FL_TEST(recv, RHASH_PROC_DEFAULT)) { + return rb_hash_aref(recv, key); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_aset_with(VALUE recv, VALUE key, VALUE val)); +static inline VALUE +vm_opt_aset_with(VALUE recv, VALUE key, VALUE val) { + if (!RB_SPECIAL_CONST_P(recv) && RBASIC_CLASS(recv) == rb_cHash && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_ASET)]&((1 << 4))) == 0), 1))) && + rb_hash_compare_by_id_p(recv) == ((VALUE)RUBY_Qfalse)) { + return rb_hash_aset(recv, key, val); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +static VALUE +vm_opt_length(VALUE recv, int bop) +{ + if (RB_SPECIAL_CONST_P(recv)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cString && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(bop)]&((1 << 2))) == 0), 1)))) { + if (bop == BOP_EMPTY_P) { + return rb_long2num_inline(RSTRING_LEN(recv)); + } + else { + return rb_str_length(recv); + } + } + else if (RBASIC_CLASS(recv) == rb_cArray && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(bop)]&((1 << 3))) == 0), 1)))) { + return rb_long2num_inline(rb_array_len(recv)); + } + else if (RBASIC_CLASS(recv) == rb_cHash && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(bop)]&((1 << 4))) == 0), 1)))) { + return __builtin_choose_expr( __builtin_constant_p(RHASH_SIZE(recv)), ((VALUE)(RHASH_SIZE(recv))) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(RHASH_SIZE(recv))); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +static VALUE +vm_opt_empty_p(VALUE recv) +{ + switch (vm_opt_length(recv, BOP_EMPTY_P)) { + case ((VALUE)RUBY_Qundef): return ((VALUE)RUBY_Qundef); + case __builtin_choose_expr( __builtin_constant_p(0), ((VALUE)(0)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(0)): return ((VALUE)RUBY_Qtrue); + default: return ((VALUE)RUBY_Qfalse); + } +} +VALUE rb_false(VALUE obj); +static VALUE +vm_opt_nil_p(const rb_iseq_t *iseq, CALL_DATA cd, VALUE recv) +{ + if (RB_NIL_P(recv) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_NIL_P)]&((1 << 9))) == 0), 1)))) { + return ((VALUE)RUBY_Qtrue); + } + else if (vm_method_cfunc_is(iseq, cd, recv, rb_false)) { + return ((VALUE)RUBY_Qfalse); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +static VALUE +fix_succ(VALUE x) +{ + switch (x) { + case ~0UL: + return __builtin_choose_expr( __builtin_constant_p(0), ((VALUE)(0)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(0)); + case ((~0UL)>>(int)(1)): + return rb_uint2big(1UL << (8 * 8 - 2)); + default: + return x + 2; + } +} +static VALUE +vm_opt_succ(VALUE recv) +{ + if (RB_FIXNUM_P(recv) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_SUCC)]&((1 << 0))) == 0), 1)))) { + return fix_succ(recv); + } + else if (RB_SPECIAL_CONST_P(recv)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cString && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_SUCC)]&((1 << 2))) == 0), 1)))) { + return rb_str_succ(recv); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_not(const rb_iseq_t *iseq, CALL_DATA cd, VALUE recv)); +static inline VALUE +vm_opt_not(const rb_iseq_t *iseq, CALL_DATA cd, VALUE recv) { + if (vm_method_cfunc_is(iseq, cd, recv, rb_obj_not)) { + return ((!RB_TEST(recv)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +static VALUE +vm_opt_regexpmatch2(VALUE recv, VALUE obj) +{ + if (RB_SPECIAL_CONST_P(recv)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cString && + rb_class_of(obj) == rb_cRegexp && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MATCH)]&((1 << 2))) == 0), 1)))) { + return rb_reg_match(obj, recv); + } + else if (RBASIC_CLASS(recv) == rb_cRegexp && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MATCH)]&((1 << 8))) == 0), 1)))) { + return rb_reg_match(recv, obj); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +rb_event_flag_t rb_iseq_event_flags(const rb_iseq_t *iseq, size_t pos); +__declspec(noinline) static void vm_trace(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp); +static inline void +vm_trace_hook(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, const VALUE *pc, + rb_event_flag_t pc_events, rb_event_flag_t target_event, + rb_hook_list_t *global_hooks, rb_hook_list_t *const *local_hooks_ptr, VALUE val) +{ + rb_event_flag_t event = pc_events & target_event; + VALUE self = (((((reg_cfp)))->self)); + ((void)0); + if (event & global_hooks->events) { + reg_cfp->pc++; + vm_dtrace(event, ec); + rb_exec_event_hook_orig(ec, global_hooks, event, self, 0, 0, 0 , val, 0); + reg_cfp->pc--; + } + rb_hook_list_t *local_hooks = *local_hooks_ptr; + if (local_hooks != ((void*)0)) { + if (event & local_hooks->events) { + reg_cfp->pc++; + rb_exec_event_hook_orig(ec, local_hooks, event, self, 0, 0, 0 , val, 0); + reg_cfp->pc--; + } + } +}static inline +_Bool +rb_vm_opt_cfunc_p(CALL_CACHE cc, int insn) +{ + switch (insn) { + case YARVINSN_opt_eq: + return check_cfunc(vm_cc_cme(cc), rb_obj_equal); + case YARVINSN_opt_nil_p: + return check_cfunc(vm_cc_cme(cc), rb_false); + case YARVINSN_opt_not: + return check_cfunc(vm_cc_cme(cc), rb_obj_not); + default: + return 0; + } +} +static void +vm_trace(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp) +{ + const VALUE *pc = reg_cfp->pc; + rb_event_flag_t enabled_flags = ruby_vm_event_flags & (0x0001 | 0x0002 | 0x0004 | 0x0008 | 0x0010| 0x0020| 0x0040| 0x0100| 0x0200| 0x010000| 0x020000); + rb_event_flag_t global_events = enabled_flags; + if (enabled_flags == 0 && ruby_vm_event_local_num == 0) { + return; + } + else { + const rb_iseq_t *iseq = reg_cfp->iseq; + VALUE iseq_val = (VALUE)iseq; + size_t pos = pc - ((iseq)->body)->iseq_encoded; + rb_event_flag_t pc_events = rb_iseq_event_flags(iseq, pos); + rb_hook_list_t *local_hooks = iseq->aux.exec.local_hooks; + rb_hook_list_t *const *local_hooks_ptr = &iseq->aux.exec.local_hooks; + rb_event_flag_t iseq_local_events = local_hooks != ((void*)0) ? local_hooks->events : 0; + rb_hook_list_t *bmethod_local_hooks = ((void*)0); + rb_hook_list_t **bmethod_local_hooks_ptr = ((void*)0); + rb_event_flag_t bmethod_local_events = 0; + const _Bool bmethod_frame = VM_FRAME_BMETHOD_P(reg_cfp); + enabled_flags |= iseq_local_events; + ((void)0); + if (bmethod_frame) { + const rb_callable_method_entry_t *me = rb_vm_frame_method_entry(reg_cfp); + ((void)0); + bmethod_local_hooks = me->def->body.bmethod.hooks; + bmethod_local_hooks_ptr = &me->def->body.bmethod.hooks; + if (bmethod_local_hooks) { + bmethod_local_events = bmethod_local_hooks->events; + } + } + if ((pc_events & enabled_flags) == 0 && !bmethod_frame) { + return; + } + else if (ec->trace_arg != ((void*)0)) { + return; + } + else { + rb_hook_list_t *global_hooks = rb_ec_ractor_hooks(ec); + rb_event_flag_t bmethod_events = global_events | bmethod_local_events; + if (0) { + ruby_debug_printf("vm_trace>>%4d (%4x) - %s:%d %s\n", + (int)pos, + (int)pc_events, + RSTRING_PTR(rb_iseq_path(iseq)), + (int)rb_iseq_line_no(iseq, pos), + RSTRING_PTR(rb_iseq_label(iseq))); + } + ((void)0); + ((void)0); + if ((pc_events & 0x0100) && bmethod_frame && (bmethod_events & 0x0008)) { + vm_trace_hook(ec, reg_cfp, pc, 0x0008, 0x0008, global_hooks, bmethod_local_hooks_ptr, ((VALUE)RUBY_Qundef)); + } + do { if ((pc_events & (0x0002 | 0x0008 | 0x0100)) & enabled_flags) { vm_trace_hook(ec, reg_cfp, pc, pc_events, (0x0002 | 0x0008 | 0x0100), global_hooks, local_hooks_ptr, (((VALUE)RUBY_Qundef))); } } while (0); + do { if ((pc_events & (0x0001)) & enabled_flags) { vm_trace_hook(ec, reg_cfp, pc, pc_events, (0x0001), global_hooks, local_hooks_ptr, (((VALUE)RUBY_Qundef))); } } while (0); + do { if ((pc_events & (0x010000)) & enabled_flags) { vm_trace_hook(ec, reg_cfp, pc, pc_events, (0x010000), global_hooks, local_hooks_ptr, (((VALUE)RUBY_Qundef))); } } while (0); + do { if ((pc_events & (0x020000)) & enabled_flags) { vm_trace_hook(ec, reg_cfp, pc, pc_events, (0x020000), global_hooks, local_hooks_ptr, (((VALUE)RUBY_Qundef))); } } while (0); + do { if ((pc_events & (0x0004 | 0x0010 | 0x0200)) & enabled_flags) { vm_trace_hook(ec, reg_cfp, pc, pc_events, (0x0004 | 0x0010 | 0x0200), global_hooks, local_hooks_ptr, ((*(((((reg_cfp)->sp)))-(0)-1)))); } } while (0); + if ((pc_events & 0x0200) && bmethod_frame && (bmethod_events & 0x0010)) { + vm_trace_hook(ec, reg_cfp, pc, 0x0010, 0x0010, global_hooks, bmethod_local_hooks_ptr, (*(((((reg_cfp)->sp)))-(0)-1))); + } + (*__extension__ ({ volatile VALUE *rb_gc_guarded_ptr = &(iseq_val); __asm__("" : : "m"(rb_gc_guarded_ptr)); rb_gc_guarded_ptr; })); + } + } +}static inline +void Init_vm_stack_canary(void) { } +static VALUE +builtin_invoker0(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr0_t)(rb_execution_context_t *ec, VALUE self); + return (*(rb_invoke_funcptr0_t)funcptr)(ec, self); +} +static VALUE +builtin_invoker1(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr1_t)(rb_execution_context_t *ec, VALUE self, VALUE v1); + return (*(rb_invoke_funcptr1_t)funcptr)(ec, self, argv[0]); +} +static VALUE +builtin_invoker2(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr2_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2); + return (*(rb_invoke_funcptr2_t)funcptr)(ec, self, argv[0], argv[1]); +} +static VALUE +builtin_invoker3(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr3_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3); + return (*(rb_invoke_funcptr3_t)funcptr)(ec, self, argv[0], argv[1], argv[2]); +} +static VALUE +builtin_invoker4(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr4_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4); + return (*(rb_invoke_funcptr4_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3]); +} +static VALUE +builtin_invoker5(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr5_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5); + return (*(rb_invoke_funcptr5_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4]); +} +static VALUE +builtin_invoker6(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr6_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6); + return (*(rb_invoke_funcptr6_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]); +} +static VALUE +builtin_invoker7(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr7_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6, VALUE v7); + return (*(rb_invoke_funcptr7_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6]); +} +static VALUE +builtin_invoker8(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr8_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6, VALUE v7, VALUE v8); + return (*(rb_invoke_funcptr8_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7]); +} +static VALUE +builtin_invoker9(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr9_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6, VALUE v7, VALUE v8, VALUE v9); + return (*(rb_invoke_funcptr9_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8]); +} +static VALUE +builtin_invoker10(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr10_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6, VALUE v7, VALUE v8, VALUE v9, VALUE v10); + return (*(rb_invoke_funcptr10_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9]); +} +static VALUE +builtin_invoker11(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr11_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6, VALUE v7, VALUE v8, VALUE v9, VALUE v10, VALUE v11); + return (*(rb_invoke_funcptr11_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10]); +} +static VALUE +builtin_invoker12(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr12_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6, VALUE v7, VALUE v8, VALUE v9, VALUE v10, VALUE v11, VALUE v12); + return (*(rb_invoke_funcptr12_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11]); +} +static VALUE +builtin_invoker13(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr13_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6, VALUE v7, VALUE v8, VALUE v9, VALUE v10, VALUE v11, VALUE v12, VALUE v13); + return (*(rb_invoke_funcptr13_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12]); +} +static VALUE +builtin_invoker14(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr14_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6, VALUE v7, VALUE v8, VALUE v9, VALUE v10, VALUE v11, VALUE v12, VALUE v13, VALUE v14); + return (*(rb_invoke_funcptr14_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12], argv[13]); +} +static VALUE +builtin_invoker15(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr15_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6, VALUE v7, VALUE v8, VALUE v9, VALUE v10, VALUE v11, VALUE v12, VALUE v13, VALUE v14, VALUE v15); + return (*(rb_invoke_funcptr15_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12], argv[13], argv[14]); +} +typedef VALUE (*builtin_invoker)(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr); +static builtin_invoker +lookup_builtin_invoker(int argc) +{ + static const builtin_invoker invokers[] = { + builtin_invoker0, + builtin_invoker1, + builtin_invoker2, + builtin_invoker3, + builtin_invoker4, + builtin_invoker5, + builtin_invoker6, + builtin_invoker7, + builtin_invoker8, + builtin_invoker9, + builtin_invoker10, + builtin_invoker11, + builtin_invoker12, + builtin_invoker13, + builtin_invoker14, + builtin_invoker15, + }; + return invokers[argc]; +} +static inline VALUE +invoke_bf(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, const struct rb_builtin_function* bf, const VALUE *argv) +{ + const _Bool canary_p = ((reg_cfp->iseq)->body)->builtin_inline_p; + if (canary_p) {} else {}; + VALUE ret = (*lookup_builtin_invoker(bf->argc))(ec, reg_cfp->self, argv, (rb_insn_func_t)bf->func_ptr); + if (canary_p) {(void)(YARVINSN_invokebuiltin);}; + return ret; +} +static VALUE +vm_invoke_builtin(rb_execution_context_t *ec, rb_control_frame_t *cfp, const struct rb_builtin_function* bf, const VALUE *argv) +{ + return invoke_bf(ec, cfp, bf, argv); +} +static VALUE +vm_invoke_builtin_delegate(rb_execution_context_t *ec, rb_control_frame_t *cfp, const struct rb_builtin_function *bf, unsigned int start_index) +{ + if (0) { + fputs("vm_invoke_builtin_delegate: passing -> ", __stderrp); + for (int i=0; iargc; i++) { + ruby_debug_printf(":%s ", rb_id2name(((cfp->iseq)->body)->local_table[i+start_index])); + } + ruby_debug_printf("\n" "%s %s(%d):%p\n", __func__, bf->name, bf->argc, bf->func_ptr); + } + if (bf->argc == 0) { + return invoke_bf(ec, cfp, bf, ((void*)0)); + } + else { + const VALUE *argv = cfp->ep - ((cfp->iseq)->body)->local_table_size - ( 3) + 1 + start_index; + return invoke_bf(ec, cfp, bf, argv); + } +}static inline +VALUE +rb_vm_lvar_exposed(rb_execution_context_t *ec, int index) +{ + const rb_control_frame_t *cfp = ec->cfp; + return cfp->ep[index]; +} +struct local_var_list { + VALUE tbl; +}; +static inline VALUE method_missing(rb_execution_context_t *ec, VALUE obj, ID id, int argc, const VALUE *argv, enum method_missing_reason call_status, int kw_splat); +static inline VALUE vm_yield_with_cref(rb_execution_context_t *ec, int argc, const VALUE *argv, int kw_splat, const rb_cref_t *cref, int is_lambda); +static inline VALUE vm_yield(rb_execution_context_t *ec, int argc, const VALUE *argv, int kw_splat); +static inline VALUE vm_yield_with_block(rb_execution_context_t *ec, int argc, const VALUE *argv, VALUE block_handler, int kw_splat); +static inline VALUE vm_yield_force_blockarg(rb_execution_context_t *ec, VALUE args); +VALUE rb_vm_exec(rb_execution_context_t *ec, _Bool jit_enable_p); +static void vm_set_eval_stack(rb_execution_context_t * th, const rb_iseq_t *iseq, const rb_cref_t *cref, const struct rb_block *base_block); +static int vm_collect_local_variables_in_heap(const VALUE *dfp, const struct local_var_list *vars); +static VALUE rb_eUncaughtThrow; +static ID id_result, id_tag, id_value; +typedef enum call_type { + CALL_PUBLIC, + CALL_FCALL, + CALL_VCALL, + CALL_PUBLIC_KW, + CALL_FCALL_KW, + CALL_TYPE_MAX +} call_type; +static VALUE send_internal(int argc, const VALUE *argv, VALUE recv, call_type scope); +static VALUE vm_call0_body(rb_execution_context_t* ec, struct rb_calling_info *calling, const VALUE *argv); +static inline void +stack_check(rb_execution_context_t *ec) +{ + if (!(((ec)->raised_flag & (RAISED_STACKOVERFLOW)) != 0) && + rb_ec_stack_check(ec)) { + ((ec)->raised_flag |= (RAISED_STACKOVERFLOW)); + rb_ec_stack_overflow(ec, 0); + } +} +static void +raise_method_missing(rb_execution_context_t *ec, int argc, const VALUE *argv, VALUE obj, + enum method_missing_reason last_call_status) +{ + VALUE exc = rb_eNoMethodError; + VALUE format = 0; + if ((__builtin_expect(!!(argc == 0), 0))) { + rb_raise(rb_eArgError, "no method name given"); + } + else if ((__builtin_expect(!!(!RB_SYMBOL_P(argv[0])), 0))) { + const VALUE e = rb_eArgError; + rb_raise(e, "method name must be a Symbol but %""l""i" "\v"" is given", + rb_obj_class(argv[0])); + } + stack_check(ec); + if (last_call_status & MISSING_PRIVATE) { + format = rb_fstring_new(("private method `%s' called for %s%s%s"), (sizeof("private method `%s' called for %s%s%s" "") - 1)); + } + else if (last_call_status & MISSING_PROTECTED) { + format = rb_fstring_new(("protected method `%s' called for %s%s%s"), (sizeof("protected method `%s' called for %s%s%s" "") - 1)); + } + else if (last_call_status & MISSING_VCALL) { + format = rb_fstring_new(("undefined local variable or method `%s' for %s%s%s"), (sizeof("undefined local variable or method `%s' for %s%s%s" "") - 1)); + exc = rb_eNameError; + } + else if (last_call_status & MISSING_SUPER) { + format = rb_fstring_new(("super: no superclass method `%s' for %s%s%s"), (sizeof("super: no superclass method `%s' for %s%s%s" "") - 1)); + } + { + exc = rb_make_no_method_exception(exc, format, obj, argc, argv, + last_call_status & (MISSING_FCALL|MISSING_VCALL)); + if (!(last_call_status & MISSING_MISSING)) { + rb_vm_pop_cfunc_frame(); + } + rb_exc_raise(exc); + } +} +static void +vm_raise_method_missing(rb_execution_context_t *ec, int argc, const VALUE *argv, + VALUE obj, int call_status) +{ + vm_passed_block_handler_set(ec, 0); + raise_method_missing(ec, argc, argv, obj, call_status | MISSING_MISSING); +} +static inline VALUE +method_missing(rb_execution_context_t *ec, VALUE obj, ID id, int argc, const VALUE *argv, enum method_missing_reason call_status, int kw_splat) +{ + VALUE *nargv, result, work, klass; + VALUE block_handler = vm_passed_block_handler(ec); + const rb_callable_method_entry_t *me; + ec->method_missing_reason = call_status; + if (id == idMethodMissing) { + goto missing; + } + nargv = ((VALUE *) (((size_t)(argc + 1) < 1024 / sizeof(VALUE)) ? ((work) = 0, __builtin_alloca((argc + 1) * sizeof(VALUE))) : rb_alloc_tmp_buffer2(&(work), (argc + 1), sizeof(VALUE)))); + nargv[0] = rb_id2sym(id); + ruby_nonempty_memcpy((nargv + 1), (argv), rbimpl_size_mul_or_raise(sizeof(VALUE), (argc))); + ++argc; + argv = nargv; + klass = rb_class_of(obj); + if (!klass) goto missing; + me = rb_callable_method_entry(klass, idMethodMissing); + if (!me || (int) (((me)->flags & (((VALUE)RUBY_FL_USER6) )) >> ((((VALUE)RUBY_FL_USHIFT) + 4)+2))) goto missing; + vm_passed_block_handler_set(ec, block_handler); + result = rb_vm_call_kw(ec, obj, idMethodMissing, argc, argv, me, kw_splat); + if (work) rb_free_tmp_buffer(&(work)); + return result; + missing: + raise_method_missing(ec, argc, argv, obj, call_status | MISSING_MISSING); + __builtin_unreachable(); +} +static rb_control_frame_t * +vm_get_ruby_level_caller_cfp(const rb_execution_context_t *ec, const rb_control_frame_t *cfp) +{ + if (VM_FRAME_RUBYFRAME_P(cfp)) { + return (rb_control_frame_t *)cfp; + } + cfp = ((cfp)+1); + while (!RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(ec, cfp)) { + if (VM_FRAME_RUBYFRAME_P(cfp)) { + return (rb_control_frame_t *)cfp; + } + if (VM_ENV_FLAGS(cfp->ep, VM_FRAME_FLAG_PASSED) == 0) { + break; + } + cfp = ((cfp)+1); + } + return 0; +} +static void +rb_vm_pop_cfunc_frame(void) +{ + rb_execution_context_t *ec = rb_current_execution_context(1); + rb_control_frame_t *cfp = ec->cfp; + const rb_callable_method_entry_t *me = rb_vm_frame_method_entry(cfp); + do { const rb_event_flag_t flag_arg_ = (0x0040); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, cfp->self, me->def->original_id, me->called_id, me->owner, ((VALUE)RUBY_Qnil), 0); } } while (0); + do { if ((__builtin_expect(!!(0), 0))) { struct ruby_dtrace_method_hook_args args; if (rb_dtrace_setup(ec, me->owner, me->def->original_id, &args)) { do {} while (0); } } } while (0); + vm_pop_frame(ec, cfp, cfp->ep); +} +static VALUE +vm_call_iseq_setup_normal_0start_0params_0locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 0, 0); +} +static VALUE +vm_call_iseq_setup_normal_0start_0params_1locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 0, 1); +} +static VALUE +vm_call_iseq_setup_normal_0start_0params_2locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 0, 2); +} +static VALUE +vm_call_iseq_setup_normal_0start_0params_3locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 0, 3); +} +static VALUE +vm_call_iseq_setup_normal_0start_0params_4locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 0, 4); +} +static VALUE +vm_call_iseq_setup_normal_0start_0params_5locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 0, 5); +} +static VALUE +vm_call_iseq_setup_normal_0start_1params_0locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 1, 0); +} +static VALUE +vm_call_iseq_setup_normal_0start_1params_1locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 1, 1); +} +static VALUE +vm_call_iseq_setup_normal_0start_1params_2locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 1, 2); +} +static VALUE +vm_call_iseq_setup_normal_0start_1params_3locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 1, 3); +} +static VALUE +vm_call_iseq_setup_normal_0start_1params_4locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 1, 4); +} +static VALUE +vm_call_iseq_setup_normal_0start_1params_5locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 1, 5); +} +static VALUE +vm_call_iseq_setup_normal_0start_2params_0locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 2, 0); +} +static VALUE +vm_call_iseq_setup_normal_0start_2params_1locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 2, 1); +} +static VALUE +vm_call_iseq_setup_normal_0start_2params_2locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 2, 2); +} +static VALUE +vm_call_iseq_setup_normal_0start_2params_3locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 2, 3); +} +static VALUE +vm_call_iseq_setup_normal_0start_2params_4locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 2, 4); +} +static VALUE +vm_call_iseq_setup_normal_0start_2params_5locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 2, 5); +} +static VALUE +vm_call_iseq_setup_normal_0start_3params_0locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 3, 0); +} +static VALUE +vm_call_iseq_setup_normal_0start_3params_1locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 3, 1); +} +static VALUE +vm_call_iseq_setup_normal_0start_3params_2locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 3, 2); +} +static VALUE +vm_call_iseq_setup_normal_0start_3params_3locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 3, 3); +} +static VALUE +vm_call_iseq_setup_normal_0start_3params_4locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 3, 4); +} +static VALUE +vm_call_iseq_setup_normal_0start_3params_5locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 3, 5); +} +static const vm_call_handler vm_call_iseq_handlers[][6] = { + { + vm_call_iseq_setup_normal_0start_0params_0locals, + vm_call_iseq_setup_normal_0start_0params_1locals, + vm_call_iseq_setup_normal_0start_0params_2locals, + vm_call_iseq_setup_normal_0start_0params_3locals, + vm_call_iseq_setup_normal_0start_0params_4locals, + vm_call_iseq_setup_normal_0start_0params_5locals, + }, + { + vm_call_iseq_setup_normal_0start_1params_0locals, + vm_call_iseq_setup_normal_0start_1params_1locals, + vm_call_iseq_setup_normal_0start_1params_2locals, + vm_call_iseq_setup_normal_0start_1params_3locals, + vm_call_iseq_setup_normal_0start_1params_4locals, + vm_call_iseq_setup_normal_0start_1params_5locals, + }, + { + vm_call_iseq_setup_normal_0start_2params_0locals, + vm_call_iseq_setup_normal_0start_2params_1locals, + vm_call_iseq_setup_normal_0start_2params_2locals, + vm_call_iseq_setup_normal_0start_2params_3locals, + vm_call_iseq_setup_normal_0start_2params_4locals, + vm_call_iseq_setup_normal_0start_2params_5locals, + }, + { + vm_call_iseq_setup_normal_0start_3params_0locals, + vm_call_iseq_setup_normal_0start_3params_1locals, + vm_call_iseq_setup_normal_0start_3params_2locals, + vm_call_iseq_setup_normal_0start_3params_3locals, + vm_call_iseq_setup_normal_0start_3params_4locals, + vm_call_iseq_setup_normal_0start_3params_5locals, + }, +}; +static inline vm_call_handler +vm_call_iseq_setup_func(const struct rb_callinfo *ci, const int param_size, const int local_size) +{ + if ((__builtin_expect(!!(vm_ci_flag(ci) & (0x01 << VM_CALL_TAILCALL_bit)), 0))) { + return &vm_call_iseq_setup_tailcall_0start; + } + else if (0) { + return &vm_call_iseq_setup_normal_0start; + } + else if (param_size <= 3 && local_size <= 5) { + ((void)0); + return vm_call_iseq_handlers[param_size][local_size]; + } + else { + return &vm_call_iseq_setup_normal_0start; + } +} + +#define MJIT_HEADER 1 +#undef _FORTIFY_SOURCE +#define _FORTIFY_SOURCE 2 +#define RUBY_EXPORT 1 +#define _XOPEN_SOURCE 1 +#define _DARWIN_C_SOURCE 1 +#define _DARWIN_UNLIMITED_SELECT 1 +#define _REENTRANT 1 +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define vm_exec rb_vm_exec +#define RUBY_EVAL_INTERN_H +#define RUBY_RUBY_H 1 +#define RBIMPL_CONFIG_H +#define INCLUDE_RUBY_CONFIG_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRING_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_SYS_STAT_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_UNISTD_H 1 +#define HAVE_WCHAR_H 1 +#define STDC_HEADERS 1 +#define _ALL_SOURCE 1 +#define _DARWIN_C_SOURCE 1 +#define _GNU_SOURCE 1 +#define _HPUX_ALT_XOPEN_SOCKET_API 1 +#define _NETBSD_SOURCE 1 +#define _OPENBSD_SOURCE 1 +#define _POSIX_PTHREAD_SEMANTICS 1 +#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 +#define __STDC_WANT_IEC_60559_BFP_EXT__ 1 +#define __STDC_WANT_IEC_60559_DFP_EXT__ 1 +#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 +#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 +#define __STDC_WANT_LIB_EXT2__ 1 +#define __STDC_WANT_MATH_SPEC_FUNCS__ 1 +#define _TANDEM_SOURCE 1 +#define __EXTENSIONS__ 1 +#define RUBY_SYMBOL_EXPORT_BEGIN _Pragma("GCC visibility push(default)") +#define RUBY_SYMBOL_EXPORT_END _Pragma("GCC visibility pop") +#define HAVE_STMT_AND_DECL_IN_EXPR 1 +#define HAVE_PTHREAD_H 1 +#define _REENTRANT 1 +#define _THREAD_SAFE 1 +#define HAVE_LIBPTHREAD 1 +#define THREAD_IMPL_H "thread_pthread.h" +#define THREAD_IMPL_SRC "thread_pthread.c" +#define BROKEN_CRYPT 1 +#define HAVE_CRT_EXTERNS_H 1 +#define HAVE_LIBDL 1 +#define HAVE_DIRENT_H 1 +#define HAVE__BOOL 1 +#define HAVE_STDBOOL_H 1 +#define HAVE_SYS_WAIT_H 1 +#define HAVE_COPYFILE_H 1 +#define HAVE_GRP_H 1 +#define HAVE_FCNTL_H 1 +#define HAVE_FLOAT_H 1 +#define HAVE_LANGINFO_H 1 +#define HAVE_LIMITS_H 1 +#define HAVE_LOCALE_H 1 +#define HAVE_MALLOC_MALLOC_H 1 +#define HAVE_PWD_H 1 +#define HAVE_SANITIZER_ASAN_INTERFACE_H 1 +#define HAVE_SANITIZER_MSAN_INTERFACE_H 1 +#define HAVE_STDALIGN_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_SYS_ATTR_H 1 +#define HAVE_SYS_FCNTL_H 1 +#define HAVE_SYS_FILE_H 1 +#define HAVE_SYS_IOCTL_H 1 +#define HAVE_SYS_PARAM_H 1 +#define HAVE_SYS_RANDOM_H 1 +#define HAVE_SYS_RESOURCE_H 1 +#define HAVE_SYS_SELECT_H 1 +#define HAVE_SYS_SOCKET_H 1 +#define HAVE_SYS_TIME_H 1 +#define HAVE_SYS_TIMES_H 1 +#define HAVE_SYS_UIO_H 1 +#define HAVE_TIME_H 1 +#define HAVE_UCONTEXT_H 1 +#define HAVE_UTIME_H 1 +#define HAVE_TYPEOF 1 +#define restrict __restrict__ +#define HAVE_LONG_LONG 1 +#define HAVE_OFF_T 1 +#define SIZEOF_INT 4 +#define SIZEOF_SHORT 2 +#define SIZEOF_LONG 8 +#define SIZEOF_LONG_LONG 8 +#define SIZEOF___INT64 0 +#define SIZEOF___INT128 16 +#define SIZEOF_OFF_T 8 +#define SIZEOF_VOIDP 8 +#define SIZEOF_FLOAT 4 +#define SIZEOF_DOUBLE 8 +#define SIZEOF_TIME_T 8 +#define SIZEOF_CLOCK_T 8 +#define PACKED_STRUCT(x) x __attribute__((packed)) +#define USE_UNALIGNED_MEMBER_ACCESS 1 +#define PRI_LL_PREFIX "ll" +#define HAVE_PID_T 1 +#define rb_pid_t pid_t +#define SIGNEDNESS_OF_PID_T -1 +#define PIDT2NUM(v) INT2NUM(v) +#define NUM2PIDT(v) NUM2INT(v) +#define PRI_PIDT_PREFIX PRI_INT_PREFIX +#define HAVE_UID_T 1 +#define rb_uid_t uid_t +#define SIGNEDNESS_OF_UID_T +1 +#define UIDT2NUM(v) UINT2NUM(v) +#define NUM2UIDT(v) NUM2UINT(v) +#define PRI_UIDT_PREFIX PRI_INT_PREFIX +#define HAVE_GID_T 1 +#define rb_gid_t gid_t +#define SIGNEDNESS_OF_GID_T +1 +#define GIDT2NUM(v) UINT2NUM(v) +#define NUM2GIDT(v) NUM2UINT(v) +#define PRI_GIDT_PREFIX PRI_INT_PREFIX +#define HAVE_TIME_T 1 +#define rb_time_t time_t +#define SIGNEDNESS_OF_TIME_T -1 +#define TIMET2NUM(v) LONG2NUM(v) +#define NUM2TIMET(v) NUM2LONG(v) +#define PRI_TIMET_PREFIX PRI_LONG_PREFIX +#define HAVE_DEV_T 1 +#define rb_dev_t dev_t +#define SIGNEDNESS_OF_DEV_T -1 +#define DEVT2NUM(v) INT2NUM(v) +#define NUM2DEVT(v) NUM2INT(v) +#define PRI_DEVT_PREFIX PRI_INT_PREFIX +#define HAVE_MODE_T 1 +#define rb_mode_t mode_t +#define SIGNEDNESS_OF_MODE_T +1 +#define MODET2NUM(v) USHORT2NUM(v) +#define NUM2MODET(v) NUM2USHORT(v) +#define PRI_MODET_PREFIX PRI_SHORT_PREFIX +#define HAVE_RLIM_T 1 +#define rb_rlim_t rlim_t +#define SIGNEDNESS_OF_RLIM_T +1 +#define RLIM2NUM(v) ULL2NUM(v) +#define NUM2RLIM(v) NUM2ULL(v) +#define PRI_RLIM_PREFIX PRI_LL_PREFIX +#define HAVE_OFF_T 1 +#define rb_off_t off_t +#define SIGNEDNESS_OF_OFF_T -1 +#define OFFT2NUM(v) LL2NUM(v) +#define NUM2OFFT(v) NUM2LL(v) +#define PRI_OFFT_PREFIX PRI_LL_PREFIX +#define HAVE_CLOCKID_T 1 +#define rb_clockid_t clockid_t +#define SIGNEDNESS_OF_CLOCKID_T +1 +#define CLOCKID2NUM(v) UINT2NUM(v) +#define NUM2CLOCKID(v) NUM2UINT(v) +#define PRI_CLOCKID_PREFIX PRI_INT_PREFIX +#define HAVE_VA_ARGS_MACRO 1 +#define HAVE__ALIGNOF 1 +#define CONSTFUNC(x) __attribute__ ((__const__)) x +#define PUREFUNC(x) __attribute__ ((__pure__)) x +#define NORETURN(x) __attribute__ ((__noreturn__)) x +#define DEPRECATED(x) __attribute__ ((__deprecated__)) x +#define DEPRECATED_BY(n,x) __attribute__ ((__deprecated__("by "#n))) x +#define NOINLINE(x) __attribute__ ((__noinline__)) x +#define NO_SANITIZE(san,x) __attribute__ ((__no_sanitize__(san))) x +#define NO_SANITIZE_ADDRESS(x) __attribute__ ((__no_sanitize_address__)) x +#define NO_ADDRESS_SAFETY_ANALYSIS(x) __attribute__ ((__no_address_safety_analysis__)) x +#define WARN_UNUSED_RESULT(x) __attribute__ ((__warn_unused_result__)) x +#define MAYBE_UNUSED(x) __attribute__ ((__unused__)) x +#define ERRORFUNC(mesg,x) __attribute__ ((__error__ mesg)) x +#define WARNINGFUNC(mesg,x) __attribute__ ((__warning__ mesg)) x +#define WEAK(x) __attribute__ ((__weak__)) x +#define HAVE_FUNC_WEAK 1 +#define RUBY_CXX_DEPRECATED(msg) __attribute__((__deprecated__(msg))) +#define HAVE_NULLPTR 1 +#define FUNC_CDECL(x) __attribute__ ((__cdecl__)) x +#define HAVE_GCC_ATOMIC_BUILTINS 1 +#define HAVE_GCC_SYNC_BUILTINS 1 +#define HAVE___BUILTIN_UNREACHABLE 1 +#define RUBY_FUNC_EXPORTED __attribute__ ((__visibility__("default"))) extern +#define RUBY_FUNC_NONNULL(n,x) __attribute__ ((__nonnull__(n))) x +#define RUBY_FUNCTION_NAME_STRING __func__ +#define ENUM_OVER_INT 1 +#define HAVE_DECL_SYS_NERR 1 +#define HAVE_DECL_GETENV 1 +#define SIZEOF_SIZE_T 8 +#define SIZEOF_PTRDIFF_T 8 +#define SIZEOF_DEV_T 4 +#define PRI_SIZE_PREFIX "z" +#define PRI_PTRDIFF_PREFIX "t" +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 +#define HAVE_STRUCT_STAT_ST_RDEV 1 +#define SIZEOF_STRUCT_STAT_ST_SIZE SIZEOF_OFF_T +#define SIZEOF_STRUCT_STAT_ST_BLOCKS SIZEOF_OFF_T +#define SIZEOF_STRUCT_STAT_ST_INO SIZEOF_LONG +#define SIZEOF_STRUCT_STAT_ST_DEV SIZEOF_DEV_T +#define SIZEOF_STRUCT_STAT_ST_RDEV SIZEOF_DEV_T +#define HAVE_STRUCT_STAT_ST_ATIMESPEC 1 +#define HAVE_STRUCT_STAT_ST_MTIMESPEC 1 +#define HAVE_STRUCT_STAT_ST_CTIMESPEC 1 +#define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC 1 +#define HAVE_STRUCT_TIMEVAL 1 +#define SIZEOF_STRUCT_TIMEVAL_TV_SEC SIZEOF_TIME_T +#define HAVE_STRUCT_TIMESPEC 1 +#define HAVE_STRUCT_TIMEZONE 1 +#define HAVE_RB_FD_INIT 1 +#define HAVE_INT8_T 1 +#define SIZEOF_INT8_T 1 +#define HAVE_UINT8_T 1 +#define SIZEOF_UINT8_T 1 +#define HAVE_INT16_T 1 +#define SIZEOF_INT16_T 2 +#define HAVE_UINT16_T 1 +#define SIZEOF_UINT16_T 2 +#define HAVE_INT32_T 1 +#define SIZEOF_INT32_T 4 +#define HAVE_UINT32_T 1 +#define SIZEOF_UINT32_T 4 +#define HAVE_INT64_T 1 +#define SIZEOF_INT64_T 8 +#define HAVE_UINT64_T 1 +#define SIZEOF_UINT64_T 8 +#define HAVE_INT128_T 1 +#define int128_t __int128 +#define SIZEOF_INT128_T SIZEOF___INT128 +#define HAVE_UINT128_T 1 +#define uint128_t unsigned __int128 +#define SIZEOF_UINT128_T SIZEOF___INT128 +#define HAVE_INTPTR_T 1 +#define SIZEOF_INTPTR_T 8 +#define HAVE_UINTPTR_T 1 +#define SIZEOF_UINTPTR_T 8 +#define PRI_PTR_PREFIX "l" +#define HAVE_SSIZE_T 1 +#define SIZEOF_SSIZE_T 8 +#define PRI_64_PREFIX "ll" +#define GETGROUPS_T gid_t +#define HAVE_ALLOCA_H 1 +#define HAVE_ALLOCA 1 +#define HAVE_DUP 1 +#define HAVE_DUP2 1 +#define HAVE_ACOSH 1 +#define HAVE_CBRT 1 +#define HAVE_CRYPT 1 +#define HAVE_ERF 1 +#define HAVE_FFS 1 +#define HAVE_FLOCK 1 +#define HAVE_HYPOT 1 +#define HAVE_LGAMMA_R 1 +#define HAVE_MEMMOVE 1 +#define HAVE_NAN 1 +#define HAVE_NEXTAFTER 1 +#define HAVE_STRCHR 1 +#define HAVE_STRERROR 1 +#define HAVE_STRLCAT 1 +#define HAVE_STRLCPY 1 +#define HAVE_STRSTR 1 +#define HAVE_TGAMMA 1 +#define HAVE_ISFINITE 1 +#define SPT_TYPE SPT_REUSEARGV +#define HAVE_SIGNBIT 1 +#define HAVE_FORK 1 +#define vfork fork +#define HAVE_WORKING_FORK 1 +#define HAVE__LONGJMP 1 +#define HAVE_ARC4RANDOM_BUF 1 +#define HAVE_ATAN2L 1 +#define HAVE_ATAN2F 1 +#define HAVE_CHMOD 1 +#define HAVE_CHOWN 1 +#define HAVE_CHROOT 1 +#define HAVE_CLOCK_GETTIME 1 +#define HAVE_COSH 1 +#define HAVE_DIRFD 1 +#define HAVE_DLOPEN 1 +#define HAVE_DLADDR 1 +#define HAVE_ENDGRENT 1 +#define HAVE_EXECL 1 +#define HAVE_EXECLE 1 +#define HAVE_EXECV 1 +#define HAVE_EXECVE 1 +#define HAVE_FCOPYFILE 1 +#define HAVE_FCHMOD 1 +#define HAVE_FCHOWN 1 +#define HAVE_FCNTL 1 +#define HAVE_FDOPENDIR 1 +#define HAVE_FGETATTRLIST 1 +#define HAVE_FMOD 1 +#define HAVE_FSTATAT 1 +#define HAVE_FSYNC 1 +#define HAVE_FTRUNCATE 1 +#define HAVE_GETATTRLIST 1 +#define HAVE_GETCWD 1 +#define HAVE_GETEGID 1 +#define HAVE_GETENTROPY 1 +#define HAVE_GETEUID 1 +#define HAVE_GETGID 1 +#define HAVE_GETGRNAM 1 +#define HAVE_GETGRNAM_R 1 +#define HAVE_GETGROUPS 1 +#define HAVE_GETLOGIN 1 +#define HAVE_GETLOGIN_R 1 +#define HAVE_GETPGID 1 +#define HAVE_GETPGRP 1 +#define HAVE_GETPPID 1 +#define HAVE_GETPRIORITY 1 +#define HAVE_GETPWNAM 1 +#define HAVE_GETPWNAM_R 1 +#define HAVE_GETPWUID 1 +#define HAVE_GETPWUID_R 1 +#define HAVE_GETRLIMIT 1 +#define HAVE_GETSID 1 +#define HAVE_GETTIMEOFDAY 1 +#define HAVE_GETUID 1 +#define HAVE_GMTIME_R 1 +#define HAVE_GRANTPT 1 +#define HAVE_INITGROUPS 1 +#define HAVE_IOCTL 1 +#define HAVE_ISSETUGID 1 +#define HAVE_KILL 1 +#define HAVE_KILLPG 1 +#define HAVE_LCHMOD 1 +#define HAVE_LCHOWN 1 +#define HAVE_LINK 1 +#define HAVE_LLABS 1 +#define HAVE_LOCKF 1 +#define HAVE_LOG2 1 +#define HAVE_LSTAT 1 +#define HAVE_LUTIMES 1 +#define HAVE_MALLOC_SIZE 1 +#define HAVE_MBLEN 1 +#define HAVE_MEMSET_S 1 +#define HAVE_WRITEV 1 +#define HAVE_MEMMEM 1 +#define HAVE_MKFIFO 1 +#define HAVE_MKNOD 1 +#define HAVE_MKTIME 1 +#define HAVE_MMAP 1 +#define HAVE_OPENAT 1 +#define HAVE_PCLOSE 1 +#define HAVE_PIPE 1 +#define HAVE_POLL 1 +#define HAVE_POPEN 1 +#define HAVE_POSIX_MADVISE 1 +#define HAVE_POSIX_MEMALIGN 1 +#define HAVE_PREAD 1 +#define HAVE_PWRITE 1 +#define HAVE_QSORT_R 1 +#define HAVE_READLINK 1 +#define HAVE_REALPATH 1 +#define HAVE_ROUND 1 +#define HAVE_SEEKDIR 1 +#define HAVE_SENDFILE 1 +#define HAVE_SETEGID 1 +#define HAVE_SETENV 1 +#define HAVE_SETEUID 1 +#define HAVE_SETGID 1 +#define HAVE_SETGROUPS 1 +#define HAVE_SETPGID 1 +#define HAVE_SETPGRP 1 +#define HAVE_SETREGID 1 +#define HAVE_SETREUID 1 +#define HAVE_SETRGID 1 +#define HAVE_SETRLIMIT 1 +#define HAVE_SETRUID 1 +#define HAVE_SETSID 1 +#define HAVE_SETUID 1 +#define HAVE_SHUTDOWN 1 +#define HAVE_SIGACTION 1 +#define HAVE_SIGALTSTACK 1 +#define HAVE_SIGPROCMASK 1 +#define HAVE_SINH 1 +#define HAVE_SYMLINK 1 +#define HAVE_SYSCONF 1 +#define HAVE_SYSTEM 1 +#define HAVE_TANH 1 +#define HAVE_TELLDIR 1 +#define HAVE_TIMEGM 1 +#define HAVE_TIMES 1 +#define HAVE_TRUNCATE 1 +#define HAVE_TZSET 1 +#define HAVE_UMASK 1 +#define HAVE_UNSETENV 1 +#define HAVE_UTIMENSAT 1 +#define HAVE_UTIMES 1 +#define HAVE_WAIT4 1 +#define HAVE_WAITPID 1 +#define HAVE___COSPI 1 +#define HAVE___SINPI 1 +#define __STDC_WANT_LIB_EXT1__ 1 +#define HAVE_BUILTIN___BUILTIN_ALLOCA_WITH_ALIGN 1 +#define HAVE_BUILTIN___BUILTIN_ASSUME_ALIGNED 1 +#define HAVE_BUILTIN___BUILTIN_BSWAP16 1 +#define HAVE_BUILTIN___BUILTIN_BSWAP32 1 +#define HAVE_BUILTIN___BUILTIN_BSWAP64 1 +#define HAVE_BUILTIN___BUILTIN_POPCOUNT 1 +#define HAVE_BUILTIN___BUILTIN_POPCOUNTLL 1 +#define HAVE_BUILTIN___BUILTIN_CLZ 1 +#define HAVE_BUILTIN___BUILTIN_CLZL 1 +#define HAVE_BUILTIN___BUILTIN_CLZLL 1 +#define HAVE_BUILTIN___BUILTIN_CTZ 1 +#define HAVE_BUILTIN___BUILTIN_CTZLL 1 +#define HAVE_BUILTIN___BUILTIN_ADD_OVERFLOW 1 +#define HAVE_BUILTIN___BUILTIN_SUB_OVERFLOW 1 +#define HAVE_BUILTIN___BUILTIN_MUL_OVERFLOW 1 +#define HAVE_BUILTIN___BUILTIN_CONSTANT_P 1 +#define HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR 1 +#define HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P 1 +#define HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P 1 +#define HAVE_BUILTIN___BUILTIN_TRAP 1 +#define HAVE_BUILTIN___BUILTIN_EXPECT 1 +#define HAVE_BSD_QSORT_R 1 +#define ATAN2_INF_C99 1 +#define HAVE_CLOCK_GETRES 1 +#define HAVE_STRUCT_TM_TM_ZONE 1 +#define HAVE_TM_ZONE 1 +#define HAVE_STRUCT_TM_TM_GMTOFF 1 +#define HAVE_DAYLIGHT 1 +#define NEGATIVE_TIME_T 1 +#define POSIX_SIGNAL 1 +#define HAVE_SIG_T 1 +#define RSHIFT(x,y) ((x)>>(int)(y)) +#define HAVE__SC_CLK_TCK 1 +#define STACK_GROW_DIRECTION -1 +#define COROUTINE_H "coroutine/arm64/Context.h" +#define HAVE_SCHED_YIELD 1 +#define HAVE_PTHREAD_ATTR_SETINHERITSCHED 1 +#define HAVE_PTHREAD_ATTR_GETSTACK 1 +#define HAVE_PTHREAD_ATTR_GETGUARDSIZE 1 +#define HAVE_PTHREAD_GET_STACKADDR_NP 1 +#define HAVE_PTHREAD_GET_STACKSIZE_NP 1 +#define HAVE_PTHREAD_SETNAME_NP 1 +#define HAVE_PTHREAD_SIGMASK 1 +#define SET_CURRENT_THREAD_NAME(name) pthread_setname_np(name) +#define DEFINE_MCONTEXT_PTR(mc,uc) mcontext_t mc = (uc)->uc_mcontext +#define HAVE_SYS_USER_H 1 +#define HAVE_CONST_PAGE_SIZE 0 +#define IOCTL_REQ_TYPE unsigned long +#define NUM2IOCTLREQ(num) NUM2ULONG(num) +#define HAVE_MACH_O_LOADER_H 1 +#define EXTSTATIC 1 +#define HAVE_LIBPROC_H 1 +#define HAVE_EXECINFO_H 1 +#define HAVE_LIBUNWIND_H 1 +#define HAVE_MACH_TASK_H 1 +#define HAVE_MACH_MACH_INIT_H 1 +#define HAVE_MACH_MACH_PORT_H 1 +#define HAVE_MACH_TASK_EXCEPTION_PORTS 1 +#define HAVE_BACKTRACE 1 +#define BROKEN_BACKTRACE 1 +#define DLEXT_MAXLEN 7 +#define DLEXT ".bundle" +#define LIBDIR_BASENAME "lib" +#define HAVE__SETJMP 1 +#define HAVE_SIGSETJMP 1 +#define RUBY_SETJMP(env) sigsetjmp((env),0) +#define RUBY_LONGJMP(env,val) siglongjmp((env),val) +#define RUBY_JMP_BUF sigjmp_buf +#define USE_MJIT 1 +#define USE_YJIT 0 +#define LOAD_RELATIVE 1 +#define RUBY_PLATFORM "arm64-darwin22" +#define RBIMPL_COMPILER_SINCE_H +#define RBIMPL_COMPILER_IS_H +#define RBIMPL_COMPILER_IS(cc) RBIMPL_COMPILER_IS_ ## cc +#define RBIMPL_COMPILER_IS_APPLE_H +#define RBIMPL_COMPILER_IS_Apple 1 +#define RBIMPL_COMPILER_VERSION_MAJOR __clang_major__ +#define RBIMPL_COMPILER_VERSION_MINOR __clang_minor__ +#define RBIMPL_COMPILER_VERSION_PATCH __clang_patchlevel__ +#define RBIMPL_COMPILER_IS_CLANG_H +#define RBIMPL_COMPILER_IS_Clang 0 +#define RBIMPL_COMPILER_IS_GCC_H +#define RBIMPL_COMPILER_IS_INTEL_H +#define RBIMPL_COMPILER_IS_Intel 0 +#define RBIMPL_COMPILER_IS_GCC 0 +#define RBIMPL_COMPILER_IS_MSVC_H +#define RBIMPL_COMPILER_IS_MSVC 0 +#define RBIMPL_COMPILER_IS_SUNPRO_H +#define RBIMPL_COMPILER_IS_SunPro 0 +#define RBIMPL_COMPILER_SINCE(cc,x,y,z) (RBIMPL_COMPILER_IS(cc) && ((RBIMPL_COMPILER_VERSION_MAJOR > (x)) || ((RBIMPL_COMPILER_VERSION_MAJOR == (x)) && ((RBIMPL_COMPILER_VERSION_MINOR > (y)) || ((RBIMPL_COMPILER_VERSION_MINOR == (y)) && (RBIMPL_COMPILER_VERSION_PATCH >= (z))))))) +#define RBIMPL_COMPILER_BEFORE(cc,x,y,z) (RBIMPL_COMPILER_IS(cc) && ((RBIMPL_COMPILER_VERSION_MAJOR < (x)) || ((RBIMPL_COMPILER_VERSION_MAJOR == (x)) && ((RBIMPL_COMPILER_VERSION_MINOR < (y)) || ((RBIMPL_COMPILER_VERSION_MINOR == (y)) && (RBIMPL_COMPILER_VERSION_PATCH < (z))))))) +#undef HAVE_PROTOTYPES +#define HAVE_PROTOTYPES 1 +#undef HAVE_STDARG_PROTOTYPES +#define HAVE_STDARG_PROTOTYPES 1 +#undef TOKEN_PASTE +#define TOKEN_PASTE(x,y) x##y +#define STRINGIZE(expr) STRINGIZE0(expr) +#define STRINGIZE0(expr) #expr +#define UNALIGNED_WORD_ACCESS 1 +#define RBIMPL_TEST3(q,w,e,...) e +#define RBIMPL_TEST2(...) RBIMPL_TEST3(__VA_OPT__(,),1,0,0) +#define RBIMPL_TEST1() RBIMPL_TEST2("ruby") +#define HAVE___VA_OPT__ +#undef RBIMPL_TEST1 +#undef RBIMPL_TEST2 +#undef RBIMPL_TEST3 +#define USE_RVARGC 1 +#define __STDARG_H +#define _VA_LIST +#define va_start(ap,param) __builtin_va_start(ap, param) +#define va_end(ap) __builtin_va_end(ap) +#define va_arg(ap,type) __builtin_va_arg(ap, type) +#define __va_copy(d,s) __builtin_va_copy(d,s) +#define va_copy(dest,src) __builtin_va_copy(dest, src) +#define __GNUC_VA_LIST 1 +#define RUBY_DEFINES_H 1 +#define _STDIO_H_ +#define __STDIO_H_ +#define _CDEFS_H_ +#define __BEGIN_DECLS +#define __END_DECLS +#define __P(protos) protos +#define __CONCAT(x,y) x ## y +#define __STRING(x) #x +#define __const const +#define __signed signed +#define __volatile volatile +#define __dead2 __attribute__((__noreturn__)) +#define __pure2 __attribute__((__const__)) +#define __stateful_pure __attribute__((__pure__)) +#define __unused __attribute__((__unused__)) +#define __used __attribute__((__used__)) +#define __cold __attribute__((__cold__)) +#define __returns_nonnull __attribute((returns_nonnull)) +#define __exported __attribute__((__visibility__("default"))) +#define __exported_push _Pragma("GCC visibility push(default)") +#define __exported_pop _Pragma("GCC visibility pop") +#define __deprecated __attribute__((__deprecated__)) +#define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg))) +#define __deprecated_enum_msg(_msg) __deprecated_msg(_msg) +#define __kpi_deprecated(_msg) +#define __unavailable __attribute__((__unavailable__)) +#define __kpi_unavailable +#define __kpi_deprecated_arm64_macos_unavailable +#define __dead +#define __pure +#define __restrict restrict +#define __disable_tail_calls __attribute__((__disable_tail_calls__)) +#define __not_tail_called __attribute__((__not_tail_called__)) +#define __result_use_check __attribute__((__warn_unused_result__)) +#define __swift_unavailable(_msg) __attribute__((__availability__(swift, unavailable, message=_msg))) +#define __abortlike __dead2 __cold __not_tail_called +#define __header_inline inline +#define __header_always_inline __header_inline __attribute__ ((__always_inline__)) +#define __unreachable_ok_push _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wunreachable-code\"") +#define __unreachable_ok_pop _Pragma("clang diagnostic pop") +#define __printflike(fmtarg,firstvararg) __attribute__((__format__ (__printf__, fmtarg, firstvararg))) +#define __printf0like(fmtarg,firstvararg) __attribute__((__format__ (__printf0__, fmtarg, firstvararg))) +#define __scanflike(fmtarg,firstvararg) __attribute__((__format__ (__scanf__, fmtarg, firstvararg))) +#define __osloglike(fmtarg,firstvararg) __attribute__((__format__ (__os_log__, fmtarg, firstvararg))) +#define __IDSTRING(name,string) static const char name[] __used = string +#define __COPYRIGHT(s) __IDSTRING(copyright,s) +#define __RCSID(s) __IDSTRING(rcsid,s) +#define __SCCSID(s) __IDSTRING(sccsid,s) +#define __PROJECT_VERSION(s) __IDSTRING(project_version,s) +#define __FBSDID(s) +#define __DECONST(type,var) __CAST_AWAY_QUALIFIER(var, const, type) +#define __DEVOLATILE(type,var) __CAST_AWAY_QUALIFIER(var, volatile, type) +#define __DEQUALIFY(type,var) __CAST_AWAY_QUALIFIER(var, const volatile, type) +#define __alloc_align(n) __attribute__((alloc_align(n))) +#define __alloc_size(...) __attribute__((alloc_size(__VA_ARGS__))) +#define __DARWIN_ONLY_64_BIT_INO_T 1 +#define __DARWIN_ONLY_UNIX_CONFORMANCE 1 +#define __DARWIN_ONLY_VERS_1050 1 +#define __DARWIN_UNIX03 1 +#define __DARWIN_64_BIT_INO_T 1 +#define __DARWIN_VERS_1050 1 +#define __DARWIN_NON_CANCELABLE 0 +#define __DARWIN_SUF_UNIX03 +#define __DARWIN_SUF_64_BIT_INO_T +#define __DARWIN_SUF_1050 +#define __DARWIN_SUF_NON_CANCELABLE +#define __DARWIN_SUF_EXTSN "$DARWIN_EXTSN" +#define __DARWIN_ALIAS(sym) __asm("_" __STRING(sym) __DARWIN_SUF_UNIX03) +#define __DARWIN_ALIAS_C(sym) __asm("_" __STRING(sym) __DARWIN_SUF_NON_CANCELABLE __DARWIN_SUF_UNIX03) +#define __DARWIN_ALIAS_I(sym) __asm("_" __STRING(sym) __DARWIN_SUF_64_BIT_INO_T __DARWIN_SUF_UNIX03) +#define __DARWIN_NOCANCEL(sym) __asm("_" __STRING(sym) __DARWIN_SUF_NON_CANCELABLE) +#define __DARWIN_INODE64(sym) __asm("_" __STRING(sym) __DARWIN_SUF_64_BIT_INO_T) +#define __DARWIN_1050(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050) +#define __DARWIN_1050ALIAS(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_UNIX03) +#define __DARWIN_1050ALIAS_C(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_NON_CANCELABLE __DARWIN_SUF_UNIX03) +#define __DARWIN_1050ALIAS_I(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_64_BIT_INO_T __DARWIN_SUF_UNIX03) +#define __DARWIN_1050INODE64(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_64_BIT_INO_T) +#define __DARWIN_EXTSN(sym) __asm("_" __STRING(sym) __DARWIN_SUF_EXTSN) +#define __DARWIN_EXTSN_C(sym) __asm("_" __STRING(sym) __DARWIN_SUF_EXTSN __DARWIN_SUF_NON_CANCELABLE) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_4(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_4(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_4(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_4(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_5(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_6(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_7(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_5(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_4(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_5(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_6(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_7(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_8(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_4(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_5(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_6(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_4(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_5(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_17_0(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_0(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_1(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_2(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_3(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_4(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_5(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_6(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_7(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_8(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_9(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10_2(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10_3(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_2(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_3(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_4(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_1(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_2(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_4(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_1(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_2(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_4(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_1(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_4(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_5(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_6(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15_1(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15_4(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_16(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_11_0(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_11_1(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_11_3(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_11_4(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_11_5(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_11_6(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_12_0(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_12_1(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_12_2(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_12_3(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_12_4(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_12_5(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_13_0(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_13_1(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_13_1(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_13_2(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_13_3(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_13_4(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_14_0(x) +#define __DARWIN_ALIAS_STARTING(_mac,_iphone,x) __DARWIN_ALIAS_STARTING_MAC_##_mac(x) +#define ___POSIX_C_DEPRECATED_STARTING_198808L +#define ___POSIX_C_DEPRECATED_STARTING_199009L +#define ___POSIX_C_DEPRECATED_STARTING_199209L +#define ___POSIX_C_DEPRECATED_STARTING_199309L +#define ___POSIX_C_DEPRECATED_STARTING_199506L +#define ___POSIX_C_DEPRECATED_STARTING_200112L +#define ___POSIX_C_DEPRECATED_STARTING_200809L +#define __POSIX_C_DEPRECATED(ver) ___POSIX_C_DEPRECATED_STARTING_##ver +#define __DARWIN_C_ANSI 010000L +#define __DARWIN_C_FULL 900000L +#define __DARWIN_C_LEVEL __DARWIN_C_FULL +#define __DARWIN_NO_LONG_LONG 0 +#define _DARWIN_FEATURE_64_BIT_INODE 1 +#define _DARWIN_FEATURE_ONLY_64_BIT_INODE 1 +#define _DARWIN_FEATURE_ONLY_VERS_1050 1 +#define _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE 1 +#define _DARWIN_FEATURE_UNIX_CONFORMANCE 3 +#define __CAST_AWAY_QUALIFIER(variable,qualifier,type) _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wcast-qual\"") _Pragma("GCC diagnostic ignored \"-Wcast-align\"") _Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"") ((type)(variable)) _Pragma("GCC diagnostic pop") +#define __XNU_PRIVATE_EXTERN __attribute__((visibility("hidden"))) +#define __has_ptrcheck 0 +#define __single +#define __unsafe_indexable +#define __counted_by(N) +#define __sized_by(N) +#define __ended_by(E) +#define __terminated_by(T) +#define __null_terminated +#define __ptrcheck_abi_assume_single() +#define __ptrcheck_abi_assume_unsafe_indexable() +#define __unsafe_forge_bidi_indexable(T,P,S) ((T)(P)) +#define __unsafe_forge_single(T,P) ((T)(P)) +#define __terminated_by_to_indexable(P) (P) +#define __unsafe_terminated_by_to_indexable(P) (P) +#define __null_terminated_to_indexable(P) (P) +#define __unsafe_null_terminated_to_indexable(P) (P) +#define __unsafe_terminated_by_from_indexable(T,P,...) (P) +#define __unsafe_null_terminated_from_indexable(P,...) (P) +#define __array_decay_dicards_count_in_parameters +#define __unsafe_late_const +#define __ASSUME_PTR_ABI_SINGLE_BEGIN __ptrcheck_abi_assume_single() +#define __ASSUME_PTR_ABI_SINGLE_END __ptrcheck_abi_assume_unsafe_indexable() +#define __header_indexable +#define __header_bidi_indexable +#define __compiler_barrier() __asm__ __volatile__("" ::: "memory") +#define __enum_open __attribute__((__enum_extensibility__(open))) +#define __enum_closed __attribute__((__enum_extensibility__(closed))) +#define __enum_options __attribute__((__flag_enum__)) +#define __enum_decl(_name,_type,...) typedef enum : _type __VA_ARGS__ __enum_open _name +#define __enum_closed_decl(_name,_type,...) typedef enum : _type __VA_ARGS__ __enum_closed _name +#define __options_decl(_name,_type,...) typedef enum : _type __VA_ARGS__ __enum_open __enum_options _name +#define __options_closed_decl(_name,_type,...) typedef enum : _type __VA_ARGS__ __enum_closed __enum_options _name +#define __kernel_ptr_semantics +#define __kernel_data_semantics +#define __kernel_dual_semantics +#define __AVAILABILITY__ +#define __API_TO_BE_DEPRECATED 100000 +#define __API_TO_BE_DEPRECATED_MACOS 100000 +#define __API_TO_BE_DEPRECATED_IOS 100000 +#define __API_TO_BE_DEPRECATED_MACCATALYST 100000 +#define __API_TO_BE_DEPRECATED_WATCHOS 100000 +#define __API_TO_BE_DEPRECATED_TVOS 100000 +#define __API_TO_BE_DEPRECATED_DRIVERKIT 100000 +#define __API_TO_BE_DEPRECATED_XROS 100000 +#define __AVAILABILITY_VERSIONS__ +#define __MAC_10_0 1000 +#define __MAC_10_1 1010 +#define __MAC_10_2 1020 +#define __MAC_10_3 1030 +#define __MAC_10_4 1040 +#define __MAC_10_5 1050 +#define __MAC_10_6 1060 +#define __MAC_10_7 1070 +#define __MAC_10_8 1080 +#define __MAC_10_9 1090 +#define __MAC_10_10 101000 +#define __MAC_10_10_2 101002 +#define __MAC_10_10_3 101003 +#define __MAC_10_11 101100 +#define __MAC_10_11_2 101102 +#define __MAC_10_11_3 101103 +#define __MAC_10_11_4 101104 +#define __MAC_10_12 101200 +#define __MAC_10_12_1 101201 +#define __MAC_10_12_2 101202 +#define __MAC_10_12_4 101204 +#define __MAC_10_13 101300 +#define __MAC_10_13_1 101301 +#define __MAC_10_13_2 101302 +#define __MAC_10_13_4 101304 +#define __MAC_10_14 101400 +#define __MAC_10_14_1 101401 +#define __MAC_10_14_4 101404 +#define __MAC_10_14_5 101405 +#define __MAC_10_14_6 101406 +#define __MAC_10_15 101500 +#define __MAC_10_15_1 101501 +#define __MAC_10_15_4 101504 +#define __MAC_10_16 101600 +#define __MAC_11_0 110000 +#define __MAC_11_1 110100 +#define __MAC_11_3 110300 +#define __MAC_11_4 110400 +#define __MAC_11_5 110500 +#define __MAC_11_6 110600 +#define __MAC_12_0 120000 +#define __MAC_12_1 120100 +#define __MAC_12_2 120200 +#define __MAC_12_3 120300 +#define __MAC_12_4 120400 +#define __MAC_12_5 120500 +#define __MAC_13_0 130000 +#define __MAC_13_1 130100 +#define __MAC_13_1 130100 +#define __MAC_13_2 130200 +#define __MAC_13_3 130300 +#define __MAC_13_4 130400 +#define __MAC_14_0 140000 +#define __IPHONE_2_0 20000 +#define __IPHONE_2_1 20100 +#define __IPHONE_2_2 20200 +#define __IPHONE_3_0 30000 +#define __IPHONE_3_1 30100 +#define __IPHONE_3_2 30200 +#define __IPHONE_4_0 40000 +#define __IPHONE_4_1 40100 +#define __IPHONE_4_2 40200 +#define __IPHONE_4_3 40300 +#define __IPHONE_5_0 50000 +#define __IPHONE_5_1 50100 +#define __IPHONE_6_0 60000 +#define __IPHONE_6_1 60100 +#define __IPHONE_7_0 70000 +#define __IPHONE_7_1 70100 +#define __IPHONE_8_0 80000 +#define __IPHONE_8_1 80100 +#define __IPHONE_8_2 80200 +#define __IPHONE_8_3 80300 +#define __IPHONE_8_4 80400 +#define __IPHONE_9_0 90000 +#define __IPHONE_9_1 90100 +#define __IPHONE_9_2 90200 +#define __IPHONE_9_3 90300 +#define __IPHONE_10_0 100000 +#define __IPHONE_10_1 100100 +#define __IPHONE_10_2 100200 +#define __IPHONE_10_3 100300 +#define __IPHONE_11_0 110000 +#define __IPHONE_11_1 110100 +#define __IPHONE_11_2 110200 +#define __IPHONE_11_3 110300 +#define __IPHONE_11_4 110400 +#define __IPHONE_12_0 120000 +#define __IPHONE_12_1 120100 +#define __IPHONE_12_2 120200 +#define __IPHONE_12_3 120300 +#define __IPHONE_12_4 120400 +#define __IPHONE_13_0 130000 +#define __IPHONE_13_1 130100 +#define __IPHONE_13_2 130200 +#define __IPHONE_13_3 130300 +#define __IPHONE_13_4 130400 +#define __IPHONE_13_5 130500 +#define __IPHONE_13_6 130600 +#define __IPHONE_13_7 130700 +#define __IPHONE_14_0 140000 +#define __IPHONE_14_1 140100 +#define __IPHONE_14_2 140200 +#define __IPHONE_14_3 140300 +#define __IPHONE_14_5 140500 +#define __IPHONE_14_4 140400 +#define __IPHONE_14_5 140500 +#define __IPHONE_14_6 140600 +#define __IPHONE_14_7 140700 +#define __IPHONE_14_8 140800 +#define __IPHONE_15_0 150000 +#define __IPHONE_15_1 150100 +#define __IPHONE_15_2 150200 +#define __IPHONE_15_3 150300 +#define __IPHONE_15_4 150400 +#define __IPHONE_15_5 150500 +#define __IPHONE_15_6 150600 +#define __IPHONE_16_0 160000 +#define __IPHONE_16_1 160100 +#define __IPHONE_16_2 160200 +#define __IPHONE_16_3 160300 +#define __IPHONE_16_4 160400 +#define __IPHONE_16_5 160500 +#define __IPHONE_17_0 170000 +#define __WATCHOS_1_0 10000 +#define __WATCHOS_2_0 20000 +#define __WATCHOS_2_1 20100 +#define __WATCHOS_2_2 20200 +#define __WATCHOS_3_0 30000 +#define __WATCHOS_3_1 30100 +#define __WATCHOS_3_1_1 30101 +#define __WATCHOS_3_2 30200 +#define __WATCHOS_4_0 40000 +#define __WATCHOS_4_1 40100 +#define __WATCHOS_4_2 40200 +#define __WATCHOS_4_3 40300 +#define __WATCHOS_5_0 50000 +#define __WATCHOS_5_1 50100 +#define __WATCHOS_5_2 50200 +#define __WATCHOS_5_3 50300 +#define __WATCHOS_6_0 60000 +#define __WATCHOS_6_1 60100 +#define __WATCHOS_6_2 60200 +#define __WATCHOS_7_0 70000 +#define __WATCHOS_7_1 70100 +#define __WATCHOS_7_2 70200 +#define __WATCHOS_7_3 70300 +#define __WATCHOS_7_4 70400 +#define __WATCHOS_7_5 70500 +#define __WATCHOS_7_6 70600 +#define __WATCHOS_8_0 80000 +#define __WATCHOS_8_1 80100 +#define __WATCHOS_8_3 80300 +#define __WATCHOS_8_4 80400 +#define __WATCHOS_8_5 80500 +#define __WATCHOS_8_6 80600 +#define __WATCHOS_8_7 80700 +#define __WATCHOS_9_0 90000 +#define __WATCHOS_9_1 90100 +#define __WATCHOS_9_2 90200 +#define __WATCHOS_9_3 90300 +#define __WATCHOS_9_4 90400 +#define __WATCHOS_9_5 90500 +#define __WATCHOS_10_0 100000 +#define __TVOS_9_0 90000 +#define __TVOS_9_1 90100 +#define __TVOS_9_2 90200 +#define __TVOS_10_0 100000 +#define __TVOS_10_0_1 100001 +#define __TVOS_10_1 100100 +#define __TVOS_10_2 100200 +#define __TVOS_11_0 110000 +#define __TVOS_11_1 110100 +#define __TVOS_11_2 110200 +#define __TVOS_11_3 110300 +#define __TVOS_11_4 110400 +#define __TVOS_12_0 120000 +#define __TVOS_12_1 120100 +#define __TVOS_12_2 120200 +#define __TVOS_12_3 120300 +#define __TVOS_12_4 120400 +#define __TVOS_13_0 130000 +#define __TVOS_13_2 130200 +#define __TVOS_13_3 130300 +#define __TVOS_13_4 130400 +#define __TVOS_14_0 140000 +#define __TVOS_14_1 140100 +#define __TVOS_14_2 140200 +#define __TVOS_14_3 140300 +#define __TVOS_14_5 140500 +#define __TVOS_14_6 140600 +#define __TVOS_14_7 140700 +#define __TVOS_15_0 150000 +#define __TVOS_15_1 150100 +#define __TVOS_15_2 150200 +#define __TVOS_15_3 150300 +#define __TVOS_15_4 150400 +#define __TVOS_15_5 150500 +#define __TVOS_15_6 150600 +#define __TVOS_16_0 160000 +#define __TVOS_16_1 160100 +#define __TVOS_16_2 160200 +#define __TVOS_16_3 160300 +#define __TVOS_16_4 160400 +#define __TVOS_16_5 160500 +#define __TVOS_17_0 170000 +#define __BRIDGEOS_2_0 20000 +#define __BRIDGEOS_3_0 30000 +#define __BRIDGEOS_3_1 30100 +#define __BRIDGEOS_3_4 30400 +#define __BRIDGEOS_4_0 40000 +#define __BRIDGEOS_4_1 40100 +#define __BRIDGEOS_5_0 50000 +#define __BRIDGEOS_5_1 50100 +#define __BRIDGEOS_5_3 50300 +#define __BRIDGEOS_6_0 60000 +#define __BRIDGEOS_6_2 60200 +#define __BRIDGEOS_6_4 60400 +#define __BRIDGEOS_6_5 60500 +#define __BRIDGEOS_6_6 60600 +#define __BRIDGEOS_7_0 70000 +#define __BRIDGEOS_7_1 70100 +#define __BRIDGEOS_7_1 70100 +#define __BRIDGEOS_7_2 70200 +#define __BRIDGEOS_7_3 70300 +#define __BRIDGEOS_7_4 70400 +#define __BRIDGEOS_8_0 80000 +#define __DRIVERKIT_19_0 190000 +#define __DRIVERKIT_20_0 200000 +#define __DRIVERKIT_21_0 210000 +#define __DRIVERKIT_22_0 220000 +#define __DRIVERKIT_22_4 220400 +#define __DRIVERKIT_22_5 220500 +#define __DRIVERKIT_23_0 230000 +#define __XROS_1_0 10000 +#define MAC_OS_X_VERSION_10_0 __MAC_10_0 +#define MAC_OS_X_VERSION_10_1 __MAC_10_1 +#define MAC_OS_X_VERSION_10_2 __MAC_10_2 +#define MAC_OS_X_VERSION_10_3 __MAC_10_3 +#define MAC_OS_X_VERSION_10_4 __MAC_10_4 +#define MAC_OS_X_VERSION_10_5 __MAC_10_5 +#define MAC_OS_X_VERSION_10_6 __MAC_10_6 +#define MAC_OS_X_VERSION_10_7 __MAC_10_7 +#define MAC_OS_X_VERSION_10_8 __MAC_10_8 +#define MAC_OS_X_VERSION_10_9 __MAC_10_9 +#define MAC_OS_X_VERSION_10_10 __MAC_10_10 +#define MAC_OS_X_VERSION_10_10_2 __MAC_10_10_2 +#define MAC_OS_X_VERSION_10_10_3 __MAC_10_10_3 +#define MAC_OS_X_VERSION_10_11 __MAC_10_11 +#define MAC_OS_X_VERSION_10_11_2 __MAC_10_11_2 +#define MAC_OS_X_VERSION_10_11_3 __MAC_10_11_3 +#define MAC_OS_X_VERSION_10_11_4 __MAC_10_11_4 +#define MAC_OS_X_VERSION_10_12 __MAC_10_12 +#define MAC_OS_X_VERSION_10_12_1 __MAC_10_12_1 +#define MAC_OS_X_VERSION_10_12_2 __MAC_10_12_2 +#define MAC_OS_X_VERSION_10_12_4 __MAC_10_12_4 +#define MAC_OS_X_VERSION_10_13 __MAC_10_13 +#define MAC_OS_X_VERSION_10_13_1 __MAC_10_13_1 +#define MAC_OS_X_VERSION_10_13_2 __MAC_10_13_2 +#define MAC_OS_X_VERSION_10_13_4 __MAC_10_13_4 +#define MAC_OS_X_VERSION_10_14 __MAC_10_14 +#define MAC_OS_X_VERSION_10_14_1 __MAC_10_14_1 +#define MAC_OS_X_VERSION_10_14_4 __MAC_10_14_4 +#define MAC_OS_X_VERSION_10_14_5 __MAC_10_14_5 +#define MAC_OS_X_VERSION_10_14_6 __MAC_10_14_6 +#define MAC_OS_X_VERSION_10_15 __MAC_10_15 +#define MAC_OS_X_VERSION_10_15_1 __MAC_10_15_1 +#define MAC_OS_X_VERSION_10_15_4 __MAC_10_15_4 +#define MAC_OS_X_VERSION_10_16 __MAC_10_16 +#define MAC_OS_VERSION_11_0 __MAC_11_0 +#define MAC_OS_VERSION_11_1 __MAC_11_1 +#define MAC_OS_VERSION_11_3 __MAC_11_3 +#define MAC_OS_VERSION_11_4 __MAC_11_4 +#define MAC_OS_VERSION_11_5 __MAC_11_5 +#define MAC_OS_VERSION_11_6 __MAC_11_6 +#define MAC_OS_VERSION_12_0 __MAC_12_0 +#define MAC_OS_VERSION_12_1 __MAC_12_1 +#define MAC_OS_VERSION_12_2 __MAC_12_2 +#define MAC_OS_VERSION_12_3 __MAC_12_3 +#define MAC_OS_VERSION_12_4 __MAC_12_4 +#define MAC_OS_VERSION_12_5 __MAC_12_5 +#define MAC_OS_VERSION_13_0 __MAC_13_0 +#define MAC_OS_VERSION_13_1 __MAC_13_1 +#define MAC_OS_VERSION_13_1 __MAC_13_1 +#define MAC_OS_VERSION_13_2 __MAC_13_2 +#define MAC_OS_VERSION_13_3 __MAC_13_3 +#define MAC_OS_VERSION_13_4 __MAC_13_4 +#define MAC_OS_VERSION_14_0 __MAC_14_0 +#define __AVAILABILITY_INTERNAL__ +#define __MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__ +#define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_14_0 +#define __AVAILABILITY_INTERNAL_DEPRECATED __attribute__((deprecated)) +#define __AVAILABILITY_INTERNAL_DEPRECATED_MSG(_msg) __attribute__((deprecated(_msg))) +#define __AVAILABILITY_INTERNAL_UNAVAILABLE __attribute__((unavailable)) +#define __AVAILABILITY_INTERNAL_WEAK_IMPORT __attribute__((weak_import)) +#define __AVAILABILITY_INTERNAL_REGULAR +#define __AVAILABILITY_INTERNAL_LEGACY__ +#define __ENABLE_LEGACY_MAC_AVAILABILITY 1 +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.1,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.1,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.1,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.1,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_2 __attribute__((availability(macosx,introduced=10.1,deprecated=10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_3 __attribute__((availability(macosx,introduced=10.1,deprecated=10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_4 __attribute__((availability(macosx,introduced=10.1,deprecated=10.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_5 __attribute__((availability(macosx,introduced=10.1,deprecated=10.5))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_5_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.5,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_6 __attribute__((availability(macosx,introduced=10.1,deprecated=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_6_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.6,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_7 __attribute__((availability(macosx,introduced=10.1,deprecated=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_7_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.7,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_8 __attribute__((availability(macosx,introduced=10.1,deprecated=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_8_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.8,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.1,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_2 __attribute__((availability(macosx,introduced=10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.2,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.2,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.2,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.2,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_13 __attribute__((availability(macosx,introduced=10.2,deprecated=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_2 __attribute__((availability(macosx,introduced=10.2,deprecated=10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_3 __attribute__((availability(macosx,introduced=10.2,deprecated=10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_4 __attribute__((availability(macosx,introduced=10.2,deprecated=10.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_5 __attribute__((availability(macosx,introduced=10.2,deprecated=10.5))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_5_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.5,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_6 __attribute__((availability(macosx,introduced=10.2,deprecated=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_6_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.6,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_7 __attribute__((availability(macosx,introduced=10.2,deprecated=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_7_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.7,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_8 __attribute__((availability(macosx,introduced=10.2,deprecated=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_8_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.8,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.2,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_3 __attribute__((availability(macosx,introduced=10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.3,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.3,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.3,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.3,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_13 __attribute__((availability(macosx,introduced=10.3,deprecated=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_3 __attribute__((availability(macosx,introduced=10.3,deprecated=10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_4 __attribute__((availability(macosx,introduced=10.3,deprecated=10.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_5 __attribute__((availability(macosx,introduced=10.3,deprecated=10.5))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_5_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.5,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_6 __attribute__((availability(macosx,introduced=10.3,deprecated=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_6_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.6,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_7 __attribute__((availability(macosx,introduced=10.3,deprecated=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_7_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.7,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_8 __attribute__((availability(macosx,introduced=10.3,deprecated=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_8_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.8,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.3,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_4 __attribute__((availability(macosx,introduced=10.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.4,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.4,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.4,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.4,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_13 __attribute__((availability(macosx,introduced=10.4,deprecated=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_4 __attribute__((availability(macosx,introduced=10.4,deprecated=10.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_5 __attribute__((availability(macosx,introduced=10.4,deprecated=10.5))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_5_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.5,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_6 __attribute__((availability(macosx,introduced=10.4,deprecated=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_6_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.6,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_7 __attribute__((availability(macosx,introduced=10.4,deprecated=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_7_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.7,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_8 __attribute__((availability(macosx,introduced=10.4,deprecated=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_8_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.8,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.4,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_5 __attribute__((availability(macosx,introduced=10.5))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEPRECATED__MAC_10_7 __attribute__((availability(macosx,introduced=10.5.DEPRECATED..MAC.10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.5,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.5,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.5,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.5,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_5 __attribute__((availability(macosx,introduced=10.5,deprecated=10.5))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_5_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.5,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_6 __attribute__((availability(macosx,introduced=10.5,deprecated=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_6_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.6,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_7 __attribute__((availability(macosx,introduced=10.5,deprecated=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_7_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.7,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_8 __attribute__((availability(macosx,introduced=10.5,deprecated=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_8_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.8,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.5,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.5))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.5))) +#define __AVAILABILITY_INTERNAL__MAC_10_6 __attribute__((availability(macosx,introduced=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.6,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.6,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.6,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.6,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_13 __attribute__((availability(macosx,introduced=10.6,deprecated=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_6 __attribute__((availability(macosx,introduced=10.6,deprecated=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_6_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.6,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_7 __attribute__((availability(macosx,introduced=10.6,deprecated=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_7_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.7,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_8 __attribute__((availability(macosx,introduced=10.6,deprecated=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_8_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.8,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.6,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_7 __attribute__((availability(macosx,introduced=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.7,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.7,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.7,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.7,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_13_2 __attribute__((availability(macosx,introduced=10.7,deprecated=10.13.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_7 __attribute__((availability(macosx,introduced=10.7,deprecated=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_7_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.7,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_8 __attribute__((availability(macosx,introduced=10.7,deprecated=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_8_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.8,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.7,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_8 __attribute__((availability(macosx,introduced=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.8,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.8,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.8,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.8,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_13 __attribute__((availability(macosx,introduced=10.8,deprecated=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_8 __attribute__((availability(macosx,introduced=10.8,deprecated=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_8_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.8,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.8,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_9 __attribute__((availability(macosx,introduced=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.9,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.9,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.9,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.9,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_13 __attribute__((availability(macosx,introduced=10.9,deprecated=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_14 __attribute__((availability(macosx,introduced=10.9,deprecated=10.14))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.9,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_0 __attribute__((availability(macosx,introduced=10.0))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_0 __attribute__((availability(macosx,introduced=10.0,deprecated=10.0))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_0_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.0,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.0,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.0,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.0,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.0,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_13 __attribute__((availability(macosx,introduced=10.0,deprecated=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_2 __attribute__((availability(macosx,introduced=10.0,deprecated=10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_3 __attribute__((availability(macosx,introduced=10.0,deprecated=10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_4 __attribute__((availability(macosx,introduced=10.0,deprecated=10.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_5 __attribute__((availability(macosx,introduced=10.0,deprecated=10.5))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_5_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.5,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_6 __attribute__((availability(macosx,introduced=10.0,deprecated=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_6_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.6,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_7 __attribute__((availability(macosx,introduced=10.0,deprecated=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_7_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.7,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_8 __attribute__((availability(macosx,introduced=10.0,deprecated=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_8_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.8,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.0,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_13_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.13,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.0))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.0))) +#define __AVAILABILITY_INTERNAL__MAC_10_1 __attribute__((availability(macosx,introduced=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_10 __attribute__((availability(macosx,introduced=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.10,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.10,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.10,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.10,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_13 __attribute__((availability(macosx,introduced=10.10,deprecated=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_13_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.13,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_13_4 __attribute__((availability(macosx,introduced=10.10,deprecated=10.13.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_11 __attribute__((availability(macosx,introduced=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.11,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.11,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.11,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.11,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.11,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_12 __attribute__((availability(macosx,introduced=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.12.4,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.12.4,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.12,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.12,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_13 __attribute__((availability(macosx,introduced=10.12,deprecated=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_13_MSG(_msg) __attribute__((availability(macosx,introduced=10.12,deprecated=10.13,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_13_4 __attribute__((availability(macosx,introduced=10.12,deprecated=10.13.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_14 __attribute__((availability(macosx,introduced=10.12,deprecated=10.14))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_13 __attribute__((availability(macosx,introduced=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_13_4 __attribute__((availability(macosx,introduced=10.13.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_14 __attribute__((availability(macosx,introduced=10.14))) +#define __AVAILABILITY_INTERNAL__MAC_10_14_DEP__MAC_10_14 __attribute__((availability(macosx,introduced=10.14,deprecated=10.14))) +#define __AVAILABILITY_INTERNAL__MAC_10_15 __attribute__((availability(macosx,introduced=10.15))) +#define __AVAILABILITY_INTERNAL__MAC_NA __attribute__((availability(macosx,unavailable))) +#define __AVAILABILITY_INTERNAL__MAC_NA_DEP__MAC_NA __attribute__((availability(macosx,unavailable))) +#define __AVAILABILITY_INTERNAL__MAC_NA_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,unavailable))) +#define __AVAILABILITY_INTERNAL__IPHONE_NA __attribute__((availability(ios,unavailable))) +#define __AVAILABILITY_INTERNAL__IPHONE_NA__IPHONE_NA __attribute__((availability(ios,unavailable))) +#define __AVAILABILITY_INTERNAL__IPHONE_NA_DEP__IPHONE_NA __attribute__((availability(ios,unavailable))) +#define __AVAILABILITY_INTERNAL__IPHONE_NA_DEP__IPHONE_NA_MSG(_msg) __attribute__((availability(ios,unavailable))) +#define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION __attribute__((availability(ios,unavailable))) +#define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION __attribute__((availability(ios,unavailable))) +#define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION_MSG(_msg) __attribute__((availability(ios,unavailable))) +#define __API_AVAILABLE_PLATFORM_macos(x) macos,introduced=x +#define __API_UNAVAILABLE_PLATFORM_macos macos,unavailable +#define __API_DEPRECATED_PLATFORM_macos(x,y) macos,introduced=x,deprecated=y +#define __API_AVAILABLE_PLATFORM_macosx(x) macos,introduced=x +#define __API_UNAVAILABLE_PLATFORM_macosx macos,unavailable +#define __API_DEPRECATED_PLATFORM_macosx(x,y) macos,introduced=x,deprecated=y +#define __API_AVAILABLE_PLATFORM_ios(x) ios,introduced=x +#define __API_UNAVAILABLE_PLATFORM_ios ios,unavailable +#define __API_DEPRECATED_PLATFORM_ios(x,y) ios,introduced=x,deprecated=y +#define __API_AVAILABLE_PLATFORM_macCatalyst(x) macCatalyst,introduced=x +#define __API_UNAVAILABLE_PLATFORM_macCatalyst macCatalyst,unavailable +#define __API_DEPRECATED_PLATFORM_macCatalyst(x,y) macCatalyst,introduced=x,deprecated=y +#define __API_AVAILABLE_PLATFORM_macCatalyst(x) macCatalyst,introduced=x +#define __API_UNAVAILABLE_PLATFORM_macCatalyst macCatalyst,unavailable +#define __API_DEPRECATED_PLATFORM_macCatalyst(x,y) macCatalyst,introduced=x,deprecated=y +#define __API_AVAILABLE_PLATFORM_watchos(x) watchos,introduced=x +#define __API_UNAVAILABLE_PLATFORM_watchos watchos,unavailable +#define __API_DEPRECATED_PLATFORM_watchos(x,y) watchos,introduced=x,deprecated=y +#define __API_AVAILABLE_PLATFORM_tvos(x) tvos,introduced=x +#define __API_UNAVAILABLE_PLATFORM_tvos tvos,unavailable +#define __API_DEPRECATED_PLATFORM_tvos(x,y) tvos,introduced=x,deprecated=y +#define __API_AVAILABLE_PLATFORM_driverkit(x) driverkit,introduced=x +#define __API_UNAVAILABLE_PLATFORM_driverkit driverkit,unavailable +#define __API_DEPRECATED_PLATFORM_driverkit(x,y) driverkit,introduced=x,deprecated=y +#define __API_AVAILABLE_PLATFORM_xros(x) xros,introduced=x +#define __API_UNAVAILABLE_PLATFORM_xros xros,unavailable +#define __API_DEPRECATED_PLATFORM_xros(x,y) xros,introduced=x,deprecated=y +#define __API_AVAILABLE_PLATFORM_visionos(x) xros,introduced=x +#define __API_UNAVAILABLE_PLATFORM_visionos xros,unavailable +#define __API_DEPRECATED_PLATFORM_visionos(x,y) xros,introduced=x,deprecated=y +#define __API_APPLY_TO any(record, enum, enum_constant, function, objc_method, objc_category, objc_protocol, objc_interface, objc_property, type_alias, variable, field) +#define __API_RANGE_STRINGIFY(x) __API_RANGE_STRINGIFY2(x) +#define __API_RANGE_STRINGIFY2(x) #x +#define __API_A(x) __attribute__((availability(__API_AVAILABLE_PLATFORM_##x))) +#define __API_AVAILABLE0(arg0) __API_A(arg0) +#define __API_AVAILABLE1(arg0,arg1) __API_A(arg0) __API_A(arg1) +#define __API_AVAILABLE2(arg0,arg1,arg2) __API_A(arg0) __API_A(arg1) __API_A(arg2) +#define __API_AVAILABLE3(arg0,arg1,arg2,arg3) __API_A(arg0) __API_A(arg1) __API_A(arg2) __API_A(arg3) +#define __API_AVAILABLE4(arg0,arg1,arg2,arg3,arg4) __API_A(arg0) __API_A(arg1) __API_A(arg2) __API_A(arg3) __API_A(arg4) +#define __API_AVAILABLE5(arg0,arg1,arg2,arg3,arg4,arg5) __API_A(arg0) __API_A(arg1) __API_A(arg2) __API_A(arg3) __API_A(arg4) __API_A(arg5) +#define __API_AVAILABLE6(arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_A(arg0) __API_A(arg1) __API_A(arg2) __API_A(arg3) __API_A(arg4) __API_A(arg5) __API_A(arg6) +#define __API_AVAILABLE7(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_A(arg0) __API_A(arg1) __API_A(arg2) __API_A(arg3) __API_A(arg4) __API_A(arg5) __API_A(arg6) __API_A(arg7) +#define __API_AVAILABLE_GET_MACRO(_0,_1,_2,_3,_4,_5,_6,_7,NAME,...) NAME +#define __API_A_BEGIN(x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_AVAILABLE_PLATFORM_##x))), apply_to = __API_APPLY_TO))) +#define __API_AVAILABLE_BEGIN0(arg0) __API_A_BEGIN(arg0) +#define __API_AVAILABLE_BEGIN1(arg0,arg1) __API_A_BEGIN(arg0) __API_A_BEGIN(arg1) +#define __API_AVAILABLE_BEGIN2(arg0,arg1,arg2) __API_A_BEGIN(arg0) __API_A_BEGIN(arg1) __API_A_BEGIN(arg2) +#define __API_AVAILABLE_BEGIN3(arg0,arg1,arg2,arg3) __API_A_BEGIN(arg0) __API_A_BEGIN(arg1) __API_A_BEGIN(arg2) __API_A_BEGIN(arg3) +#define __API_AVAILABLE_BEGIN4(arg0,arg1,arg2,arg3,arg4) __API_A_BEGIN(arg0) __API_A_BEGIN(arg1) __API_A_BEGIN(arg2) __API_A_BEGIN(arg3) __API_A_BEGIN(arg4) +#define __API_AVAILABLE_BEGIN5(arg0,arg1,arg2,arg3,arg4,arg5) __API_A_BEGIN(arg0) __API_A_BEGIN(arg1) __API_A_BEGIN(arg2) __API_A_BEGIN(arg3) __API_A_BEGIN(arg4) __API_A_BEGIN(arg5) +#define __API_AVAILABLE_BEGIN6(arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_A_BEGIN(arg0) __API_A_BEGIN(arg1) __API_A_BEGIN(arg2) __API_A_BEGIN(arg3) __API_A_BEGIN(arg4) __API_A_BEGIN(arg5) __API_A_BEGIN(arg6) +#define __API_AVAILABLE_BEGIN7(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_A_BEGIN(arg0) __API_A_BEGIN(arg1) __API_A_BEGIN(arg2) __API_A_BEGIN(arg3) __API_A_BEGIN(arg4) __API_A_BEGIN(arg5) __API_A_BEGIN(arg6) __API_A_BEGIN(arg7) +#define __API_AVAILABLE_BEGIN_GET_MACRO(_0,_1,_2,_3,_4,_5,_6,_7,NAME,...) NAME +#define __API_D(msg,x) __attribute__((availability(__API_DEPRECATED_PLATFORM_##x,message=msg))) +#define __API_DEPRECATED_MSG0(msg,arg0) __API_D(msg,arg0) +#define __API_DEPRECATED_MSG1(msg,arg0,arg1) __API_D(msg,arg0) __API_D(msg,arg1) +#define __API_DEPRECATED_MSG2(msg,arg0,arg1,arg2) __API_D(msg,arg0) __API_D(msg,arg1) __API_D(msg,arg2) +#define __API_DEPRECATED_MSG3(msg,arg0,arg1,arg2,arg3) __API_D(msg,arg0) __API_D(msg,arg1) __API_D(msg,arg2) __API_D(msg,arg3) +#define __API_DEPRECATED_MSG4(msg,arg0,arg1,arg2,arg3,arg4) __API_D(msg,arg0) __API_D(msg,arg1) __API_D(msg,arg2) __API_D(msg,arg3) __API_D(msg,arg4) +#define __API_DEPRECATED_MSG5(msg,arg0,arg1,arg2,arg3,arg4,arg5) __API_D(msg,arg0) __API_D(msg,arg1) __API_D(msg,arg2) __API_D(msg,arg3) __API_D(msg,arg4) __API_D(msg,arg5) +#define __API_DEPRECATED_MSG6(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_D(msg,arg0) __API_D(msg,arg1) __API_D(msg,arg2) __API_D(msg,arg3) __API_D(msg,arg4) __API_D(msg,arg5) __API_D(msg,arg6) +#define __API_DEPRECATED_MSG7(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_D(msg,arg0) __API_D(msg,arg1) __API_D(msg,arg2) __API_D(msg,arg3) __API_D(msg,arg4) __API_D(msg,arg5) __API_D(msg,arg6) __API_D(msg,arg7) +#define __API_DEPRECATED_MSG_GET_MACRO(_0,_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME +#define __API_D_BEGIN(msg,x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_DEPRECATED_PLATFORM_##x,message=msg))), apply_to = __API_APPLY_TO))) +#define __API_DEPRECATED_BEGIN0(msg,arg0) __API_D_BEGIN(msg,arg0) +#define __API_DEPRECATED_BEGIN1(msg,arg0,arg1) __API_D_BEGIN(msg,arg0) __API_D_BEGIN(msg,arg1) +#define __API_DEPRECATED_BEGIN2(msg,arg0,arg1,arg2) __API_D_BEGIN(msg,arg0) __API_D_BEGIN(msg,arg1) __API_D_BEGIN(msg,arg2) +#define __API_DEPRECATED_BEGIN3(msg,arg0,arg1,arg2,arg3) __API_D_BEGIN(msg,arg0) __API_D_BEGIN(msg,arg1) __API_D_BEGIN(msg,arg2) __API_D_BEGIN(msg,arg3) +#define __API_DEPRECATED_BEGIN4(msg,arg0,arg1,arg2,arg3,arg4) __API_D_BEGIN(msg,arg0) __API_D_BEGIN(msg,arg1) __API_D_BEGIN(msg,arg2) __API_D_BEGIN(msg,arg3) __API_D_BEGIN(msg,arg4) +#define __API_DEPRECATED_BEGIN5(msg,arg0,arg1,arg2,arg3,arg4,arg5) __API_D_BEGIN(msg,arg0) __API_D_BEGIN(msg,arg1) __API_D_BEGIN(msg,arg2) __API_D_BEGIN(msg,arg3) __API_D_BEGIN(msg,arg4) __API_D_BEGIN(msg,arg5) +#define __API_DEPRECATED_BEGIN6(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_D_BEGIN(msg,arg0) __API_D_BEGIN(msg,arg1) __API_D_BEGIN(msg,arg2) __API_D_BEGIN(msg,arg3) __API_D_BEGIN(msg,arg4) __API_D_BEGIN(msg,arg5) __API_D_BEGIN(msg,arg6) +#define __API_DEPRECATED_BEGIN7(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_D_BEGIN(msg,arg0) __API_D_BEGIN(msg,arg1) __API_D_BEGIN(msg,arg2) __API_D_BEGIN(msg,arg3) __API_D_BEGIN(msg,arg4) __API_D_BEGIN(msg,arg5) __API_D_BEGIN(msg,arg6) __API_D_BEGIN(msg,arg7) +#define __API_DEPRECATED_BEGIN_GET_MACRO(_0,_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME +#define __API_R(rep,x) __attribute__((availability(__API_DEPRECATED_PLATFORM_##x,replacement=rep))) +#define __API_DEPRECATED_REP0(msg,arg0) __API_R(msg,arg0) +#define __API_DEPRECATED_REP1(msg,arg0,arg1) __API_R(msg,arg0) __API_R(msg,arg1) +#define __API_DEPRECATED_REP2(msg,arg0,arg1,arg2) __API_R(msg,arg0) __API_R(msg,arg1) __API_R(msg,arg2) +#define __API_DEPRECATED_REP3(msg,arg0,arg1,arg2,arg3) __API_R(msg,arg0) __API_R(msg,arg1) __API_R(msg,arg2) __API_R(msg,arg3) +#define __API_DEPRECATED_REP4(msg,arg0,arg1,arg2,arg3,arg4) __API_R(msg,arg0) __API_R(msg,arg1) __API_R(msg,arg2) __API_R(msg,arg3) __API_R(msg,arg4) +#define __API_DEPRECATED_REP5(msg,arg0,arg1,arg2,arg3,arg4,arg5) __API_R(msg,arg0) __API_R(msg,arg1) __API_R(msg,arg2) __API_R(msg,arg3) __API_R(msg,arg4) __API_R(msg,arg5) +#define __API_DEPRECATED_REP6(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_R(msg,arg0) __API_R(msg,arg1) __API_R(msg,arg2) __API_R(msg,arg3) __API_R(msg,arg4) __API_R(msg,arg5) __API_R(msg,arg6) +#define __API_DEPRECATED_REP7(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_R(msg,arg0) __API_R(msg,arg1) __API_R(msg,arg2) __API_R(msg,arg3) __API_R(msg,arg4) __API_R(msg,arg5) __API_R(msg,arg6) __API_R(msg,arg7) +#define __API_DEPRECATED_REP_GET_MACRO(_0,_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME +#define __API_R_BEGIN(rep,x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_DEPRECATED_PLATFORM_##x,replacement=rep))), apply_to = __API_APPLY_TO))) +#define __API_DEPRECATED_BEGIN_REP0(msg,arg0) __API_R_BEGIN(msg,arg0) +#define __API_DEPRECATED_BEGIN_REP1(msg,arg0,arg1) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) +#define __API_DEPRECATED_BEGIN_REP2(msg,arg0,arg1,arg2) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) +#define __API_DEPRECATED_BEGIN_REP3(msg,arg0,arg1,arg2,arg3) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) +#define __API_DEPRECATED_BEGIN_REP4(msg,arg0,arg1,arg2,arg3,arg4) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) +#define __API_DEPRECATED_BEGIN_REP5(msg,arg0,arg1,arg2,arg3,arg4,arg5) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) __API_R_BEGIN(msg,arg5) +#define __API_DEPRECATED_BEGIN_REP6(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) __API_R_BEGIN(msg,arg5) __API_R_BEGIN(msg,arg6) +#define __API_DEPRECATED_BEGIN_REP7(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) __API_R_BEGIN(msg,arg5) __API_R_BEGIN(msg,arg6) __API_R_BEGIN(msg,arg7) +#define __API_DEPRECATED_BEGIN_REP_GET_MACRO(_0,_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME +#define __API_U(x) __attribute__((availability(__API_UNAVAILABLE_PLATFORM_##x))) +#define __API_UNAVAILABLE0(arg0) __API_U(arg0) +#define __API_UNAVAILABLE1(arg0,arg1) __API_U(arg0) __API_U(arg1) +#define __API_UNAVAILABLE2(arg0,arg1,arg2) __API_U(arg0) __API_U(arg1) __API_U(arg2) +#define __API_UNAVAILABLE3(arg0,arg1,arg2,arg3) __API_U(arg0) __API_U(arg1) __API_U(arg2) __API_U(arg3) +#define __API_UNAVAILABLE4(arg0,arg1,arg2,arg3,arg4) __API_U(arg0) __API_U(arg1) __API_U(arg2) __API_U(arg3) __API_U(arg4) +#define __API_UNAVAILABLE5(arg0,arg1,arg2,arg3,arg4,arg5) __API_U(arg0) __API_U(arg1) __API_U(arg2) __API_U(arg3) __API_U(arg4) __API_U(arg5) +#define __API_UNAVAILABLE6(arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_U(arg0) __API_U(arg1) __API_U(arg2) __API_U(arg3) __API_U(arg4) __API_U(arg5) __API_U(arg6) +#define __API_UNAVAILABLE7(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_U(arg0) __API_U(arg1) __API_U(arg2) __API_U(arg3) __API_U(arg4) __API_U(arg5) __API_U(arg6) __API_U(arg7) +#define __API_UNAVAILABLE_GET_MACRO(_0,_1,_2,_3,_4,_5,_6,_7,NAME,...) NAME +#define __API_U_BEGIN(x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_UNAVAILABLE_PLATFORM_##x))), apply_to = __API_APPLY_TO))) +#define __API_UNAVAILABLE_BEGIN0(arg0) __API_U_BEGIN(arg0) +#define __API_UNAVAILABLE_BEGIN1(arg0,arg1) __API_U_BEGIN(arg0) __API_U_BEGIN(arg1) +#define __API_UNAVAILABLE_BEGIN2(arg0,arg1,arg2) __API_U_BEGIN(arg0) __API_U_BEGIN(arg1) __API_U_BEGIN(arg2) +#define __API_UNAVAILABLE_BEGIN3(arg0,arg1,arg2,arg3) __API_U_BEGIN(arg0) __API_U_BEGIN(arg1) __API_U_BEGIN(arg2) __API_U_BEGIN(arg3) +#define __API_UNAVAILABLE_BEGIN4(arg0,arg1,arg2,arg3,arg4) __API_U_BEGIN(arg0) __API_U_BEGIN(arg1) __API_U_BEGIN(arg2) __API_U_BEGIN(arg3) __API_U_BEGIN(arg4) +#define __API_UNAVAILABLE_BEGIN5(arg0,arg1,arg2,arg3,arg4,arg5) __API_U_BEGIN(arg0) __API_U_BEGIN(arg1) __API_U_BEGIN(arg2) __API_U_BEGIN(arg3) __API_U_BEGIN(arg4) __API_U_BEGIN(arg5) +#define __API_UNAVAILABLE_BEGIN6(arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_U_BEGIN(arg0) __API_U_BEGIN(arg1) __API_U_BEGIN(arg2) __API_U_BEGIN(arg3) __API_U_BEGIN(arg4) __API_U_BEGIN(arg5) __API_U_BEGIN(arg6) +#define __API_UNAVAILABLE_BEGIN7(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_U_BEGIN(arg0) __API_U_BEGIN(arg1) __API_U_BEGIN(arg2) __API_U_BEGIN(arg3) __API_U_BEGIN(arg4) __API_U_BEGIN(arg5) __API_U_BEGIN(arg6) __API_U_BEGIN(arg7) +#define __API_UNAVAILABLE_BEGIN_GET_MACRO(_0,_1,_2,_3,_4,_5,_6,_7,NAME,...) NAME +#define __swift_compiler_version_at_least(...) 1 +#define __SPI_AVAILABLE(...) +#define __OSX_AVAILABLE_STARTING(_osx,_ios) __AVAILABILITY_INTERNAL##_osx +#define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro,_osxDep,_iosIntro,_iosDep) __AVAILABILITY_INTERNAL##_osxIntro##_DEP##_osxDep +#define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro,_osxDep,_iosIntro,_iosDep,_msg) __AVAILABILITY_INTERNAL##_osxIntro##_DEP##_osxDep##_MSG(_msg) +#define __OS_AVAILABILITY(_target,_availability) __attribute__((availability(_target,_availability))) +#define __OS_AVAILABILITY_MSG(_target,_availability,_msg) __attribute__((availability(_target,_availability,message=_msg))) +#define __OSX_EXTENSION_UNAVAILABLE(_msg) __OS_AVAILABILITY_MSG(macosx_app_extension,unavailable,_msg) +#define __IOS_EXTENSION_UNAVAILABLE(_msg) __OS_AVAILABILITY_MSG(ios_app_extension,unavailable,_msg) +#define __OS_EXTENSION_UNAVAILABLE(_msg) __OSX_EXTENSION_UNAVAILABLE(_msg) __IOS_EXTENSION_UNAVAILABLE(_msg) +#define __OSX_UNAVAILABLE __OS_AVAILABILITY(macosx,unavailable) +#define __OSX_AVAILABLE(_vers) __OS_AVAILABILITY(macosx,introduced=_vers) +#define __OSX_DEPRECATED(_start,_dep,_msg) __OSX_AVAILABLE(_start) __OS_AVAILABILITY_MSG(macosx,deprecated=_dep,_msg) +#define __IOS_UNAVAILABLE __OS_AVAILABILITY(ios,unavailable) +#define __IOS_PROHIBITED __OS_AVAILABILITY(ios,unavailable) +#define __IOS_AVAILABLE(_vers) __OS_AVAILABILITY(ios,introduced=_vers) +#define __IOS_DEPRECATED(_start,_dep,_msg) __IOS_AVAILABLE(_start) __OS_AVAILABILITY_MSG(ios,deprecated=_dep,_msg) +#define __TVOS_UNAVAILABLE __OS_AVAILABILITY(tvos,unavailable) +#define __TVOS_PROHIBITED __OS_AVAILABILITY(tvos,unavailable) +#define __TVOS_AVAILABLE(_vers) __OS_AVAILABILITY(tvos,introduced=_vers) +#define __TVOS_DEPRECATED(_start,_dep,_msg) __TVOS_AVAILABLE(_start) __OS_AVAILABILITY_MSG(tvos,deprecated=_dep,_msg) +#define __WATCHOS_UNAVAILABLE __OS_AVAILABILITY(watchos,unavailable) +#define __WATCHOS_PROHIBITED __OS_AVAILABILITY(watchos,unavailable) +#define __WATCHOS_AVAILABLE(_vers) __OS_AVAILABILITY(watchos,introduced=_vers) +#define __WATCHOS_DEPRECATED(_start,_dep,_msg) __WATCHOS_AVAILABLE(_start) __OS_AVAILABILITY_MSG(watchos,deprecated=_dep,_msg) +#define __SWIFT_UNAVAILABLE __OS_AVAILABILITY(swift,unavailable) +#define __SWIFT_UNAVAILABLE_MSG(_msg) __OS_AVAILABILITY_MSG(swift,unavailable,_msg) +#define __API_AVAILABLE(...) __API_AVAILABLE_GET_MACRO(__VA_ARGS__,__API_AVAILABLE7,__API_AVAILABLE6,__API_AVAILABLE5,__API_AVAILABLE4,__API_AVAILABLE3,__API_AVAILABLE2,__API_AVAILABLE1,__API_AVAILABLE0,0)(__VA_ARGS__) +#define __API_AVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_AVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_AVAILABLE_BEGIN7,__API_AVAILABLE_BEGIN6,__API_AVAILABLE_BEGIN5,__API_AVAILABLE_BEGIN4,__API_AVAILABLE_BEGIN3,__API_AVAILABLE_BEGIN2,__API_AVAILABLE_BEGIN1,__API_AVAILABLE_BEGIN0,0)(__VA_ARGS__) +#define __API_AVAILABLE_END _Pragma("clang attribute pop") +#define __API_DEPRECATED(...) __API_DEPRECATED_MSG_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_MSG7,__API_DEPRECATED_MSG6,__API_DEPRECATED_MSG5,__API_DEPRECATED_MSG4,__API_DEPRECATED_MSG3,__API_DEPRECATED_MSG2,__API_DEPRECATED_MSG1,__API_DEPRECATED_MSG0,0,0)(__VA_ARGS__) +#define __API_DEPRECATED_WITH_REPLACEMENT(...) __API_DEPRECATED_REP_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_REP7,__API_DEPRECATED_REP6,__API_DEPRECATED_REP5,__API_DEPRECATED_REP4,__API_DEPRECATED_REP3,__API_DEPRECATED_REP2,__API_DEPRECATED_REP1,__API_DEPRECATED_REP0,0,0)(__VA_ARGS__) +#define __API_DEPRECATED_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_BEGIN_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_BEGIN7,__API_DEPRECATED_BEGIN6,__API_DEPRECATED_BEGIN5,__API_DEPRECATED_BEGIN4,__API_DEPRECATED_BEGIN3,__API_DEPRECATED_BEGIN2,__API_DEPRECATED_BEGIN1,__API_DEPRECATED_BEGIN0,0,0)(__VA_ARGS__) +#define __API_DEPRECATED_END _Pragma("clang attribute pop") +#define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_WITH_REPLACEMENT_BEGIN_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN7,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN6,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN5,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN4,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN3,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN2,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN1,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN0,0,0)(__VA_ARGS__) +#define __API_DEPRECATED_WITH_REPLACEMENT_END _Pragma("clang attribute pop") +#define __API_UNAVAILABLE(...) __API_UNAVAILABLE_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE7,__API_UNAVAILABLE6,__API_UNAVAILABLE5,__API_UNAVAILABLE4,__API_UNAVAILABLE3,__API_UNAVAILABLE2,__API_UNAVAILABLE1,__API_UNAVAILABLE0,0)(__VA_ARGS__) +#define __API_UNAVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_UNAVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE_BEGIN7,__API_UNAVAILABLE_BEGIN6,__API_UNAVAILABLE_BEGIN5,__API_UNAVAILABLE_BEGIN4,__API_UNAVAILABLE_BEGIN3,__API_UNAVAILABLE_BEGIN2,__API_UNAVAILABLE_BEGIN1,__API_UNAVAILABLE_BEGIN0,0)(__VA_ARGS__) +#define __API_UNAVAILABLE_END _Pragma("clang attribute pop") +#define __SPI_DEPRECATED(...) +#define __SPI_DEPRECATED_WITH_REPLACEMENT(...) +#define __TYPES_H_ +#define _SYS__TYPES_H_ +#define _BSD_MACHINE__TYPES_H_ +#define _BSD_ARM__TYPES_H_ +#define __DARWIN_NULL ((void *)0) +#define _SYS__PTHREAD_TYPES_H_ +#define __PTHREAD_SIZE__ 8176 +#define __PTHREAD_ATTR_SIZE__ 56 +#define __PTHREAD_MUTEXATTR_SIZE__ 8 +#define __PTHREAD_MUTEX_SIZE__ 56 +#define __PTHREAD_CONDATTR_SIZE__ 8 +#define __PTHREAD_COND_SIZE__ 40 +#define __PTHREAD_ONCE_SIZE__ 8 +#define __PTHREAD_RWLOCK_SIZE__ 192 +#define __PTHREAD_RWLOCKATTR_SIZE__ 16 +#define __offsetof(type,field) __builtin_offsetof(type, field) +#define __strfmonlike(fmtarg,firstvararg) __attribute__((__format__ (__strfmon__, fmtarg, firstvararg))) +#define __strftimelike(fmtarg) __attribute__((__format__ (__strftime__, fmtarg, 0))) +#define __DARWIN_WCHAR_MAX __WCHAR_MAX__ +#define __DARWIN_WCHAR_MIN (-0x7fffffff - 1) +#define __DARWIN_WEOF ((__darwin_wint_t)-1) +#define _VA_LIST_T +#define _BSD_MACHINE_TYPES_H_ +#define _ARM_MACHTYPES_H_ +#define _MACHTYPES_H_ +#define _INT8_T +#define _INT16_T +#define _INT32_T +#define _INT64_T +#define _U_INT8_T +#define _U_INT16_T +#define _U_INT32_T +#define _U_INT64_T +#define _INTPTR_T +#define _UINTPTR_T +#define USER_ADDR_NULL ((user_addr_t) 0) +#define CAST_USER_ADDR_T(a_ptr) ((user_addr_t)((uintptr_t)(a_ptr))) +#define _SIZE_T +#define NULL __DARWIN_NULL +#define _SYS_STDIO_H_ +#define RENAME_SECLUDE 0x00000001 +#define RENAME_SWAP 0x00000002 +#define RENAME_EXCL 0x00000004 +#define RENAME_RESERVED1 0x00000008 +#define RENAME_NOFOLLOW_ANY 0x00000010 +#define _FSTDIO +#define _SEEK_SET_H_ +#define SEEK_SET 0 +#define SEEK_CUR 1 +#define SEEK_END 2 +#define SEEK_HOLE 3 +#define SEEK_DATA 4 +#define __SLBF 0x0001 +#define __SNBF 0x0002 +#define __SRD 0x0004 +#define __SWR 0x0008 +#define __SRW 0x0010 +#define __SEOF 0x0020 +#define __SERR 0x0040 +#define __SMBF 0x0080 +#define __SAPP 0x0100 +#define __SSTR 0x0200 +#define __SOPT 0x0400 +#define __SNPT 0x0800 +#define __SOFF 0x1000 +#define __SMOD 0x2000 +#define __SALC 0x4000 +#define __SIGN 0x8000 +#define _IOFBF 0 +#define _IOLBF 1 +#define _IONBF 2 +#define BUFSIZ 1024 +#define EOF (-1) +#define FOPEN_MAX 20 +#define FILENAME_MAX 1024 +#define P_tmpdir "/var/tmp/" +#define L_tmpnam 1024 +#define TMP_MAX 308915776 +#define stdin __stdinp +#define stdout __stdoutp +#define stderr __stderrp +#define L_ctermid 1024 +#define _CTERMID_H_ +#define __sgetc(p) (--(p)->_r < 0 ? __srget(p) : (int)(*(p)->_p++)) +#define __sfeof(p) (((p)->_flags & __SEOF) != 0) +#define __sferror(p) (((p)->_flags & __SERR) != 0) +#define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF))) +#define __sfileno(p) ((p)->_file) +#define getc_unlocked(fp) __sgetc(fp) +#define putc_unlocked(x,fp) __sputc(x, fp) +#define getchar_unlocked() getc_unlocked(stdin) +#define putchar_unlocked(x) putc_unlocked(x, stdout) +#define _OFF_T +#define _SSIZE_T +#define fropen(cookie,fn) funopen(cookie, fn, 0, 0, 0) +#define fwopen(cookie,fn) funopen(cookie, 0, fn, 0, 0) +#define feof_unlocked(p) __sfeof(p) +#define ferror_unlocked(p) __sferror(p) +#define clearerr_unlocked(p) __sclearerr(p) +#define fileno_unlocked(p) __sfileno(p) +#define _SECURE__STDIO_H_ +#define _SECURE__COMMON_H_ +#undef _USE_FORTIFY_LEVEL +#define _USE_FORTIFY_LEVEL 2 +#define __darwin_obsz0(object) __builtin_object_size (object, 0) +#define __darwin_obsz(object) __builtin_object_size (object, _USE_FORTIFY_LEVEL > 1 ? 1 : 0) +#undef sprintf +#define sprintf(str,...) __builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__) +#undef snprintf +#define snprintf(str,len,...) __builtin___snprintf_chk (str, len, 0, __darwin_obsz(str), __VA_ARGS__) +#undef vsprintf +#define vsprintf(str,format,ap) __builtin___vsprintf_chk (str, 0, __darwin_obsz(str), format, ap) +#undef vsnprintf +#define vsnprintf(str,len,format,ap) __builtin___vsnprintf_chk (str, len, 0, __darwin_obsz(str), format, ap) +#define _SYS_TYPES_H_ +#define __SYS_APPLEAPIOPTS_H__ +#define __APPLE_API_STANDARD +#define __APPLE_API_STABLE +#define __APPLE_API_EVOLVING +#define __APPLE_API_UNSTABLE +#define __APPLE_API_PRIVATE +#define __APPLE_API_OBSOLETE +#define _BSD_MACHINE_ENDIAN_H_ +#define _ARM__ENDIAN_H_ +#define _QUAD_HIGHWORD 1 +#define _QUAD_LOWWORD 0 +#define __DARWIN_LITTLE_ENDIAN 1234 +#define __DARWIN_BIG_ENDIAN 4321 +#define __DARWIN_PDP_ENDIAN 3412 +#define __DARWIN_BYTE_ORDER __DARWIN_LITTLE_ENDIAN +#define LITTLE_ENDIAN __DARWIN_LITTLE_ENDIAN +#define BIG_ENDIAN __DARWIN_BIG_ENDIAN +#define PDP_ENDIAN __DARWIN_PDP_ENDIAN +#define BYTE_ORDER __DARWIN_BYTE_ORDER +#define _SYS__ENDIAN_H_ +#define _OS__OSBYTEORDER_H +#define __DARWIN_OSSwapConstInt16(x) ((__uint16_t)((((__uint16_t)(x) & 0xff00U) >> 8) | (((__uint16_t)(x) & 0x00ffU) << 8))) +#define __DARWIN_OSSwapConstInt32(x) ((__uint32_t)((((__uint32_t)(x) & 0xff000000U) >> 24) | (((__uint32_t)(x) & 0x00ff0000U) >> 8) | (((__uint32_t)(x) & 0x0000ff00U) << 8) | (((__uint32_t)(x) & 0x000000ffU) << 24))) +#define __DARWIN_OSSwapConstInt64(x) ((__uint64_t)((((__uint64_t)(x) & 0xff00000000000000ULL) >> 56) | (((__uint64_t)(x) & 0x00ff000000000000ULL) >> 40) | (((__uint64_t)(x) & 0x0000ff0000000000ULL) >> 24) | (((__uint64_t)(x) & 0x000000ff00000000ULL) >> 8) | (((__uint64_t)(x) & 0x00000000ff000000ULL) << 8) | (((__uint64_t)(x) & 0x0000000000ff0000ULL) << 24) | (((__uint64_t)(x) & 0x000000000000ff00ULL) << 40) | (((__uint64_t)(x) & 0x00000000000000ffULL) << 56))) +#define __DARWIN_OS_INLINE static inline +#define _OS_OSBYTEORDERARM_H +#define __CLANG_STDINT_H +#define _STDINT_H_ +#define __WORDSIZE 64 +#define _UINT8_T +#define _UINT16_T +#define _UINT32_T +#define _UINT64_T +#define _INTMAX_T +#define _UINTMAX_T +#define INT8_C(v) (v) +#define INT16_C(v) (v) +#define INT32_C(v) (v) +#define INT64_C(v) (v ## LL) +#define UINT8_C(v) (v) +#define UINT16_C(v) (v) +#define UINT32_C(v) (v ## U) +#define UINT64_C(v) (v ## ULL) +#define INTMAX_C(v) (v ## L) +#define UINTMAX_C(v) (v ## UL) +#define INT8_MAX 127 +#define INT16_MAX 32767 +#define INT32_MAX 2147483647 +#define INT64_MAX 9223372036854775807LL +#define INT8_MIN -128 +#define INT16_MIN -32768 +#define INT32_MIN (-INT32_MAX-1) +#define INT64_MIN (-INT64_MAX-1) +#define UINT8_MAX 255 +#define UINT16_MAX 65535 +#define UINT32_MAX 4294967295U +#define UINT64_MAX 18446744073709551615ULL +#define INT_LEAST8_MIN INT8_MIN +#define INT_LEAST16_MIN INT16_MIN +#define INT_LEAST32_MIN INT32_MIN +#define INT_LEAST64_MIN INT64_MIN +#define INT_LEAST8_MAX INT8_MAX +#define INT_LEAST16_MAX INT16_MAX +#define INT_LEAST32_MAX INT32_MAX +#define INT_LEAST64_MAX INT64_MAX +#define UINT_LEAST8_MAX UINT8_MAX +#define UINT_LEAST16_MAX UINT16_MAX +#define UINT_LEAST32_MAX UINT32_MAX +#define UINT_LEAST64_MAX UINT64_MAX +#define INT_FAST8_MIN INT8_MIN +#define INT_FAST16_MIN INT16_MIN +#define INT_FAST32_MIN INT32_MIN +#define INT_FAST64_MIN INT64_MIN +#define INT_FAST8_MAX INT8_MAX +#define INT_FAST16_MAX INT16_MAX +#define INT_FAST32_MAX INT32_MAX +#define INT_FAST64_MAX INT64_MAX +#define UINT_FAST8_MAX UINT8_MAX +#define UINT_FAST16_MAX UINT16_MAX +#define UINT_FAST32_MAX UINT32_MAX +#define UINT_FAST64_MAX UINT64_MAX +#define INTPTR_MAX 9223372036854775807L +#define INTPTR_MIN (-INTPTR_MAX-1) +#define UINTPTR_MAX 18446744073709551615UL +#define INTMAX_MAX INTMAX_C(9223372036854775807) +#define UINTMAX_MAX UINTMAX_C(18446744073709551615) +#define INTMAX_MIN (-INTMAX_MAX-1) +#define PTRDIFF_MIN INTMAX_MIN +#define PTRDIFF_MAX INTMAX_MAX +#define SIZE_MAX UINTPTR_MAX +#define RSIZE_MAX (SIZE_MAX >> 1) +#define WCHAR_MAX __WCHAR_MAX__ +#define WCHAR_MIN (-WCHAR_MAX-1) +#define WINT_MIN INT32_MIN +#define WINT_MAX INT32_MAX +#define SIG_ATOMIC_MIN INT32_MIN +#define SIG_ATOMIC_MAX INT32_MAX +#define _ARM_ARCH_H +#define __DARWIN_OSSwapInt16(x) ((__uint16_t)(__builtin_constant_p(x) ? __DARWIN_OSSwapConstInt16(x) : _OSSwapInt16(x))) +#define __DARWIN_OSSwapInt32(x) (__builtin_constant_p(x) ? __DARWIN_OSSwapConstInt32(x) : _OSSwapInt32(x)) +#define __DARWIN_OSSwapInt64(x) (__builtin_constant_p(x) ? __DARWIN_OSSwapConstInt64(x) : _OSSwapInt64(x)) +#define ntohs(x) __DARWIN_OSSwapInt16(x) +#define htons(x) __DARWIN_OSSwapInt16(x) +#define ntohl(x) __DARWIN_OSSwapInt32(x) +#define htonl(x) __DARWIN_OSSwapInt32(x) +#define ntohll(x) __DARWIN_OSSwapInt64(x) +#define htonll(x) __DARWIN_OSSwapInt64(x) +#define NTOHL(x) (x) = ntohl((__uint32_t)x) +#define NTOHS(x) (x) = ntohs((__uint16_t)x) +#define NTOHLL(x) (x) = ntohll((__uint64_t)x) +#define HTONL(x) (x) = htonl((__uint32_t)x) +#define HTONS(x) (x) = htons((__uint16_t)x) +#define HTONLL(x) (x) = htonll((__uint64_t)x) +#define _U_CHAR +#define _U_SHORT +#define _U_INT +#define _U_LONG +#define __DARWIN_UINT +#define _CADDR_T +#define _DEV_T +#define _BLKCNT_T +#define _BLKSIZE_T +#define _GID_T +#define _IN_ADDR_T +#define _IN_PORT_T +#define _INO_T +#define _INO64_T +#define _KEY_T +#define _MODE_T +#define _NLINK_T +#define _ID_T +#define _PID_T +#define _UID_T +#define major(x) ((int32_t)(((u_int32_t)(x) >> 24) & 0xff)) +#define minor(x) ((int32_t)((x) & 0xffffff)) +#define makedev(x,y) ((dev_t)(((x) << 24) | (y))) +#define _CLOCK_T +#define _TIME_T +#define _USECONDS_T +#define _SUSECONDS_T +#define _RSIZE_T +#define _ERRNO_T +#define _FD_SET +#define __DARWIN_FD_SETSIZE 1024 +#define __DARWIN_NBBY 8 +#define __DARWIN_NFDBITS (sizeof(__int32_t) * __DARWIN_NBBY) +#define __DARWIN_howmany(x,y) ((((x) % (y)) == 0) ? ((x) / (y)) : (((x) / (y)) + 1)) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunguarded-availability-new" +#pragma clang diagnostic pop +#define __DARWIN_FD_SET(n,p) __darwin_fd_set((n), (p)) +#define __DARWIN_FD_CLR(n,p) __darwin_fd_clr((n), (p)) +#define __DARWIN_FD_ISSET(n,p) __darwin_fd_isset((n), (p)) +#define __DARWIN_FD_ZERO(p) __builtin_bzero(p, sizeof(*(p))) +#define __DARWIN_FD_COPY(f,t) bcopy(f, t, sizeof(*(f))) +#define NBBY __DARWIN_NBBY +#define NFDBITS __DARWIN_NFDBITS +#define howmany(x,y) __DARWIN_howmany(x, y) +#define FD_SETSIZE __DARWIN_FD_SETSIZE +#define FD_SET(n,p) __DARWIN_FD_SET(n, p) +#define FD_CLR(n,p) __DARWIN_FD_CLR(n, p) +#define FD_ZERO(p) __DARWIN_FD_ZERO(p) +#define FD_ISSET(n,p) __DARWIN_FD_ISSET(n, p) +#define FD_COPY(f,t) __DARWIN_FD_COPY(f, t) +#define _PTHREAD_ATTR_T +#define _PTHREAD_COND_T +#define _PTHREAD_CONDATTR_T +#define _PTHREAD_MUTEX_T +#define _PTHREAD_MUTEXATTR_T +#define _PTHREAD_ONCE_T +#define _PTHREAD_RWLOCK_T +#define _PTHREAD_RWLOCKATTR_T +#define _PTHREAD_T +#define _PTHREAD_KEY_T +#define _FSBLKCNT_T +#define _FSFILCNT_T +#define _SYS_STAT_H_ +#define _STRUCT_TIMESPEC struct timespec +#define __DARWIN_STRUCT_STAT64_TIMES struct timespec st_atimespec; struct timespec st_mtimespec; struct timespec st_ctimespec; struct timespec st_birthtimespec; +#define __DARWIN_STRUCT_STAT64 { dev_t st_dev; mode_t st_mode; nlink_t st_nlink; __darwin_ino64_t st_ino; uid_t st_uid; gid_t st_gid; dev_t st_rdev; __DARWIN_STRUCT_STAT64_TIMES off_t st_size; blkcnt_t st_blocks; blksize_t st_blksize; __uint32_t st_flags; __uint32_t st_gen; __int32_t st_lspare; __int64_t st_qspare[2]; } +#define st_atime st_atimespec.tv_sec +#define st_mtime st_mtimespec.tv_sec +#define st_ctime st_ctimespec.tv_sec +#define st_birthtime st_birthtimespec.tv_sec +#define S_IFMT 0170000 +#define S_IFIFO 0010000 +#define S_IFCHR 0020000 +#define S_IFDIR 0040000 +#define S_IFBLK 0060000 +#define S_IFREG 0100000 +#define S_IFLNK 0120000 +#define S_IFSOCK 0140000 +#define S_IFWHT 0160000 +#define S_IRWXU 0000700 +#define S_IRUSR 0000400 +#define S_IWUSR 0000200 +#define S_IXUSR 0000100 +#define S_IRWXG 0000070 +#define S_IRGRP 0000040 +#define S_IWGRP 0000020 +#define S_IXGRP 0000010 +#define S_IRWXO 0000007 +#define S_IROTH 0000004 +#define S_IWOTH 0000002 +#define S_IXOTH 0000001 +#define S_ISUID 0004000 +#define S_ISGID 0002000 +#define S_ISVTX 0001000 +#define S_ISTXT S_ISVTX +#define S_IREAD S_IRUSR +#define S_IWRITE S_IWUSR +#define S_IEXEC S_IXUSR +#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) +#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) +#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) +#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) +#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) +#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) +#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) +#define S_ISWHT(m) (((m) & S_IFMT) == S_IFWHT) +#define S_TYPEISMQ(buf) (0) +#define S_TYPEISSEM(buf) (0) +#define S_TYPEISSHM(buf) (0) +#define S_TYPEISTMO(buf) (0) +#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) +#define ALLPERMS (S_ISUID|S_ISGID|S_ISTXT|S_IRWXU|S_IRWXG|S_IRWXO) +#define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) +#define S_BLKSIZE 512 +#define UF_SETTABLE 0x0000ffff +#define UF_NODUMP 0x00000001 +#define UF_IMMUTABLE 0x00000002 +#define UF_APPEND 0x00000004 +#define UF_OPAQUE 0x00000008 +#define UF_COMPRESSED 0x00000020 +#define UF_TRACKED 0x00000040 +#define UF_DATAVAULT 0x00000080 +#define UF_HIDDEN 0x00008000 +#define SF_SUPPORTED 0x009f0000 +#define SF_SETTABLE 0x3fff0000 +#define SF_SYNTHETIC 0xc0000000 +#define SF_ARCHIVED 0x00010000 +#define SF_IMMUTABLE 0x00020000 +#define SF_APPEND 0x00040000 +#define SF_RESTRICTED 0x00080000 +#define SF_NOUNLINK 0x00100000 +#define SF_FIRMLINK 0x00800000 +#define SF_DATALESS 0x40000000 +#define EF_MAY_SHARE_BLOCKS 0x00000001 +#define EF_NO_XATTRS 0x00000002 +#define EF_IS_SYNC_ROOT 0x00000004 +#define EF_IS_PURGEABLE 0x00000008 +#define EF_IS_SPARSE 0x00000010 +#define EF_IS_SYNTHETIC 0x00000020 +#define EF_SHARES_ALL_BLOCKS 0x00000040 +#define UTIME_NOW -1 +#define UTIME_OMIT -2 +#define _FILESEC_T +#define _STDLIB_H_ +#define _SYS_WAIT_H_ +#define _SYS_SIGNAL_H_ +#define __DARWIN_NSIG 32 +#define NSIG __DARWIN_NSIG +#define _BSD_MACHINE_SIGNAL_H_ +#define _ARM_SIGNAL_ 1 +#define SIGHUP 1 +#define SIGINT 2 +#define SIGQUIT 3 +#define SIGILL 4 +#define SIGTRAP 5 +#define SIGABRT 6 +#define SIGIOT SIGABRT +#define SIGEMT 7 +#define SIGFPE 8 +#define SIGKILL 9 +#define SIGBUS 10 +#define SIGSEGV 11 +#define SIGSYS 12 +#define SIGPIPE 13 +#define SIGALRM 14 +#define SIGTERM 15 +#define SIGURG 16 +#define SIGSTOP 17 +#define SIGTSTP 18 +#define SIGCONT 19 +#define SIGCHLD 20 +#define SIGTTIN 21 +#define SIGTTOU 22 +#define SIGIO 23 +#define SIGXCPU 24 +#define SIGXFSZ 25 +#define SIGVTALRM 26 +#define SIGPROF 27 +#define SIGWINCH 28 +#define SIGINFO 29 +#define SIGUSR1 30 +#define SIGUSR2 31 +#define SIG_DFL (void (*)(int))0 +#define SIG_IGN (void (*)(int))1 +#define SIG_HOLD (void (*)(int))5 +#define SIG_ERR ((void (*)(int))-1) +#define _BSD_MACHINE__MCONTEXT_H_ +#define __ARM_MCONTEXT_H_ +#define _MACH_MACHINE__STRUCTS_H_ +#define _MACH_ARM__STRUCTS_H_ +#define _STRUCT_ARM_EXCEPTION_STATE struct __darwin_arm_exception_state +#define _STRUCT_ARM_EXCEPTION_STATE64 struct __darwin_arm_exception_state64 +#define _STRUCT_ARM_THREAD_STATE struct __darwin_arm_thread_state +#define __DARWIN_OPAQUE_ARM_THREAD_STATE64 0 +#define _STRUCT_ARM_THREAD_STATE64 struct __darwin_arm_thread_state64 +#define __darwin_arm_thread_state64_get_pc(ts) ((ts).__pc) +#define __darwin_arm_thread_state64_get_pc_fptr(ts) ((void*)(uintptr_t)((ts).__pc)) +#define __darwin_arm_thread_state64_set_pc_fptr(ts,fptr) ((ts).__pc = (uintptr_t)(fptr)) +#define __darwin_arm_thread_state64_get_lr(ts) ((ts).__lr) +#define __darwin_arm_thread_state64_get_lr_fptr(ts) ((void*)(uintptr_t)((ts).__lr)) +#define __darwin_arm_thread_state64_set_lr_fptr(ts,fptr) ((ts).__lr = (uintptr_t)(fptr)) +#define __darwin_arm_thread_state64_get_sp(ts) ((ts).__sp) +#define __darwin_arm_thread_state64_set_sp(ts,ptr) ((ts).__sp = (uintptr_t)(ptr)) +#define __darwin_arm_thread_state64_get_fp(ts) ((ts).__fp) +#define __darwin_arm_thread_state64_set_fp(ts,ptr) ((ts).__fp = (uintptr_t)(ptr)) +#define __darwin_arm_thread_state64_ptrauth_strip(ts) (void)(ts) +#define _STRUCT_ARM_VFP_STATE struct __darwin_arm_vfp_state +#define _STRUCT_ARM_NEON_STATE64 struct __darwin_arm_neon_state64 +#define _STRUCT_ARM_NEON_STATE struct __darwin_arm_neon_state +#define _STRUCT_ARM_PAGEIN_STATE struct __arm_pagein_state +#define _STRUCT_ARM_LEGACY_DEBUG_STATE struct __arm_legacy_debug_state +#define _STRUCT_ARM_DEBUG_STATE32 struct __darwin_arm_debug_state32 +#define _STRUCT_ARM_DEBUG_STATE64 struct __darwin_arm_debug_state64 +#define _STRUCT_ARM_CPMU_STATE64 struct __darwin_arm_cpmu_state64 +#define _STRUCT_MCONTEXT32 struct __darwin_mcontext32 +#define _STRUCT_MCONTEXT64 struct __darwin_mcontext64 +#define _MCONTEXT_T +#define _STRUCT_MCONTEXT _STRUCT_MCONTEXT64 +#define _STRUCT_SIGALTSTACK struct __darwin_sigaltstack +#define _STRUCT_UCONTEXT struct __darwin_ucontext +#define _SIGSET_T +#define SIGEV_NONE 0 +#define SIGEV_SIGNAL 1 +#define SIGEV_THREAD 3 +#define ILL_NOOP 0 +#define ILL_ILLOPC 1 +#define ILL_ILLTRP 2 +#define ILL_PRVOPC 3 +#define ILL_ILLOPN 4 +#define ILL_ILLADR 5 +#define ILL_PRVREG 6 +#define ILL_COPROC 7 +#define ILL_BADSTK 8 +#define FPE_NOOP 0 +#define FPE_FLTDIV 1 +#define FPE_FLTOVF 2 +#define FPE_FLTUND 3 +#define FPE_FLTRES 4 +#define FPE_FLTINV 5 +#define FPE_FLTSUB 6 +#define FPE_INTDIV 7 +#define FPE_INTOVF 8 +#define SEGV_NOOP 0 +#define SEGV_MAPERR 1 +#define SEGV_ACCERR 2 +#define BUS_NOOP 0 +#define BUS_ADRALN 1 +#define BUS_ADRERR 2 +#define BUS_OBJERR 3 +#define TRAP_BRKPT 1 +#define TRAP_TRACE 2 +#define CLD_NOOP 0 +#define CLD_EXITED 1 +#define CLD_KILLED 2 +#define CLD_DUMPED 3 +#define CLD_TRAPPED 4 +#define CLD_STOPPED 5 +#define CLD_CONTINUED 6 +#define POLL_IN 1 +#define POLL_OUT 2 +#define POLL_MSG 3 +#define POLL_ERR 4 +#define POLL_PRI 5 +#define POLL_HUP 6 +#define sa_handler __sigaction_u.__sa_handler +#define sa_sigaction __sigaction_u.__sa_sigaction +#define SA_ONSTACK 0x0001 +#define SA_RESTART 0x0002 +#define SA_RESETHAND 0x0004 +#define SA_NOCLDSTOP 0x0008 +#define SA_NODEFER 0x0010 +#define SA_NOCLDWAIT 0x0020 +#define SA_SIGINFO 0x0040 +#define SA_USERTRAMP 0x0100 +#define SA_64REGSET 0x0200 +#define SA_USERSPACE_MASK (SA_ONSTACK | SA_RESTART | SA_RESETHAND | SA_NOCLDSTOP | SA_NODEFER | SA_NOCLDWAIT | SA_SIGINFO) +#define SIG_BLOCK 1 +#define SIG_UNBLOCK 2 +#define SIG_SETMASK 3 +#define SI_USER 0x10001 +#define SI_QUEUE 0x10002 +#define SI_TIMER 0x10003 +#define SI_ASYNCIO 0x10004 +#define SI_MESGQ 0x10005 +#define SS_ONSTACK 0x0001 +#define SS_DISABLE 0x0004 +#define MINSIGSTKSZ 32768 +#define SIGSTKSZ 131072 +#define SV_ONSTACK SA_ONSTACK +#define SV_INTERRUPT SA_RESTART +#define SV_RESETHAND SA_RESETHAND +#define SV_NODEFER SA_NODEFER +#define SV_NOCLDSTOP SA_NOCLDSTOP +#define SV_SIGINFO SA_SIGINFO +#define sv_onstack sv_flags +#define sigmask(m) (1 << ((m)-1)) +#define BADSIG SIG_ERR +#define _SYS_RESOURCE_H_ +#define _STRUCT_TIMEVAL struct timeval +#define PRIO_PROCESS 0 +#define PRIO_PGRP 1 +#define PRIO_USER 2 +#define PRIO_DARWIN_THREAD 3 +#define PRIO_DARWIN_PROCESS 4 +#define PRIO_MIN -20 +#define PRIO_MAX 20 +#define PRIO_DARWIN_BG 0x1000 +#define PRIO_DARWIN_NONUI 0x1001 +#define RUSAGE_SELF 0 +#define RUSAGE_CHILDREN -1 +#define ru_first ru_ixrss +#define ru_last ru_nivcsw +#define RUSAGE_INFO_V0 0 +#define RUSAGE_INFO_V1 1 +#define RUSAGE_INFO_V2 2 +#define RUSAGE_INFO_V3 3 +#define RUSAGE_INFO_V4 4 +#define RUSAGE_INFO_V5 5 +#define RUSAGE_INFO_V6 6 +#define RUSAGE_INFO_CURRENT RUSAGE_INFO_V6 +#define RU_PROC_RUNS_RESLIDE 0x00000001 +#define RLIM_INFINITY (((__uint64_t)1 << 63) - 1) +#define RLIM_SAVED_MAX RLIM_INFINITY +#define RLIM_SAVED_CUR RLIM_INFINITY +#define RLIMIT_CPU 0 +#define RLIMIT_FSIZE 1 +#define RLIMIT_DATA 2 +#define RLIMIT_STACK 3 +#define RLIMIT_CORE 4 +#define RLIMIT_AS 5 +#define RLIMIT_RSS RLIMIT_AS +#define RLIMIT_MEMLOCK 6 +#define RLIMIT_NPROC 7 +#define RLIMIT_NOFILE 8 +#define RLIM_NLIMITS 9 +#define _RLIMIT_POSIX_FLAG 0x1000 +#define RLIMIT_WAKEUPS_MONITOR 0x1 +#define RLIMIT_CPU_USAGE_MONITOR 0x2 +#define RLIMIT_THREAD_CPULIMITS 0x3 +#define RLIMIT_FOOTPRINT_INTERVAL 0x4 +#define WAKEMON_ENABLE 0x01 +#define WAKEMON_DISABLE 0x02 +#define WAKEMON_GET_PARAMS 0x04 +#define WAKEMON_SET_DEFAULTS 0x08 +#define WAKEMON_MAKE_FATAL 0x10 +#define CPUMON_MAKE_FATAL 0x1000 +#define FOOTPRINT_INTERVAL_RESET 0x1 +#define IOPOL_TYPE_DISK 0 +#define IOPOL_TYPE_VFS_ATIME_UPDATES 2 +#define IOPOL_TYPE_VFS_MATERIALIZE_DATALESS_FILES 3 +#define IOPOL_TYPE_VFS_STATFS_NO_DATA_VOLUME 4 +#define IOPOL_TYPE_VFS_TRIGGER_RESOLVE 5 +#define IOPOL_TYPE_VFS_IGNORE_CONTENT_PROTECTION 6 +#define IOPOL_TYPE_VFS_IGNORE_PERMISSIONS 7 +#define IOPOL_TYPE_VFS_SKIP_MTIME_UPDATE 8 +#define IOPOL_TYPE_VFS_ALLOW_LOW_SPACE_WRITES 9 +#define IOPOL_TYPE_VFS_DISALLOW_RW_FOR_O_EVTONLY 10 +#define IOPOL_SCOPE_PROCESS 0 +#define IOPOL_SCOPE_THREAD 1 +#define IOPOL_SCOPE_DARWIN_BG 2 +#define IOPOL_DEFAULT 0 +#define IOPOL_IMPORTANT 1 +#define IOPOL_PASSIVE 2 +#define IOPOL_THROTTLE 3 +#define IOPOL_UTILITY 4 +#define IOPOL_STANDARD 5 +#define IOPOL_APPLICATION IOPOL_STANDARD +#define IOPOL_NORMAL IOPOL_IMPORTANT +#define IOPOL_ATIME_UPDATES_DEFAULT 0 +#define IOPOL_ATIME_UPDATES_OFF 1 +#define IOPOL_MATERIALIZE_DATALESS_FILES_DEFAULT 0 +#define IOPOL_MATERIALIZE_DATALESS_FILES_OFF 1 +#define IOPOL_MATERIALIZE_DATALESS_FILES_ON 2 +#define IOPOL_VFS_STATFS_NO_DATA_VOLUME_DEFAULT 0 +#define IOPOL_VFS_STATFS_FORCE_NO_DATA_VOLUME 1 +#define IOPOL_VFS_TRIGGER_RESOLVE_DEFAULT 0 +#define IOPOL_VFS_TRIGGER_RESOLVE_OFF 1 +#define IOPOL_VFS_CONTENT_PROTECTION_DEFAULT 0 +#define IOPOL_VFS_CONTENT_PROTECTION_IGNORE 1 +#define IOPOL_VFS_IGNORE_PERMISSIONS_OFF 0 +#define IOPOL_VFS_IGNORE_PERMISSIONS_ON 1 +#define IOPOL_VFS_SKIP_MTIME_UPDATE_OFF 0 +#define IOPOL_VFS_SKIP_MTIME_UPDATE_ON 1 +#define IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_OFF 0 +#define IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_ON 1 +#define IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_DEFAULT 0 +#define IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_ON 1 +#define IOPOL_VFS_NOCACHE_WRITE_FS_BLKSIZE_DEFAULT 0 +#define IOPOL_VFS_NOCACHE_WRITE_FS_BLKSIZE_ON 1 +#define WNOHANG 0x00000001 +#define WUNTRACED 0x00000002 +#define _W_INT(w) (*(int *)&(w)) +#define WCOREFLAG 0200 +#define _WSTATUS(x) (_W_INT(x) & 0177) +#define _WSTOPPED 0177 +#define WEXITSTATUS(x) ((_W_INT(x) >> 8) & 0x000000ff) +#define WSTOPSIG(x) (_W_INT(x) >> 8) +#define WIFCONTINUED(x) (_WSTATUS(x) == _WSTOPPED && WSTOPSIG(x) == 0x13) +#define WIFSTOPPED(x) (_WSTATUS(x) == _WSTOPPED && WSTOPSIG(x) != 0x13) +#define WIFEXITED(x) (_WSTATUS(x) == 0) +#define WIFSIGNALED(x) (_WSTATUS(x) != _WSTOPPED && _WSTATUS(x) != 0) +#define WTERMSIG(x) (_WSTATUS(x)) +#define WCOREDUMP(x) (_W_INT(x) & WCOREFLAG) +#define W_EXITCODE(ret,sig) ((ret) << 8 | (sig)) +#define W_STOPCODE(sig) ((sig) << 8 | _WSTOPPED) +#define WEXITED 0x00000004 +#define WSTOPPED 0x00000008 +#define WCONTINUED 0x00000010 +#define WNOWAIT 0x00000020 +#define WAIT_ANY (-1) +#define WAIT_MYPGRP 0 +#define w_termsig w_T.w_Termsig +#define w_coredump w_T.w_Coredump +#define w_retcode w_T.w_Retcode +#define w_stopval w_S.w_Stopval +#define w_stopsig w_S.w_Stopsig +#define _ALLOCA_H_ +#undef alloca +#undef __alloca +#define alloca(size) __alloca(size) +#define __alloca(size) __builtin_alloca(size) +#define _CT_RUNE_T +#define _RUNE_T +#define _WCHAR_T +#define EXIT_FAILURE 1 +#define EXIT_SUCCESS 0 +#define RAND_MAX 0x7fffffff +#define MB_CUR_MAX __mb_cur_max +#define _MALLOC_UNDERSCORE_MALLOC_H_ +#define _MALLOC_UNDERSCORE_MALLOC_TYPE_H_ +#define _MALLOC_TYPE_AVAILABILITY __API_UNAVAILABLE(macos, ios, tvos, watchos, visionos) +#define _MALLOC_TYPED(override,type_param_pos) +#define __bsearch_noescape __attribute__((__noescape__)) +#define __sort_noescape __attribute__((__noescape__)) +#define __STDDEF_H +#define __need_ptrdiff_t +#define __need_size_t +#define __need_wchar_t +#define __need_NULL +#define __need_STDDEF_H_misc +#define _PTRDIFF_T +#undef __need_ptrdiff_t +#undef __need_size_t +#undef __need_wchar_t +#undef NULL +#define NULL ((void*)0) +#undef __need_NULL +#define __CLANG_MAX_ALIGN_T_DEFINED +#define offsetof(t,d) __builtin_offsetof(t, d) +#undef __need_STDDEF_H_misc +#define _STRING_H_ +#define _STRINGS_H_ +#define _SECURE__STRINGS_H_ +#undef bcopy +#define bcopy(src,dest,...) __builtin___memmove_chk (dest, src, __VA_ARGS__, __darwin_obsz0 (dest)) +#undef bzero +#define bzero(dest,...) __builtin___memset_chk (dest, 0, __VA_ARGS__, __darwin_obsz0 (dest)) +#define _SECURE__STRING_H_ +#define __HAS_FIXED_CHK_PROTOTYPES 1 +#undef memccpy +#define memccpy(dest,...) __builtin___memccpy_chk (dest, __VA_ARGS__, __darwin_obsz0 (dest)) +#undef memcpy +#define memcpy(dest,...) __builtin___memcpy_chk (dest, __VA_ARGS__, __darwin_obsz0 (dest)) +#undef memmove +#define memmove(dest,...) __builtin___memmove_chk (dest, __VA_ARGS__, __darwin_obsz0 (dest)) +#undef memset +#define memset(dest,...) __builtin___memset_chk (dest, __VA_ARGS__, __darwin_obsz0 (dest)) +#undef strcpy +#define strcpy(dest,...) __builtin___strcpy_chk (dest, __VA_ARGS__, __darwin_obsz (dest)) +#undef stpcpy +#define stpcpy(dest,...) __builtin___stpcpy_chk (dest, __VA_ARGS__, __darwin_obsz (dest)) +#undef stpncpy +#define stpncpy(dest,...) __builtin___stpncpy_chk (dest, __VA_ARGS__, __darwin_obsz (dest)) +#undef strlcpy +#define strlcpy(dest,...) __builtin___strlcpy_chk (dest, __VA_ARGS__, __darwin_obsz (dest)) +#undef strlcat +#define strlcat(dest,...) __builtin___strlcat_chk (dest, __VA_ARGS__, __darwin_obsz (dest)) +#undef strncpy +#define strncpy(dest,...) __builtin___strncpy_chk (dest, __VA_ARGS__, __darwin_obsz (dest)) +#undef strcat +#define strcat(dest,...) __builtin___strcat_chk (dest, __VA_ARGS__, __darwin_obsz (dest)) +#undef strncat +#define strncat(dest,...) __builtin___strncat_chk (dest, __VA_ARGS__, __darwin_obsz (dest)) +#undef __HAS_FIXED_CHK_PROTOTYPES +#define __CLANG_INTTYPES_H +#define _INTTYPES_H_ +#define __PRI_8_LENGTH_MODIFIER__ "hh" +#define __PRI_64_LENGTH_MODIFIER__ "ll" +#define __SCN_64_LENGTH_MODIFIER__ "ll" +#define __PRI_MAX_LENGTH_MODIFIER__ "j" +#define __SCN_MAX_LENGTH_MODIFIER__ "j" +#define PRId8 __PRI_8_LENGTH_MODIFIER__ "d" +#define PRIi8 __PRI_8_LENGTH_MODIFIER__ "i" +#define PRIo8 __PRI_8_LENGTH_MODIFIER__ "o" +#define PRIu8 __PRI_8_LENGTH_MODIFIER__ "u" +#define PRIx8 __PRI_8_LENGTH_MODIFIER__ "x" +#define PRIX8 __PRI_8_LENGTH_MODIFIER__ "X" +#define PRId16 "hd" +#define PRIi16 "hi" +#define PRIo16 "ho" +#define PRIu16 "hu" +#define PRIx16 "hx" +#define PRIX16 "hX" +#define PRId32 "d" +#define PRIi32 "i" +#define PRIo32 "o" +#define PRIu32 "u" +#define PRIx32 "x" +#define PRIX32 "X" +#define PRId64 __PRI_64_LENGTH_MODIFIER__ "d" +#define PRIi64 __PRI_64_LENGTH_MODIFIER__ "i" +#define PRIo64 __PRI_64_LENGTH_MODIFIER__ "o" +#define PRIu64 __PRI_64_LENGTH_MODIFIER__ "u" +#define PRIx64 __PRI_64_LENGTH_MODIFIER__ "x" +#define PRIX64 __PRI_64_LENGTH_MODIFIER__ "X" +#define PRIdLEAST8 PRId8 +#define PRIiLEAST8 PRIi8 +#define PRIoLEAST8 PRIo8 +#define PRIuLEAST8 PRIu8 +#define PRIxLEAST8 PRIx8 +#define PRIXLEAST8 PRIX8 +#define PRIdLEAST16 PRId16 +#define PRIiLEAST16 PRIi16 +#define PRIoLEAST16 PRIo16 +#define PRIuLEAST16 PRIu16 +#define PRIxLEAST16 PRIx16 +#define PRIXLEAST16 PRIX16 +#define PRIdLEAST32 PRId32 +#define PRIiLEAST32 PRIi32 +#define PRIoLEAST32 PRIo32 +#define PRIuLEAST32 PRIu32 +#define PRIxLEAST32 PRIx32 +#define PRIXLEAST32 PRIX32 +#define PRIdLEAST64 PRId64 +#define PRIiLEAST64 PRIi64 +#define PRIoLEAST64 PRIo64 +#define PRIuLEAST64 PRIu64 +#define PRIxLEAST64 PRIx64 +#define PRIXLEAST64 PRIX64 +#define PRIdFAST8 PRId8 +#define PRIiFAST8 PRIi8 +#define PRIoFAST8 PRIo8 +#define PRIuFAST8 PRIu8 +#define PRIxFAST8 PRIx8 +#define PRIXFAST8 PRIX8 +#define PRIdFAST16 PRId16 +#define PRIiFAST16 PRIi16 +#define PRIoFAST16 PRIo16 +#define PRIuFAST16 PRIu16 +#define PRIxFAST16 PRIx16 +#define PRIXFAST16 PRIX16 +#define PRIdFAST32 PRId32 +#define PRIiFAST32 PRIi32 +#define PRIoFAST32 PRIo32 +#define PRIuFAST32 PRIu32 +#define PRIxFAST32 PRIx32 +#define PRIXFAST32 PRIX32 +#define PRIdFAST64 PRId64 +#define PRIiFAST64 PRIi64 +#define PRIoFAST64 PRIo64 +#define PRIuFAST64 PRIu64 +#define PRIxFAST64 PRIx64 +#define PRIXFAST64 PRIX64 +#define PRIdPTR "ld" +#define PRIiPTR "li" +#define PRIoPTR "lo" +#define PRIuPTR "lu" +#define PRIxPTR "lx" +#define PRIXPTR "lX" +#define PRIdMAX __PRI_MAX_LENGTH_MODIFIER__ "d" +#define PRIiMAX __PRI_MAX_LENGTH_MODIFIER__ "i" +#define PRIoMAX __PRI_MAX_LENGTH_MODIFIER__ "o" +#define PRIuMAX __PRI_MAX_LENGTH_MODIFIER__ "u" +#define PRIxMAX __PRI_MAX_LENGTH_MODIFIER__ "x" +#define PRIXMAX __PRI_MAX_LENGTH_MODIFIER__ "X" +#define SCNd8 __PRI_8_LENGTH_MODIFIER__ "d" +#define SCNi8 __PRI_8_LENGTH_MODIFIER__ "i" +#define SCNo8 __PRI_8_LENGTH_MODIFIER__ "o" +#define SCNu8 __PRI_8_LENGTH_MODIFIER__ "u" +#define SCNx8 __PRI_8_LENGTH_MODIFIER__ "x" +#define SCNd16 "hd" +#define SCNi16 "hi" +#define SCNo16 "ho" +#define SCNu16 "hu" +#define SCNx16 "hx" +#define SCNd32 "d" +#define SCNi32 "i" +#define SCNo32 "o" +#define SCNu32 "u" +#define SCNx32 "x" +#define SCNd64 __SCN_64_LENGTH_MODIFIER__ "d" +#define SCNi64 __SCN_64_LENGTH_MODIFIER__ "i" +#define SCNo64 __SCN_64_LENGTH_MODIFIER__ "o" +#define SCNu64 __SCN_64_LENGTH_MODIFIER__ "u" +#define SCNx64 __SCN_64_LENGTH_MODIFIER__ "x" +#define SCNdLEAST8 SCNd8 +#define SCNiLEAST8 SCNi8 +#define SCNoLEAST8 SCNo8 +#define SCNuLEAST8 SCNu8 +#define SCNxLEAST8 SCNx8 +#define SCNdLEAST16 SCNd16 +#define SCNiLEAST16 SCNi16 +#define SCNoLEAST16 SCNo16 +#define SCNuLEAST16 SCNu16 +#define SCNxLEAST16 SCNx16 +#define SCNdLEAST32 SCNd32 +#define SCNiLEAST32 SCNi32 +#define SCNoLEAST32 SCNo32 +#define SCNuLEAST32 SCNu32 +#define SCNxLEAST32 SCNx32 +#define SCNdLEAST64 SCNd64 +#define SCNiLEAST64 SCNi64 +#define SCNoLEAST64 SCNo64 +#define SCNuLEAST64 SCNu64 +#define SCNxLEAST64 SCNx64 +#define SCNdFAST8 SCNd8 +#define SCNiFAST8 SCNi8 +#define SCNoFAST8 SCNo8 +#define SCNuFAST8 SCNu8 +#define SCNxFAST8 SCNx8 +#define SCNdFAST16 SCNd16 +#define SCNiFAST16 SCNi16 +#define SCNoFAST16 SCNo16 +#define SCNuFAST16 SCNu16 +#define SCNxFAST16 SCNx16 +#define SCNdFAST32 SCNd32 +#define SCNiFAST32 SCNi32 +#define SCNoFAST32 SCNo32 +#define SCNuFAST32 SCNu32 +#define SCNxFAST32 SCNx32 +#define SCNdFAST64 SCNd64 +#define SCNiFAST64 SCNi64 +#define SCNoFAST64 SCNo64 +#define SCNuFAST64 SCNu64 +#define SCNxFAST64 SCNx64 +#define SCNdPTR "ld" +#define SCNiPTR "li" +#define SCNoPTR "lo" +#define SCNuPTR "lu" +#define SCNxPTR "lx" +#define SCNdMAX __SCN_MAX_LENGTH_MODIFIER__ "d" +#define SCNiMAX __SCN_MAX_LENGTH_MODIFIER__ "i" +#define SCNoMAX __SCN_MAX_LENGTH_MODIFIER__ "o" +#define SCNuMAX __SCN_MAX_LENGTH_MODIFIER__ "u" +#define SCNxMAX __SCN_MAX_LENGTH_MODIFIER__ "x" +#define __STDALIGN_H +#define alignas _Alignas +#define alignof _Alignof +#define __alignas_is_defined 1 +#define __alignof_is_defined 1 +#define _UNISTD_H_ +#define _SYS_UNISTD_H_ +#define _POSIX_VERSION 200112L +#define _POSIX2_VERSION 200112L +#define _POSIX_VDISABLE ((unsigned char)'\377') +#define _POSIX_THREAD_KEYS_MAX 128 +#define F_OK 0 +#define X_OK (1<<0) +#define W_OK (1<<1) +#define R_OK (1<<2) +#define _READ_OK (1<<9) +#define _WRITE_OK (1<<10) +#define _EXECUTE_OK (1<<11) +#define _DELETE_OK (1<<12) +#define _APPEND_OK (1<<13) +#define _RMFILE_OK (1<<14) +#define _RATTR_OK (1<<15) +#define _WATTR_OK (1<<16) +#define _REXT_OK (1<<17) +#define _WEXT_OK (1<<18) +#define _RPERM_OK (1<<19) +#define _WPERM_OK (1<<20) +#define _CHOWN_OK (1<<21) +#define _ACCESS_EXTENDED_MASK (_READ_OK | _WRITE_OK | _EXECUTE_OK | _DELETE_OK | _APPEND_OK | _RMFILE_OK | _REXT_OK | _WEXT_OK | _RATTR_OK | _WATTR_OK | _RPERM_OK | _WPERM_OK | _CHOWN_OK) +#define L_SET SEEK_SET +#define L_INCR SEEK_CUR +#define L_XTND SEEK_END +#define ACCESSX_MAX_DESCRIPTORS 100 +#define ACCESSX_MAX_TABLESIZE (16 * 1024) +#define _PC_LINK_MAX 1 +#define _PC_MAX_CANON 2 +#define _PC_MAX_INPUT 3 +#define _PC_NAME_MAX 4 +#define _PC_PATH_MAX 5 +#define _PC_PIPE_BUF 6 +#define _PC_CHOWN_RESTRICTED 7 +#define _PC_NO_TRUNC 8 +#define _PC_VDISABLE 9 +#define _PC_NAME_CHARS_MAX 10 +#define _PC_CASE_SENSITIVE 11 +#define _PC_CASE_PRESERVING 12 +#define _PC_EXTENDED_SECURITY_NP 13 +#define _PC_AUTH_OPAQUE_NP 14 +#define _PC_2_SYMLINKS 15 +#define _PC_ALLOC_SIZE_MIN 16 +#define _PC_ASYNC_IO 17 +#define _PC_FILESIZEBITS 18 +#define _PC_PRIO_IO 19 +#define _PC_REC_INCR_XFER_SIZE 20 +#define _PC_REC_MAX_XFER_SIZE 21 +#define _PC_REC_MIN_XFER_SIZE 22 +#define _PC_REC_XFER_ALIGN 23 +#define _PC_SYMLINK_MAX 24 +#define _PC_SYNC_IO 25 +#define _PC_XATTR_SIZE_BITS 26 +#define _PC_MIN_HOLE_SIZE 27 +#define _CS_PATH 1 +#define STDIN_FILENO 0 +#define STDOUT_FILENO 1 +#define STDERR_FILENO 2 +#define _XOPEN_VERSION 600 +#define _XOPEN_XCU_VERSION 4 +#define _POSIX_ADVISORY_INFO (-1) +#define _POSIX_ASYNCHRONOUS_IO (-1) +#define _POSIX_BARRIERS (-1) +#define _POSIX_CHOWN_RESTRICTED 200112L +#define _POSIX_CLOCK_SELECTION (-1) +#define _POSIX_CPUTIME (-1) +#define _POSIX_FSYNC 200112L +#define _POSIX_IPV6 200112L +#define _POSIX_JOB_CONTROL 200112L +#define _POSIX_MAPPED_FILES 200112L +#define _POSIX_MEMLOCK (-1) +#define _POSIX_MEMLOCK_RANGE (-1) +#define _POSIX_MEMORY_PROTECTION 200112L +#define _POSIX_MESSAGE_PASSING (-1) +#define _POSIX_MONOTONIC_CLOCK (-1) +#define _POSIX_NO_TRUNC 200112L +#define _POSIX_PRIORITIZED_IO (-1) +#define _POSIX_PRIORITY_SCHEDULING (-1) +#define _POSIX_RAW_SOCKETS (-1) +#define _POSIX_READER_WRITER_LOCKS 200112L +#define _POSIX_REALTIME_SIGNALS (-1) +#define _POSIX_REGEXP 200112L +#define _POSIX_SAVED_IDS 200112L +#define _POSIX_SEMAPHORES (-1) +#define _POSIX_SHARED_MEMORY_OBJECTS (-1) +#define _POSIX_SHELL 200112L +#define _POSIX_SPAWN 200112L +#define _POSIX_SPIN_LOCKS (-1) +#define _POSIX_SPORADIC_SERVER (-1) +#define _POSIX_SYNCHRONIZED_IO (-1) +#define _POSIX_THREAD_ATTR_STACKADDR 200112L +#define _POSIX_THREAD_ATTR_STACKSIZE 200112L +#define _POSIX_THREAD_CPUTIME (-1) +#define _POSIX_THREAD_PRIO_INHERIT (-1) +#define _POSIX_THREAD_PRIO_PROTECT (-1) +#define _POSIX_THREAD_PRIORITY_SCHEDULING (-1) +#define _POSIX_THREAD_PROCESS_SHARED 200112L +#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L +#define _POSIX_THREAD_SPORADIC_SERVER (-1) +#define _POSIX_THREADS 200112L +#define _POSIX_TIMEOUTS (-1) +#define _POSIX_TIMERS (-1) +#define _POSIX_TRACE (-1) +#define _POSIX_TRACE_EVENT_FILTER (-1) +#define _POSIX_TRACE_INHERIT (-1) +#define _POSIX_TRACE_LOG (-1) +#define _POSIX_TYPED_MEMORY_OBJECTS (-1) +#define _POSIX2_C_BIND 200112L +#define _POSIX2_C_DEV 200112L +#define _POSIX2_CHAR_TERM 200112L +#define _POSIX2_FORT_DEV (-1) +#define _POSIX2_FORT_RUN 200112L +#define _POSIX2_LOCALEDEF 200112L +#define _POSIX2_PBS (-1) +#define _POSIX2_PBS_ACCOUNTING (-1) +#define _POSIX2_PBS_CHECKPOINT (-1) +#define _POSIX2_PBS_LOCATE (-1) +#define _POSIX2_PBS_MESSAGE (-1) +#define _POSIX2_PBS_TRACK (-1) +#define _POSIX2_SW_DEV 200112L +#define _POSIX2_UPE 200112L +#define __ILP32_OFF32 (-1) +#define __ILP32_OFFBIG (-1) +#define __LP64_OFF64 (1) +#define __LPBIG_OFFBIG (1) +#define _POSIX_V6_ILP32_OFF32 __ILP32_OFF32 +#define _POSIX_V6_ILP32_OFFBIG __ILP32_OFFBIG +#define _POSIX_V6_LP64_OFF64 __LP64_OFF64 +#define _POSIX_V6_LPBIG_OFFBIG __LPBIG_OFFBIG +#define _POSIX_V7_ILP32_OFF32 __ILP32_OFF32 +#define _POSIX_V7_ILP32_OFFBIG __ILP32_OFFBIG +#define _POSIX_V7_LP64_OFF64 __LP64_OFF64 +#define _POSIX_V7_LPBIG_OFFBIG __LPBIG_OFFBIG +#define _V6_ILP32_OFF32 __ILP32_OFF32 +#define _V6_ILP32_OFFBIG __ILP32_OFFBIG +#define _V6_LP64_OFF64 __LP64_OFF64 +#define _V6_LPBIG_OFFBIG __LPBIG_OFFBIG +#define _XBS5_ILP32_OFF32 __ILP32_OFF32 +#define _XBS5_ILP32_OFFBIG __ILP32_OFFBIG +#define _XBS5_LP64_OFF64 __LP64_OFF64 +#define _XBS5_LPBIG_OFFBIG __LPBIG_OFFBIG +#define _XOPEN_CRYPT (1) +#define _XOPEN_ENH_I18N (1) +#define _XOPEN_LEGACY (-1) +#define _XOPEN_REALTIME (-1) +#define _XOPEN_REALTIME_THREADS (-1) +#define _XOPEN_SHM (1) +#define _XOPEN_STREAMS (-1) +#define _XOPEN_UNIX (1) +#define _SC_ARG_MAX 1 +#define _SC_CHILD_MAX 2 +#define _SC_CLK_TCK 3 +#define _SC_NGROUPS_MAX 4 +#define _SC_OPEN_MAX 5 +#define _SC_JOB_CONTROL 6 +#define _SC_SAVED_IDS 7 +#define _SC_VERSION 8 +#define _SC_BC_BASE_MAX 9 +#define _SC_BC_DIM_MAX 10 +#define _SC_BC_SCALE_MAX 11 +#define _SC_BC_STRING_MAX 12 +#define _SC_COLL_WEIGHTS_MAX 13 +#define _SC_EXPR_NEST_MAX 14 +#define _SC_LINE_MAX 15 +#define _SC_RE_DUP_MAX 16 +#define _SC_2_VERSION 17 +#define _SC_2_C_BIND 18 +#define _SC_2_C_DEV 19 +#define _SC_2_CHAR_TERM 20 +#define _SC_2_FORT_DEV 21 +#define _SC_2_FORT_RUN 22 +#define _SC_2_LOCALEDEF 23 +#define _SC_2_SW_DEV 24 +#define _SC_2_UPE 25 +#define _SC_STREAM_MAX 26 +#define _SC_TZNAME_MAX 27 +#define _SC_ASYNCHRONOUS_IO 28 +#define _SC_PAGESIZE 29 +#define _SC_MEMLOCK 30 +#define _SC_MEMLOCK_RANGE 31 +#define _SC_MEMORY_PROTECTION 32 +#define _SC_MESSAGE_PASSING 33 +#define _SC_PRIORITIZED_IO 34 +#define _SC_PRIORITY_SCHEDULING 35 +#define _SC_REALTIME_SIGNALS 36 +#define _SC_SEMAPHORES 37 +#define _SC_FSYNC 38 +#define _SC_SHARED_MEMORY_OBJECTS 39 +#define _SC_SYNCHRONIZED_IO 40 +#define _SC_TIMERS 41 +#define _SC_AIO_LISTIO_MAX 42 +#define _SC_AIO_MAX 43 +#define _SC_AIO_PRIO_DELTA_MAX 44 +#define _SC_DELAYTIMER_MAX 45 +#define _SC_MQ_OPEN_MAX 46 +#define _SC_MAPPED_FILES 47 +#define _SC_RTSIG_MAX 48 +#define _SC_SEM_NSEMS_MAX 49 +#define _SC_SEM_VALUE_MAX 50 +#define _SC_SIGQUEUE_MAX 51 +#define _SC_TIMER_MAX 52 +#define _SC_NPROCESSORS_CONF 57 +#define _SC_NPROCESSORS_ONLN 58 +#define _SC_2_PBS 59 +#define _SC_2_PBS_ACCOUNTING 60 +#define _SC_2_PBS_CHECKPOINT 61 +#define _SC_2_PBS_LOCATE 62 +#define _SC_2_PBS_MESSAGE 63 +#define _SC_2_PBS_TRACK 64 +#define _SC_ADVISORY_INFO 65 +#define _SC_BARRIERS 66 +#define _SC_CLOCK_SELECTION 67 +#define _SC_CPUTIME 68 +#define _SC_FILE_LOCKING 69 +#define _SC_GETGR_R_SIZE_MAX 70 +#define _SC_GETPW_R_SIZE_MAX 71 +#define _SC_HOST_NAME_MAX 72 +#define _SC_LOGIN_NAME_MAX 73 +#define _SC_MONOTONIC_CLOCK 74 +#define _SC_MQ_PRIO_MAX 75 +#define _SC_READER_WRITER_LOCKS 76 +#define _SC_REGEXP 77 +#define _SC_SHELL 78 +#define _SC_SPAWN 79 +#define _SC_SPIN_LOCKS 80 +#define _SC_SPORADIC_SERVER 81 +#define _SC_THREAD_ATTR_STACKADDR 82 +#define _SC_THREAD_ATTR_STACKSIZE 83 +#define _SC_THREAD_CPUTIME 84 +#define _SC_THREAD_DESTRUCTOR_ITERATIONS 85 +#define _SC_THREAD_KEYS_MAX 86 +#define _SC_THREAD_PRIO_INHERIT 87 +#define _SC_THREAD_PRIO_PROTECT 88 +#define _SC_THREAD_PRIORITY_SCHEDULING 89 +#define _SC_THREAD_PROCESS_SHARED 90 +#define _SC_THREAD_SAFE_FUNCTIONS 91 +#define _SC_THREAD_SPORADIC_SERVER 92 +#define _SC_THREAD_STACK_MIN 93 +#define _SC_THREAD_THREADS_MAX 94 +#define _SC_TIMEOUTS 95 +#define _SC_THREADS 96 +#define _SC_TRACE 97 +#define _SC_TRACE_EVENT_FILTER 98 +#define _SC_TRACE_INHERIT 99 +#define _SC_TRACE_LOG 100 +#define _SC_TTY_NAME_MAX 101 +#define _SC_TYPED_MEMORY_OBJECTS 102 +#define _SC_V6_ILP32_OFF32 103 +#define _SC_V6_ILP32_OFFBIG 104 +#define _SC_V6_LP64_OFF64 105 +#define _SC_V6_LPBIG_OFFBIG 106 +#define _SC_IPV6 118 +#define _SC_RAW_SOCKETS 119 +#define _SC_SYMLOOP_MAX 120 +#define _SC_ATEXIT_MAX 107 +#define _SC_IOV_MAX 56 +#define _SC_PAGE_SIZE _SC_PAGESIZE +#define _SC_XOPEN_CRYPT 108 +#define _SC_XOPEN_ENH_I18N 109 +#define _SC_XOPEN_LEGACY 110 +#define _SC_XOPEN_REALTIME 111 +#define _SC_XOPEN_REALTIME_THREADS 112 +#define _SC_XOPEN_SHM 113 +#define _SC_XOPEN_STREAMS 114 +#define _SC_XOPEN_UNIX 115 +#define _SC_XOPEN_VERSION 116 +#define _SC_XOPEN_XCU_VERSION 121 +#define _SC_XBS5_ILP32_OFF32 122 +#define _SC_XBS5_ILP32_OFFBIG 123 +#define _SC_XBS5_LP64_OFF64 124 +#define _SC_XBS5_LPBIG_OFFBIG 125 +#define _SC_SS_REPL_MAX 126 +#define _SC_TRACE_EVENT_NAME_MAX 127 +#define _SC_TRACE_NAME_MAX 128 +#define _SC_TRACE_SYS_MAX 129 +#define _SC_TRACE_USER_EVENT_MAX 130 +#define _SC_PASS_MAX 131 +#define _SC_PHYS_PAGES 200 +#define _CS_POSIX_V6_ILP32_OFF32_CFLAGS 2 +#define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS 3 +#define _CS_POSIX_V6_ILP32_OFF32_LIBS 4 +#define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS 5 +#define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS 6 +#define _CS_POSIX_V6_ILP32_OFFBIG_LIBS 7 +#define _CS_POSIX_V6_LP64_OFF64_CFLAGS 8 +#define _CS_POSIX_V6_LP64_OFF64_LDFLAGS 9 +#define _CS_POSIX_V6_LP64_OFF64_LIBS 10 +#define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS 11 +#define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS 12 +#define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS 13 +#define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS 14 +#define _CS_XBS5_ILP32_OFF32_CFLAGS 20 +#define _CS_XBS5_ILP32_OFF32_LDFLAGS 21 +#define _CS_XBS5_ILP32_OFF32_LIBS 22 +#define _CS_XBS5_ILP32_OFF32_LINTFLAGS 23 +#define _CS_XBS5_ILP32_OFFBIG_CFLAGS 24 +#define _CS_XBS5_ILP32_OFFBIG_LDFLAGS 25 +#define _CS_XBS5_ILP32_OFFBIG_LIBS 26 +#define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS 27 +#define _CS_XBS5_LP64_OFF64_CFLAGS 28 +#define _CS_XBS5_LP64_OFF64_LDFLAGS 29 +#define _CS_XBS5_LP64_OFF64_LIBS 30 +#define _CS_XBS5_LP64_OFF64_LINTFLAGS 31 +#define _CS_XBS5_LPBIG_OFFBIG_CFLAGS 32 +#define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS 33 +#define _CS_XBS5_LPBIG_OFFBIG_LIBS 34 +#define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS 35 +#define _CS_DARWIN_USER_DIR 65536 +#define _CS_DARWIN_USER_TEMP_DIR 65537 +#define _CS_DARWIN_USER_CACHE_DIR 65538 +#define F_ULOCK 0 +#define F_LOCK 1 +#define F_TLOCK 2 +#define F_TEST 3 +#define _SYS_SELECT_H_ +#define _SYS__SELECT_H_ +#define _UUID_T +#define __GETHOSTUUID_H +#define SYNC_VOLUME_FULLSYNC 0x01 +#define SYNC_VOLUME_WAIT 0x02 +#define RBIMPL_DLLEXPORT_H +#undef RUBY_EXTERN +#define RUBY_EXTERN extern +#define MJIT_FUNC_EXPORTED RUBY_FUNC_EXPORTED +#define MJIT_SYMBOL_EXPORT_BEGIN RUBY_SYMBOL_EXPORT_BEGIN +#define MJIT_SYMBOL_EXPORT_END RUBY_SYMBOL_EXPORT_END +#define MJIT_STATIC static +#define RBIMPL_SYMBOL_EXPORT_BEGIN() RUBY_SYMBOL_EXPORT_BEGIN +#define RBIMPL_SYMBOL_EXPORT_END() RUBY_SYMBOL_EXPORT_END +#define RBIMPL_XMALLOC_H +#define RBIMPL_ATTR_ALLOC_SIZE_H +#define RBIMPL_HAS_ATTRIBUTE_H +#define RBIMPL_HAVE___HAS_ATTRIBUTE 1 +#define RBIMPL_HAS_ATTRIBUTE(_) __has_attribute(_) +#define RBIMPL_ATTR_ALLOC_SIZE(tuple) __attribute__((__alloc_size__ tuple)) +#define RBIMPL_ATTR_NODISCARD_H +#define RBIMPL_HAS_C_ATTRIBUTE_H +#define RBIMPL_HAS_C_ATTRIBUTE(_) __has_c_attribute(_) +#define RBIMPL_HAS_CPP_ATTRIBUTE_H +#define RBIMPL_HAS_CPP_ATTRIBUTE0(_) 0 +#define RBIMPL_HAS_CPP_ATTRIBUTE(_) 0 +#define RBIMPL_ATTR_NODISCARD() __attribute__((__warn_unused_result__)) +#define RBIMPL_ATTR_NOEXCEPT_H +#define RBIMPL_HAS_FEATURE_H +#define RBIMPL_HAS_FEATURE(_) __has_feature(_) +#define RBIMPL_ATTR_NOEXCEPT(_) +#define RBIMPL_ATTR_RESTRICT_H +#define RBIMPL_ATTR_RESTRICT() __attribute__((__malloc__)) +#define RBIMPL_ATTR_RETURNS_NONNULL_H +#define RBIMPL_ATTR_RETURNS_NONNULL() __attribute__((__returns_nonnull__)) +#define USE_GC_MALLOC_OBJ_INFO_DETAILS 0 +#define xmalloc ruby_xmalloc +#define xmalloc2 ruby_xmalloc2 +#define xcalloc ruby_xcalloc +#define xrealloc ruby_xrealloc +#define xrealloc2 ruby_xrealloc2 +#define xfree ruby_xfree +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_BACKWARD2_ASSUME_H +#define RBIMPL_ASSUME_H +#define RBIMPL_CAST_H +#define RBIMPL_HAS_WARNING_H +#define RBIMPL_HAS_WARNING(_) __has_warning(_) +#define RBIMPL_WARNING_PUSH_H +#define RBIMPL_WARNING_PRAGMA0(x) _Pragma(# x) +#define RBIMPL_WARNING_PRAGMA1(x) RBIMPL_WARNING_PRAGMA0(clang diagnostic x) +#define RBIMPL_WARNING_PRAGMA2(x,y) RBIMPL_WARNING_PRAGMA1(x # y) +#define RBIMPL_WARNING_PUSH() RBIMPL_WARNING_PRAGMA1(push) +#define RBIMPL_WARNING_POP() RBIMPL_WARNING_PRAGMA1(pop) +#define RBIMPL_WARNING_ERROR(flag) RBIMPL_WARNING_PRAGMA2(error, flag) +#define RBIMPL_WARNING_IGNORED(flag) RBIMPL_WARNING_PRAGMA2(ignored, flag) +#define RBIMPL_CAST(expr) (expr) +#define RBIMPL_HAS_BUILTIN_H +#define RBIMPL_HAVE___HAS_BUILTIN 1 +#define RBIMPL_HAS_BUILTIN(_) __has_builtin(_) +#define RBIMPL_UNREACHABLE_RETURN(_) __builtin_unreachable() +#define RBIMPL_UNREACHABLE __builtin_unreachable +#define RBIMPL_ASSUME __builtin_assume +#define ASSUME RBIMPL_ASSUME +#define UNREACHABLE RBIMPL_UNREACHABLE() +#define UNREACHABLE_RETURN RBIMPL_UNREACHABLE_RETURN +#define RB_LIKELY(x) (__builtin_expect(!!(x), 1)) +#define RB_UNLIKELY(x) (__builtin_expect(!!(x), 0)) +#define RUBY_BACKWARD2_ATTRIBUTES_H +#define RBIMPL_ATTR_CONST_H +#define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_H +#define RBIMPL_HAS_DECLSPEC_ATTRIBUTE(_) __has_declspec_attribute(_) +#define RBIMPL_ATTR_CONST() __attribute__((__const__)) +#define RBIMPL_ATTR_CONST_UNLESS_DEBUG() RBIMPL_ATTR_CONST() +#define RBIMPL_ATTR_DEPRECATED_H +#define RBIMPL_HAS_EXTENSION_H +#define RBIMPL_HAS_EXTENSION(_) __has_extension(_) +#define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__ msg)) +#define RBIMPL_ATTR_DEPRECATED_EXT(msg) +#define RBIMPL_ATTR_ERROR_H +#define RBIMPL_ATTR_ERROR(msg) __attribute__((__error__ msg)) +#define RBIMPL_ATTR_FORCEINLINE_H +#define RBIMPL_ATTR_FORCEINLINE() __attribute__((__always_inline__)) inline +#define RBIMPL_ATTR_FORMAT_H +#define RBIMPL_ATTR_FORMAT(x,y,z) __attribute__((__format__(x, y, z))) +#define RBIMPL_PRINTF_FORMAT __printf__ +#define RBIMPL_ATTR_MAYBE_UNUSED_H +#define RBIMPL_ATTR_MAYBE_UNUSED() __attribute__((__unused__)) +#define RBIMPL_ATTR_NOINLINE_H +#define RBIMPL_ATTR_NOINLINE() __declspec(noinline) +#define RBIMPL_ATTR_NONNULL_H +#define RBIMPL_ATTR_NONNULL(list) __attribute__((__nonnull__ list)) +#define RBIMPL_NONNULL_ARG(arg) RBIMPL_ASSERT_NOTHING +#define RBIMPL_ATTR_NORETURN_H +#define RBIMPL_ATTR_NORETURN() __declspec(noreturn) +#define RBIMPL_ATTR_PURE_H +#define RUBY_ASSERT_H +#define RBIMPL_RUBY_DEBUG 0 +#define RBIMPL_NDEBUG 0 +#undef RUBY_DEBUG +#undef RUBY_NDEBUG +#undef NDEBUG +#define RUBY_DEBUG 0 +#define RUBY_NDEBUG 1 +#define NDEBUG +#undef RBIMPL_NDEBUG +#undef RBIMPL_RUBY_DEBUG +#define RBIMPL_ASSERT_NOTHING RBIMPL_CAST((void)0) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_ASSERT_FUNC RUBY_FUNCTION_NAME_STRING +#define RUBY_ASSERT_FAIL(mesg) rb_assert_failure(__FILE__, __LINE__, RBIMPL_ASSERT_FUNC, mesg) +#define RUBY_ASSERT_MESG(expr,mesg) (RB_LIKELY(expr) ? RBIMPL_ASSERT_NOTHING : RUBY_ASSERT_FAIL(mesg)) +#define RUBY_ASSERT_ALWAYS(expr) RUBY_ASSERT_MESG((expr), #expr) +#define RUBY_ASSERT(expr) RBIMPL_ASSERT_NOTHING +#define RUBY_ASSERT_NDEBUG(expr) RBIMPL_ASSERT_NOTHING +#define RUBY_ASSERT_MESG_WHEN(cond,expr,mesg) ((cond) ? RUBY_ASSERT_MESG((expr), (mesg)) : RBIMPL_ASSERT_NOTHING) +#define RUBY_ASSERT_WHEN(cond,expr) RUBY_ASSERT_MESG_WHEN((cond), (expr), #expr) +#define RBIMPL_ASSERT_OR_ASSUME(expr) RBIMPL_ASSERT_NOTHING +#define RBIMPL_ATTR_PURE() __attribute__((__pure__)) +#define RBIMPL_ATTR_PURE_UNLESS_DEBUG() RBIMPL_ATTR_PURE() +#define RBIMPL_ATTR_WARNING_H +#define RBIMPL_ATTR_WARNING(msg) __attribute__((__warning__ msg)) +#undef CONSTFUNC +#define CONSTFUNC(x) RBIMPL_ATTR_CONST() x +#undef PUREFUNC +#define PUREFUNC(x) RBIMPL_ATTR_PURE() x +#undef DEPRECATED +#define DEPRECATED(x) RBIMPL_ATTR_DEPRECATED(("")) x +#undef DEPRECATED_BY +#define DEPRECATED_BY(n,x) RBIMPL_ATTR_DEPRECATED(("by: " # n)) x +#undef DEPRECATED_TYPE +#define DEPRECATED_TYPE(mesg,decl) _Pragma("message \"DEPRECATED_TYPE is deprecated\""); decl RBIMPL_ATTR_DEPRECATED(mseg) +#undef RUBY_CXX_DEPRECATED +#define RUBY_CXX_DEPRECATED(mseg) RBIMPL_ATTR_DEPRECATED((mseg)) +#undef NOINLINE +#define NOINLINE(x) RBIMPL_ATTR_NOINLINE() x +#undef ERRORFUNC +#define ERRORFUNC(mesg,x) RBIMPL_ATTR_ERROR(mesg) x +#define HAVE_ATTRIBUTE_ERRORFUNC 1 +#undef WARNINGFUNC +#define WARNINGFUNC(mesg,x) RBIMPL_ATTR_WARNING(mesg) x +#define HAVE_ATTRIBUTE_WARNINGFUNC 1 +#undef COLDFUNC +#define PRINTF_ARGS(decl,string_index,first_to_check) RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, (string_index), (first_to_check)) decl +#undef RUBY_ATTR_ALLOC_SIZE +#define RUBY_ATTR_ALLOC_SIZE RBIMPL_ATTR_ALLOC_SIZE +#undef RUBY_ATTR_MALLOC +#define RUBY_ATTR_MALLOC RBIMPL_ATTR_RESTRICT() +#undef RUBY_ATTR_RETURNS_NONNULL +#define RUBY_ATTR_RETURNS_NONNULL RBIMPL_ATTR_RETURNS_NONNULL() +#define FUNC_MINIMIZED(x) x +#define FUNC_UNOPTIMIZED(x) x +#define RUBY_ALIAS_FUNCTION_TYPE(type,prot,name,args) FUNC_MINIMIZED(type prot) {return (type)name args;} +#define RUBY_ALIAS_FUNCTION_VOID(prot,name,args) FUNC_MINIMIZED(void prot) {name args;} +#define RUBY_ALIAS_FUNCTION(prot,name,args) RUBY_ALIAS_FUNCTION_TYPE(VALUE, prot, name, args) +#undef RUBY_FUNC_NONNULL +#define RUBY_FUNC_NONNULL(n,x) RBIMPL_ATTR_NONNULL(n) x +#undef NORETURN +#define NORETURN(x) RBIMPL_ATTR_NORETURN() x +#define NORETURN_STYLE_NEW +#define PACKED_STRUCT_UNALIGNED(x) PACKED_STRUCT(x) +#undef RB_UNUSED_VAR +#define RB_UNUSED_VAR(x) x RBIMPL_ATTR_MAYBE_UNUSED() +#define RUBY_BACKWARD2_BOOL_H +#define RBIMPL_STDBOOL_H +#define __STDBOOL_H +#define __bool_true_false_are_defined 1 +#define bool _Bool +#define true 1 +#define false 0 +#define FALSE false +#define TRUE true +#define RUBY_BACKWARD2_LONG_LONG_H +#define HAVE_TRUE_LONG_LONG 1 +#define LONG_LONG RBIMPL_WARNING_PUSH() RBIMPL_WARNING_IGNORED(-Wc++11-long-long) long long RBIMPL_WARNING_POP() +#define RUBY_BACKWARD2_STDALIGN_H +#define RBIMPL_STDALIGN_H +#define RBIMPL_ALIGNAS(_) __declspec(align(_)) +#define RBIMPL_ALIGNOF(T) RB_GNUC_EXTENSION(_Alignof(T)) +#undef RUBY_ALIGNAS +#undef RUBY_ALIGNOF +#define RUBY_ALIGNAS RBIMPL_ALIGNAS +#define RUBY_ALIGNOF RBIMPL_ALIGNOF +#define RUBY_BACKWARD2_STDARG_H +#undef _ +#define _(args) args +#undef __ +#define __(args) args +#define ANYARGS +#define RBIMPL_DOSISH_H +#define PATH_SEP ":" +#define PATH_SEP_CHAR PATH_SEP[0] +#define PATH_ENV "PATH" +#define CASEFOLD_FILESYSTEM 0 +#define RUBY_MISSING_H 1 +#define __MATH_H__ +#define __MATH__ +#define HUGE_VAL __builtin_huge_val() +#define HUGE_VALF __builtin_huge_valf() +#define HUGE_VALL __builtin_huge_vall() +#define NAN __builtin_nanf("0x7fc00000") +#define INFINITY HUGE_VALF +#define FP_NAN 1 +#define FP_INFINITE 2 +#define FP_ZERO 3 +#define FP_NORMAL 4 +#define FP_SUBNORMAL 5 +#define FP_SUPERNORMAL 6 +#define FP_FAST_FMA 1 +#define FP_FAST_FMAF 1 +#define FP_FAST_FMAL 1 +#define FP_ILOGB0 (-2147483647 - 1) +#define FP_ILOGBNAN (-2147483647 - 1) +#define MATH_ERRNO 1 +#define MATH_ERREXCEPT 2 +#define math_errhandling (__math_errhandling()) +#define fpclassify(x) ( sizeof(x) == sizeof(float) ? __fpclassifyf((float)(x)) : sizeof(x) == sizeof(double) ? __fpclassifyd((double)(x)) : __fpclassifyl((long double)(x))) +#define isnormal(x) ( sizeof(x) == sizeof(float) ? __inline_isnormalf((float)(x)) : sizeof(x) == sizeof(double) ? __inline_isnormald((double)(x)) : __inline_isnormall((long double)(x))) +#define isfinite(x) ( sizeof(x) == sizeof(float) ? __inline_isfinitef((float)(x)) : sizeof(x) == sizeof(double) ? __inline_isfinited((double)(x)) : __inline_isfinitel((long double)(x))) +#define isinf(x) ( sizeof(x) == sizeof(float) ? __inline_isinff((float)(x)) : sizeof(x) == sizeof(double) ? __inline_isinfd((double)(x)) : __inline_isinfl((long double)(x))) +#define isnan(x) ( sizeof(x) == sizeof(float) ? __inline_isnanf((float)(x)) : sizeof(x) == sizeof(double) ? __inline_isnand((double)(x)) : __inline_isnanl((long double)(x))) +#define signbit(x) ( sizeof(x) == sizeof(float) ? __inline_signbitf((float)(x)) : sizeof(x) == sizeof(double) ? __inline_signbitd((double)(x)) : __inline_signbitl((long double)(x))) +#define isgreater(x,y) __builtin_isgreater((x),(y)) +#define isgreaterequal(x,y) __builtin_isgreaterequal((x),(y)) +#define isless(x,y) __builtin_isless((x),(y)) +#define islessequal(x,y) __builtin_islessequal((x),(y)) +#define islessgreater(x,y) __builtin_islessgreater((x),(y)) +#define isunordered(x,y) __builtin_isunordered((x),(y)) +#define M_E 2.71828182845904523536028747135266250 +#define M_LOG2E 1.44269504088896340735992468100189214 +#define M_LOG10E 0.434294481903251827651128918916605082 +#define M_LN2 0.693147180559945309417232121458176568 +#define M_LN10 2.30258509299404568401799145468436421 +#define M_PI 3.14159265358979323846264338327950288 +#define M_PI_2 1.57079632679489661923132169163975144 +#define M_PI_4 0.785398163397448309615660845819875721 +#define M_1_PI 0.318309886183790671537767526745028724 +#define M_2_PI 0.636619772367581343075535053490057448 +#define M_2_SQRTPI 1.12837916709551257389615890312154517 +#define M_SQRT2 1.41421356237309504880168872420969808 +#define M_SQRT1_2 0.707106781186547524400844362104849039 +#define MAXFLOAT 0x1.fffffep+127f +#define FP_SNAN FP_NAN +#define FP_QNAN FP_NAN +#define HUGE MAXFLOAT +#define X_TLOSS 1.41484755040568800000e+16 +#define DOMAIN 1 +#define SING 2 +#define OVERFLOW 3 +#define UNDERFLOW 4 +#define TLOSS 5 +#define PLOSS 6 +#define _TIME_H_ +#define CLOCKS_PER_SEC ((clock_t)1000000) +#define __CLOCK_AVAILABILITY __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0) +#define CLOCK_REALTIME _CLOCK_REALTIME +#define CLOCK_MONOTONIC _CLOCK_MONOTONIC +#define CLOCK_MONOTONIC_RAW _CLOCK_MONOTONIC_RAW +#define CLOCK_MONOTONIC_RAW_APPROX _CLOCK_MONOTONIC_RAW_APPROX +#define CLOCK_UPTIME_RAW _CLOCK_UPTIME_RAW +#define CLOCK_UPTIME_RAW_APPROX _CLOCK_UPTIME_RAW_APPROX +#define CLOCK_PROCESS_CPUTIME_ID _CLOCK_PROCESS_CPUTIME_ID +#define CLOCK_THREAD_CPUTIME_ID _CLOCK_THREAD_CPUTIME_ID +#undef __CLOCK_AVAILABILITY +#define TIME_UTC 1 +#define _SYS_TIME_H_ +#define _STRUCT_TIMEVAL64 +#define ITIMER_REAL 0 +#define ITIMER_VIRTUAL 1 +#define ITIMER_PROF 2 +#define TIMEVAL_TO_TIMESPEC(tv,ts) { (ts)->tv_sec = (tv)->tv_sec; (ts)->tv_nsec = (tv)->tv_usec * 1000; } +#define TIMESPEC_TO_TIMEVAL(tv,ts) { (tv)->tv_sec = (ts)->tv_sec; (tv)->tv_usec = (__darwin_suseconds_t)((ts)->tv_nsec / 1000); } +#define DST_NONE 0 +#define DST_USA 1 +#define DST_AUST 2 +#define DST_WET 3 +#define DST_MET 4 +#define DST_EET 5 +#define DST_CAN 6 +#define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0 +#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) +#define timercmp(tvp,uvp,cmp) (((tvp)->tv_sec == (uvp)->tv_sec) ? ((tvp)->tv_usec cmp (uvp)->tv_usec) : ((tvp)->tv_sec cmp (uvp)->tv_sec)) +#define timeradd(tvp,uvp,vvp) do { (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; if ((vvp)->tv_usec >= 1000000) { (vvp)->tv_sec++; (vvp)->tv_usec -= 1000000; } } while (0) +#define timersub(tvp,uvp,vvp) do { (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; if ((vvp)->tv_usec < 0) { (vvp)->tv_sec--; (vvp)->tv_usec += 1000000; } } while (0) +#define timevalcmp(l,r,cmp) timercmp(l, r, cmp) +#pragma GCC visibility push(default) +#define HAVE_FINITE 1 +#define finite(x) isfinite(x) +#pragma GCC visibility pop +#define RUBY +#define RB_GNUC_EXTENSION __extension__ +#define RB_GNUC_EXTENSION_BLOCK(x) __extension__ ({ x; }) +#define RUBY_MBCHAR_MAXSIZE INT_MAX +#define FLUSH_REGISTER_WINDOWS ((void)0) +#define RUBY_ABI_H +#define RBIMPL_ANYARGS_H +#define RBIMPL_ATTR_WEAKREF_H +#define RBIMPL_ATTR_WEAKREF(sym) __attribute__((__weakref__(# sym))) +#define RBIMPL_INTERN_CLASS_H +#define RBIMPL_VALUE_H +#define RBIMPL_STATIC_ASSERT_H +#undef assert +#undef __assert +#define assert(e) ((void)0) +#define _ASSERT_H_ +#define static_assert _Static_assert +#define RBIMPL_STATIC_ASSERT0 __extension__ _Static_assert +#define RBIMPL_STATIC_ASSERT(name,expr) RBIMPL_STATIC_ASSERT0(expr, # name ": " # expr) +#define RUBY_BACKWARD2_LIMITS_H +#define __CLANG_LIMITS_H +#define _GCC_LIMITS_H_ +#define _LIMITS_H_ +#define _BSD_MACHINE_LIMITS_H_ +#define _ARM_LIMITS_H_ +#define _ARM__LIMITS_H_ +#define __DARWIN_CLK_TCK 100 +#undef MB_LEN_MAX +#define MB_LEN_MAX 6 +#define CLK_TCK __DARWIN_CLK_TCK +#define CHAR_BIT 8 +#define SCHAR_MAX 127 +#define SCHAR_MIN (-128) +#define UCHAR_MAX 255 +#define CHAR_MAX 127 +#define CHAR_MIN (-128) +#define USHRT_MAX 65535 +#define SHRT_MAX 32767 +#define SHRT_MIN (-32768) +#define UINT_MAX 0xffffffff +#define INT_MAX 2147483647 +#define INT_MIN (-2147483647-1) +#define ULONG_MAX 0xffffffffffffffffUL +#define LONG_MAX 0x7fffffffffffffffL +#define LONG_MIN (-0x7fffffffffffffffL-1) +#define ULLONG_MAX 0xffffffffffffffffULL +#define LLONG_MAX 0x7fffffffffffffffLL +#define LLONG_MIN (-0x7fffffffffffffffLL-1) +#define LONG_BIT 64 +#define SSIZE_MAX LONG_MAX +#define WORD_BIT 32 +#define SIZE_T_MAX ULONG_MAX +#define UQUAD_MAX ULLONG_MAX +#define QUAD_MAX LLONG_MAX +#define QUAD_MIN LLONG_MIN +#define _SYS_SYSLIMITS_H_ +#define ARG_MAX (1024 * 1024) +#define CHILD_MAX 266 +#define GID_MAX 2147483647U +#define LINK_MAX 32767 +#define MAX_CANON 1024 +#define MAX_INPUT 1024 +#define NAME_MAX 255 +#define NGROUPS_MAX 16 +#define UID_MAX 2147483647U +#define OPEN_MAX 10240 +#define PATH_MAX 1024 +#define PIPE_BUF 512 +#define BC_BASE_MAX 99 +#define BC_DIM_MAX 2048 +#define BC_SCALE_MAX 99 +#define BC_STRING_MAX 1000 +#define CHARCLASS_NAME_MAX 14 +#define COLL_WEIGHTS_MAX 2 +#define EQUIV_CLASS_MAX 2 +#define EXPR_NEST_MAX 32 +#define LINE_MAX 2048 +#define RE_DUP_MAX 255 +#define NZERO 20 +#define _POSIX_ARG_MAX 4096 +#define _POSIX_CHILD_MAX 25 +#define _POSIX_LINK_MAX 8 +#define _POSIX_MAX_CANON 255 +#define _POSIX_MAX_INPUT 255 +#define _POSIX_NAME_MAX 14 +#define _POSIX_NGROUPS_MAX 8 +#define _POSIX_OPEN_MAX 20 +#define _POSIX_PATH_MAX 256 +#define _POSIX_PIPE_BUF 512 +#define _POSIX_SSIZE_MAX 32767 +#define _POSIX_STREAM_MAX 8 +#define _POSIX_TZNAME_MAX 6 +#define _POSIX2_BC_BASE_MAX 99 +#define _POSIX2_BC_DIM_MAX 2048 +#define _POSIX2_BC_SCALE_MAX 99 +#define _POSIX2_BC_STRING_MAX 1000 +#define _POSIX2_EQUIV_CLASS_MAX 2 +#define _POSIX2_EXPR_NEST_MAX 32 +#define _POSIX2_LINE_MAX 2048 +#define _POSIX2_RE_DUP_MAX 255 +#define _POSIX_AIO_LISTIO_MAX 2 +#define _POSIX_AIO_MAX 1 +#define _POSIX_DELAYTIMER_MAX 32 +#define _POSIX_MQ_OPEN_MAX 8 +#define _POSIX_MQ_PRIO_MAX 32 +#define _POSIX_RTSIG_MAX 8 +#define _POSIX_SEM_NSEMS_MAX 256 +#define _POSIX_SEM_VALUE_MAX 32767 +#define _POSIX_SIGQUEUE_MAX 32 +#define _POSIX_TIMER_MAX 32 +#define _POSIX_CLOCKRES_MIN 20000000 +#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 +#define _POSIX_THREAD_KEYS_MAX 128 +#define _POSIX_THREAD_THREADS_MAX 64 +#define PTHREAD_DESTRUCTOR_ITERATIONS 4 +#define PTHREAD_KEYS_MAX 512 +#define PTHREAD_STACK_MIN 16384 +#define _POSIX_HOST_NAME_MAX 255 +#define _POSIX_LOGIN_NAME_MAX 9 +#define _POSIX_SS_REPL_MAX 4 +#define _POSIX_SYMLINK_MAX 255 +#define _POSIX_SYMLOOP_MAX 8 +#define _POSIX_TRACE_EVENT_NAME_MAX 30 +#define _POSIX_TRACE_NAME_MAX 8 +#define _POSIX_TRACE_SYS_MAX 8 +#define _POSIX_TRACE_USER_EVENT_MAX 32 +#define _POSIX_TTY_NAME_MAX 9 +#define _POSIX2_CHARCLASS_NAME_MAX 14 +#define _POSIX2_COLL_WEIGHTS_MAX 2 +#define _POSIX_RE_DUP_MAX _POSIX2_RE_DUP_MAX +#define OFF_MIN LLONG_MIN +#define OFF_MAX LLONG_MAX +#define PASS_MAX 128 +#define NL_ARGMAX 9 +#define NL_LANGMAX 14 +#define NL_MSGMAX 32767 +#define NL_NMAX 1 +#define NL_SETMAX 255 +#define NL_TEXTMAX 2048 +#define _XOPEN_IOV_MAX 16 +#define IOV_MAX 1024 +#define _XOPEN_NAME_MAX 255 +#define _XOPEN_PATH_MAX 1024 +#undef SCHAR_MIN +#undef SCHAR_MAX +#undef UCHAR_MAX +#undef SHRT_MIN +#undef SHRT_MAX +#undef USHRT_MAX +#undef INT_MIN +#undef INT_MAX +#undef UINT_MAX +#undef LONG_MIN +#undef LONG_MAX +#undef ULONG_MAX +#undef CHAR_BIT +#undef CHAR_MIN +#undef CHAR_MAX +#define SCHAR_MAX __SCHAR_MAX__ +#define SHRT_MAX __SHRT_MAX__ +#define INT_MAX __INT_MAX__ +#define LONG_MAX __LONG_MAX__ +#define SCHAR_MIN (-__SCHAR_MAX__-1) +#define SHRT_MIN (-__SHRT_MAX__ -1) +#define INT_MIN (-__INT_MAX__ -1) +#define LONG_MIN (-__LONG_MAX__ -1L) +#define UCHAR_MAX (__SCHAR_MAX__*2 +1) +#define USHRT_MAX (__SHRT_MAX__ *2 +1) +#define UINT_MAX (__INT_MAX__ *2U +1U) +#define ULONG_MAX (__LONG_MAX__ *2UL+1UL) +#define CHAR_BIT __CHAR_BIT__ +#define CHAR_MIN SCHAR_MIN +#define CHAR_MAX __SCHAR_MAX__ +#undef LLONG_MIN +#undef LLONG_MAX +#undef ULLONG_MAX +#define LLONG_MAX __LONG_LONG_MAX__ +#define LLONG_MIN (-__LONG_LONG_MAX__-1LL) +#define ULLONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL) +#undef LONG_LONG_MIN +#undef LONG_LONG_MAX +#undef ULONG_LONG_MAX +#define LONG_LONG_MAX __LONG_LONG_MAX__ +#define LONG_LONG_MIN (-__LONG_LONG_MAX__-1LL) +#define ULONG_LONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL) +#define SIGNED_VALUE long +#define SIZEOF_VALUE SIZEOF_LONG +#define PRI_VALUE_PREFIX "l" +#define RBIMPL_VALUE_NULL 0UL +#define RBIMPL_VALUE_ONE 1UL +#define RBIMPL_VALUE_FULL ULONG_MAX +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_VM_H +#pragma GCC visibility push(default) +#define HAVE_RB_DEFINE_ALLOC_FUNC 1 +#pragma GCC visibility pop +#define RBIMPL_METHOD_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_CFUNC_IS_rb_f_notimplement(f) __builtin_types_compatible_p( __typeof__(f), __typeof__(rb_f_notimplement)) +#define RBIMPL_ANYARGS_DISPATCH(expr,truthy,falsy) __builtin_choose_expr( __builtin_choose_expr( __builtin_constant_p(expr), (expr), 0), (truthy), (falsy)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_singleton_method_m2, rb_define_singleton_method_m3) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_singleton_method_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m2(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_singleton_method_00, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m1(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_singleton_method_01, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_00(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_singleton_method_02, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_01(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_singleton_method_03, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_02(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_singleton_method_04, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_03(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_singleton_method_05, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_04(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_singleton_method_06, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_05(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_singleton_method_07, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_06(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_singleton_method_08, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_07(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_singleton_method_09, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_08(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_singleton_method_10, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_09(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_singleton_method_11, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_10(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_singleton_method_12, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_11(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_singleton_method_13, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_12(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_singleton_method_14, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_13(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_singleton_method_15, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_14(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_protected_method_m2, rb_define_protected_method_m3) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_protected_method_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m2(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_protected_method_00, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m1(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_protected_method_01, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_00(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_protected_method_02, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_01(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_protected_method_03, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_02(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_protected_method_04, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_03(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_protected_method_05, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_04(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_protected_method_06, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_05(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_protected_method_07, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_06(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_protected_method_08, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_07(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_protected_method_09, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_08(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_protected_method_10, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_09(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_protected_method_11, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_10(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_protected_method_12, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_11(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_protected_method_13, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_12(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_protected_method_14, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_13(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_protected_method_15, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_14(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_private_method_m2, rb_define_private_method_m3) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_private_method_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m2(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_private_method_00, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m1(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_private_method_01, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_00(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_private_method_02, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_01(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_private_method_03, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_02(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_private_method_04, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_03(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_private_method_05, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_04(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_private_method_06, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_05(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_private_method_07, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_06(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_private_method_08, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_07(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_private_method_09, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_08(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_private_method_10, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_09(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_private_method_11, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_10(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_private_method_12, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_11(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_private_method_13, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_12(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_private_method_14, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_13(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_private_method_15, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_14(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_module_function_m2, rb_define_module_function_m3) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_module_function_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m2(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_module_function_00, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m1(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_module_function_01, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_00(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_module_function_02, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_01(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_module_function_03, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_02(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_module_function_04, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_03(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_module_function_05, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_04(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_module_function_06, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_05(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_module_function_07, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_06(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_module_function_08, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_07(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_module_function_09, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_08(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_module_function_10, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_09(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_module_function_11, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_10(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_module_function_12, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_11(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_module_function_13, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_12(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_module_function_14, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_13(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_module_function_15, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_14(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_global_function_m2, rb_define_global_function_m3) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_global_function_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m2(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_global_function_00, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m1(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_global_function_01, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_00(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_global_function_02, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_01(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_global_function_03, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_02(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_global_function_04, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_03(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_global_function_05, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_04(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_global_function_06, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_05(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_global_function_07, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_06(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_global_function_08, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_07(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_global_function_09, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_08(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_global_function_10, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_09(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_global_function_11, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_10(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_global_function_12, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_11(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_global_function_13, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_12(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_global_function_14, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_13(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_global_function_15, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_14(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_method_id_m2, rb_define_method_id_m3) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_method_id_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m2(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_method_id_00, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m1(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_method_id_01, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_00(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_method_id_02, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_01(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_method_id_03, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_02(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_method_id_04, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_03(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_method_id_05, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_04(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_method_id_06, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_05(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_method_id_07, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_06(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_method_id_08, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_07(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_method_id_09, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_08(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_method_id_10, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_09(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_method_id_11, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_10(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_method_id_12, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_11(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_method_id_13, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_12(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_method_id_14, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_13(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_method_id_15, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_14(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_method_m2, rb_define_method_m3) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_method_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_method_m2(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_method_00, RBIMPL_ANYARGS_DISPATCH_rb_define_method_m1(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_method_01, RBIMPL_ANYARGS_DISPATCH_rb_define_method_00(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_method_02, RBIMPL_ANYARGS_DISPATCH_rb_define_method_01(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_method_03, RBIMPL_ANYARGS_DISPATCH_rb_define_method_02(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_method_04, RBIMPL_ANYARGS_DISPATCH_rb_define_method_03(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_method_05, RBIMPL_ANYARGS_DISPATCH_rb_define_method_04(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_method_06, RBIMPL_ANYARGS_DISPATCH_rb_define_method_05(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_method_07, RBIMPL_ANYARGS_DISPATCH_rb_define_method_06(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_method_08, RBIMPL_ANYARGS_DISPATCH_rb_define_method_07(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_method_09, RBIMPL_ANYARGS_DISPATCH_rb_define_method_08(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_method_10, RBIMPL_ANYARGS_DISPATCH_rb_define_method_09(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_method_11, RBIMPL_ANYARGS_DISPATCH_rb_define_method_10(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_method_12, RBIMPL_ANYARGS_DISPATCH_rb_define_method_11(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_method_13, RBIMPL_ANYARGS_DISPATCH_rb_define_method_12(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_method_14, RBIMPL_ANYARGS_DISPATCH_rb_define_method_13(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_method_15, RBIMPL_ANYARGS_DISPATCH_rb_define_method_14(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method(n,f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_singleton_method_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_15(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method(n,f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_protected_method_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_15(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method(n,f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_private_method_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_15(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function(n,f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_module_function_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_15(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function(n,f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_global_function_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_15(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id(n,f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_method_id_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_15(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method(n,f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_method_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_method_15(n)) +#define RBIMPL_ANYARGS_ATTRSET(sym) RBIMPL_ATTR_MAYBE_UNUSED() RBIMPL_ATTR_NONNULL(()) RBIMPL_ATTR_WEAKREF(sym) +#define RBIMPL_ANYARGS_DECL(sym,...) RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _notimpl(__VA_ARGS__, VALUE(*)(int, const VALUE *, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _m3(__VA_ARGS__, VALUE(*)(ANYARGS), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _m2(__VA_ARGS__, VALUE(*)(VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _m1(__VA_ARGS__, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _00(__VA_ARGS__, VALUE(*)(VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _01(__VA_ARGS__, VALUE(*)(VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _02(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _03(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _04(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _05(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _06(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _07(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _08(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _09(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _10(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _11(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _12(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _13(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _14(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _15(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); +#define rb_define_method(klass,mid,func,arity) RBIMPL_ANYARGS_DISPATCH_rb_define_method((arity), (func))((klass), (mid), (func), (arity)) +#define rb_define_method_id(klass,mid,func,arity) RBIMPL_ANYARGS_DISPATCH_rb_define_method_id((arity), (func))((klass), (mid), (func), (arity)) +#define rb_define_singleton_method(obj,mid,func,arity) RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method((arity), (func))((obj), (mid), (func), (arity)) +#define rb_define_protected_method(klass,mid,func,arity) RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method((arity), (func))((klass), (mid), (func), (arity)) +#define rb_define_private_method(klass,mid,func,arity) RBIMPL_ANYARGS_DISPATCH_rb_define_private_method((arity), (func))((klass), (mid), (func), (arity)) +#define rb_define_module_function(mod,mid,func,arity) RBIMPL_ANYARGS_DISPATCH_rb_define_module_function((arity), (func))((mod), (mid), (func), (arity)) +#define rb_define_global_function(mid,func,arity) RBIMPL_ANYARGS_DISPATCH_rb_define_global_function((arity), (func))((mid), (func), (arity)) +#define RUBY_METHOD_FUNC(func) RBIMPL_CAST((VALUE (*)(ANYARGS))(func)) +#define RBIMPL_ARITHMETIC_H +#define RBIMPL_ARITHMETIC_CHAR_H +#define RBIMPL_ARITHMETIC_INT_H +#define RBIMPL_ARITHMETIC_FIXNUM_H +#define FIXABLE RB_FIXABLE +#define FIXNUM_MAX RUBY_FIXNUM_MAX +#define FIXNUM_MIN RUBY_FIXNUM_MIN +#define NEGFIXABLE RB_NEGFIXABLE +#define POSFIXABLE RB_POSFIXABLE +#define RB_POSFIXABLE(_) ((_) < RUBY_FIXNUM_MAX + 1) +#define RB_NEGFIXABLE(_) ((_) >= RUBY_FIXNUM_MIN) +#define RB_FIXABLE(_) (RB_POSFIXABLE(_) && RB_NEGFIXABLE(_)) +#define RUBY_FIXNUM_MAX (LONG_MAX / 2) +#define RUBY_FIXNUM_MIN (LONG_MIN / 2) +#define RBIMPL_ARITHMETIC_INTPTR_T_H +#define rb_int_new rb_int2inum +#define rb_uint_new rb_uint2inum +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_ARITHMETIC_LONG_H +#define RBIMPL_ATTR_ARTIFICIAL_H +#define RBIMPL_ATTR_ARTIFICIAL() __attribute__((__artificial__)) +#define RBIMPL_ATTR_CONSTEXPR_H +#define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 0 +#define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 0 +#define RBIMPL_ATTR_CONSTEXPR(_) +#define RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(_) RBIMPL_ATTR_CONSTEXPR(_) +#define RBIMPL_SPECIAL_CONSTS_H +#define RBIMPL_ATTR_ENUM_EXTENSIBILITY_H +#define RBIMPL_ATTR_ENUM_EXTENSIBILITY(_) __attribute__((__enum_extensibility__(_))) +#define USE_FLONUM 1 +#define RTEST RB_TEST +#define FIXNUM_P RB_FIXNUM_P +#define IMMEDIATE_P RB_IMMEDIATE_P +#define NIL_P RB_NIL_P +#define SPECIAL_CONST_P RB_SPECIAL_CONST_P +#define STATIC_SYM_P RB_STATIC_SYM_P +#define Qfalse RUBY_Qfalse +#define Qnil RUBY_Qnil +#define Qtrue RUBY_Qtrue +#define Qundef RUBY_Qundef +#define FIXNUM_FLAG RUBY_FIXNUM_FLAG +#define FLONUM_FLAG RUBY_FLONUM_FLAG +#define FLONUM_MASK RUBY_FLONUM_MASK +#define FLONUM_P RB_FLONUM_P +#define IMMEDIATE_MASK RUBY_IMMEDIATE_MASK +#define SYMBOL_FLAG RUBY_SYMBOL_FLAG +#define RB_FIXNUM_P RB_FIXNUM_P +#define RB_FLONUM_P RB_FLONUM_P +#define RB_IMMEDIATE_P RB_IMMEDIATE_P +#define RB_NIL_P RB_NIL_P +#define RB_SPECIAL_CONST_P RB_SPECIAL_CONST_P +#define RB_STATIC_SYM_P RB_STATIC_SYM_P +#define RB_TEST RB_TEST +#define RB_UNDEF_P RB_UNDEF_P +#define RB_NIL_OR_UNDEF_P RB_NIL_OR_UNDEF_P +#define RUBY_Qfalse RBIMPL_CAST((VALUE)RUBY_Qfalse) +#define RUBY_Qtrue RBIMPL_CAST((VALUE)RUBY_Qtrue) +#define RUBY_Qnil RBIMPL_CAST((VALUE)RUBY_Qnil) +#define RUBY_Qundef RBIMPL_CAST((VALUE)RUBY_Qundef) +#define FIX2LONG RB_FIX2LONG +#define FIX2ULONG RB_FIX2ULONG +#define INT2FIX RB_INT2FIX +#define LONG2FIX RB_INT2FIX +#define LONG2NUM RB_LONG2NUM +#define NUM2LONG RB_NUM2LONG +#define NUM2ULONG RB_NUM2ULONG +#define RB_FIX2LONG rb_fix2long +#define RB_FIX2ULONG rb_fix2ulong +#define RB_LONG2FIX RB_INT2FIX +#define RB_LONG2NUM rb_long2num_inline +#define RB_NUM2LONG rb_num2long_inline +#define RB_NUM2ULONG rb_num2ulong_inline +#define RB_ULONG2NUM rb_ulong2num_inline +#define ULONG2NUM RB_ULONG2NUM +#define rb_fix_new RB_INT2FIX +#define rb_long2int rb_long2int_inline +#define RB_INT2FIX RB_INT2FIX +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#undef INT2FIX +#define INT2FIX(i) __builtin_choose_expr( __builtin_constant_p(i), RBIMPL_CAST((VALUE)(i)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(i)) +#define RB_INT2NUM rb_int2num_inline +#define RB_NUM2INT rb_num2int_inline +#define RB_UINT2NUM rb_uint2num_inline +#define FIX2INT RB_FIX2INT +#define FIX2UINT RB_FIX2UINT +#define INT2NUM RB_INT2NUM +#define NUM2INT RB_NUM2INT +#define NUM2UINT RB_NUM2UINT +#define UINT2NUM RB_UINT2NUM +#define RB_FIX2INT RB_FIX2INT +#define RB_NUM2UINT RB_NUM2UINT +#define RB_FIX2UINT RB_FIX2UINT +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wtautological-constant-out-of-range-compare" +#pragma clang diagnostic pop +#define RBIMPL_RSTRING_H +#define RBIMPL_RBASIC_H +#define RBIMPL_ATTR_NOALIAS_H +#define RBIMPL_ATTR_NOALIAS() __declspec(noalias) +#define RBASIC(obj) RBIMPL_CAST((struct RBasic *)(obj)) +#define RBASIC_CLASS RBASIC_CLASS +#define RBIMPL_RVALUE_EMBED_LEN_MAX 3 +#define RVALUE_EMBED_LEN_MAX RVALUE_EMBED_LEN_MAX +#define RBIMPL_EMBED_LEN_MAX_OF(T) RBIMPL_CAST((int)(sizeof(VALUE[RBIMPL_RVALUE_EMBED_LEN_MAX]) / (sizeof(T)))) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_FL_TYPE_H +#define RBIMPL_ATTR_FLAG_ENUM_H +#define RBIMPL_ATTR_FLAG_ENUM() __attribute__((__flag_enum__)) +#define RBIMPL_VALUE_TYPE_H +#define RBIMPL_CONSTANT_P_H +#define RBIMPL_CONSTANT_P(expr) __builtin_constant_p(expr) +#define RBIMPL_ERROR_H +#define RB_IO_WAIT_READABLE RB_IO_WAIT_READABLE +#define RB_IO_WAIT_WRITABLE RB_IO_WAIT_WRITABLE +#pragma GCC visibility push(default) +#define ruby_verbose (*rb_ruby_verbose_ptr()) +#define ruby_debug (*rb_ruby_debug_ptr()) +#pragma GCC visibility pop +#define T_ARRAY RUBY_T_ARRAY +#define T_BIGNUM RUBY_T_BIGNUM +#define T_CLASS RUBY_T_CLASS +#define T_COMPLEX RUBY_T_COMPLEX +#define T_DATA RUBY_T_DATA +#define T_FALSE RUBY_T_FALSE +#define T_FILE RUBY_T_FILE +#define T_FIXNUM RUBY_T_FIXNUM +#define T_FLOAT RUBY_T_FLOAT +#define T_HASH RUBY_T_HASH +#define T_ICLASS RUBY_T_ICLASS +#define T_IMEMO RUBY_T_IMEMO +#define T_MASK RUBY_T_MASK +#define T_MATCH RUBY_T_MATCH +#define T_MODULE RUBY_T_MODULE +#define T_MOVED RUBY_T_MOVED +#define T_NIL RUBY_T_NIL +#define T_NODE RUBY_T_NODE +#define T_NONE RUBY_T_NONE +#define T_OBJECT RUBY_T_OBJECT +#define T_RATIONAL RUBY_T_RATIONAL +#define T_REGEXP RUBY_T_REGEXP +#define T_STRING RUBY_T_STRING +#define T_STRUCT RUBY_T_STRUCT +#define T_SYMBOL RUBY_T_SYMBOL +#define T_TRUE RUBY_T_TRUE +#define T_UNDEF RUBY_T_UNDEF +#define T_ZOMBIE RUBY_T_ZOMBIE +#define BUILTIN_TYPE RB_BUILTIN_TYPE +#define DYNAMIC_SYM_P RB_DYNAMIC_SYM_P +#define RB_INTEGER_TYPE_P rb_integer_type_p +#define SYMBOL_P RB_SYMBOL_P +#define rb_type_p RB_TYPE_P +#define RB_BUILTIN_TYPE RB_BUILTIN_TYPE +#define RB_DYNAMIC_SYM_P RB_DYNAMIC_SYM_P +#define RB_FLOAT_TYPE_P RB_FLOAT_TYPE_P +#define RB_SYMBOL_P RB_SYMBOL_P +#define RB_TYPE_P RB_TYPE_P +#define Check_Type Check_Type +#define RBIMPL_ASSERT_TYPE(v,t) RBIMPL_ASSERT_OR_ASSUME(RB_TYPE_P((v), (t))) +#define TYPE(_) RBIMPL_CAST((int)rb_type(_)) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#undef RB_TYPE_P +#define RB_TYPE_P(obj,t) (RBIMPL_CONSTANT_P(t) ? rbimpl_RB_TYPE_P_fastpath((obj), (t)) : (RB_TYPE_P)((obj), (t))) +#define RBIMPL_HAVE_ENUM_ATTRIBUTE 1 +#define RBIMPL_WIDER_ENUM 1 +#define FL_SINGLETON RBIMPL_CAST((VALUE)RUBY_FL_SINGLETON) +#define FL_WB_PROTECTED RBIMPL_CAST((VALUE)RUBY_FL_WB_PROTECTED) +#define FL_PROMOTED0 RBIMPL_CAST((VALUE)RUBY_FL_PROMOTED0) +#define FL_PROMOTED1 RBIMPL_CAST((VALUE)RUBY_FL_PROMOTED1) +#define FL_FINALIZE RBIMPL_CAST((VALUE)RUBY_FL_FINALIZE) +#define FL_TAINT RBIMPL_CAST((VALUE)RUBY_FL_TAINT) +#define FL_SHAREABLE RBIMPL_CAST((VALUE)RUBY_FL_SHAREABLE) +#define FL_UNTRUSTED RBIMPL_CAST((VALUE)RUBY_FL_UNTRUSTED) +#define FL_SEEN_OBJ_ID RBIMPL_CAST((VALUE)RUBY_FL_SEEN_OBJ_ID) +#define FL_EXIVAR RBIMPL_CAST((VALUE)RUBY_FL_EXIVAR) +#define FL_FREEZE RBIMPL_CAST((VALUE)RUBY_FL_FREEZE) +#define FL_USHIFT RBIMPL_CAST((VALUE)RUBY_FL_USHIFT) +#define FL_USER0 RBIMPL_CAST((VALUE)RUBY_FL_USER0) +#define FL_USER1 RBIMPL_CAST((VALUE)RUBY_FL_USER1) +#define FL_USER2 RBIMPL_CAST((VALUE)RUBY_FL_USER2) +#define FL_USER3 RBIMPL_CAST((VALUE)RUBY_FL_USER3) +#define FL_USER4 RBIMPL_CAST((VALUE)RUBY_FL_USER4) +#define FL_USER5 RBIMPL_CAST((VALUE)RUBY_FL_USER5) +#define FL_USER6 RBIMPL_CAST((VALUE)RUBY_FL_USER6) +#define FL_USER7 RBIMPL_CAST((VALUE)RUBY_FL_USER7) +#define FL_USER8 RBIMPL_CAST((VALUE)RUBY_FL_USER8) +#define FL_USER9 RBIMPL_CAST((VALUE)RUBY_FL_USER9) +#define FL_USER10 RBIMPL_CAST((VALUE)RUBY_FL_USER10) +#define FL_USER11 RBIMPL_CAST((VALUE)RUBY_FL_USER11) +#define FL_USER12 RBIMPL_CAST((VALUE)RUBY_FL_USER12) +#define FL_USER13 RBIMPL_CAST((VALUE)RUBY_FL_USER13) +#define FL_USER14 RBIMPL_CAST((VALUE)RUBY_FL_USER14) +#define FL_USER15 RBIMPL_CAST((VALUE)RUBY_FL_USER15) +#define FL_USER16 RBIMPL_CAST((VALUE)RUBY_FL_USER16) +#define FL_USER17 RBIMPL_CAST((VALUE)RUBY_FL_USER17) +#define FL_USER18 RBIMPL_CAST((VALUE)RUBY_FL_USER18) +#define FL_USER19 RBIMPL_CAST((VALUE)(unsigned int)RUBY_FL_USER19) +#define ELTS_SHARED RUBY_ELTS_SHARED +#define RB_OBJ_FREEZE rb_obj_freeze_inline +#define RUBY_ELTS_SHARED RUBY_ELTS_SHARED +#define RB_FL_ABLE RB_FL_ABLE +#define RB_FL_ALL RB_FL_ALL +#define RB_FL_ALL_RAW RB_FL_ALL_RAW +#define RB_FL_ANY RB_FL_ANY +#define RB_FL_ANY_RAW RB_FL_ANY_RAW +#define RB_FL_REVERSE RB_FL_REVERSE +#define RB_FL_REVERSE_RAW RB_FL_REVERSE_RAW +#define RB_FL_SET RB_FL_SET +#define RB_FL_SET_RAW RB_FL_SET_RAW +#define RB_FL_TEST RB_FL_TEST +#define RB_FL_TEST_RAW RB_FL_TEST_RAW +#define RB_FL_UNSET RB_FL_UNSET +#define RB_FL_UNSET_RAW RB_FL_UNSET_RAW +#define RB_OBJ_FREEZE_RAW RB_OBJ_FREEZE_RAW +#define RB_OBJ_FROZEN RB_OBJ_FROZEN +#define RB_OBJ_FROZEN_RAW RB_OBJ_FROZEN_RAW +#define RB_OBJ_INFECT RB_OBJ_INFECT +#define RB_OBJ_INFECT_RAW RB_OBJ_INFECT_RAW +#define RB_OBJ_TAINT RB_OBJ_TAINT +#define RB_OBJ_TAINTABLE RB_OBJ_TAINTABLE +#define RB_OBJ_TAINTED RB_OBJ_TAINTED +#define RB_OBJ_TAINTED_RAW RB_OBJ_TAINTED_RAW +#define RB_OBJ_TAINT_RAW RB_OBJ_TAINT_RAW +#define RB_OBJ_UNTRUST RB_OBJ_TAINT +#define RB_OBJ_UNTRUSTED RB_OBJ_TAINTED +#define FL_ABLE RB_FL_ABLE +#define FL_ALL RB_FL_ALL +#define FL_ALL_RAW RB_FL_ALL_RAW +#define FL_ANY RB_FL_ANY +#define FL_ANY_RAW RB_FL_ANY_RAW +#define FL_REVERSE RB_FL_REVERSE +#define FL_REVERSE_RAW RB_FL_REVERSE_RAW +#define FL_SET RB_FL_SET +#define FL_SET_RAW RB_FL_SET_RAW +#define FL_TEST RB_FL_TEST +#define FL_TEST_RAW RB_FL_TEST_RAW +#define FL_UNSET RB_FL_UNSET +#define FL_UNSET_RAW RB_FL_UNSET_RAW +#define OBJ_FREEZE RB_OBJ_FREEZE +#define OBJ_FREEZE_RAW RB_OBJ_FREEZE_RAW +#define OBJ_FROZEN RB_OBJ_FROZEN +#define OBJ_FROZEN_RAW RB_OBJ_FROZEN_RAW +#define OBJ_INFECT RB_OBJ_INFECT +#define OBJ_INFECT_RAW RB_OBJ_INFECT_RAW +#define OBJ_TAINT RB_OBJ_TAINT +#define OBJ_TAINTABLE RB_OBJ_TAINTABLE +#define OBJ_TAINTED RB_OBJ_TAINTED +#define OBJ_TAINTED_RAW RB_OBJ_TAINTED_RAW +#define OBJ_TAINT_RAW RB_OBJ_TAINT_RAW +#define OBJ_UNTRUST RB_OBJ_UNTRUST +#define OBJ_UNTRUSTED RB_OBJ_UNTRUSTED +#define RBIMPL_FL_USER_N(n) RUBY_FL_USER##n = (1<<(RUBY_FL_USHIFT+n)) +#undef RBIMPL_FL_USER_N +#undef RBIMPL_WIDER_ENUM +#undef RBIMPL_HAVE_ENUM_ATTRIBUTE +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RSTRING(obj) RBIMPL_CAST((struct RString *)(obj)) +#define RSTRING_NOEMBED RSTRING_NOEMBED +#define RSTRING_FSTR RSTRING_FSTR +#define RSTRING_EMBED_LEN RSTRING_EMBED_LEN +#define RSTRING_LEN RSTRING_LEN +#define RSTRING_LENINT RSTRING_LENINT +#define RSTRING_PTR RSTRING_PTR +#define RSTRING_END RSTRING_END +#define StringValue(v) rb_string_value(&(v)) +#define StringValuePtr(v) rb_string_value_ptr(&(v)) +#define StringValueCStr(v) rb_string_value_cstr(&(v)) +#define SafeStringValue(v) StringValue(v) +#define ExportStringValue(v) do { StringValue(v); (v) = rb_str_export(v); } while (0) +#pragma GCC visibility push(default) +#define Check_SafeStr(v) rb_check_safe_str(RBIMPL_CAST((VALUE)(v))) +#pragma GCC visibility pop +#pragma clang diagnostic push +#pragma clang diagnostic pop +#define RSTRING_GETMEM(str,ptrvar,lenvar) __extension__ ({ struct RString rbimpl_str = rbimpl_rstring_getmem(str); (ptrvar) = rbimpl_str.as.heap.ptr; (lenvar) = rbimpl_str.as.heap.len; }) +#define RB_NUM2CHR rb_num2char_inline +#define NUM2CHR RB_NUM2CHR +#define CHR2FIX RB_CHR2FIX +#define RB_CHR2FIX RB_CHR2FIX +#define RBIMPL_ARITHMETIC_DOUBLE_H +#define NUM2DBL rb_num2dbl +#define RFLOAT_VALUE rb_float_value +#define DBL2NUM rb_float_new +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_ARITHMETIC_GID_T_H +#define RBIMPL_ARITHMETIC_LONG_LONG_H +#define RB_LL2NUM rb_ll2num_inline +#define RB_ULL2NUM rb_ull2num_inline +#define LL2NUM RB_LL2NUM +#define ULL2NUM RB_ULL2NUM +#define RB_NUM2LL rb_num2ll_inline +#define RB_NUM2ULL rb_num2ull_inline +#define NUM2LL RB_NUM2LL +#define NUM2ULL RB_NUM2ULL +#pragma GCC visibility push(default) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#pragma GCC visibility pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#define RBIMPL_ARITHMETIC_MODE_T_H +#define RBIMPL_ARITHMETIC_OFF_T_H +#define RBIMPL_ARITHMETIC_PID_T_H +#define RBIMPL_ARITHMETIC_SHORT_H +#define RB_NUM2SHORT rb_num2short_inline +#define RB_NUM2USHORT rb_num2ushort +#define NUM2SHORT RB_NUM2SHORT +#define NUM2USHORT RB_NUM2USHORT +#define USHORT2NUM RB_INT2FIX +#define RB_FIX2SHORT rb_fix2short +#define FIX2SHORT RB_FIX2SHORT +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_ARITHMETIC_SIZE_T_H +#define RB_SIZE2NUM RB_ULL2NUM +#define RB_SSIZE2NUM RB_LL2NUM +#define RB_NUM2SIZE RB_NUM2ULL +#define RB_NUM2SSIZE RB_NUM2LL +#define NUM2SIZET RB_NUM2SIZE +#define SIZET2NUM RB_SIZE2NUM +#define NUM2SSIZET RB_NUM2SSIZE +#define SSIZET2NUM RB_SSIZE2NUM +#define RBIMPL_ARITHMERIC_ST_DATA_T_H +#define RUBY_ST_H 1 +#pragma GCC visibility push(default) +#define ST_DATA_T_DEFINED +#define MAX_ST_INDEX_VAL (~(st_index_t) 0) +#define SIZEOF_ST_INDEX_T SIZEOF_VOIDP +#define ST_INDEX_BITS (SIZEOF_ST_INDEX_T * CHAR_BIT) +#define ST_DATA_COMPATIBLE_P(type) __builtin_choose_expr(__builtin_types_compatible_p(type, st_data_t), 1, 0) +#define st_is_member(table,key) st_lookup((table),(key),(st_data_t *)0) +#define st_init_table rb_st_init_table +#define st_init_table_with_size rb_st_init_table_with_size +#define st_init_numtable rb_st_init_numtable +#define st_init_numtable_with_size rb_st_init_numtable_with_size +#define st_init_strtable rb_st_init_strtable +#define st_init_strtable_with_size rb_st_init_strtable_with_size +#define st_init_strcasetable rb_st_init_strcasetable +#define st_init_strcasetable_with_size rb_st_init_strcasetable_with_size +#define st_delete rb_st_delete +#define st_delete_safe rb_st_delete_safe +#define st_shift rb_st_shift +#define st_insert rb_st_insert +#define st_insert2 rb_st_insert2 +#define st_lookup rb_st_lookup +#define st_get_key rb_st_get_key +#define st_update rb_st_update +#define st_foreach_with_replace rb_st_foreach_with_replace +#define st_foreach rb_st_foreach +#define st_foreach_check rb_st_foreach_check +#define st_keys rb_st_keys +#define st_keys_check rb_st_keys_check +#define st_values rb_st_values +#define st_values_check rb_st_values_check +#define st_add_direct rb_st_add_direct +#define st_free_table rb_st_free_table +#define st_cleanup_safe rb_st_cleanup_safe +#define st_clear rb_st_clear +#define st_copy rb_st_copy +#define st_numcmp rb_st_numcmp +#define st_numhash rb_st_numhash +#define st_locale_insensitive_strcasecmp rb_st_locale_insensitive_strcasecmp +#define st_locale_insensitive_strncasecmp rb_st_locale_insensitive_strncasecmp +#define st_strcasecmp rb_st_locale_insensitive_strcasecmp +#define st_strncasecmp rb_st_locale_insensitive_strncasecmp +#define st_memsize rb_st_memsize +#define st_hash rb_st_hash +#define st_hash_uint32 rb_st_hash_uint32 +#define st_hash_uint rb_st_hash_uint +#define st_hash_end rb_st_hash_end +#define st_hash_start(h) ((st_index_t)(h)) +#pragma GCC visibility pop +#define ST2FIX RB_ST2FIX +#define RB_ST2FIX RB_ST2FIX +#define RBIMPL_ARITHMETIC_UID_T_H +#define RBIMPL_CORE_H +#define RBIMPL_RARRAY_H +#define RBIMPL_RGENGC_H +#undef USE_RGENGC +#define USE_RGENGC 1 +#define USE_RINCGC 1 +#define USE_RGENGC_LOGGING_WB_UNPROTECT 0 +#define RGENGC_WB_PROTECTED_ARRAY 1 +#define RGENGC_WB_PROTECTED_HASH 1 +#define RGENGC_WB_PROTECTED_STRUCT 1 +#define RGENGC_WB_PROTECTED_STRING 1 +#define RGENGC_WB_PROTECTED_OBJECT 1 +#define RGENGC_WB_PROTECTED_REGEXP 1 +#define RGENGC_WB_PROTECTED_CLASS 1 +#define RGENGC_WB_PROTECTED_FLOAT 1 +#define RGENGC_WB_PROTECTED_COMPLEX 1 +#define RGENGC_WB_PROTECTED_RATIONAL 1 +#define RGENGC_WB_PROTECTED_BIGNUM 1 +#define RGENGC_WB_PROTECTED_NODE_CREF 1 +#define RB_OBJ_WRITE(old,slot,young) RBIMPL_CAST(rb_obj_write((VALUE)(old), (VALUE *)(slot), (VALUE)(young), __FILE__, __LINE__)) +#define RB_OBJ_WRITTEN(old,oldv,young) RBIMPL_CAST(rb_obj_written((VALUE)(old), (VALUE)(oldv), (VALUE)(young), __FILE__, __LINE__)) +#define OBJ_PROMOTED_RAW RB_OBJ_PROMOTED_RAW +#define OBJ_PROMOTED RB_OBJ_PROMOTED +#define OBJ_WB_UNPROTECT RB_OBJ_WB_UNPROTECT +#define RB_OBJ_WB_UNPROTECT(x) rb_obj_wb_unprotect(x, __FILE__, __LINE__) +#define RB_OBJ_WB_UNPROTECT_FOR(type,obj) (RGENGC_WB_PROTECTED_##type ? OBJ_WB_UNPROTECT(obj) : obj) +#define RGENGC_LOGGING_WB_UNPROTECT rb_gc_unprotect_logging +#define RB_OBJ_PROMOTED_RAW RB_OBJ_PROMOTED_RAW +#define RB_OBJ_PROMOTED RB_OBJ_PROMOTED +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define USE_TRANSIENT_HEAP 1 +#define RARRAY(obj) RBIMPL_CAST((struct RArray *)(obj)) +#define RARRAY_EMBED_FLAG RARRAY_EMBED_FLAG +#define RARRAY_EMBED_LEN_MASK RARRAY_EMBED_LEN_MASK +#define RARRAY_EMBED_LEN_MAX RARRAY_EMBED_LEN_MAX +#define RARRAY_EMBED_LEN_SHIFT RARRAY_EMBED_LEN_SHIFT +#define RARRAY_TRANSIENT_FLAG RARRAY_TRANSIENT_FLAG +#define RARRAY_LEN rb_array_len +#define RARRAY_CONST_PTR rb_array_const_ptr +#define RARRAY_CONST_PTR_TRANSIENT rb_array_const_ptr_transient +#define FIX_CONST_VALUE_PTR(x) (x) +#define RARRAY_EMBED_LEN RARRAY_EMBED_LEN +#define RARRAY_LENINT RARRAY_LENINT +#define RARRAY_TRANSIENT_P RARRAY_TRANSIENT_P +#define RARRAY_ASET RARRAY_ASET +#define RARRAY_PTR RARRAY_PTR +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_RARRAY_STMT(flag,ary,var,expr) do { RBIMPL_ASSERT_TYPE((ary), RUBY_T_ARRAY); const VALUE rbimpl_ary = (ary); VALUE *var = rb_array_ptr_use_start(rbimpl_ary, (flag)); expr; rb_array_ptr_use_end(rbimpl_ary, (flag)); } while (0) +#define RARRAY_PTR_USE_END(a) rb_array_ptr_use_end(a, 0) +#define RARRAY_PTR_USE(ary,ptr_name,expr) RBIMPL_RARRAY_STMT(0, ary, ptr_name, expr) +#define RARRAY_PTR_USE_TRANSIENT(ary,ptr_name,expr) RBIMPL_RARRAY_STMT(1, ary, ptr_name, expr) +#define RARRAY_AREF(a,i) RARRAY_CONST_PTR_TRANSIENT(a)[i] +#define RBIMPL_RBIGNUM_H +#define RBIGNUM_SIGN rb_big_sign +#define RBIGNUM_POSITIVE_P RBIGNUM_POSITIVE_P +#define RBIGNUM_NEGATIVE_P RBIGNUM_NEGATIVE_P +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_RCLASS_H +#define RMODULE_IS_REFINEMENT RMODULE_IS_REFINEMENT +#define RCLASS(obj) RBIMPL_CAST((struct RClass *)(obj)) +#define RMODULE RCLASS +#define RCLASS_SUPER rb_class_get_superclass +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_RDATA_H +#define RUBY_UNTYPED_DATA_WARNING 1 +#define RBIMPL_DATA_FUNC(f) RBIMPL_CAST((void (*)(void *))(f)) +#define RBIMPL_ATTRSET_UNTYPED_DATA_FUNC() RBIMPL_ATTR_WARNING(("untyped Data is unsafe; use TypedData instead")) RBIMPL_ATTR_DEPRECATED(("by TypedData")) +#define RBIMPL_MACRO_SELECT(x,y) x ## y +#define RUBY_MACRO_SELECT(x,y) RBIMPL_MACRO_SELECT(x, y) +#define RDATA(obj) RBIMPL_CAST((struct RData *)(obj)) +#define DATA_PTR(obj) RDATA(obj)->data +#define RUBY_DEFAULT_FREE RBIMPL_DATA_FUNC(-1) +#define RUBY_NEVER_FREE RBIMPL_DATA_FUNC(0) +#define RUBY_UNTYPED_DATA_FUNC(f) f RBIMPL_ATTRSET_UNTYPED_DATA_FUNC() +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define Data_Wrap_Struct(klass,mark,free,sval) rb_data_object_wrap( (klass), (sval), RBIMPL_DATA_FUNC(mark), RBIMPL_DATA_FUNC(free)) +#define Data_Make_Struct0(result,klass,type,size,mark,free,sval) VALUE result = rb_data_object_zalloc( (klass), (size), RBIMPL_DATA_FUNC(mark), RBIMPL_DATA_FUNC(free)); (sval) = RBIMPL_CAST((type *)DATA_PTR(result)); RBIMPL_CAST( (void)(sval)) +#define Data_Make_Struct(klass,type,mark,free,sval) RB_GNUC_EXTENSION({ Data_Make_Struct0( data_struct_obj, klass, type, sizeof(type), mark, free, sval); data_struct_obj; }) +#define Data_Get_Struct(obj,type,sval) ((sval) = RBIMPL_CAST((type*)rb_data_object_get(obj))) +#define rb_data_object_wrap_warning(klass,ptr,mark,free) RB_GNUC_EXTENSION( __builtin_choose_expr( __builtin_constant_p(klass) && !(klass), rb_data_object_wrap(klass, ptr, mark, free), (rb_data_object_wrap_warning)(klass, ptr, mark, free))) +#define rb_data_object_wrap_0 rb_data_object_wrap +#define rb_data_object_wrap_1 rb_data_object_wrap_warning +#define rb_data_object_wrap_2 rb_data_object_wrap_ +#define rb_data_object_wrap RUBY_MACRO_SELECT(rb_data_object_wrap_2, RUBY_UNTYPED_DATA_WARNING) +#define rb_data_object_get_0 rb_data_object_get +#define rb_data_object_get_1 rb_data_object_get_warning +#define rb_data_object_get_2 rb_data_object_get_ +#define rb_data_object_get RUBY_MACRO_SELECT(rb_data_object_get_2, RUBY_UNTYPED_DATA_WARNING) +#define rb_data_object_make_0 rb_data_object_make +#define rb_data_object_make_1 rb_data_object_make_warning +#define rb_data_object_make_2 rb_data_object_make_ +#define rb_data_object_make RUBY_MACRO_SELECT(rb_data_object_make_2, RUBY_UNTYPED_DATA_WARNING) +#define RBIMPL_RFILE_H +#define RFILE(obj) RBIMPL_CAST((struct RFile *)(obj)) +#define RBIMPL_RHASH_H +#define RHASH_TBL(h) rb_hash_tbl(h, __FILE__, __LINE__) +#define RHASH_ITER_LEV(h) rb_hash_iter_lev(h) +#define RHASH_IFNONE(h) rb_hash_ifnone(h) +#define RHASH_SIZE(h) rb_hash_size_num(h) +#define RHASH_EMPTY_P(h) (RHASH_SIZE(h) == 0) +#define RHASH_SET_IFNONE(h,ifnone) rb_hash_set_ifnone((VALUE)h, ifnone) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_ROBJECT_H +#define ROBJECT(obj) RBIMPL_CAST((struct RObject *)(obj)) +#define ROBJECT_EMBED_LEN_MAX ROBJECT_EMBED_LEN_MAX +#define ROBJECT_EMBED ROBJECT_EMBED +#define ROBJECT_IV_CAPACITY ROBJECT_IV_CAPACITY +#define ROBJECT_IVPTR ROBJECT_IVPTR +#define RBIMPL_RREGEXP_H +#define RREGEXP(obj) RBIMPL_CAST((struct RRegexp *)(obj)) +#define RREGEXP_PTR(obj) (RREGEXP(obj)->ptr) +#define RREGEXP_SRC RREGEXP_SRC +#define RREGEXP_SRC_PTR RREGEXP_SRC_PTR +#define RREGEXP_SRC_LEN RREGEXP_SRC_LEN +#define RREGEXP_SRC_END RREGEXP_SRC_END +#define RBIMPL_RSTRUCT_H +#define RSTRUCT_PTR(st) rb_struct_ptr(st) +#define RSTRUCT_LEN RSTRUCT_LEN +#define RSTRUCT_SET RSTRUCT_SET +#define RSTRUCT_GET RSTRUCT_GET +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_RTYPEDDATA_H +#define HAVE_TYPE_RB_DATA_TYPE_T 1 +#define HAVE_RB_DATA_TYPE_T_FUNCTION 1 +#define HAVE_RB_DATA_TYPE_T_PARENT 1 +#define RUBY_TYPED_DEFAULT_FREE RUBY_DEFAULT_FREE +#define RUBY_TYPED_NEVER_FREE RUBY_NEVER_FREE +#define RTYPEDDATA(obj) RBIMPL_CAST((struct RTypedData *)(obj)) +#define RTYPEDDATA_DATA(v) (RTYPEDDATA(v)->data) +#define Check_TypedStruct(v,t) rb_check_typeddata(RBIMPL_CAST((VALUE)(v)), (t)) +#define RTYPEDDATA_P RTYPEDDATA_P +#define RTYPEDDATA_TYPE RTYPEDDATA_TYPE +#define RUBY_TYPED_FREE_IMMEDIATELY RUBY_TYPED_FREE_IMMEDIATELY +#define RUBY_TYPED_FROZEN_SHAREABLE RUBY_TYPED_FROZEN_SHAREABLE +#define RUBY_TYPED_WB_PROTECTED RUBY_TYPED_WB_PROTECTED +#define RUBY_TYPED_PROMOTED1 RUBY_TYPED_PROMOTED1 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define TypedData_Wrap_Struct(klass,data_type,sval) rb_data_typed_object_wrap((klass),(sval),(data_type)) +#define TypedData_Make_Struct0(result,klass,type,size,data_type,sval) VALUE result = rb_data_typed_object_zalloc(klass, size, data_type); (sval) = RBIMPL_CAST((type *)RTYPEDDATA_DATA(result)); RBIMPL_CAST( (void)(sval)) +#define TypedData_Make_Struct(klass,type,data_type,sval) RB_GNUC_EXTENSION({ TypedData_Make_Struct0( data_struct_obj, klass, type, sizeof(type), data_type, sval); data_struct_obj; }) +#define TypedData_Get_Struct(obj,type,data_type,sval) ((sval) = RBIMPL_CAST((type *)rb_check_typeddata((obj), (data_type)))) +#define RBIMPL_CTYPE_H +#define _CTYPE_H_ +#define __CTYPE_H_ +#define _RUNETYPE_H_ +#define _WINT_T +#define _CACHED_RUNES (1 <<8 ) +#define _CRMASK (~(_CACHED_RUNES - 1)) +#define _RUNE_MAGIC_A "RuneMagA" +#define _CTYPE_A 0x00000100L +#define _CTYPE_C 0x00000200L +#define _CTYPE_D 0x00000400L +#define _CTYPE_G 0x00000800L +#define _CTYPE_L 0x00001000L +#define _CTYPE_P 0x00002000L +#define _CTYPE_S 0x00004000L +#define _CTYPE_U 0x00008000L +#define _CTYPE_X 0x00010000L +#define _CTYPE_B 0x00020000L +#define _CTYPE_R 0x00040000L +#define _CTYPE_I 0x00080000L +#define _CTYPE_T 0x00100000L +#define _CTYPE_Q 0x00200000L +#define _CTYPE_SW0 0x20000000L +#define _CTYPE_SW1 0x40000000L +#define _CTYPE_SW2 0x80000000L +#define _CTYPE_SW3 0xc0000000L +#define _CTYPE_SWM 0xe0000000L +#define _CTYPE_SWS 30 +#define __DARWIN_CTYPE_inline __header_inline +#define __DARWIN_CTYPE_TOP_inline __header_inline +#define _tolower(c) __tolower(c) +#define _toupper(c) __toupper(c) +#define ISASCII rb_isascii +#define ISPRINT rb_isprint +#define ISGRAPH rb_isgraph +#define ISSPACE rb_isspace +#define ISUPPER rb_isupper +#define ISLOWER rb_islower +#define ISALNUM rb_isalnum +#define ISALPHA rb_isalpha +#define ISDIGIT rb_isdigit +#define ISXDIGIT rb_isxdigit +#define ISBLANK rb_isblank +#define ISCNTRL rb_iscntrl +#define ISPUNCT rb_ispunct +#define TOUPPER rb_toupper +#define TOLOWER rb_tolower +#define STRCASECMP st_locale_insensitive_strcasecmp +#define STRNCASECMP st_locale_insensitive_strncasecmp +#define STRTOUL ruby_strtoul +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_EVAL_H +#pragma GCC visibility push(default) +#define rb_funcall2 rb_funcallv +#define rb_funcall3 rb_funcallv_public +#pragma GCC visibility pop +#define RBIMPL_EVENT_H +#define RUBY_EVENT_NONE 0x0000 +#define RUBY_EVENT_LINE 0x0001 +#define RUBY_EVENT_CLASS 0x0002 +#define RUBY_EVENT_END 0x0004 +#define RUBY_EVENT_CALL 0x0008 +#define RUBY_EVENT_RETURN 0x0010 +#define RUBY_EVENT_C_CALL 0x0020 +#define RUBY_EVENT_C_RETURN 0x0040 +#define RUBY_EVENT_RAISE 0x0080 +#define RUBY_EVENT_ALL 0x00ff +#define RUBY_EVENT_B_CALL 0x0100 +#define RUBY_EVENT_B_RETURN 0x0200 +#define RUBY_EVENT_THREAD_BEGIN 0x0400 +#define RUBY_EVENT_THREAD_END 0x0800 +#define RUBY_EVENT_FIBER_SWITCH 0x1000 +#define RUBY_EVENT_SCRIPT_COMPILED 0x2000 +#define RUBY_EVENT_TRACEPOINT_ALL 0xffff +#define RUBY_EVENT_RESERVED_FOR_INTERNAL_USE 0x030000 +#define RUBY_INTERNAL_EVENT_SWITCH 0x040000 +#define RUBY_EVENT_SWITCH 0x040000 +#define RUBY_INTERNAL_EVENT_NEWOBJ 0x100000 +#define RUBY_INTERNAL_EVENT_FREEOBJ 0x200000 +#define RUBY_INTERNAL_EVENT_GC_START 0x400000 +#define RUBY_INTERNAL_EVENT_GC_END_MARK 0x800000 +#define RUBY_INTERNAL_EVENT_GC_END_SWEEP 0x1000000 +#define RUBY_INTERNAL_EVENT_GC_ENTER 0x2000000 +#define RUBY_INTERNAL_EVENT_GC_EXIT 0x4000000 +#define RUBY_INTERNAL_EVENT_OBJSPACE_MASK 0x7f00000 +#define RUBY_INTERNAL_EVENT_MASK 0xffff0000 +#define RB_EVENT_HOOKS_HAVE_CALLBACK_DATA 1 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_GC_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_GLOB_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_GLOBALS_H +#pragma GCC visibility push(default) +#define RUBY_INTEGER_UNIFICATION 1 +#define CLASS_OF rb_class_of +#pragma GCC visibility pop +#define RBIMPL_INTERPRETER_H +#pragma GCC visibility push(default) +#define RUBY_INIT_STACK VALUE variable_in_this_stack_frame; ruby_init_stack(&variable_in_this_stack_frame); +#pragma GCC visibility pop +#define RBIMPL_ITERATOR_H +#pragma GCC visibility push(default) +#define RB_BLOCK_CALL_FUNC_STRICT 1 +#define RUBY_BLOCK_CALL_FUNC_TAKES_BLOCKARG 1 +#define RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg,callback_arg) VALUE yielded_arg, VALUE callback_arg, int argc, const VALUE *argv, VALUE blockarg +#pragma GCC visibility pop +#define RBIMPL_MEMORY_H +#define DSIZE_T uint128_t +#define RUBY_ALLOCV_LIMIT 1024 +#define RB_GC_GUARD(v) (*__extension__ ({ volatile VALUE *rb_gc_guarded_ptr = &(v); __asm__("" : : "m"(rb_gc_guarded_ptr)); rb_gc_guarded_ptr; })) +#define RB_ALLOC_N(type,n) RBIMPL_CAST((type *)ruby_xmalloc2((n), sizeof(type))) +#define RB_ALLOC(type) RBIMPL_CAST((type *)ruby_xmalloc(sizeof(type))) +#define RB_ZALLOC_N(type,n) RBIMPL_CAST((type *)ruby_xcalloc((n), sizeof(type))) +#define RB_ZALLOC(type) (RB_ZALLOC_N(type, 1)) +#define RB_REALLOC_N(var,type,n) ((var) = RBIMPL_CAST((type *)ruby_xrealloc2((void *)(var), (n), sizeof(type)))) +#define ALLOCA_N(type,n) RBIMPL_CAST((type *)alloca(rbimpl_size_mul_or_raise(sizeof(type), (n)))) +#define RB_ALLOCV(v,n) ((n) < RUBY_ALLOCV_LIMIT ? ((v) = 0, alloca(n)) : rb_alloc_tmp_buffer(&(v), (n))) +#define RB_ALLOCV_N(type,v,n) RBIMPL_CAST((type *) (((size_t)(n) < RUBY_ALLOCV_LIMIT / sizeof(type)) ? ((v) = 0, alloca((n) * sizeof(type))) : rb_alloc_tmp_buffer2(&(v), (n), sizeof(type)))) +#define RB_ALLOCV_END(v) rb_free_tmp_buffer(&(v)) +#define MEMZERO(p,type,n) memset((p), 0, rbimpl_size_mul_or_raise(sizeof(type), (n))) +#define MEMCPY(p1,p2,type,n) ruby_nonempty_memcpy((p1), (p2), rbimpl_size_mul_or_raise(sizeof(type), (n))) +#define MEMMOVE(p1,p2,type,n) memmove((p1), (p2), rbimpl_size_mul_or_raise(sizeof(type), (n))) +#define MEMCMP(p1,p2,type,n) memcmp((p1), (p2), rbimpl_size_mul_or_raise(sizeof(type), (n))) +#define ALLOC_N RB_ALLOC_N +#define ALLOC RB_ALLOC +#define ZALLOC_N RB_ZALLOC_N +#define ZALLOC RB_ZALLOC +#define REALLOC_N RB_REALLOC_N +#define ALLOCV RB_ALLOCV +#define ALLOCV_N RB_ALLOCV_N +#define ALLOCV_END RB_ALLOCV_END +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_MODULE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_NEWOBJ_H +#define RB_NEWOBJ(obj,type) type *(obj) = RBIMPL_CAST((type *)rb_newobj()) +#define RB_NEWOBJ_OF(obj,type,klass,flags) type *(obj) = RBIMPL_CAST((type *)rb_newobj_of(klass, flags)) +#define NEWOBJ RB_NEWOBJ +#define NEWOBJ_OF RB_NEWOBJ_OF +#define OBJSETUP rb_obj_setup +#define CLONESETUP rb_clone_setup +#define DUPSETUP rb_dup_setup +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_SCAN_ARGS_H +#define RBIMPL_ATTR_DIAGNOSE_IF_H +#define RBIMPL_ATTR_DIAGNOSE_IF(_,__,___) RBIMPL_WARNING_PUSH() RBIMPL_WARNING_IGNORED(-Wgcc-compat) __attribute__((__diagnose_if__(_, __, ___))) RBIMPL_WARNING_POP() +#define RBIMPL_INTERN_ARRAY_H +#pragma GCC visibility push(default) +#define rb_ary_tmp_new rb_ary_hidden_new +#define rb_ary_new2 rb_ary_new_capa +#define rb_ary_new3 rb_ary_new_from_args +#define rb_ary_new4 rb_ary_new_from_values +#pragma GCC visibility pop +#define RBIMPL_INTERN_ERROR_H +#define UNLIMITED_ARGUMENTS (-1) +#define rb_exc_new2 rb_exc_new_cstr +#define rb_exc_new3 rb_exc_new_str +#define rb_check_arity rb_check_arity +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define rb_check_frozen_internal(obj) do { VALUE frozen_obj = (obj); if (RB_UNLIKELY(RB_OBJ_FROZEN(frozen_obj))) { rb_error_frozen_object(frozen_obj); } } while (0) +#define rb_check_frozen rb_check_frozen_inline +#define RBIMPL_INTERN_HASH_H +#pragma GCC visibility push(default) +#define st_foreach_safe rb_st_foreach_safe +#pragma GCC visibility pop +#define RBIMPL_INTERN_PROC_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RB_SCAN_ARGS_PASS_CALLED_KEYWORDS 0 +#define RB_SCAN_ARGS_KEYWORDS 1 +#define RB_SCAN_ARGS_LAST_HASH_KEYWORDS 3 +#define RB_NO_KEYWORDS 0 +#define RB_PASS_KEYWORDS 1 +#define RB_PASS_CALLED_KEYWORDS rb_keyword_given_p() +#define HAVE_RB_SCAN_ARGS_OPTIONAL_HASH 1 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define rb_scan_args_isdigit(c) (RBIMPL_CAST((unsigned char)((c)-'0'))<10) +#define rb_scan_args_count_end(fmt,ofs,vari) ((fmt)[ofs] ? -1 : (vari)) +#define rb_scan_args_count_block(fmt,ofs,vari) ((fmt)[ofs]!='&' ? rb_scan_args_count_end(fmt, ofs, vari) : rb_scan_args_count_end(fmt, (ofs)+1, (vari)+1)) +#define rb_scan_args_count_hash(fmt,ofs,vari) ((fmt)[ofs]!=':' ? rb_scan_args_count_block(fmt, ofs, vari) : rb_scan_args_count_block(fmt, (ofs)+1, (vari)+1)) +#define rb_scan_args_count_trail(fmt,ofs,vari) (!rb_scan_args_isdigit((fmt)[ofs]) ? rb_scan_args_count_hash(fmt, ofs, vari) : rb_scan_args_count_hash(fmt, (ofs)+1, (vari)+((fmt)[ofs]-'0'))) +#define rb_scan_args_count_var(fmt,ofs,vari) ((fmt)[ofs]!='*' ? rb_scan_args_count_trail(fmt, ofs, vari) : rb_scan_args_count_trail(fmt, (ofs)+1, (vari)+1)) +#define rb_scan_args_count_opt(fmt,ofs,vari) (!rb_scan_args_isdigit((fmt)[ofs]) ? rb_scan_args_count_var(fmt, ofs, vari) : rb_scan_args_count_var(fmt, (ofs)+1, (vari)+(fmt)[ofs]-'0')) +#define rb_scan_args_count_lead(fmt,ofs,vari) (!rb_scan_args_isdigit((fmt)[ofs]) ? rb_scan_args_count_var(fmt, ofs, vari) : rb_scan_args_count_opt(fmt, (ofs)+1, (vari)+(fmt)[ofs]-'0')) +#define rb_scan_args_count(fmt) rb_scan_args_count_lead(fmt, 0, 0) +#define rb_scan_args_verify(fmt,varc) RBIMPL_ASSERT_NOTHING +#define rb_scan_args0(argc,argv,fmt,varc,vars) rb_scan_args_set(RB_SCAN_ARGS_PASS_CALLED_KEYWORDS, argc, argv, rb_scan_args_n_lead(fmt), rb_scan_args_n_opt(fmt), rb_scan_args_n_trail(fmt), rb_scan_args_f_var(fmt), rb_scan_args_f_hash(fmt), rb_scan_args_f_block(fmt), (rb_scan_args_verify(fmt, varc), vars), (char *)fmt, varc) +#define rb_scan_args_kw0(kw_flag,argc,argv,fmt,varc,vars) rb_scan_args_set(kw_flag, argc, argv, rb_scan_args_n_lead(fmt), rb_scan_args_n_opt(fmt), rb_scan_args_n_trail(fmt), rb_scan_args_f_var(fmt), rb_scan_args_f_hash(fmt), rb_scan_args_f_block(fmt), (rb_scan_args_verify(fmt, varc), vars), (char *)fmt, varc) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" +#pragma clang diagnostic pop +#define rb_scan_args_next_param() vars[vari++] +#undef rb_scan_args_next_param +#define rb_scan_args(argc,argvp,fmt,...) __builtin_choose_expr( __builtin_constant_p(fmt), rb_scan_args0( argc, argvp, fmt, (sizeof((VALUE*[]){__VA_ARGS__})/sizeof(VALUE*)), ((VALUE*[]){__VA_ARGS__})), (rb_scan_args)(argc, argvp, fmt __VA_OPT__(, __VA_ARGS__))) +#define rb_scan_args_kw(kw_flag,argc,argvp,fmt,...) __builtin_choose_expr( __builtin_constant_p(fmt), rb_scan_args_kw0( kw_flag, argc, argvp, fmt, (sizeof((VALUE*[]){__VA_ARGS__})/sizeof(VALUE*)), ((VALUE*[]){__VA_ARGS__})), (rb_scan_args_kw)(kw_flag, argc, argvp, fmt __VA_OPT__(, __VA_ARGS__))) +#define RBIMPL_SYMBOL_H +#define RB_ID2SYM rb_id2sym +#define RB_SYM2ID rb_sym2id +#define ID2SYM RB_ID2SYM +#define SYM2ID RB_SYM2ID +#define CONST_ID_CACHE RUBY_CONST_ID_CACHE +#define CONST_ID RUBY_CONST_ID +#define rb_intern_const rb_intern_const +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_CONST_ID_CACHE(result,str) { static ID rb_intern_id_cache; rbimpl_intern_const(&rb_intern_id_cache, (str)); result rb_intern_id_cache; } +#define RUBY_CONST_ID(var,str) do { static ID rbimpl_id; (var) = rbimpl_intern_const(&rbimpl_id, (str)); } while (0) +#define rb_intern(str) (RBIMPL_CONSTANT_P(str) ? __extension__ ({ static ID rbimpl_id; rbimpl_intern_const(&rbimpl_id, (str)); }) : (rb_intern)(str)) +#define RBIMPL_VARIABLE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_BACKWARD2_INTTYPES_H +#define PRI_INT_PREFIX "" +#define PRI_LONG_PREFIX "l" +#define PRI_SHORT_PREFIX "h" +#define RUBY_PRI_VALUE_MARK "\v" +#define PRIdVALUE PRI_VALUE_PREFIX"d" +#define PRIoVALUE PRI_VALUE_PREFIX"o" +#define PRIuVALUE PRI_VALUE_PREFIX"u" +#define PRIxVALUE PRI_VALUE_PREFIX"x" +#define PRIXVALUE PRI_VALUE_PREFIX"X" +#define PRIsVALUE PRI_VALUE_PREFIX"i" RUBY_PRI_VALUE_MARK +#define PRIdPTRDIFF PRI_PTRDIFF_PREFIX"d" +#define PRIiPTRDIFF PRI_PTRDIFF_PREFIX"i" +#define PRIoPTRDIFF PRI_PTRDIFF_PREFIX"o" +#define PRIuPTRDIFF PRI_PTRDIFF_PREFIX"u" +#define PRIxPTRDIFF PRI_PTRDIFF_PREFIX"x" +#define PRIXPTRDIFF PRI_PTRDIFF_PREFIX"X" +#define PRIdSIZE PRI_SIZE_PREFIX"d" +#define PRIiSIZE PRI_SIZE_PREFIX"i" +#define PRIoSIZE PRI_SIZE_PREFIX"o" +#define PRIuSIZE PRI_SIZE_PREFIX"u" +#define PRIxSIZE PRI_SIZE_PREFIX"x" +#define PRIXSIZE PRI_SIZE_PREFIX"X" +#pragma GCC visibility push(default) +#define USE_SYMBOL_AS_METHOD_NAME 1 +#define FilePathValue(v) (RB_GC_GUARD(v) = rb_get_path(v)) +#define FilePathStringValue(v) ((v) = rb_get_path(v)) +#define rb_varargs_argc_check_runtime(argc,vargc) (((argc) <= (vargc)) ? (argc) : (rb_fatal("argc(%d) exceeds actual arguments(%d)", argc, vargc), 0)) +#define rb_varargs_argc_valid_p(argc,vargc) ((argc) == 0 ? (vargc) <= 1 : (argc) == (vargc)) +#define rb_varargs_argc_check(argc,vargc) __builtin_choose_expr(__builtin_constant_p(argc), (rb_varargs_argc_valid_p(argc, vargc) ? (argc) : rb_varargs_bad_length(argc, vargc)), rb_varargs_argc_check_runtime(argc, vargc)) +#define RUBY_INTERN_H 1 +#define RBIMPL_INTERN_BIGNUM_H +#pragma GCC visibility push(default) +#define rb_big2int(x) rb_big2long(x) +#define rb_big2uint(x) rb_big2ulong(x) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#define INTEGER_PACK_MSWORD_FIRST 0x01 +#define INTEGER_PACK_LSWORD_FIRST 0x02 +#define INTEGER_PACK_MSBYTE_FIRST 0x10 +#define INTEGER_PACK_LSBYTE_FIRST 0x20 +#define INTEGER_PACK_NATIVE_BYTE_ORDER 0x40 +#define INTEGER_PACK_2COMP 0x80 +#define INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION 0x400 +#define INTEGER_PACK_FORCE_BIGNUM 0x100 +#define INTEGER_PACK_NEGATIVE 0x200 +#define INTEGER_PACK_LITTLE_ENDIAN (INTEGER_PACK_LSWORD_FIRST | INTEGER_PACK_LSBYTE_FIRST) +#define INTEGER_PACK_BIG_ENDIAN (INTEGER_PACK_MSWORD_FIRST | INTEGER_PACK_MSBYTE_FIRST) +#pragma GCC visibility pop +#define RBIMPL_INTERN_COMPAR_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_COMPLEX_H +#pragma GCC visibility push(default) +#define rb_complex_raw1(x) rb_complex_raw((x), INT2FIX(0)) +#define rb_complex_raw2(x,y) rb_complex_raw((x), (y)) +#define rb_complex_new1(x) rb_complex_new((x), INT2FIX(0)) +#define rb_complex_new2(x,y) rb_complex_new((x), (y)) +#define rb_complex_add rb_complex_plus +#define rb_complex_sub rb_complex_minus +#define rb_complex_nagate rb_complex_uminus +#define rb_Complex1(x) rb_Complex((x), INT2FIX(0)) +#define rb_Complex2(x,y) rb_Complex((x), (y)) +#pragma GCC visibility pop +#define RBIMPL_INTERN_CONT_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_DIR_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_ENUM_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_ENUMERATOR_H +#define RBIMPL_INTERN_EVAL_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define SIZED_ENUMERATOR(obj,argc,argv,size_fn) rb_enumeratorize_with_size((obj), ID2SYM(rb_frame_this_func()), (argc), (argv), (size_fn)) +#define SIZED_ENUMERATOR_KW(obj,argc,argv,size_fn,kw_splat) rb_enumeratorize_with_size_kw((obj), ID2SYM(rb_frame_this_func()), (argc), (argv), (size_fn), (kw_splat)) +#define RETURN_SIZED_ENUMERATOR(obj,argc,argv,size_fn) do { if (!rb_block_given_p()) return SIZED_ENUMERATOR(obj, argc, argv, size_fn); } while (0) +#define RETURN_SIZED_ENUMERATOR_KW(obj,argc,argv,size_fn,kw_splat) do { if (!rb_block_given_p()) return SIZED_ENUMERATOR_KW(obj, argc, argv, size_fn, kw_splat); } while (0) +#define RETURN_ENUMERATOR(obj,argc,argv) RETURN_SIZED_ENUMERATOR(obj, argc, argv, 0) +#define RETURN_ENUMERATOR_KW(obj,argc,argv,kw_splat) RETURN_SIZED_ENUMERATOR_KW(obj, argc, argv, 0, kw_splat) +#define RBIMPL_INTERN_FILE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_GC_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_IO_H +#pragma GCC visibility push(default) +#define rb_defout rb_stdout +#define RB_RESERVED_FD_P(fd) rb_reserved_fd_p(fd) +#pragma GCC visibility pop +#define RBIMPL_INTERN_LOAD_H +#pragma GCC visibility push(default) +#define RB_EXT_RACTOR_SAFE(f) rb_ext_ractor_safe(f) +#define HAVE_RB_EXT_RACTOR_SAFE 1 +#pragma GCC visibility pop +#define RBIMPL_INTERN_MARSHAL_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_NUMERIC_H +#define RB_NUM_COERCE_FUNCS_NEED_OPID 1 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_OBJECT_H +#pragma GCC visibility push(default) +#define RB_OBJ_INIT_COPY(obj,orig) ((obj) != (orig) && (rb_obj_init_copy((obj), (orig)), 1)) +#define OBJ_INIT_COPY(obj,orig) RB_OBJ_INIT_COPY(obj, orig) +#pragma GCC visibility pop +#define RBIMPL_INTERN_PARSE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_PROCESS_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_RANDOM_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_RANGE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_RATIONAL_H +#pragma GCC visibility push(default) +#define rb_rational_raw1(x) rb_rational_raw((x), INT2FIX(1)) +#define rb_rational_raw2(x,y) rb_rational_raw((x), (y)) +#define rb_rational_new1(x) rb_rational_new((x), INT2FIX(1)) +#define rb_rational_new2(x,y) rb_rational_new((x), (y)) +#define rb_Rational1(x) rb_Rational((x), INT2FIX(1)) +#define rb_Rational2(x,y) rb_Rational((x), (y)) +#pragma GCC visibility pop +#define RBIMPL_INTERN_RE_H +#pragma GCC visibility push(default) +#define rb_memcmp memcmp +#define HAVE_RB_REG_NEW_STR 1 +#pragma GCC visibility pop +#define RBIMPL_INTERN_RUBY_H +#pragma GCC visibility push(default) +#define rb_argv rb_get_argv() +#pragma GCC visibility pop +#define RBIMPL_INTERN_SELECT_H +#define RBIMPL_INTERN_SELECT_LARGESIZE_H +#define rb_fd_ptr rb_fd_ptr +#define rb_fd_max rb_fd_max +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_SIGNAL_H +#pragma GCC visibility push(default) +#define posix_signal ruby_posix_signal +#pragma GCC visibility pop +#define RBIMPL_INTERN_SPRINTF_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_STRING_H +#pragma GCC visibility push(default) +#define rb_str_dup_frozen rb_str_new_frozen +#define rb_hash_uint32(h,i) st_hash_uint32((h), (i)) +#define rb_hash_uint(h,i) st_hash_uint((h), (i)) +#define rb_hash_end(h) st_hash_end(h) +#define rb_str_new(str,len) ((RBIMPL_CONSTANT_P(str) && RBIMPL_CONSTANT_P(len) ? rb_str_new_static : rb_str_new) ((str), (len))) +#define rb_str_new_cstr(str) ((RBIMPL_CONSTANT_P(str) ? rbimpl_str_new_cstr : rb_str_new_cstr) (str)) +#define rb_usascii_str_new(str,len) ((RBIMPL_CONSTANT_P(str) && RBIMPL_CONSTANT_P(len) ? rb_usascii_str_new_static : rb_usascii_str_new) ((str), (len))) +#define rb_utf8_str_new(str,len) ((RBIMPL_CONSTANT_P(str) && RBIMPL_CONSTANT_P(len) ? rb_utf8_str_new_static : rb_utf8_str_new) ((str), (len))) +#define rb_usascii_str_new_cstr(str) ((RBIMPL_CONSTANT_P(str) ? rbimpl_usascii_str_new_cstr : rb_usascii_str_new_cstr) (str)) +#define rb_utf8_str_new_cstr(str) ((RBIMPL_CONSTANT_P(str) ? rbimpl_utf8_str_new_cstr : rb_utf8_str_new_cstr) (str)) +#define rb_external_str_new_cstr(str) ((RBIMPL_CONSTANT_P(str) ? rbimpl_external_str_new_cstr : rb_external_str_new_cstr) (str)) +#define rb_locale_str_new_cstr(str) ((RBIMPL_CONSTANT_P(str) ? rbimpl_locale_str_new_cstr : rb_locale_str_new_cstr) (str)) +#define rb_str_buf_new_cstr(str) ((RBIMPL_CONSTANT_P(str) ? rbimpl_str_buf_new_cstr : rb_str_buf_new_cstr) (str)) +#define rb_str_cat_cstr(buf,str) ((RBIMPL_CONSTANT_P(str) ? rbimpl_str_cat_cstr : rb_str_cat_cstr) ((buf), (str))) +#define rb_exc_new_cstr(exc,str) ((RBIMPL_CONSTANT_P(str) ? rbimpl_exc_new_cstr : rb_exc_new_cstr) ((exc), (str))) +#define rb_str_new2 rb_str_new_cstr +#define rb_str_new3 rb_str_new_shared +#define rb_str_new4 rb_str_new_frozen +#define rb_str_new5 rb_str_new_with_class +#define rb_str_buf_new2 rb_str_buf_new_cstr +#define rb_usascii_str_new2 rb_usascii_str_new_cstr +#define rb_str_buf_cat rb_str_cat +#define rb_str_buf_cat2 rb_str_cat_cstr +#define rb_str_cat2 rb_str_cat_cstr +#define rb_strlen_lit(str) (sizeof(str "") - 1) +#define rb_str_new_lit(str) rb_str_new_static((str), rb_strlen_lit(str)) +#define rb_usascii_str_new_lit(str) rb_usascii_str_new_static((str), rb_strlen_lit(str)) +#define rb_utf8_str_new_lit(str) rb_utf8_str_new_static((str), rb_strlen_lit(str)) +#define rb_enc_str_new_lit(str,enc) rb_enc_str_new_static((str), rb_strlen_lit(str), (enc)) +#define rb_str_new_literal(str) rb_str_new_lit(str) +#define rb_usascii_str_new_literal(str) rb_usascii_str_new_lit(str) +#define rb_utf8_str_new_literal(str) rb_utf8_str_new_lit(str) +#define rb_enc_str_new_literal(str,enc) rb_enc_str_new_lit(str, enc) +#pragma GCC visibility pop +#define RBIMPL_INTERN_STRUCT_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_THREAD_H +#pragma GCC visibility push(default) +#define RUBY_UBF_IO RBIMPL_CAST((rb_unblock_function_t *)-1) +#define RUBY_UBF_PROCESS RBIMPL_CAST((rb_unblock_function_t *)-1) +#pragma GCC visibility pop +#define RBIMPL_INTERN_TIME_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_VARIABLE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_VM 1 +#define HAVE_NATIVETHREAD +#define InitVM(ext) {void InitVM_##ext(void);InitVM_##ext();} +#define RUBY_SUBST_H 1 +#undef snprintf +#undef vsnprintf +#define snprintf ruby_snprintf +#define vsnprintf ruby_vsnprintf +#pragma GCC visibility pop +#define RUBY_VM_CORE_H +#define N_OR_RUBY_DEBUG(n) (((n) > 0) ? (n) : RUBY_DEBUG) +#define VM_CHECK_MODE N_OR_RUBY_DEBUG(0) +#define VMDEBUG 0 +#define _USER_SIGNAL_H +#define sigaddset(set,signo) (*(set) |= __sigbits(signo), 0) +#define sigdelset(set,signo) (*(set) &= ~__sigbits(signo), 0) +#define sigismember(set,signo) ((*(set) & __sigbits(signo)) != 0) +#define sigemptyset(set) (*(set) = 0, 0) +#define sigfillset(set) (*(set) = ~(sigset_t)0, 0) +#define RUBY_TOPLEVEL_ASSERT_H +#undef assert +#define assert RUBY_ASSERT_NDEBUG +#define VM_ASSERT(expr) ((void)0) +#define VM_UNREACHABLE(func) UNREACHABLE +#define RUBY_DEBUG_THREAD_SCHEDULE() +#define RUBY_ASSERT_MUTEX_OWNED(mutex) VM_ASSERT(rb_mutex_owned_p(mutex)) +#define RUBY_ASSERT_CRITICAL_SECTION_ENTER() +#define RUBY_ASSERT_CRITICAL_SECTION_LEAVE() +#define _BSD_SETJMP_H +#define _JBLEN ((14 + 8 + 2) * 2) +#define CCAN_LIST_H +#undef assert +#undef __assert +#define assert(e) ((void)0) +#define CCAN_STR_H +#define stringify(expr) ccan_stringify_1(expr) +#define ccan_stringify(expr) ccan_stringify_1(expr) +#define ccan_stringify_1(expr) #expr +#define CCAN_CONTAINER_OF_H +#define CCAN_CHECK_TYPE_H +#define ccan_check_type(expr,type) ((typeof(expr) *)0 != (type *)0) +#define ccan_check_types_match(expr1,expr2) ((typeof(expr1) *)0 != (typeof(expr2) *)0) +#define ccan_container_of(member_ptr,containing_type,member) ((containing_type *) ((char *)(member_ptr) - ccan_container_off(containing_type, member)) + ccan_check_types_match(*(member_ptr), ((containing_type *)0)->member)) +#define ccan_container_of_or_null(member_ptr,containing_type,member) ((containing_type *) ccan_container_of_or_null_(member_ptr, ccan_container_off(containing_type, member)) + ccan_check_types_match(*(member_ptr), ((containing_type *)0)->member)) +#define ccan_container_off(containing_type,member) offsetof(containing_type, member) +#define ccan_container_of_var(member_ptr,container_var,member) ccan_container_of(member_ptr, typeof(*container_var), member) +#define ccan_container_off_var(var,member) ccan_container_off(typeof(*var), member) +#define CCAN_LIST_LOC __FILE__ ":" ccan_stringify(__LINE__) +#define ccan_list_debug(h,loc) ((void)loc, h) +#define ccan_list_debug_node(n,loc) ((void)loc, n) +#define CCAN_LIST_HEAD_INIT(name) { { &(name).n, &(name).n } } +#define CCAN_LIST_HEAD(name) struct ccan_list_head name = CCAN_LIST_HEAD_INIT(name) +#define ccan_list_add_after(h,p,n) ccan_list_add_after_(h, p, n, CCAN_LIST_LOC) +#define ccan_list_add(h,n) ccan_list_add_(h, n, CCAN_LIST_LOC) +#define ccan_list_add_before(h,p,n) ccan_list_add_before_(h, p, n, CCAN_LIST_LOC) +#define ccan_list_add_tail(h,n) ccan_list_add_tail_(h, n, CCAN_LIST_LOC) +#define ccan_list_empty(h) ccan_list_empty_(h, CCAN_LIST_LOC) +#define ccan_list_empty_nodebug(h) ccan_list_empty(h) +#define ccan_list_del(n) ccan_list_del_(n, CCAN_LIST_LOC) +#define ccan_list_del_init(n) ccan_list_del_init_(n, CCAN_LIST_LOC) +#define ccan_list_swap(o,n) ccan_list_swap_(o, n, CCAN_LIST_LOC) +#define ccan_list_entry(n,type,member) ccan_container_of(n, type, member) +#define ccan_list_top(h,type,member) ((type *)ccan_list_top_((h), ccan_list_off_(type, member))) +#define ccan_list_pop(h,type,member) ((type *)ccan_list_pop_((h), ccan_list_off_(type, member))) +#define ccan_list_tail(h,type,member) ((type *)ccan_list_tail_((h), ccan_list_off_(type, member))) +#define ccan_list_for_each(h,i,member) ccan_list_for_each_off(h, i, ccan_list_off_var_(i, member)) +#define ccan_list_for_each_rev(h,i,member) ccan_list_for_each_rev_off(h, i, ccan_list_off_var_(i, member)) +#define ccan_list_for_each_rev_safe(h,i,nxt,member) ccan_list_for_each_rev_safe_off(h, i, nxt, ccan_list_off_var_(i, member)) +#define ccan_list_for_each_safe(h,i,nxt,member) ccan_list_for_each_safe_off(h, i, nxt, ccan_list_off_var_(i, member)) +#define ccan_list_next(h,i,member) ((ccan_list_typeof(i))ccan_list_entry_or_null(ccan_list_debug(h, __FILE__ ":" ccan_stringify(__LINE__)), (i)->member.next, ccan_list_off_var_((i), member))) +#define ccan_list_prev(h,i,member) ((ccan_list_typeof(i))ccan_list_entry_or_null(ccan_list_debug(h, __FILE__ ":" ccan_stringify(__LINE__)), (i)->member.prev, ccan_list_off_var_((i), member))) +#define ccan_list_append_list(t,f) ccan_list_append_list_(t, f, __FILE__ ":" ccan_stringify(__LINE__)) +#define ccan_list_prepend_list(t,f) ccan_list_prepend_list_(t, f, CCAN_LIST_LOC) +#define ccan_list_for_each_off_dir_(h,i,off,dir) for (i = ccan_list_node_to_off_(ccan_list_debug(h, CCAN_LIST_LOC)->n.dir, (off)); ccan_list_node_from_off_((void *)i, (off)) != &(h)->n; i = ccan_list_node_to_off_(ccan_list_node_from_off_((void *)i, (off))->dir, (off))) +#define ccan_list_for_each_safe_off_dir_(h,i,nxt,off,dir) for (i = ccan_list_node_to_off_(ccan_list_debug(h, CCAN_LIST_LOC)->n.dir, (off)), nxt = ccan_list_node_to_off_(ccan_list_node_from_off_(i, (off))->dir, (off)); ccan_list_node_from_off_(i, (off)) != &(h)->n; i = nxt, nxt = ccan_list_node_to_off_(ccan_list_node_from_off_(i, (off))->dir, (off))) +#define ccan_list_for_each_off(h,i,off) ccan_list_for_each_off_dir_((h),(i),(off),next) +#define ccan_list_for_each_rev_off(h,i,off) ccan_list_for_each_off_dir_((h),(i),(off),prev) +#define ccan_list_for_each_safe_off(h,i,nxt,off) ccan_list_for_each_safe_off_dir_((h),(i),(nxt),(off),next) +#define ccan_list_for_each_rev_safe_off(h,i,nxt,off) ccan_list_for_each_safe_off_dir_((h),(i),(nxt),(off),prev) +#define ccan_list_entry_off(n,type,off) ((type *)ccan_list_node_from_off_((n), (off))) +#define ccan_list_head_off(h,type,off) ((type *)ccan_list_head_off((h), (off))) +#define ccan_list_tail_off(h,type,off) ((type *)ccan_list_tail_((h), (off))) +#define ccan_list_add_off(h,n,off) ccan_list_add((h), ccan_list_node_from_off_((n), (off))) +#define ccan_list_del_off(n,off) ccan_list_del(ccan_list_node_from_off_((n), (off))) +#define ccan_list_del_from_off(h,n,off) ccan_list_del_from(h, ccan_list_node_from_off_((n), (off))) +#define ccan_list_off_(type,member) (ccan_container_off(type, member) + ccan_check_type(((type *)0)->member, struct ccan_list_node)) +#define ccan_list_off_var_(var,member) (ccan_container_off_var(var, member) + ccan_check_type(var->member, struct ccan_list_node)) +#define ccan_list_typeof(var) typeof(var) +#define RUBY_ID_H +#define ID_STATIC_SYM RUBY_ID_STATIC_SYM +#define ID_SCOPE_SHIFT RUBY_ID_SCOPE_SHIFT +#define ID_SCOPE_MASK RUBY_ID_SCOPE_MASK +#define ID_LOCAL RUBY_ID_LOCAL +#define ID_INSTANCE RUBY_ID_INSTANCE +#define ID_GLOBAL RUBY_ID_GLOBAL +#define ID_ATTRSET RUBY_ID_ATTRSET +#define ID_CONST RUBY_ID_CONST +#define ID_CLASS RUBY_ID_CLASS +#define ID_JUNK RUBY_ID_JUNK +#define ID_INTERNAL RUBY_ID_INTERNAL +#define symIFUNC ID2SYM(idIFUNC) +#define symCFUNC ID2SYM(idCFUNC) +#define RUBY_TOKEN_DOT2 128 +#define RUBY_TOKEN_DOT3 129 +#define RUBY_TOKEN_BDOT2 130 +#define RUBY_TOKEN_BDOT3 131 +#define RUBY_TOKEN_UPLUS 132 +#define RUBY_TOKEN_UMINUS 133 +#define RUBY_TOKEN_POW 134 +#define RUBY_TOKEN_CMP 135 +#define RUBY_TOKEN_LSHFT 136 +#define RUBY_TOKEN_RSHFT 137 +#define RUBY_TOKEN_LEQ 138 +#define RUBY_TOKEN_GEQ 139 +#define RUBY_TOKEN_EQ 140 +#define RUBY_TOKEN_EQQ 141 +#define RUBY_TOKEN_NEQ 142 +#define RUBY_TOKEN_MATCH 143 +#define RUBY_TOKEN_NMATCH 144 +#define RUBY_TOKEN_AREF 145 +#define RUBY_TOKEN_ASET 146 +#define RUBY_TOKEN_COLON2 147 +#define RUBY_TOKEN_ANDOP 148 +#define RUBY_TOKEN_OROP 149 +#define RUBY_TOKEN_ANDDOT 150 +#define RUBY_TOKEN(t) RUBY_TOKEN_##t +#define RUBY_TOKEN2ID_TYPE(tok,type) ((tok<mem) +#define RB_OBJ_WRITE(a,slot,b) rb_obj_write((VALUE)(a), UNALIGNED_MEMBER_ACCESS((VALUE *)(slot)), (VALUE)(b), __FILE__, __LINE__) +#define SIZE_POOL_COUNT 5 +#define RCLASS_EXT_EMBEDDED (SIZE_POOL_COUNT > 1) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define SIZED_REALLOC_N(x,y,z,w) REALLOC_N(x, y, z) +#define ruby_sized_xrealloc ruby_sized_xrealloc_inlined +#define ruby_sized_xrealloc2 ruby_sized_xrealloc2_inlined +#define ruby_sized_xfree ruby_sized_xfree_inlined +#define IMEMO_DEBUG 0 +#define IMEMO_MASK 0x0f +#define IMEMO_FL_USHIFT (FL_USHIFT + 4) +#define IMEMO_FL_USER0 FL_USER4 +#define IMEMO_FL_USER1 FL_USER5 +#define IMEMO_FL_USER2 FL_USER6 +#define IMEMO_FL_USER3 FL_USER7 +#define IMEMO_FL_USER4 FL_USER8 +#define IMEMO_FL_USER5 FL_USER9 +#define THROW_DATA_CONSUMED IMEMO_FL_USER0 +#define THROW_DATA_P(err) imemo_throw_data_p((VALUE)err) +#define MEMO_CAST(m) ((struct MEMO *)(m)) +#define MEMO_NEW(a,b,c) ((struct MEMO *)rb_imemo_new(imemo_memo, (VALUE)(a), (VALUE)(b), (VALUE)(c), 0)) +#define MEMO_FOR(type,value) ((type *)RARRAY_PTR(value)) +#define NEW_MEMO_FOR(type,value) ((value) = rb_ary_hidden_new_fill(type_roomof(type, VALUE)), MEMO_FOR(type, value)) +#define NEW_PARTIAL_MEMO_FOR(type,value,member) ((value) = rb_ary_hidden_new_fill(type_roomof(type, VALUE)), rb_ary_set_len((value), offsetof(type, member) / sizeof(VALUE)), MEMO_FOR(type, value)) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define IMEMO_TYPE_P(v,t) imemo_type_p((VALUE)v, t) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define END_OF_ENUMERATION(key) +#define METHOD_ENTRY_VISI(me) (rb_method_visibility_t)(((me)->flags & (IMEMO_FL_USER0 | IMEMO_FL_USER1)) >> (IMEMO_FL_USHIFT+0)) +#define METHOD_ENTRY_BASIC(me) (int) (((me)->flags & (IMEMO_FL_USER2 )) >> (IMEMO_FL_USHIFT+2)) +#define METHOD_ENTRY_COMPLEMENTED(me) ((me)->flags & IMEMO_FL_USER3) +#define METHOD_ENTRY_COMPLEMENTED_SET(me) ((me)->flags |= IMEMO_FL_USER3) +#define METHOD_ENTRY_CACHED(me) ((me)->flags & IMEMO_FL_USER4) +#define METHOD_ENTRY_CACHED_SET(me) ((me)->flags |= IMEMO_FL_USER4) +#define METHOD_ENTRY_INVALIDATED(me) ((me)->flags & IMEMO_FL_USER5) +#define METHOD_ENTRY_INVALIDATED_SET(me) ((me)->flags |= IMEMO_FL_USER5) +#define VM_METHOD_TYPE_MINIMUM_BITS 4 +#define rb_iseq_t rb_iseq_t +#define UNDEFINED_METHOD_ENTRY_P(me) (!(me) || !(me)->def || (me)->def->type == VM_METHOD_TYPE_UNDEF) +#define UNDEFINED_REFINED_METHOD_P(def) ((def)->type == VM_METHOD_TYPE_REFINED && UNDEFINED_METHOD_ENTRY_P((def)->body.refined.orig_me)) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_NODE_H 1 +#define RNODE(obj) ((struct RNode *)(obj)) +#define NODE_FL_NEWLINE (((VALUE)1)<<7) +#define NODE_TYPESHIFT 8 +#define NODE_TYPEMASK (((VALUE)0x7f)<flags & NODE_TYPEMASK)>>NODE_TYPESHIFT)) +#define nd_set_type(n,t) rb_node_set_type(n, t) +#define nd_init_type(n,t) (n)->flags=(((n)->flags&~NODE_TYPEMASK)|((((unsigned long)(t))<flags)>>NODE_LSHIFT) +#define nd_set_line(n,l) (n)->flags=(((n)->flags&~((VALUE)(-1)<nd_loc.beg_pos.column)) +#define nd_set_first_column(n,v) ((n)->nd_loc.beg_pos.column = (v)) +#define nd_first_lineno(n) ((int)((n)->nd_loc.beg_pos.lineno)) +#define nd_set_first_lineno(n,v) ((n)->nd_loc.beg_pos.lineno = (v)) +#define nd_first_loc(n) ((n)->nd_loc.beg_pos) +#define nd_set_first_loc(n,v) (nd_first_loc(n) = (v)) +#define nd_last_column(n) ((int)((n)->nd_loc.end_pos.column)) +#define nd_set_last_column(n,v) ((n)->nd_loc.end_pos.column = (v)) +#define nd_last_lineno(n) ((int)((n)->nd_loc.end_pos.lineno)) +#define nd_set_last_lineno(n,v) ((n)->nd_loc.end_pos.lineno = (v)) +#define nd_last_loc(n) ((n)->nd_loc.end_pos) +#define nd_set_last_loc(n,v) (nd_last_loc(n) = (v)) +#define nd_node_id(n) ((n)->node_id) +#define nd_set_node_id(n,id) ((n)->node_id = (id)) +#define nd_head u1.node +#define nd_alen u2.argc +#define nd_next u3.node +#define nd_cond u1.node +#define nd_body u2.node +#define nd_else u3.node +#define nd_resq u2.node +#define nd_ensr u3.node +#define nd_1st u1.node +#define nd_2nd u2.node +#define nd_stts u1.node +#define nd_entry u3.id +#define nd_vid u1.id +#define nd_var u1.node +#define nd_iter u3.node +#define nd_value u2.node +#define nd_aid u3.id +#define nd_lit u1.value +#define nd_recv u1.node +#define nd_mid u2.id +#define nd_args u3.node +#define nd_ainfo u3.args +#define nd_defn u3.node +#define nd_cpath u1.node +#define nd_super u3.node +#define nd_beg u1.node +#define nd_end u2.node +#define nd_state u3.state +#define nd_nth u2.argc +#define nd_alias u1.id +#define nd_orig u2.id +#define nd_undef u2.node +#define nd_brace u2.argc +#define nd_pconst u1.node +#define nd_pkwargs u2.node +#define nd_pkwrestarg u3.node +#define nd_apinfo u3.apinfo +#define nd_fpinfo u3.fpinfo +#define nd_tbl u1.tbl +#define nd_pid u1.id +#define nd_plen u2.argc +#define nd_cflag u2.id +#define nd_cval u3.value +#define nd_rval u2.value +#define nd_tag u1.id +#define NEW_NODE(t,a0,a1,a2,loc) rb_node_newnode((t),(VALUE)(a0),(VALUE)(a1),(VALUE)(a2),loc) +#define NEW_NODE_WITH_LOCALS(t,a1,a2,loc) node_newnode_with_locals(p, (t),(VALUE)(a1),(VALUE)(a2),loc) +#define NEW_DEFN(i,a,d,loc) NEW_NODE(NODE_DEFN,0,i,NEW_SCOPE(a,d,loc),loc) +#define NEW_DEFS(r,i,a,d,loc) NEW_NODE(NODE_DEFS,r,i,NEW_SCOPE(a,d,loc),loc) +#define NEW_SCOPE(a,b,loc) NEW_NODE_WITH_LOCALS(NODE_SCOPE,b,a,loc) +#define NEW_BLOCK(a,loc) NEW_NODE(NODE_BLOCK,a,0,0,loc) +#define NEW_IF(c,t,e,loc) NEW_NODE(NODE_IF,c,t,e,loc) +#define NEW_UNLESS(c,t,e,loc) NEW_NODE(NODE_UNLESS,c,t,e,loc) +#define NEW_CASE(h,b,loc) NEW_NODE(NODE_CASE,h,b,0,loc) +#define NEW_CASE2(b,loc) NEW_NODE(NODE_CASE2,0,b,0,loc) +#define NEW_CASE3(h,b,loc) NEW_NODE(NODE_CASE3,h,b,0,loc) +#define NEW_WHEN(c,t,e,loc) NEW_NODE(NODE_WHEN,c,t,e,loc) +#define NEW_IN(c,t,e,loc) NEW_NODE(NODE_IN,c,t,e,loc) +#define NEW_WHILE(c,b,n,loc) NEW_NODE(NODE_WHILE,c,b,n,loc) +#define NEW_UNTIL(c,b,n,loc) NEW_NODE(NODE_UNTIL,c,b,n,loc) +#define NEW_FOR(i,b,loc) NEW_NODE(NODE_FOR,0,b,i,loc) +#define NEW_FOR_MASGN(v,loc) NEW_NODE(NODE_FOR_MASGN,v,0,0,loc) +#define NEW_ITER(a,b,loc) NEW_NODE(NODE_ITER,0,NEW_SCOPE(a,b,loc),0,loc) +#define NEW_LAMBDA(a,b,loc) NEW_NODE(NODE_LAMBDA,0,NEW_SCOPE(a,b,loc),0,loc) +#define NEW_BREAK(s,loc) NEW_NODE(NODE_BREAK,s,0,0,loc) +#define NEW_NEXT(s,loc) NEW_NODE(NODE_NEXT,s,0,0,loc) +#define NEW_REDO(loc) NEW_NODE(NODE_REDO,0,0,0,loc) +#define NEW_RETRY(loc) NEW_NODE(NODE_RETRY,0,0,0,loc) +#define NEW_BEGIN(b,loc) NEW_NODE(NODE_BEGIN,0,b,0,loc) +#define NEW_RESCUE(b,res,e,loc) NEW_NODE(NODE_RESCUE,b,res,e,loc) +#define NEW_RESBODY(a,ex,n,loc) NEW_NODE(NODE_RESBODY,n,ex,a,loc) +#define NEW_ENSURE(b,en,loc) NEW_NODE(NODE_ENSURE,b,0,en,loc) +#define NEW_RETURN(s,loc) NEW_NODE(NODE_RETURN,s,0,0,loc) +#define NEW_YIELD(a,loc) NEW_NODE(NODE_YIELD,a,0,0,loc) +#define NEW_LIST(a,loc) NEW_NODE(NODE_LIST,a,1,0,loc) +#define NEW_ZLIST(loc) NEW_NODE(NODE_ZLIST,0,0,0,loc) +#define NEW_HASH(a,loc) NEW_NODE(NODE_HASH,a,0,0,loc) +#define NEW_MASGN(l,r,loc) NEW_NODE(NODE_MASGN,l,0,r,loc) +#define NEW_GASGN(v,val,loc) NEW_NODE(NODE_GASGN,v,val,v,loc) +#define NEW_LASGN(v,val,loc) NEW_NODE(NODE_LASGN,v,val,0,loc) +#define NEW_DASGN(v,val,loc) NEW_NODE(NODE_DASGN,v,val,0,loc) +#define NEW_IASGN(v,val,loc) NEW_NODE(NODE_IASGN,v,val,0,loc) +#define NEW_CDECL(v,val,path,loc) NEW_NODE(NODE_CDECL,v,val,path,loc) +#define NEW_CVASGN(v,val,loc) NEW_NODE(NODE_CVASGN,v,val,0,loc) +#define NEW_OP_ASGN1(p,id,a,loc) NEW_NODE(NODE_OP_ASGN1,p,id,a,loc) +#define NEW_OP_ASGN2(r,t,i,o,val,loc) NEW_NODE(NODE_OP_ASGN2,r,val,NEW_OP_ASGN22(i,o,t,loc),loc) +#define NEW_OP_ASGN22(i,o,t,loc) NEW_NODE(NODE_OP_ASGN2,i,o,t,loc) +#define NEW_OP_ASGN_OR(i,val,loc) NEW_NODE(NODE_OP_ASGN_OR,i,val,0,loc) +#define NEW_OP_ASGN_AND(i,val,loc) NEW_NODE(NODE_OP_ASGN_AND,i,val,0,loc) +#define NEW_OP_CDECL(v,op,val,loc) NEW_NODE(NODE_OP_CDECL,v,val,op,loc) +#define NEW_GVAR(v,loc) NEW_NODE(NODE_GVAR,v,0,v,loc) +#define NEW_LVAR(v,loc) NEW_NODE(NODE_LVAR,v,0,0,loc) +#define NEW_DVAR(v,loc) NEW_NODE(NODE_DVAR,v,0,0,loc) +#define NEW_IVAR(v,loc) NEW_NODE(NODE_IVAR,v,0,0,loc) +#define NEW_CONST(v,loc) NEW_NODE(NODE_CONST,v,0,0,loc) +#define NEW_CVAR(v,loc) NEW_NODE(NODE_CVAR,v,0,0,loc) +#define NEW_NTH_REF(n,loc) NEW_NODE(NODE_NTH_REF,0,n,0,loc) +#define NEW_BACK_REF(n,loc) NEW_NODE(NODE_BACK_REF,0,n,0,loc) +#define NEW_MATCH(c,loc) NEW_NODE(NODE_MATCH,c,0,0,loc) +#define NEW_MATCH2(n1,n2,loc) NEW_NODE(NODE_MATCH2,n1,n2,0,loc) +#define NEW_MATCH3(r,n2,loc) NEW_NODE(NODE_MATCH3,r,n2,0,loc) +#define NEW_LIT(l,loc) NEW_NODE(NODE_LIT,l,0,0,loc) +#define NEW_STR(s,loc) NEW_NODE(NODE_STR,s,0,0,loc) +#define NEW_DSTR(s,loc) NEW_NODE(NODE_DSTR,s,1,0,loc) +#define NEW_XSTR(s,loc) NEW_NODE(NODE_XSTR,s,0,0,loc) +#define NEW_DXSTR(s,loc) NEW_NODE(NODE_DXSTR,s,0,0,loc) +#define NEW_DSYM(s,loc) NEW_NODE(NODE_DSYM,s,0,0,loc) +#define NEW_EVSTR(n,loc) NEW_NODE(NODE_EVSTR,0,(n),0,loc) +#define NEW_CALL(r,m,a,loc) NEW_NODE(NODE_CALL,r,m,a,loc) +#define NEW_OPCALL(r,m,a,loc) NEW_NODE(NODE_OPCALL,r,m,a,loc) +#define NEW_FCALL(m,a,loc) NEW_NODE(NODE_FCALL,0,m,a,loc) +#define NEW_VCALL(m,loc) NEW_NODE(NODE_VCALL,0,m,0,loc) +#define NEW_SUPER(a,loc) NEW_NODE(NODE_SUPER,0,0,a,loc) +#define NEW_ZSUPER(loc) NEW_NODE(NODE_ZSUPER,0,0,0,loc) +#define NEW_ARGS_AUX(r,b,loc) NEW_NODE(NODE_ARGS_AUX,r,b,0,loc) +#define NEW_OPT_ARG(i,v,loc) NEW_NODE(NODE_OPT_ARG,i,v,0,loc) +#define NEW_KW_ARG(i,v,loc) NEW_NODE(NODE_KW_ARG,i,v,0,loc) +#define NEW_POSTARG(i,v,loc) NEW_NODE(NODE_POSTARG,i,v,0,loc) +#define NEW_ARGSCAT(a,b,loc) NEW_NODE(NODE_ARGSCAT,a,b,0,loc) +#define NEW_ARGSPUSH(a,b,loc) NEW_NODE(NODE_ARGSPUSH,a,b,0,loc) +#define NEW_SPLAT(a,loc) NEW_NODE(NODE_SPLAT,a,0,0,loc) +#define NEW_BLOCK_PASS(b,loc) NEW_NODE(NODE_BLOCK_PASS,0,b,0,loc) +#define NEW_ALIAS(n,o,loc) NEW_NODE(NODE_ALIAS,n,o,0,loc) +#define NEW_VALIAS(n,o,loc) NEW_NODE(NODE_VALIAS,n,o,0,loc) +#define NEW_UNDEF(i,loc) NEW_NODE(NODE_UNDEF,0,i,0,loc) +#define NEW_CLASS(n,b,s,loc) NEW_NODE(NODE_CLASS,n,NEW_SCOPE(0,b,loc),(s),loc) +#define NEW_SCLASS(r,b,loc) NEW_NODE(NODE_SCLASS,r,NEW_SCOPE(0,b,loc),0,loc) +#define NEW_MODULE(n,b,loc) NEW_NODE(NODE_MODULE,n,NEW_SCOPE(0,b,loc),0,loc) +#define NEW_COLON2(c,i,loc) NEW_NODE(NODE_COLON2,c,i,0,loc) +#define NEW_COLON3(i,loc) NEW_NODE(NODE_COLON3,0,i,0,loc) +#define NEW_DOT2(b,e,loc) NEW_NODE(NODE_DOT2,b,e,0,loc) +#define NEW_DOT3(b,e,loc) NEW_NODE(NODE_DOT3,b,e,0,loc) +#define NEW_SELF(loc) NEW_NODE(NODE_SELF,0,0,1,loc) +#define NEW_NIL(loc) NEW_NODE(NODE_NIL,0,0,0,loc) +#define NEW_TRUE(loc) NEW_NODE(NODE_TRUE,0,0,0,loc) +#define NEW_FALSE(loc) NEW_NODE(NODE_FALSE,0,0,0,loc) +#define NEW_ERRINFO(loc) NEW_NODE(NODE_ERRINFO,0,0,0,loc) +#define NEW_DEFINED(e,loc) NEW_NODE(NODE_DEFINED,e,0,0,loc) +#define NEW_POSTEXE(b,loc) NEW_NODE(NODE_POSTEXE,0,b,0,loc) +#define NEW_ATTRASGN(r,m,a,loc) NEW_NODE(NODE_ATTRASGN,r,m,a,loc) +#define NEW_ERROR(loc) NEW_NODE(NODE_ERROR,0,0,0,loc) +#define NODE_SPECIAL_REQUIRED_KEYWORD ((NODE *)-1) +#define NODE_REQUIRED_KEYWORD_P(node) ((node)->nd_value == NODE_SPECIAL_REQUIRED_KEYWORD) +#define NODE_SPECIAL_NO_NAME_REST ((NODE *)-1) +#define NODE_NAMED_REST_P(node) ((node) != NODE_SPECIAL_NO_NAME_REST) +#define NODE_SPECIAL_EXCESSIVE_COMMA ((ID)1) +#define NODE_SPECIAL_NO_REST_KEYWORD ((NODE *)-1) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_ATOMIC_H +#define RUBY_ATOMIC_GENERIC_MACRO 1 +#define RUBY_ATOMIC_FETCH_ADD(var,val) rbimpl_atomic_fetch_add(&(var), (val)) +#define RUBY_ATOMIC_FETCH_SUB(var,val) rbimpl_atomic_fetch_sub(&(var), (val)) +#define RUBY_ATOMIC_OR(var,val) rbimpl_atomic_or(&(var), (val)) +#define RUBY_ATOMIC_EXCHANGE(var,val) rbimpl_atomic_exchange(&(var), (val)) +#define RUBY_ATOMIC_CAS(var,oldval,newval) rbimpl_atomic_cas(&(var), (oldval), (newval)) +#define RUBY_ATOMIC_SET(var,val) rbimpl_atomic_set(&(var), (val)) +#define RUBY_ATOMIC_ADD(var,val) rbimpl_atomic_add(&(var), (val)) +#define RUBY_ATOMIC_SUB(var,val) rbimpl_atomic_sub(&(var), (val)) +#define RUBY_ATOMIC_INC(var) rbimpl_atomic_inc(&(var)) +#define RUBY_ATOMIC_DEC(var) rbimpl_atomic_dec(&(var)) +#define RUBY_ATOMIC_SIZE_INC(var) rbimpl_atomic_size_inc(&(var)) +#define RUBY_ATOMIC_SIZE_DEC(var) rbimpl_atomic_size_dec(&(var)) +#define RUBY_ATOMIC_SIZE_EXCHANGE(var,val) rbimpl_atomic_size_exchange(&(var), (val)) +#define RUBY_ATOMIC_SIZE_CAS(var,oldval,newval) rbimpl_atomic_size_cas(&(var), (oldval), (newval)) +#define RUBY_ATOMIC_SIZE_ADD(var,val) rbimpl_atomic_size_add(&(var), (val)) +#define RUBY_ATOMIC_SIZE_SUB(var,val) rbimpl_atomic_size_sub(&(var), (val)) +#define RUBY_ATOMIC_PTR_EXCHANGE(var,val) RBIMPL_CAST(rbimpl_atomic_ptr_exchange((void **)&(var), (void *)val)) +#define RUBY_ATOMIC_PTR_CAS(var,oldval,newval) RBIMPL_CAST(rbimpl_atomic_ptr_cas((void **)&(var), (oldval), (newval))) +#define RUBY_ATOMIC_VALUE_EXCHANGE(var,val) rbimpl_atomic_value_exchange(&(var), (val)) +#define RUBY_ATOMIC_VALUE_CAS(var,oldval,newval) rbimpl_atomic_value_cas(&(var), (oldval), (newval)) +#define ATOMIC_ADD(var,val) RUBY_ATOMIC_ADD(var, val) +#define ATOMIC_CAS(var,oldval,newval) RUBY_ATOMIC_CAS(var, oldval, newval) +#define ATOMIC_DEC(var) RUBY_ATOMIC_DEC(var) +#define ATOMIC_EXCHANGE(var,val) RUBY_ATOMIC_EXCHANGE(var, val) +#define ATOMIC_FETCH_ADD(var,val) RUBY_ATOMIC_FETCH_ADD(var, val) +#define ATOMIC_FETCH_SUB(var,val) RUBY_ATOMIC_FETCH_SUB(var, val) +#define ATOMIC_INC(var) RUBY_ATOMIC_INC(var) +#define ATOMIC_OR(var,val) RUBY_ATOMIC_OR(var, val) +#define ATOMIC_PTR_CAS(var,oldval,newval) RUBY_ATOMIC_PTR_CAS(var, oldval, newval) +#define ATOMIC_PTR_EXCHANGE(var,val) RUBY_ATOMIC_PTR_EXCHANGE(var, val) +#define ATOMIC_SET(var,val) RUBY_ATOMIC_SET(var, val) +#define ATOMIC_SIZE_ADD(var,val) RUBY_ATOMIC_SIZE_ADD(var, val) +#define ATOMIC_SIZE_CAS(var,oldval,newval) RUBY_ATOMIC_SIZE_CAS(var, oldval, newval) +#define ATOMIC_SIZE_DEC(var) RUBY_ATOMIC_SIZE_DEC(var) +#define ATOMIC_SIZE_EXCHANGE(var,val) RUBY_ATOMIC_SIZE_EXCHANGE(var, val) +#define ATOMIC_SIZE_INC(var) RUBY_ATOMIC_SIZE_INC(var) +#define ATOMIC_SIZE_SUB(var,val) RUBY_ATOMIC_SIZE_SUB(var, val) +#define ATOMIC_SUB(var,val) RUBY_ATOMIC_SUB(var, val) +#define ATOMIC_VALUE_CAS(var,oldval,val) RUBY_ATOMIC_VALUE_CAS(var, oldval, val) +#define ATOMIC_VALUE_EXCHANGE(var,val) RUBY_ATOMIC_VALUE_EXCHANGE(var, val) +#define RUBY_VM_OPTS_H +#define OPT_TAILCALL_OPTIMIZATION 0 +#define OPT_PEEPHOLE_OPTIMIZATION 1 +#define OPT_SPECIALISED_INSTRUCTION 1 +#define OPT_INLINE_CONST_CACHE 1 +#define OPT_FROZEN_STRING_LITERAL 0 +#define OPT_DEBUG_FROZEN_STRING_LITERAL 0 +#define OPT_THREADED_CODE 0 +#define OPT_DIRECT_THREADED_CODE (OPT_THREADED_CODE == 0) +#define OPT_TOKEN_THREADED_CODE (OPT_THREADED_CODE == 1) +#define OPT_CALL_THREADED_CODE (OPT_THREADED_CODE == 2) +#define OPT_CHECKED_RUN 1 +#define OPT_INLINE_METHOD_CACHE 1 +#define OPT_GLOBAL_METHOD_CACHE 1 +#define OPT_BLOCKINLINING 0 +#define OPT_IC_FOR_IVAR 1 +#define OPT_OPERANDS_UNIFICATION 1 +#define OPT_INSTRUCTIONS_UNIFICATION 0 +#define OPT_UNIFY_ALL_COMBINATION 0 +#define OPT_STACK_CACHING 0 +#define OPT_SUPPORT_JOKE 0 +#define OPT_SUPPORT_CALL_C_FUNCTION 0 +#define VM_COLLECT_USAGE_DETAILS 0 +#define RUBY_SHAPE_H +#define SIZEOF_SHAPE_T 4 +#define SHAPE_IN_BASIC_FLAGS 1 +#define MAX_IVARS (attr_index_t)(-1) +#define SHAPE_ID_NUM_BITS 32 +#define SHAPE_MASK (((uintptr_t)1 << SHAPE_ID_NUM_BITS) - 1) +#define SHAPE_FLAG_MASK (((VALUE)-1) >> SHAPE_ID_NUM_BITS) +#define SHAPE_FLAG_SHIFT ((SIZEOF_VALUE * 8) - SHAPE_ID_NUM_BITS) +#define SHAPE_BITMAP_SIZE 16384 +#define SHAPE_MAX_VARIATIONS 8 +#define MAX_SHAPE_ID (SHAPE_MASK - 1) +#define INVALID_SHAPE_ID SHAPE_MASK +#define ROOT_SHAPE_ID 0x0 +#define SPECIAL_CONST_SHAPE_ID (SIZE_POOL_COUNT * 2) +#define OBJ_TOO_COMPLEX_SHAPE_ID (SPECIAL_CONST_SHAPE_ID + 1) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_THREAD_NATIVE_H 1 +#define _PTHREAD_H +#define _SCHED_H_ +#define _PTHREAD_IMPL_H_ +#pragma clang assume_nonnull begin +#define _PTHREAD_MUTEX_SIG_init 0x32AAABA7 +#define _PTHREAD_ERRORCHECK_MUTEX_SIG_init 0x32AAABA1 +#define _PTHREAD_RECURSIVE_MUTEX_SIG_init 0x32AAABA2 +#define _PTHREAD_FIRSTFIT_MUTEX_SIG_init 0x32AAABA3 +#define _PTHREAD_COND_SIG_init 0x3CB0B1BB +#define _PTHREAD_ONCE_SIG_init 0x30B1BCBA +#define _PTHREAD_RWLOCK_SIG_init 0x2DA8B3B4 +#define SCHED_OTHER 1 +#define SCHED_FIFO 4 +#define SCHED_RR 2 +#define __SCHED_PARAM_SIZE__ 4 +#pragma clang assume_nonnull end +#define _PTHREAD_QOS_H +#define _SYS_QOS_H +#define __QOS_ENUM(name,type,...) enum { __VA_ARGS__ }; typedef type name##_t +#define __QOS_CLASS_AVAILABLE(...) +#undef __QOS_CLASS_AVAILABLE +#define __QOS_CLASS_AVAILABLE __API_AVAILABLE +#undef __QOS_ENUM +#define QOS_MIN_RELATIVE_PRIORITY (-15) +#pragma clang assume_nonnull begin +#pragma clang assume_nonnull end +#define _MACH_PORT_T +#pragma clang assume_nonnull begin +#define pthread_cleanup_push(func,val) { struct __darwin_pthread_handler_rec __handler; pthread_t __self = pthread_self(); __handler.__routine = func; __handler.__arg = val; __handler.__next = __self->__cleanup_stack; __self->__cleanup_stack = &__handler; +#define pthread_cleanup_pop(execute) __self->__cleanup_stack = __handler.__next; if (execute) (__handler.__routine)(__handler.__arg); } +#define PTHREAD_CREATE_JOINABLE 1 +#define PTHREAD_CREATE_DETACHED 2 +#define PTHREAD_INHERIT_SCHED 1 +#define PTHREAD_EXPLICIT_SCHED 2 +#define PTHREAD_CANCEL_ENABLE 0x01 +#define PTHREAD_CANCEL_DISABLE 0x00 +#define PTHREAD_CANCEL_DEFERRED 0x02 +#define PTHREAD_CANCEL_ASYNCHRONOUS 0x00 +#define PTHREAD_CANCELED ((void *) 1) +#define PTHREAD_SCOPE_SYSTEM 1 +#define PTHREAD_SCOPE_PROCESS 2 +#define PTHREAD_PROCESS_SHARED 1 +#define PTHREAD_PROCESS_PRIVATE 2 +#define PTHREAD_PRIO_NONE 0 +#define PTHREAD_PRIO_INHERIT 1 +#define PTHREAD_PRIO_PROTECT 2 +#define PTHREAD_MUTEX_NORMAL 0 +#define PTHREAD_MUTEX_ERRORCHECK 1 +#define PTHREAD_MUTEX_RECURSIVE 2 +#define PTHREAD_MUTEX_DEFAULT PTHREAD_MUTEX_NORMAL +#define PTHREAD_MUTEX_POLICY_FAIRSHARE_NP 1 +#define PTHREAD_MUTEX_POLICY_FIRSTFIT_NP 3 +#define PTHREAD_RWLOCK_INITIALIZER {_PTHREAD_RWLOCK_SIG_init, {0}} +#define PTHREAD_MUTEX_INITIALIZER {_PTHREAD_MUTEX_SIG_init, {0}} +#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER {_PTHREAD_ERRORCHECK_MUTEX_SIG_init, {0}} +#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER {_PTHREAD_RECURSIVE_MUTEX_SIG_init, {0}} +#define _PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT() defined(SWIFT_CLASS_EXTRA) && (!defined(SWIFT_SDK_OVERLAY_PTHREAD_EPOCH) || (SWIFT_SDK_OVERLAY_PTHREAD_EPOCH < 1)) +#define __PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC(msg) __attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" msg "\")"))) +#define PTHREAD_COND_INITIALIZER {_PTHREAD_COND_SIG_init, {0}} +#define PTHREAD_ONCE_INIT {_PTHREAD_ONCE_SIG_init, {0}} +#define PTHREAD_JIT_WRITE_ALLOW_CALLBACKS_NP(...) __attribute__((__used__, __section__("__DATA_CONST,__pth_jit_func"))) static const pthread_jit_write_callback_t __pthread_jit_write_callback_allowlist[] = { __VA_ARGS__, NULL } +#pragma clang assume_nonnull end +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define VM_INSN_INFO_TABLE_IMPL 2 +#define RUBY_NSIG NSIG +#define RUBY_SIGCHLD (SIGCHLD) +#define SIGCHLD_LOSSY (1) +#define WAITPID_USE_SIGCHLD (RUBY_SIGCHLD || SIGCHLD_LOSSY) +#define USE_SIGALTSTACK +#define RB_ALTSTACK_INIT(var,altstack) var = rb_register_sigaltstack(altstack) +#define RB_ALTSTACK_FREE(var) free(var) +#define RB_ALTSTACK(var) var +#define RUBY_THREAD_PTHREAD_H +#define RB_NATIVETHREAD_LOCK_INIT PTHREAD_MUTEX_INITIALIZER +#define RB_NATIVETHREAD_COND_INIT PTHREAD_COND_INITIALIZER +#undef except +#undef try +#undef leave +#undef finally +#define RB_THREAD_LOCAL_SPECIFIER _Thread_local +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_VM_THREAD_MODEL 2 +#define TAG_NONE RUBY_TAG_NONE +#define TAG_RETURN RUBY_TAG_RETURN +#define TAG_BREAK RUBY_TAG_BREAK +#define TAG_NEXT RUBY_TAG_NEXT +#define TAG_RETRY RUBY_TAG_RETRY +#define TAG_REDO RUBY_TAG_REDO +#define TAG_RAISE RUBY_TAG_RAISE +#define TAG_THROW RUBY_TAG_THROW +#define TAG_FATAL RUBY_TAG_FATAL +#define TAG_MASK RUBY_TAG_MASK +#define CoreDataFromValue(obj,type) (type*)DATA_PTR(obj) +#define GetCoreDataFromValue(obj,type,ptr) ((ptr) = CoreDataFromValue((obj), type)) +#define PATHOBJ_PATH 0 +#define PATHOBJ_REALPATH 1 +#define ISEQ_IS_SIZE(body) (body->ic_size + body->ivc_size + body->ise_size + body->icvarc_size) +#define ISEQ_IS_IC_ENTRY(body,idx) (body->is_entries[(idx) + body->ise_size + body->icvarc_size + body->ivc_size].ic_cache); +#define ISEQ_BODY(iseq) ((iseq)->body) +#define USE_LAZY_LOAD 0 +#define GetVMPtr(obj,ptr) GetCoreDataFromValue((obj), rb_vm_t, (ptr)) +#define VM_GLOBAL_CC_CACHE_TABLE_SIZE 1023 +#define RUBY_VM_SIZE_ALIGN 4096 +#define RUBY_VM_THREAD_VM_STACK_SIZE ( 128 * 1024 * sizeof(VALUE)) +#define RUBY_VM_THREAD_VM_STACK_SIZE_MIN ( 2 * 1024 * sizeof(VALUE)) +#define RUBY_VM_THREAD_MACHINE_STACK_SIZE ( 128 * 1024 * sizeof(VALUE)) +#define RUBY_VM_THREAD_MACHINE_STACK_SIZE_MIN ( 16 * 1024 * sizeof(VALUE)) +#define RUBY_VM_FIBER_VM_STACK_SIZE ( 16 * 1024 * sizeof(VALUE)) +#define RUBY_VM_FIBER_VM_STACK_SIZE_MIN ( 2 * 1024 * sizeof(VALUE)) +#define RUBY_VM_FIBER_MACHINE_STACK_SIZE ( 64 * 1024 * sizeof(VALUE)) +#define RUBY_VM_FIBER_MACHINE_STACK_SIZE_MIN ( 16 * 1024 * sizeof(VALUE)) +#define VM_DEBUG_BP_CHECK 0 +#define VM_DEBUG_VERIFY_METHOD_CACHE (VMDEBUG != 0) +#define rb_execution_context_t rb_execution_context_t +#define VM_CORE_H_EC_DEFINED 1 +#define VM_DEFINECLASS_TYPE(x) ((rb_vm_defineclass_type_t)(x) & VM_DEFINECLASS_TYPE_MASK) +#define VM_DEFINECLASS_FLAG_SCOPED 0x08 +#define VM_DEFINECLASS_FLAG_HAS_SUPERCLASS 0x10 +#define VM_DEFINECLASS_SCOPED_P(x) ((x) & VM_DEFINECLASS_FLAG_SCOPED) +#define VM_DEFINECLASS_HAS_SUPERCLASS_P(x) ((x) & VM_DEFINECLASS_FLAG_HAS_SUPERCLASS) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define GetProcPtr(obj,ptr) GetCoreDataFromValue((obj), rb_proc_t, (ptr)) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define GetBindingPtr(obj,ptr) GetCoreDataFromValue((obj), rb_binding_t, (ptr)) +#define VM_CHECKMATCH_TYPE_MASK 0x03 +#define VM_CHECKMATCH_ARRAY 0x04 +#define FUNC_FASTCALL(x) x +#define VM_TAGGED_PTR_SET(p,tag) ((VALUE)(p) | (tag)) +#define VM_TAGGED_PTR_REF(v,mask) ((void *)((v) & ~mask)) +#define GC_GUARDED_PTR(p) VM_TAGGED_PTR_SET((p), 0x01) +#define GC_GUARDED_PTR_REF(p) VM_TAGGED_PTR_REF((p), 0x03) +#define GC_GUARDED_PTR_P(p) (((VALUE)(p)) & 0x01) +#define VM_ENV_DATA_SIZE ( 3) +#define VM_ENV_DATA_INDEX_ME_CREF (-2) +#define VM_ENV_DATA_INDEX_SPECVAL (-1) +#define VM_ENV_DATA_INDEX_FLAGS ( 0) +#define VM_ENV_DATA_INDEX_ENV ( 1) +#define VM_ENV_INDEX_LAST_LVAR (-VM_ENV_DATA_SIZE) +#define RUBYVM_CFUNC_FRAME_P(cfp) (VM_FRAME_TYPE(cfp) == VM_FRAME_MAGIC_CFUNC) +#define VM_GUARDED_PREV_EP(ep) GC_GUARDED_PTR(ep) +#define VM_BLOCK_HANDLER_NONE 0 +#define RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp) ((cfp)+1) +#define RUBY_VM_NEXT_CONTROL_FRAME(cfp) ((cfp)-1) +#define RUBY_VM_VALID_CONTROL_FRAME_P(cfp,ecfp) ((void *)(ecfp) > (void *)(cfp)) +#define SDR() rb_vmdebug_stack_dump_raw(GET_EC(), GET_EC()->cfp) +#define SDR2(cfp) rb_vmdebug_stack_dump_raw(GET_EC(), (cfp)) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define rb_vm_register_special_exception(sp,e,m) rb_vm_register_special_exception_str(sp, e, rb_usascii_str_new_static((m), (long)rb_strlen_lit(m))) +#define sysstack_error GET_VM()->special_exceptions[ruby_error_sysstack] +#define CHECK_VM_STACK_OVERFLOW0(cfp,sp,margin) do { STATIC_ASSERT(sizeof_sp, sizeof(*(sp)) == sizeof(VALUE)); STATIC_ASSERT(sizeof_cfp, sizeof(*(cfp)) == sizeof(rb_control_frame_t)); const struct rb_control_frame_struct *bound = (void *)&(sp)[(margin)]; if (UNLIKELY((cfp) <= &bound[1])) { vm_stackoverflow(); } } while (0) +#define CHECK_VM_STACK_OVERFLOW(cfp,margin) CHECK_VM_STACK_OVERFLOW0((cfp), (cfp)->sp, (margin)) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define GET_VM() rb_current_vm() +#define GET_RACTOR() rb_current_ractor() +#define GET_THREAD() rb_current_thread() +#define GET_EC() rb_current_execution_context(true) +#define RUBY_VM_SET_TIMER_INTERRUPT(ec) ATOMIC_OR((ec)->interrupt_flag, TIMER_INTERRUPT_MASK) +#define RUBY_VM_SET_INTERRUPT(ec) ATOMIC_OR((ec)->interrupt_flag, PENDING_INTERRUPT_MASK) +#define RUBY_VM_SET_POSTPONED_JOB_INTERRUPT(ec) ATOMIC_OR((ec)->interrupt_flag, POSTPONED_JOB_INTERRUPT_MASK) +#define RUBY_VM_SET_TRAP_INTERRUPT(ec) ATOMIC_OR((ec)->interrupt_flag, TRAP_INTERRUPT_MASK) +#define RUBY_VM_SET_TERMINATE_INTERRUPT(ec) ATOMIC_OR((ec)->interrupt_flag, TERMINATE_INTERRUPT_MASK) +#define RUBY_VM_SET_VM_BARRIER_INTERRUPT(ec) ATOMIC_OR((ec)->interrupt_flag, VM_BARRIER_INTERRUPT_MASK) +#define RUBY_VM_INTERRUPTED(ec) ((ec)->interrupt_flag & ~(ec)->interrupt_mask & (PENDING_INTERRUPT_MASK|TRAP_INTERRUPT_MASK)) +#define RUBY_VM_CHECK_INTS(ec) rb_vm_check_ints(ec) +#define EXEC_EVENT_HOOK_ORIG(ec_,hooks_,flag_,self_,id_,called_id_,klass_,data_,pop_p_) do { const rb_event_flag_t flag_arg_ = (flag_); rb_hook_list_t *hooks_arg_ = (hooks_); if (UNLIKELY((hooks_arg_)->events & (flag_arg_))) { rb_exec_event_hook_orig(ec_, hooks_arg_, flag_arg_, self_, id_, called_id_, klass_, data_, pop_p_); } } while (0) +#define EXEC_EVENT_HOOK(ec_,flag_,self_,id_,called_id_,klass_,data_) EXEC_EVENT_HOOK_ORIG(ec_, rb_ec_ractor_hooks(ec_), flag_, self_, id_, called_id_, klass_, data_, 0) +#define EXEC_EVENT_HOOK_AND_POP_FRAME(ec_,flag_,self_,id_,called_id_,klass_,data_) EXEC_EVENT_HOOK_ORIG(ec_, rb_ec_ractor_hooks(ec_), flag_, self_, id_, called_id_, klass_, data_, 1) +#pragma GCC visibility push(default) +#define RUBY_EVENT_COVERAGE_LINE 0x010000 +#define RUBY_EVENT_COVERAGE_BRANCH 0x020000 +#pragma GCC visibility pop +#define PASS_PASSED_BLOCK_HANDLER_EC(ec) pass_passed_block_handler(ec) +#define PASS_PASSED_BLOCK_HANDLER() pass_passed_block_handler(GET_EC()) +#define ruby_setjmp(env) RUBY_SETJMP(env) +#define ruby_longjmp(env,val) RUBY_LONGJMP((env),(val)) +#define _SYS_ERRNO_H_ +#define errno (*__error()) +#define EPERM 1 +#define ENOENT 2 +#define ESRCH 3 +#define EINTR 4 +#define EIO 5 +#define ENXIO 6 +#define E2BIG 7 +#define ENOEXEC 8 +#define EBADF 9 +#define ECHILD 10 +#define EDEADLK 11 +#define ENOMEM 12 +#define EACCES 13 +#define EFAULT 14 +#define ENOTBLK 15 +#define EBUSY 16 +#define EEXIST 17 +#define EXDEV 18 +#define ENODEV 19 +#define ENOTDIR 20 +#define EISDIR 21 +#define EINVAL 22 +#define ENFILE 23 +#define EMFILE 24 +#define ENOTTY 25 +#define ETXTBSY 26 +#define EFBIG 27 +#define ENOSPC 28 +#define ESPIPE 29 +#define EROFS 30 +#define EMLINK 31 +#define EPIPE 32 +#define EDOM 33 +#define ERANGE 34 +#define EAGAIN 35 +#define EWOULDBLOCK EAGAIN +#define EINPROGRESS 36 +#define EALREADY 37 +#define ENOTSOCK 38 +#define EDESTADDRREQ 39 +#define EMSGSIZE 40 +#define EPROTOTYPE 41 +#define ENOPROTOOPT 42 +#define EPROTONOSUPPORT 43 +#define ESOCKTNOSUPPORT 44 +#define ENOTSUP 45 +#define EPFNOSUPPORT 46 +#define EAFNOSUPPORT 47 +#define EADDRINUSE 48 +#define EADDRNOTAVAIL 49 +#define ENETDOWN 50 +#define ENETUNREACH 51 +#define ENETRESET 52 +#define ECONNABORTED 53 +#define ECONNRESET 54 +#define ENOBUFS 55 +#define EISCONN 56 +#define ENOTCONN 57 +#define ESHUTDOWN 58 +#define ETOOMANYREFS 59 +#define ETIMEDOUT 60 +#define ECONNREFUSED 61 +#define ELOOP 62 +#define ENAMETOOLONG 63 +#define EHOSTDOWN 64 +#define EHOSTUNREACH 65 +#define ENOTEMPTY 66 +#define EPROCLIM 67 +#define EUSERS 68 +#define EDQUOT 69 +#define ESTALE 70 +#define EREMOTE 71 +#define EBADRPC 72 +#define ERPCMISMATCH 73 +#define EPROGUNAVAIL 74 +#define EPROGMISMATCH 75 +#define EPROCUNAVAIL 76 +#define ENOLCK 77 +#define ENOSYS 78 +#define EFTYPE 79 +#define EAUTH 80 +#define ENEEDAUTH 81 +#define EPWROFF 82 +#define EDEVERR 83 +#define EOVERFLOW 84 +#define EBADEXEC 85 +#define EBADARCH 86 +#define ESHLIBVERS 87 +#define EBADMACHO 88 +#define ECANCELED 89 +#define EIDRM 90 +#define ENOMSG 91 +#define EILSEQ 92 +#define ENOATTR 93 +#define EBADMSG 94 +#define EMULTIHOP 95 +#define ENODATA 96 +#define ENOLINK 97 +#define ENOSR 98 +#define ENOSTR 99 +#define EPROTO 100 +#define ETIME 101 +#define EOPNOTSUPP 102 +#define ENOPOLICY 103 +#define ENOTRECOVERABLE 104 +#define EOWNERDEAD 105 +#define EQFULL 106 +#define ELAST 106 +#define _SYS_PARAM_H_ +#define BSD 199506 +#define BSD4_3 1 +#define BSD4_4 1 +#define NeXTBSD 1995064 +#define NeXTBSD4_0 0 +#define MAXCOMLEN 16 +#define MAXINTERP 64 +#define MAXLOGNAME 255 +#define MAXUPRC CHILD_MAX +#define NCARGS ARG_MAX +#define NGROUPS NGROUPS_MAX +#define NOFILE 256 +#define NOGROUP 65535 +#define MAXHOSTNAMELEN 256 +#define MAXDOMNAMELEN 256 +#define _BSD_MACHINE_PARAM_H_ +#define _ARM_PARAM_H_ +#define _ARM__PARAM_H_ +#define __DARWIN_ALIGNBYTES (sizeof(__darwin_size_t) - 1) +#define __DARWIN_ALIGN(p) ((__darwin_size_t)((__darwin_size_t)(p) + __DARWIN_ALIGNBYTES) &~ __DARWIN_ALIGNBYTES) +#define __DARWIN_ALIGNBYTES32 (sizeof(__uint32_t) - 1) +#define __DARWIN_ALIGN32(p) ((__darwin_size_t)((__darwin_size_t)(p) + __DARWIN_ALIGNBYTES32) &~ __DARWIN_ALIGNBYTES32) +#define ALIGNBYTES __DARWIN_ALIGNBYTES +#define ALIGN(p) __DARWIN_ALIGN(p) +#define NBPG 4096 +#define PGOFSET (NBPG-1) +#define PGSHIFT 12 +#define DEV_BSIZE 512 +#define DEV_BSHIFT 9 +#define BLKDEV_IOSIZE 2048 +#define MAXPHYS (64 * 1024) +#define CLSIZE 1 +#define CLSIZELOG2 0 +#define MSIZESHIFT 8 +#define MSIZE (1 << MSIZESHIFT) +#define MCLSHIFT 11 +#define MCLBYTES (1 << MCLSHIFT) +#define MBIGCLSHIFT 12 +#define MBIGCLBYTES (1 << MBIGCLSHIFT) +#define M16KCLSHIFT 14 +#define M16KCLBYTES (1 << M16KCLSHIFT) +#define MCLOFSET (MCLBYTES - 1) +#define NMBCLUSTERS CONFIG_NMBCLUSTERS +#define ctos(x) (x) +#define stoc(x) (x) +#define ctod(x) ((x)<<(PGSHIFT-DEV_BSHIFT)) +#define dtoc(x) ((x)>>(PGSHIFT-DEV_BSHIFT)) +#define dtob(x) ((x)<>PGSHIFT) +#define btodb(bytes,devBlockSize) ((unsigned)(bytes) / devBlockSize) +#define dbtob(db,devBlockSize) ((unsigned)(db) * devBlockSize) +#define bdbtofsb(bn) ((bn) / (BLKDEV_IOSIZE/DEV_BSIZE)) +#define STATUS_WORD(rpl,ipl) (((ipl) << 8) | (rpl)) +#define USERMODE(x) (((x) & 3) == 3) +#define BASEPRI(x) (((x) & (255 << 8)) == 0) +#define DELAY(n) { int N = (n); while (--N > 0); } +#define PSWP 0 +#define PVM 4 +#define PINOD 8 +#define PRIBIO 16 +#define PVFS 20 +#define PZERO 22 +#define PSOCK 24 +#define PWAIT 32 +#define PLOCK 36 +#define PPAUSE 40 +#define PUSER 50 +#define MAXPRI 127 +#define PRIMASK 0x0ff +#define PCATCH 0x100 +#define PTTYBLOCK 0x200 +#define PDROP 0x400 +#define PSPIN 0x800 +#define NBPW sizeof(int) +#define CMASK 022 +#define NODEV (dev_t)(-1) +#define CLBYTES (CLSIZE*NBPG) +#define CLOFSET (CLSIZE*NBPG-1) +#define claligned(x) ((((int)(x))&CLOFSET)==0) +#define CLOFF CLOFSET +#define CLSHIFT (PGSHIFT+CLSIZELOG2) +#define clbase(i) (i) +#define clrnd(i) (i) +#define CBLOCK 64 +#define CBQSIZE (CBLOCK/NBBY) +#define CBSIZE (CBLOCK - sizeof(struct cblock *) - CBQSIZE) +#define CROUND (CBLOCK - 1) +#define MAXBSIZE (256 * 4096) +#define MAXPHYSIO MAXPHYS +#define MAXFRAG 8 +#define MAXPHYSIO_WIRED (16 * 1024 * 1024) +#define MAXPATHLEN PATH_MAX +#define MAXSYMLINKS 32 +#define setbit(a,i) (((unsigned char *)(a))[(i)/NBBY] |= 1u<<((i)%NBBY)) +#define clrbit(a,i) (((unsigned char *)(a))[(i)/NBBY] &= ~(1u<<((i)%NBBY))) +#define isset(a,i) (((unsigned char *)(a))[(i)/NBBY] & (1u<<((i)%NBBY))) +#define isclr(a,i) ((((unsigned char *)(a))[(i)/NBBY] & (1u<<((i)%NBBY))) == 0) +#define roundup(x,y) ((((x) % (y)) == 0) ? (x) : ((x) + ((y) - ((x) % (y))))) +#define powerof2(x) ((((x)-1)&(x))==0) +#define MIN(a,b) (((a)<(b))?(a):(b)) +#define MAX(a,b) (((a)>(b))?(a):(b)) +#define FSHIFT 11 +#define FSCALE (1<tag; _tag.lock_rec = rb_ec_vm_lock_rec(_ec); +#define EC_POP_TAG() _ec->tag = _tag.prev; } while (0) +#define EC_TMPPOP_TAG() _ec->tag = _tag.prev +#define EC_REPUSH_TAG() (void)(_ec->tag = &_tag) +#define VAR_FROM_MEMORY(var) __extension__(*(__typeof__(var) volatile *)&(var)) +#define VAR_INITIALIZED(var) ((var) = VAR_FROM_MEMORY(var)) +#define VAR_NOCLOBBERED(var) volatile var +#define EC_EXEC_TAG() (ruby_setjmp(_tag.buf) ? rb_ec_tag_state(VAR_FROM_MEMORY(_ec)) : (EC_REPUSH_TAG(), 0)) +#define EC_JUMP_TAG(ec,st) rb_ec_tag_jump(ec, st) +#define INTERNAL_EXCEPTION_P(exc) FIXNUM_P(exc) +#define CREF_FL_PUSHED_BY_EVAL IMEMO_FL_USER1 +#define CREF_FL_OMOD_SHARED IMEMO_FL_USER2 +#define CREF_FL_SINGLETON IMEMO_FL_USER3 +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define rb_ec_raised_set(ec,f) ((ec)->raised_flag |= (f)) +#define rb_ec_raised_reset(ec,f) ((ec)->raised_flag &= ~(f)) +#define rb_ec_raised_p(ec,f) (((ec)->raised_flag & (f)) != 0) +#define rb_ec_raised_clear(ec) ((ec)->raised_flag = 0) +#define CharNext(p) rb_char_next(p) +#define RUBY_GC_H 1 +#define SET_MACHINE_STACK_END(p) __asm__ __volatile__ ("mov\t%0, sp" : "=r" (*(p))) +#define RB_GC_SAVE_MACHINE_CONTEXT(th) do { FLUSH_REGISTER_WINDOWS; setjmp((th)->ec->machine.regs); SET_MACHINE_STACK_END(&(th)->ec->machine.stack_end); } while (0) +#define RUBY_MARK_FREE_DEBUG 0 +#define RUBY_MARK_ENTER(msg) +#define RUBY_MARK_LEAVE(msg) +#define RUBY_FREE_ENTER(msg) +#define RUBY_FREE_LEAVE(msg) +#define RUBY_GC_INFO if(0)printf +#define RUBY_MARK_MOVABLE_UNLESS_NULL(ptr) do { VALUE markobj = (ptr); if (RTEST(markobj)) {rb_gc_mark_movable(markobj);} } while (0) +#define RUBY_MARK_UNLESS_NULL(ptr) do { VALUE markobj = (ptr); if (RTEST(markobj)) {rb_gc_mark(markobj);} } while (0) +#define RUBY_FREE_UNLESS_NULL(ptr) if(ptr){ruby_xfree(ptr);(ptr)=NULL;} +#define STACK_UPPER(x,a,b) (b) +#define STACK_GROW_DIR_DETECTION +#define STACK_DIR_UPPER(a,b) STACK_UPPER(0, (a), (b)) +#define IS_STACK_DIR_UPPER() STACK_DIR_UPPER(1,0) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_COMPILE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_CONT_H +#define RUBY_ISEQ_H 1 +#define ISEQ_MAJOR_VERSION ((unsigned int)ruby_api_version[0]) +#define ISEQ_MINOR_VERSION ((unsigned int)ruby_api_version[1]) +#define ISEQ_MBITS_SIZE sizeof(iseq_bits_t) +#define ISEQ_MBITS_BITLENGTH (ISEQ_MBITS_SIZE * CHAR_BIT) +#define ISEQ_MBITS_SET(buf,i) (buf[(i) / ISEQ_MBITS_BITLENGTH] |= ((iseq_bits_t)1 << ((i) % ISEQ_MBITS_BITLENGTH))) +#define ISEQ_MBITS_SET_P(buf,i) ((buf[(i) / ISEQ_MBITS_BITLENGTH] >> ((i) % ISEQ_MBITS_BITLENGTH)) & 0x1) +#define ISEQ_MBITS_BUFLEN(size) roomof(size, ISEQ_MBITS_BITLENGTH) +#define USE_ISEQ_NODE_ID 1 +#define ISEQ_COVERAGE(iseq) ISEQ_BODY(iseq)->variable.coverage +#define ISEQ_COVERAGE_SET(iseq,cov) RB_OBJ_WRITE(iseq, &ISEQ_BODY(iseq)->variable.coverage, cov) +#define ISEQ_LINE_COVERAGE(iseq) RARRAY_AREF(ISEQ_COVERAGE(iseq), COVERAGE_INDEX_LINES) +#define ISEQ_BRANCH_COVERAGE(iseq) RARRAY_AREF(ISEQ_COVERAGE(iseq), COVERAGE_INDEX_BRANCHES) +#define ISEQ_PC2BRANCHINDEX(iseq) ISEQ_BODY(iseq)->variable.pc2branchindex +#define ISEQ_PC2BRANCHINDEX_SET(iseq,h) RB_OBJ_WRITE(iseq, &ISEQ_BODY(iseq)->variable.pc2branchindex, h) +#define ISEQ_FLIP_CNT(iseq) ISEQ_BODY(iseq)->variable.flip_count +#define ISEQ_TRACE_EVENTS (RUBY_EVENT_LINE | RUBY_EVENT_CLASS | RUBY_EVENT_END | RUBY_EVENT_CALL | RUBY_EVENT_RETURN| RUBY_EVENT_C_CALL| RUBY_EVENT_C_RETURN| RUBY_EVENT_B_CALL| RUBY_EVENT_B_RETURN| RUBY_EVENT_COVERAGE_LINE| RUBY_EVENT_COVERAGE_BRANCH) +#define ISEQ_NOT_LOADED_YET IMEMO_FL_USER1 +#define ISEQ_USE_COMPILE_DATA IMEMO_FL_USER2 +#define ISEQ_TRANSLATED IMEMO_FL_USER3 +#define ISEQ_EXECUTABLE_P(iseq) (FL_TEST_RAW(((VALUE)iseq), ISEQ_NOT_LOADED_YET | ISEQ_USE_COMPILE_DATA) == 0) +#pragma GCC visibility push(default) +#define INITIAL_ISEQ_COMPILE_DATA_STORAGE_BUFF_SIZE (512) +#pragma GCC visibility pop +#define INTERNAL_ERROR_H +#define INTERNAL_STRING_H +#define RUBY_ENCODING_H 1 +#define RUBY_INTERNAL_ENCODING_CODERANGE_H +#pragma GCC visibility push(default) +#define ENC_CODERANGE_MASK RUBY_ENC_CODERANGE_MASK +#define ENC_CODERANGE_UNKNOWN RUBY_ENC_CODERANGE_UNKNOWN +#define ENC_CODERANGE_7BIT RUBY_ENC_CODERANGE_7BIT +#define ENC_CODERANGE_VALID RUBY_ENC_CODERANGE_VALID +#define ENC_CODERANGE_BROKEN RUBY_ENC_CODERANGE_BROKEN +#define ENC_CODERANGE_CLEAN_P(cr) RB_ENC_CODERANGE_CLEAN_P(cr) +#define ENC_CODERANGE(obj) RB_ENC_CODERANGE(obj) +#define ENC_CODERANGE_ASCIIONLY(obj) RB_ENC_CODERANGE_ASCIIONLY(obj) +#define ENC_CODERANGE_SET(obj,cr) RB_ENC_CODERANGE_SET(obj,cr) +#define ENC_CODERANGE_CLEAR(obj) RB_ENC_CODERANGE_CLEAR(obj) +#define ENC_CODERANGE_AND(a,b) RB_ENC_CODERANGE_AND(a, b) +#define ENCODING_CODERANGE_SET(obj,encindex,cr) RB_ENCODING_CODERANGE_SET(obj, encindex, cr) +#define RB_ENC_CODERANGE RB_ENC_CODERANGE +#define RB_ENC_CODERANGE_AND RB_ENC_CODERANGE_AND +#define RB_ENC_CODERANGE_ASCIIONLY RB_ENC_CODERANGE_ASCIIONLY +#define RB_ENC_CODERANGE_CLEAN_P RB_ENC_CODERANGE_CLEAN_P +#define RB_ENC_CODERANGE_CLEAR RB_ENC_CODERANGE_CLEAR +#define RB_ENC_CODERANGE_SET RB_ENC_CODERANGE_SET +#pragma GCC visibility pop +#define RUBY_INTERNAL_ENCODING_CTYPE_H +#define ONIGMO_H +#define ONIGMO_VERSION_MAJOR 6 +#define ONIGMO_VERSION_MINOR 1 +#define ONIGMO_VERSION_TEENY 3 +#define ONIG_EXTERN RUBY_EXTERN +#pragma GCC visibility push(default) +#define UChar OnigUChar +#define ONIG_INFINITE_DISTANCE ~((OnigDistance )0) +#define OnigCodePointMaskWidth 3 +#define OnigCodePointMask ((1<flags & ONIGENC_FLAG_UNICODE) +#define ONIGENC_NAME(enc) ((enc)->name) +#define ONIGENC_MBC_CASE_FOLD(enc,flag,pp,end,buf) (enc)->mbc_case_fold(flag,(const OnigUChar** )pp,end,buf,enc) +#define ONIGENC_IS_ALLOWED_REVERSE_MATCH(enc,s,end) (enc)->is_allowed_reverse_match(s,end,enc) +#define ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc,start,s,end) (enc)->left_adjust_char_head(start, s, end, enc) +#define ONIGENC_APPLY_ALL_CASE_FOLD(enc,case_fold_flag,f,arg) (enc)->apply_all_case_fold(case_fold_flag,f,arg,enc) +#define ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc,case_fold_flag,p,end,acs) (enc)->get_case_fold_codes_by_str(case_fold_flag,p,end,acs,enc) +#define ONIGENC_STEP_BACK(enc,start,s,end,n) onigenc_step_back((enc),(start),(s),(end),(n)) +#define ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(n) (n) +#define ONIGENC_MBCLEN_CHARFOUND_P(r) (0 < (r)) +#define ONIGENC_MBCLEN_CHARFOUND_LEN(r) (r) +#define ONIGENC_CONSTRUCT_MBCLEN_INVALID() (-1) +#define ONIGENC_MBCLEN_INVALID_P(r) ((r) == -1) +#define ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(n) (-1-(n)) +#define ONIGENC_MBCLEN_NEEDMORE_P(r) ((r) < -1) +#define ONIGENC_MBCLEN_NEEDMORE_LEN(r) (-1-(r)) +#define ONIGENC_PRECISE_MBC_ENC_LEN(enc,p,e) (enc)->precise_mbc_enc_len(p,e,enc) +#define ONIGENC_MBC_ENC_LEN(enc,p,e) onigenc_mbclen(p,e,enc) +#define ONIGENC_MBC_MAXLEN(enc) ((enc)->max_enc_len) +#define ONIGENC_MBC_MAXLEN_DIST(enc) ONIGENC_MBC_MAXLEN(enc) +#define ONIGENC_MBC_MINLEN(enc) ((enc)->min_enc_len) +#define ONIGENC_IS_MBC_NEWLINE(enc,p,end) (enc)->is_mbc_newline((p),(end),enc) +#define ONIGENC_MBC_TO_CODE(enc,p,end) (enc)->mbc_to_code((p),(end),enc) +#define ONIGENC_CODE_TO_MBCLEN(enc,code) (enc)->code_to_mbclen(code,enc) +#define ONIGENC_CODE_TO_MBC(enc,code,buf) (enc)->code_to_mbc(code,buf,enc) +#define ONIGENC_PROPERTY_NAME_TO_CTYPE(enc,p,end) (enc)->property_name_to_ctype(enc,p,end) +#define ONIGENC_IS_CODE_CTYPE(enc,code,ctype) (enc)->is_code_ctype(code,ctype,enc) +#define ONIGENC_IS_CODE_NEWLINE(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_NEWLINE) +#define ONIGENC_IS_CODE_GRAPH(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_GRAPH) +#define ONIGENC_IS_CODE_PRINT(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PRINT) +#define ONIGENC_IS_CODE_ALNUM(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALNUM) +#define ONIGENC_IS_CODE_ALPHA(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALPHA) +#define ONIGENC_IS_CODE_LOWER(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_LOWER) +#define ONIGENC_IS_CODE_UPPER(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_UPPER) +#define ONIGENC_IS_CODE_CNTRL(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_CNTRL) +#define ONIGENC_IS_CODE_PUNCT(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PUNCT) +#define ONIGENC_IS_CODE_SPACE(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_SPACE) +#define ONIGENC_IS_CODE_BLANK(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_BLANK) +#define ONIGENC_IS_CODE_DIGIT(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_DIGIT) +#define ONIGENC_IS_CODE_XDIGIT(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_XDIGIT) +#define ONIGENC_IS_CODE_WORD(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_WORD) +#define ONIGENC_GET_CTYPE_CODE_RANGE(enc,ctype,sbout,ranges) (enc)->get_ctype_code_range(ctype,sbout,ranges,enc) +#define ONIG_NREGION 4 +#define ONIG_MAX_CAPTURE_GROUP_NUM 32767 +#define ONIG_MAX_BACKREF_NUM 1000 +#define ONIG_MAX_REPEAT_NUM 100000 +#define ONIG_MAX_MULTI_BYTE_RANGES_NUM 10000 +#define ONIG_MAX_ERROR_MESSAGE_LEN 90 +#define ONIG_OPTION_DEFAULT ONIG_OPTION_NONE +#define ONIG_OPTION_NONE 0U +#define ONIG_OPTION_IGNORECASE 1U +#define ONIG_OPTION_EXTEND (ONIG_OPTION_IGNORECASE << 1) +#define ONIG_OPTION_MULTILINE (ONIG_OPTION_EXTEND << 1) +#define ONIG_OPTION_DOTALL ONIG_OPTION_MULTILINE +#define ONIG_OPTION_SINGLELINE (ONIG_OPTION_MULTILINE << 1) +#define ONIG_OPTION_FIND_LONGEST (ONIG_OPTION_SINGLELINE << 1) +#define ONIG_OPTION_FIND_NOT_EMPTY (ONIG_OPTION_FIND_LONGEST << 1) +#define ONIG_OPTION_NEGATE_SINGLELINE (ONIG_OPTION_FIND_NOT_EMPTY << 1) +#define ONIG_OPTION_DONT_CAPTURE_GROUP (ONIG_OPTION_NEGATE_SINGLELINE << 1) +#define ONIG_OPTION_CAPTURE_GROUP (ONIG_OPTION_DONT_CAPTURE_GROUP << 1) +#define ONIG_OPTION_NOTBOL (ONIG_OPTION_CAPTURE_GROUP << 1) +#define ONIG_OPTION_NOTEOL (ONIG_OPTION_NOTBOL << 1) +#define ONIG_OPTION_NOTBOS (ONIG_OPTION_NOTEOL << 1) +#define ONIG_OPTION_NOTEOS (ONIG_OPTION_NOTBOS << 1) +#define ONIG_OPTION_ASCII_RANGE (ONIG_OPTION_NOTEOS << 1) +#define ONIG_OPTION_POSIX_BRACKET_ALL_RANGE (ONIG_OPTION_ASCII_RANGE << 1) +#define ONIG_OPTION_WORD_BOUND_ALL_RANGE (ONIG_OPTION_POSIX_BRACKET_ALL_RANGE << 1) +#define ONIG_OPTION_NEWLINE_CRLF (ONIG_OPTION_WORD_BOUND_ALL_RANGE << 1) +#define ONIG_OPTION_MAXBIT ONIG_OPTION_NEWLINE_CRLF +#define ONIG_OPTION_ON(options,regopt) ((options) |= (regopt)) +#define ONIG_OPTION_OFF(options,regopt) ((options) &= ~(regopt)) +#define ONIG_IS_OPTION_ON(options,option) ((options) & (option)) +#define ONIG_SYNTAX_ASIS (&OnigSyntaxASIS) +#define ONIG_SYNTAX_POSIX_BASIC (&OnigSyntaxPosixBasic) +#define ONIG_SYNTAX_POSIX_EXTENDED (&OnigSyntaxPosixExtended) +#define ONIG_SYNTAX_EMACS (&OnigSyntaxEmacs) +#define ONIG_SYNTAX_GREP (&OnigSyntaxGrep) +#define ONIG_SYNTAX_GNU_REGEX (&OnigSyntaxGnuRegex) +#define ONIG_SYNTAX_JAVA (&OnigSyntaxJava) +#define ONIG_SYNTAX_PERL58 (&OnigSyntaxPerl58) +#define ONIG_SYNTAX_PERL58_NG (&OnigSyntaxPerl58_NG) +#define ONIG_SYNTAX_PERL (&OnigSyntaxPerl) +#define ONIG_SYNTAX_RUBY (&OnigSyntaxRuby) +#define ONIG_SYNTAX_PYTHON (&OnigSyntaxPython) +#define ONIG_SYNTAX_DEFAULT OnigDefaultSyntax +#define ONIG_SYN_OP_VARIABLE_META_CHARACTERS (1U<<0) +#define ONIG_SYN_OP_DOT_ANYCHAR (1U<<1) +#define ONIG_SYN_OP_ASTERISK_ZERO_INF (1U<<2) +#define ONIG_SYN_OP_ESC_ASTERISK_ZERO_INF (1U<<3) +#define ONIG_SYN_OP_PLUS_ONE_INF (1U<<4) +#define ONIG_SYN_OP_ESC_PLUS_ONE_INF (1U<<5) +#define ONIG_SYN_OP_QMARK_ZERO_ONE (1U<<6) +#define ONIG_SYN_OP_ESC_QMARK_ZERO_ONE (1U<<7) +#define ONIG_SYN_OP_BRACE_INTERVAL (1U<<8) +#define ONIG_SYN_OP_ESC_BRACE_INTERVAL (1U<<9) +#define ONIG_SYN_OP_VBAR_ALT (1U<<10) +#define ONIG_SYN_OP_ESC_VBAR_ALT (1U<<11) +#define ONIG_SYN_OP_LPAREN_SUBEXP (1U<<12) +#define ONIG_SYN_OP_ESC_LPAREN_SUBEXP (1U<<13) +#define ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR (1U<<14) +#define ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR (1U<<15) +#define ONIG_SYN_OP_DECIMAL_BACKREF (1U<<16) +#define ONIG_SYN_OP_BRACKET_CC (1U<<17) +#define ONIG_SYN_OP_ESC_W_WORD (1U<<18) +#define ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END (1U<<19) +#define ONIG_SYN_OP_ESC_B_WORD_BOUND (1U<<20) +#define ONIG_SYN_OP_ESC_S_WHITE_SPACE (1U<<21) +#define ONIG_SYN_OP_ESC_D_DIGIT (1U<<22) +#define ONIG_SYN_OP_LINE_ANCHOR (1U<<23) +#define ONIG_SYN_OP_POSIX_BRACKET (1U<<24) +#define ONIG_SYN_OP_QMARK_NON_GREEDY (1U<<25) +#define ONIG_SYN_OP_ESC_CONTROL_CHARS (1U<<26) +#define ONIG_SYN_OP_ESC_C_CONTROL (1U<<27) +#define ONIG_SYN_OP_ESC_OCTAL3 (1U<<28) +#define ONIG_SYN_OP_ESC_X_HEX2 (1U<<29) +#define ONIG_SYN_OP_ESC_X_BRACE_HEX8 (1U<<30) +#define ONIG_SYN_OP_ESC_O_BRACE_OCTAL (1U<<31) +#define ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE (1U<<0) +#define ONIG_SYN_OP2_QMARK_GROUP_EFFECT (1U<<1) +#define ONIG_SYN_OP2_OPTION_PERL (1U<<2) +#define ONIG_SYN_OP2_OPTION_RUBY (1U<<3) +#define ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT (1U<<4) +#define ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL (1U<<5) +#define ONIG_SYN_OP2_CCLASS_SET_OP (1U<<6) +#define ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP (1U<<7) +#define ONIG_SYN_OP2_ESC_K_NAMED_BACKREF (1U<<8) +#define ONIG_SYN_OP2_ESC_G_SUBEXP_CALL (1U<<9) +#define ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY (1U<<10) +#define ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL (1U<<11) +#define ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META (1U<<12) +#define ONIG_SYN_OP2_ESC_V_VTAB (1U<<13) +#define ONIG_SYN_OP2_ESC_U_HEX4 (1U<<14) +#define ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR (1U<<15) +#define ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY (1U<<16) +#define ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT (1U<<17) +#define ONIG_SYN_OP2_ESC_H_XDIGIT (1U<<19) +#define ONIG_SYN_OP2_INEFFECTIVE_ESCAPE (1U<<20) +#define ONIG_SYN_OP2_ESC_CAPITAL_R_LINEBREAK (1U<<21) +#define ONIG_SYN_OP2_ESC_CAPITAL_X_EXTENDED_GRAPHEME_CLUSTER (1U<<22) +#define ONIG_SYN_OP2_ESC_V_VERTICAL_WHITESPACE (1U<<23) +#define ONIG_SYN_OP2_ESC_H_HORIZONTAL_WHITESPACE (1U<<24) +#define ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP (1U<<25) +#define ONIG_SYN_OP2_ESC_G_BRACE_BACKREF (1U<<26) +#define ONIG_SYN_OP2_QMARK_SUBEXP_CALL (1U<<27) +#define ONIG_SYN_OP2_QMARK_VBAR_BRANCH_RESET (1U<<28) +#define ONIG_SYN_OP2_QMARK_LPAREN_CONDITION (1U<<29) +#define ONIG_SYN_OP2_QMARK_CAPITAL_P_NAMED_GROUP (1U<<30) +#define ONIG_SYN_OP2_QMARK_TILDE_ABSENT (1U<<31) +#define ONIG_SYN_CONTEXT_INDEP_ANCHORS (1U<<31) +#define ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS (1U<<0) +#define ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS (1U<<1) +#define ONIG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP (1U<<2) +#define ONIG_SYN_ALLOW_INVALID_INTERVAL (1U<<3) +#define ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV (1U<<4) +#define ONIG_SYN_STRICT_CHECK_BACKREF (1U<<5) +#define ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND (1U<<6) +#define ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP (1U<<7) +#define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME (1U<<8) +#define ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY (1U<<9) +#define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME_CALL (1U<<10) +#define ONIG_SYN_USE_LEFT_MOST_NAMED_GROUP (1U<<11) +#define ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC (1U<<20) +#define ONIG_SYN_BACKSLASH_ESCAPE_IN_CC (1U<<21) +#define ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC (1U<<22) +#define ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC (1U<<23) +#define ONIG_SYN_WARN_CC_OP_NOT_ESCAPED (1U<<24) +#define ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT (1U<<25) +#define ONIG_SYN_WARN_CC_DUP (1U<<26) +#define ONIG_META_CHAR_ESCAPE 0 +#define ONIG_META_CHAR_ANYCHAR 1 +#define ONIG_META_CHAR_ANYTIME 2 +#define ONIG_META_CHAR_ZERO_OR_ONE_TIME 3 +#define ONIG_META_CHAR_ONE_OR_MORE_TIME 4 +#define ONIG_META_CHAR_ANYCHAR_ANYTIME 5 +#define ONIG_INEFFECTIVE_META_CHAR 0 +#define ONIG_IS_PATTERN_ERROR(ecode) ((ecode) <= -100 && (ecode) > -1000) +#define ONIG_NORMAL 0 +#define ONIG_MISMATCH -1 +#define ONIG_NO_SUPPORT_CONFIG -2 +#define ONIGERR_MEMORY -5 +#define ONIGERR_TYPE_BUG -6 +#define ONIGERR_PARSER_BUG -11 +#define ONIGERR_STACK_BUG -12 +#define ONIGERR_UNDEFINED_BYTECODE -13 +#define ONIGERR_UNEXPECTED_BYTECODE -14 +#define ONIGERR_MATCH_STACK_LIMIT_OVER -15 +#define ONIGERR_PARSE_DEPTH_LIMIT_OVER -16 +#define ONIGERR_DEFAULT_ENCODING_IS_NOT_SET -21 +#define ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR -22 +#define ONIGERR_INVALID_ARGUMENT -30 +#define ONIGERR_END_PATTERN_AT_LEFT_BRACE -100 +#define ONIGERR_END_PATTERN_AT_LEFT_BRACKET -101 +#define ONIGERR_EMPTY_CHAR_CLASS -102 +#define ONIGERR_PREMATURE_END_OF_CHAR_CLASS -103 +#define ONIGERR_END_PATTERN_AT_ESCAPE -104 +#define ONIGERR_END_PATTERN_AT_META -105 +#define ONIGERR_END_PATTERN_AT_CONTROL -106 +#define ONIGERR_META_CODE_SYNTAX -108 +#define ONIGERR_CONTROL_CODE_SYNTAX -109 +#define ONIGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE -110 +#define ONIGERR_CHAR_CLASS_VALUE_AT_START_OF_RANGE -111 +#define ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS -112 +#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED -113 +#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID -114 +#define ONIGERR_NESTED_REPEAT_OPERATOR -115 +#define ONIGERR_UNMATCHED_CLOSE_PARENTHESIS -116 +#define ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS -117 +#define ONIGERR_END_PATTERN_IN_GROUP -118 +#define ONIGERR_UNDEFINED_GROUP_OPTION -119 +#define ONIGERR_INVALID_POSIX_BRACKET_TYPE -121 +#define ONIGERR_INVALID_LOOK_BEHIND_PATTERN -122 +#define ONIGERR_INVALID_REPEAT_RANGE_PATTERN -123 +#define ONIGERR_INVALID_CONDITION_PATTERN -124 +#define ONIGERR_TOO_BIG_NUMBER -200 +#define ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE -201 +#define ONIGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE -202 +#define ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS -203 +#define ONIGERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE -204 +#define ONIGERR_TOO_MANY_MULTI_BYTE_RANGES -205 +#define ONIGERR_TOO_SHORT_MULTI_BYTE_STRING -206 +#define ONIGERR_TOO_BIG_BACKREF_NUMBER -207 +#define ONIGERR_INVALID_BACKREF -208 +#define ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED -209 +#define ONIGERR_TOO_MANY_CAPTURE_GROUPS -210 +#define ONIGERR_TOO_SHORT_DIGITS -211 +#define ONIGERR_TOO_LONG_WIDE_CHAR_VALUE -212 +#define ONIGERR_EMPTY_GROUP_NAME -214 +#define ONIGERR_INVALID_GROUP_NAME -215 +#define ONIGERR_INVALID_CHAR_IN_GROUP_NAME -216 +#define ONIGERR_UNDEFINED_NAME_REFERENCE -217 +#define ONIGERR_UNDEFINED_GROUP_REFERENCE -218 +#define ONIGERR_MULTIPLEX_DEFINED_NAME -219 +#define ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL -220 +#define ONIGERR_NEVER_ENDING_RECURSION -221 +#define ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY -222 +#define ONIGERR_INVALID_CHAR_PROPERTY_NAME -223 +#define ONIGERR_INVALID_CODE_POINT_VALUE -400 +#define ONIGERR_INVALID_WIDE_CHAR_VALUE -400 +#define ONIGERR_TOO_BIG_WIDE_CHAR_VALUE -401 +#define ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION -402 +#define ONIGERR_INVALID_COMBINATION_OF_OPTIONS -403 +#define ONIG_MAX_CAPTURE_HISTORY_GROUP 31 +#define ONIG_IS_CAPTURE_HISTORY_GROUP(r,i) ((i) <= ONIG_MAX_CAPTURE_HISTORY_GROUP && (r)->list && (r)->list[i]) +#define ONIG_TRAVERSE_CALLBACK_AT_FIRST 1 +#define ONIG_TRAVERSE_CALLBACK_AT_LAST 2 +#define ONIG_TRAVERSE_CALLBACK_AT_BOTH ( ONIG_TRAVERSE_CALLBACK_AT_FIRST | ONIG_TRAVERSE_CALLBACK_AT_LAST ) +#define ONIG_REGION_NOTPOS -1 +#define ONIG_NULL_WARN onig_null_warn +#define ONIG_CHAR_TABLE_SIZE 256 +#pragma GCC visibility pop +#define RUBY_INTERNAL_ENCODING_ENCODING_H +#define ONIGURUMA_H +#define ONIGURUMA +#define ONIGURUMA_VERSION_MAJOR ONIGMO_VERSION_MAJOR +#define ONIGURUMA_VERSION_MINOR ONIGMO_VERSION_MINOR +#define ONIGURUMA_VERSION_TEENY ONIGMO_VERSION_TEENY +#pragma GCC visibility push(default) +#define ENCODING_INLINE_MAX RUBY_ENCODING_INLINE_MAX +#define ENCODING_SHIFT RUBY_ENCODING_SHIFT +#define ENCODING_MASK RUBY_ENCODING_MASK +#define ENCODING_SET_INLINED(obj,i) RB_ENCODING_SET_INLINED(obj,i) +#define ENCODING_SET(obj,i) RB_ENCODING_SET(obj,i) +#define ENCODING_GET_INLINED(obj) RB_ENCODING_GET_INLINED(obj) +#define ENCODING_GET(obj) RB_ENCODING_GET(obj) +#define ENCODING_IS_ASCII8BIT(obj) RB_ENCODING_IS_ASCII8BIT(obj) +#define ENCODING_MAXNAMELEN RUBY_ENCODING_MAXNAMELEN +#define MBCLEN_CHARFOUND_P(ret) ONIGENC_MBCLEN_CHARFOUND_P(ret) +#define MBCLEN_CHARFOUND_LEN(ret) ONIGENC_MBCLEN_CHARFOUND_LEN(ret) +#define MBCLEN_INVALID_P(ret) ONIGENC_MBCLEN_INVALID_P(ret) +#define MBCLEN_NEEDMORE_P(ret) ONIGENC_MBCLEN_NEEDMORE_P(ret) +#define MBCLEN_NEEDMORE_LEN(ret) ONIGENC_MBCLEN_NEEDMORE_LEN(ret) +#pragma GCC visibility pop +#define RB_ENCODING_GET RB_ENCODING_GET +#define RB_ENCODING_GET_INLINED RB_ENCODING_GET_INLINED +#define RB_ENCODING_IS_ASCII8BIT RB_ENCODING_IS_ASCII8BIT +#define RB_ENCODING_SET RB_ENCODING_SET +#define RB_ENCODING_SET_INLINED RB_ENCODING_SET_INLINED +#define rb_enc_asciicompat rb_enc_asciicompat +#define rb_enc_code_to_mbclen rb_enc_code_to_mbclen +#define rb_enc_codepoint rb_enc_codepoint +#define rb_enc_left_char_head rb_enc_left_char_head +#define rb_enc_mbc_to_codepoint rb_enc_mbc_to_codepoint +#define rb_enc_mbcput rb_enc_mbcput +#define rb_enc_mbmaxlen rb_enc_mbmaxlen +#define rb_enc_mbminlen rb_enc_mbminlen +#define rb_enc_name rb_enc_name +#define rb_enc_prev_char rb_enc_prev_char +#define rb_enc_right_char_head rb_enc_right_char_head +#define rb_enc_step_back rb_enc_step_back +#define rb_enc_str_asciicompat_p rb_enc_str_asciicompat_p +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define rb_enc_is_newline rb_enc_is_newline +#define rb_enc_isalnum rb_enc_isalnum +#define rb_enc_isalpha rb_enc_isalpha +#define rb_enc_isascii rb_enc_isascii +#define rb_enc_isctype rb_enc_isctype +#define rb_enc_isdigit rb_enc_isdigit +#define rb_enc_islower rb_enc_islower +#define rb_enc_isprint rb_enc_isprint +#define rb_enc_iscntrl rb_enc_iscntrl +#define rb_enc_ispunct rb_enc_ispunct +#define rb_enc_isspace rb_enc_isspace +#define rb_enc_isupper rb_enc_isupper +#define RUBY_INTERNAL_ENCODING_PATHNAME_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_INTERNAL_ENCODING_RE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_INTERNAL_ENCODING_SPRINTF_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_INTERNAL_ENCODING_STRING_H +#pragma GCC visibility push(default) +#define rb_enc_str_new(str,len,enc) ((RBIMPL_CONSTANT_P(str) && RBIMPL_CONSTANT_P(len) ? rb_enc_str_new_static: rb_enc_str_new) ((str), (len), (enc))) +#define rb_enc_str_new_cstr(str,enc) ((RBIMPL_CONSTANT_P(str) ? rbimpl_enc_str_new_cstr : rb_enc_str_new_cstr) ((str), (enc))) +#pragma GCC visibility pop +#define RUBY_INTERNAL_ENCODING_SYMBOL_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_INTERNAL_ENCODING_TRANSCODE_H +#pragma GCC visibility push(default) +#define ECONV_ERROR_HANDLER_MASK RUBY_ECONV_ERROR_HANDLER_MASK +#define ECONV_INVALID_MASK RUBY_ECONV_INVALID_MASK +#define ECONV_INVALID_REPLACE RUBY_ECONV_INVALID_REPLACE +#define ECONV_UNDEF_MASK RUBY_ECONV_UNDEF_MASK +#define ECONV_UNDEF_REPLACE RUBY_ECONV_UNDEF_REPLACE +#define ECONV_UNDEF_HEX_CHARREF RUBY_ECONV_UNDEF_HEX_CHARREF +#define ECONV_DECORATOR_MASK RUBY_ECONV_DECORATOR_MASK +#define ECONV_NEWLINE_DECORATOR_MASK RUBY_ECONV_NEWLINE_DECORATOR_MASK +#define ECONV_NEWLINE_DECORATOR_READ_MASK RUBY_ECONV_NEWLINE_DECORATOR_READ_MASK +#define ECONV_NEWLINE_DECORATOR_WRITE_MASK RUBY_ECONV_NEWLINE_DECORATOR_WRITE_MASK +#define ECONV_UNIVERSAL_NEWLINE_DECORATOR RUBY_ECONV_UNIVERSAL_NEWLINE_DECORATOR +#define ECONV_CRLF_NEWLINE_DECORATOR RUBY_ECONV_CRLF_NEWLINE_DECORATOR +#define ECONV_CR_NEWLINE_DECORATOR RUBY_ECONV_CR_NEWLINE_DECORATOR +#define ECONV_LF_NEWLINE_DECORATOR RUBY_ECONV_LF_NEWLINE_DECORATOR +#define ECONV_XML_TEXT_DECORATOR RUBY_ECONV_XML_TEXT_DECORATOR +#define ECONV_XML_ATTR_CONTENT_DECORATOR RUBY_ECONV_XML_ATTR_CONTENT_DECORATOR +#define ECONV_STATEFUL_DECORATOR_MASK RUBY_ECONV_STATEFUL_DECORATOR_MASK +#define ECONV_XML_ATTR_QUOTE_DECORATOR RUBY_ECONV_XML_ATTR_QUOTE_DECORATOR +#define ECONV_DEFAULT_NEWLINE_DECORATOR RUBY_ECONV_DEFAULT_NEWLINE_DECORATOR +#define ECONV_PARTIAL_INPUT RUBY_ECONV_PARTIAL_INPUT +#define ECONV_AFTER_OUTPUT RUBY_ECONV_AFTER_OUTPUT +#pragma GCC visibility pop +#define STR_NOEMBED FL_USER1 +#define STR_SHARED FL_USER2 +#undef rb_fstring_cstr +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define rb_fstring_lit(str) rb_fstring_new((str), rb_strlen_lit(str)) +#define rb_fstring_literal(str) rb_fstring_lit(str) +#define rb_fstring_enc_lit(str,enc) rb_fstring_enc_new((str), rb_strlen_lit(str), (enc)) +#define rb_fstring_enc_literal(str,enc) rb_fstring_enc_lit(str, enc) +#define rb_fstring_cstr(str) (__builtin_constant_p(str) ? rb_fstring_new((str), (long)strlen(str)) : (rb_fstring_cstr)(str)) +#undef Check_Type +#define rb_raise_static(e,m) rb_raise_cstr_i((e), rb_str_new_static((m), rb_strlen_lit(m))) +#define rb_sys_fail_path(path) rb_sys_fail_path_in(RUBY_FUNCTION_NAME_STRING, path) +#define rb_syserr_fail_path(err,path) rb_syserr_fail_path_in(RUBY_FUNCTION_NAME_STRING, (err), (path)) +#define rb_syserr_new_path(err,path) rb_syserr_new_path_in(RUBY_FUNCTION_NAME_STRING, (err), (path)) +#define rb_warn_deprecated_to_remove_at(removal,...) rb_warn_deprecated_to_remove(#removal, __VA_ARGS__) +#define RUBY_VERSION_SINCE(major,minor) 0 +#define RUBY_VERSION_BEFORE(major,minor) 0 +#define RBIMPL_TODO0(x) +#define RBIMPL_TODO(message) RBIMPL_TODO0("TODO: " message) +#define rb_typeddata_is_instance_of rb_typeddata_is_instance_of_inline +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_EVAL_H +#define id_signo ruby_static_id_signo +#define id_status ruby_static_id_status +#define INTERNAL_INITS_H +#define INTERNAL_OBJECT_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_PARSE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_PROC_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_RE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_SYMBOL_H +#undef rb_sym_intern_ascii_cstr +#define rb_sym_intern_ascii_cstr(ptr) (__builtin_constant_p(ptr) ? rb_sym_intern_ascii((ptr), (long)strlen(ptr)) : rb_sym_intern_ascii_cstr(ptr)) +#define INTERNAL_THREAD_H +#define COVERAGE_INDEX_LINES 0 +#define COVERAGE_INDEX_BRANCHES 1 +#define COVERAGE_TARGET_LINES 1 +#define COVERAGE_TARGET_BRANCHES 2 +#define COVERAGE_TARGET_METHODS 4 +#define COVERAGE_TARGET_ONESHOT_LINES 8 +#define COVERAGE_TARGET_EVAL 16 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_SANITIZERS_H +#define SANITIZER_ASAN_INTERFACE_H +#define SANITIZER_COMMON_INTERFACE_DEFS_H +#define __sanitizer_return_address() __builtin_extract_return_addr(__builtin_return_address(0)) +#define ASAN_POISON_MEMORY_REGION(addr,size) ((void)(addr), (void)(size)) +#define ASAN_UNPOISON_MEMORY_REGION(addr,size) ((void)(addr), (void)(size)) +#define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) NO_SANITIZE_ADDRESS(NOINLINE(x)) +#define __asan_poison_memory_region(x,y) +#define __asan_unpoison_memory_region(x,y) +#define __asan_region_is_poisoned(x,y) 0 +#define __msan_allocated_memory(x,y) ((void)(x), (void)(y)) +#define __msan_poison(x,y) ((void)(x), (void)(y)) +#define __msan_unpoison(x,y) ((void)(x), (void)(y)) +#define __msan_unpoison_string(x) ((void)(x)) +#define VALGRIND_MAKE_MEM_DEFINED(p,n) 0 +#define VALGRIND_MAKE_MEM_UNDEFINED(p,n) 0 +#define INTERNAL_VARIABLE_H +#define CONSTANT_H +#define RUBY_ID_TABLE_H 1 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RB_CONST_PRIVATE_P(ce) (((ce)->flag & CONST_VISIBILITY_MASK) == CONST_PRIVATE) +#define RB_CONST_PUBLIC_P(ce) (((ce)->flag & CONST_VISIBILITY_MASK) == CONST_PUBLIC) +#define RB_CONST_DEPRECATED_P(ce) ((ce)->flag & CONST_DEPRECATED) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define ROBJECT_TRANSIENT_FLAG FL_USER2 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_MJIT_H 1 +#define RUBY_H 1 +#define HAVE_RUBY_ATOMIC_H 1 +#define HAVE_RUBY_DEBUG_H 1 +#define HAVE_RUBY_DEFINES_H 1 +#define HAVE_RUBY_ENCODING_H 1 +#define HAVE_RUBY_FIBER_SCHEDULER_H 1 +#define HAVE_RUBY_INTERN_H 1 +#define HAVE_RUBY_IO_H 1 +#define HAVE_RUBY_MEMORY_VIEW_H 1 +#define HAVE_RUBY_MISSING_H 1 +#define HAVE_RUBY_ONIGMO_H 1 +#define HAVE_RUBY_ONIGURUMA_H 1 +#define HAVE_RUBY_RACTOR_H 1 +#define HAVE_RUBY_RANDOM_H 1 +#define HAVE_RUBY_RE_H 1 +#define HAVE_RUBY_REGEX_H 1 +#define HAVE_RUBY_RUBY_H 1 +#define HAVE_RUBY_ST_H 1 +#define HAVE_RUBY_THREAD_H 1 +#define HAVE_RUBY_THREAD_NATIVE_H 1 +#define HAVE_RUBY_UTIL_H 1 +#define HAVE_RUBY_VERSION_H 1 +#define HAVE_RUBY_VM_H 1 +#define MJIT_FUNC_STATE_P(jit_func) ((uintptr_t)(jit_func) <= (uintptr_t)MJIT_FUNC_FAILED) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define mjit_enabled true +#define YJIT_H 1 +#define YJIT_STATS RUBY_DEBUG +#define RUBY_VM_H 1 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_VM_CALLINFO_H +#define USE_DEBUG_COUNTER 0 +#define RUBY_DEBUG_COUNTER_H 1 +#define RB_DEBUG_COUNTER(name) RB_DEBUG_COUNTER_##name, +#undef RB_DEBUG_COUNTER +#define RB_DEBUG_COUNTER_INC(type) ((void)0) +#define RB_DEBUG_COUNTER_INC_UNLESS(type,cond) (!!(cond)) +#define RB_DEBUG_COUNTER_INC_IF(type,cond) (!!(cond)) +#define RB_DEBUG_COUNTER_ADD(type,num) ((void)0) +#define RB_DEBUG_COUNTER_SETMAX(type,num) 0 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_CLASS_H +#define RCLASS_EXT(c) ((rb_classext_t *)((char *)(c) + sizeof(struct RClass))) +#define RCLASS_CONST_TBL(c) (RCLASS_EXT(c)->const_tbl) +#define RCLASS_M_TBL(c) (RCLASS(c)->m_tbl) +#define RCLASS_IVPTR(c) (RCLASS_EXT(c)->iv_ptr) +#define RCLASS_CALLABLE_M_TBL(c) (RCLASS_EXT(c)->callable_m_tbl) +#define RCLASS_CC_TBL(c) (RCLASS_EXT(c)->cc_tbl) +#define RCLASS_CVC_TBL(c) (RCLASS_EXT(c)->cvc_tbl) +#define RCLASS_ORIGIN(c) (RCLASS_EXT(c)->origin_) +#define RCLASS_REFINED_CLASS(c) (RCLASS_EXT(c)->refined_class) +#define RCLASS_INCLUDER(c) (RCLASS_EXT(c)->includer) +#define RCLASS_SUBCLASS_ENTRY(c) (RCLASS_EXT(c)->subclass_entry) +#define RCLASS_MODULE_SUBCLASS_ENTRY(c) (RCLASS_EXT(c)->module_subclass_entry) +#define RCLASS_ALLOCATOR(c) (RCLASS_EXT(c)->allocator) +#define RCLASS_SUBCLASSES(c) (RCLASS_EXT(c)->subclasses) +#define RCLASS_SUPERCLASS_DEPTH(c) (RCLASS_EXT(c)->superclass_depth) +#define RCLASS_SUPERCLASSES(c) (RCLASS_EXT(c)->superclasses) +#define RICLASS_IS_ORIGIN FL_USER0 +#define RCLASS_CLONED FL_USER1 +#define RCLASS_SUPERCLASSES_INCLUDE_SELF FL_USER2 +#define RICLASS_ORIGIN_SHARED_MTBL FL_USER3 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define VM_CALL_ARGS_SPLAT (0x01 << VM_CALL_ARGS_SPLAT_bit) +#define VM_CALL_ARGS_BLOCKARG (0x01 << VM_CALL_ARGS_BLOCKARG_bit) +#define VM_CALL_FCALL (0x01 << VM_CALL_FCALL_bit) +#define VM_CALL_VCALL (0x01 << VM_CALL_VCALL_bit) +#define VM_CALL_ARGS_SIMPLE (0x01 << VM_CALL_ARGS_SIMPLE_bit) +#define VM_CALL_BLOCKISEQ (0x01 << VM_CALL_BLOCKISEQ_bit) +#define VM_CALL_KWARG (0x01 << VM_CALL_KWARG_bit) +#define VM_CALL_KW_SPLAT (0x01 << VM_CALL_KW_SPLAT_bit) +#define VM_CALL_TAILCALL (0x01 << VM_CALL_TAILCALL_bit) +#define VM_CALL_SUPER (0x01 << VM_CALL_SUPER_bit) +#define VM_CALL_ZSUPER (0x01 << VM_CALL_ZSUPER_bit) +#define VM_CALL_OPT_SEND (0x01 << VM_CALL_OPT_SEND_bit) +#define VM_CALL_KW_SPLAT_MUT (0x01 << VM_CALL_KW_SPLAT_MUT_bit) +#define USE_EMBED_CI 1 +#define CI_EMBED_TAG_bits 1 +#define CI_EMBED_ARGC_bits 15 +#define CI_EMBED_FLAG_bits 16 +#define CI_EMBED_ID_bits 32 +#define CI_EMBED_FLAG 0x01 +#define CI_EMBED_ARGC_SHFT (CI_EMBED_TAG_bits) +#define CI_EMBED_ARGC_MASK ((((VALUE)1)<iseq)->iseq_encoded), (reg_cfp->pc - ISEQ_BODY(reg_cfp->iseq)->iseq_encoded), RSTRING_PTR(rb_iseq_path(reg_cfp->iseq)), rb_iseq_line_no(reg_cfp->iseq, reg_pc - ISEQ_BODY(reg_cfp->iseq)->iseq_encoded)); } if (USE_INSNS_COUNTER) vm_insns_counter_count_insn(BIN(insn)); +#define INSN_DISPATCH_SIG(insn) +#define INSN_ENTRY(insn) LABEL(insn): INSN_ENTRY_SIG(insn); +#define TC_DISPATCH(insn) INSN_DISPATCH_SIG(insn); RB_GNUC_EXTENSION_BLOCK(goto *(void const *)GET_CURRENT_INSN()); ; +#define END_INSN(insn) DEBUG_END_INSN(); TC_DISPATCH(insn); +#define INSN_DISPATCH() TC_DISPATCH(__START__) { +#define END_INSNS_DISPATCH() rb_bug("unknown insn: %"PRIdVALUE, GET_CURRENT_INSN()); } +#define NEXT_INSN() TC_DISPATCH(__NEXT_INSN__) +#define START_OF_ORIGINAL_INSN(x) if (0) goto start_of_##x; start_of_##x: +#define DISPATCH_ORIGINAL_INSN(x) goto start_of_##x; +#define VM_SP_CNT(ec,sp) ((sp) - (ec)->vm_stack) +#define THROW_EXCEPTION(exc) do { ec->errinfo = (VALUE)(exc); EC_JUMP_TAG(ec, ec->tag->state); } while (0) +#define SCREG(r) (reg_##r) +#define VM_DEBUG_STACKOVERFLOW 0 +#define CHECK_VM_STACK_OVERFLOW_FOR_INSN(cfp,margin) +#define INSN_LABEL2(insn,name) INSN_LABEL_ ## insn ## _ ## name +#define INSN_LABEL(x) INSN_LABEL2(NAME_OF_CURRENT_INSN, x) +#define RUBY_INSNHELPER_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define COLLECT_USAGE_INSN(insn) +#define COLLECT_USAGE_OPERAND(insn,n,op) +#define COLLECT_USAGE_REGISTER(reg,s) +#define PUSH(x) (SET_SV(x), INC_SP(1)) +#define TOPN(n) (*(GET_SP()-(n)-1)) +#define POPN(n) (DEC_SP(n)) +#define POP() (DEC_SP(1)) +#define STACK_ADDR_FROM_TOP(n) (GET_SP()-(n)) +#define VM_REG_CFP (reg_cfp) +#define VM_REG_PC (VM_REG_CFP->pc) +#define VM_REG_SP (VM_REG_CFP->sp) +#define VM_REG_EP (VM_REG_CFP->ep) +#define RESTORE_REGS() do { VM_REG_CFP = ec->cfp; } while (0) +#define COLLECT_USAGE_REGISTER_HELPER(a,b,v) (v) +#define GET_PC() (COLLECT_USAGE_REGISTER_HELPER(PC, GET, VM_REG_PC)) +#define SET_PC(x) (VM_REG_PC = (COLLECT_USAGE_REGISTER_HELPER(PC, SET, (x)))) +#define GET_CURRENT_INSN() (*GET_PC()) +#define GET_OPERAND(n) (GET_PC()[(n)]) +#define ADD_PC(n) (SET_PC(VM_REG_PC + (n))) +#define JUMP(dst) (SET_PC(VM_REG_PC + (dst))) +#define GET_CFP() (COLLECT_USAGE_REGISTER_HELPER(CFP, GET, VM_REG_CFP)) +#define GET_EP() (COLLECT_USAGE_REGISTER_HELPER(EP, GET, VM_REG_EP)) +#define SET_EP(x) (VM_REG_EP = (COLLECT_USAGE_REGISTER_HELPER(EP, SET, (x)))) +#define GET_LEP() (VM_EP_LEP(GET_EP())) +#define GET_SP() (COLLECT_USAGE_REGISTER_HELPER(SP, GET, VM_REG_SP)) +#define SET_SP(x) (VM_REG_SP = (COLLECT_USAGE_REGISTER_HELPER(SP, SET, (x)))) +#define INC_SP(x) (VM_REG_SP += (COLLECT_USAGE_REGISTER_HELPER(SP, SET, (x)))) +#define DEC_SP(x) (VM_REG_SP -= (COLLECT_USAGE_REGISTER_HELPER(SP, SET, (x)))) +#define SET_SV(x) (*GET_SP() = rb_ractor_confirm_belonging(x)) +#define GET_ISEQ() (GET_CFP()->iseq) +#define GET_PREV_EP(ep) ((VALUE *)((ep)[VM_ENV_DATA_INDEX_SPECVAL] & ~0x03)) +#define GET_SELF() (COLLECT_USAGE_REGISTER_HELPER(SELF, GET, GET_CFP()->self)) +#define GET_BLOCK_HANDLER() (GET_LEP()[VM_ENV_DATA_INDEX_SPECVAL]) +#define SETUP_CANARY(cond) if (cond) {} else {} +#define CHECK_CANARY(cond,insn) if (cond) {(void)(insn);} +#define GET_GLOBAL_CVAR_STATE() (ruby_vm_global_cvar_state) +#define INC_GLOBAL_CVAR_STATE() (++ruby_vm_global_cvar_state) +#define IS_ARGS_SPLAT(ci) (vm_ci_flag(ci) & VM_CALL_ARGS_SPLAT) +#define IS_ARGS_KEYWORD(ci) (vm_ci_flag(ci) & VM_CALL_KWARG) +#define IS_ARGS_KW_SPLAT(ci) (vm_ci_flag(ci) & VM_CALL_KW_SPLAT) +#define IS_ARGS_KW_OR_KW_SPLAT(ci) (vm_ci_flag(ci) & (VM_CALL_KWARG | VM_CALL_KW_SPLAT)) +#define IS_ARGS_KW_SPLAT_MUT(ci) (vm_ci_flag(ci) & VM_CALL_KW_SPLAT_MUT) +#define RUBY_RACTOR_H 1 +#pragma GCC visibility push(default) +#define RB_RACTOR_LOCAL_STORAGE_TYPE_FREE (&rb_ractor_local_storage_type_free) +#pragma GCC visibility pop +#define RB_OBJ_SHAREABLE_P(obj) FL_TEST_RAW((obj), RUBY_FL_SHAREABLE) +#define RACTOR_CHECK_MODE (VM_CHECK_MODE || RUBY_DEBUG) && (SIZEOF_UINT64_T == SIZEOF_VALUE) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define rb_ractor_set_current_ec(cr,ec) rb_ractor_set_current_ec_(cr, ec, __FILE__, __LINE__) +#define rb_ractor_confirm_belonging(obj) obj +#define RUBY_VM_SYNC_H +#define LOCATION_ARGS void +#define LOCATION_PARAMS +#define APPEND_LOCATION_ARGS +#define APPEND_LOCATION_PARAMS +#define RB_VM_LOCKED_P() rb_vm_locked_p() +#define RB_VM_LOCK() rb_vm_lock(__FILE__, __LINE__) +#define RB_VM_UNLOCK() rb_vm_unlock(__FILE__, __LINE__) +#define RB_VM_LOCK_ENTER_CR_LEV(cr,levp) rb_vm_lock_enter_cr(cr, levp, __FILE__, __LINE__) +#define RB_VM_LOCK_LEAVE_CR_LEV(cr,levp) rb_vm_lock_leave_cr(cr, levp, __FILE__, __LINE__) +#define RB_VM_LOCK_ENTER_LEV(levp) rb_vm_lock_enter(levp, __FILE__, __LINE__) +#define RB_VM_LOCK_LEAVE_LEV(levp) rb_vm_lock_leave(levp, __FILE__, __LINE__) +#define RB_VM_LOCK_ENTER() { unsigned int _lev; RB_VM_LOCK_ENTER_LEV(&_lev); +#define RB_VM_LOCK_LEAVE() RB_VM_LOCK_LEAVE_LEV(&_lev); } +#define RB_VM_LOCK_ENTER_LEV_NB(levp) rb_vm_lock_enter_nb(levp, __FILE__, __LINE__) +#define RB_VM_LOCK_ENTER_NO_BARRIER() { unsigned int _lev; RB_VM_LOCK_ENTER_LEV_NB(&_lev); +#define RB_VM_LOCK_LEAVE_NO_BARRIER() RB_VM_LOCK_LEAVE_LEV(&_lev); } +#define ASSERT_vm_locking() +#define ASSERT_vm_unlocking() +#define BUILTIN_H_INCLUDED +#define RB_BUILTIN_FUNCTION(_i,_name,_fname,_arity,_compiler) { .name = _i < 0 ? NULL : #_name, .func_ptr = (void *)_fname, .argc = _arity, .index = _i, .compiler = _compiler, } +#define _PROBES_H +#define DTRACE_PROBES_DISABLED 1 +#define RUBY_DTRACE_METHOD_ENTRY_ENABLED() 0 +#define RUBY_DTRACE_METHOD_ENTRY(classname,methodname,filename,lineno) do {} while (0) +#define RUBY_DTRACE_METHOD_RETURN_ENABLED() 0 +#define RUBY_DTRACE_METHOD_RETURN(classname,methodname,filename,lineno) do {} while (0) +#define RUBY_DTRACE_CMETHOD_ENTRY_ENABLED() 0 +#define RUBY_DTRACE_CMETHOD_ENTRY(classname,methodname,filename,lineno) do {} while (0) +#define RUBY_DTRACE_CMETHOD_RETURN_ENABLED() 0 +#define RUBY_DTRACE_CMETHOD_RETURN(classname,methodname,filename,lineno) do {} while (0) +#define RUBY_DTRACE_REQUIRE_ENTRY_ENABLED() 0 +#define RUBY_DTRACE_REQUIRE_ENTRY(rquiredfile,filename,lineno) do {} while (0) +#define RUBY_DTRACE_REQUIRE_RETURN_ENABLED() 0 +#define RUBY_DTRACE_REQUIRE_RETURN(requiredfile,filename,lineno) do {} while (0) +#define RUBY_DTRACE_FIND_REQUIRE_ENTRY_ENABLED() 0 +#define RUBY_DTRACE_FIND_REQUIRE_ENTRY(requiredfile,filename,lineno) do {} while (0) +#define RUBY_DTRACE_FIND_REQUIRE_RETURN_ENABLED() 0 +#define RUBY_DTRACE_FIND_REQUIRE_RETURN(requiredfile,filename,lineno) do {} while (0) +#define RUBY_DTRACE_LOAD_ENTRY_ENABLED() 0 +#define RUBY_DTRACE_LOAD_ENTRY(loadedfile,filename,lineno) do {} while (0) +#define RUBY_DTRACE_LOAD_RETURN_ENABLED() 0 +#define RUBY_DTRACE_LOAD_RETURN(loadedfile,filename,lineno) do {} while (0) +#define RUBY_DTRACE_RAISE_ENABLED() 0 +#define RUBY_DTRACE_RAISE(classname,filename,lineno) do {} while (0) +#define RUBY_DTRACE_OBJECT_CREATE_ENABLED() 0 +#define RUBY_DTRACE_OBJECT_CREATE(classname,filename,lineno) do {} while (0) +#define RUBY_DTRACE_ARRAY_CREATE_ENABLED() 0 +#define RUBY_DTRACE_ARRAY_CREATE(length,filename,lineno) do {} while (0) +#define RUBY_DTRACE_HASH_CREATE_ENABLED() 0 +#define RUBY_DTRACE_HASH_CREATE(length,filename,lineno) do {} while (0) +#define RUBY_DTRACE_STRING_CREATE_ENABLED() 0 +#define RUBY_DTRACE_STRING_CREATE(length,filename,lineno) do {} while (0) +#define RUBY_DTRACE_SYMBOL_CREATE_ENABLED() 0 +#define RUBY_DTRACE_SYMBOL_CREATE(str,filename,lineno) do {} while (0) +#define RUBY_DTRACE_PARSE_BEGIN_ENABLED() 0 +#define RUBY_DTRACE_PARSE_BEGIN(sourcefile,lineno) do {} while (0) +#define RUBY_DTRACE_PARSE_END_ENABLED() 0 +#define RUBY_DTRACE_PARSE_END(sourcefile,lineno) do {} while (0) +#define RUBY_DTRACE_INSN_ENABLED() 0 +#define RUBY_DTRACE_INSN(insns_name) do {} while (0) +#define RUBY_DTRACE_INSN_OPERAND_ENABLED() 0 +#define RUBY_DTRACE_INSN_OPERAND(val,insns_name) do {} while (0) +#define RUBY_DTRACE_GC_MARK_BEGIN_ENABLED() 0 +#define RUBY_DTRACE_GC_MARK_BEGIN() do {} while (0) +#define RUBY_DTRACE_GC_MARK_END_ENABLED() 0 +#define RUBY_DTRACE_GC_MARK_END() do {} while (0) +#define RUBY_DTRACE_GC_SWEEP_BEGIN_ENABLED() 0 +#define RUBY_DTRACE_GC_SWEEP_BEGIN() do {} while (0) +#define RUBY_DTRACE_GC_SWEEP_END_ENABLED() 0 +#define RUBY_DTRACE_GC_SWEEP_END() do {} while (0) +#define RUBY_PROBES_HELPER_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_DTRACE_METHOD_HOOK(name,ec,klazz,id) do { if (UNLIKELY(RUBY_DTRACE_##name##_ENABLED())) { struct ruby_dtrace_method_hook_args args; if (rb_dtrace_setup(ec, klazz, id, &args)) { RUBY_DTRACE_##name(args.classname, args.methodname, args.filename, args.line_no); } } } while (0) +#define RUBY_DTRACE_METHOD_ENTRY_HOOK(ec,klass,id) RUBY_DTRACE_METHOD_HOOK(METHOD_ENTRY, ec, klass, id) +#define RUBY_DTRACE_METHOD_RETURN_HOOK(ec,klass,id) RUBY_DTRACE_METHOD_HOOK(METHOD_RETURN, ec, klass, id) +#define RUBY_DTRACE_CMETHOD_ENTRY_HOOK(ec,klass,id) RUBY_DTRACE_METHOD_HOOK(CMETHOD_ENTRY, ec, klass, id) +#define RUBY_DTRACE_CMETHOD_RETURN_HOOK(ec,klass,id) RUBY_DTRACE_METHOD_HOOK(CMETHOD_RETURN, ec, klass, id) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define INTERNAL_COMPAR_H +#define STRING_P(s) (RB_TYPE_P((s), T_STRING) && CLASS_OF(s) == rb_cString) +#define CMP_OPTIMIZABLE(type) BASIC_OP_UNREDEFINED_P(BOP_CMP, type##_REDEFINED_OP_FLAG) +#define OPTIMIZED_CMP(a,b) ((FIXNUM_P(a) && FIXNUM_P(b) && CMP_OPTIMIZABLE(INTEGER)) ? (((long)a > (long)b) ? 1 : ((long)a < (long)b) ? -1 : 0) : (STRING_P(a) && STRING_P(b) && CMP_OPTIMIZABLE(STRING)) ? rb_str_cmp(a, b) : (RB_FLOAT_TYPE_P(a) && RB_FLOAT_TYPE_P(b) && CMP_OPTIMIZABLE(FLOAT)) ? rb_float_cmp(a, b) : rb_cmpint(rb_funcallv(a, id_cmp, 1, &b), a, b)) +#define INTERNAL_HASH_H +#define RHASH_AR_TABLE_MAX_SIZE SIZEOF_VALUE +#define RHASH_LEV_MASK (FL_USER13 | FL_USER14 | FL_USER15 | FL_USER16 | FL_USER17 | FL_USER18 | FL_USER19) +#define RHASH(obj) ((struct RHash *)(obj)) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#define RHASH_TBL_RAW(h) rb_hash_tbl_raw(h, __FILE__, __LINE__) +#pragma GCC visibility pop +#define INTERNAL_NUMERIC_H +#define INTERNAL_BIGNUM_H +#define BDIGIT unsigned int +#define SIZEOF_BDIGIT SIZEOF_INT +#define BDIGIT_DBL unsigned LONG_LONG +#define BDIGIT_DBL_SIGNED LONG_LONG +#define PRI_BDIGIT_PREFIX "" +#define PRI_BDIGIT_DBL_PREFIX PRI_LL_PREFIX +#define SIZEOF_ACTUAL_BDIGIT SIZEOF_BDIGIT +#define PRIdBDIGIT PRI_BDIGIT_PREFIX"d" +#define PRIiBDIGIT PRI_BDIGIT_PREFIX"i" +#define PRIoBDIGIT PRI_BDIGIT_PREFIX"o" +#define PRIuBDIGIT PRI_BDIGIT_PREFIX"u" +#define PRIxBDIGIT PRI_BDIGIT_PREFIX"x" +#define PRIXBDIGIT PRI_BDIGIT_PREFIX"X" +#define PRIdBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"d" +#define PRIiBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"i" +#define PRIoBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"o" +#define PRIuBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"u" +#define PRIxBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"x" +#define PRIXBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"X" +#define RBIGNUM(obj) ((struct RBignum *)(obj)) +#define BIGNUM_SIGN_BIT FL_USER1 +#define BIGNUM_EMBED_FLAG ((VALUE)FL_USER2) +#define BIGNUM_EMBED_LEN_NUMBITS 3 +#define BIGNUM_EMBED_LEN_MASK (~(~(VALUE)0U << BIGNUM_EMBED_LEN_NUMBITS) << BIGNUM_EMBED_LEN_SHIFT) +#define BIGNUM_EMBED_LEN_SHIFT (FL_USHIFT+3) +#define BIGNUM_EMBED_LEN_MAX (SIZEOF_VALUE*RBIMPL_RVALUE_EMBED_LEN_MAX/SIZEOF_ACTUAL_BDIGIT) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_BITS_H +#define HALF_LONG_MSB ((SIGNED_VALUE)1<<((SIZEOF_LONG*CHAR_BIT-1)/2)) +#define SIGNED_INTEGER_TYPE_P(T) (0 > ((T)0)-1) +#define SIGNED_INTEGER_MIN(T) ((sizeof(T) == sizeof(int8_t)) ? ((T)INT8_MIN) : ((sizeof(T) == sizeof(int16_t)) ? ((T)INT16_MIN) : ((sizeof(T) == sizeof(int32_t)) ? ((T)INT32_MIN) : ((sizeof(T) == sizeof(int64_t)) ? ((T)INT64_MIN) : 0)))) +#define SIGNED_INTEGER_MAX(T) ((T)(SIGNED_INTEGER_MIN(T) ^ ((T)~(T)0))) +#define UNSIGNED_INTEGER_MAX(T) ((T)~(T)0) +#define MUL_OVERFLOW_P(a,b) __extension__ ({ __typeof__(a) c; __builtin_mul_overflow((a), (b), &c); }) +#define MUL_OVERFLOW_SIGNED_INTEGER_P(a,b,min,max) ( (a) == 0 ? 0 : (a) == -1 ? (b) < -(max) : (a) > 0 ? ((b) > 0 ? (max) / (a) < (b) : (min) / (a) > (b)) : ((b) > 0 ? (min) / (a) < (b) : (max) / (a) > (b))) +#define MUL_OVERFLOW_FIXNUM_P(a,b) MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, FIXNUM_MIN, FIXNUM_MAX) +#define MUL_OVERFLOW_LONG_LONG_P(a,b) MUL_OVERFLOW_P(a, b) +#define MUL_OVERFLOW_LONG_P(a,b) MUL_OVERFLOW_P(a, b) +#define MUL_OVERFLOW_INT_P(a,b) MUL_OVERFLOW_P(a, b) +#define bit_length(x) (unsigned int) (sizeof(x) <= sizeof(int32_t) ? 32 - nlz_int32((uint32_t)(x)) : sizeof(x) <= sizeof(int64_t) ? 64 - nlz_int64((uint64_t)(x)) : 128 - nlz_int128((uint128_t)(x))) +#define swap16 ruby_swap16 +#define swap32 ruby_swap32 +#define swap64 ruby_swap64 +#define INTERNAL_FIXNUM_H +#define DLONG int128_t +#define DL2NUM(x) (RB_FIXABLE(x) ? LONG2FIX(x) : rb_int128t2big(x)) +#define ROUND_TO(mode,even,up,down) ((mode) == RUBY_NUM_ROUND_HALF_EVEN ? even : (mode) == RUBY_NUM_ROUND_HALF_UP ? up : down) +#define ROUND_FUNC(mode,name) ROUND_TO(mode, name##_half_even, name##_half_up, name##_half_down) +#define ROUND_CALL(mode,name,args) ROUND_TO(mode, name##_half_even args, name##_half_up args, name##_half_down args) +#define ROUND_DEFAULT RUBY_NUM_ROUND_HALF_UP +#define numberof(array) ((int)(sizeof(array) / sizeof((array)[0]))) +#define roomof(x,y) (((x) + (y) - 1) / (y)) +#define type_roomof(x,y) roomof(sizeof(x), sizeof(y)) +#define RFLOAT(obj) ((struct RFloat *)(obj)) +#define rb_float_value rb_float_value_inline +#define rb_float_new rb_float_new_inline +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_RANDOM_H +#define INTERNAL_STRUCT_H +#define RSTRUCT(obj) ((struct RStruct *)(obj)) +#define RSTRUCT_LEN internal_RSTRUCT_LEN +#define RSTRUCT_SET internal_RSTRUCT_SET +#define RSTRUCT_GET internal_RSTRUCT_GET +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define RUBY_TOPLEVEL_VARIABLE_H +#define BIN(n) YARVINSN_##n +#define ASSERT_VM_INSTRUCTION_SIZE(array) STATIC_ASSERT(numberof_##array, numberof(array) == VM_INSTRUCTION_SIZE) +#define vm_check_canary(ec,sp) +#define vm_check_frame(a,b,c,d) +#define vm_push_frame_debug_counter_inc(ec,cfp,t) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define ractor_incidental_shareable_p(cond,val) (!(cond) || rb_ractor_shareable_p(val)) +#define ractor_object_incidental_shareable_p(obj,val) ractor_incidental_shareable_p(rb_ractor_shareable_p(obj), val) +#define ATTR_INDEX_NOT_SET (attr_index_t)-1 +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define EQ_UNREDEFINED_P(t) BASIC_OP_UNREDEFINED_P(BOP_EQ, t##_REDEFINED_OP_FLAG) +#undef EQ_UNREDEFINED_P +#define CHECK_CMP_NAN(a,b) +#define KW_SPECIFIED_BITS_MAX (32-1) +#define USE_OPT_HIST 0 +#define CHECK_CFP_CONSISTENCY(func) (LIKELY(vm_cfp_consistent_p(ec, reg_cfp)) ? (void)0 : rb_bug(func ": cfp consistency error (%p, %p)", (void *)reg_cfp, (void *)(ec->cfp+1))) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define VM_CALL_METHOD_ATTR(var,func,nohook) if (UNLIKELY(ruby_vm_event_flags & (RUBY_EVENT_C_CALL | RUBY_EVENT_C_RETURN))) { EXEC_EVENT_HOOK(ec, RUBY_EVENT_C_CALL, calling->recv, vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, Qundef); var = func; EXEC_EVENT_HOOK(ec, RUBY_EVENT_C_RETURN, calling->recv, vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, (var)); } else { nohook; var = func; } +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define mexp_search_method vm_search_method_wrap +#define mexp_search_super vm_search_super_method +#define mexp_search_invokeblock vm_search_invokeblock +#define id_cmp idCmp +#undef id_cmp +#define IMEMO_CONST_CACHE_SHAREABLE IMEMO_FL_USER0 +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define VM_TRACE_HOOK(target_event,val) do { if ((pc_events & (target_event)) & enabled_flags) { vm_trace_hook(ec, reg_cfp, pc, pc_events, (target_event), global_hooks, local_hooks_ptr, (val)); } } while (0) +#undef VM_TRACE_HOOK +#define id_mesg idMesg diff --git a/ThirdParty/include/ruby/3.2/mac/arm64-darwin/ruby/config.h b/ThirdParty/include/ruby/3.2/mac/arm64-darwin/ruby/config.h new file mode 100644 index 0000000..622cb2d --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/arm64-darwin/ruby/config.h @@ -0,0 +1,458 @@ +#ifndef INCLUDE_RUBY_CONFIG_H +#define INCLUDE_RUBY_CONFIG_H 1 +/* confdefs.h */ +#define HAVE_STDIO_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRING_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_SYS_STAT_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_UNISTD_H 1 +#define HAVE_WCHAR_H 1 +#define STDC_HEADERS 1 +#define _ALL_SOURCE 1 +#define _DARWIN_C_SOURCE 1 +#define _GNU_SOURCE 1 +#define _HPUX_ALT_XOPEN_SOCKET_API 1 +#define _NETBSD_SOURCE 1 +#define _OPENBSD_SOURCE 1 +#define _POSIX_PTHREAD_SEMANTICS 1 +#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 +#define __STDC_WANT_IEC_60559_BFP_EXT__ 1 +#define __STDC_WANT_IEC_60559_DFP_EXT__ 1 +#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 +#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 +#define __STDC_WANT_LIB_EXT2__ 1 +#define __STDC_WANT_MATH_SPEC_FUNCS__ 1 +#define _TANDEM_SOURCE 1 +#define __EXTENSIONS__ 1 +#define RUBY_SYMBOL_EXPORT_BEGIN _Pragma("GCC visibility push(default)") +#define RUBY_SYMBOL_EXPORT_END _Pragma("GCC visibility pop") +#define HAVE_STMT_AND_DECL_IN_EXPR 1 +#define HAVE_PTHREAD_H 1 +#define _REENTRANT 1 +#define _THREAD_SAFE 1 +#define HAVE_LIBPTHREAD 1 +#define THREAD_IMPL_H "thread_pthread.h" +#define THREAD_IMPL_SRC "thread_pthread.c" +#define BROKEN_CRYPT 1 +#define HAVE_CRT_EXTERNS_H 1 +#define HAVE_LIBDL 1 +#define HAVE_DIRENT_H 1 +#define HAVE__BOOL 1 +#define HAVE_STDBOOL_H 1 +#define HAVE_SYS_WAIT_H 1 +#define HAVE_COPYFILE_H 1 +#define HAVE_GRP_H 1 +#define HAVE_FCNTL_H 1 +#define HAVE_FLOAT_H 1 +#define HAVE_LANGINFO_H 1 +#define HAVE_LIMITS_H 1 +#define HAVE_LOCALE_H 1 +#define HAVE_MALLOC_MALLOC_H 1 +#define HAVE_PWD_H 1 +#define HAVE_SANITIZER_ASAN_INTERFACE_H 1 +#define HAVE_SANITIZER_MSAN_INTERFACE_H 1 +#define HAVE_STDALIGN_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_SYS_ATTR_H 1 +#define HAVE_SYS_FCNTL_H 1 +#define HAVE_SYS_FILE_H 1 +#define HAVE_SYS_IOCTL_H 1 +#define HAVE_SYS_PARAM_H 1 +#define HAVE_SYS_RANDOM_H 1 +#define HAVE_SYS_RESOURCE_H 1 +#define HAVE_SYS_SELECT_H 1 +#define HAVE_SYS_SOCKET_H 1 +#define HAVE_SYS_TIME_H 1 +#define HAVE_SYS_TIMES_H 1 +#define HAVE_SYS_UIO_H 1 +#define HAVE_TIME_H 1 +#define HAVE_UCONTEXT_H 1 +#define HAVE_UTIME_H 1 +#define HAVE_TYPEOF 1 +#define restrict __restrict__ +#define HAVE_LONG_LONG 1 +#define HAVE_OFF_T 1 +#define SIZEOF_INT 4 +#define SIZEOF_SHORT 2 +#define SIZEOF_LONG 8 +#define SIZEOF_LONG_LONG 8 +#define SIZEOF___INT64 0 +#define SIZEOF___INT128 16 +#define SIZEOF_OFF_T 8 +#define SIZEOF_VOIDP 8 +#define SIZEOF_FLOAT 4 +#define SIZEOF_DOUBLE 8 +#define SIZEOF_TIME_T 8 +#define SIZEOF_CLOCK_T 8 +#define PACKED_STRUCT(x) x __attribute__((packed)) +#define USE_UNALIGNED_MEMBER_ACCESS 1 +#define PRI_LL_PREFIX "ll" +#define HAVE_PID_T 1 +#define rb_pid_t pid_t +#define SIGNEDNESS_OF_PID_T -1 +#define PIDT2NUM(v) INT2NUM(v) +#define NUM2PIDT(v) NUM2INT(v) +#define PRI_PIDT_PREFIX PRI_INT_PREFIX +#define HAVE_UID_T 1 +#define rb_uid_t uid_t +#define SIGNEDNESS_OF_UID_T +1 +#define UIDT2NUM(v) UINT2NUM(v) +#define NUM2UIDT(v) NUM2UINT(v) +#define PRI_UIDT_PREFIX PRI_INT_PREFIX +#define HAVE_GID_T 1 +#define rb_gid_t gid_t +#define SIGNEDNESS_OF_GID_T +1 +#define GIDT2NUM(v) UINT2NUM(v) +#define NUM2GIDT(v) NUM2UINT(v) +#define PRI_GIDT_PREFIX PRI_INT_PREFIX +#define HAVE_TIME_T 1 +#define rb_time_t time_t +#define SIGNEDNESS_OF_TIME_T -1 +#define TIMET2NUM(v) LONG2NUM(v) +#define NUM2TIMET(v) NUM2LONG(v) +#define PRI_TIMET_PREFIX PRI_LONG_PREFIX +#define HAVE_DEV_T 1 +#define rb_dev_t dev_t +#define SIGNEDNESS_OF_DEV_T -1 +#define DEVT2NUM(v) INT2NUM(v) +#define NUM2DEVT(v) NUM2INT(v) +#define PRI_DEVT_PREFIX PRI_INT_PREFIX +#define HAVE_MODE_T 1 +#define rb_mode_t mode_t +#define SIGNEDNESS_OF_MODE_T +1 +#define MODET2NUM(v) USHORT2NUM(v) +#define NUM2MODET(v) NUM2USHORT(v) +#define PRI_MODET_PREFIX PRI_SHORT_PREFIX +#define HAVE_RLIM_T 1 +#define rb_rlim_t rlim_t +#define SIGNEDNESS_OF_RLIM_T +1 +#define RLIM2NUM(v) ULL2NUM(v) +#define NUM2RLIM(v) NUM2ULL(v) +#define PRI_RLIM_PREFIX PRI_LL_PREFIX +#define HAVE_OFF_T 1 +#define rb_off_t off_t +#define SIGNEDNESS_OF_OFF_T -1 +#define OFFT2NUM(v) LL2NUM(v) +#define NUM2OFFT(v) NUM2LL(v) +#define PRI_OFFT_PREFIX PRI_LL_PREFIX +#define HAVE_CLOCKID_T 1 +#define rb_clockid_t clockid_t +#define SIGNEDNESS_OF_CLOCKID_T +1 +#define CLOCKID2NUM(v) UINT2NUM(v) +#define NUM2CLOCKID(v) NUM2UINT(v) +#define PRI_CLOCKID_PREFIX PRI_INT_PREFIX +#define HAVE_VA_ARGS_MACRO 1 +#define HAVE__ALIGNOF 1 +#define CONSTFUNC(x) __attribute__ ((__const__)) x +#define PUREFUNC(x) __attribute__ ((__pure__)) x +#define NORETURN(x) __attribute__ ((__noreturn__)) x +#define DEPRECATED(x) __attribute__ ((__deprecated__)) x +#define DEPRECATED_BY(n,x) __attribute__ ((__deprecated__("by "#n))) x +#define NOINLINE(x) __attribute__ ((__noinline__)) x +#define ALWAYS_INLINE(x) __attribute__ ((__always_inline__)) x +#define NO_SANITIZE(san, x) __attribute__ ((__no_sanitize__(san))) x +#define NO_SANITIZE_ADDRESS(x) __attribute__ ((__no_sanitize_address__)) x +#define NO_ADDRESS_SAFETY_ANALYSIS(x) __attribute__ ((__no_address_safety_analysis__)) x +#define WARN_UNUSED_RESULT(x) __attribute__ ((__warn_unused_result__)) x +#define MAYBE_UNUSED(x) __attribute__ ((__unused__)) x +#define ERRORFUNC(mesg,x) __attribute__ ((__error__ mesg)) x +#define WARNINGFUNC(mesg,x) __attribute__ ((__warning__ mesg)) x +#define WEAK(x) __attribute__ ((__weak__)) x +#define HAVE_FUNC_WEAK 1 +#define RUBY_CXX_DEPRECATED(msg) __attribute__((__deprecated__(msg))) +#define HAVE_NULLPTR 1 +#define FUNC_CDECL(x) __attribute__ ((__cdecl__)) x +#define HAVE_GCC_ATOMIC_BUILTINS 1 +#define HAVE_GCC_SYNC_BUILTINS 1 +#define HAVE___BUILTIN_UNREACHABLE 1 +#define RUBY_FUNC_EXPORTED __attribute__ ((__visibility__("default"))) extern +#define RUBY_FUNC_NONNULL(n,x) __attribute__ ((__nonnull__(n))) x +#define RUBY_FUNCTION_NAME_STRING __func__ +#define ENUM_OVER_INT 1 +#define HAVE_DECL_SYS_NERR 1 +#define HAVE_DECL_GETENV 1 +#define SIZEOF_SIZE_T 8 +#define SIZEOF_PTRDIFF_T 8 +#define SIZEOF_DEV_T 4 +#define PRI_SIZE_PREFIX "z" +#define PRI_PTRDIFF_PREFIX "t" +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 +#define HAVE_STRUCT_STAT_ST_RDEV 1 +#define SIZEOF_STRUCT_STAT_ST_SIZE SIZEOF_OFF_T +#define SIZEOF_STRUCT_STAT_ST_BLOCKS SIZEOF_OFF_T +#define SIZEOF_STRUCT_STAT_ST_INO SIZEOF_LONG +#define SIZEOF_STRUCT_STAT_ST_DEV SIZEOF_DEV_T +#define SIZEOF_STRUCT_STAT_ST_RDEV SIZEOF_DEV_T +#define HAVE_STRUCT_STAT_ST_ATIMESPEC 1 +#define HAVE_STRUCT_STAT_ST_MTIMESPEC 1 +#define HAVE_STRUCT_STAT_ST_CTIMESPEC 1 +#define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC 1 +#define HAVE_STRUCT_TIMEVAL 1 +#define SIZEOF_STRUCT_TIMEVAL_TV_SEC SIZEOF_TIME_T +#define HAVE_STRUCT_TIMESPEC 1 +#define HAVE_STRUCT_TIMEZONE 1 +#define HAVE_RB_FD_INIT 1 +#define HAVE_INT8_T 1 +#define SIZEOF_INT8_T 1 +#define HAVE_UINT8_T 1 +#define SIZEOF_UINT8_T 1 +#define HAVE_INT16_T 1 +#define SIZEOF_INT16_T 2 +#define HAVE_UINT16_T 1 +#define SIZEOF_UINT16_T 2 +#define HAVE_INT32_T 1 +#define SIZEOF_INT32_T 4 +#define HAVE_UINT32_T 1 +#define SIZEOF_UINT32_T 4 +#define HAVE_INT64_T 1 +#define SIZEOF_INT64_T 8 +#define HAVE_UINT64_T 1 +#define SIZEOF_UINT64_T 8 +#define HAVE_INT128_T 1 +#define int128_t __int128 +#define SIZEOF_INT128_T SIZEOF___INT128 +#define HAVE_UINT128_T 1 +#define uint128_t unsigned __int128 +#define SIZEOF_UINT128_T SIZEOF___INT128 +#define HAVE_INTPTR_T 1 +#define SIZEOF_INTPTR_T 8 +#define HAVE_UINTPTR_T 1 +#define SIZEOF_UINTPTR_T 8 +#define PRI_PTR_PREFIX "l" +#define HAVE_SSIZE_T 1 +#define SIZEOF_SSIZE_T 8 +#define PRI_64_PREFIX "ll" +#define GETGROUPS_T gid_t +#define HAVE_ALLOCA_H 1 +#define HAVE_ALLOCA 1 +#define HAVE_DUP 1 +#define HAVE_DUP2 1 +#define HAVE_ACOSH 1 +#define HAVE_CBRT 1 +#define HAVE_CRYPT 1 +#define HAVE_ERF 1 +#define HAVE_FFS 1 +#define HAVE_FLOCK 1 +#define HAVE_HYPOT 1 +#define HAVE_LGAMMA_R 1 +#define HAVE_MEMMOVE 1 +#define HAVE_NAN 1 +#define HAVE_NEXTAFTER 1 +#define HAVE_STRCHR 1 +#define HAVE_STRERROR 1 +#define HAVE_STRLCAT 1 +#define HAVE_STRLCPY 1 +#define HAVE_STRSTR 1 +#define HAVE_TGAMMA 1 +#define HAVE_ISFINITE 1 +#define SPT_TYPE SPT_REUSEARGV +#define HAVE_SIGNBIT 1 +#define HAVE_FORK 1 +#define vfork fork +#define HAVE_WORKING_FORK 1 +#define HAVE__LONGJMP 1 +#define HAVE_ARC4RANDOM_BUF 1 +#define HAVE_ATAN2L 1 +#define HAVE_ATAN2F 1 +#define HAVE_CHMOD 1 +#define HAVE_CHOWN 1 +#define HAVE_CHROOT 1 +#define HAVE_CLOCK_GETTIME 1 +#define HAVE_COSH 1 +#define HAVE_DIRFD 1 +#define HAVE_DLOPEN 1 +#define HAVE_DLADDR 1 +#define HAVE_ENDGRENT 1 +#define HAVE_EXECL 1 +#define HAVE_EXECLE 1 +#define HAVE_EXECV 1 +#define HAVE_EXECVE 1 +#define HAVE_FCOPYFILE 1 +#define HAVE_FCHMOD 1 +#define HAVE_FCHOWN 1 +#define HAVE_FCNTL 1 +#define HAVE_FDOPENDIR 1 +#define HAVE_FGETATTRLIST 1 +#define HAVE_FMOD 1 +#define HAVE_FSTATAT 1 +#define HAVE_FSYNC 1 +#define HAVE_FTRUNCATE 1 +#define HAVE_GETATTRLIST 1 +#define HAVE_GETCWD 1 +#define HAVE_GETEGID 1 +#define HAVE_GETENTROPY 1 +#define HAVE_GETEUID 1 +#define HAVE_GETGID 1 +#define HAVE_GETGRNAM 1 +#define HAVE_GETGRNAM_R 1 +#define HAVE_GETGROUPS 1 +#define HAVE_GETLOGIN 1 +#define HAVE_GETLOGIN_R 1 +#define HAVE_GETPGID 1 +#define HAVE_GETPGRP 1 +#define HAVE_GETPPID 1 +#define HAVE_GETPRIORITY 1 +#define HAVE_GETPWNAM 1 +#define HAVE_GETPWNAM_R 1 +#define HAVE_GETPWUID 1 +#define HAVE_GETPWUID_R 1 +#define HAVE_GETRLIMIT 1 +#define HAVE_GETSID 1 +#define HAVE_GETTIMEOFDAY 1 +#define HAVE_GETUID 1 +#define HAVE_GMTIME_R 1 +#define HAVE_GRANTPT 1 +#define HAVE_INITGROUPS 1 +#define HAVE_IOCTL 1 +#define HAVE_ISSETUGID 1 +#define HAVE_KILL 1 +#define HAVE_KILLPG 1 +#define HAVE_LCHMOD 1 +#define HAVE_LCHOWN 1 +#define HAVE_LINK 1 +#define HAVE_LLABS 1 +#define HAVE_LOCKF 1 +#define HAVE_LOG2 1 +#define HAVE_LSTAT 1 +#define HAVE_LUTIMES 1 +#define HAVE_MALLOC_SIZE 1 +#define HAVE_MBLEN 1 +#define HAVE_MEMSET_S 1 +#define HAVE_WRITEV 1 +#define HAVE_MEMMEM 1 +#define HAVE_MKFIFO 1 +#define HAVE_MKNOD 1 +#define HAVE_MKTIME 1 +#define HAVE_MMAP 1 +#define HAVE_OPENAT 1 +#define HAVE_PCLOSE 1 +#define HAVE_PIPE 1 +#define HAVE_POLL 1 +#define HAVE_POPEN 1 +#define HAVE_POSIX_MADVISE 1 +#define HAVE_POSIX_MEMALIGN 1 +#define HAVE_PREAD 1 +#define HAVE_PWRITE 1 +#define HAVE_QSORT_R 1 +#define HAVE_READLINK 1 +#define HAVE_REALPATH 1 +#define HAVE_ROUND 1 +#define HAVE_SEEKDIR 1 +#define HAVE_SENDFILE 1 +#define HAVE_SETEGID 1 +#define HAVE_SETENV 1 +#define HAVE_SETEUID 1 +#define HAVE_SETGID 1 +#define HAVE_SETGROUPS 1 +#define HAVE_SETPGID 1 +#define HAVE_SETPGRP 1 +#define HAVE_SETREGID 1 +#define HAVE_SETREUID 1 +#define HAVE_SETRGID 1 +#define HAVE_SETRLIMIT 1 +#define HAVE_SETRUID 1 +#define HAVE_SETSID 1 +#define HAVE_SETUID 1 +#define HAVE_SHUTDOWN 1 +#define HAVE_SIGACTION 1 +#define HAVE_SIGALTSTACK 1 +#define HAVE_SIGPROCMASK 1 +#define HAVE_SINH 1 +#define HAVE_SYMLINK 1 +#define HAVE_SYSCONF 1 +#define HAVE_SYSTEM 1 +#define HAVE_TANH 1 +#define HAVE_TELLDIR 1 +#define HAVE_TIMEGM 1 +#define HAVE_TIMES 1 +#define HAVE_TRUNCATE 1 +#define HAVE_TZSET 1 +#define HAVE_UMASK 1 +#define HAVE_UNSETENV 1 +#define HAVE_UTIMENSAT 1 +#define HAVE_UTIMES 1 +#define HAVE_WAIT4 1 +#define HAVE_WAITPID 1 +#define HAVE___COSPI 1 +#define HAVE___SINPI 1 +#if !defined __STDC_WANT_LIB_EXT1__ +#define __STDC_WANT_LIB_EXT1__ 1 +#endif /* !defined __STDC_WANT_LIB_EXT1__ */ +#define HAVE_BUILTIN___BUILTIN_ALLOCA_WITH_ALIGN 1 +#define HAVE_BUILTIN___BUILTIN_ASSUME_ALIGNED 1 +#define HAVE_BUILTIN___BUILTIN_BSWAP16 1 +#define HAVE_BUILTIN___BUILTIN_BSWAP32 1 +#define HAVE_BUILTIN___BUILTIN_BSWAP64 1 +#define HAVE_BUILTIN___BUILTIN_POPCOUNT 1 +#define HAVE_BUILTIN___BUILTIN_POPCOUNTLL 1 +#define HAVE_BUILTIN___BUILTIN_CLZ 1 +#define HAVE_BUILTIN___BUILTIN_CLZL 1 +#define HAVE_BUILTIN___BUILTIN_CLZLL 1 +#define HAVE_BUILTIN___BUILTIN_CTZ 1 +#define HAVE_BUILTIN___BUILTIN_CTZLL 1 +#define HAVE_BUILTIN___BUILTIN_ADD_OVERFLOW 1 +#define HAVE_BUILTIN___BUILTIN_SUB_OVERFLOW 1 +#define HAVE_BUILTIN___BUILTIN_MUL_OVERFLOW 1 +#define HAVE_BUILTIN___BUILTIN_CONSTANT_P 1 +#define HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR 1 +#define HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P 1 +#define HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P 1 +#define HAVE_BUILTIN___BUILTIN_TRAP 1 +#define HAVE_BUILTIN___BUILTIN_EXPECT 1 +#define HAVE_BSD_QSORT_R 1 +#define ATAN2_INF_C99 1 +#define HAVE_CLOCK_GETRES 1 +#define HAVE_STRUCT_TM_TM_ZONE 1 +#define HAVE_TM_ZONE 1 +#define HAVE_STRUCT_TM_TM_GMTOFF 1 +#define HAVE_DAYLIGHT 1 +#define NEGATIVE_TIME_T 1 +#define POSIX_SIGNAL 1 +#define HAVE_SIG_T 1 +#define RSHIFT(x,y) ((x)>>(int)(y)) +#define HAVE__SC_CLK_TCK 1 +#define STACK_GROW_DIRECTION -1 +#define COROUTINE_H "coroutine/arm64/Context.h" +#define HAVE_SCHED_YIELD 1 +#define HAVE_PTHREAD_ATTR_SETINHERITSCHED 1 +#define HAVE_PTHREAD_ATTR_GETSTACK 1 +#define HAVE_PTHREAD_ATTR_GETGUARDSIZE 1 +#define HAVE_PTHREAD_GET_STACKADDR_NP 1 +#define HAVE_PTHREAD_GET_STACKSIZE_NP 1 +#define HAVE_PTHREAD_SETNAME_NP 1 +#define HAVE_PTHREAD_SIGMASK 1 +#define SET_CURRENT_THREAD_NAME(name) pthread_setname_np(name) +#define DEFINE_MCONTEXT_PTR(mc, uc) mcontext_t mc = (uc)->uc_mcontext +#define HAVE_SYS_USER_H 1 +#define HAVE_CONST_PAGE_SIZE 0 +#define IOCTL_REQ_TYPE unsigned long +#define NUM2IOCTLREQ(num) NUM2ULONG(num) +#define HAVE_MACH_O_LOADER_H 1 +#define EXTSTATIC 1 +#define HAVE_LIBPROC_H 1 +#define HAVE_EXECINFO_H 1 +#define HAVE_LIBUNWIND_H 1 +#define HAVE_MACH_TASK_H 1 +#define HAVE_MACH_MACH_INIT_H 1 +#define HAVE_MACH_MACH_PORT_H 1 +#define HAVE_MACH_TASK_EXCEPTION_PORTS 1 +#define HAVE_BACKTRACE 1 +#define BROKEN_BACKTRACE 1 +#define DLEXT_MAXLEN 7 +#define DLEXT ".bundle" +#define LIBDIR_BASENAME "lib" +#define HAVE__SETJMP 1 +#define HAVE_SIGSETJMP 1 +#define RUBY_SETJMP(env) sigsetjmp((env),0) +#define RUBY_LONGJMP(env,val) siglongjmp((env),val) +#define RUBY_JMP_BUF sigjmp_buf +#define USE_MJIT 1 +#define USE_YJIT 0 +#define LOAD_RELATIVE 1 +#define RUBY_PLATFORM "arm64-darwin22" +#endif /* INCLUDE_RUBY_CONFIG_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby.h b/ThirdParty/include/ruby/3.2/mac/ruby.h new file mode 100644 index 0000000..789804b --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby.h @@ -0,0 +1,40 @@ +#ifndef RUBY_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_H 1 +/** + * @author $Author$ + * @date Sun 10 12:06:15 Jun JST 2007 + * @copyright 2007-2008 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ +#define HAVE_RUBY_ATOMIC_H 1 +#define HAVE_RUBY_DEBUG_H 1 +#define HAVE_RUBY_DEFINES_H 1 +#define HAVE_RUBY_ENCODING_H 1 +#define HAVE_RUBY_FIBER_SCHEDULER_H 1 +#define HAVE_RUBY_INTERN_H 1 +#define HAVE_RUBY_IO_H 1 +#define HAVE_RUBY_MEMORY_VIEW_H 1 +#define HAVE_RUBY_MISSING_H 1 +#define HAVE_RUBY_ONIGMO_H 1 +#define HAVE_RUBY_ONIGURUMA_H 1 +#define HAVE_RUBY_RACTOR_H 1 +#define HAVE_RUBY_RANDOM_H 1 +#define HAVE_RUBY_RE_H 1 +#define HAVE_RUBY_REGEX_H 1 +#define HAVE_RUBY_RUBY_H 1 +#define HAVE_RUBY_ST_H 1 +#define HAVE_RUBY_THREAD_H 1 +#define HAVE_RUBY_THREAD_NATIVE_H 1 +#define HAVE_RUBY_UTIL_H 1 +#define HAVE_RUBY_VERSION_H 1 +#define HAVE_RUBY_VM_H 1 +#ifdef _WIN32 +#define HAVE_RUBY_WIN32_H 1 +#endif + +#include "ruby/ruby.h" + +#endif /* RUBY_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/assert.h b/ThirdParty/include/ruby/3.2/mac/ruby/assert.h new file mode 100644 index 0000000..0c05236 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/assert.h @@ -0,0 +1,234 @@ +#ifndef RUBY_ASSERT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_ASSERT_H +/** + * @file + * @author Ruby developers + * @date Wed May 18 00:21:44 JST 1994 + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + */ +#include "ruby/internal/assume.h" +#include "ruby/internal/attr/cold.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/dllexport.h" +#include "ruby/backward/2/assume.h" + +/* RUBY_NDEBUG is very simple: after everything described below are done, + * define it with either NDEBUG is undefined (=0) or defined (=1). It is truly + * subordinate. + * + * RUBY_DEBUG versus NDEBUG is complicated. Assertions shall be: + * + * | -UNDEBUG | -DNDEBUG + * ---------------+----------+--------- + * -URUBY_DEBUG | (*1) | disabled + * -DRUBY_DEBUG=0 | disabled | disabled + * -DRUBY_DEBUG=1 | enabled | (*2) + * -DRUBY_DEBUG | enabled | (*2) + * + * where: + * + * - (*1): Assertions shall be silently disabled, no warnings, in favour of + * commit 21991e6ca59274e41a472b5256bd3245f6596c90. + * + * - (*2): Compile-time warnings shall be issued. + */ + +/** @cond INTERNAL_MACRO */ + +/* + * Pro tip: `!!RUBY_DEBUG-1` expands to... + * + * - `!!(-1)` (== `!0` == `1`) when RUBY_DEBUG is defined to be empty, + * - `(!!0)-1` (== `0-1` == `-1`) when RUBY_DEBUG is defined as 0, and + * - `(!!n)-1` (== `1-1` == `0`) when RUBY_DEBUG is defined as something else. + */ +#if ! defined(RUBY_DEBUG) +# define RBIMPL_RUBY_DEBUG 0 +#elif !!RUBY_DEBUG-1 < 0 +# define RBIMPL_RUBY_DEBUG 0 +#else +# define RBIMPL_RUBY_DEBUG 1 +#endif + +/* + * ISO/IEC 9899 (all past versions) says that "If NDEBUG is defined as a macro + * name at the point in the source file where is included, ..." + * which means we must not take its defined value into account. + */ +#if defined(NDEBUG) +# define RBIMPL_NDEBUG 1 +#else +# define RBIMPL_NDEBUG 0 +#endif + +/** @endcond */ + +/* Here we go... */ +#undef RUBY_DEBUG +#undef RUBY_NDEBUG +#undef NDEBUG +#if defined(__DOXYGEN__) +# /** Define this macro when you want assertions. */ +# define RUBY_DEBUG 0 +# /** Define this macro when you don't want assertions. */ +# define NDEBUG +# /** This macro is basically the same as #NDEBUG */ +# define RUBY_NDEBUG 1 + +#elif (RBIMPL_NDEBUG == 1) && (RBIMPL_RUBY_DEBUG == 0) +# /* Assertions disabled as per request, no conflicts. */ +# define RUBY_DEBUG 0 +# define RUBY_NDEBUG 1 +# define NDEBUG + +#elif (RBIMPL_NDEBUG == 0) && (RBIMPL_RUBY_DEBUG == 1) +# /* Assertions enabled as per request, no conflicts. */ +# define RUBY_DEBUG 1 +# define RUBY_NDEBUG 0 +# /* keep NDEBUG undefined */ + +#elif (RBIMPL_NDEBUG == 0) && (RBIMPL_RUBY_DEBUG == 0) +# /* The (*1) situation in above diagram. */ +# define RUBY_DEBUG 0 +# define RUBY_NDEBUG 1 +# define NDEBUG + +#elif (RBIMPL_NDEBUG == 1) && (RBIMPL_RUBY_DEBUG == 1) +# /* The (*2) situation in above diagram. */ +# define RUBY_DEBUG 1 +# define RUBY_NDEBUG 0 +# /* keep NDEBUG undefined */ + +# if defined(_MSC_VER) +# pragma message("NDEBUG is ignored because RUBY_DEBUG>0.") +# elif defined(__GNUC__) +# pragma GCC warning "NDEBUG is ignored because RUBY_DEBUG>0." +# else +# error NDEBUG is ignored because RUBY_DEBUG>0. +# endif +#endif +#undef RBIMPL_NDEBUG +#undef RBIMPL_RUBY_DEBUG + +/** @cond INTERNAL_MACRO */ +#define RBIMPL_ASSERT_NOTHING RBIMPL_CAST((void)0) + +RBIMPL_SYMBOL_EXPORT_BEGIN() +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_COLD() +void rb_assert_failure(const char *file, int line, const char *name, const char *expr); +RBIMPL_SYMBOL_EXPORT_END() + +#ifdef RUBY_FUNCTION_NAME_STRING +# define RBIMPL_ASSERT_FUNC RUBY_FUNCTION_NAME_STRING +#else +# define RBIMPL_ASSERT_FUNC RBIMPL_CAST((const char *)0) +#endif + +/** @endcond */ + +/** + * Prints the given message, and terminates the entire process abnormally. + * + * @param mesg The message to display. + */ +#define RUBY_ASSERT_FAIL(mesg) \ + rb_assert_failure(__FILE__, __LINE__, RBIMPL_ASSERT_FUNC, mesg) + +/** + * Asserts that the expression is truthy. If not aborts with the message. + * + * @param expr What supposedly evaluates to true. + * @param mesg The message to display on failure. + */ +#define RUBY_ASSERT_MESG(expr, mesg) \ + (RB_LIKELY(expr) ? RBIMPL_ASSERT_NOTHING : RUBY_ASSERT_FAIL(mesg)) + +/** + * A variant of #RUBY_ASSERT that does not interface with #RUBY_DEBUG. + * + * @copydetails #RUBY_ASSERT + */ +#define RUBY_ASSERT_ALWAYS(expr) RUBY_ASSERT_MESG((expr), #expr) + +/** + * Asserts that the given expression is truthy if and only if #RUBY_DEBUG is truthy. + * + * @param expr What supposedly evaluates to true. + */ +#if RUBY_DEBUG +# define RUBY_ASSERT(expr) RUBY_ASSERT_MESG((expr), #expr) +#else +# define RUBY_ASSERT(expr) RBIMPL_ASSERT_NOTHING +#endif + +/** + * A variant of #RUBY_ASSERT that interfaces with #NDEBUG instead of + * #RUBY_DEBUG. This almost resembles `assert` C standard macro, except minor + * implementation details. + * + * @copydetails #RUBY_ASSERT + */ +/* Currently `RUBY_DEBUG == ! defined(NDEBUG)` is always true. There is no + * difference any longer between this one and `RUBY_ASSERT`. */ +#if defined(NDEBUG) +# define RUBY_ASSERT_NDEBUG(expr) RBIMPL_ASSERT_NOTHING +#else +# define RUBY_ASSERT_NDEBUG(expr) RUBY_ASSERT_MESG((expr), #expr) +#endif + +/** + * @copydoc #RUBY_ASSERT_WHEN + * @param mesg The message to display on failure. + */ +#if RUBY_DEBUG +# define RUBY_ASSERT_MESG_WHEN(cond, expr, mesg) RUBY_ASSERT_MESG((expr), (mesg)) +#else +# define RUBY_ASSERT_MESG_WHEN(cond, expr, mesg) \ + ((cond) ? RUBY_ASSERT_MESG((expr), (mesg)) : RBIMPL_ASSERT_NOTHING) +#endif + +/** + * A variant of #RUBY_ASSERT that asserts when either #RUBY_DEBUG or `cond` + * parameter is truthy. + * + * @param cond Extra condition that shall hold for assertion to take effect. + * @param expr What supposedly evaluates to true. + */ +#define RUBY_ASSERT_WHEN(cond, expr) RUBY_ASSERT_MESG_WHEN((cond), (expr), #expr) + +/** + * This is either #RUBY_ASSERT or #RBIMPL_ASSUME, depending on #RUBY_DEBUG. + * + * @copydetails #RUBY_ASSERT + */ +#if RUBY_DEBUG +# define RBIMPL_ASSERT_OR_ASSUME(expr) RUBY_ASSERT_ALWAYS(expr) +#elif RBIMPL_COMPILER_BEFORE(Clang, 7, 0, 0) +# /* See commit 67d259c5dccd31fe49d417fec169977712ffdf10 */ +# define RBIMPL_ASSERT_OR_ASSUME(expr) RBIMPL_ASSERT_NOTHING +#elif defined(RUBY_ASSERT_NOASSUME) +# /* See commit d300a734414ef6de7e8eb563b7cc4389c455ed08 */ +# define RBIMPL_ASSERT_OR_ASSUME(expr) RBIMPL_ASSERT_NOTHING +#elif ! defined(RBIMPL_HAVE___ASSUME) +# define RBIMPL_ASSERT_OR_ASSUME(expr) RBIMPL_ASSERT_NOTHING +#else +# define RBIMPL_ASSERT_OR_ASSUME(expr) RBIMPL_ASSUME(expr) +#endif + +#endif /* RUBY_ASSERT_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/atomic.h b/ThirdParty/include/ruby/3.2/mac/ruby/atomic.h new file mode 100644 index 0000000..3eb80fb --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/atomic.h @@ -0,0 +1,890 @@ +#ifndef RUBY_ATOMIC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_ATOMIC_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Atomic operations + * + * Basically, if we could assume either C11 or C++11, these macros are just + * redundant. Sadly we cannot. We have to do them ourselves. + */ + +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include /* size_t */ +#endif + +#ifdef HAVE_SYS_TYPES_H +# include /* ssize_t */ +#endif + +#if RBIMPL_COMPILER_SINCE(MSVC, 13, 0, 0) +# pragma intrinsic(_InterlockedOr) +#elif defined(__sun) && defined(HAVE_ATOMIC_H) +# include +#endif + +#include "ruby/assert.h" +#include "ruby/backward/2/limits.h" +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/noalias.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/value.h" +#include "ruby/internal/static_assert.h" +#include "ruby/internal/stdbool.h" + +/* + * Asserts that your environment supports more than one atomic types. These + * days systems tend to have such property (C11 was a standard of decades ago, + * right?) but we still support older ones. + */ +#if defined(__DOXYGEN__) || defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_SYNC_BUILTINS) +# define RUBY_ATOMIC_GENERIC_MACRO 1 +#endif + +/** + * Type that is eligible for atomic operations. Depending on your host + * platform you might have more than one such type, but we choose one of them + * anyways. + */ +#if defined(__DOXYGEN__) +using rb_atomic_t = std::atomic; +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) +typedef unsigned int rb_atomic_t; +#elif defined(HAVE_GCC_SYNC_BUILTINS) +typedef unsigned int rb_atomic_t; +#elif defined(_WIN32) +typedef LONG rb_atomic_t; +#elif defined(__sun) && defined(HAVE_ATOMIC_H) +typedef unsigned int rb_atomic_t; +#else +# error No atomic operation found +#endif + +/** + * Atomically replaces the value pointed by `var` with the result of addition + * of `val` to the old value of `var`. + * + * @param var A variable of ::rb_atomic_t. + * @param val Value to add. + * @return What was stored in `var` before the addition. + * @post `var` holds `var + val`. + */ +#define RUBY_ATOMIC_FETCH_ADD(var, val) rbimpl_atomic_fetch_add(&(var), (val)) + +/** + * Atomically replaces the value pointed by `var` with the result of + * subtraction of `val` to the old value of `var`. + * + * @param var A variable of ::rb_atomic_t. + * @param val Value to subtract. + * @return What was stored in `var` before the subtraction. + * @post `var` holds `var - val`. + */ +#define RUBY_ATOMIC_FETCH_SUB(var, val) rbimpl_atomic_fetch_sub(&(var), (val)) + +/** + * Atomically replaces the value pointed by `var` with the result of + * bitwise OR between `val` and the old value of `var`. + * + * @param var A variable of ::rb_atomic_t. + * @param val Value to mix. + * @return void + * @post `var` holds `var | val`. + * @note For portability, this macro can return void. + */ +#define RUBY_ATOMIC_OR(var, val) rbimpl_atomic_or(&(var), (val)) + +/** + * Atomically replaces the value pointed by `var` with `val`. This is just an + * assignment, but you can additionally know the previous value. + * + * @param var A variable of ::rb_atomic_t. + * @param val Value to set. + * @return What was stored in `var` before the assignment. + * @post `var` holds `val`. + */ +#define RUBY_ATOMIC_EXCHANGE(var, val) rbimpl_atomic_exchange(&(var), (val)) + +/** + * Atomic compare-and-swap. This stores `val` to `var` if and only if the + * assignment changes the value of `var` from `oldval` to `newval`. You can + * detect whether the assignment happened or not using the return value. + * + * @param var A variable of ::rb_atomic_t. + * @param oldval Expected value of `var` before the assignment. + * @param newval What you want to store at `var`. + * @retval oldval Successful assignment (`var` is now `newval`). + * @retval otherwise Something else is at `var`; not updated. + */ +#define RUBY_ATOMIC_CAS(var, oldval, newval) \ + rbimpl_atomic_cas(&(var), (oldval), (newval)) + +/** + * Identical to #RUBY_ATOMIC_EXCHANGE, except for the return type. + * + * @param var A variable of ::rb_atomic_t. + * @param val Value to set. + * @return void + * @post `var` holds `val`. + */ +#define RUBY_ATOMIC_SET(var, val) rbimpl_atomic_set(&(var), (val)) + +/** + * Identical to #RUBY_ATOMIC_FETCH_ADD, except for the return type. + * + * @param var A variable of ::rb_atomic_t. + * @param val Value to add. + * @return void + * @post `var` holds `var + val`. + */ +#define RUBY_ATOMIC_ADD(var, val) rbimpl_atomic_add(&(var), (val)) + +/** + * Identical to #RUBY_ATOMIC_FETCH_SUB, except for the return type. + * + * @param var A variable of ::rb_atomic_t. + * @param val Value to subtract. + * @return void + * @post `var` holds `var - val`. + */ +#define RUBY_ATOMIC_SUB(var, val) rbimpl_atomic_sub(&(var), (val)) + +/** + * Atomically increments the value pointed by `var`. + * + * @param var A variable of ::rb_atomic_t. + * @return void + * @post `var` holds `var + 1`. + */ +#define RUBY_ATOMIC_INC(var) rbimpl_atomic_inc(&(var)) + +/** + * Atomically decrements the value pointed by `var`. + * + * @param var A variable of ::rb_atomic_t. + * @return void + * @post `var` holds `var - 1`. + */ +#define RUBY_ATOMIC_DEC(var) rbimpl_atomic_dec(&(var)) + +/** + * Identical to #RUBY_ATOMIC_INC, except it expects its argument is `size_t`. + * There are cases where ::rb_atomic_t is 32bit while `size_t` is 64bit. This + * should be used for size related operations to support such platforms. + * + * @param var A variable of `size_t`. + * @return void + * @post `var` holds `var + 1`. + */ +#define RUBY_ATOMIC_SIZE_INC(var) rbimpl_atomic_size_inc(&(var)) + +/** + * Identical to #RUBY_ATOMIC_DEC, except it expects its argument is `size_t`. + * There are cases where ::rb_atomic_t is 32bit while `size_t` is 64bit. This + * should be used for size related operations to support such platforms. + * + * @param var A variable of `size_t`. + * @return void + * @post `var` holds `var - 1`. + */ +#define RUBY_ATOMIC_SIZE_DEC(var) rbimpl_atomic_size_dec(&(var)) + +/** + * Identical to #RUBY_ATOMIC_EXCHANGE, except it expects its arguments are + * `size_t`. There are cases where ::rb_atomic_t is 32bit while `size_t` is + * 64bit. This should be used for size related operations to support such + * platforms. + * + * @param var A variable of `size_t`. + * @param val Value to set. + * @return What was stored in `var` before the assignment. + * @post `var` holds `val`. + */ +#define RUBY_ATOMIC_SIZE_EXCHANGE(var, val) \ + rbimpl_atomic_size_exchange(&(var), (val)) + +/** + * Identical to #RUBY_ATOMIC_CAS, except it expects its arguments are `size_t`. + * There are cases where ::rb_atomic_t is 32bit while `size_t` is 64bit. This + * should be used for size related operations to support such platforms. + * + * @param var A variable of `size_t`. + * @param oldval Expected value of `var` before the assignment. + * @param newval What you want to store at `var`. + * @retval oldval Successful assignment (`var` is now `newval`). + * @retval otherwise Something else is at `var`; not updated. + */ +#define RUBY_ATOMIC_SIZE_CAS(var, oldval, newval) \ + rbimpl_atomic_size_cas(&(var), (oldval), (newval)) + +/** + * Identical to #RUBY_ATOMIC_ADD, except it expects its arguments are `size_t`. + * There are cases where ::rb_atomic_t is 32bit while `size_t` is 64bit. This + * should be used for size related operations to support such platforms. + * + * @param var A variable of `size_t`. + * @param val Value to add. + * @return void + * @post `var` holds `var + val`. + */ +#define RUBY_ATOMIC_SIZE_ADD(var, val) rbimpl_atomic_size_add(&(var), (val)) + +/** + * Identical to #RUBY_ATOMIC_SUB, except it expects its arguments are `size_t`. + * There are cases where ::rb_atomic_t is 32bit while `size_t` is 64bit. This + * should be used for size related operations to support such platforms. + * + * @param var A variable of `size_t`. + * @param val Value to subtract. + * @return void + * @post `var` holds `var - val`. + */ +#define RUBY_ATOMIC_SIZE_SUB(var, val) rbimpl_atomic_size_sub(&(var), (val)) + +/** + * Identical to #RUBY_ATOMIC_EXCHANGE, except it expects its arguments are + * `void*`. There are cases where ::rb_atomic_t is 32bit while `void*` is + * 64bit. This should be used for pointer related operations to support such + * platforms. + * + * @param var A variable of `void *`. + * @param val Value to set. + * @return What was stored in `var` before the assignment. + * @post `var` holds `val`. + * + * @internal + * + * :FIXME: this `(void*)` cast is evil! However `void*` is incompatible with + * some pointers, most notably function pointers. + */ +#define RUBY_ATOMIC_PTR_EXCHANGE(var, val) \ + RBIMPL_CAST(rbimpl_atomic_ptr_exchange((void **)&(var), (void *)val)) + +/** + * Identical to #RUBY_ATOMIC_CAS, except it expects its arguments are `void*`. + * There are cases where ::rb_atomic_t is 32bit while `void*` is 64bit. This + * should be used for size related operations to support such platforms. + * + * @param var A variable of `void*`. + * @param oldval Expected value of `var` before the assignment. + * @param newval What you want to store at `var`. + * @retval oldval Successful assignment (`var` is now `newval`). + * @retval otherwise Something else is at `var`; not updated. + */ +#define RUBY_ATOMIC_PTR_CAS(var, oldval, newval) \ + RBIMPL_CAST(rbimpl_atomic_ptr_cas((void **)&(var), (oldval), (newval))) + +/** + * Identical to #RUBY_ATOMIC_EXCHANGE, except it expects its arguments are + * ::VALUE. There are cases where ::rb_atomic_t is 32bit while ::VALUE is + * 64bit. This should be used for pointer related operations to support such + * platforms. + * + * @param var A variable of ::VALUE. + * @param val Value to set. + * @return What was stored in `var` before the assignment. + * @post `var` holds `val`. + */ +#define RUBY_ATOMIC_VALUE_EXCHANGE(var, val) \ + rbimpl_atomic_value_exchange(&(var), (val)) + +/** + * Identical to #RUBY_ATOMIC_CAS, except it expects its arguments are ::VALUE. + * There are cases where ::rb_atomic_t is 32bit while ::VALUE is 64bit. This + * should be used for size related operations to support such platforms. + * + * @param var A variable of `void*`. + * @param oldval Expected value of `var` before the assignment. + * @param newval What you want to store at `var`. + * @retval oldval Successful assignment (`var` is now `newval`). + * @retval otherwise Something else is at `var`; not updated. + */ +#define RUBY_ATOMIC_VALUE_CAS(var, oldval, newval) \ + rbimpl_atomic_value_cas(&(var), (oldval), (newval)) + +/** @cond INTERNAL_MACRO */ +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline rb_atomic_t +rbimpl_atomic_fetch_add(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + return __atomic_fetch_add(ptr, val, __ATOMIC_SEQ_CST); + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + return __sync_fetch_and_add(ptr, val); + +#elif defined(_WIN32) + return InterlockedExchangeAdd(ptr, val); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + /* + * `atomic_add_int_nv` takes its second argument as `int`! Meanwhile our + * `rb_atomic_t` is unsigned. We cannot pass `val` as-is. We have to + * manually check integer overflow. + */ + RBIMPL_ASSERT_OR_ASSUME(val <= INT_MAX); + return atomic_add_int_nv(ptr, val) - val; + +#else +# error Unsupported platform. +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_add(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + /* + * GCC on amd64 is smart enough to detect this `__atomic_add_fetch`'s + * return value is not used, then compiles it into single `LOCK ADD` + * instruction. + */ + __atomic_add_fetch(ptr, val, __ATOMIC_SEQ_CST); + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + __sync_add_and_fetch(ptr, val); + +#elif defined(_WIN32) + /* + * `InterlockedExchangeAdd` is `LOCK XADD`. It seems there also is + * `_InterlockedAdd` intrinsic in ARM Windows but not for x86? Sticking to + * `InterlockedExchangeAdd` for better portability. + */ + InterlockedExchangeAdd(ptr, val); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + /* Ditto for `atomic_add_int_nv`. */ + RBIMPL_ASSERT_OR_ASSUME(val <= INT_MAX); + atomic_add_int(ptr, val); + +#else +# error Unsupported platform. +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_size_add(volatile size_t *ptr, size_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + __atomic_add_fetch(ptr, val, __ATOMIC_SEQ_CST); + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + __sync_add_and_fetch(ptr, val); + +#elif defined(_WIN32) && defined(_M_AMD64) + /* Ditto for `InterlockeExchangedAdd`. */ + InterlockedExchangeAdd64(ptr, val); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) && (defined(_LP64) || defined(_I32LPx)) + /* Ditto for `atomic_add_int_nv`. */ + RBIMPL_ASSERT_OR_ASSUME(val <= LONG_MAX); + atomic_add_long(ptr, val); + +#else + RBIMPL_STATIC_ASSERT(size_of_rb_atomic_t, sizeof *ptr == sizeof(rb_atomic_t)); + + volatile rb_atomic_t *const tmp = RBIMPL_CAST((volatile rb_atomic_t *)ptr); + rbimpl_atomic_add(tmp, val); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_inc(volatile rb_atomic_t *ptr) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_SYNC_BUILTINS) + rbimpl_atomic_add(ptr, 1); + +#elif defined(_WIN32) + InterlockedIncrement(ptr); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + atomic_inc_uint(ptr); + +#else + rbimpl_atomic_add(ptr, 1); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_size_inc(volatile size_t *ptr) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_SYNC_BUILTINS) + rbimpl_atomic_size_add(ptr, 1); + +#elif defined(_WIN32) && defined(_M_AMD64) + InterlockedIncrement64(ptr); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) && (defined(_LP64) || defined(_I32LPx)) + atomic_inc_ulong(ptr); + +#else + rbimpl_atomic_size_add(ptr, 1); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline rb_atomic_t +rbimpl_atomic_fetch_sub(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + return __atomic_fetch_sub(ptr, val, __ATOMIC_SEQ_CST); + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + return __sync_fetch_and_sub(ptr, val); + +#elif defined(_WIN32) + /* rb_atomic_t is signed here! Safe to do `-val`. */ + return InterlockedExchangeAdd(ptr, -val); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + /* Ditto for `rbimpl_atomic_fetch_add`. */ + const signed neg = -1; + RBIMPL_ASSERT_OR_ASSUME(val <= INT_MAX); + return atomic_add_int_nv(ptr, neg * val) + val; + +#else +# error Unsupported platform. +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_sub(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + __atomic_sub_fetch(ptr, val, __ATOMIC_SEQ_CST); + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + __sync_sub_and_fetch(ptr, val); + +#elif defined(_WIN32) + InterlockedExchangeAdd(ptr, -val); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + const signed neg = -1; + RBIMPL_ASSERT_OR_ASSUME(val <= INT_MAX); + atomic_add_int(ptr, neg * val); + +#else +# error Unsupported platform. +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_size_sub(volatile size_t *ptr, size_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + __atomic_sub_fetch(ptr, val, __ATOMIC_SEQ_CST); + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + __sync_sub_and_fetch(ptr, val); + +#elif defined(_WIN32) && defined(_M_AMD64) + const ssize_t neg = -1; + InterlockedExchangeAdd64(ptr, neg * val); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) && (defined(_LP64) || defined(_I32LPx)) + const signed neg = -1; + RBIMPL_ASSERT_OR_ASSUME(val <= LONG_MAX); + atomic_add_long(ptr, neg * val); + +#else + RBIMPL_STATIC_ASSERT(size_of_rb_atomic_t, sizeof *ptr == sizeof(rb_atomic_t)); + + volatile rb_atomic_t *const tmp = RBIMPL_CAST((volatile rb_atomic_t *)ptr); + rbimpl_atomic_sub(tmp, val); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_dec(volatile rb_atomic_t *ptr) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_SYNC_BUILTINS) + rbimpl_atomic_sub(ptr, 1); + +#elif defined(_WIN32) + InterlockedDecrement(ptr); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + atomic_dec_uint(ptr); + +#else + rbimpl_atomic_sub(ptr, 1); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_size_dec(volatile size_t *ptr) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_SYNC_BUILTINS) + rbimpl_atomic_size_sub(ptr, 1); + +#elif defined(_WIN32) && defined(_M_AMD64) + InterlockedDecrement64(ptr); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) && (defined(_LP64) || defined(_I32LPx)) + atomic_dec_ulong(ptr); + +#else + rbimpl_atomic_size_sub(ptr, 1); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_or(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + __atomic_or_fetch(ptr, val, __ATOMIC_SEQ_CST); + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + __sync_or_and_fetch(ptr, val); + +#elif RBIMPL_COMPILER_SINCE(MSVC, 13, 0, 0) + _InterlockedOr(ptr, val); + +#elif defined(_WIN32) && defined(__GNUC__) + /* This was for old MinGW. Maybe not needed any longer? */ + __asm__( + "lock\n\t" + "orl\t%1, %0" + : "=m"(ptr) + : "Ir"(val)); + +#elif defined(_WIN32) && defined(_M_IX86) + __asm mov eax, ptr; + __asm mov ecx, val; + __asm lock or [eax], ecx; + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + atomic_or_uint(ptr, val); + +#else +# error Unsupported platform. +#endif +} + +/* Nobody uses this but for theoretical backwards compatibility... */ +#if RBIMPL_COMPILER_BEFORE(MSVC, 13, 0, 0) +static inline rb_atomic_t +rb_w32_atomic_or(volatile rb_atomic_t *var, rb_atomic_t val) +{ + return rbimpl_atomic_or(var, val); +} +#endif + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline rb_atomic_t +rbimpl_atomic_exchange(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + return __atomic_exchange_n(ptr, val, __ATOMIC_SEQ_CST); + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + return __sync_lock_test_and_set(ptr, val); + +#elif defined(_WIN32) + return InterlockedExchange(ptr, val); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + return atomic_swap_uint(ptr, val); + +#else +# error Unsupported platform. +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline size_t +rbimpl_atomic_size_exchange(volatile size_t *ptr, size_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + return __atomic_exchange_n(ptr, val, __ATOMIC_SEQ_CST); + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + return __sync_lock_test_and_set(ptr, val); + +#elif defined(_WIN32) && defined(_M_AMD64) + return InterlockedExchange64(ptr, val); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) && (defined(_LP64) || defined(_I32LPx)) + return atomic_swap_ulong(ptr, val); + +#else + RBIMPL_STATIC_ASSERT(size_of_size_t, sizeof *ptr == sizeof(rb_atomic_t)); + + volatile rb_atomic_t *const tmp = RBIMPL_CAST((volatile rb_atomic_t *)ptr); + const rb_atomic_t ret = rbimpl_atomic_exchange(tmp, val); + return RBIMPL_CAST((size_t)ret); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void * +rbimpl_atomic_ptr_exchange(void *volatile *ptr, const void *val) +{ +#if 0 + +#elif defined(InterlockedExchangePointer) + /* const_cast */ + PVOID *pptr = RBIMPL_CAST((PVOID *)ptr); + PVOID pval = RBIMPL_CAST((PVOID)val); + return InterlockedExchangePointer(pptr, pval); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + return atomic_swap_ptr(ptr, RBIMPL_CAST((void *)val)); + +#else + RBIMPL_STATIC_ASSERT(sizeof_voidp, sizeof *ptr == sizeof(size_t)); + + const size_t sval = RBIMPL_CAST((size_t)val); + volatile size_t *const sptr = RBIMPL_CAST((volatile size_t *)ptr); + const size_t sret = rbimpl_atomic_size_exchange(sptr, sval); + return RBIMPL_CAST((void *)sret); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline VALUE +rbimpl_atomic_value_exchange(volatile VALUE *ptr, VALUE val) +{ + RBIMPL_STATIC_ASSERT(sizeof_value, sizeof *ptr == sizeof(size_t)); + + const size_t sval = RBIMPL_CAST((size_t)val); + volatile size_t *const sptr = RBIMPL_CAST((volatile size_t *)ptr); + const size_t sret = rbimpl_atomic_size_exchange(sptr, sval); + return RBIMPL_CAST((VALUE)sret); +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_set(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + __atomic_store_n(ptr, val, __ATOMIC_SEQ_CST); + +#else + /* Maybe std::atomic::store can be faster? */ + rbimpl_atomic_exchange(ptr, val); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline rb_atomic_t +rbimpl_atomic_cas(volatile rb_atomic_t *ptr, rb_atomic_t oldval, rb_atomic_t newval) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + __atomic_compare_exchange_n( + ptr, &oldval, newval, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); + return oldval; + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + return __sync_val_compare_and_swap(ptr, oldval, newval); + +#elif RBIMPL_COMPILER_SINCE(MSVC, 13, 0, 0) + return InterlockedCompareExchange(ptr, newval, oldval); + +#elif defined(_WIN32) + PVOID *pptr = RBIMPL_CAST((PVOID *)ptr); + PVOID pold = RBIMPL_CAST((PVOID)oldval); + PVOID pnew = RBIMPL_CAST((PVOID)newval); + PVOID pret = InterlockedCompareExchange(pptr, pnew, pold); + return RBIMPL_CAST((rb_atomic_t)pret); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + return atomic_cas_uint(ptr, oldval, newval); + +#else +# error Unsupported platform. +#endif +} + +/* Nobody uses this but for theoretical backwards compatibility... */ +#if RBIMPL_COMPILER_BEFORE(MSVC, 13, 0, 0) +static inline rb_atomic_t +rb_w32_atomic_cas(volatile rb_atomic_t *var, rb_atomic_t oldval, rb_atomic_t newval) +{ + return rbimpl_atomic_cas(var, oldval, newval); +} +#endif + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline size_t +rbimpl_atomic_size_cas(volatile size_t *ptr, size_t oldval, size_t newval) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + __atomic_compare_exchange_n( + ptr, &oldval, newval, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); + return oldval; + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + return __sync_val_compare_and_swap(ptr, oldval, newval); + +#elif defined(_WIN32) && defined(_M_AMD64) + return InterlockedCompareExchange64(ptr, newval, oldval); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) && (defined(_LP64) || defined(_I32LPx)) + return atomic_cas_ulong(ptr, oldval, newval); + +#else + RBIMPL_STATIC_ASSERT(size_of_size_t, sizeof *ptr == sizeof(rb_atomic_t)); + + volatile rb_atomic_t *tmp = RBIMPL_CAST((volatile rb_atomic_t *)ptr); + return rbimpl_atomic_cas(tmp, oldval, newval); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void * +rbimpl_atomic_ptr_cas(void **ptr, const void *oldval, const void *newval) +{ +#if 0 + +#elif defined(InterlockedExchangePointer) + /* ... Can we say that InterlockedCompareExchangePtr surly exists when + * InterlockedExchangePointer is defined? Seems so but...?*/ + PVOID *pptr = RBIMPL_CAST((PVOID *)ptr); + PVOID pold = RBIMPL_CAST((PVOID)oldval); + PVOID pnew = RBIMPL_CAST((PVOID)newval); + return InterlockedCompareExchangePointer(pptr, pnew, pold); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + void *pold = RBIMPL_CAST((void *)oldval); + void *pnew = RBIMPL_CAST((void *)newval); + return atomic_cas_ptr(ptr, pold, pnew); + + +#else + RBIMPL_STATIC_ASSERT(sizeof_voidp, sizeof *ptr == sizeof(size_t)); + + const size_t snew = RBIMPL_CAST((size_t)newval); + const size_t sold = RBIMPL_CAST((size_t)oldval); + volatile size_t *const sptr = RBIMPL_CAST((volatile size_t *)ptr); + const size_t sret = rbimpl_atomic_size_cas(sptr, sold, snew); + return RBIMPL_CAST((void *)sret); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline VALUE +rbimpl_atomic_value_cas(volatile VALUE *ptr, VALUE oldval, VALUE newval) +{ + RBIMPL_STATIC_ASSERT(sizeof_value, sizeof *ptr == sizeof(size_t)); + + const size_t snew = RBIMPL_CAST((size_t)newval); + const size_t sold = RBIMPL_CAST((size_t)oldval); + volatile size_t *const sptr = RBIMPL_CAST((volatile size_t *)ptr); + const size_t sret = rbimpl_atomic_size_cas(sptr, sold, snew); + return RBIMPL_CAST((VALUE)sret); +} +/** @endcond */ +#endif /* RUBY_ATOMIC_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/backward.h b/ThirdParty/include/ruby/3.2/mac/ruby/backward.h new file mode 100644 index 0000000..f804c2c --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/backward.h @@ -0,0 +1,25 @@ +#ifndef RUBY_RUBY_BACKWARD_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_RUBY_BACKWARD_H 1 +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ +#include "ruby/internal/value.h" +#include "ruby/internal/interpreter.h" +#include "ruby/backward/2/attributes.h" + +#define RBIMPL_ATTR_DEPRECATED_SINCE(ver) RBIMPL_ATTR_DEPRECATED(("since " #ver)) +#define RBIMPL_ATTR_DEPRECATED_INTERNAL(ver) RBIMPL_ATTR_DEPRECATED(("since "#ver", also internal")) +#define RBIMPL_ATTR_DEPRECATED_INTERNAL_ONLY() RBIMPL_ATTR_DEPRECATED(("only for internal use")) + +RBIMPL_ATTR_DEPRECATED_INTERNAL_ONLY() void rb_clear_constant_cache(void); + +/* from version.c */ +#if defined(RUBY_SHOW_COPYRIGHT_TO_DIE) && !!(RUBY_SHOW_COPYRIGHT_TO_DIE+0) +# error RUBY_SHOW_COPYRIGHT_TO_DIE is deprecated +#endif + +#endif /* RUBY_RUBY_BACKWARD_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/assume.h b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/assume.h new file mode 100644 index 0000000..d148710 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/assume.h @@ -0,0 +1,56 @@ +#ifndef RUBY_BACKWARD2_ASSUME_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_ASSUME_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #ASSUME / #RB_LIKELY / #UNREACHABLE + */ +#include "ruby/internal/config.h" +#include "ruby/internal/assume.h" +#include "ruby/internal/has/builtin.h" + +#define ASSUME RBIMPL_ASSUME /**< @old{RBIMPL_ASSUME} */ +#define UNREACHABLE RBIMPL_UNREACHABLE() /**< @old{RBIMPL_UNREACHABLE} */ +#define UNREACHABLE_RETURN RBIMPL_UNREACHABLE_RETURN /**< @old{RBIMPL_UNREACHABLE_RETURN} */ + +/* likely */ +#if RBIMPL_HAS_BUILTIN(__builtin_expect) +/** + * Asserts that the given Boolean expression likely holds. + * + * @param x An expression that likely holds. + * + * @note Consider this macro carefully. It has been here since when CPUs were + * like babies, but contemporary processors are beasts. They are + * smarter than mare mortals like us today. Their branch predictions + * highly expectedly outperform your use of this macro. + */ +# define RB_LIKELY(x) (__builtin_expect(!!(x), 1)) + +/** + * Asserts that the given Boolean expression likely doesn't hold. + * + * @param x An expression that likely doesn't hold. + */ +# define RB_UNLIKELY(x) (__builtin_expect(!!(x), 0)) +#else +# define RB_LIKELY(x) (x) +# define RB_UNLIKELY(x) (x) +#endif + +#endif /* RUBY_BACKWARD2_ASSUME_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/attributes.h b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/attributes.h new file mode 100644 index 0000000..73acfc9 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/attributes.h @@ -0,0 +1,165 @@ +#ifndef RUBY_BACKWARD2_ATTRIBUTES_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_ATTRIBUTES_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Various attribute-related macros. + * + * ### Q&A ### + * + * - Q: Why are the macros defined in this header file so inconsistent in + * style? + * + * - A: Don't know. Don't blame me. Backward compatibility is the key here. + * I'm just preserving what they have been. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/attr/alloc_size.h" +#include "ruby/internal/attr/cold.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/attr/error.h" +#include "ruby/internal/attr/forceinline.h" +#include "ruby/internal/attr/format.h" +#include "ruby/internal/attr/maybe_unused.h" +#include "ruby/internal/attr/noinline.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/attr/restrict.h" +#include "ruby/internal/attr/returns_nonnull.h" +#include "ruby/internal/attr/warning.h" +#include "ruby/internal/has/attribute.h" + +/* function attributes */ +#undef CONSTFUNC +#define CONSTFUNC(x) RBIMPL_ATTR_CONST() x + +#undef PUREFUNC +#define PUREFUNC(x) RBIMPL_ATTR_PURE() x + +#undef DEPRECATED +#define DEPRECATED(x) RBIMPL_ATTR_DEPRECATED(("")) x + +#undef DEPRECATED_BY +#define DEPRECATED_BY(n,x) RBIMPL_ATTR_DEPRECATED(("by: " # n)) x + +#undef DEPRECATED_TYPE +#if defined(__GNUC__) +# define DEPRECATED_TYPE(mesg, decl) \ + _Pragma("message \"DEPRECATED_TYPE is deprecated\""); \ + decl RBIMPL_ATTR_DEPRECATED(mseg) +#elif defined(_MSC_VER) +# pragma deprecated(DEPRECATED_TYPE) +# define DEPRECATED_TYPE(mesg, decl) \ + __pragma(message(__FILE__"("STRINGIZE(__LINE__)"): warning: " \ + "DEPRECATED_TYPE is deprecated")) \ + decl RBIMPL_ATTR_DEPRECATED(mseg) +#else +# define DEPRECATED_TYPE(mesg, decl) \ + <-<-"DEPRECATED_TYPE is deprecated"->-> +#endif + +#undef RUBY_CXX_DEPRECATED +#define RUBY_CXX_DEPRECATED(mseg) RBIMPL_ATTR_DEPRECATED((mseg)) + +#undef NOINLINE +#define NOINLINE(x) RBIMPL_ATTR_NOINLINE() x + +#ifndef MJIT_HEADER +# undef ALWAYS_INLINE +# define ALWAYS_INLINE(x) RBIMPL_ATTR_FORCEINLINE() x +#endif + +#undef ERRORFUNC +#define ERRORFUNC(mesg, x) RBIMPL_ATTR_ERROR(mesg) x +#if RBIMPL_HAS_ATTRIBUTE(error) +# define HAVE_ATTRIBUTE_ERRORFUNC 1 +#endif + +#undef WARNINGFUNC +#define WARNINGFUNC(mesg, x) RBIMPL_ATTR_WARNING(mesg) x +#if RBIMPL_HAS_ATTRIBUTE(warning) +# define HAVE_ATTRIBUTE_WARNINGFUNC 1 +#endif + +/* + cold attribute for code layout improvements + RUBY_FUNC_ATTRIBUTE not used because MSVC does not like nested func macros + */ +#undef COLDFUNC +#define COLDFUNC RBIMPL_ATTR_COLD() + +#define PRINTF_ARGS(decl, string_index, first_to_check) \ + RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, (string_index), (first_to_check)) \ + decl + +#undef RUBY_ATTR_ALLOC_SIZE +#define RUBY_ATTR_ALLOC_SIZE RBIMPL_ATTR_ALLOC_SIZE + +#undef RUBY_ATTR_MALLOC +#define RUBY_ATTR_MALLOC RBIMPL_ATTR_RESTRICT() + +#undef RUBY_ATTR_RETURNS_NONNULL +#define RUBY_ATTR_RETURNS_NONNULL RBIMPL_ATTR_RETURNS_NONNULL() + +#ifndef FUNC_MINIMIZED +#define FUNC_MINIMIZED(x) x +#endif + +#ifndef FUNC_UNOPTIMIZED +#define FUNC_UNOPTIMIZED(x) x +#endif + +#ifndef RUBY_ALIAS_FUNCTION_TYPE +#define RUBY_ALIAS_FUNCTION_TYPE(type, prot, name, args) \ + FUNC_MINIMIZED(type prot) {return (type)name args;} +#endif + +#ifndef RUBY_ALIAS_FUNCTION_VOID +#define RUBY_ALIAS_FUNCTION_VOID(prot, name, args) \ + FUNC_MINIMIZED(void prot) {name args;} +#endif + +#ifndef RUBY_ALIAS_FUNCTION +#define RUBY_ALIAS_FUNCTION(prot, name, args) \ + RUBY_ALIAS_FUNCTION_TYPE(VALUE, prot, name, args) +#endif + +#undef RUBY_FUNC_NONNULL +#define RUBY_FUNC_NONNULL(n, x) RBIMPL_ATTR_NONNULL(n) x + +#undef NORETURN +#define NORETURN(x) RBIMPL_ATTR_NORETURN() x +#define NORETURN_STYLE_NEW + +#ifndef PACKED_STRUCT +# define PACKED_STRUCT(x) x +#endif + +#ifndef PACKED_STRUCT_UNALIGNED +# if UNALIGNED_WORD_ACCESS +# define PACKED_STRUCT_UNALIGNED(x) PACKED_STRUCT(x) +# else +# define PACKED_STRUCT_UNALIGNED(x) x +# endif +#endif + +#undef RB_UNUSED_VAR +#define RB_UNUSED_VAR(x) x RBIMPL_ATTR_MAYBE_UNUSED() + +#endif /* RUBY_BACKWARD2_ATTRIBUTES_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/bool.h b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/bool.h new file mode 100644 index 0000000..f2fa390 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/bool.h @@ -0,0 +1,36 @@ +#ifndef RUBY_BACKWARD2_BOOL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_BOOL_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines old TRUE / FALSE + */ +#include "ruby/internal/stdbool.h" + +#ifndef FALSE +# define FALSE false +#elif FALSE +# error FALSE must be false +#endif + +#ifndef TRUE +# define TRUE true +#elif ! TRUE +# error TRUE must be true +#endif + +#endif /* RUBY_BACKWARD2_BOOL_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/gcc_version_since.h b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/gcc_version_since.h new file mode 100644 index 0000000..00cc40c --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/gcc_version_since.h @@ -0,0 +1,37 @@ +#ifndef RUBY_BACKWARD2_GCC_VERSION_SINCE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_GCC_VERSION_SINCE_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines old GCC_VERSION_SINCE + */ +#include "ruby/internal/compiler_since.h" + +#ifndef GCC_VERSION_SINCE +#define GCC_VERSION_SINCE(x, y, z) RBIMPL_COMPILER_SINCE(GCC, (x), (y), (z)) +#endif + +#ifndef GCC_VERSION_BEFORE +#define GCC_VERSION_BEFORE(x, y, z) \ + (RBIMPL_COMPILER_BEFORE(GCC, (x), (y), (z)) || \ + (RBIMPL_COMPILER_IS(GCC) && \ + ((RBIMPL_COMPILER_VERSION_MAJOR == (x)) && \ + ((RBIMPL_COMPILER_VERSION_MINOR == (y)) && \ + (RBIMPL_COMPILER_VERSION_PATCH == (z)))))) +#endif + +#endif /* RUBY_BACKWARD2_GCC_VERSION_SINCE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/inttypes.h b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/inttypes.h new file mode 100644 index 0000000..4546087 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/inttypes.h @@ -0,0 +1,131 @@ +#ifndef RUBY_BACKWARD2_INTTYPES_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_INTTYPES_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief C99 shim for `` + */ +#include "ruby/internal/config.h" /* PRI_LL_PREFIX etc. are here */ + +#ifdef HAVE_INTTYPES_H +# include +#endif + +#include "ruby/internal/value.h" /* PRI_VALUE_PREFIX is here. */ + +#ifndef PRI_INT_PREFIX +# define PRI_INT_PREFIX "" +#endif + +#ifndef PRI_LONG_PREFIX +# define PRI_LONG_PREFIX "l" +#endif + +#ifndef PRI_SHORT_PREFIX +# define PRI_SHORT_PREFIX "h" +#endif + +#ifdef PRI_64_PREFIX +# /* Take that. */ +#elif SIZEOF_LONG == 8 +# define PRI_64_PREFIX PRI_LONG_PREFIX +#elif SIZEOF_LONG_LONG == 8 +# define PRI_64_PREFIX PRI_LL_PREFIX +#endif + +#ifndef PRIdPTR +# define PRIdPTR PRI_PTR_PREFIX"d" +# define PRIiPTR PRI_PTR_PREFIX"i" +# define PRIoPTR PRI_PTR_PREFIX"o" +# define PRIuPTR PRI_PTR_PREFIX"u" +# define PRIxPTR PRI_PTR_PREFIX"x" +# define PRIXPTR PRI_PTR_PREFIX"X" +#endif + +#ifndef RUBY_PRI_VALUE_MARK +# define RUBY_PRI_VALUE_MARK "\v" +#endif + +#if defined PRIdPTR && !defined PRI_VALUE_PREFIX +# define PRIdVALUE PRIdPTR +# define PRIoVALUE PRIoPTR +# define PRIuVALUE PRIuPTR +# define PRIxVALUE PRIxPTR +# define PRIXVALUE PRIXPTR +# define PRIsVALUE PRIiPTR"" RUBY_PRI_VALUE_MARK +#else +# define PRIdVALUE PRI_VALUE_PREFIX"d" +# define PRIoVALUE PRI_VALUE_PREFIX"o" +# define PRIuVALUE PRI_VALUE_PREFIX"u" +# define PRIxVALUE PRI_VALUE_PREFIX"x" +# define PRIXVALUE PRI_VALUE_PREFIX"X" +# define PRIsVALUE PRI_VALUE_PREFIX"i" RUBY_PRI_VALUE_MARK +#endif + +#ifndef PRI_VALUE_PREFIX +# define PRI_VALUE_PREFIX "" +#endif + +#ifdef PRI_TIMET_PREFIX +# /* Take that. */ +#elif SIZEOF_TIME_T == SIZEOF_INT +# define PRI_TIMET_PREFIX +#elif SIZEOF_TIME_T == SIZEOF_LONG +# define PRI_TIMET_PREFIX "l" +#elif SIZEOF_TIME_T == SIZEOF_LONG_LONG +# define PRI_TIMET_PREFIX PRI_LL_PREFIX +#endif + +#ifdef PRI_PTRDIFF_PREFIX +# /* Take that. */ +#elif SIZEOF_PTRDIFF_T == SIZEOF_INT +# define PRI_PTRDIFF_PREFIX "" +#elif SIZEOF_PTRDIFF_T == SIZEOF_LONG +# define PRI_PTRDIFF_PREFIX "l" +#elif SIZEOF_PTRDIFF_T == SIZEOF_LONG_LONG +# define PRI_PTRDIFF_PREFIX PRI_LL_PREFIX +#endif + +#ifndef PRIdPTRDIFF +# define PRIdPTRDIFF PRI_PTRDIFF_PREFIX"d" +# define PRIiPTRDIFF PRI_PTRDIFF_PREFIX"i" +# define PRIoPTRDIFF PRI_PTRDIFF_PREFIX"o" +# define PRIuPTRDIFF PRI_PTRDIFF_PREFIX"u" +# define PRIxPTRDIFF PRI_PTRDIFF_PREFIX"x" +# define PRIXPTRDIFF PRI_PTRDIFF_PREFIX"X" +#endif + +#ifdef PRI_SIZE_PREFIX +# /* Take that. */ +#elif SIZEOF_SIZE_T == SIZEOF_INT +# define PRI_SIZE_PREFIX "" +#elif SIZEOF_SIZE_T == SIZEOF_LONG +# define PRI_SIZE_PREFIX "l" +#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG +# define PRI_SIZE_PREFIX PRI_LL_PREFIX +#endif + +#ifndef PRIdSIZE +# define PRIdSIZE PRI_SIZE_PREFIX"d" +# define PRIiSIZE PRI_SIZE_PREFIX"i" +# define PRIoSIZE PRI_SIZE_PREFIX"o" +# define PRIuSIZE PRI_SIZE_PREFIX"u" +# define PRIxSIZE PRI_SIZE_PREFIX"x" +# define PRIXSIZE PRI_SIZE_PREFIX"X" +#endif + +#endif /* RUBY_BACKWARD2_INTTYPES_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/limits.h b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/limits.h new file mode 100644 index 0000000..6f7021e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/limits.h @@ -0,0 +1,99 @@ +#ifndef RUBY_BACKWARD2_LIMITS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_LIMITS_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Historical shim for ``. + * + * The macros in this header file are obsolescent. Does anyone really need our + * own definition of `CHAR_BIT` today? + */ +#include "ruby/internal/config.h" + +#ifdef HAVE_LIMITS_H +# include +#endif + +#include "ruby/backward/2/long_long.h" + +#ifndef LONG_MAX +# /* assuming 32bit(2's complement) long */ +# define LONG_MAX 2147483647L +#endif + +#ifndef LONG_MIN +# define LONG_MIN (-LONG_MAX-1) +#endif + +#ifndef CHAR_BIT +# define CHAR_BIT 8 +#endif + +#ifdef LLONG_MAX +# /* Take that. */ +#elif defined(LONG_LONG_MAX) +# define LLONG_MAX LONG_LONG_MAX +#elif defined(_I64_MAX) +# define LLONG_MAX _I64_MAX +#else +# /* assuming 64bit(2's complement) long long */ +# define LLONG_MAX 9223372036854775807LL +#endif + +#ifdef LLONG_MIN +# /* Take that. */ +#elif defined(LONG_LONG_MIN) +# define LLONG_MIN LONG_LONG_MIN +#elif defined(_I64_MAX) +# define LLONG_MIN _I64_MIN +#else +# define LLONG_MIN (-LLONG_MAX-1) +#endif + +#ifdef SIZE_MAX +# /* Take that. */ +#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG +# define SIZE_MAX ULLONG_MAX +# define SIZE_MIN ULLONG_MIN +#elif SIZEOF_SIZE_T == SIZEOF_LONG +# define SIZE_MAX ULONG_MAX +# define SIZE_MIN ULONG_MIN +#elif SIZEOF_SIZE_T == SIZEOF_INT +# define SIZE_MAX UINT_MAX +# define SIZE_MIN UINT_MIN +#else +# define SIZE_MAX USHRT_MAX +# define SIZE_MIN USHRT_MIN +#endif + +#ifdef SSIZE_MAX +# /* Take that. */ +#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG +# define SSIZE_MAX LLONG_MAX +# define SSIZE_MIN LLONG_MIN +#elif SIZEOF_SIZE_T == SIZEOF_LONG +# define SSIZE_MAX LONG_MAX +# define SSIZE_MIN LONG_MIN +#elif SIZEOF_SIZE_T == SIZEOF_INT +# define SSIZE_MAX INT_MAX +# define SSIZE_MIN INT_MIN +#else +# define SSIZE_MAX SHRT_MAX +# define SSIZE_MIN SHRT_MIN +#endif + +#endif /* RUBY_BACKWARD2_LIMITS_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/long_long.h b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/long_long.h new file mode 100644 index 0000000..8e6b274 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/long_long.h @@ -0,0 +1,73 @@ +#ifndef RUBY_BACKWARD2_LONG_LONG_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_LONG_LONG_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines old #LONG_LONG + * + * No known compiler that can compile today's ruby lacks long long. + * Historically MSVC was one of such compiler, but it implemented long long a + * while ago (some time back in 2013). The macros are for backwards + * compatibility only. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/has/warning.h" +#include "ruby/internal/warning_push.h" + +#if defined(__DOXYGEN__) +# /** @cond INTERNAL_MACRO */ +# define HAVE_LONG_LONG 1 +# define HAVE_TRUE_LONG_LONG 1 +# /** @endcond */ +# /** @deprecated Just use `long long` directly. */ +# define LONG_LONG long long. + +#elif RBIMPL_HAS_WARNING("-Wc++11-long-long") +# define HAVE_TRUE_LONG_LONG 1 +# define LONG_LONG \ + RBIMPL_WARNING_PUSH() \ + RBIMPL_WARNING_IGNORED(-Wc++11-long-long) \ + long long \ + RBIMPL_WARNING_POP() + +#elif RBIMPL_HAS_WARNING("-Wlong-long") +# define HAVE_TRUE_LONG_LONG 1 +# define LONG_LONG \ + RBIMPL_WARNING_PUSH() \ + RBIMPL_WARNING_IGNORED(-Wlong-long) \ + long long \ + RBIMPL_WARNING_POP() + +#elif defined(HAVE_LONG_LONG) +# define HAVE_TRUE_LONG_LONG 1 +# define LONG_LONG long long + +#elif SIZEOF___INT64 > 0 +# define HAVE_LONG_LONG 1 +# define LONG_LONG __int64 +# undef SIZEOF_LONG_LONG +# define SIZEOF_LONG_LONG SIZEOF___INT64 + +#else +# error Hello! Ruby developers believe this message must not happen. +# error If you encounter this message, can you file a bug report? +# error Remember to attach a detailed description of your environment. +# error Thank you! +#endif + +#endif /* RBIMPL_BACKWARD2_LONG_LONG_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/r_cast.h b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/r_cast.h new file mode 100644 index 0000000..3d0f40f --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/r_cast.h @@ -0,0 +1,32 @@ +#ifndef RUBY_BACKWARD2_R_CAST_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_R_CAST_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines old R_CAST + * + * Nobody is actively using this macro. + */ +#define R_CAST(st) (struct st*) +#define RMOVED(obj) (R_CAST(RMoved)(obj)) + +#if defined(__GNUC__) +# warning R_CAST and RMOVED are deprecated +#elif defined(_MSC_VER) +# pragma message("warning: R_CAST and RMOVED are deprecated") +#endif +#endif /* RUBY_BACKWARD2_R_CAST_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/rmodule.h b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/rmodule.h new file mode 100644 index 0000000..53b3783 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/rmodule.h @@ -0,0 +1,36 @@ +#ifndef RUBY_BACKWARD2_RMODULE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_RMODULE_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Orphan macros. + * + * These macros seems broken since at least 2011. Nobody (except ruby itself + * who is implementing the internals) could have used those macros for a while. + * Kept public as-is here to keep some theoretical backwards compatibility. + */ +#define RMODULE_IV_TBL(m) RCLASS_IV_TBL(m) +#define RMODULE_CONST_TBL(m) RCLASS_CONST_TBL(m) +#define RMODULE_M_TBL(m) RCLASS_M_TBL(m) +#define RMODULE_SUPER(m) RCLASS_SUPER(m) + +#if defined(__GNUC__) +# warning RMODULE_* macros are deprecated +#elif defined(_MSC_VER) +# pragma message("warning: RMODULE_* macros are deprecated") +#endif +#endif /* RUBY_BACKWARD2_RMODULE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/stdalign.h b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/stdalign.h new file mode 100644 index 0000000..8b491bf --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/stdalign.h @@ -0,0 +1,30 @@ +#ifndef RUBY_BACKWARD2_STDALIGN_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_STDALIGN_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RUBY_ALIGNAS / #RUBY_ALIGNOF + */ +#include "ruby/internal/stdalign.h" + +#undef RUBY_ALIGNAS +#undef RUBY_ALIGNOF +#define RUBY_ALIGNAS RBIMPL_ALIGNAS /**< @copydoc RBIMPL_ALIGNAS */ +#define RUBY_ALIGNOF RBIMPL_ALIGNOF /**< @copydoc RBIMPL_ALIGNOF */ + +#endif /* RUBY_BACKWARD2_STDALIGN_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/stdarg.h b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/stdarg.h new file mode 100644 index 0000000..08659fe --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/backward/2/stdarg.h @@ -0,0 +1,69 @@ +#ifndef RUBY_BACKWARD2_STDARG_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_STDARG_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines old #_ + * + * Nobody should ever use these macros any longer. No known compilers lack + * prototypes today. It's 21st century. Just forget them. + */ + +#undef _ +/** + * @deprecated Nobody practically needs this macro any longer. + * @brief This was a transition path from K&R to ANSI. + */ +#ifdef HAVE_PROTOTYPES +# define _(args) args +#else +# define _(args) () +#endif + +#undef __ +/** + * @deprecated Nobody practically needs this macro any longer. + * @brief This was a transition path from K&R to ANSI. + */ +#ifdef HAVE_STDARG_PROTOTYPES +# define __(args) args +#else +# define __(args) () +#endif + +/** + * Functions declared using this macro take arbitrary arguments, including + * void. + * + * ```CXX + * void func(ANYARGS); + * ``` + * + * This was a necessary evil when there was no such thing like function + * overloading. But it is the 21st century today. People generally need not + * use this. Just use a granular typed function. + * + * @see ruby::backward::cxxanyargs + */ +#ifdef __cplusplus +#define ANYARGS ... +#else +#define ANYARGS +#endif + +#endif /* RUBY_BACKWARD2_STDARG_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/backward/cxxanyargs.hpp b/ThirdParty/include/ruby/3.2/mac/ruby/backward/cxxanyargs.hpp new file mode 100644 index 0000000..2414b7a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/backward/cxxanyargs.hpp @@ -0,0 +1,700 @@ +#ifndef RUBY_BACKWARD_CXXANYARGS_HPP //-*-C++-*-vi:ft=cpp +#define RUBY_BACKWARD_CXXANYARGS_HPP +/// @file +/// @author @shyouhei +/// @copyright This file is a part of the programming language Ruby. +/// Permission is hereby granted, to either redistribute and/or +/// modify this file, provided that the conditions mentioned in the +/// file COPYING are met. Consult the file for details. +/// @note DO NOT MODERNISE THIS FILE! As the file name implies it is +/// meant to be a backwards compatibility shim. Please stick to +/// C++ 98 and never use newer features, like `constexpr`. +/// @brief Provides old prototypes for C++ programs. +#include "ruby/internal/config.h" +#include "ruby/internal/intern/class.h" +#include "ruby/internal/intern/cont.h" +#include "ruby/internal/intern/hash.h" +#include "ruby/internal/intern/proc.h" +#include "ruby/internal/intern/thread.h" +#include "ruby/internal/intern/variable.h" +#include "ruby/internal/intern/vm.h" +#include "ruby/internal/iterator.h" +#include "ruby/internal/method.h" +#include "ruby/internal/value.h" +#include "ruby/internal/variable.h" +#include "ruby/backward/2/stdarg.h" +#include "ruby/st.h" + +extern "C++" { + +#ifdef HAVE_NULLPTR +#include +#endif + +/// @brief The main namespace. +/// @note The name "ruby" might already be taken, but that must not be a +/// problem because namespaces are allowed to reopen. +namespace ruby { + +/// Backwards compatibility layer. +namespace backward { + +/// Provides ANYARGS deprecation warnings. In C, ANYARGS means there is no +/// function prototype. Literally anything, even including nothing, can be a +/// valid ANYARGS. So passing a correctly prototyped function pointer to an +/// ANYARGS-ed function parameter is valid, at the same time passing an +/// ANYARGS-ed function pointer to a granular typed function parameter is also +/// valid. However on the other hand in C++, ANYARGS doesn't actually mean any +/// number of arguments. C++'s ANYARGS means _variadic_ number of arguments. +/// This is incompatible with ordinal, correct function prototypes. +/// +/// Luckily, function prototypes being distinct each other means they can be +/// overloaded. We can provide a compatibility layer for older Ruby APIs which +/// used to have ANYARGS. This namespace includes such attempts. +namespace cxxanyargs { + +typedef VALUE type(ANYARGS); ///< ANYARGS-ed function type. +typedef void void_type(ANYARGS); ///< ANYARGS-ed function type, void variant. +typedef int int_type(ANYARGS); ///< ANYARGS-ed function type, int variant. +typedef VALUE onearg_type(VALUE); ///< Single-argumented function type. + +/// @name Hooking global variables +/// @{ + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Define a function-backended global variable. +/// @param[in] q Name of the variable. +/// @param[in] w Getter function. +/// @param[in] e Setter function. +/// @note Both functions can be nullptr. +/// @see rb_define_hooked_variable() +/// @deprecated Use granular typed overload instead. +inline void +rb_define_virtual_variable(const char *q, type *w, void_type *e) +{ + rb_gvar_getter_t *r = reinterpret_cast(w); + rb_gvar_setter_t *t = reinterpret_cast(e); + ::rb_define_virtual_variable(q, r, t); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +inline void +rb_define_virtual_variable(const char *q, rb_gvar_getter_t *w, void_type *e) +{ + rb_gvar_setter_t *t = reinterpret_cast(e); + ::rb_define_virtual_variable(q, w, t); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +inline void +rb_define_virtual_variable(const char *q, type *w, rb_gvar_setter_t *e) +{ + rb_gvar_getter_t *r = reinterpret_cast(w); + ::rb_define_virtual_variable(q, r, e); +} + +#ifdef HAVE_NULLPTR +inline void +rb_define_virtual_variable(const char *q, rb_gvar_getter_t *w, std::nullptr_t e) +{ + ::rb_define_virtual_variable(q, w, e); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +inline void +rb_define_virtual_variable(const char *q, type *w, std::nullptr_t e) +{ + rb_gvar_getter_t *r = reinterpret_cast(w); + ::rb_define_virtual_variable(q, r, e); +} + +inline void +rb_define_virtual_variable(const char *q, std::nullptr_t w, rb_gvar_setter_t *e) +{ + ::rb_define_virtual_variable(q, w, e); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +inline void +rb_define_virtual_variable(const char *q, std::nullptr_t w, void_type *e) +{ + rb_gvar_setter_t *r = reinterpret_cast(e); + ::rb_define_virtual_variable(q, w, r); +} +#endif + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Define a function-backended global variable. +/// @param[in] q Name of the variable. +/// @param[in] w Variable storage. +/// @param[in] e Getter function. +/// @param[in] r Setter function. +/// @note Both functions can be nullptr. +/// @see rb_define_virtual_variable() +/// @deprecated Use granular typed overload instead. +inline void +rb_define_hooked_variable(const char *q, VALUE *w, type *e, void_type *r) +{ + rb_gvar_getter_t *t = reinterpret_cast(e); + rb_gvar_setter_t *y = reinterpret_cast(r); + ::rb_define_hooked_variable(q, w, t, y); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +inline void +rb_define_hooked_variable(const char *q, VALUE *w, rb_gvar_getter_t *e, void_type *r) +{ + rb_gvar_setter_t *y = reinterpret_cast(r); + ::rb_define_hooked_variable(q, w, e, y); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +inline void +rb_define_hooked_variable(const char *q, VALUE *w, type *e, rb_gvar_setter_t *r) +{ + rb_gvar_getter_t *t = reinterpret_cast(e); + ::rb_define_hooked_variable(q, w, t, r); +} + +#ifdef HAVE_NULLPTR +inline void +rb_define_hooked_variable(const char *q, VALUE *w, rb_gvar_getter_t *e, std::nullptr_t r) +{ + ::rb_define_hooked_variable(q, w, e, r); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +inline void +rb_define_hooked_variable(const char *q, VALUE *w, type *e, std::nullptr_t r) +{ + rb_gvar_getter_t *y = reinterpret_cast(e); + ::rb_define_hooked_variable(q, w, y, r); +} + +inline void +rb_define_hooked_variable(const char *q, VALUE *w, std::nullptr_t e, rb_gvar_setter_t *r) +{ + ::rb_define_hooked_variable(q, w, e, r); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +inline void +rb_define_hooked_variable(const char *q, VALUE *w, std::nullptr_t e, void_type *r) +{ + rb_gvar_setter_t *y = reinterpret_cast(r); + ::rb_define_hooked_variable(q, w, e, y); +} +#endif + +/// @} +/// @name Exceptions and tag jumps +/// @{ + +// RUBY_CXX_DEPRECATED("by rb_block_call since 1.9") +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Old way to implement iterators. +/// @param[in] q A function that can yield. +/// @param[in] w Passed to `q`. +/// @param[in] e What is to be yielded. +/// @param[in] r Passed to `e`. +/// @return The return value of `q`. +/// @note `e` can be nullptr. +/// @deprecated This function is obsoleted since long before 2.x era. Do not +/// use it any longer. rb_block_call() is provided instead. +inline VALUE +rb_iterate(onearg_type *q, VALUE w, type *e, VALUE r) +{ + rb_block_call_func_t t = reinterpret_cast(e); + return backward::rb_iterate_deprecated(q, w, t, r); +} + +#ifdef HAVE_NULLPTR +RUBY_CXX_DEPRECATED("by rb_block_call since 1.9") +inline VALUE +rb_iterate(onearg_type *q, VALUE w, std::nullptr_t e, VALUE r) +{ + return backward::rb_iterate_deprecated(q, w, e, r); +} +#endif + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Call a method with a block. +/// @param[in] q The self. +/// @param[in] w The method. +/// @param[in] e The # of elems of `r` +/// @param[in] r The arguments. +/// @param[in] t What is to be yielded. +/// @param[in] y Passed to `t` +/// @return Return value of `q#w(*r,&t)` +/// @note 't' can be nullptr. +/// @deprecated Use granular typed overload instead. +inline VALUE +rb_block_call(VALUE q, ID w, int e, const VALUE *r, type *t, VALUE y) +{ + rb_block_call_func_t u = reinterpret_cast(t); + return ::rb_block_call(q, w, e, r, u, y); +} + +#ifdef HAVE_NULLPTR +inline VALUE +rb_block_call(VALUE q, ID w, int e, const VALUE *r, std::nullptr_t t, VALUE y) +{ + return ::rb_block_call(q, w, e, r, t, y); +} +#endif + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief An equivalent of `rescue` clause. +/// @param[in] q A function that can raise. +/// @param[in] w Passed to `q`. +/// @param[in] e A function that cleans-up. +/// @param[in] r Passed to `e`. +/// @return The return value of `q` if no exception occurs, or the return +/// value of `e` if otherwise. +/// @note `e` can be nullptr. +/// @see rb_ensure() +/// @see rb_rescue2() +/// @see rb_protect() +/// @deprecated Use granular typed overload instead. +inline VALUE +rb_rescue(type *q, VALUE w, type *e, VALUE r) +{ + typedef VALUE func1_t(VALUE); + typedef VALUE func2_t(VALUE, VALUE); + func1_t *t = reinterpret_cast(q); + func2_t *y = reinterpret_cast(e); + return ::rb_rescue(t, w, y, r); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief An equivalent of `rescue` clause. +/// @param[in] q A function that can raise. +/// @param[in] w Passed to `q`. +/// @param[in] e A function that cleans-up. +/// @param[in] r Passed to `e`. +/// @param[in] ... 0-terminated list of subclass of @ref rb_eException. +/// @return The return value of `q` if no exception occurs, or the return +/// value of `e` if otherwise. +/// @note `e` can be nullptr. +/// @see rb_ensure() +/// @see rb_rescue() +/// @see rb_protect() +/// @deprecated Use granular typed overload instead. +inline VALUE +rb_rescue2(type *q, VALUE w, type *e, VALUE r, ...) +{ + typedef VALUE func1_t(VALUE); + typedef VALUE func2_t(VALUE, VALUE); + func1_t *t = reinterpret_cast(q); + func2_t *y = reinterpret_cast(e); + va_list ap; + va_start(ap, r); + VALUE ret = ::rb_vrescue2(t, w, y, r, ap); + va_end(ap); + return ret; +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief An equivalent of `ensure` clause. +/// @param[in] q A function that can raise. +/// @param[in] w Passed to `q`. +/// @param[in] e A function that ensures. +/// @param[in] r Passed to `e`. +/// @return The return value of `q`. +/// @note It makes no sense to pass nullptr to `e`. +/// @see rb_rescue() +/// @see rb_rescue2() +/// @see rb_protect() +/// @deprecated Use granular typed overload instead. +inline VALUE +rb_ensure(type *q, VALUE w, type *e, VALUE r) +{ + typedef VALUE func1_t(VALUE); + func1_t *t = reinterpret_cast(q); + func1_t *y = reinterpret_cast(e); + return ::rb_ensure(t, w, y, r); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief An equivalent of `Kernel#catch`. +/// @param[in] q The "tag" string. +/// @param[in] w A function that can throw. +/// @param[in] e Passed to `w`. +/// @return What was thrown. +/// @note `q` can be a nullptr but makes no sense to pass nullptr to`w`. +/// @see rb_block_call() +/// @see rb_protect() +/// @see rb_rb_catch_obj() +/// @see rb_rescue() +/// @deprecated Use granular typed overload instead. +inline VALUE +rb_catch(const char *q, type *w, VALUE e) +{ + rb_block_call_func_t r = reinterpret_cast(w); + return ::rb_catch(q, r, e); +} + +#ifdef HAVE_NULLPTR +inline VALUE +rb_catch(const char *q, std::nullptr_t w, VALUE e) +{ + return ::rb_catch(q, w, e); +} +#endif + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief An equivalent of `Kernel#catch`. +/// @param[in] q The "tag" object. +/// @param[in] w A function that can throw. +/// @param[in] e Passed to `w`. +/// @return What was thrown. +/// @note It makes no sense to pass nullptr to`w`. +/// @see rb_block_call() +/// @see rb_protect() +/// @see rb_rb_catch_obj() +/// @see rb_rescue() +/// @deprecated Use granular typed overload instead. +inline VALUE +rb_catch_obj(VALUE q, type *w, VALUE e) +{ + rb_block_call_func_t r = reinterpret_cast(w); + return ::rb_catch_obj(q, r, e); +} + +/// @} +/// @name Procs, Fibers and Threads +/// @{ + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Creates a rb_cFiber instance. +/// @param[in] q The fiber body. +/// @param[in] w Passed to `q`. +/// @return What was allocated. +/// @note It makes no sense to pass nullptr to`q`. +/// @see rb_proc_new() +/// @see rb_thread_create() +/// @deprecated Use granular typed overload instead. +inline VALUE +rb_fiber_new(type *q, VALUE w) +{ + rb_block_call_func_t e = reinterpret_cast(q); + return ::rb_fiber_new(e, w); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Creates a @ref rb_cProc instance. +/// @param[in] q The proc body. +/// @param[in] w Passed to `q`. +/// @return What was allocated. +/// @note It makes no sense to pass nullptr to`q`. +/// @see rb_fiber_new() +/// @see rb_thread_create() +/// @deprecated Use granular typed overload instead. +inline VALUE +rb_proc_new(type *q, VALUE w) +{ + rb_block_call_func_t e = reinterpret_cast(q); + return ::rb_proc_new(e, w); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Creates a @ref rb_cThread instance. +/// @param[in] q The thread body. +/// @param[in] w Passed to `q`. +/// @return What was allocated. +/// @note It makes no sense to pass nullptr to`q`. +/// @see rb_proc_new() +/// @see rb_fiber_new() +/// @deprecated Use granular typed overload instead. +inline VALUE +rb_thread_create(type *q, void *w) +{ + typedef VALUE ptr_t(void*); + ptr_t *e = reinterpret_cast(q); + return ::rb_thread_create(e, w); +} + +/// @} +/// @name Hash and st_table +/// @{ + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Iteration over the given table. +/// @param[in] q A table to scan. +/// @param[in] w A function to iterate. +/// @param[in] e Passed to `w`. +/// @retval 0 Always returns 0. +/// @note It makes no sense to pass nullptr to`w`. +/// @see st_foreach_check() +/// @see rb_hash_foreach() +/// @deprecated Use granular typed overload instead. +inline int +st_foreach(st_table *q, int_type *w, st_data_t e) +{ + st_foreach_callback_func *r = + reinterpret_cast(w); + return ::st_foreach(q, r, e); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Iteration over the given table. +/// @param[in] q A table to scan. +/// @param[in] w A function to iterate. +/// @param[in] e Passed to `w`. +/// @retval 0 Successful end of iteration. +/// @retval 1 Element removed during traversing. +/// @note It makes no sense to pass nullptr to`w`. +/// @see st_foreach() +/// @deprecated Use granular typed overload instead. +inline int +st_foreach_check(st_table *q, int_type *w, st_data_t e, st_data_t) +{ + st_foreach_check_callback_func *t = + reinterpret_cast(w); + return ::st_foreach_check(q, t, e, 0); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Iteration over the given table. +/// @param[in] q A table to scan. +/// @param[in] w A function to iterate. +/// @param[in] e Passed to `w`. +/// @note It makes no sense to pass nullptr to`w`. +/// @see st_foreach_check() +/// @deprecated Use granular typed overload instead. +inline void +st_foreach_safe(st_table *q, int_type *w, st_data_t e) +{ + st_foreach_callback_func *r = + reinterpret_cast(w); + ::st_foreach_safe(q, r, e); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Iteration over the given hash. +/// @param[in] q A hash to scan. +/// @param[in] w A function to iterate. +/// @param[in] e Passed to `w`. +/// @note It makes no sense to pass nullptr to`w`. +/// @see st_foreach() +/// @deprecated Use granular typed overload instead. +inline void +rb_hash_foreach(VALUE q, int_type *w, VALUE e) +{ + st_foreach_callback_func *r = + reinterpret_cast(w); + ::rb_hash_foreach(q, r, e); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Iteration over each instance variable of the object. +/// @param[in] q An object. +/// @param[in] w A function to iterate. +/// @param[in] e Passed to `w`. +/// @note It makes no sense to pass nullptr to`w`. +/// @see st_foreach() +/// @deprecated Use granular typed overload instead. +inline void +rb_ivar_foreach(VALUE q, int_type *w, VALUE e) +{ + st_foreach_callback_func *r = + reinterpret_cast(w); + ::rb_ivar_foreach(q, r, e); +} + +/// @} + +/// Driver for *_define_method. ::rb_define_method function for instance takes +/// a pointer to ANYARGS-ed functions, which in fact varies 18 different +/// prototypes. We still need to preserve ANYARGS for storages but why not +/// check the consistencies if possible. In C++ a function has its own +/// prototype, which is a compile-time constant (static type) by nature. We +/// can list up all the possible input types and provide warnings for other +/// cases. This is such attempt. +namespace define_method { + +/// Type of ::rb_f_notimplement(). +typedef VALUE notimpl_type(int, const VALUE *, VALUE, VALUE); + +/// @brief Template metaprogramming to generate function prototypes. +/// @tparam T Type of method id (`ID` or `const char*` in practice). +/// @tparam F Definition driver e.g. ::rb_define_method. +template +struct driver { + + /// @brief Defines a method + /// @tparam N Arity of the function. + /// @tparam U The function in question + template + struct engine { + + /* :TODO: Following deprecation attribute renders tons of warnings (one + * per every method definitions), which is annoying. Of course + * annoyance is the core feature of deprecation warnings... But that + * could be too much, especially when the warnings happen inside of + * machine-generated programs. And SWIG is known to do such thing. + * The new (granular) API was introduced in API version 2.7. As of + * this writing the version is 2.8. Let's warn this later, some time + * during 3.x. Hopefully codes in old (ANYARGS-ed) format should be + * less than now. */ +#if (RUBY_API_VERSION_MAJOR * 100 + RUBY_API_VERSION_MINOR) >= 301 + RUBY_CXX_DEPRECATED("use of ANYARGS is deprecated") +#endif + /// @copydoc define(VALUE klass, T mid, U func) + /// @deprecated Pass correctly typed function instead. + static inline void + define(VALUE klass, T mid, type func) + { + F(klass, mid, func, N); + } + + /// @brief Defines klass#mid as func, whose arity is N. + /// @param[in] klass Where the method lives. + /// @param[in] mid Name of the method to define. + /// @param[in] func Function that implements klass#mid. + static inline void + define(VALUE klass, T mid, U func) + { + F(klass, mid, reinterpret_cast(func), N); + } + + /// @copydoc define(VALUE klass, T mid, U func) + static inline void + define(VALUE klass, T mid, notimpl_type func) + { + F(klass, mid, reinterpret_cast(func), N); + } + }; + + /// @cond INTERNAL_MACRO + template struct specific : public engine {}; + template struct specific<15, b> : public engine<15, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<14, b> : public engine<14, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<13, b> : public engine<13, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<12, b> : public engine<12, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<11, b> : public engine<11, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<10, b> : public engine<10, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 9, b> : public engine< 9, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 8, b> : public engine< 8, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 7, b> : public engine< 7, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 6, b> : public engine< 6, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 5, b> : public engine< 5, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 4, b> : public engine< 4, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 3, b> : public engine< 3, VALUE(*)(VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 2, b> : public engine< 2, VALUE(*)(VALUE, VALUE, VALUE)> {}; + template struct specific< 1, b> : public engine< 1, VALUE(*)(VALUE, VALUE)> {}; + template struct specific< 0, b> : public engine< 0, VALUE(*)(VALUE)> {}; + template struct specific<-1, b> : public engine<-1, VALUE(*)(int argc, VALUE *argv, VALUE self)> { + using engine<-1, VALUE(*)(int argc, VALUE *argv, VALUE self)>::define; + static inline void define(VALUE c, T m, VALUE(*f)(int argc, const VALUE *argv, VALUE self)) { F(c, m, reinterpret_cast(f), -1); } + }; + template struct specific<-2, b> : public engine<-2, VALUE(*)(VALUE, VALUE)> {}; + /// @endcond +}; + +/* We could perhaps merge this struct into the one above using variadic + * template parameters if we could assume C++11, but sadly we cannot. */ +/// @copydoc ruby::backward::cxxanyargs::define_method::driver +template +struct driver0 { + + /// @brief Defines a method + /// @tparam N Arity of the function. + /// @tparam U The function in question + template + struct engine { + RUBY_CXX_DEPRECATED("use of ANYARGS is deprecated") + /// @copydoc define(T mid, U func) + /// @deprecated Pass correctly typed function instead. + static inline void + define(T mid, type func) + { + F(mid, func, N); + } + + /// @brief Defines Kernel#mid as func, whose arity is N. + /// @param[in] mid Name of the method to define. + /// @param[in] func Function that implements klass#mid. + static inline void + define(T mid, U func) + { + F(mid, reinterpret_cast(func), N); + } + + /// @copydoc define(T mid, U func) + /// @deprecated Pass correctly typed function instead. + static inline void + define(T mid, notimpl_type func) + { + F(mid, reinterpret_cast(func), N); + } + }; + + /// @cond INTERNAL_MACRO + template struct specific : public engine {}; + template struct specific<15, b> : public engine<15, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<14, b> : public engine<14, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<13, b> : public engine<13, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<12, b> : public engine<12, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<11, b> : public engine<11, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<10, b> : public engine<10, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 9, b> : public engine< 9, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 8, b> : public engine< 8, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 7, b> : public engine< 7, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 6, b> : public engine< 6, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 5, b> : public engine< 5, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 4, b> : public engine< 4, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 3, b> : public engine< 3, VALUE(*)(VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 2, b> : public engine< 2, VALUE(*)(VALUE, VALUE, VALUE)> {}; + template struct specific< 1, b> : public engine< 1, VALUE(*)(VALUE, VALUE)> {}; + template struct specific< 0, b> : public engine< 0, VALUE(*)(VALUE)> {}; + template struct specific<-1, b> : public engine<-1, VALUE(*)(int argc, VALUE *argv, VALUE self)> { + using engine<-1, VALUE(*)(int argc, VALUE *argv, VALUE self)>::define; + static inline void define(T m, VALUE(*f)(int argc, const VALUE *argv, VALUE self)) { F(m, reinterpret_cast(f), -1); } + }; + template struct specific<-2, b> : public engine<-2, VALUE(*)(VALUE, VALUE)> {}; + /// @endcond +}; + +struct rb_define_method : public driver {}; ///< Dispatches appropriate driver for ::rb_define_method. +struct rb_define_method_id : public driver {}; ///< Dispatches appropriate driver for ::rb_define_method_id. +struct rb_define_private_method : public driver {}; ///< Dispatches appropriate driver for ::rb_define_private_method. +struct rb_define_protected_method : public driver {}; ///< Dispatches appropriate driver for ::rb_define_protected_method. +struct rb_define_singleton_method : public driver {}; ///< Dispatches appropriate driver for ::rb_define_singleton_method. +struct rb_define_module_function : public driver {}; ///< Dispatches appropriate driver for ::rb_define_module_function. +struct rb_define_global_function : public driver0 {}; ///< Dispatches appropriate driver for ::rb_define_global_function. + +/// @brief Defines klass\#mid. +/// @param klass Where the method lives. +/// @copydetails #rb_define_global_function(mid, func, arity) +#define rb_define_method(klass, mid, func, arity) ::ruby::backward::cxxanyargs::define_method::rb_define_method::specific::define(klass, mid, func) + +/// @copydoc #rb_define_method(klass, mid, func, arity) +#define rb_define_method_id(klass, mid, func, arity) ::ruby::backward::cxxanyargs::define_method::rb_define_method_id::specific::define(klass, mid, func) + +/// @brief Defines klass\#mid and makes it private. +/// @copydetails #rb_define_method(klass, mid, func, arity) +#define rb_define_private_method(klass, mid, func, arity) ::ruby::backward::cxxanyargs::define_method::rb_define_private_method::specific::define(klass, mid, func) + +/// @brief Defines klass\#mid and makes it protected. +/// @copydetails #rb_define_method +#define rb_define_protected_method(klass, mid, func, arity) ::ruby::backward::cxxanyargs::define_method::rb_define_protected_method::specific::define(klass, mid, func) + +/// @brief Defines klass.mid.(klass, mid, func, arity) +/// @copydetails #rb_define_method +#define rb_define_singleton_method(klass, mid, func, arity) ::ruby::backward::cxxanyargs::define_method::rb_define_singleton_method::specific::define(klass, mid, func) + +/// @brief Defines klass\#mid and makes it a module function. +/// @copydetails #rb_define_method(klass, mid, func, arity) +#define rb_define_module_function(klass, mid, func, arity) ::ruby::backward::cxxanyargs::define_method::rb_define_module_function::specific::define(klass, mid, func) + +/// @brief Defines ::rb_mKernel \#mid. +/// @param mid Name of the defining method. +/// @param func Implementation of \#mid. +/// @param arity Arity of \#mid. +#define rb_define_global_function(mid, func, arity) ::ruby::backward::cxxanyargs::define_method::rb_define_global_function::specific::define(mid, func) + +}}}}} + +using namespace ruby::backward::cxxanyargs; +#endif // RUBY_BACKWARD_CXXANYARGS_HPP diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/config.h b/ThirdParty/include/ruby/3.2/mac/ruby/config.h new file mode 100644 index 0000000..dc7544a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/config.h @@ -0,0 +1,10 @@ +#ifndef RUBY_CONFIG_SHIM_H +#define RUBY_CONFIG_SHIM_H 1 + +#ifdef __aarch64__ + #include "../arm64-darwin/ruby/config.h" +#else + #include "../x86_64-darwin/ruby/config.h" +#endif + +#endif diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/defines.h b/ThirdParty/include/ruby/3.2/mac/ruby/defines.h new file mode 100644 index 0000000..48184f8 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/defines.h @@ -0,0 +1,116 @@ +#ifndef RUBY_DEFINES_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_DEFINES_H 1 +/** + * @file + * @author $Author$ + * @date Wed May 18 00:21:44 JST 1994 + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ + +#include "ruby/internal/config.h" + +/* AC_INCLUDES_DEFAULT */ +#include + +#ifdef HAVE_SYS_TYPES_H +# include +#endif + +#ifdef HAVE_SYS_STAT_H +# include +#endif + +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif + +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif + +#ifdef HAVE_STRINGS_H +# include +#endif + +#ifdef HAVE_INTTYPES_H +# include +#endif + +#ifdef HAVE_STDINT_H +# include +#endif + +#ifdef HAVE_STDALIGN_H +# include +#endif + +#ifdef HAVE_UNISTD_H +# include +#endif + +#ifdef HAVE_SYS_SELECT_H +# include +#endif + +#ifdef RUBY_USE_SETJMPEX +# include +#endif + +#include "ruby/internal/dllexport.h" +#include "ruby/internal/xmalloc.h" +#include "ruby/backward/2/assume.h" +#include "ruby/backward/2/attributes.h" +#include "ruby/backward/2/bool.h" +#include "ruby/backward/2/long_long.h" +#include "ruby/backward/2/stdalign.h" +#include "ruby/backward/2/stdarg.h" +#include "ruby/internal/dosish.h" +#include "ruby/missing.h" + +/** + * Asserts that the compilation unit includes Ruby's CAPI. This has been here + * since the very beginning (at least since version 0.49). + */ +#define RUBY + +#ifdef __GNUC__ +# /** This is expanded to nothing for non-GCC compilers. */ +# define RB_GNUC_EXTENSION __extension__ +# /** This is expanded to the passed token for non-GCC compilers. */ +# define RB_GNUC_EXTENSION_BLOCK(x) __extension__ ({ x; }) +#else +# define RB_GNUC_EXTENSION +# define RB_GNUC_EXTENSION_BLOCK(x) (x) +#endif + +/** @cond INTERNAL_MACRO */ + +/* :FIXME: Can someone tell us why is this macro defined here? @shyouhei + * thinks this is a truly internal macro but cannot move around because he + * doesn't understand the reason of this arrangement. */ +#ifndef RUBY_MBCHAR_MAXSIZE +# define RUBY_MBCHAR_MAXSIZE INT_MAX +# /* MB_CUR_MAX will not work well in C locale */ +#endif + +#if defined(__sparc) +RBIMPL_SYMBOL_EXPORT_BEGIN() +void rb_sparc_flush_register_windows(void); +RBIMPL_SYMBOL_EXPORT_END() +# define FLUSH_REGISTER_WINDOWS rb_sparc_flush_register_windows() +#else +# define FLUSH_REGISTER_WINDOWS ((void)0) +#endif +/** @endcond */ +#endif /* RUBY_DEFINES_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/digest.h b/ThirdParty/include/ruby/3.2/mac/ruby/digest.h new file mode 100644 index 0000000..8a4c5b7 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/digest.h @@ -0,0 +1,72 @@ +/************************************************ + + digest.h - header file for ruby digest modules + + $Author$ + created at: Fri May 25 08:54:56 JST 2001 + + + Copyright (C) 2001-2006 Akinori MUSHA + + $RoughId: digest.h,v 1.3 2001/07/13 15:38:27 knu Exp $ + $Id$ + +************************************************/ + +#include "ruby.h" + +#define RUBY_DIGEST_API_VERSION 3 + +typedef int (*rb_digest_hash_init_func_t)(void *); +typedef void (*rb_digest_hash_update_func_t)(void *, unsigned char *, size_t); +typedef int (*rb_digest_hash_finish_func_t)(void *, unsigned char *); + +typedef struct { + int api_version; + size_t digest_len; + size_t block_len; + size_t ctx_size; + rb_digest_hash_init_func_t init_func; + rb_digest_hash_update_func_t update_func; + rb_digest_hash_finish_func_t finish_func; +} rb_digest_metadata_t; + +#define DEFINE_UPDATE_FUNC_FOR_UINT(name) \ +void \ +rb_digest_##name##_update(void *ctx, unsigned char *ptr, size_t size) \ +{ \ + const unsigned int stride = 16384; \ + \ + for (; size > stride; size -= stride, ptr += stride) { \ + name##_Update(ctx, ptr, stride); \ + } \ + if (size > 0) name##_Update(ctx, ptr, size); \ +} + +#define DEFINE_FINISH_FUNC_FROM_FINAL(name) \ +int \ +rb_digest_##name##_finish(void *ctx, unsigned char *ptr) \ +{ \ + return name##_Final(ptr, ctx); \ +} + +static inline VALUE +rb_digest_namespace(void) +{ + rb_require("digest"); + return rb_path2class("Digest"); +} + +static inline ID +rb_id_metadata(void) +{ + return rb_intern_const("metadata"); +} + +static inline VALUE +rb_digest_make_metadata(const rb_digest_metadata_t *meta) +{ +#undef RUBY_UNTYPED_DATA_WARNING +#define RUBY_UNTYPED_DATA_WARNING 0 + return rb_obj_freeze(Data_Wrap_Struct(0, 0, 0, (void *)meta)); +} diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/encoding.h b/ThirdParty/include/ruby/3.2/mac/ruby/encoding.h new file mode 100644 index 0000000..1256393 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/encoding.h @@ -0,0 +1,31 @@ +#ifndef RUBY_ENCODING_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_ENCODING_H 1 +/** + * @file + * @author $Author: matz $ + * @date Thu May 24 11:49:41 JST 2007 + * @copyright Copyright (C) 2007 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @brief Encoding relates APIs. + * + * These APIs are mainly for implementing encodings themselves. Encodings are + * built on top of Ruby's core CAPIs. Though not prohibited, there can be + * relatively less rooms for things in this header file be useful when writing + * an extension library. + */ +#include "ruby/ruby.h" + +#include "ruby/internal/encoding/coderange.h" +#include "ruby/internal/encoding/ctype.h" +#include "ruby/internal/encoding/encoding.h" +#include "ruby/internal/encoding/pathname.h" +#include "ruby/internal/encoding/re.h" +#include "ruby/internal/encoding/sprintf.h" +#include "ruby/internal/encoding/string.h" +#include "ruby/internal/encoding/symbol.h" +#include "ruby/internal/encoding/transcode.h" + +#endif /* RUBY_ENCODING_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/fiber/scheduler.h b/ThirdParty/include/ruby/3.2/mac/ruby/fiber/scheduler.h new file mode 100644 index 0000000..250b39b --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/fiber/scheduler.h @@ -0,0 +1,374 @@ +#ifndef RUBY_FIBER_SCHEDULER_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_FIBER_SCHEDULER_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @brief Scheduler APIs. + */ +#include "ruby/internal/config.h" + +#include + +#ifdef STDC_HEADERS +#include /* size_t */ +#endif + +#include "ruby/ruby.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/arithmetic.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +#define RUBY_FIBER_SCHEDULER_VERSION 2 + +struct timeval; + +/** + * Wrap a `ssize_t` and `int errno` into a single `VALUE`. This interface should + * be used to safely capture results from system calls like `read` and `write`. + * + * You should use `rb_fiber_scheduler_io_result_apply` to unpack the result of + * this value and update `int errno`. + * + * You should not directly try to interpret the result value as it is considered + * an opaque representation. However, the general representation is an integer + * in the range of `[-int errno, size_t size]`. Linux generally restricts the + * result of system calls like `read` and `write` to `<= 2^31` which means this + * will typically fit within a single FIXNUM. + * + * @param[in] result The result of the system call. + * @param[in] error The value of `errno`. + * @return A `VALUE` which contains the result and/or errno. + */ +static inline VALUE +rb_fiber_scheduler_io_result(ssize_t result, int error) +{ + if (result == -1) { + return RB_INT2NUM(-error); + } + else { + return RB_SIZE2NUM(result); + } +} + +/** + * Apply an io result to the local thread, returning the value of the original + * system call that created it and updating `int errno`. + * + * You should not directly try to interpret the result value as it is considered + * an opaque representation. + * + * @param[in] result The `VALUE` which contains an errno and/or result size. + * @post Updates `int errno` with the value if negative. + * @return The original result of the system call. + */ +static inline ssize_t +rb_fiber_scheduler_io_result_apply(VALUE result) +{ + if (RB_FIXNUM_P(result) && RB_NUM2INT(result) < 0) { + errno = -RB_NUM2INT(result); + return -1; + } + else { + return RB_NUM2SIZE(result); + } +} + +/** + * Queries the current scheduler of the current thread that is calling this + * function. + * + * @retval RUBY_Qnil No scheduler has been set so far to this thread (which + * is the default). + * @retval otherwise The scheduler that was last set for the current thread + * with rb_fiber_scheduler_set(). + */ +VALUE rb_fiber_scheduler_get(void); + +/** + * Destructively assigns the passed scheduler to that of the current thread + * that is calling this function. If the scheduler is set, non-blocking fibers + * (created by `Fiber.new` with `blocking: false`, or by `Fiber.schedule`) call + * that scheduler's hook methods on potentially blocking operations, and the + * current thread will call scheduler's `#close` method on finalisation + * (allowing the scheduler to properly manage all non-finished fibers). + * `scheduler` can be an object of any class corresponding to + * `Fiber::SchedulerInterface`. Its implementation is up to the user. + * + * @param[in] scheduler The scheduler to set. + * @exception rb_eArgError `scheduler` does not conform the interface. + * @post Current thread's scheduler is `scheduler`. + */ +VALUE rb_fiber_scheduler_set(VALUE scheduler); + +/** + * Identical to rb_fiber_scheduler_get(), except it also returns ::RUBY_Qnil in + * case of a blocking fiber. As blocking fibers do not participate schedulers' + * scheduling this function can be handy. + * + * @retval RUBY_Qnil No scheduler is in effect. + * @retval otherwise The scheduler that is in effect, if any. + */ +VALUE rb_fiber_scheduler_current(void); + +/** + * Identical to rb_fiber_scheduler_current(), except it queries for that of the + * passed thread instead of the implicit current one. + * + * @param[in] thread Target thread. + * @exception rb_eTypeError `thread` is not a thread. + * @retval RUBY_Qnil No scheduler is in effect in `thread`. + * @retval otherwise The scheduler that is in effect in `thread`. + */ +VALUE rb_fiber_scheduler_current_for_thread(VALUE thread); + +/** + * Converts the passed timeout to an expression that rb_fiber_scheduler_block() + * etc. expects. + * + * @param[in] timeout A duration (can be `NULL`). + * @retval RUBY_Qnil No timeout (blocks indefinitely). + * @retval otherwise A timeout object. + */ +VALUE rb_fiber_scheduler_make_timeout(struct timeval *timeout); + +/** + * Closes the passed scheduler object. This expects the scheduler to wait for + * all fibers. Thus the scheduler's main loop tends to start here. + * + * @param[in] scheduler Target scheduler. + * @return What `scheduler.close` returns. + */ +VALUE rb_fiber_scheduler_close(VALUE scheduler); + +/** + * Non-blocking `sleep`. Depending on scheduler implementation, this for + * instance switches to another fiber etc. + * + * @param[in] scheduler Target scheduler. + * @param[in] duration Passed as-is to `scheduler.kernel_sleep`. + * @return What `scheduler.kernel_sleep` returns. + */ +VALUE rb_fiber_scheduler_kernel_sleep(VALUE scheduler, VALUE duration); + +/** + * Identical to rb_fiber_scheduler_kernel_sleep(), except it can pass multiple + * arguments. + * + * @param[in] scheduler Target scheduler. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Passed as-is to `scheduler.kernel_sleep` + * @return What `scheduler.kernel_sleep` returns. + */ +VALUE rb_fiber_scheduler_kernel_sleepv(VALUE scheduler, int argc, VALUE * argv); + +/* Description TBW */ +#if 0 +VALUE rb_fiber_scheduler_timeout_after(VALUE scheduler, VALUE timeout, VALUE exception, VALUE message); +VALUE rb_fiber_scheduler_timeout_afterv(VALUE scheduler, int argc, VALUE * argv); +int rb_fiber_scheduler_supports_process_wait(VALUE scheduler); +#endif + +/** + * Non-blocking `waitpid`. Depending on scheduler implementation, this for + * instance switches to another fiber etc. + * + * @param[in] scheduler Target scheduler. + * @param[in] pid Process ID to wait. + * @param[in] flags Wait flags, e.g. `WUNTRACED`. + * @return What `scheduler.process_wait` returns. + */ +VALUE rb_fiber_scheduler_process_wait(VALUE scheduler, rb_pid_t pid, int flags); + +/** + * Non-blocking wait for the passed "blocker", which is for instance + * `Thread.join` or `Mutex.lock`. Depending on scheduler implementation, this + * for instance switches to another fiber etc. + * + * @param[in] scheduler Target scheduler. + * @param[in] blocker What blocks the current fiber. + * @param[in] timeout Numeric timeout. + * @return What `scheduler.block` returns. + */ +VALUE rb_fiber_scheduler_block(VALUE scheduler, VALUE blocker, VALUE timeout); + +/** + * Wakes up a fiber previously blocked using rb_fiber_scheduler_block(). + * + * @param[in] scheduler Target scheduler. + * @param[in] blocker What was awaited for. + * @param[in] fiber What to unblock. + * @return What `scheduler.unblock` returns. + */ +VALUE rb_fiber_scheduler_unblock(VALUE scheduler, VALUE blocker, VALUE fiber); + +/** + * Non-blocking version of rb_io_wait(). Depending on scheduler + * implementation, this for instance switches to another fiber etc. + * + * The "events" here is a Ruby level integer, which is an OR-ed value of + * `IO::READABLE`, `IO::WRITABLE`, and `IO::PRIORITY`. + * + * @param[in] scheduler Target scheduler. + * @param[in] io An io object to wait. + * @param[in] events An integer set of interests. + * @param[in] timeout Numeric timeout. + * @return What `scheduler.io_wait` returns. + */ +VALUE rb_fiber_scheduler_io_wait(VALUE scheduler, VALUE io, VALUE events, VALUE timeout); + +/** + * Non-blocking wait until the passed IO is ready for reading. This is a + * special case of rb_fiber_scheduler_io_wait(), where the interest is + * `IO::READABLE` and timeout is never. + * + * @param[in] scheduler Target scheduler. + * @param[in] io An io object to wait. + * @return What `scheduler.io_wait` returns. + */ +VALUE rb_fiber_scheduler_io_wait_readable(VALUE scheduler, VALUE io); + +/** + * Non-blocking wait until the passed IO is ready for writing. This is a + * special case of rb_fiber_scheduler_io_wait(), where the interest is + * `IO::WRITABLE` and timeout is never. + * + * @param[in] scheduler Target scheduler. + * @param[in] io An io object to wait. + * @return What `scheduler.io_wait` returns. + */ +VALUE rb_fiber_scheduler_io_wait_writable(VALUE scheduler, VALUE io); + +/** + * Non-blocking version of `IO.select`. + * + * It's possible that this will be emulated using a thread, so you should not + * rely on it for high performance. + * + * @param[in] scheduler Target scheduler. + * @param[in] readables An array of readable objects. + * @param[in] writables An array of writable objects. + * @param[in] exceptables An array of objects that might encounter exceptional conditions. + * @param[in] timeout Numeric timeout or nil. + * @return What `scheduler.io_select` returns, normally a 3-tuple of arrays of ready objects. + */ +VALUE rb_fiber_scheduler_io_select(VALUE scheduler, VALUE readables, VALUE writables, VALUE exceptables, VALUE timeout); + +/** + * Non-blocking version of `IO.select`, `argv` variant. + */ +VALUE rb_fiber_scheduler_io_selectv(VALUE scheduler, int argc, VALUE *argv); + +/** + * Non-blocking read from the passed IO. + * + * @param[in] scheduler Target scheduler. + * @param[out] io An io object to read from. + * @param[out] buffer Return buffer. + * @param[in] length Requested number of bytes to read. + * @param[in] offset The offset in the buffer to read to. + * @retval RUBY_Qundef `scheduler` doesn't have `#io_read`. + * @return otherwise What `scheduler.io_read` returns `[-errno, size]`. + */ +VALUE rb_fiber_scheduler_io_read(VALUE scheduler, VALUE io, VALUE buffer, size_t length, size_t offset); + +/** + * Non-blocking write to the passed IO. + * + * @param[in] scheduler Target scheduler. + * @param[out] io An io object to write to. + * @param[in] buffer What to write. + * @param[in] length Number of bytes to write. + * @param[in] offset The offset in the buffer to write from. + * @retval RUBY_Qundef `scheduler` doesn't have `#io_write`. + * @return otherwise What `scheduler.io_write` returns `[-errno, size]`. + */ +VALUE rb_fiber_scheduler_io_write(VALUE scheduler, VALUE io, VALUE buffer, size_t length, size_t offset); + +/** + * Non-blocking read from the passed IO at the specified offset. + * + * @param[in] scheduler Target scheduler. + * @param[out] io An io object to read from. + * @param[in] from The offset in the given IO to read the data from. + * @param[out] buffer The buffer to read the data to. + * @param[in] length Requested number of bytes to read. + * @param[in] offset The offset in the buffer to read to. + * @retval RUBY_Qundef `scheduler` doesn't have `#io_read`. + * @return otherwise What `scheduler.io_read` returns. + */ +VALUE rb_fiber_scheduler_io_pread(VALUE scheduler, VALUE io, rb_off_t from, VALUE buffer, size_t length, size_t offset); + +/** + * Non-blocking write to the passed IO at the specified offset. + * + * @param[in] scheduler Target scheduler. + * @param[out] io An io object to write to. + * @param[in] from The offset in the given IO to write the data to. + * @param[in] buffer The buffer to write the data from. + * @param[in] length Number of bytes to write. + * @param[in] offset The offset in the buffer to write from. + * @retval RUBY_Qundef `scheduler` doesn't have `#io_write`. + * @return otherwise What `scheduler.io_write` returns. + */ +VALUE rb_fiber_scheduler_io_pwrite(VALUE scheduler, VALUE io, rb_off_t from, VALUE buffer, size_t length, size_t offset); + +/** + * Non-blocking read from the passed IO using a native buffer. + * + * @param[in] scheduler Target scheduler. + * @param[out] io An io object to read from. + * @param[out] buffer Return buffer. + * @param[in] size Size of the return buffer. + * @param[in] length Requested number of bytes to read. + * @retval RUBY_Qundef `scheduler` doesn't have `#io_read`. + * @return otherwise What `scheduler.io_read` returns. + */ +VALUE rb_fiber_scheduler_io_read_memory(VALUE scheduler, VALUE io, void *buffer, size_t size, size_t length); + +/** + * Non-blocking write to the passed IO using a native buffer. + * + * @param[in] scheduler Target scheduler. + * @param[out] io An io object to write to. + * @param[in] buffer What to write. + * @param[in] size Size of the buffer. + * @param[in] length Number of bytes to write. + * @retval RUBY_Qundef `scheduler` doesn't have `#io_write`. + * @return otherwise What `scheduler.io_write` returns. + */ +VALUE rb_fiber_scheduler_io_write_memory(VALUE scheduler, VALUE io, const void *buffer, size_t size, size_t length); + +/** + * Non-blocking close the given IO. + * + * @param[in] scheduler Target scheduler. + * @param[in] io An io object to close. + * @retval RUBY_Qundef `scheduler` doesn't have `#io_close`. + * @return otherwise What `scheduler.io_close` returns. + */ +VALUE rb_fiber_scheduler_io_close(VALUE scheduler, VALUE io); + +/** + * Non-blocking DNS lookup. + * + * @param[in] scheduler Target scheduler. + * @param[in] hostname A host name to query. + * @retval RUBY_Qundef `scheduler` doesn't have `#address_resolve`. + * @return otherwise What `scheduler.address_resolve` returns. + */ +VALUE rb_fiber_scheduler_address_resolve(VALUE scheduler, VALUE hostname); + +/** + * Create and schedule a non-blocking fiber. + * + */ +VALUE rb_fiber_scheduler_fiber(VALUE scheduler, int argc, VALUE *argv, int kw_splat); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_FIBER_SCHEDULER_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/intern.h b/ThirdParty/include/ruby/3.2/mac/ruby/intern.h new file mode 100644 index 0000000..2480e2e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/intern.h @@ -0,0 +1,64 @@ +#ifndef RUBY_INTERN_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERN_H 1 +/** + * @file + * @author $Author$ + * @date Thu Jun 10 14:22:17 JST 1993 + * @copyright Copyright (C) 1993-2007 Yukihiro Matsumoto + * @copyright Copyright (C) 2000 Network Applied Communication Laboratory, Inc. + * @copyright Copyright (C) 2000 Information-technology Promotion Agency, Japan + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ +#include "ruby/internal/config.h" +#include "ruby/defines.h" + +#include + +#include "ruby/st.h" + +/* + * Functions and variables that are used by more than one source file of + * the kernel. + */ + +#include "ruby/internal/intern/array.h" +#include "ruby/internal/intern/bignum.h" +#include "ruby/internal/intern/class.h" +#include "ruby/internal/intern/compar.h" +#include "ruby/internal/intern/complex.h" +#include "ruby/internal/intern/cont.h" +#include "ruby/internal/intern/dir.h" +#include "ruby/internal/intern/enum.h" +#include "ruby/internal/intern/enumerator.h" +#include "ruby/internal/intern/error.h" +#include "ruby/internal/intern/eval.h" +#include "ruby/internal/intern/file.h" +#include "ruby/internal/intern/gc.h" +#include "ruby/internal/intern/hash.h" +#include "ruby/internal/intern/io.h" +#include "ruby/internal/intern/load.h" +#include "ruby/internal/intern/marshal.h" +#include "ruby/internal/intern/numeric.h" +#include "ruby/internal/intern/object.h" +#include "ruby/internal/intern/parse.h" +#include "ruby/internal/intern/proc.h" +#include "ruby/internal/intern/process.h" +#include "ruby/internal/intern/random.h" +#include "ruby/internal/intern/range.h" +#include "ruby/internal/intern/rational.h" +#include "ruby/internal/intern/re.h" +#include "ruby/internal/intern/ruby.h" +#include "ruby/internal/intern/select.h" +#include "ruby/internal/intern/signal.h" +#include "ruby/internal/intern/sprintf.h" +#include "ruby/internal/intern/string.h" +#include "ruby/internal/intern/struct.h" +#include "ruby/internal/intern/thread.h" +#include "ruby/internal/intern/time.h" +#include "ruby/internal/intern/variable.h" +#include "ruby/internal/intern/vm.h" + +#endif /* RUBY_INTERN_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/abi.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/abi.h new file mode 100644 index 0000000..44111a0 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/abi.h @@ -0,0 +1,58 @@ +#ifndef RUBY_ABI_H +#define RUBY_ABI_H + +#ifdef RUBY_ABI_VERSION /* should match the definition in config.h */ + +/* This number represents Ruby's ABI version. + * + * In development Ruby, it should be bumped every time an ABI incompatible + * change is introduced. This will force other developers to rebuild extension + * gems. + * + * The following cases are considered as ABI incompatible changes: + * - Changing any data structures. + * - Changing macros or inline functions causing a change in behavior. + * - Deprecating or removing function declarations. + * + * The following cases are NOT considered as ABI incompatible changes: + * - Any changes that does not involve the header files in the `include` + * directory. + * - Adding macros, inline functions, or function declarations. + * - Backwards compatible refactors. + * - Editing comments. + * + * In released versions of Ruby, this number is not defined since teeny + * versions of Ruby should guarantee ABI compatibility. + */ +#define RUBY_ABI_VERSION 3 + +/* Windows does not support weak symbols so ruby_abi_version will not exist + * in the shared library. */ +#if defined(HAVE_FUNC_WEAK) && !defined(_WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__) +# define RUBY_DLN_CHECK_ABI +#endif +#endif /* RUBY_ABI_VERSION */ + +#ifdef RUBY_DLN_CHECK_ABI + +# ifdef __cplusplus +extern "C" { +# endif + +RUBY_FUNC_EXPORTED unsigned long long __attribute__((weak)) +ruby_abi_version(void) +{ +# ifdef RUBY_ABI_VERSION + return RUBY_ABI_VERSION; +# else + return 0; +# endif +} + +# ifdef __cplusplus +} +# endif + +#endif + +#endif diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/anyargs.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/anyargs.h new file mode 100644 index 0000000..e3e1b61 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/anyargs.h @@ -0,0 +1,376 @@ +#ifndef RBIMPL_ANYARGS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ANYARGS_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Function overloads to issue warnings around #ANYARGS. + * + * For instance ::rb_define_method takes a pointer to #ANYARGS -ed functions, + * which in fact varies 18 different prototypes. We still need to preserve + * #ANYARGS for storages but why not check the consistencies if possible. With + * those complex macro overlays defined in this header file, use of a function + * pointer gets checked against the corresponding arity argument. + * + * ### Q&A ### + * + * - Q: Where did the magic number "18" came from in the description above? + * + * - A: Count the case branch of `vm_method.c:call_cfunc_invoker_func()`. Note + * also that the 18 branches has lasted for at least 25 years. See also + * commit 200e0ee2fd3c1c006c528874a88f684447215524. + * + * - Q: What is this `__weakref__` thing? + * + * - A: That is a kind of function overloading mechanism that GCC provides. In + * this case for instance `rb_define_method_00` is an alias of + * ::rb_define_method, with a strong type. + * + * - Q: What is this `__transparent_union__` thing? + * + * A: That is another kind of function overloading mechanism that GCC + * provides. In this case the attributed function pointer is either + * `VALUE(*)(int,VALUE*,VALUE)` or `VALUE(*)(int,const VALUE*,VALUE)`. + * + * This is better than `void*` or #ANYARGS because we can reject all other + * possibilities than the two. + * + * - Q: What does this #rb_define_method macro mean? + * + * - A: It selects appropriate alias of the ::rb_define_method function, + * depending on the last (arity) argument. + * + * - Q: Why the special case for ::rb_f_notimplement ? + * + * - A: Function pointer to ::rb_f_notimplement is special cased in + * `vm_method.c:rb_add_method_cfunc()`. That should be handled by the + * `__builtin_choose_expr` chain inside of #rb_define_method macro + * expansion. In order to do so, comparison like + * `(func == rb_f_notimplement)` is inappropriate for + * `__builtin_choose_expr`'s expression (which must be a compile-time + * integer constant but the address of ::rb_f_notimplement is not fixed + * until the linker). Instead we are using + * `__builtin_types_compatible_p`, and in doing so we need to distinguish + * ::rb_f_notimplement from others, by type. + */ +#include "ruby/internal/attr/maybe_unused.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/weakref.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/config.h" +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/intern/class.h" +#include "ruby/internal/intern/vm.h" +#include "ruby/internal/method.h" +#include "ruby/internal/value.h" +#include "ruby/backward/2/stdarg.h" + +#if defined(__cplusplus) +# include "ruby/backward/cxxanyargs.hpp" + +#elif defined(_WIN32) || defined(__CYGWIN__) +# /* Skip due to [Bug #16134] */ + +#elif ! RBIMPL_HAS_ATTRIBUTE(transparent_union) +# /* :TODO: improve here, please find a way to support. */ + +#elif ! defined(HAVE_VA_ARGS_MACRO) +# /* :TODO: improve here, please find a way to support. */ + +#else +# /** @cond INTERNAL_MACRO */ +# if ! defined(HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P) +# define RBIMPL_CFUNC_IS_rb_f_notimplement(f) 0 +# else +# define RBIMPL_CFUNC_IS_rb_f_notimplement(f) \ + __builtin_types_compatible_p( \ + __typeof__(f), \ + __typeof__(rb_f_notimplement)) +# endif + +# if ! defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P) +# define RBIMPL_ANYARGS_DISPATCH(expr, truthy, falsy) (falsy) +# else +# define RBIMPL_ANYARGS_DISPATCH(expr, truthy, falsy) \ + __builtin_choose_expr( \ + __builtin_choose_expr( \ + __builtin_constant_p(expr), \ + (expr), 0), \ + (truthy), (falsy)) +# endif + +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_singleton_method_m2, rb_define_singleton_method_m3) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_singleton_method_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m2(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_singleton_method_00, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m1(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_singleton_method_01, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_00(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_singleton_method_02, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_01(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_singleton_method_03, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_02(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_singleton_method_04, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_03(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_singleton_method_05, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_04(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_singleton_method_06, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_05(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_singleton_method_07, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_06(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_singleton_method_08, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_07(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_singleton_method_09, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_08(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_singleton_method_10, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_09(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_singleton_method_11, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_10(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_singleton_method_12, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_11(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_singleton_method_13, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_12(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_singleton_method_14, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_13(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_singleton_method_15, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_14(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_protected_method_m2, rb_define_protected_method_m3) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_protected_method_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m2(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_protected_method_00, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m1(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_protected_method_01, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_00(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_protected_method_02, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_01(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_protected_method_03, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_02(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_protected_method_04, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_03(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_protected_method_05, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_04(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_protected_method_06, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_05(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_protected_method_07, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_06(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_protected_method_08, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_07(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_protected_method_09, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_08(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_protected_method_10, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_09(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_protected_method_11, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_10(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_protected_method_12, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_11(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_protected_method_13, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_12(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_protected_method_14, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_13(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_protected_method_15, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_14(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_private_method_m2, rb_define_private_method_m3) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_private_method_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m2(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_private_method_00, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m1(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_private_method_01, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_00(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_private_method_02, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_01(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_private_method_03, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_02(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_private_method_04, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_03(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_private_method_05, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_04(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_private_method_06, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_05(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_private_method_07, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_06(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_private_method_08, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_07(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_private_method_09, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_08(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_private_method_10, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_09(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_private_method_11, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_10(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_private_method_12, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_11(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_private_method_13, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_12(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_private_method_14, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_13(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_private_method_15, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_14(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_module_function_m2, rb_define_module_function_m3) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_module_function_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m2(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_module_function_00, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m1(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_module_function_01, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_00(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_module_function_02, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_01(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_module_function_03, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_02(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_module_function_04, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_03(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_module_function_05, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_04(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_module_function_06, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_05(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_module_function_07, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_06(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_module_function_08, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_07(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_module_function_09, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_08(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_module_function_10, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_09(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_module_function_11, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_10(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_module_function_12, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_11(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_module_function_13, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_12(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_module_function_14, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_13(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_module_function_15, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_14(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_global_function_m2, rb_define_global_function_m3) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_global_function_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m2(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_global_function_00, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m1(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_global_function_01, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_00(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_global_function_02, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_01(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_global_function_03, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_02(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_global_function_04, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_03(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_global_function_05, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_04(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_global_function_06, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_05(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_global_function_07, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_06(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_global_function_08, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_07(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_global_function_09, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_08(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_global_function_10, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_09(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_global_function_11, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_10(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_global_function_12, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_11(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_global_function_13, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_12(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_global_function_14, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_13(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_global_function_15, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_14(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_method_id_m2, rb_define_method_id_m3) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_method_id_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m2(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_method_id_00, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m1(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_method_id_01, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_00(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_method_id_02, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_01(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_method_id_03, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_02(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_method_id_04, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_03(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_method_id_05, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_04(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_method_id_06, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_05(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_method_id_07, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_06(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_method_id_08, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_07(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_method_id_09, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_08(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_method_id_10, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_09(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_method_id_11, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_10(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_method_id_12, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_11(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_method_id_13, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_12(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_method_id_14, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_13(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_method_id_15, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_14(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_method_m2, rb_define_method_m3) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_method_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_method_m2(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_method_00, RBIMPL_ANYARGS_DISPATCH_rb_define_method_m1(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_method_01, RBIMPL_ANYARGS_DISPATCH_rb_define_method_00(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_method_02, RBIMPL_ANYARGS_DISPATCH_rb_define_method_01(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_method_03, RBIMPL_ANYARGS_DISPATCH_rb_define_method_02(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_method_04, RBIMPL_ANYARGS_DISPATCH_rb_define_method_03(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_method_05, RBIMPL_ANYARGS_DISPATCH_rb_define_method_04(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_method_06, RBIMPL_ANYARGS_DISPATCH_rb_define_method_05(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_method_07, RBIMPL_ANYARGS_DISPATCH_rb_define_method_06(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_method_08, RBIMPL_ANYARGS_DISPATCH_rb_define_method_07(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_method_09, RBIMPL_ANYARGS_DISPATCH_rb_define_method_08(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_method_10, RBIMPL_ANYARGS_DISPATCH_rb_define_method_09(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_method_11, RBIMPL_ANYARGS_DISPATCH_rb_define_method_10(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_method_12, RBIMPL_ANYARGS_DISPATCH_rb_define_method_11(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_method_13, RBIMPL_ANYARGS_DISPATCH_rb_define_method_12(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_method_14, RBIMPL_ANYARGS_DISPATCH_rb_define_method_13(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_method_15, RBIMPL_ANYARGS_DISPATCH_rb_define_method_14(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method(n, f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_singleton_method_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_15(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method(n, f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_protected_method_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_15(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method(n, f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_private_method_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_15(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function(n, f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_module_function_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_15(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function(n, f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_global_function_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_15(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id(n, f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_method_id_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_15(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method(n, f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_method_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_method_15(n)) +# define RBIMPL_ANYARGS_ATTRSET(sym) RBIMPL_ATTR_MAYBE_UNUSED() RBIMPL_ATTR_NONNULL(()) RBIMPL_ATTR_WEAKREF(sym) +# define RBIMPL_ANYARGS_DECL(sym, ...) \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _notimpl(__VA_ARGS__, VALUE(*)(int, const VALUE *, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _m3(__VA_ARGS__, VALUE(*)(ANYARGS), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _m2(__VA_ARGS__, VALUE(*)(VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _m1(__VA_ARGS__, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _00(__VA_ARGS__, VALUE(*)(VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _01(__VA_ARGS__, VALUE(*)(VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _02(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _03(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _04(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _05(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _06(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _07(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _08(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _09(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _10(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _11(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _12(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _13(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _14(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _15(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); +RBIMPL_ANYARGS_DECL(rb_define_singleton_method, VALUE, const char *) +RBIMPL_ANYARGS_DECL(rb_define_protected_method, VALUE, const char *) +RBIMPL_ANYARGS_DECL(rb_define_private_method, VALUE, const char *) +RBIMPL_ANYARGS_DECL(rb_define_module_function, VALUE, const char *) +RBIMPL_ANYARGS_DECL(rb_define_global_function, const char *) +RBIMPL_ANYARGS_DECL(rb_define_method_id, VALUE, ID) +RBIMPL_ANYARGS_DECL(rb_define_method, VALUE, const char *) +/** @endcond */ + +/** + * @brief Defines klass\#mid. + * @see ::rb_define_method + * @param klass Where the method lives. + * @param mid Name of the defining method. + * @param func Implementation of klass\#mid. + * @param arity Arity of klass\#mid. + */ +#define rb_define_method(klass, mid, func, arity) RBIMPL_ANYARGS_DISPATCH_rb_define_method((arity), (func))((klass), (mid), (func), (arity)) + +/** + * @brief Defines klass\#mid. + * @see ::rb_define_method_id + * @param klass Where the method lives. + * @param mid Name of the defining method. + * @param func Implementation of klass\#mid. + * @param arity Arity of klass\#mid. + */ +#define rb_define_method_id(klass, mid, func, arity) RBIMPL_ANYARGS_DISPATCH_rb_define_method_id((arity), (func))((klass), (mid), (func), (arity)) + +/** + * @brief Defines obj.mid. + * @see ::rb_define_singleton_method + * @param obj Where the method lives. + * @param mid Name of the defining method. + * @param func Implementation of obj.mid. + * @param arity Arity of obj.mid. + */ +#define rb_define_singleton_method(obj, mid, func, arity) RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method((arity), (func))((obj), (mid), (func), (arity)) + +/** + * @brief Defines klass\#mid and make it protected. + * @see ::rb_define_protected_method + * @param klass Where the method lives. + * @param mid Name of the defining method. + * @param func Implementation of klass\#mid. + * @param arity Arity of klass\#mid. + */ +#define rb_define_protected_method(klass, mid, func, arity) RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method((arity), (func))((klass), (mid), (func), (arity)) + +/** + * @brief Defines klass\#mid and make it private. + * @see ::rb_define_private_method + * @param klass Where the method lives. + * @param mid Name of the defining method. + * @param func Implementation of klass\#mid. + * @param arity Arity of klass\#mid. + */ +#define rb_define_private_method(klass, mid, func, arity) RBIMPL_ANYARGS_DISPATCH_rb_define_private_method((arity), (func))((klass), (mid), (func), (arity)) + +/** + * @brief Defines mod\#mid and make it a module function. + * @see ::rb_define_module_function + * @param mod Where the method lives. + * @param mid Name of the defining method. + * @param func Implementation of mod\#mid. + * @param arity Arity of mod\#mid. + */ +#define rb_define_module_function(mod, mid, func, arity) RBIMPL_ANYARGS_DISPATCH_rb_define_module_function((arity), (func))((mod), (mid), (func), (arity)) + +/** + * @brief Defines ::rb_mKerbel \#mid. + * @see ::rb_define_global_function + * @param mid Name of the defining method. + * @param func Implementation of ::rb_mKernel \#mid. + * @param arity Arity of ::rb_mKernel \#mid. + */ +#define rb_define_global_function(mid, func, arity) RBIMPL_ANYARGS_DISPATCH_rb_define_global_function((arity), (func))((mid), (func), (arity)) + +#endif /* __cplusplus */ + +/** + * This macro is to properly cast a function parameter of *_define_method + * family. It has been around since 1.x era so you can maximise backwards + * compatibility by using it. + * + * ```CXX + * rb_define_method(klass, "method", RUBY_METHOD_FUNC(func), arity); + * ``` + * + * @param func A pointer to a function that implements a method. + */ +#if ! defined(RUBY_DEVEL) +# define RUBY_METHOD_FUNC(func) RBIMPL_CAST((VALUE (*)(ANYARGS))(func)) + +#elif ! RUBY_DEVEL +# define RUBY_METHOD_FUNC(func) RBIMPL_CAST((VALUE (*)(ANYARGS))(func)) + +#elif ! defined(rb_define_method) +# define RUBY_METHOD_FUNC(func) RBIMPL_CAST((VALUE (*)(ANYARGS))(func)) + +#else +# define RUBY_METHOD_FUNC(func) (func) + +#endif + +#endif /* RBIMPL_ANYARGS_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic.h new file mode 100644 index 0000000..7ebb4a8 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic.h @@ -0,0 +1,39 @@ +#ifndef RBIMPL_ARITHMETIC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Conversion between C's arithmetic types and Ruby's numeric + * types. + */ +#include "ruby/internal/arithmetic/char.h" +#include "ruby/internal/arithmetic/double.h" +#include "ruby/internal/arithmetic/fixnum.h" +#include "ruby/internal/arithmetic/gid_t.h" +#include "ruby/internal/arithmetic/int.h" +#include "ruby/internal/arithmetic/intptr_t.h" +#include "ruby/internal/arithmetic/long.h" +#include "ruby/internal/arithmetic/long_long.h" +#include "ruby/internal/arithmetic/mode_t.h" +#include "ruby/internal/arithmetic/off_t.h" +#include "ruby/internal/arithmetic/pid_t.h" +#include "ruby/internal/arithmetic/short.h" +#include "ruby/internal/arithmetic/size_t.h" +#include "ruby/internal/arithmetic/st_data_t.h" +#include "ruby/internal/arithmetic/uid_t.h" +#endif /* RBIMPL_ARITHMETIC_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/char.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/char.h new file mode 100644 index 0000000..920fdc0 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/char.h @@ -0,0 +1,81 @@ +#ifndef RBIMPL_ARITHMETIC_CHAR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_CHAR_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `char` and Ruby's. + */ +#include "ruby/internal/arithmetic/int.h" /* NUM2INT is here, but */ +#include "ruby/internal/arithmetic/long.h" /* INT2FIX is here.*/ +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/constexpr.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/core/rstring.h" +#include "ruby/internal/value_type.h" + +#define RB_NUM2CHR rb_num2char_inline /**< @alias{rb_num2char_inline} */ +#define NUM2CHR RB_NUM2CHR /**< @old{RB_NUM2CHR} */ +#define CHR2FIX RB_CHR2FIX /**< @old{RB_CHR2FIX} */ + +/** @cond INTERNAL_MACRO */ +#define RB_CHR2FIX RB_CHR2FIX +/** @endcond */ + +RBIMPL_ATTR_CONST_UNLESS_DEBUG() +RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Converts a C's `unsigned char` into an instance of ::rb_cInteger. + * + * @param[in] c Arbitrary `unsigned char` value. + * @return An instance of ::rb_cInteger. + * + * @internal + * + * Nobody explicitly states this but in Ruby, a char means an unsigned integer + * value of range 0..255. This is a general principle. AFAIK there is no + * single line of code where char is signed. + */ +static inline VALUE +RB_CHR2FIX(unsigned char c) +{ + return RB_INT2FIX(c); +} + +/** + * Converts an instance of ::rb_cNumeric into C's `char`. At the same time it + * accepts a String of more than one character, and returns its first byte. In + * the early days there was a Ruby level "character" literal `?c`, which + * roughly worked this way. + * + * @param[in] x Either a string or a numeric. + * @exception rb_eTypeError `x` is not a numeric. + * @exception rb_eRangeError `x` is out of range of `unsigned int`. + * @return The passed value converted into C's `char`. + */ +static inline char +rb_num2char_inline(VALUE x) +{ + if (RB_TYPE_P(x, RUBY_T_STRING) && (RSTRING_LEN(x)>=1)) + return RSTRING_PTR(x)[0]; + else + return RBIMPL_CAST((char)RB_NUM2INT(x)); +} + +#endif /* RBIMPL_ARITHMETIC_CHAR_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/double.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/double.h new file mode 100644 index 0000000..229de47 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/double.h @@ -0,0 +1,72 @@ +#ifndef RBIMPL_ARITHMETIC_DOUBLE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_DOUBLE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `double` and Ruby's. + */ +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +#define NUM2DBL rb_num2dbl /**< @old{rb_num2dbl} */ +#define RFLOAT_VALUE rb_float_value /**< @old{rb_float_value} */ +#define DBL2NUM rb_float_new /**< @old{rb_float_new} */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * Converts an instance of ::rb_cNumeric into C's `double`. + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @return The passed value converted into C's `double`. + */ +double rb_num2dbl(VALUE num); + +RBIMPL_ATTR_PURE() +/** + * Extracts its double value from an instance of ::rb_cFloat. + * + * @param[in] num An instance of ::rb_cFloat. + * @pre Must not pass anything other than a Fixnum. + * @return The passed value converted into C's `double`. + */ +double rb_float_value(VALUE num); + +/** + * Converts a C's `double` into an instance of ::rb_cFloat. + * + * @param[in] d Arbitrary `double` value. + * @return An instance of ::rb_cFloat. + */ +VALUE rb_float_new(double d); + +/** + * Identical to rb_float_new(), except it does not generate Flonums. + * + * @param[in] d Arbitrary `double` value. + * @return An instance of ::rb_cFloat. + * + * @internal + * + * @shyouhei has no idea why it is here. + */ +VALUE rb_float_new_in_heap(double d); +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_ARITHMETIC_DOUBLE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/fixnum.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/fixnum.h new file mode 100644 index 0000000..c8927ac --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/fixnum.h @@ -0,0 +1,60 @@ +#ifndef RBIMPL_ARITHMETIC_FIXNUM_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_FIXNUM_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Handling of integers formerly known as Fixnums. + */ +#include "ruby/backward/2/limits.h" + +#define FIXABLE RB_FIXABLE /**< @old{RB_FIXABLE} */ +#define FIXNUM_MAX RUBY_FIXNUM_MAX /**< @old{RUBY_FIXNUM_MAX} */ +#define FIXNUM_MIN RUBY_FIXNUM_MIN /**< @old{RUBY_FIXNUM_MIN} */ +#define NEGFIXABLE RB_NEGFIXABLE /**< @old{RB_NEGFIXABLE} */ +#define POSFIXABLE RB_POSFIXABLE /**< @old{RB_POSFIXABLE} */ + +/** + * Checks if the passed value is in range of fixnum, assuming it is a positive + * number. Can sometimes be useful for C's unsigned integer types. + * + * @internal + * + * FIXABLE can be applied to anything, from double to intmax_t. The problem is + * double. On a 64bit system RUBY_FIXNUM_MAX is 4,611,686,018,427,387,903, + * which is not representable by a double. The nearest value that a double can + * represent is 4,611,686,018,427,387,904, which is not fixable. The + * seemingly-strange "< FIXNUM_MAX + 1" expression below is due to this. + */ +#define RB_POSFIXABLE(_) ((_) < RUBY_FIXNUM_MAX + 1) + +/** + * Checks if the passed value is in range of fixnum, assuming it is a negative + * number. This is an implementation of #RB_FIXABLE. Rarely used stand alone. + */ +#define RB_NEGFIXABLE(_) ((_) >= RUBY_FIXNUM_MIN) + +/** Checks if the passed value is in range of fixnum */ +#define RB_FIXABLE(_) (RB_POSFIXABLE(_) && RB_NEGFIXABLE(_)) + +/** Maximum possible value that a fixnum can represent. */ +#define RUBY_FIXNUM_MAX (LONG_MAX / 2) + +/** Minimum possible value that a fixnum can represent. */ +#define RUBY_FIXNUM_MIN (LONG_MIN / 2) + +#endif /* RBIMPL_ARITHMETIC_FIXNUM_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/gid_t.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/gid_t.h new file mode 100644 index 0000000..361220b --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/gid_t.h @@ -0,0 +1,41 @@ +#ifndef RBIMPL_ARITHMETIC_GID_T_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_GID_T_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `gid_t` and Ruby's. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/arithmetic/long.h" + +/** Converts a C's `gid_t` into an instance of ::rb_cInteger. */ +#ifndef GIDT2NUM +# define GIDT2NUM RB_LONG2NUM +#endif + +/** Converts an instance of ::rb_cNumeric into C's `gid_t`. */ +#ifndef NUM2GIDT +# define NUM2GIDT RB_NUM2LONG +#endif + +/** A rb_sprintf() format prefix to be used for a `gid_t` parameter. */ +#ifndef PRI_GIDT_PREFIX +# define PRI_GIDT_PREFIX PRI_LONG_PREFIX +#endif + +#endif /* RBIMPL_ARITHMETIC_GID_T_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/int.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/int.h new file mode 100644 index 0000000..6bd8ec2 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/int.h @@ -0,0 +1,264 @@ +#ifndef RBIMPL_ARITHMETIC_INT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_INT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `int` and Ruby's. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/arithmetic/fixnum.h" +#include "ruby/internal/arithmetic/intptr_t.h" +#include "ruby/internal/arithmetic/long.h" +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/constexpr.h" +#include "ruby/internal/compiler_is.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/special_consts.h" +#include "ruby/internal/value.h" +#include "ruby/internal/warning_push.h" +#include "ruby/assert.h" + +#define RB_INT2NUM rb_int2num_inline /**< @alias{rb_int2num_inline} */ +#define RB_NUM2INT rb_num2int_inline /**< @alias{rb_num2int_inline} */ +#define RB_UINT2NUM rb_uint2num_inline /**< @alias{rb_uint2num_inline} */ + +#define FIX2INT RB_FIX2INT /**< @old{RB_FIX2INT} */ +#define FIX2UINT RB_FIX2UINT /**< @old{RB_FIX2UINT} */ +#define INT2NUM RB_INT2NUM /**< @old{RB_INT2NUM} */ +#define NUM2INT RB_NUM2INT /**< @old{RB_NUM2INT} */ +#define NUM2UINT RB_NUM2UINT /**< @old{RB_NUM2UINT} */ +#define UINT2NUM RB_UINT2NUM /**< @old{RB_UINT2NUM} */ + +/** @cond INTERNAL_MACRO */ +#define RB_FIX2INT RB_FIX2INT +#define RB_NUM2UINT RB_NUM2UINT +#define RB_FIX2UINT RB_FIX2UINT +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Converts an instance of ::rb_cNumeric into C's `long`. + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `int`. + * @return The passed value converted into C's `long`. + * + * @internal + * + * Yes, the API is really strange. It returns `long`, but raises when the + * value is out of `int`. This seems to be due to the fact that Matz favoured + * K&R before, and his machine at that moment was an ILP32 architecture. + */ +long rb_num2int(VALUE num); + +/** + * Identical to rb_num2int(). + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `int`. + * @return The passed value converted into C's `long`. + * + * @internal + * + * This function seems to be a complete waste of disk space. @shyouhei has no + * idea why this is a different thing from rb_num2short(). + */ +long rb_fix2int(VALUE num); + +/** + * Converts an instance of ::rb_cNumeric into C's `unsigned long`. + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `unsigned int`. + * @return The passed value converted into C's `unsigned long`. + * + * @internal + * + * Yes, the API is really strange. It returns `unsigned long`, but raises when + * the value is out of `unsigned int`. This seems to be due to the fact that + * Matz favoured K&R before, and his machine at that moment was an ILP32 + * architecture. + */ +unsigned long rb_num2uint(VALUE num); + +/** + * Identical to rb_num2uint(). + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `unsigned int`. + * @return The passed value converted into C's `unsigned long`. + * + * @internal + * + * This function seems to be a complete waste of disk space. @shyouhei has no + * idea why this is a different thing from rb_num2short(). + */ +unsigned long rb_fix2uint(VALUE num); +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Converts a Fixnum into C's `int`. + * + * @param[in] x Some Fixnum. + * @pre Must not pass anything other than a Fixnum. + * @return The passed value converted into C's `int`. + */ +static inline int +RB_FIX2INT(VALUE x) +{ + /* "FIX2INT raises a TypeError if passed nil", says rubyspec. Not sure if + * that is a desired behaviour but just preserve backwards compatilibily. + */ +#if 0 + RBIMPL_ASSERT_OR_ASSUME(RB_FIXNUM_P(x)); +#endif + long ret; + + if /* constexpr */ (sizeof(int) < sizeof(long)) { + ret = rb_fix2int(x); + } + else { + ret = RB_FIX2LONG(x); + } + + return RBIMPL_CAST((int)ret); +} + +/** + * Converts an instance of ::rb_cNumeric into C's `int`. + * + * @param[in] x Something numeric. + * @exception rb_eTypeError `x` is not a numeric. + * @exception rb_eRangeError `x` is out of range of `int`. + * @return The passed value converted into C's `int`. + */ +static inline int +rb_num2int_inline(VALUE x) +{ + long ret; + + if /* constexpr */ (sizeof(int) == sizeof(long)) { + ret = RB_NUM2LONG(x); + } + else if (RB_FIXNUM_P(x)) { + ret = rb_fix2int(x); + } + else { + ret = rb_num2int(x); + } + + return RBIMPL_CAST((int)ret); +} + +/** + * Converts an instance of ::rb_cNumeric into C's `unsigned int`. + * + * @param[in] x Something numeric. + * @exception rb_eTypeError `x` is not a numeric. + * @exception rb_eRangeError `x` is out of range of `unsigned int`. + * @return The passed value converted into C's `unsigned int`. + */ +RBIMPL_ATTR_ARTIFICIAL() +static inline unsigned int +RB_NUM2UINT(VALUE x) +{ + unsigned long ret; + + if /* constexpr */ (sizeof(int) < sizeof(long)) { + ret = rb_num2uint(x); + } + else { + ret = RB_NUM2ULONG(x); + } + + return RBIMPL_CAST((unsigned int)ret); +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Converts a Fixnum into C's `int`. + * + * @param[in] x Some Fixnum. + * @pre Must not pass anything other than a Fixnum. + * @return The passed value converted into C's `int`. + */ +static inline unsigned int +RB_FIX2UINT(VALUE x) +{ +#if 0 /* Ditto for RB_FIX2INT. */ + RBIMPL_ASSERT_OR_ASSUME(RB_FIXNUM_P(x)); +#endif + unsigned long ret; + + if /* constexpr */ (sizeof(int) < sizeof(long)) { + ret = rb_fix2uint(x); + } + else { + ret = RB_FIX2ULONG(x); + } + + return RBIMPL_CAST((unsigned int)ret); +} + +RBIMPL_WARNING_PUSH() +#if RBIMPL_COMPILER_IS(GCC) +RBIMPL_WARNING_IGNORED(-Wtype-limits) /* We can ignore them here. */ +#elif RBIMPL_HAS_WARNING("-Wtautological-constant-out-of-range-compare") +RBIMPL_WARNING_IGNORED(-Wtautological-constant-out-of-range-compare) +#endif + +/** + * Converts a C's `int` into an instance of ::rb_cInteger. + * + * @param[in] v Arbitrary `int` value. + * @return An instance of ::rb_cInteger. + */ +static inline VALUE +rb_int2num_inline(int v) +{ + if (RB_FIXABLE(v)) + return RB_INT2FIX(v); + else + return rb_int2big(v); +} + +/** + * Converts a C's `unsigned int` into an instance of ::rb_cInteger. + * + * @param[in] v Arbitrary `unsigned int` value. + * @return An instance of ::rb_cInteger. + */ +static inline VALUE +rb_uint2num_inline(unsigned int v) +{ + if (RB_POSFIXABLE(v)) + return RB_LONG2FIX(v); + else + return rb_uint2big(v); +} + +RBIMPL_WARNING_POP() + +#endif /* RBIMPL_ARITHMETIC_INT_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/intptr_t.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/intptr_t.h new file mode 100644 index 0000000..a354f44 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/intptr_t.h @@ -0,0 +1,74 @@ +#ifndef RBIMPL_ARITHMETIC_INTPTR_T_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_INTPTR_T_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `intptr_t` and Ruby's. + */ +#include "ruby/internal/config.h" + +#ifdef HAVE_STDINT_H +# include +#endif + +#include "ruby/internal/value.h" +#include "ruby/internal/dllexport.h" + +#define rb_int_new rb_int2inum /**< @alias{rb_int2inum} */ +#define rb_uint_new rb_uint2inum /**< @alias{rb_uint2inum} */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Converts a C's `intptr_t` into an instance of ::rb_cInteger. + * + * @param[in] i Arbitrary `intptr_t` value. + * @return An instance of ::rb_cInteger. + * @note This function always allocates Bignums, even if the given number + * is small enough to fit into a Fixnum. + */ +VALUE rb_int2big(intptr_t i); + +/** + * Converts a C's `intptr_t` into an instance of ::rb_cInteger. + * + * @param[in] i Arbitrary `intptr_t` value. + * @return An instance of ::rb_cInteger. + */ +VALUE rb_int2inum(intptr_t i); + +/** + * Converts a C's `intptr_t` into an instance of ::rb_cInteger. + * + * @param[in] i Arbitrary `intptr_t` value. + * @return An instance of ::rb_cInteger. + * @note This function always allocates Bignums, even if the given number + * is small enough to fit into a Fixnum. + */ +VALUE rb_uint2big(uintptr_t i); + +/** + * Converts a C's `uintptr_t` into an instance of ::rb_cInteger. + * + * @param[in] i Arbitrary `uintptr_t` value. + * @return An instance of ::rb_cInteger. + */ +VALUE rb_uint2inum(uintptr_t i); +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_ARITHMETIC_INTPTR_T_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/long.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/long.h new file mode 100644 index 0000000..6b8fd8f --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/long.h @@ -0,0 +1,356 @@ +#ifndef RBIMPL_ARITHMETIC_LONG_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_LONG_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `long` and Ruby's. + * + * ### Q&A ### + * + * - Q: Why are INT2FIX etc. here, not in `int.h`? + * + * - A: Because they are in fact handling `long`. It seems someone did not + * understand the difference of `int` and `long` when they designed those + * macros. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/arithmetic/fixnum.h" /* FIXABLE */ +#include "ruby/internal/arithmetic/intptr_t.h" /* rb_int2big etc.*/ +#include "ruby/internal/assume.h" +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/cold.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/constexpr.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/special_consts.h" /* FIXNUM_FLAG */ +#include "ruby/internal/value.h" +#include "ruby/assert.h" + +#define FIX2LONG RB_FIX2LONG /**< @old{RB_FIX2LONG} */ +#define FIX2ULONG RB_FIX2ULONG /**< @old{RB_FIX2ULONG} */ +#define INT2FIX RB_INT2FIX /**< @old{RB_INT2FIX} */ +#define LONG2FIX RB_INT2FIX /**< @old{RB_INT2FIX} */ +#define LONG2NUM RB_LONG2NUM /**< @old{RB_LONG2NUM} */ +#define NUM2LONG RB_NUM2LONG /**< @old{RB_NUM2LONG} */ +#define NUM2ULONG RB_NUM2ULONG /**< @old{RB_NUM2ULONG} */ +#define RB_FIX2LONG rb_fix2long /**< @alias{rb_fix2long} */ +#define RB_FIX2ULONG rb_fix2ulong /**< @alias{rb_fix2ulong} */ +#define RB_LONG2FIX RB_INT2FIX /**< @alias{RB_INT2FIX} */ +#define RB_LONG2NUM rb_long2num_inline /**< @alias{rb_long2num_inline} */ +#define RB_NUM2LONG rb_num2long_inline /**< @alias{rb_num2long_inline} */ +#define RB_NUM2ULONG rb_num2ulong_inline /**< @alias{rb_num2ulong_inline} */ +#define RB_ULONG2NUM rb_ulong2num_inline /**< @alias{rb_ulong2num_inline} */ +#define ULONG2NUM RB_ULONG2NUM /**< @old{RB_ULONG2NUM} */ +#define rb_fix_new RB_INT2FIX /**< @alias{RB_INT2FIX} */ +#define rb_long2int rb_long2int_inline /**< @alias{rb_long2int_inline} */ + +/** @cond INTERNAL_MACRO */ +#define RB_INT2FIX RB_INT2FIX +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_COLD() +/** + * This is an utility function to raise an ::rb_eRangeError. + * + * @param[in] num A signed value about to overflow. + * @exception rb_eRangeError `num` is out of range of `int`. + */ +void rb_out_of_int(SIGNED_VALUE num); + +/** + * Converts an instance of ::rb_cNumeric into C's `long`. + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `long`. + * @return The passed value converted into C's `long`. + */ +long rb_num2long(VALUE num); + +/** + * Converts an instance of ::rb_cNumeric into C's `unsigned long`. + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `unsigned long`. + * @return The passed value converted into C's `unsigned long`. + */ +unsigned long rb_num2ulong(VALUE num); +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_CONST_UNLESS_DEBUG() +RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Converts a C's `long` into an instance of ::rb_cInteger. + * + * @param[in] i Arbitrary `long` value. + * @return An instance of ::rb_cInteger. + */ +static inline VALUE +RB_INT2FIX(long i) +{ + RBIMPL_ASSERT_OR_ASSUME(RB_FIXABLE(i)); + + /* :NOTE: VALUE can be wider than long. As j being unsigned, 2j+1 is fully + * defined. Also it can be compiled into a single LEA instruction. */ + const unsigned long j = i; + const unsigned long k = (j << 1) + RUBY_FIXNUM_FLAG; + const long l = k; + const SIGNED_VALUE m = l; /* Sign extend */ + const VALUE n = m; + + RBIMPL_ASSERT_OR_ASSUME(RB_FIXNUM_P(n)); + return n; +} + +/** + * Checks if `int` can hold the given integer. + * + * @param[in] n Arbitrary `long` value. + * @exception rb_eRangeError `n` is out of range of `int`. + * @return Identical value of type `int` + */ +static inline int +rb_long2int_inline(long n) +{ + int i = RBIMPL_CAST((int)n); + + if /* constexpr */ (sizeof(long) <= sizeof(int)) { + RBIMPL_ASSUME(i == n); + } + + if (i != n) + rb_out_of_int(n); + + return i; +} + +RBIMPL_ATTR_CONST_UNLESS_DEBUG() +RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) +/** + * @private + * + * This is an implementation detail of rb_fix2long(). People don't use it + * directly. + * + * @param[in] x A Fixnum. + * @return Identical value of type `long` + * @pre Must not pass anything other than a Fixnum. + */ +static inline long +rbimpl_fix2long_by_idiv(VALUE x) +{ + RBIMPL_ASSERT_OR_ASSUME(RB_FIXNUM_P(x)); + + /* :NOTE: VALUE can be wider than long. (x-1)/2 never overflows because + * RB_FIXNUM_P(x) holds. Also it has no portability issue like y>>1 + * below. */ + const SIGNED_VALUE y = x - RUBY_FIXNUM_FLAG; + const SIGNED_VALUE z = y / 2; + const long w = RBIMPL_CAST((long)z); + + RBIMPL_ASSERT_OR_ASSUME(RB_FIXABLE(w)); + return w; +} + +RBIMPL_ATTR_CONST_UNLESS_DEBUG() +RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) +/** + * @private + * + * This is an implementation detail of rb_fix2long(). People don't use it + * directly. + * + * @param[in] x A Fixnum. + * @return Identical value of type `long` + * @pre Must not pass anything other than a Fixnum. + */ +static inline long +rbimpl_fix2long_by_shift(VALUE x) +{ + RBIMPL_ASSERT_OR_ASSUME(RB_FIXNUM_P(x)); + + /* :NOTE: VALUE can be wider than long. If right shift is arithmetic, this + * is noticeably faster than above. */ + const SIGNED_VALUE y = x; + const SIGNED_VALUE z = y >> 1; + const long w = RBIMPL_CAST((long)z); + + RBIMPL_ASSERT_OR_ASSUME(RB_FIXABLE(w)); + return w; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +/** + * @private + * + * This is an implementation detail of rb_fix2long(). People don't use it + * directly. + * + * @retval true This C compiler's right shift operator is arithmetic. + * @retval false This C compiler's right shift operator is logical. + */ +static inline bool +rbimpl_right_shift_is_arithmetic_p(void) +{ + return (-1 >> 1) == -1; +} + +RBIMPL_ATTR_CONST_UNLESS_DEBUG() +RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) +/** + * Converts a Fixnum into C's `long`. + * + * @param[in] x Some Fixnum. + * @pre Must not pass anything other than a Fixnum. + * @return The passed value converted into C's `long`. + */ +static inline long +rb_fix2long(VALUE x) +{ + if /* constexpr */ (rbimpl_right_shift_is_arithmetic_p()) { + return rbimpl_fix2long_by_shift(x); + } + else { + return rbimpl_fix2long_by_idiv(x); + } +} + +RBIMPL_ATTR_CONST_UNLESS_DEBUG() +RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) +/** + * Converts a Fixnum into C's `unsigned long`. + * + * @param[in] x Some Fixnum. + * @pre Must not pass anything other than a Fixnum. + * @return The passed value converted into C's `unsigned long`. + * @note Negative fixnums will be converted into large unsigned longs. + */ +static inline unsigned long +rb_fix2ulong(VALUE x) +{ + RBIMPL_ASSERT_OR_ASSUME(RB_FIXNUM_P(x)); + return rb_fix2long(x); +} + +/** + * Converts an instance of ::rb_cNumeric into C's `long`. + * + * @param[in] x Something numeric. + * @exception rb_eTypeError `x` is not a numeric. + * @exception rb_eRangeError `x` is out of range of `long`. + * @return The passed value converted into C's `long`. + */ +static inline long +rb_num2long_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return RB_FIX2LONG(x); + else + return rb_num2long(x); +} + +/** + * Converts an instance of ::rb_cNumeric into C's `unsigned long`. + * + * @param[in] x Something numeric. + * @exception rb_eTypeError `x` is not a numeric. + * @exception rb_eRangeError `x` is out of range of `unsigned long`. + * @return The passed value converted into C's `unsigned long`. + * + * @internal + * + * This (negative fixnum would become a large unsigned long while negative + * bignum is an exception) has been THE behaviour of NUM2ULONG since the + * beginning. It is strange, but we can no longer change how it works at this + * moment. We have to get by with it. + * + * @see https://bugs.ruby-lang.org/issues/9089 + */ +static inline unsigned long +rb_num2ulong_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return RB_FIX2ULONG(x); + else + return rb_num2ulong(x); +} + +/** + * Converts a C's `long` into an instance of ::rb_cInteger. + * + * @param[in] v Arbitrary `long` value. + * @return An instance of ::rb_cInteger. + */ +static inline VALUE +rb_long2num_inline(long v) +{ + if (RB_FIXABLE(v)) + return RB_LONG2FIX(v); + else + return rb_int2big(v); +} + +/** + * Converts a C's `unsigned long` into an instance of ::rb_cInteger. + * + * @param[in] v Arbitrary `unsigned long` value. + * @return An instance of ::rb_cInteger. + */ +static inline VALUE +rb_ulong2num_inline(unsigned long v) +{ + if (RB_POSFIXABLE(v)) + return RB_LONG2FIX(v); + else + return rb_uint2big(v); +} + +/** + * @cond INTERNAL_MACRO + * + * Following overload is necessary because sometimes INT2FIX is used as a enum + * value (e.g. `enum { FOO = INT2FIX(0) };`). THIS IS NG in theory because a + * VALUE does not fit into an enum (which must be a signed int). But we cannot + * break existing codes. + */ +#if RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 +# /* C++ can write constexpr as enum values. */ + +#elif ! defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P) +# undef INT2FIX +# define INT2FIX(i) (RBIMPL_CAST((VALUE)(i)) << 1 | RUBY_FIXNUM_FLAG) + +#else +# undef INT2FIX +# define INT2FIX(i) \ + __builtin_choose_expr( \ + __builtin_constant_p(i), \ + RBIMPL_CAST((VALUE)(i)) << 1 | RUBY_FIXNUM_FLAG, \ + RB_INT2FIX(i)) +#endif +/** @endcond */ + +#endif /* RBIMPL_ARITHMETIC_LONG_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/long_long.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/long_long.h new file mode 100644 index 0000000..65dec87 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/long_long.h @@ -0,0 +1,135 @@ +#ifndef RBIMPL_ARITHMETIC_LONG_LONG_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_LONG_LONG_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `long long` and Ruby's. + */ +#include "ruby/internal/value.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/special_consts.h" +#include "ruby/backward/2/long_long.h" + +#define RB_LL2NUM rb_ll2num_inline /**< @alias{rb_ll2num_inline} */ +#define RB_ULL2NUM rb_ull2num_inline /**< @alias{rb_ull2num_inline} */ +#define LL2NUM RB_LL2NUM /**< @old{RB_LL2NUM} */ +#define ULL2NUM RB_ULL2NUM /**< @old{RB_ULL2NUM} */ +#define RB_NUM2LL rb_num2ll_inline /**< @alias{rb_num2ll_inline} */ +#define RB_NUM2ULL rb_num2ull_inline /**< @alias{rb_num2ull_inline} */ +#define NUM2LL RB_NUM2LL /**< @old{RB_NUM2LL} */ +#define NUM2ULL RB_NUM2ULL /**< @old{RB_NUM2ULL} */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * Converts a C's `long long` into an instance of ::rb_cInteger. + * + * @param[in] num Arbitrary `long long` value. + * @return An instance of ::rb_cInteger. + */ +VALUE rb_ll2inum(LONG_LONG num); + +/** + * Converts a C's `unsigned long long` into an instance of ::rb_cInteger. + * + * @param[in] num Arbitrary `unsigned long long` value. + * @return An instance of ::rb_cInteger. + */ +VALUE rb_ull2inum(unsigned LONG_LONG num); + +/** + * Converts an instance of ::rb_cNumeric into C's `long long`. + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `long long`. + * @return The passed value converted into C's `long long`. + */ +LONG_LONG rb_num2ll(VALUE num); + +/** + * Converts an instance of ::rb_cNumeric into C's `unsigned long long`. + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `unsigned long long`. + * @return The passed value converted into C's `unsigned long long`. + */ +unsigned LONG_LONG rb_num2ull(VALUE num); +RBIMPL_SYMBOL_EXPORT_END() + +/** + * Converts a C's `long long` into an instance of ::rb_cInteger. + * + * @param[in] n Arbitrary `long long` value. + * @return An instance of ::rb_cInteger + */ +static inline VALUE +rb_ll2num_inline(LONG_LONG n) +{ + if (FIXABLE(n)) return LONG2FIX((long)n); + return rb_ll2inum(n); +} + +/** + * Converts a C's `unsigned long long` into an instance of ::rb_cInteger. + * + * @param[in] n Arbitrary `unsigned long long` value. + * @return An instance of ::rb_cInteger + */ +static inline VALUE +rb_ull2num_inline(unsigned LONG_LONG n) +{ + if (POSFIXABLE(n)) return LONG2FIX((long)n); + return rb_ull2inum(n); +} + +/** + * Converts an instance of ::rb_cNumeric into C's `long long`. + * + * @param[in] x Something numeric. + * @exception rb_eTypeError `x` is not a numeric. + * @exception rb_eRangeError `x` is out of range of `long long`. + * @return The passed value converted into C's `long long`. + */ +static inline LONG_LONG +rb_num2ll_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return RB_FIX2LONG(x); + else + return rb_num2ll(x); +} + +/** + * Converts an instance of ::rb_cNumeric into C's `unsigned long long`. + * + * @param[in] x Something numeric. + * @exception rb_eTypeError `x` is not a numeric. + * @exception rb_eRangeError `x` is out of range of `unsigned long long`. + * @return The passed value converted into C's `unsigned long long`. + */ +static inline unsigned LONG_LONG +rb_num2ull_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return RB_FIX2LONG(x); + else + return rb_num2ull(x); +} + +#endif /* RBIMPL_ARITHMETIC_LONG_LONG_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/mode_t.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/mode_t.h new file mode 100644 index 0000000..5b7ad35 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/mode_t.h @@ -0,0 +1,41 @@ +#ifndef RBIMPL_ARITHMETIC_MODE_T_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_MODE_T_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `mode_t` and Ruby's. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/arithmetic/int.h" + +/** Converts a C's `mode_t` into an instance of ::rb_cInteger. */ +#ifndef NUM2MODET +# define NUM2MODET RB_NUM2INT +#endif + +/** Converts an instance of ::rb_cNumeric into C's `mode_t`. */ +#ifndef MODET2NUM +# define MODET2NUM RB_INT2NUM +#endif + +/** A rb_sprintf() format prefix to be used for a `mode_t` parameter. */ +#ifndef PRI_MODET_PREFIX +# define PRI_MODET_PREFIX PRI_INT_PREFIX +#endif + +#endif /* RBIMPL_ARITHMETIC_MODE_T_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/off_t.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/off_t.h new file mode 100644 index 0000000..0ec9362 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/off_t.h @@ -0,0 +1,62 @@ +#ifndef RBIMPL_ARITHMETIC_OFF_T_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_OFF_T_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `off_t` and Ruby's. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/arithmetic/int.h" +#include "ruby/internal/arithmetic/long.h" +#include "ruby/internal/arithmetic/long_long.h" +#include "ruby/backward/2/long_long.h" + +/** Converts a C's `off_t` into an instance of ::rb_cInteger. */ +#ifdef OFFT2NUM +# /* take that. */ +#elif SIZEOF_OFF_T == SIZEOF_LONG_LONG +# define OFFT2NUM RB_LL2NUM +#elif SIZEOF_OFF_T == SIZEOF_LONG +# define OFFT2NUM RB_LONG2NUM +#else +# define OFFT2NUM RB_INT2NUM +#endif + +/** Converts an instance of ::rb_cNumeric into C's `off_t`. */ +#ifdef NUM2OFFT +# /* take that. */ +#elif SIZEOF_OFF_T == SIZEOF_LONG_LONG +# define NUM2OFFT RB_NUM2LL +#elif SIZEOF_OFF_T == SIZEOF_LONG +# define NUM2OFFT RB_NUM2LONG +#else +# define NUM2OFFT RB_NUM2INT +#endif + +/** A rb_sprintf() format prefix to be used for an `off_t` parameter. */ +#ifdef PRI_OFFT_PREFIX +# /* take that. */ +#elif SIZEOF_OFF_T == SIZEOF_LONG_LONG +# define PRI_OFFT_PREFIX PRI_LL_PREFIX +#elif SIZEOF_OFF_T == SIZEOF_LONG +# define PRI_OFFT_PREFIX PRI_LONG_PREFIX +#else +# define PRI_OFFT_PREFIX PRI_INT_PREFIX +#endif + +#endif /* RBIMPL_ARITHMETIC_OFF_T_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/pid_t.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/pid_t.h new file mode 100644 index 0000000..df9704e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/pid_t.h @@ -0,0 +1,41 @@ +#ifndef RBIMPL_ARITHMETIC_PID_T_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_PID_T_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `pid_t` and Ruby's. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/arithmetic/long.h" + +/** Converts a C's `pid_t` into an instance of ::rb_cInteger. */ +#ifndef PIDT2NUM +# define PIDT2NUM RB_LONG2NUM +#endif + +/** Converts an instance of ::rb_cNumeric into C's `pid_t`. */ +#ifndef NUM2PIDT +# define NUM2PIDT RB_NUM2LONG +#endif + +/** A rb_sprintf() format prefix to be used for a `pid_t` parameter. */ +#ifndef PRI_PIDT_PREFIX +# define PRI_PIDT_PREFIX PRI_LONG_PREFIX +#endif + +#endif /* RBIMPL_ARITHMETIC_PID_T_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/short.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/short.h new file mode 100644 index 0000000..7a324d9 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/short.h @@ -0,0 +1,113 @@ +#ifndef RBIMPL_ARITHMETIC_SHORT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_SHORT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `short` and Ruby's. + * + * Shyouhei wonders: why there is no SHORT2NUM, given there are both + * #USHORT2NUM and #CHR2FIX? + */ +#include "ruby/internal/value.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/special_consts.h" + +#define RB_NUM2SHORT rb_num2short_inline /**< @alias{rb_num2short_inline} */ +#define RB_NUM2USHORT rb_num2ushort /**< @alias{rb_num2ushort} */ +#define NUM2SHORT RB_NUM2SHORT /**< @old{RB_NUM2SHORT} */ +#define NUM2USHORT RB_NUM2USHORT /**< @old{RB_NUM2USHORT} */ +#define USHORT2NUM RB_INT2FIX /**< @old{RB_INT2FIX} */ +#define RB_FIX2SHORT rb_fix2short /**< @alias{rb_fix2ushort} */ +#define FIX2SHORT RB_FIX2SHORT /**< @old{RB_FIX2SHORT} */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Converts an instance of ::rb_cNumeric into C's `short`. + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `short`. + * @return The passed value converted into C's `short`. + */ +short rb_num2short(VALUE num); + +/** + * Converts an instance of ::rb_cNumeric into C's `unsigned short`. + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `unsigned short`. + * @return The passed value converted into C's `unsigned short`. + */ +unsigned short rb_num2ushort(VALUE num); + +/** + * Identical to rb_num2short(). + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `short`. + * @return The passed value converted into C's `short`. + * + * @internal + * + * This function seems to be a complete waste of disk space. @shyouhei has no + * idea why this is a different thing from rb_num2short(). + */ +short rb_fix2short(VALUE num); + +/** + * Identical to rb_num2ushort(). + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `unsigned short`. + * @return The passed value converted into C's `unsigned short`. + * + * @internal + * + * This function seems to be a complete waste of disk space. @shyouhei has no + * idea why this is a different thing from rb_num2ushort(). + */ +unsigned short rb_fix2ushort(VALUE num); +RBIMPL_SYMBOL_EXPORT_END() + +/** + * Identical to rb_num2short(). + * + * @param[in] x Something numeric. + * @exception rb_eTypeError `x` is not a numeric. + * @exception rb_eRangeError `x` is out of range of `short`. + * @return The passed value converted into C's `short`. + * + * @internal + * + * This function seems to be a complete waste of time. @shyouhei has no idea + * why this is a different thing from rb_num2short(). + */ +static inline short +rb_num2short_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return rb_fix2short(x); + else + return rb_num2short(x); +} + +#endif /* RBIMPL_ARITHMETIC_SHORT_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/size_t.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/size_t.h new file mode 100644 index 0000000..1082160 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/size_t.h @@ -0,0 +1,66 @@ +#ifndef RBIMPL_ARITHMETIC_SIZE_T_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_SIZE_T_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `size_t` and Ruby's. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/arithmetic/int.h" +#include "ruby/internal/arithmetic/long.h" +#include "ruby/internal/arithmetic/long_long.h" +#include "ruby/backward/2/long_long.h" + +#if defined(__DOXYGEN__) +# /** Converts a C's `size_t` into an instance of ::rb_cInteger. */ +# define RB_SIZE2NUM RB_ULONG2NUM +# /** Converts a C's `ssize_t` into an instance of ::rb_cInteger. */ +# define RB_SSIZE2NUM RB_LONG2NUM +#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG +# define RB_SIZE2NUM RB_ULL2NUM +# define RB_SSIZE2NUM RB_LL2NUM +#elif SIZEOF_SIZE_T == SIZEOF_LONG +# define RB_SIZE2NUM RB_ULONG2NUM +# define RB_SSIZE2NUM RB_LONG2NUM +#else +# define RB_SIZE2NUM RB_UINT2NUM +# define RB_SSIZE2NUM RB_INT2NUM +#endif + +#if defined(__DOXYGEN__) +# /** Converts an instance of ::rb_cInteger into C's `size_t`. */ +# define RB_NUM2SIZE RB_NUM2ULONG +# /** Converts an instance of ::rb_cInteger into C's `ssize_t`. */ +# define RB_NUM2SSIZE RB_NUM2LONG +#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG +# define RB_NUM2SIZE RB_NUM2ULL +# define RB_NUM2SSIZE RB_NUM2LL +#elif SIZEOF_SIZE_T == SIZEOF_LONG +# define RB_NUM2SIZE RB_NUM2ULONG +# define RB_NUM2SSIZE RB_NUM2LONG +#else +# define RB_NUM2SIZE RB_NUM2UINT +# define RB_NUM2SSIZE RB_NUM2INT +#endif + +#define NUM2SIZET RB_NUM2SIZE /**< @old{RB_NUM2SIZE} */ +#define SIZET2NUM RB_SIZE2NUM /**< @old{RB_SIZE2NUM} */ +#define NUM2SSIZET RB_NUM2SSIZE /**< @old{RB_NUM2SSIZE} */ +#define SSIZET2NUM RB_SSIZE2NUM /**< @old{RB_SSIZE2NUM} */ + +#endif /* RBIMPL_ARITHMETIC_SIZE_T_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/st_data_t.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/st_data_t.h new file mode 100644 index 0000000..3bff4ff --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/st_data_t.h @@ -0,0 +1,75 @@ +#ifndef RBIMPL_ARITHMERIC_ST_DATA_T_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMERIC_ST_DATA_T_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `st_data_t` and Ruby's. + */ +#include "ruby/internal/arithmetic/fixnum.h" +#include "ruby/internal/arithmetic/long.h" +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/constexpr.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/value.h" +#include "ruby/assert.h" +#include "ruby/st.h" + +#define ST2FIX RB_ST2FIX /**< @old{RB_ST2FIX} */ +/** @cond INTERNAL_MACRO */ +#define RB_ST2FIX RB_ST2FIX +/** @endcond */ + +RBIMPL_ATTR_CONST_UNLESS_DEBUG() +RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Converts a C's `st_data_t` into an instance of ::rb_cInteger. + * + * @param[in] i The data in question. + * @return A converted result + * @warning THIS CONVERSION LOSES DATA! Be warned. + * @see https://bugs.ruby-lang.org/issues/13877 + * @see https://bugs.ruby-lang.org/issues/14218 + * + * @internal + * + * This is needed because of hash functions. Hash functions return + * `st_data_t`, which could theoretically be bigger than Fixnums. However + * allocating Bignums for them every time we calculate hash values is just too + * heavy. To avoid penalty we need to ignore some upper bit(s) and stick to + * Fixnums. This function is used for that purpose. + */ +static inline VALUE +RB_ST2FIX(st_data_t i) +{ + SIGNED_VALUE x = i; + + if (x >= 0) { + x &= RUBY_FIXNUM_MAX; + } + else { + x |= RUBY_FIXNUM_MIN; + } + + RBIMPL_ASSERT_OR_ASSUME(RB_FIXABLE(x)); + unsigned long y = RBIMPL_CAST((unsigned long)x); + return RB_LONG2FIX(y); +} + +#endif /* RBIMPL_ARITHMETIC_ST_DATA_T_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/uid_t.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/uid_t.h new file mode 100644 index 0000000..12cde2a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/arithmetic/uid_t.h @@ -0,0 +1,41 @@ +#ifndef RBIMPL_ARITHMETIC_UID_T_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_UID_T_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `uid_t` and Ruby's. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/arithmetic/long.h" + +/** Converts a C's `uid_t` into an instance of ::rb_cInteger. */ +#ifndef UIDT2NUM +# define UIDT2NUM RB_LONG2NUM +#endif + +/** Converts an instance of ::rb_cNumeric into C's `uid_t`. */ +#ifndef NUM2UIDT +# define NUM2UIDT RB_NUM2LONG +#endif + +/** A rb_sprintf() format prefix to be used for a `uid_t` parameter. */ +#ifndef PRI_UIDT_PREFIX +# define PRI_UIDT_PREFIX PRI_LONG_PREFIX +#endif + +#endif /* RBIMPL_ARITHMETIC_UID_T_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/assume.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/assume.h new file mode 100644 index 0000000..4c183e8 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/assume.h @@ -0,0 +1,87 @@ +#ifndef RBIMPL_ASSUME_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ASSUME_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ASSUME / #RBIMPL_UNREACHABLE. + * + * These macros must be defined at once because: + * + * - #RBIMPL_ASSUME could fallback to #RBIMPL_UNREACHABLE. + * - #RBIMPL_UNREACHABLE could fallback to #RBIMPL_ASSUME. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/has/builtin.h" +#include "ruby/internal/warning_push.h" + +/** @cond INTERNAL_MACRO */ +#if defined(HAVE___ASSUME) +# define RBIMPL_HAVE___ASSUME +#endif +/** @endcond */ + +/** Wraps (or simulates) `__builtin_unreachable`. */ +#if RBIMPL_HAS_BUILTIN(__builtin_unreachable) +# define RBIMPL_UNREACHABLE_RETURN(_) __builtin_unreachable() + +#elif defined(RBIMPL_HAVE___ASSUME) +# define RBIMPL_UNREACHABLE_RETURN(_) return (__assume(0), (_)) + +#else +# define RBIMPL_UNREACHABLE_RETURN(_) return (_) +#endif + +/** Wraps (or simulates) `__builtin_unreachable`. */ +#if RBIMPL_HAS_BUILTIN(__builtin_unreachable) +# define RBIMPL_UNREACHABLE __builtin_unreachable + +#elif defined(RBIMPL_HAVE___ASSUME) +# define RBIMPL_UNREACHABLE() __assume(0) +#endif + +/** Wraps (or simulates) `__assume`. */ +#if RBIMPL_COMPILER_SINCE(Intel, 13, 0, 0) +# /* icc warnings are false positives. Ignore them. */ +# /* "warning #2261: __assume expression with side effects discarded" */ +# define RBIMPL_ASSUME(expr) \ + RBIMPL_WARNING_PUSH() \ + RBIMPL_WARNING_IGNORED(2261) \ + __assume(expr) \ + RBIMPL_WARNING_POP() + +#elif defined(RBIMPL_HAVE___ASSUME) +# define RBIMPL_ASSUME __assume + +#elif RBIMPL_HAS_BUILTIN(__builtin_assume) +# define RBIMPL_ASSUME __builtin_assume + +#elif ! defined(RBIMPL_UNREACHABLE) +# define RBIMPL_ASSUME(_) RBIMPL_CAST((void)(_)) + +#else +# define RBIMPL_ASSUME(_) \ + (RB_LIKELY(!!(_)) ? RBIMPL_CAST((void)0) : RBIMPL_UNREACHABLE()) +#endif + +#if ! defined(RBIMPL_UNREACHABLE) +# define RBIMPL_UNREACHABLE() RBIMPL_ASSUME(0) +#endif + +#endif /* RBIMPL_ASSUME_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/alloc_size.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/alloc_size.h new file mode 100644 index 0000000..954a201 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/alloc_size.h @@ -0,0 +1,32 @@ +#ifndef RBIMPL_ATTR_ALLOC_SIZE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_ALLOC_SIZE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_ALLOC_SIZE. + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((alloc_size))` */ +#if RBIMPL_HAS_ATTRIBUTE(alloc_size) +# define RBIMPL_ATTR_ALLOC_SIZE(tuple) __attribute__((__alloc_size__ tuple)) +#else +# define RBIMPL_ATTR_ALLOC_SIZE(tuple) /* void */ +#endif + +#endif /* RBIMPL_ATTR_ALLOC_SIZE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/artificial.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/artificial.h new file mode 100644 index 0000000..ef5f36a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/artificial.h @@ -0,0 +1,46 @@ +#ifndef RBIMPL_ATTR_ARTIFICIAL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_ARTIFICIAL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_ARTIFICIAL. + * + * ### Q&A ### + * + * - Q: What is this attribute? I don't get what GCC manual is talking about. + * + * - A: In short it is an attribute to manipulate GDB backtraces. The + * attribute makes the best sense when it comes with + * __attribute__((always_inline)). When a function annotated with this + * attribute gets inlined, and when you somehow look at a backtrace which + * includes such inlined call site, then the backtrace shows the caller + * and not the callee. This is handy for instance when an identical + * function is inlined more than once in a single big function. On such + * case it gets vital to know where the inlining happened in the callee. + * See also https://stackoverflow.com/a/21936099 + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((artificial))` */ +#if RBIMPL_HAS_ATTRIBUTE(artificial) +# define RBIMPL_ATTR_ARTIFICIAL() __attribute__((__artificial__)) +#else +# define RBIMPL_ATTR_ARTIFICIAL() /* void */ +#endif + +#endif /* RBIMPL_ATTR_ARTIFICIAL_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/cold.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/cold.h new file mode 100644 index 0000000..c68b3ae --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/cold.h @@ -0,0 +1,37 @@ +#ifndef RBIMPL_ATTR_COLD_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_COLD_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_COLD. + */ +#include "ruby/internal/compiler_is.h" +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((cold))` */ +#if RBIMPL_COMPILER_IS(SunPro) +# /* Recent SunPro has __has_attribute, and is broken. */ +# /* It reports it has attribute cold, reality isn't (warnings issued). */ +# define RBIMPL_ATTR_COLD() /* void */ +#elif RBIMPL_HAS_ATTRIBUTE(cold) +# define RBIMPL_ATTR_COLD() __attribute__((__cold__)) +#else +# define RBIMPL_ATTR_COLD() /* void */ +#endif + +#endif /* RBIMPL_ATTR_COLD_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/const.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/const.h new file mode 100644 index 0000000..e66aa17 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/const.h @@ -0,0 +1,46 @@ +#ifndef RBIMPL_ATTR_CONST_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_CONST_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_CONST. + */ +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/has/declspec_attribute.h" + +/** Wraps (or simulates) `__attribute__((const))` */ +#if RBIMPL_HAS_ATTRIBUTE(const) +# define RBIMPL_ATTR_CONST() __attribute__((__const__)) +#elif RBIMPL_HAS_DECLSPEC_ATTRIBUTE(noalias) +# /* If a function can be a const, that is also a noalias. */ +# define RBIMPL_ATTR_CONST() __declspec(noalias) +#elif RBIMPL_COMPILER_SINCE(SunPro, 5, 10, 0) +# define RBIMPL_ATTR_CONST() _Pragma("no_side_effect") +#else +# define RBIMPL_ATTR_CONST() /* void */ +#endif + +/** Enables #RBIMPL_ATTR_CONST if and only if. ! #RUBY_DEBUG. */ +#if !defined(RUBY_DEBUG) || !RUBY_DEBUG +# define RBIMPL_ATTR_CONST_UNLESS_DEBUG() RBIMPL_ATTR_CONST() +#else +# define RBIMPL_ATTR_CONST_UNLESS_DEBUG() /* void */ +#endif + +#endif /* RBIMPL_ATTR_CONST_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/constexpr.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/constexpr.h new file mode 100644 index 0000000..abc4f23 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/constexpr.h @@ -0,0 +1,84 @@ +#ifndef RBIMPL_ATTR_CONSTEXPR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_CONSTEXPR_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief #RBIMPL_ATTR_CONSTEXPR. + */ +#include "ruby/internal/has/feature.h" +#include "ruby/internal/compiler_is.h" + +/** @cond INTERNAL_MACRO */ +#if ! defined(__cplusplus) +# /* Makes no sense. */ +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 0 +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 0 + +#elif defined(__cpp_constexpr) +# /* https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations */ +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 (__cpp_constexpr >= 200704L) +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 (__cpp_constexpr >= 201304L) + +#elif RBIMPL_COMPILER_SINCE(MSVC, 19, 0, 0) +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 RBIMPL_COMPILER_SINCE(MSVC, 19, 00, 00) +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 RBIMPL_COMPILER_SINCE(MSVC, 19, 11, 00) + +#elif RBIMPL_COMPILER_SINCE(SunPro, 5, 13, 0) +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 (__cplusplus >= 201103L) +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 (__cplusplus >= 201402L) + +#elif RBIMPL_COMPILER_SINCE(GCC, 4, 9, 0) +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 (__cplusplus >= 201103L) +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 (__cplusplus >= 201402L) + +#elif RBIMPL_HAS_FEATURE(cxx_relaxed_constexpr) +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 1 +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 1 + +#elif RBIMPL_HAS_FEATURE(cxx_constexpr) +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 1 +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 0 + +#else +# /* :FIXME: icpc must have constexpr but don't know how to detect. */ +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 0 +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 0 +#endif +/** @endcond */ + +/** Wraps (or simulates) C++11 `constexpr`. */ +#if RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 +# define RBIMPL_ATTR_CONSTEXPR(_) constexpr + +#elif RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 +# define RBIMPL_ATTR_CONSTEXPR(_) RBIMPL_ATTR_CONSTEXPR_ ## _ +# define RBIMPL_ATTR_CONSTEXPR_CXX11 constexpr +# define RBIMPL_ATTR_CONSTEXPR_CXX14 /* void */ + +#else +# define RBIMPL_ATTR_CONSTEXPR(_) /* void */ +#endif + +/** Enables #RBIMPL_ATTR_CONSTEXPR if and only if. ! #RUBY_DEBUG. */ +#if !RUBY_DEBUG +# define RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(_) RBIMPL_ATTR_CONSTEXPR(_) +#else +# define RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(_) /* void */ +#endif + +#endif /* RBIMPL_ATTR_CONSTEXPR_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/deprecated.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/deprecated.h new file mode 100644 index 0000000..e1bbdbd --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/deprecated.h @@ -0,0 +1,75 @@ +#ifndef RBIMPL_ATTR_DEPRECATED_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_DEPRECATED_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_DEPRECATED. + */ +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/has/c_attribute.h" +#include "ruby/internal/has/cpp_attribute.h" +#include "ruby/internal/has/declspec_attribute.h" +#include "ruby/internal/has/extension.h" + +/** Wraps (or simulates) `[[deprecated]]` */ +#if defined(__COVERITY__) +/* Coverity Scan emulates gcc but seems not to support this attribute correctly */ +# define RBIMPL_ATTR_DEPRECATED(msg) + +#elif RBIMPL_HAS_EXTENSION(attribute_deprecated_with_message) +# define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__ msg)) + +#elif defined(__cplusplus) && RBIMPL_COMPILER_SINCE(GCC, 10, 1, 0) && RBIMPL_COMPILER_BEFORE(GCC, 10, 3, 0) +# /* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95302 */ +# define RBIMPL_ATTR_DEPRECATED(msg) /* disable until they fix this bug */ + +#elif RBIMPL_COMPILER_SINCE(GCC, 4, 5, 0) +# define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__ msg)) + +#elif RBIMPL_COMPILER_SINCE(Intel, 13, 0, 0) +# define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__ msg)) + +#elif RBIMPL_HAS_ATTRIBUTE(deprecated) /* but not with message. */ +# define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__)) + +#elif RBIMPL_COMPILER_SINCE(MSVC, 14, 0, 0) +# define RBIMPL_ATTR_DEPRECATED(msg) __declspec(deprecated msg) + +#elif RBIMPL_HAS_DECLSPEC_ATTRIBUTE(deprecated) +# define RBIMPL_ATTR_DEPRECATED(msg) __declspec(deprecated) + +#elif RBIMPL_HAS_CPP_ATTRIBUTE(deprecated) +# define RBIMPL_ATTR_DEPRECATED(msg) [[deprecated msg]] + +#elif RBIMPL_HAS_C_ATTRIBUTE(deprecated) +# define RBIMPL_ATTR_DEPRECATED(msg) [[deprecated msg]] + +#else +# define RBIMPL_ATTR_DEPRECATED(msg) /* void */ +#endif + +/** This is when a function is used internally (for backwards compatibility + * etc.), but extension libraries must consider it deprecated. */ +#if defined(RUBY_EXPORT) +# define RBIMPL_ATTR_DEPRECATED_EXT(msg) /* void */ +#else +# define RBIMPL_ATTR_DEPRECATED_EXT(msg) RBIMPL_ATTR_DEPRECATED(msg) +#endif + +#endif /* RBIMPL_ATTR_DEPRECATED_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/diagnose_if.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/diagnose_if.h new file mode 100644 index 0000000..cadc6ce --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/diagnose_if.h @@ -0,0 +1,42 @@ +#ifndef RBIMPL_ATTR_DIAGNOSE_IF_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_DIAGNOSE_IF_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_DIAGNOSE_IF. + */ +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/warning_push.h" + +/** Wraps (or simulates) `__attribute__((diagnose_if))` */ +#if RBIMPL_COMPILER_BEFORE(Clang, 5, 0, 0) +# /* https://bugs.llvm.org/show_bug.cgi?id=34319 */ +# define RBIMPL_ATTR_DIAGNOSE_IF(_, __, ___) /* void */ + +#elif RBIMPL_HAS_ATTRIBUTE(diagnose_if) +# define RBIMPL_ATTR_DIAGNOSE_IF(_, __, ___) \ + RBIMPL_WARNING_PUSH() \ + RBIMPL_WARNING_IGNORED(-Wgcc-compat) \ + __attribute__((__diagnose_if__(_, __, ___))) \ + RBIMPL_WARNING_POP() + +#else +# define RBIMPL_ATTR_DIAGNOSE_IF(_, __, ___) /* void */ +#endif + +#endif /* RBIMPL_ATTR_DIAGNOSE_IF_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/enum_extensibility.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/enum_extensibility.h new file mode 100644 index 0000000..eb0d5b6 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/enum_extensibility.h @@ -0,0 +1,32 @@ +#ifndef RBIMPL_ATTR_ENUM_EXTENSIBILITY_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_ENUM_EXTENSIBILITY_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief #RBIMPL_ATTR_ENUM_EXTENSIBILITY. + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((enum_extensibility))` */ +#if RBIMPL_HAS_ATTRIBUTE(enum_extensibility) +# define RBIMPL_ATTR_ENUM_EXTENSIBILITY(_) __attribute__((__enum_extensibility__(_))) +#else +# define RBIMPL_ATTR_ENUM_EXTENSIBILITY(_) /* void */ +#endif + +#endif /* RBIMPL_ATTR_ENUM_EXTENSIBILITY_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/error.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/error.h new file mode 100644 index 0000000..2ed388a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/error.h @@ -0,0 +1,32 @@ +#ifndef RBIMPL_ATTR_ERROR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_ERROR_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_ERROR. + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((error))` */ +#if RBIMPL_HAS_ATTRIBUTE(error) +# define RBIMPL_ATTR_ERROR(msg) __attribute__((__error__ msg)) +#else +# define RBIMPL_ATTR_ERROR(msg) /* void */ +#endif + +#endif /* RBIMPL_ATTR_ERROR_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/flag_enum.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/flag_enum.h new file mode 100644 index 0000000..3053d75 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/flag_enum.h @@ -0,0 +1,33 @@ +#ifndef RBIMPL_ATTR_FLAG_ENUM_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_FLAG_ENUM_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_FLAG_ENUM. + * @see https://clang.llvm.org/docs/AttributeReference.html#flag_enum + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((flag_enum)` */ +#if RBIMPL_HAS_ATTRIBUTE(flag_enum) +# define RBIMPL_ATTR_FLAG_ENUM() __attribute__((__flag_enum__)) +#else +# define RBIMPL_ATTR_FLAG_ENUM() /* void */ +#endif + +#endif /* RBIMPLATTR_FLAG_ENUM_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/forceinline.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/forceinline.h new file mode 100644 index 0000000..b7daafe --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/forceinline.h @@ -0,0 +1,40 @@ +#ifndef RBIMPL_ATTR_FORCEINLINE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_FORCEINLINE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_FORCEINLINE. + */ +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/has/attribute.h" + +/** + * Wraps (or simulates) `__forceinline`. MSVC complains on declarations like + * `static inline __forceinline void foo()`. It seems MSVC's `inline` and + * `__forceinline` are mutually exclusive. We have to mimic that behaviour for + * non-MSVC compilers. + */ +#if RBIMPL_COMPILER_SINCE(MSVC, 12, 0, 0) +# define RBIMPL_ATTR_FORCEINLINE() __forceinline +#elif RBIMPL_HAS_ATTRIBUTE(always_inline) +# define RBIMPL_ATTR_FORCEINLINE() __attribute__((__always_inline__)) inline +#else +# define RBIMPL_ATTR_FORCEINLINE() inline +#endif + +#endif /* RBIMPL_ATTR_FORCEINLINE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/format.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/format.h new file mode 100644 index 0000000..b3488ee --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/format.h @@ -0,0 +1,38 @@ +#ifndef RBIMPL_ATTR_FORMAT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_FORMAT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_FORMAT. + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((format))` */ +#if RBIMPL_HAS_ATTRIBUTE(format) +# define RBIMPL_ATTR_FORMAT(x, y, z) __attribute__((__format__(x, y, z))) +#else +# define RBIMPL_ATTR_FORMAT(x, y, z) /* void */ +#endif + +#if defined(__MINGW_PRINTF_FORMAT) +# define RBIMPL_PRINTF_FORMAT __MINGW_PRINTF_FORMAT +#else +# define RBIMPL_PRINTF_FORMAT __printf__ +#endif + +#endif /* RBIMPL_ATTR_FORMAT_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/maybe_unused.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/maybe_unused.h new file mode 100644 index 0000000..3ee8be4 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/maybe_unused.h @@ -0,0 +1,38 @@ +#ifndef RBIMPL_ATTR_MAYBE_UNUSED_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_MAYBE_UNUSED_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_MAYBE_UNUSED. + */ +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/has/c_attribute.h" +#include "ruby/internal/has/cpp_attribute.h" + +/** Wraps (or simulates) `[[maybe_unused]]` */ +#if RBIMPL_HAS_CPP_ATTRIBUTE(maybe_unused) +# define RBIMPL_ATTR_MAYBE_UNUSED() [[maybe_unused]] +#elif RBIMPL_HAS_C_ATTRIBUTE(maybe_unused) +# define RBIMPL_ATTR_MAYBE_UNUSED() [[maybe_unused]] +#elif RBIMPL_HAS_ATTRIBUTE(unused) +# define RBIMPL_ATTR_MAYBE_UNUSED() __attribute__((__unused__)) +#else +# define RBIMPL_ATTR_MAYBE_UNUSED() /* void */ +#endif + +#endif /* RBIMPL_ATTR_MAYBE_UNUSED */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/noalias.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/noalias.h new file mode 100644 index 0000000..0790ef6 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/noalias.h @@ -0,0 +1,69 @@ +#ifndef RBIMPL_ATTR_NOALIAS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_NOALIAS_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_NOALIAS. + * + * ### Q&A ### + * + * - Q: There are seemingly similar attributes named #RBIMPL_ATTR_CONST, + * #RBIMPL_ATTR_PURE, and #RBIMPL_ATTR_NOALIAS. What are the difference? + * + * - A: Allowed operations are different. + * + * - #RBIMPL_ATTR_CONST ... Functions attributed by this are not allowed to + * read/write _any_ pointers at all (there are exceptional situations + * when reading a pointer is possible but forget that; they are too + * exceptional to be useful). Just remember that everything pointer- + * related are NG. + * + * - #RBIMPL_ATTR_PURE ... Functions attributed by this can read any + * nonvolatile pointers, but no writes are allowed at all. The ability + * to read _any_ nonvolatile pointers makes it possible to mark ::VALUE- + * taking functions as being pure, as long as they are read-only. + * + * - #RBIMPL_ATTR_NOALIAS ... Can both read/write, but only through + * pointers passed to the function as parameters. This is a typical + * situation when you create a C++ non-static member function which only + * concerns `this`. No global variables are allowed to read/write. So + * this is not a super-set of being pure. If you want to read something, + * that has to be passed to the function as a pointer. ::VALUE -taking + * functions thus cannot be attributed as such. + */ +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/has/declspec_attribute.h" + +/** Wraps (or simulates) `__declspec((noalias))` */ +#if RBIMPL_COMPILER_BEFORE(Clang, 12, 0, 0) +# /* +# * `::llvm::Attribute::ArgMemOnly` was buggy before. Maybe because nobody +# * actually seriously used it. It seems they somehow mitigated the situation +# * in LLVM 12. Still not found the exact changeset which fiexed the +# * attribute, though. +# * +# * :FIXME: others (armclang, xlclang, ...) can also be affected? +# */ +# define RBIMPL_ATTR_NOALIAS() /* void */ +#elif RBIMPL_HAS_DECLSPEC_ATTRIBUTE(noalias) +# define RBIMPL_ATTR_NOALIAS() __declspec(noalias) +#else +# define RBIMPL_ATTR_NOALIAS() /* void */ +#endif + +#endif /* RBIMPL_ATTR_NOALIAS_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/nodiscard.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/nodiscard.h new file mode 100644 index 0000000..c3ae118 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/nodiscard.h @@ -0,0 +1,45 @@ +#ifndef RBIMPL_ATTR_NODISCARD_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_NODISCARD_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_NODISCARD. + */ +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/has/c_attribute.h" +#include "ruby/internal/has/cpp_attribute.h" + +/** + * Wraps (or simulates) `[[nodiscard]]`. In C++ (at least since C++20) a + * nodiscard attribute can have a message why the result shall not be ignored. + * However GCC attribute and SAL annotation cannot take them. + */ +#if RBIMPL_HAS_CPP_ATTRIBUTE(nodiscard) +# define RBIMPL_ATTR_NODISCARD() [[nodiscard]] +#elif RBIMPL_HAS_C_ATTRIBUTE(nodiscard) +# define RBIMPL_ATTR_NODISCARD() [[nodiscard]] +#elif RBIMPL_HAS_ATTRIBUTE(warn_unused_result) +# define RBIMPL_ATTR_NODISCARD() __attribute__((__warn_unused_result__)) +#elif defined(_Check_return_) +# /* Take SAL definition. */ +# define RBIMPL_ATTR_NODISCARD() _Check_return_ +#else +# define RBIMPL_ATTR_NODISCARD() /* void */ +#endif + +#endif /* RBIMPL_ATTR_NODISCARD_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/noexcept.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/noexcept.h new file mode 100644 index 0000000..ea3001d --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/noexcept.h @@ -0,0 +1,91 @@ +#ifndef RBIMPL_ATTR_NOEXCEPT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_NOEXCEPT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_NOEXCEPT. + * + * This isn't actually an attribute in C++ but who cares... + * + * Mainly due to aesthetic reasons, this one is rarely used in the project. + * But can be handy on occasions, especially when a function's noexcept-ness + * depends on its calling functions. + * + * ### Q&A ### + * + * - Q: Can a function that raises Ruby exceptions be attributed `noexcept`? + * + * - A: Yes. `noexcept` is about C++ exceptions, not Ruby's. They don't + * interface each other. You can safely attribute a function that raises + * Ruby exceptions as `noexcept`. + * + * - Q: How, then, can I assert that a function I wrote doesn't raise any Ruby + * exceptions? + * + * - A: `__attribute__((__leaf__))` is for that purpose. A function attributed + * as leaf can still throw C++ exceptions, but not Ruby's. Note however, + * that it's extremely difficult -- if not impossible -- to assert that a + * function doesn't raise any Ruby exceptions at all. Use of that + * attribute is not recommended; mere mortals can't properly use that by + * hand. + * + * - Q: Does it make sense to attribute an inline function `noexcept`? + * + * - A: I thought so before. But no, I don't think they are useful any longer. + * + * - When an inline function attributed `noexcept` actually doesn't throw + * any exceptions at all: these days I don't see any difference in + * generated assembly by adding/removing this attribute. C++ compilers + * get smarter and smarter. Today they can infer if it actually throws + * or not without any annotations by humans (correct me if I'm wrong). + * + * - When an inline function attributed `noexcepr` actually _does_ throw an + * exception: they have to call `std::terminate` then (C++ standard + * mandates so). This means exception handling routines are actually + * enforced, not omitted. This doesn't impact runtime performance (The + * Itanium C++ ABI has zero-cost exception handling), but does impact on + * generated binary size. This is bad. + */ +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/has/feature.h" + +/** Wraps (or simulates) C++11 `noexcept` */ +#if ! defined(__cplusplus) +# /* Doesn't make sense. */ +# define RBIMPL_ATTR_NOEXCEPT(_) /* void */ + +#elif RBIMPL_HAS_FEATURE(cxx_noexcept) +# define RBIMPL_ATTR_NOEXCEPT(_) noexcept(noexcept(_)) + +#elif defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__ +# define RBIMPL_ATTR_NOEXCEPT(_) noexcept(noexcept(_)) + +#elif defined(__INTEL_CXX11_MODE__) +# define RBIMPL_ATTR_NOEXCEPT(_) noexcept(noexcept(_)) + +#elif RBIMPL_COMPILER_SINCE(MSVC, 19, 0, 0) +# define RBIMPL_ATTR_NOEXCEPT(_) noexcept(noexcept(_)) + +#elif __cplusplus >= 201103L +# define RBIMPL_ATTR_NOEXCEPT(_) noexcept(noexcept(_)) + +#else +# define RBIMPL_ATTR_NOEXCEPT(_) /* void */ +#endif + +#endif /* RBIMPL_ATTR_NOEXCEPT_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/noinline.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/noinline.h new file mode 100644 index 0000000..b7605a0 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/noinline.h @@ -0,0 +1,35 @@ +#ifndef RBIMPL_ATTR_NOINLINE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_NOINLINE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_NOINLINE. + */ +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/has/declspec_attribute.h" + +/** Wraps (or simulates) `__declspec(noinline)` */ +#if RBIMPL_HAS_DECLSPEC_ATTRIBUTE(noinline) +# define RBIMPL_ATTR_NOINLINE() __declspec(noinline) +#elif RBIMPL_HAS_ATTRIBUTE(noinline) +# define RBIMPL_ATTR_NOINLINE() __attribute__((__noinline__)) +#else +# define RBIMPL_ATTR_NOINLINE() /* void */ +#endif + +#endif /* RBIMPL_ATTR_NOINLINE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/nonnull.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/nonnull.h new file mode 100644 index 0000000..778d5be --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/nonnull.h @@ -0,0 +1,34 @@ +#ifndef RBIMPL_ATTR_NONNULL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_NONNULL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_NONNULL. + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((nonnull))` */ +#if RBIMPL_HAS_ATTRIBUTE(nonnull) +# define RBIMPL_ATTR_NONNULL(list) __attribute__((__nonnull__ list)) +# define RBIMPL_NONNULL_ARG(arg) RBIMPL_ASSERT_NOTHING +#else +# define RBIMPL_ATTR_NONNULL(list) /* void */ +# define RBIMPL_NONNULL_ARG(arg) RUBY_ASSERT(arg) +#endif + +#endif /* RBIMPL_ATTR_NONNULL_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/noreturn.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/noreturn.h new file mode 100644 index 0000000..5839212 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/noreturn.h @@ -0,0 +1,48 @@ +#ifndef RBIMPL_ATTR_NORETURN_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_NORETURN_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_NORETURN. + */ +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/has/cpp_attribute.h" +#include "ruby/internal/has/declspec_attribute.h" + +/** Wraps (or simulates) `[[noreturn]]` */ +#if RBIMPL_HAS_DECLSPEC_ATTRIBUTE(noreturn) +# define RBIMPL_ATTR_NORETURN() __declspec(noreturn) + +#elif RBIMPL_HAS_ATTRIBUTE(noreturn) +# define RBIMPL_ATTR_NORETURN() __attribute__((__noreturn__)) + +#elif RBIMPL_HAS_CPP_ATTRIBUTE(noreturn) +# define RBIMPL_ATTR_NORETURN() [[noreturn]] + +#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112) +# define RBIMPL_ATTR_NORETURN() _Noreturn + +#elif defined(_Noreturn) +# /* glibc has this macro. */ +# define RBIMPL_ATTR_NORETURN() _Noreturn + +#else +# define RBIMPL_ATTR_NORETURN() /* void */ +#endif + +#endif /* RBIMPL_ATTR_NORETURN_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/pure.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/pure.h new file mode 100644 index 0000000..015711b --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/pure.h @@ -0,0 +1,43 @@ +#ifndef RBIMPL_ATTR_PURE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_PURE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_PURE. + */ +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/has/attribute.h" +#include "ruby/assert.h" + +/** Wraps (or simulates) `__attribute__((pure))` */ +#if RBIMPL_HAS_ATTRIBUTE(pure) +# define RBIMPL_ATTR_PURE() __attribute__((__pure__)) +#elif RBIMPL_COMPILER_SINCE(SunPro, 5, 10, 0) +# define RBIMPL_ATTR_PURE() _Pragma("does_not_write_global_data") +#else +# define RBIMPL_ATTR_PURE() /* void */ +#endif + +/** Enables #RBIMPL_ATTR_PURE if and only if. ! #RUBY_DEBUG. */ +#if !RUBY_DEBUG +# define RBIMPL_ATTR_PURE_UNLESS_DEBUG() RBIMPL_ATTR_PURE() +#else +# define RBIMPL_ATTR_PURE_UNLESS_DEBUG() /* void */ +#endif + +#endif /* RBIMPL_ATTR_PURE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/restrict.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/restrict.h new file mode 100644 index 0000000..e391041 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/restrict.h @@ -0,0 +1,44 @@ +#ifndef RBIMPL_ATTR_RESTRICT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_RESTRICT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_RESTRICT. + */ +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/has/attribute.h" + +/* :FIXME: config.h includes conflicting `#define restrict`. MSVC can be + * detected using `RBIMPL_COMPILER_SINCE()`, but Clang & family cannot use + * `__has_declspec_attribute()` which involves macro substitution. */ + +/** Wraps (or simulates) `__declspec(restrict)` */ +#if RBIMPL_COMPILER_SINCE(MSVC, 14, 0, 0) +# define RBIMPL_ATTR_RESTRICT() __declspec(re ## strict) + +#elif RBIMPL_HAS_ATTRIBUTE(malloc) +# define RBIMPL_ATTR_RESTRICT() __attribute__((__malloc__)) + +#elif RBIMPL_COMPILER_SINCE(SunPro, 5, 10, 0) +# define RBIMPL_ATTR_RESTRICT() _Pragma("returns_new_memory") + +#else +# define RBIMPL_ATTR_RESTRICT() /* void */ +#endif + +#endif /* RBIMPL_ATTR_RESTRICT_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/returns_nonnull.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/returns_nonnull.h new file mode 100644 index 0000000..5d6f1d1 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/returns_nonnull.h @@ -0,0 +1,37 @@ +#ifndef RBIMPL_ATTR_RETURNS_NONNULL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_RETURNS_NONNULL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_RETURNS_NONNULL. + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((returns_nonnull))` */ +#if defined(_Ret_nonnull_) +# /* Take SAL definition. */ +# define RBIMPL_ATTR_RETURNS_NONNULL() _Ret_nonnull_ + +#elif RBIMPL_HAS_ATTRIBUTE(returns_nonnull) +# define RBIMPL_ATTR_RETURNS_NONNULL() __attribute__((__returns_nonnull__)) + +#else +# define RBIMPL_ATTR_RETURNS_NONNULL() /* void */ +#endif + +#endif /* RBIMPL_ATTR_RETURNS_NONNULL_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/warning.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/warning.h new file mode 100644 index 0000000..e5ced26 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/warning.h @@ -0,0 +1,32 @@ +#ifndef RBIMPL_ATTR_WARNING_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_WARNING_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_WARNING. + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((warning))` */ +#if RBIMPL_HAS_ATTRIBUTE(warning) +# define RBIMPL_ATTR_WARNING(msg) __attribute__((__warning__ msg)) +#else +# define RBIMPL_ATTR_WARNING(msg) /* void */ +#endif + +#endif /* RBIMPL_ATTR_WARNING_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/weakref.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/weakref.h new file mode 100644 index 0000000..f118bb6 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/attr/weakref.h @@ -0,0 +1,32 @@ +#ifndef RBIMPL_ATTR_WEAKREF_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_WEAKREF_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_WEAKREF. + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((weakref))` */ +#if RBIMPL_HAS_ATTRIBUTE(weakref) +# define RBIMPL_ATTR_WEAKREF(sym) __attribute__((__weakref__(# sym))) +#else +# define RBIMPL_ATTR_WEAKREF(sym) /* void */ +#endif + +#endif /* RBIMPL_ATTR_WEAKREF_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/cast.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/cast.h new file mode 100644 index 0000000..a31fddb --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/cast.h @@ -0,0 +1,50 @@ +#ifndef RBIMPL_CAST_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_CAST_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines RBIMPL_CAST. + * + * This casting macro makes sense only inside of other macros that are part of + * public headers. They could be used from C++, and C-style casts could issue + * warnings. Ruby internals are pure C so they should not bother. + */ +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/has/warning.h" +#include "ruby/internal/warning_push.h" + +#if ! defined(__cplusplus) +# define RBIMPL_CAST(expr) (expr) + +#elif RBIMPL_COMPILER_SINCE(GCC, 4, 6, 0) +# /* g++ has -Wold-style-cast since 1997 or so, but its _Pragma is broken. */ +# /* See https://gcc.godbolt.org/z/XWhU6J */ +# define RBIMPL_CAST(expr) (expr) +# pragma GCC diagnostic ignored "-Wold-style-cast" + +#elif RBIMPL_HAS_WARNING("-Wold-style-cast") +# define RBIMPL_CAST(expr) \ + RBIMPL_WARNING_PUSH() \ + RBIMPL_WARNING_IGNORED(-Wold-style-cast) \ + (expr) \ + RBIMPL_WARNING_POP() + +#else +# define RBIMPL_CAST(expr) (expr) +#endif + +#endif /* RBIMPL_CAST_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is.h new file mode 100644 index 0000000..7070b03 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is.h @@ -0,0 +1,45 @@ +#ifndef RBIMPL_COMPILER_IS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_COMPILER_IS_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_COMPILER_IS. + */ + +/** + * @brief Checks if the compiler is of given brand. + * @param cc Compiler brand, like `MSVC`. + * @retval true It is. + * @retval false It isn't. + */ +#define RBIMPL_COMPILER_IS(cc) RBIMPL_COMPILER_IS_ ## cc + +#include "ruby/internal/compiler_is/apple.h" +#include "ruby/internal/compiler_is/clang.h" +#include "ruby/internal/compiler_is/gcc.h" +#include "ruby/internal/compiler_is/intel.h" +#include "ruby/internal/compiler_is/msvc.h" +#include "ruby/internal/compiler_is/sunpro.h" +/* :TODO: Other possible compilers to support: + * + * - IBM XL: recent XL are clang-backended so some tweaks like we do for + * Apple's might be needed. + * + * - ARM's armclang: ditto, it can be clang-backended. */ + +#endif /* RBIMPL_COMPILER_IS_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/apple.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/apple.h new file mode 100644 index 0000000..a81f1f2 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/apple.h @@ -0,0 +1,40 @@ +#ifndef RBIMPL_COMPILER_IS_APPLE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_COMPILER_IS_APPLE_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines RBIMPL_COMPILER_IS_Apple. + * + * Apple ships clang. Problem is, its `__clang_major__` etc. are not the + * upstream LLVM version, but XCode's. We have to think Apple's is distinct + * from LLVM's, when it comes to compiler detection business in this header + * file. + */ +#if ! defined(__clang__) +# define RBIMPL_COMPILER_IS_Apple 0 + +#elif ! defined(__apple_build_version__) +# define RBIMPL_COMPILER_IS_Apple 0 + +#else +# define RBIMPL_COMPILER_IS_Apple 1 +# define RBIMPL_COMPILER_VERSION_MAJOR __clang_major__ +# define RBIMPL_COMPILER_VERSION_MINOR __clang_minor__ +# define RBIMPL_COMPILER_VERSION_PATCH __clang_patchlevel__ +#endif + +#endif /* RBIMPL_COMPILER_IS_APPLE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/clang.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/clang.h new file mode 100644 index 0000000..169ff78 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/clang.h @@ -0,0 +1,37 @@ +#ifndef RBIMPL_COMPILER_IS_CLANG_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_COMPILER_IS_CLANG_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines RBIMPL_COMPILER_IS_Clang. + */ +#include "ruby/internal/compiler_is/apple.h" + +#if ! defined(__clang__) +# define RBIMPL_COMPILER_IS_Clang 0 + +#elif RBIMPL_COMPILER_IS(Apple) +# define RBIMPL_COMPILER_IS_Clang 0 + +#else +# define RBIMPL_COMPILER_IS_Clang 1 +# define RBIMPL_COMPILER_VERSION_MAJOR __clang_major__ +# define RBIMPL_COMPILER_VERSION_MINOR __clang_minor__ +# define RBIMPL_COMPILER_VERSION_PATCH __clang_patchlevel__ +#endif + +#endif /* RBIMPL_COMPILER_IS_CLANG_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/gcc.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/gcc.h new file mode 100644 index 0000000..accc80e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/gcc.h @@ -0,0 +1,45 @@ +#ifndef RBIMPL_COMPILER_IS_GCC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_COMPILER_IS_GCC_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines RBIMPL_COMPILER_IS_GCC. + */ +#include "ruby/internal/compiler_is/apple.h" +#include "ruby/internal/compiler_is/clang.h" +#include "ruby/internal/compiler_is/intel.h" + +#if ! defined(__GNUC__) +# define RBIMPL_COMPILER_IS_GCC 0 + +#elif RBIMPL_COMPILER_IS(Apple) +# define RBIMPL_COMPILER_IS_GCC 0 + +#elif RBIMPL_COMPILER_IS(Clang) +# define RBIMPL_COMPILER_IS_GCC 0 + +#elif RBIMPL_COMPILER_IS(Intel) +# define RBIMPL_COMPILER_IS_GCC 0 + +#else +# define RBIMPL_COMPILER_IS_GCC 1 +# define RBIMPL_COMPILER_VERSION_MAJOR __GNUC__ +# define RBIMPL_COMPILER_VERSION_MINOR __GNUC_MINOR__ +# define RBIMPL_COMPILER_VERSION_PATCH __GNUC_PATCHLEVEL__ +#endif + +#endif /* RBIMPL_COMPILER_IS_GCC_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/intel.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/intel.h new file mode 100644 index 0000000..377946a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/intel.h @@ -0,0 +1,40 @@ +#ifndef RBIMPL_COMPILER_IS_INTEL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_COMPILER_IS_INTEL_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines RBIMPL_COMPILER_IS_Intel. + */ +#if ! defined(__INTEL_COMPILER) +# define RBIMPL_COMPILER_IS_Intel 0 + +#elif ! defined(__INTEL_COMPILER_UPDATE) +# define RBIMPL_COMPILER_IS_Intel 1 +# /* __INTEL_COMPILER = XXYZ */ +# define RBIMPL_COMPILER_VERSION_MAJOR (__INTEL_COMPILER / 100) +# define RBIMPL_COMPILER_VERSION_MINOR (__INTEL_COMPILER % 100 / 10) +# define RBIMPL_COMPILER_VERSION_PATCH (__INTEL_COMPILER % 10) + +#else +# define RBIMPL_COMPILER_IS_Intel 1 +# /* __INTEL_COMPILER = XXYZ */ +# define RBIMPL_COMPILER_VERSION_MAJOR (__INTEL_COMPILER / 100) +# define RBIMPL_COMPILER_VERSION_MINOR (__INTEL_COMPILER % 100 / 10) +# define RBIMPL_COMPILER_VERSION_PATCH __INTEL_COMPILER_UPDATE +#endif + +#endif /* RBIMPL_COMPILER_IS_INTEL_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/msvc.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/msvc.h new file mode 100644 index 0000000..8a864ea --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/msvc.h @@ -0,0 +1,56 @@ +#ifndef RBIMPL_COMPILER_IS_MSVC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_COMPILER_IS_MSVC_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines RBIMPL_COMPILER_IS_MSVC. + */ +#include "ruby/internal/compiler_is/clang.h" +#include "ruby/internal/compiler_is/intel.h" + +#if ! defined(_MSC_VER) +# define RBIMPL_COMPILER_IS_MSVC 0 + +#elif RBIMPL_COMPILER_IS(Clang) +# define RBIMPL_COMPILER_IS_MSVC 0 + +#elif RBIMPL_COMPILER_IS(Intel) +# define RBIMPL_COMPILER_IS_MSVC 0 + +#elif _MSC_VER >= 1400 +# define RBIMPL_COMPILER_IS_MSVC 1 +# /* _MSC_FULL_VER = XXYYZZZZZ */ +# define RBIMPL_COMPILER_VERSION_MAJOR (_MSC_FULL_VER / 10000000) +# define RBIMPL_COMPILER_VERSION_MINOR (_MSC_FULL_VER % 10000000 / 100000) +# define RBIMPL_COMPILER_VERSION_PATCH (_MSC_FULL_VER % 100000) + +#elif defined(_MSC_FULL_VER) +# define RBIMPL_COMPILER_IS_MSVC 1 +# /* _MSC_FULL_VER = XXYYZZZZ */ +# define RBIMPL_COMPILER_VERSION_MAJOR (_MSC_FULL_VER / 1000000) +# define RBIMPL_COMPILER_VERSION_MINOR (_MSC_FULL_VER % 1000000 / 10000) +# define RBIMPL_COMPILER_VERSION_PATCH (_MSC_FULL_VER % 10000) + +#else +# define RBIMPL_COMPILER_IS_MSVC 1 +# /* _MSC_VER = XXYY */ +# define RBIMPL_COMPILER_VERSION_MAJOR (_MSC_VER / 100) +# define RBIMPL_COMPILER_VERSION_MINOR (_MSC_VER % 100) +# define RBIMPL_COMPILER_VERSION_PATCH 0 +#endif + +#endif /* RBIMPL_COMPILER_IS_MSVC_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/sunpro.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/sunpro.h new file mode 100644 index 0000000..c11c845 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_is/sunpro.h @@ -0,0 +1,54 @@ +#ifndef RBIMPL_COMPILER_IS_SUNPRO_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_COMPILER_IS_SUNPRO_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines RBIMPL_COMPILER_IS_SunPro. + */ +#if ! (defined(__SUNPRO_C) || defined(__SUNPRO_CC)) +# define RBIMPL_COMPILER_IS_SunPro 0 + +#elif defined(__SUNPRO_C) && __SUNPRO_C >= 0x5100 +# define RBIMPL_COMPILER_IS_SunPro 1 +# /* __SUNPRO_C = 0xXYYZ */ +# define RBIMPL_COMPILER_VERSION_MAJOR (__SUNPRO_C >> 12) +# define RBIMPL_COMPILER_VERSION_MINOR ((__SUNPRO_C >> 8 & 0xF) * 10 + (__SUNPRO_C >> 4 & 0xF)) +# define RBIMPL_COMPILER_VERSION_PATCH (__SUNPRO_C & 0xF) + +#elif defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x5100 +# define RBIMPL_COMPILER_IS_SunPro 1 +# /* __SUNPRO_CC = 0xXYYZ */ +# define RBIMPL_COMPILER_VERSION_MAJOR (__SUNPRO_CC >> 12) +# define RBIMPL_COMPILER_VERSION_MINOR ((__SUNPRO_CC >> 8 & 0xF) * 10 + (__SUNPRO_CC >> 4 & 0xF)) +# define RBIMPL_COMPILER_VERSION_PATCH (__SUNPRO_CC & 0xF) + +#elif defined(__SUNPRO_C) +# define RBIMPL_COMPILER_IS_SunPro 1 +# /* __SUNPRO_C = 0xXYZ */ +# define RBIMPL_COMPILER_VERSION_MAJOR (__SUNPRO_C >> 8) +# define RBIMPL_COMPILER_VERSION_MINOR (__SUNPRO_C >> 4 & 0xF) +# define RBIMPL_COMPILER_VERSION_PATCH (__SUNPRO_C & 0xF) + +#else +# define RBIMPL_COMPILER_IS_SunPro 1 +# /* __SUNPRO_CC = 0xXYZ */ +# define RBIMPL_COMPILER_VERSION_MAJOR (__SUNPRO_CC >> 8) +# define RBIMPL_COMPILER_VERSION_MINOR (__SUNPRO_CC >> 4 & 0xF) +# define RBIMPL_COMPILER_VERSION_PATCH (__SUNPRO_CC & 0xF) +#endif + +#endif /* RBIMPL_COMPILER_IS_SUNPRO_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_since.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_since.h new file mode 100644 index 0000000..1929032 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/compiler_since.h @@ -0,0 +1,61 @@ +#ifndef RBIMPL_COMPILER_SINCE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_COMPILER_SINCE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_COMPILER_SINCE. + */ +#include "ruby/internal/compiler_is.h" + +/** + * @brief Checks if the compiler is of given brand and is newer than or equal + * to the passed version. + * @param cc Compiler brand, like `MSVC`. + * @param x Major version. + * @param y Minor version. + * @param z Patchlevel. + * @retval true cc >= x.y.z. + * @retval false otherwise. + */ +#define RBIMPL_COMPILER_SINCE(cc, x, y, z) \ + (RBIMPL_COMPILER_IS(cc) && \ + ((RBIMPL_COMPILER_VERSION_MAJOR > (x)) || \ + ((RBIMPL_COMPILER_VERSION_MAJOR == (x)) && \ + ((RBIMPL_COMPILER_VERSION_MINOR > (y)) || \ + ((RBIMPL_COMPILER_VERSION_MINOR == (y)) && \ + (RBIMPL_COMPILER_VERSION_PATCH >= (z))))))) + +/** + * @brief Checks if the compiler is of given brand and is older than the + * passed version. + * @param cc Compiler brand, like `MSVC`. + * @param x Major version. + * @param y Minor version. + * @param z Patchlevel. + * @retval true cc < x.y.z. + * @retval false otherwise. + */ +#define RBIMPL_COMPILER_BEFORE(cc, x, y, z) \ + (RBIMPL_COMPILER_IS(cc) && \ + ((RBIMPL_COMPILER_VERSION_MAJOR < (x)) || \ + ((RBIMPL_COMPILER_VERSION_MAJOR == (x)) && \ + ((RBIMPL_COMPILER_VERSION_MINOR < (y)) || \ + ((RBIMPL_COMPILER_VERSION_MINOR == (y)) && \ + (RBIMPL_COMPILER_VERSION_PATCH < (z))))))) + +#endif /* RBIMPL_COMPILER_SINCE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/config.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/config.h new file mode 100644 index 0000000..aa63376 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/config.h @@ -0,0 +1,155 @@ +#ifndef RBIMPL_CONFIG_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_CONFIG_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Thin wrapper to ruby/config.h + */ +#include "ruby/config.h" + +#ifdef RUBY_EXTCONF_H +# include RUBY_EXTCONF_H +#endif + +#include "ruby/internal/compiler_since.h" + +#undef HAVE_PROTOTYPES +#define HAVE_PROTOTYPES 1 + +#undef HAVE_STDARG_PROTOTYPES +#define HAVE_STDARG_PROTOTYPES 1 + +#undef TOKEN_PASTE +#define TOKEN_PASTE(x,y) x##y + +#if defined(__cplusplus) +#/* __builtin_choose_expr and __builtin_types_compatible aren't available +# * on C++. See https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html */ +# undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P +# undef HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P + +/* HAVE_VA_ARGS_MACRO is for C. C++ situations might be different. */ +# undef HAVE_VA_ARGS_MACRO +# if __cplusplus >= 201103L +# define HAVE_VA_ARGS_MACRO +# elif defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__ +# define HAVE_VA_ARGS_MACRO +# elif defined(__INTEL_CXX11_MODE__) +# define HAVE_VA_ARGS_MACRO +# elif RBIMPL_COMPILER_SINCE(MSVC, 16, 0, 0) +# define HAVE_VA_ARGS_MACRO +# else +# /* NG, not known. */ +# endif +#endif + +#if RBIMPL_COMPILER_BEFORE(GCC, 4, 9, 0) +# /* See https://bugs.ruby-lang.org/issues/14221 */ +# undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P +#endif + +#if RBIMPL_COMPILER_BEFORE(GCC, 5, 0, 0) +# /* GCC 4.9.2 reportedly has this feature and is broken. The function is not +# * officially documented below. Seems we should not use it. +# * https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/Other-Builtins.html */ +# undef HAVE_BUILTIN___BUILTIN_ALLOCA_WITH_ALIGN +#endif + +#if defined(__SUNPRO_CC) +# /* Oracle Developer Studio 12.5: GCC compatibility guide says it supports +# * statement expressions. But to our knowledge they support the extension +# * only for C and not for C++. Prove me wrong. Am happy to support them if +# * there is a way. */ +# undef HAVE_STMT_AND_DECL_IN_EXPR +#endif + +#ifndef STRINGIZE0 +# define STRINGIZE(expr) STRINGIZE0(expr) +# define STRINGIZE0(expr) #expr +#endif + +#ifdef AC_APPLE_UNIVERSAL_BUILD +# undef WORDS_BIGENDIAN +# ifdef __BIG_ENDIAN__ +# define WORDS_BIGENDIAN +# endif +#endif + +#ifndef DLEXT_MAXLEN +# define DLEXT_MAXLEN 4 +#endif + +#ifndef RUBY_PLATFORM +# define RUBY_PLATFORM "unknown-unknown" +#endif + +#ifdef UNALIGNED_WORD_ACCESS +# /* Take that. */ +#elif defined(__i386) +# define UNALIGNED_WORD_ACCESS 1 +#elif defined(__i386__) +# define UNALIGNED_WORD_ACCESS 1 +#elif defined(_M_IX86) +# define UNALIGNED_WORD_ACCESS 1 +#elif defined(__x86_64) +# define UNALIGNED_WORD_ACCESS 1 +#elif defined(__x86_64__) +# define UNALIGNED_WORD_ACCESS 1 +#elif defined(_M_AMD64) +# define UNALIGNED_WORD_ACCESS 1 +#elif defined(__powerpc64__) +# define UNALIGNED_WORD_ACCESS 1 +#elif defined(__POWERPC__) // __POWERPC__ is defined for ppc and ppc64 on Darwin +# define UNALIGNED_WORD_ACCESS 1 +#elif defined(__aarch64__) +# define UNALIGNED_WORD_ACCESS 1 +#elif defined(__mc68020__) +# define UNALIGNED_WORD_ACCESS 1 +#else +# define UNALIGNED_WORD_ACCESS 0 +#endif + +/* Detection of __VA_OPT__ */ +#if ! defined(HAVE_VA_ARGS_MACRO) +# undef HAVE___VA_OPT__ + +#elif defined(__cplusplus) +# if __cplusplus > 201703L +# define HAVE___VA_OPT__ +# else +# undef HAVE___VA_OPT__ +# endif +#else +# /* Idea taken from: https://stackoverflow.com/a/48045656 */ +# define RBIMPL_TEST3(q, w, e, ...) e +# define RBIMPL_TEST2(...) RBIMPL_TEST3(__VA_OPT__(,),1,0,0) +# define RBIMPL_TEST1() RBIMPL_TEST2("ruby") +# if RBIMPL_TEST1() +# define HAVE___VA_OPT__ +# else +# undef HAVE___VA_OPT__ +# endif +# undef RBIMPL_TEST1 +# undef RBIMPL_TEST2 +# undef RBIMPL_TEST3 +#endif /* HAVE_VA_ARGS_MACRO */ + +#ifndef USE_RVARGC +# define USE_RVARGC 1 +#endif + +#endif /* RBIMPL_CONFIG_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/constant_p.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/constant_p.h new file mode 100644 index 0000000..92d69cb --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/constant_p.h @@ -0,0 +1,38 @@ +#ifndef RBIMPL_CONSTANT_P_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_CONSTANT_P_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_CONSTANT_P. + * + * Note that __builtin_constant_p can be applicable inside of inline functions, + * according to GCC manual. Clang lacks that feature, though. + * + * @see https://bugs.llvm.org/show_bug.cgi?id=4898 + * @see https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html + */ +#include "ruby/internal/has/builtin.h" + +/** Wraps (or simulates) `__builtin_constant_p` */ +#if RBIMPL_HAS_BUILTIN(__builtin_constant_p) +# define RBIMPL_CONSTANT_P(expr) __builtin_constant_p(expr) +#else +# define RBIMPL_CONSTANT_P(expr) 0 +#endif + +#endif /* RBIMPL_CONSTANT_P_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/core.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core.h new file mode 100644 index 0000000..3f4561c --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core.h @@ -0,0 +1,35 @@ +#ifndef RBIMPL_CORE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_CORE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Core data structures, definitions and manipulations. + */ +#include "ruby/internal/core/rarray.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/core/rbignum.h" +#include "ruby/internal/core/rclass.h" +#include "ruby/internal/core/rdata.h" +#include "ruby/internal/core/rfile.h" +#include "ruby/internal/core/rhash.h" +#include "ruby/internal/core/robject.h" +#include "ruby/internal/core/rregexp.h" +#include "ruby/internal/core/rstring.h" +#include "ruby/internal/core/rstruct.h" +#include "ruby/internal/core/rtypeddata.h" +#endif /* RBIMPL_CORE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rarray.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rarray.h new file mode 100644 index 0000000..c3bb40b --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rarray.h @@ -0,0 +1,585 @@ +#ifndef RBIMPL_RARRAY_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RARRAY_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines struct ::RArray. + */ +#include "ruby/internal/arithmetic/long.h" +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/constexpr.h" +#include "ruby/internal/attr/maybe_unused.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/fl_type.h" +#include "ruby/internal/rgengc.h" +#include "ruby/internal/stdbool.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" +#include "ruby/assert.h" + +/** + * @private + * @warning Do not touch this macro. + * @warning It is an implementation detail. + * @warning The value of this macro must match for ruby itself and all + * extension libraries, otherwise serious memory corruption shall + * occur. + */ +#ifndef USE_TRANSIENT_HEAP +# define USE_TRANSIENT_HEAP 1 +#endif + +/** + * Convenient casting macro. + * + * @param obj An object, which is in fact an ::RArray. + * @return The passed object casted to ::RArray. + */ +#define RARRAY(obj) RBIMPL_CAST((struct RArray *)(obj)) +/** @cond INTERNAL_MACRO */ +#define RARRAY_EMBED_FLAG RARRAY_EMBED_FLAG +#define RARRAY_EMBED_LEN_MASK RARRAY_EMBED_LEN_MASK +#define RARRAY_EMBED_LEN_MAX RARRAY_EMBED_LEN_MAX +#define RARRAY_EMBED_LEN_SHIFT RARRAY_EMBED_LEN_SHIFT +#if USE_TRANSIENT_HEAP +# define RARRAY_TRANSIENT_FLAG RARRAY_TRANSIENT_FLAG +#else +# define RARRAY_TRANSIENT_FLAG 0 +#endif +/** @endcond */ +#define RARRAY_LEN rb_array_len /**< @alias{rb_array_len} */ +#define RARRAY_CONST_PTR rb_array_const_ptr /**< @alias{rb_array_const_ptr} */ +#define RARRAY_CONST_PTR_TRANSIENT rb_array_const_ptr_transient /**< @alias{rb_array_const_ptr_transient} */ + +/** @cond INTERNAL_MACRO */ +#if defined(__fcc__) || defined(__fcc_version) || \ + defined(__FCC__) || defined(__FCC_VERSION) +/* workaround for old version of Fujitsu C Compiler (fcc) */ +# define FIX_CONST_VALUE_PTR(x) ((const VALUE *)(x)) +#else +# define FIX_CONST_VALUE_PTR(x) (x) +#endif + +#define RARRAY_EMBED_LEN RARRAY_EMBED_LEN +#define RARRAY_LENINT RARRAY_LENINT +#define RARRAY_TRANSIENT_P RARRAY_TRANSIENT_P +#define RARRAY_ASET RARRAY_ASET +#define RARRAY_PTR RARRAY_PTR +/** @endcond */ + +/** + * @private + * + * Bits that you can set to ::RBasic::flags. + * + * @warning These enums are not the only bits we use for arrays. + * + * @internal + * + * Unlike strings, flag usages for arrays are scattered across the entire + * source codes. @shyouhei doesn't know the complete list. But what is listed + * here is at least incomplete. + */ +enum ruby_rarray_flags { + /** + * This flag has something to do with memory footprint. If the array is + * "small" enough, ruby tries to be creative to abuse padding bits of + * struct ::RArray for storing its contents. This flag denotes that + * situation. + * + * @warning This bit has to be considered read-only. Setting/clearing + * this bit without corresponding fix up must cause immediate + * SEGV. Also, internal structures of an array change + * dynamically and transparently throughout of its lifetime. + * Don't assume it being persistent. + * + * @internal + * + * 3rd parties must not be aware that there even is more than one way to + * store array elements. It was a bad idea to expose this to them. + */ + RARRAY_EMBED_FLAG = RUBY_FL_USER1, + + /* RUBY_FL_USER2 is for ELTS_SHARED */ + + /** + * When an array employs embedded strategy (see ::RARRAY_EMBED_FLAG), these + * bits are used to store the number of elements actually filled into + * ::RArray::ary. + * + * @internal + * + * 3rd parties must not be aware that there even is more than one way to + * store array elements. It was a bad idea to expose this to them. + */ +#if USE_RVARGC + RARRAY_EMBED_LEN_MASK = RUBY_FL_USER9 | RUBY_FL_USER8 | RUBY_FL_USER7 | RUBY_FL_USER6 | + RUBY_FL_USER5 | RUBY_FL_USER4 | RUBY_FL_USER3 +#else + RARRAY_EMBED_LEN_MASK = RUBY_FL_USER4 | RUBY_FL_USER3 +#endif + +#if USE_TRANSIENT_HEAP + , + + /** + * This flag has something to do with an array's "transiency". A transient + * array is an array of young generation (of generational GC), who stores + * its elements inside of dedicated memory pages called a transient heap. + * Not every young generation share that storage scheme, but elder + * generations must no join. + * + * @internal + * + * 3rd parties must not be aware that there even is more than one way to + * store array elements. It was a bad idea to expose this to them. + */ + RARRAY_TRANSIENT_FLAG = RUBY_FL_USER13 +#endif +}; + +/** + * This is an enum because GDB wants it (rather than a macro). People need not + * bother. + */ +enum ruby_rarray_consts { + /** Where ::RARRAY_EMBED_LEN_MASK resides. */ + RARRAY_EMBED_LEN_SHIFT = RUBY_FL_USHIFT + 3 + +#if !USE_RVARGC + , + + /** Max possible number elements that can be embedded. */ + RARRAY_EMBED_LEN_MAX = RBIMPL_EMBED_LEN_MAX_OF(VALUE) +#endif +}; + +/** Ruby's array. */ +struct RArray { + + /** Basic part, including flags and class. */ + struct RBasic basic; + + /** Array's specific fields. */ + union { + + /** + * Arrays that use separated memory region for elements use this + * pattern. + */ + struct { + + /** Number of elements of the array. */ + long len; + + /** Auxiliary info. */ + union { + + /** + * Capacity of `*ptr`. A continuous memory region of at least + * `capa` elements is expected to exist at `*ptr`. This can be + * bigger than `len`. + */ + long capa; + + /** + * Parent of the array. Nowadays arrays can share their + * backend memory regions each other, constructing gigantic + * nest of objects. This situation is called "shared", and + * this is the field to control such properties. + */ +#if defined(__clang__) /* <- clang++ is sane */ || \ + !defined(__cplusplus) /* <- C99 is sane */ || \ + (__cplusplus > 199711L) /* <- C++11 is sane */ + const +#endif + VALUE shared_root; + } aux; + + /** + * Pointer to the C array that holds the elements of the array. In + * the old days each array had dedicated memory regions. That is + * no longer true today, but there still are arrays of such + * properties. This field could be used to point such things. + */ + const VALUE *ptr; + } heap; + + /** + * Embedded elements. When an array is short enough, it uses this area + * to store its elements. In this case the length is encoded into the + * flags. + */ +#if USE_RVARGC + /* This is a length 1 array because: + * 1. GCC has a bug that does not optimize C flexible array members + * (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102452) + * 2. Zero length arrays are not supported by all compilers + */ + const VALUE ary[1]; +#else + const VALUE ary[RARRAY_EMBED_LEN_MAX]; +#endif + } as; +}; + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * @private + * + * Declares a section of code where raw pointers are used. This is an + * implementation detail of #RARRAY_PTR_USE. People don't use it directly. + * + * @param[in] ary An object of ::RArray. + * @return `ary`'s backend C array. + */ +VALUE *rb_ary_ptr_use_start(VALUE ary); + +/** + * @private + * + * Declares an end of a section formerly started by rb_ary_ptr_use_start(). + * This is an implementation detail of #RARRAY_PTR_USE. People don't use it + * directly. + * + * @param[in] a An object of ::RArray. + */ +void rb_ary_ptr_use_end(VALUE a); + +#if USE_TRANSIENT_HEAP +/** + * Destructively converts an array of transient backend into ordinal one. + * + * @param[out] a An object of ::RArray. + * @pre `a` must be a transient array. + * @post `a` gets out of transient heap, destructively. + */ +void rb_ary_detransient(VALUE a); +#endif +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries the length of the array. + * + * @param[in] ary Array in question. + * @return Its number of elements. + * @pre `ary` must be an instance of ::RArray, and must has its + * ::RARRAY_EMBED_FLAG flag set. + * + * @internal + * + * This was a macro before. It was inevitable to be public, since macros are + * global constructs. But should it be forever? Now that it is a function, + * @shyouhei thinks it could just be eliminated, hidden into implementation + * details. + */ +static inline long +RARRAY_EMBED_LEN(VALUE ary) +{ + RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY); + RBIMPL_ASSERT_OR_ASSUME(RB_FL_ANY_RAW(ary, RARRAY_EMBED_FLAG)); + + VALUE f = RBASIC(ary)->flags; + f &= RARRAY_EMBED_LEN_MASK; + f >>= RARRAY_EMBED_LEN_SHIFT; + return RBIMPL_CAST((long)f); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +/** + * Queries the length of the array. + * + * @param[in] a Array in question. + * @return Its number of elements. + * @pre `a` must be an instance of ::RArray. + */ +static inline long +rb_array_len(VALUE a) +{ + RBIMPL_ASSERT_TYPE(a, RUBY_T_ARRAY); + + if (RB_FL_ANY_RAW(a, RARRAY_EMBED_FLAG)) { + return RARRAY_EMBED_LEN(a); + } + else { + return RARRAY(a)->as.heap.len; + } +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Identical to rb_array_len(), except it differs for the return type. + * + * @param[in] ary Array in question. + * @exception rb_eRangeError Too long. + * @return Its number of elements. + * @pre `ary` must be an instance of ::RArray. + * + * @internal + * + * This API seems redundant but has actual usages. + */ +static inline int +RARRAY_LENINT(VALUE ary) +{ + return rb_long2int(RARRAY_LEN(ary)); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries if the array is a transient array. + * + * @param[in] ary Array in question. + * @retval true Yes it is. + * @retval false No it isn't. + * @pre `ary` must be an instance of ::RArray. + * + * @internal + * + * @shyouhei doesn't understand the benefit of this function called from + * extension libraries. + */ +static inline bool +RARRAY_TRANSIENT_P(VALUE ary) +{ + RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY); + +#if USE_TRANSIENT_HEAP + return RB_FL_ANY_RAW(ary, RARRAY_TRANSIENT_FLAG); +#else + return false; +#endif +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +/** + * @private + * + * This is an implementation detail of RARRAY_PTR(). People do not use it + * directly. + * + * @param[in] a An object of ::RArray. + * @return Its backend storage. + */ +static inline const VALUE * +rb_array_const_ptr_transient(VALUE a) +{ + RBIMPL_ASSERT_TYPE(a, RUBY_T_ARRAY); + + if (RB_FL_ANY_RAW(a, RARRAY_EMBED_FLAG)) { + return FIX_CONST_VALUE_PTR(RARRAY(a)->as.ary); + } + else { + return FIX_CONST_VALUE_PTR(RARRAY(a)->as.heap.ptr); + } +} + +#if ! USE_TRANSIENT_HEAP +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +#endif +/** + * @private + * + * This is an implementation detail of RARRAY_PTR(). People do not use it + * directly. + * + * @param[in] a An object of ::RArray. + * @return Its backend storage. + * @post `a` is not a transient array. + */ +static inline const VALUE * +rb_array_const_ptr(VALUE a) +{ + RBIMPL_ASSERT_TYPE(a, RUBY_T_ARRAY); + +#if USE_TRANSIENT_HEAP + if (RARRAY_TRANSIENT_P(a)) { + rb_ary_detransient(a); + } +#endif + return rb_array_const_ptr_transient(a); +} + +/** + * @private + * + * This is an implementation detail of #RARRAY_PTR_USE. People do not use it + * directly. + * + * @param[in] a An object of ::RArray. + * @param[in] allow_transient Whether `a` can be transient or not. + * @return Its backend storage. + * @post `a` is not a transient array unless `allow_transient`. + */ +static inline VALUE * +rb_array_ptr_use_start(VALUE a, + RBIMPL_ATTR_MAYBE_UNUSED() + int allow_transient) +{ + RBIMPL_ASSERT_TYPE(a, RUBY_T_ARRAY); + +#if USE_TRANSIENT_HEAP + if (!allow_transient) { + if (RARRAY_TRANSIENT_P(a)) { + rb_ary_detransient(a); + } + } +#endif + + return rb_ary_ptr_use_start(a); +} + +/** + * @private + * + * This is an implementation detail of #RARRAY_PTR_USE. People do not use it + * directly. + * + * @param[in] a An object of ::RArray. + * @param[in] allow_transient Whether `a` can be transient or not. + */ +static inline void +rb_array_ptr_use_end(VALUE a, + RBIMPL_ATTR_MAYBE_UNUSED() + int allow_transient) +{ + RBIMPL_ASSERT_TYPE(a, RUBY_T_ARRAY); + rb_ary_ptr_use_end(a); +} + +/** + * @private + * + * This is an implementation detail of #RARRAY_PTR_USE. People do not use it + * directly. + */ +#define RBIMPL_RARRAY_STMT(flag, ary, var, expr) do { \ + RBIMPL_ASSERT_TYPE((ary), RUBY_T_ARRAY); \ + const VALUE rbimpl_ary = (ary); \ + VALUE *var = rb_array_ptr_use_start(rbimpl_ary, (flag)); \ + expr; \ + rb_array_ptr_use_end(rbimpl_ary, (flag)); \ +} while (0) + +/** + * @private + * + * This is an implementation detail of #RARRAY_PTR_USE. People do not use it + * directly. + */ +#define RARRAY_PTR_USE_END(a) rb_array_ptr_use_end(a, 0) + +/** + * Declares a section of code where raw pointers are used. In case you need to + * touch the raw C array instead of polite CAPIs, then that operation shall be + * wrapped using this macro. + * + * ```CXX + * const auto ary = rb_eval_string("[...]"); + * const auto len = RARRAY_LENINT(ary); + * const auto symwrite = rb_intern("write"); + * + * RARRAY_PTR_USE(ary, ptr, { + * rb_funcallv(rb_stdout, symwrite, len, ptr); + * }); + * ``` + * + * @param ary An object of ::RArray. + * @param ptr_name A variable name which points the C array in `expr`. + * @param expr The expression that touches `ptr_name`. + * + * @internal + * + * For historical reasons use of this macro is not enforced. There are + * extension libraries in the wild which call RARRAY_PTR() without it. We want + * them use it... Maybe some transition path can be implemented later. + */ +#define RARRAY_PTR_USE(ary, ptr_name, expr) \ + RBIMPL_RARRAY_STMT(0, ary, ptr_name, expr) + +/** + * Identical to #RARRAY_PTR_USE, except the pointer can be a transient one. + * + * @param ary An object of ::RArray. + * @param ptr_name A variable name which points the C array in `expr`. + * @param expr The expression that touches `ptr_name`. + */ +#define RARRAY_PTR_USE_TRANSIENT(ary, ptr_name, expr) \ + RBIMPL_RARRAY_STMT(1, ary, ptr_name, expr) + +/** + * Wild use of a C pointer. This function accesses the backend storage + * directly. This is slower than #RARRAY_PTR_USE_TRANSIENT. It exercises + * extra manoeuvres to protect our generational GC. Use of this function is + * considered archaic. Use a modern way instead. + * + * @param[in] ary An object of ::RArray. + * @return The backend C array. + * + * @internal + * + * That said... there are extension libraries in the wild who uses it. We + * cannot but continue supporting. + */ +static inline VALUE * +RARRAY_PTR(VALUE ary) +{ + RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY); + + VALUE tmp = RB_OBJ_WB_UNPROTECT_FOR(ARRAY, ary); + return RBIMPL_CAST((VALUE *)RARRAY_CONST_PTR(tmp)); +} + +/** + * Assigns an object in an array. + * + * @param[out] ary Destination array object. + * @param[in] i Index of `ary`. + * @param[in] v Arbitrary ruby object. + * @pre `ary` must be an instance of ::RArray. + * @pre `ary`'s length must be longer than or equal to `i`. + * @pre `i` must be greater than or equal to zero. + * @post `ary`'s `i`th element is set to `v`. + */ +static inline void +RARRAY_ASET(VALUE ary, long i, VALUE v) +{ + RARRAY_PTR_USE_TRANSIENT(ary, ptr, + RB_OBJ_WRITE(ary, &ptr[i], v)); +} + +/** + * @deprecated + * + * :FIXME: we want to convert RARRAY_AREF into an inline function (to add rooms + * for more sanity checks). However there were situations where the address of + * this macro is taken i.e. &RARRAY_AREF(...). They cannot be possible if this + * is not a macro. Such usages are abuse, and we eliminated them internally. + * However we are afraid of similar things to remain in the wild. This macro + * remains as it is due to that. If we could warn such usages we can set a + * transition path, but currently no way is found to do so. + */ +#define RARRAY_AREF(a, i) RARRAY_CONST_PTR_TRANSIENT(a)[i] + +#endif /* RBIMPL_RARRAY_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rbasic.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rbasic.h new file mode 100644 index 0000000..4617f74 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rbasic.h @@ -0,0 +1,158 @@ +#ifndef RBIMPL_RBASIC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RBASIC_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines struct ::RBasic. + */ +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/constexpr.h" +#include "ruby/internal/attr/forceinline.h" +#include "ruby/internal/attr/noalias.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/special_consts.h" +#include "ruby/internal/value.h" +#include "ruby/assert.h" + +/** + * Convenient casting macro. + * + * @param obj Arbitrary Ruby object. + * @return The passed object casted to ::RBasic. + */ +#define RBASIC(obj) RBIMPL_CAST((struct RBasic *)(obj)) +/** @cond INTERNAL_MACRO */ +#define RBASIC_CLASS RBASIC_CLASS +#define RBIMPL_RVALUE_EMBED_LEN_MAX 3 +#define RVALUE_EMBED_LEN_MAX RVALUE_EMBED_LEN_MAX +#define RBIMPL_EMBED_LEN_MAX_OF(T) \ + RBIMPL_CAST((int)(sizeof(VALUE[RBIMPL_RVALUE_EMBED_LEN_MAX]) / (sizeof(T)))) +/** @endcond */ + +/** + * This is an enum because GDB wants it (rather than a macro). People need not + * bother. + */ +enum ruby_rvalue_flags { + /** Max possible number of objects that can be embedded. */ + RVALUE_EMBED_LEN_MAX = RBIMPL_RVALUE_EMBED_LEN_MAX +}; + +/** + * Ruby's object's, base components. Every single ruby objects have them in + * common. + */ +struct +RUBY_ALIGNAS(SIZEOF_VALUE) +RBasic { + + /** + * Per-object flags. Each ruby objects have their own characteristics + * apart from their classes. For instance whether an object is frozen or + * not is not controlled by its class. This is where such properties are + * stored. + * + * @see enum ::ruby_fl_type + * + * @note This is ::VALUE rather than an enum for alignment purpose. Back + * in the 1990s there were no such thing like `_Alignas` in C. + */ + VALUE flags; + + /** + * Class of an object. Every object has its class. Also, everything is an + * object in Ruby. This means classes are also objects. Classes have + * their own classes, classes of classes have their classes, too ... and + * it recursively continues forever. + * + * Also note the `const` qualifier. In ruby an object cannot "change" its + * class. + */ + const VALUE klass; + +#ifdef __cplusplus + public: + RBIMPL_ATTR_CONSTEXPR(CXX11) + RBIMPL_ATTR_ARTIFICIAL() + RBIMPL_ATTR_FORCEINLINE() + RBIMPL_ATTR_NOALIAS() + /** + * We need to define this explicit constructor because the field `klass` is + * const-qualified above, which effectively defines the implicit default + * constructor as "deleted" (as of C++11) -- No way but to define one by + * ourselves. + */ + RBasic() : + flags(RBIMPL_VALUE_NULL), + klass(RBIMPL_VALUE_NULL) + { + } +#endif +}; + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * Make the object invisible from Ruby code. + * + * It is useful to let Ruby's GC manage your internal data structure -- The + * object keeps being managed by GC, but `ObjectSpace.each_object` never yields + * the object. + * + * Note that the object also lose a way to call a method on it. + * + * @param[out] obj A Ruby object. + * @return The passed object. + * @post The object is destructively modified to be invisible. + * @see rb_obj_reveal + */ +VALUE rb_obj_hide(VALUE obj); + +/** + * Make a hidden object visible again. + * + * It is the caller's responsibility to pass the right `klass` which `obj` + * originally used to belong to. + * + * @param[out] obj A Ruby object. + * @param[in] klass Class of `obj`. + * @return Passed `obj`. + * @pre `obj` was previously hidden. + * @post `obj`'s class is `klass`. + * @see rb_obj_hide + */ +VALUE rb_obj_reveal(VALUE obj, VALUE klass); /* do not use this API to change klass information */ +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries the class of an object. + * + * @param[in] obj An object. + * @return Its class. + */ +static inline VALUE +RBASIC_CLASS(VALUE obj) +{ + RBIMPL_ASSERT_OR_ASSUME(! RB_SPECIAL_CONST_P(obj)); + return RBASIC(obj)->klass; +} + +#endif /* RBIMPL_RBASIC_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rbignum.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rbignum.h new file mode 100644 index 0000000..1d31743 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rbignum.h @@ -0,0 +1,80 @@ +#ifndef RBIMPL_RBIGNUM_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RBIGNUM_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to manipulate struct RBignum. + * @note The struct RBignum itself is opaque. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" +#include "ruby/internal/stdbool.h" + +#define RBIGNUM_SIGN rb_big_sign /**< @alias{rb_big_sign} */ + +/** @cond INTERNAL_MACRO */ +#define RBIGNUM_POSITIVE_P RBIGNUM_POSITIVE_P +#define RBIGNUM_NEGATIVE_P RBIGNUM_NEGATIVE_P +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * The "sign" of a bignum. + * + * @param[in] num An object of RBignum. + * @retval 1 It is greater than or equal to zero. + * @retval 0 It is less than zero. + * + * @internal + * + * Implementation wise, unlike fixnums (which are 2's complement), bignums are + * signed magnitude system. Theoretically it could be possible to have + * negative zero instances. But in reality there is no way to create such + * thing. Nobody ever needed that kind of insanity. + */ +int rb_big_sign(VALUE num); +RBIMPL_SYMBOL_EXPORT_END() + +/** + * Checks if the bignum is positive. + * @param[in] b An object of RBignum. + * @retval false `b` is less than zero. + * @retval true Otherwise. + */ +static inline bool +RBIGNUM_POSITIVE_P(VALUE b) +{ + RBIMPL_ASSERT_TYPE(b, RUBY_T_BIGNUM); + return RBIGNUM_SIGN(b); +} + +/** + * Checks if the bignum is negative. + * @param[in] b An object of RBignum. + * @retval true `b` is less than zero. + * @retval false Otherwise. + */ +static inline bool +RBIGNUM_NEGATIVE_P(VALUE b) +{ + RBIMPL_ASSERT_TYPE(b, RUBY_T_BIGNUM); + return ! RBIGNUM_POSITIVE_P(b); +} + +#endif /* RBIMPL_RBIGNUM_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rclass.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rclass.h new file mode 100644 index 0000000..b0b6bfc --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rclass.h @@ -0,0 +1,93 @@ +#ifndef RBIMPL_RCLASS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RCLASS_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to manipulate struct RClass. + * @note The struct RClass itself is opaque. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/cast.h" + +/** @cond INTERNAL_MACRO */ +#define RMODULE_IS_REFINEMENT RMODULE_IS_REFINEMENT +/** @endcond */ + +/** + * Convenient casting macro. + * + * @param obj An object, which is in fact an RClass. + * @return The passed object casted to RClass. + */ +#define RCLASS(obj) RBIMPL_CAST((struct RClass *)(obj)) + +/** @alias{RCLASS} */ +#define RMODULE RCLASS + +/** @alias{rb_class_get_superclass} */ +#define RCLASS_SUPER rb_class_get_superclass + +/** + * @private + * + * Bits that you can set to ::RBasic::flags. + * + * @internal + * + * Why is it here, given RClass itself is not? + */ +enum ruby_rmodule_flags { + /** + * This flag has something to do with refinements. A module created using + * rb_mod_refine() has this flag set. This is the bit which controls + * difference between normal inclusion versus refinements. + */ + RMODULE_IS_REFINEMENT = RUBY_FL_USER3 +}; + +struct RClass; /* Opaque, declared here for RCLASS() macro. */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * Returns the superclass of a class. + * @param[in] klass An object of RClass. + * @retval RUBY_Qfalse `klass` has no super class. + * @retval otherwise Raw superclass of `klass` + * @see rb_class_superclass + * + * ### Q&A ### + * + * - Q: How can a class have no super class? + * + * - A: `klass` could be a module. Or it could be ::rb_cBasicObject. + * + * - Q: What do you mean by "raw" superclass? + * + * - A: This is a really good question. The answer is that this function + * returns something different from what you would normally expect. On + * occasions ruby inserts hidden classes in a hierarchy of class + * inheritance behind-the-scene. Such classes are called "iclass"es and + * distinguished using ::RUBY_T_ICLASS in C level. They are truly + * transparent from Ruby level but can be accessed from C, by using this + * API. + */ +VALUE rb_class_get_superclass(VALUE klass); +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_RCLASS_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rdata.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rdata.h new file mode 100644 index 0000000..43ab3c0 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rdata.h @@ -0,0 +1,386 @@ +#ifndef RBIMPL_RDATA_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RDATA_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines struct ::RData. + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/attr/warning.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/fl_type.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" +#include "ruby/defines.h" + +/** @cond INTERNAL_MACRO */ +#ifdef RUBY_UNTYPED_DATA_WARNING +# /* Take that. */ +#elif defined(RUBY_EXPORT) +# define RUBY_UNTYPED_DATA_WARNING 1 +#else +# define RUBY_UNTYPED_DATA_WARNING 0 +#endif + +#define RBIMPL_DATA_FUNC(f) RBIMPL_CAST((void (*)(void *))(f)) +#define RBIMPL_ATTRSET_UNTYPED_DATA_FUNC() \ + RBIMPL_ATTR_WARNING(("untyped Data is unsafe; use TypedData instead")) \ + RBIMPL_ATTR_DEPRECATED(("by TypedData")) + +#define RBIMPL_MACRO_SELECT(x, y) x ## y +#define RUBY_MACRO_SELECT(x, y) RBIMPL_MACRO_SELECT(x, y) +/** @endcond */ + +/** + * Convenient casting macro. + * + * @param obj An object, which is in fact an ::RData. + * @return The passed object casted to ::RData. + */ +#define RDATA(obj) RBIMPL_CAST((struct RData *)(obj)) + +/** + * Convenient getter macro. + * + * @param obj An object, which is in fact an ::RData. + * @return The passed object's ::RData::data field. + */ +#define DATA_PTR(obj) RDATA(obj)->data + +/** + * This is a value you can set to ::RData::dfree. Setting this means the data + * was allocated using ::ruby_xmalloc() (or variants), and shall be freed using + * ::ruby_xfree(). + * + * @warning Do not use this if you want to use system malloc, because the + * system and Ruby might or might not share the same malloc + * implementation. + */ +#define RUBY_DEFAULT_FREE RBIMPL_DATA_FUNC(-1) + +/** + * This is a value you can set to ::RData::dfree. Setting this means the data + * is managed by someone else, like, statically allocated. Of course you are + * on your own then. + */ +#define RUBY_NEVER_FREE RBIMPL_DATA_FUNC(0) + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define RUBY_UNTYPED_DATA_FUNC(f) f RBIMPL_ATTRSET_UNTYPED_DATA_FUNC() + +/* +#define RUBY_DATA_FUNC(func) ((void (*)(void*))(func)) +*/ + +/** + * This is the type of callbacks registered to ::RData. The argument is the + * `data` field. + */ +typedef void (*RUBY_DATA_FUNC)(void*); + +/** + * @deprecated + * + * Old "untyped" user data. It has roughly the same usage as struct + * ::RTypedData, but lacked several features such as support for compaction GC. + * Use of this struct is not recommended any longer. If it is dead necessary, + * please inform the core devs about your usage. + * + * @internal + * + * @shyouhei tried to add RBIMPL_ATTR_DEPRECATED for this type but that yielded + * too many warnings in the core. Maybe we want to retry later... Just add + * deprecated document for now. + */ +struct RData { + + /** Basic part, including flags and class. */ + struct RBasic basic; + + /** + * This function is called when the object is experiencing GC marks. If it + * contains references to other Ruby objects, you need to mark them also. + * Otherwise GC will smash your data. + * + * @see rb_gc_mark() + * @warning This is called during GC runs. Object allocations are + * impossible at that moment (that is why GC runs). + */ + RUBY_DATA_FUNC dmark; + + /** + * This function is called when the object is no longer used. You need to + * do whatever necessary to avoid memory leaks. + * + * @warning This is called during GC runs. Object allocations are + * impossible at that moment (that is why GC runs). + */ + RUBY_DATA_FUNC dfree; + + /** Pointer to the actual C level struct that you want to wrap. */ + void *data; +}; + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * This is the primitive way to wrap an existing C struct into ::RData. + * + * @param[in] klass Ruby level class of the returning object. + * @param[in] datap Pointer to the target C struct. + * @param[in] dmark Mark function. + * @param[in] dfree Free function. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return An allocated object that wraps `datap`. + */ +VALUE rb_data_object_wrap(VALUE klass, void *datap, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree); + +/** + * Identical to rb_data_object_wrap(), except it allocates a new data region + * internally instead of taking an existing one. The allocation is done using + * ruby_calloc(). Hence it makes no sense to pass anything other than + * ::RUBY_DEFAULT_FREE to the last argument. + * + * @param[in] klass Ruby level class of the returning object. + * @param[in] size Requested size of memory to allocate. + * @param[in] dmark Mark function. + * @param[in] dfree Free function. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return An allocated object that wraps a new `size` byte region. + */ +VALUE rb_data_object_zalloc(VALUE klass, size_t size, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree); + +/** + * @private + * Documented in include/ruby/internal/globals.h + */ +RUBY_EXTERN VALUE rb_cObject; +RBIMPL_SYMBOL_EXPORT_END() + +/** + * Converts sval, a pointer to your struct, into a Ruby object. + * + * @param klass A ruby level class. + * @param mark Mark function. + * @param free Free function. + * @param sval A pointer to your struct. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return A created Ruby object. + */ +#define Data_Wrap_Struct(klass, mark, free, sval) \ + rb_data_object_wrap( \ + (klass), \ + (sval), \ + RBIMPL_DATA_FUNC(mark), \ + RBIMPL_DATA_FUNC(free)) + +/** + * @private + * + * This is an implementation detail of #Data_Make_Struct. People don't use it + * directly. + * + * @param result Variable name of created Ruby object. + * @param klass Ruby level class of the object. + * @param type Type name of the C struct. + * @param size Size of the C struct. + * @param mark Mark function. + * @param free Free function. + * @param sval Variable name of created C struct. + */ +#define Data_Make_Struct0(result, klass, type, size, mark, free, sval) \ + VALUE result = rb_data_object_zalloc( \ + (klass), \ + (size), \ + RBIMPL_DATA_FUNC(mark), \ + RBIMPL_DATA_FUNC(free)); \ + (sval) = RBIMPL_CAST((type *)DATA_PTR(result)); \ + RBIMPL_CAST(/*suppress unused variable warnings*/(void)(sval)) + +/** + * Identical to #Data_Wrap_Struct, except it allocates a new data region + * internally instead of taking an existing one. The allocation is done using + * ruby_calloc(). Hence it makes no sense to pass anything other than + * ::RUBY_DEFAULT_FREE to the `free` argument. + * + * @param klass Ruby level class of the returning object. + * @param type Type name of the C struct. + * @param mark Mark function. + * @param free Free function. + * @param sval Variable name of created C struct. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return A created Ruby object. + */ +#ifdef HAVE_STMT_AND_DECL_IN_EXPR +#define Data_Make_Struct(klass, type, mark, free, sval) \ + RB_GNUC_EXTENSION({ \ + Data_Make_Struct0( \ + data_struct_obj, \ + klass, \ + type, \ + sizeof(type), \ + mark, \ + free, \ + sval); \ + data_struct_obj; \ + }) +#else +#define Data_Make_Struct(klass, type, mark, free, sval) \ + rb_data_object_make( \ + (klass), \ + RBIMPL_DATA_FUNC(mark), \ + RBIMPL_DATA_FUNC(free), \ + RBIMPL_CAST((void **)&(sval)), \ + sizeof(type)) +#endif + +/** + * Obtains a C struct from inside of a wrapper Ruby object. + * + * @param obj An instance of ::RData. + * @param type Type name of the C struct. + * @param sval Variable name of obtained C struct. + * @return Unwrapped C struct that `obj` holds. + */ +#define Data_Get_Struct(obj, type, sval) \ + ((sval) = RBIMPL_CAST((type*)rb_data_object_get(obj))) + +RBIMPL_ATTRSET_UNTYPED_DATA_FUNC() +/** + * @private + * + * This is an implementation detail of rb_data_object_wrap(). People don't use + * it directly. + * + * @param[in] klass Ruby level class of the returning object. + * @param[in] ptr Pointer to the target C struct. + * @param[in] mark Mark function. + * @param[in] free Free function. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return An allocated object that wraps `datap`. + */ +static inline VALUE +rb_data_object_wrap_warning(VALUE klass, void *ptr, RUBY_DATA_FUNC mark, RUBY_DATA_FUNC free) +{ + return rb_data_object_wrap(klass, ptr, mark, free); +} + +/** + * @private + * + * This is an implementation detail of #Data_Get_Struct. People don't use it + * directly. + * + * @param[in] obj An instance of ::RData. + * @return Unwrapped C struct that `obj` holds. + */ +static inline void * +rb_data_object_get(VALUE obj) +{ + Check_Type(obj, RUBY_T_DATA); + return DATA_PTR(obj); +} + +RBIMPL_ATTRSET_UNTYPED_DATA_FUNC() +/** + * @private + * + * This is an implementation detail of #Data_Get_Struct. People don't use it + * directly. + * + * @param[in] obj An instance of ::RData. + * @return Unwrapped C struct that `obj` holds. + */ +static inline void * +rb_data_object_get_warning(VALUE obj) +{ + return rb_data_object_get(obj); +} + +#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P) +# define rb_data_object_wrap_warning(klass, ptr, mark, free) \ + RB_GNUC_EXTENSION( \ + __builtin_choose_expr( \ + __builtin_constant_p(klass) && !(klass), \ + rb_data_object_wrap(klass, ptr, mark, free), \ + (rb_data_object_wrap_warning)(klass, ptr, mark, free))) +#endif + +/** + * This is an implementation detail of #Data_Make_Struct. People don't use it + * directly. + * + * @param[in] klass Ruby level class of the returning object. + * @param[in] mark_func Mark function. + * @param[in] free_func Free function. + * @param[in] datap Variable of created C struct. + * @param[in] size Requested size of allocation. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return A created Ruby object. + * @post `*datap` holds the created C struct. + */ +static inline VALUE +rb_data_object_make(VALUE klass, RUBY_DATA_FUNC mark_func, RUBY_DATA_FUNC free_func, void **datap, size_t size) +{ + Data_Make_Struct0(result, klass, void, size, mark_func, free_func, *datap); + return result; +} + +RBIMPL_ATTR_DEPRECATED(("by: rb_data_object_wrap")) +/** @deprecated This function was renamed to rb_data_object_wrap(). */ +static inline VALUE +rb_data_object_alloc(VALUE klass, void *data, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree) +{ + return rb_data_object_wrap(klass, data, dmark, dfree); +} + +/** @cond INTERNAL_MACRO */ +#define rb_data_object_wrap_0 rb_data_object_wrap +#define rb_data_object_wrap_1 rb_data_object_wrap_warning +#define rb_data_object_wrap_2 rb_data_object_wrap_ /* Used here vvvv */ +#define rb_data_object_wrap RUBY_MACRO_SELECT(rb_data_object_wrap_2, RUBY_UNTYPED_DATA_WARNING) +#define rb_data_object_get_0 rb_data_object_get +#define rb_data_object_get_1 rb_data_object_get_warning +#define rb_data_object_get_2 rb_data_object_get_ /* Used here vvvv */ +#define rb_data_object_get RUBY_MACRO_SELECT(rb_data_object_get_2, RUBY_UNTYPED_DATA_WARNING) +#define rb_data_object_make_0 rb_data_object_make +#define rb_data_object_make_1 rb_data_object_make_warning +#define rb_data_object_make_2 rb_data_object_make_ /* Used here vvvv */ +#define rb_data_object_make RUBY_MACRO_SELECT(rb_data_object_make_2, RUBY_UNTYPED_DATA_WARNING) +/** @endcond */ +#endif /* RBIMPL_RDATA_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rfile.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rfile.h new file mode 100644 index 0000000..f8dddde --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rfile.h @@ -0,0 +1,51 @@ +#ifndef RBIMPL_RFILE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RFILE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines struct ::RFile. + */ +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/cast.h" + +/* rb_io_t is in ruby/io.h. The header file has historically not been included + * into ruby/ruby.h. We follow that tradition. */ +struct rb_io_t; + +/** + * Ruby's File and IO. Ruby's IO are not just file descriptors. They have + * buffers. They also have encodings. Various information are controlled + * using this struct. + */ +struct RFile { + + /** Basic part, including flags and class. */ + struct RBasic basic; + + /** IO's specific fields. */ + struct rb_io_t *fptr; +}; + +/** + * Convenient casting macro. + * + * @param obj An object, which is in fact an ::RFile. + * @return The passed object casted to ::RFile. + */ +#define RFILE(obj) RBIMPL_CAST((struct RFile *)(obj)) +#endif /* RBIMPL_RFILE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rhash.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rhash.h new file mode 100644 index 0000000..61d2c15 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rhash.h @@ -0,0 +1,144 @@ +#ifndef RBIMPL_RHASH_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RHASH_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to manipulate struct RHash. + * @note The struct RHash itself is opaque. + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#if !defined RUBY_EXPORT && !defined RUBY_NO_OLD_COMPATIBILITY +# include "ruby/backward.h" +#endif + +/** + * Retrieves the internal table. + * + * @param[in] h An instance of RHash. + * @pre `h` must be of ::RUBY_T_HASH. + * @return A struct st_table which has the contents of this hash. + * @note Nowadays as Ruby evolved over ages, RHash has multiple backend + * storage engines. `h`'s backend is not guaranteed to be a + * st_table. This function creates one when necessary. + */ +#define RHASH_TBL(h) rb_hash_tbl(h, __FILE__, __LINE__) + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + * + * @internal + * + * Declaration of rb_hash_iter_lev() is at include/ruby/backward.h. + */ +#define RHASH_ITER_LEV(h) rb_hash_iter_lev(h) + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + * + * @internal + * + * Declaration of rb_hash_ifnone() is at include/ruby/backward.h. + */ +#define RHASH_IFNONE(h) rb_hash_ifnone(h) + +/** + * Queries the size of the hash. Size here means the number of keys that the + * hash stores. + * + * @param[in] h An instance of RHash. + * @pre `h` must be of ::RUBY_T_HASH. + * @return The size of the hash. + */ +#define RHASH_SIZE(h) rb_hash_size_num(h) + +/** + * Checks if the hash is empty. + * + * @param[in] h An instance of RHash. + * @pre `h` must be of ::RUBY_T_HASH. + * @retval true It is. + * @retval false It isn't. + */ +#define RHASH_EMPTY_P(h) (RHASH_SIZE(h) == 0) + +/** + * Destructively updates the default value of the hash. + * + * @param[out] h An instance of RHash. + * @param[in] ifnone Arbitrary default value. + * @pre `h` must be of ::RUBY_T_HASH. + * + * @internal + * + * But why you can set this, given rb_hash_ifnone() doesn't exist? + */ +#define RHASH_SET_IFNONE(h, ifnone) rb_hash_set_ifnone((VALUE)h, ifnone) + +struct st_table; /* in ruby/st.h */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * This is the implementation detail of #RHASH_SIZE. People don't call this + * directly. + * + * @param[in] hash An instance of RHash. + * @pre `hash` must be of ::RUBY_T_HASH. + * @return The size of the hash. + */ +size_t rb_hash_size_num(VALUE hash); + +/** + * This is the implementation detail of #RHASH_TBL. People don't call this + * directly. + * + * @param[in] hash An instance of RHash. + * @param[in] file The `__FILE__`. + * @param[in] line The `__LINE__`. + * @pre `hash` must be of ::RUBY_T_HASH. + * @return Table that has the contents of the hash. + */ +struct st_table *rb_hash_tbl(VALUE hash, const char *file, int line); + +/** + * This is the implementation detail of #RHASH_SET_IFNONE. People don't call + * this directly. + * + * @param[out] hash An instance of RHash. + * @param[in] ifnone Arbitrary default value. + * @pre `hash` must be of ::RUBY_T_HASH. + */ +VALUE rb_hash_set_ifnone(VALUE hash, VALUE ifnone); +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_RHASH_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rmatch.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rmatch.h new file mode 100644 index 0000000..2d2fd89 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rmatch.h @@ -0,0 +1,146 @@ +#ifndef RBIMPL_RMATCH_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RMATCH_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines struct ::RMatch. + */ +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" +#include "ruby/assert.h" + +/** + * Convenient casting macro. + * + * @param obj An object, which is in fact an ::RMatch. + * @return The passed object casted to ::RMatch. + */ +#define RMATCH(obj) RBIMPL_CAST((struct RMatch *)(obj)) +/** @cond INTERNAL_MACRO */ +#define RMATCH_REGS RMATCH_REGS +/** @endcond */ + +struct re_patter_buffer; /* a.k.a. OnigRegexType, defined in onigmo.h */ +struct re_registers; /* Also in onigmo.h */ + +/** + * @old{re_pattern_buffer} + * + * @internal + * + * @shyouhei wonders: is anyone actively using this typedef ...? + */ +typedef struct re_pattern_buffer Regexp; + +/** + * Represents the region of a capture group. This is basically for caching + * purpose. re_registers have similar concepts (`beg` and `end`) but they are + * in `ptrdiff_t*`. In order for us to implement `MatchData#offset` that info + * has to be converted to offset integers. This is the struct to hold such + * things. + * + * @internal + * + * But why on earth it has to be visible from extension libraries? + */ +struct rmatch_offset { + long beg; /**< Beginning of a group. */ + long end; /**< End of a group. */ +}; + +/** Represents a match. */ +struct rmatch { + /** + * "Registers" of a match. This is a quasi-opaque struct that holds + * execution result of a match. Roughly resembles `&~`. + */ + struct re_registers regs; + + /** Capture group offsets, in C array. */ + struct rmatch_offset *char_offset; + + /** Number of ::rmatch_offset that ::rmatch::char_offset holds. */ + int char_offset_num_allocated; +}; + +/** + * Regular expression execution context. When a regular expression "matches" + * to a string, it generates capture groups etc. This struct holds that info. + * Visible from Ruby as an instance of `MatchData`. + * + * @note There is no way for extension libraries to manually generate this + * struct except by actually exercising the match operation of a regular + * expression. + */ +struct RMatch { + + /** Basic part, including flags and class. */ + struct RBasic basic; + + /** + * The target string that the match was made against. + */ + VALUE str; + + /** + * The result of this match. + */ + struct rmatch *rmatch; + + /** + * The expression of this match. + */ + VALUE regexp; /* RRegexp */ +}; + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries the raw ::re_registers. + * + * @param[in] match A match object + * @pre `match` must be of ::RMatch. + * @return Its execution result. + * @note Good. So you are aware of the fact that it could return NULL. + * Yes. It actually does. This is a really bizarre thing. The + * situation is about `String#gsub` and its family. They take + * strings as arguments, like `"foo".sub("bar", "baz")`. On such + * situations, in order to optimise memory allocations, these + * methods do not involve regular expressions at all. They just + * sequentially scan the receiver. Okay. The story begins here. + * Even when they do not kick our regexp engine, there must be + * backref objects e.g. `$&`. But how? You know what? Ruby fakes + * them. It allocates an empty ::RMatch and behaves as if there + * were execution contexts. In reality there weren't. No + * ::re_registers are allocated then. There is no way for this + * function but to return NULL for those fake ::RMatch. This is + * the reason for the nullability of this function. + */ +static inline struct re_registers * +RMATCH_REGS(VALUE match) +{ + RBIMPL_ASSERT_TYPE(match, RUBY_T_MATCH); + RBIMPL_ASSERT_OR_ASSUME(RMATCH(match)->rmatch != NULL); + return &RMATCH(match)->rmatch->regs; +} + +#endif /* RBIMPL_RMATCH_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/robject.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/robject.h new file mode 100644 index 0000000..b1c2e1b --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/robject.h @@ -0,0 +1,176 @@ +#ifndef RBIMPL_ROBJECT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ROBJECT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines struct ::RObject. + */ +#include "ruby/internal/config.h" + +#ifdef HAVE_STDINT_H +# include +#endif + +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/fl_type.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" + +/** + * Convenient casting macro. + * + * @param obj An object, which is in fact an ::RObject. + * @return The passed object casted to ::RObject. + */ +#define ROBJECT(obj) RBIMPL_CAST((struct RObject *)(obj)) +/** @cond INTERNAL_MACRO */ +#define ROBJECT_EMBED_LEN_MAX ROBJECT_EMBED_LEN_MAX +#define ROBJECT_EMBED ROBJECT_EMBED +#define ROBJECT_IV_CAPACITY ROBJECT_IV_CAPACITY +#define ROBJECT_IVPTR ROBJECT_IVPTR +/** @endcond */ + +/** + * @private + * + * Bits that you can set to ::RBasic::flags. + */ +enum ruby_robject_flags { + /** + * This flag has something to do with memory footprint. If the object is + * "small" enough, ruby tries to be creative to abuse padding bits of + * struct ::RObject for storing instance variables. This flag denotes that + * situation. + * + * @warning This bit has to be considered read-only. Setting/clearing + * this bit without corresponding fix up must cause immediate + * SEGV. Also, internal structures of an object change + * dynamically and transparently throughout of its lifetime. + * Don't assume it being persistent. + * + * @internal + * + * 3rd parties must not be aware that there even is more than one way to + * store instance variables. Might better be hidden. + */ + ROBJECT_EMBED = RUBY_FL_USER1 +}; + +#if !USE_RVARGC +/** + * This is an enum because GDB wants it (rather than a macro). People need not + * bother. + */ +enum ruby_robject_consts { + /** Max possible number of instance variables that can be embedded. */ + ROBJECT_EMBED_LEN_MAX = RBIMPL_EMBED_LEN_MAX_OF(VALUE) +}; +#endif + +struct st_table; + +/** + * Ruby's ordinal objects. Unless otherwise special cased, all predefined and + * user-defined classes share this struct to hold their instances. + */ +struct RObject { + + /** Basic part, including flags and class. */ + struct RBasic basic; + + /** Object's specific fields. */ + union { + + /** + * Object that use separated memory region for instance variables use + * this pattern. + */ + struct { + /** Pointer to a C array that holds instance variables. */ + VALUE *ivptr; + + /** + * This is a table that holds instance variable name to index + * mapping. Used when accessing instance variables using names. + * + * @internal + * + * This is a shortcut for `RCLASS_IV_INDEX_TBL(rb_obj_class(obj))`. + */ + struct rb_id_table *iv_index_tbl; + } heap; + +#if USE_RVARGC + /* Embedded instance variables. When an object is small enough, it + * uses this area to store the instance variables. + * + * This is a length 1 array because: + * 1. GCC has a bug that does not optimize C flexible array members + * (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102452) + * 2. Zero length arrays are not supported by all compilers + */ + VALUE ary[1]; +#else + /** + * Embedded instance variables. When an object is small enough, it + * uses this area to store the instance variables. + */ + VALUE ary[ROBJECT_EMBED_LEN_MAX]; +#endif + } as; +}; + +/* Offsets for YJIT */ +#ifndef __cplusplus +static const int32_t ROBJECT_OFFSET_AS_HEAP_IVPTR = offsetof(struct RObject, as.heap.ivptr); +static const int32_t ROBJECT_OFFSET_AS_HEAP_IV_INDEX_TBL = offsetof(struct RObject, as.heap.iv_index_tbl); +static const int32_t ROBJECT_OFFSET_AS_ARY = offsetof(struct RObject, as.ary); +#endif + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries the instance variables. + * + * @param[in] obj Object in question. + * @return Its instance variables, in C array. + * @pre `obj` must be an instance of ::RObject. + * + * @internal + * + * @shyouhei finds no reason for this to be visible from extension libraries. + */ +static inline VALUE * +ROBJECT_IVPTR(VALUE obj) +{ + RBIMPL_ASSERT_TYPE(obj, RUBY_T_OBJECT); + + struct RObject *const ptr = ROBJECT(obj); + + if (RB_FL_ANY_RAW(obj, ROBJECT_EMBED)) { + return ptr->as.ary; + } + else { + return ptr->as.heap.ivptr; + } +} + +#endif /* RBIMPL_ROBJECT_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rregexp.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rregexp.h new file mode 100644 index 0000000..cf54a39 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rregexp.h @@ -0,0 +1,168 @@ +#ifndef RBIMPL_RREGEXP_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RREGEXP_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines struct ::RRegexp. + */ +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/core/rstring.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" + +/** + * Convenient casting macro. + * + * @param obj An object, which is in fact an ::RRegexp. + * @return The passed object casted to ::RRegexp. + */ +#define RREGEXP(obj) RBIMPL_CAST((struct RRegexp *)(obj)) + +/** + * Convenient accessor macro. + * + * @param obj An object, which is in fact an ::RRegexp. + * @return The passed object's pattern buffer. + */ +#define RREGEXP_PTR(obj) (RREGEXP(obj)->ptr) +/** @cond INTERNAL_MACRO */ +#define RREGEXP_SRC RREGEXP_SRC +#define RREGEXP_SRC_PTR RREGEXP_SRC_PTR +#define RREGEXP_SRC_LEN RREGEXP_SRC_LEN +#define RREGEXP_SRC_END RREGEXP_SRC_END +/** @endcond */ + +struct re_patter_buffer; /* a.k.a. OnigRegexType, defined in onigmo.h */ + +/** + * Ruby's regular expression. A regexp is compiled into its own intermediate + * representation. This one holds that info. Regexp "match" operation then + * executes that IR. + */ +struct RRegexp { + + /** Basic part, including flags and class. */ + struct RBasic basic; + + /** + * The pattern buffer. This is a quasi-opaque struct that holds compiled + * intermediate representation of the regular expression. + * + * @note Compilation of a regexp could be delayed until actual match. + */ + struct re_pattern_buffer *ptr; + + /** Source code of this expression. */ + const VALUE src; + + /** + * Reference count. A regexp match can take extraordinarily long time to + * run. Ruby's regular expression is heavily extended and not a regular + * language any longer; runs in NP-time in practice. Now, Ruby also has + * threads and GVL. In order to prevent long GVL lockup, our regexp engine + * can release it on occasions. This means that multiple threads can touch + * a regular expressions at once. That itself is okay. But their cleanup + * phase shall wait for all the concurrent runs, to prevent use-after-free + * situation. This field is used to count such threads that are executing + * this particular pattern buffer. + * + * @warning Of course, touching this field from extension libraries causes + * catastrophic effects. Just leave it. + */ + unsigned long usecnt; +}; + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Convenient getter function. + * + * @param[in] rexp The regular expression in question. + * @return The source code of the regular expression. + * @pre `rexp` must be of ::RRegexp. + */ +static inline VALUE +RREGEXP_SRC(VALUE rexp) +{ + RBIMPL_ASSERT_TYPE(rexp, RUBY_T_REGEXP); + VALUE ret = RREGEXP(rexp)->src; + RBIMPL_ASSERT_TYPE(ret, RUBY_T_STRING); + return ret; +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Convenient getter function. + * + * @param[in] rexp The regular expression in question. + * @return The source code of the regular expression, in C's string. + * @pre `rexp` must be of ::RRegexp. + * + * @internal + * + * It seems nobody uses this function in the wild. Subject to hide? + */ +static inline char * +RREGEXP_SRC_PTR(VALUE rexp) +{ + return RSTRING_PTR(RREGEXP_SRC(rexp)); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Convenient getter function. + * + * @param[in] rexp The regular expression in question. + * @return The length of the source code of the regular expression. + * @pre `rexp` must be of ::RRegexp. + * + * @internal + * + * It seems nobody uses this function in the wild. Subject to hide? + */ +static inline long +RREGEXP_SRC_LEN(VALUE rexp) +{ + return RSTRING_LEN(RREGEXP_SRC(rexp)); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Convenient getter function. + * + * @param[in] rexp The regular expression in question. + * @return The end of the source code of the regular expression. + * @pre `rexp` must be of ::RRegexp. + * + * @internal + * + * It seems nobody uses this function in the wild. Subject to hide? + */ +static inline char * +RREGEXP_SRC_END(VALUE rexp) +{ + return RSTRING_END(RREGEXP_SRC(rexp)); +} + +#endif /* RBIMPL_RREGEXP_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rstring.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rstring.h new file mode 100644 index 0000000..e394ab7 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rstring.h @@ -0,0 +1,578 @@ +#ifndef RBIMPL_RSTRING_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RSTRING_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines struct ::RString. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/arithmetic/long.h" +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/fl_type.h" +#include "ruby/internal/value_type.h" +#include "ruby/internal/warning_push.h" +#include "ruby/assert.h" + +/** + * Convenient casting macro. + * + * @param obj An object, which is in fact an ::RString. + * @return The passed object casted to ::RString. + */ +#define RSTRING(obj) RBIMPL_CAST((struct RString *)(obj)) + +/** @cond INTERNAL_MACRO */ +#define RSTRING_NOEMBED RSTRING_NOEMBED +#if !USE_RVARGC +#define RSTRING_EMBED_LEN_MASK RSTRING_EMBED_LEN_MASK +#define RSTRING_EMBED_LEN_SHIFT RSTRING_EMBED_LEN_SHIFT +#define RSTRING_EMBED_LEN_MAX RSTRING_EMBED_LEN_MAX +#endif +#define RSTRING_FSTR RSTRING_FSTR +#define RSTRING_EMBED_LEN RSTRING_EMBED_LEN +#define RSTRING_LEN RSTRING_LEN +#define RSTRING_LENINT RSTRING_LENINT +#define RSTRING_PTR RSTRING_PTR +#define RSTRING_END RSTRING_END +/** @endcond */ + +/** + * @name Conversion of Ruby strings into C's + * + * @{ + */ + +/** + * Ensures that the parameter object is a String. This is done by calling its + * `to_str` method. + * + * @param[in,out] v Arbitrary Ruby object. + * @exception rb_eTypeError No implicit conversion defined. + * @post `v` is a String. + */ +#define StringValue(v) rb_string_value(&(v)) + +/** + * Identical to #StringValue, except it returns a `char*`. + * + * @param[in,out] v Arbitrary Ruby object. + * @exception rb_eTypeError No implicit conversion defined. + * @return Converted Ruby string's backend C string. + * @post `v` is a String. + */ +#define StringValuePtr(v) rb_string_value_ptr(&(v)) + +/** + * Identical to #StringValuePtr, except it additionally checks for the contents + * for viability as a C string. Ruby can accept wider range of contents as + * strings, compared to C. This function is to check that. + * + * @param[in,out] v Arbitrary Ruby object. + * @exception rb_eTypeError No implicit conversion defined. + * @exception rb_eArgError String is not C-compatible. + * @return Converted Ruby string's backend C string. + * @post `v` is a String. + */ +#define StringValueCStr(v) rb_string_value_cstr(&(v)) + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define SafeStringValue(v) StringValue(v) + +/** + * Identical to #StringValue, except it additionally converts the string's + * encoding to default external encoding. Ruby has a concept called encodings. + * A string can have different encoding than the environment expects. Someone + * has to make sure its contents be converted to something suitable. This is + * that routine. Call it when necessary. + * + * @param[in,out] v Arbitrary Ruby object. + * @exception rb_eTypeError No implicit conversion defined. + * @return Converted Ruby string's backend C string. + * @post `v` is a String. + * + * @internal + * + * Not sure but it seems this macro does not raise on encoding + * incompatibilities? Doesn't sound right to @shyouhei. + */ +#define ExportStringValue(v) do { \ + StringValue(v); \ + (v) = rb_str_export(v); \ +} while (0) + +/** @} */ + +/** + * @private + * + * Bits that you can set to ::RBasic::flags. + * + * @warning These enums are not the only bits we use for strings. + * + * @internal + * + * Actually all bits through FL_USER1 to FL_USER19 are used for strings. Why + * only this tiny part of them are made public here? @shyouhei can find no + * reason. + */ +enum ruby_rstring_flags { + + /** + * This flag has something to do with memory footprint. If the string is + * short enough, ruby tries to be creative to abuse padding bits of struct + * ::RString for storing contents. If this flag is set that string does + * _not_ do that, to resort to good old fashioned external allocation + * strategy instead. + * + * @warning This bit has to be considered read-only. Setting/clearing + * this bit without corresponding fix up must cause immediate + * SEGV. Also, internal structures of a string change + * dynamically and transparently throughout of its lifetime. + * Don't assume it being persistent. + * + * @internal + * + * 3rd parties must not be aware that there even is more than one way to + * store a string. Might better be hidden. + */ + RSTRING_NOEMBED = RUBY_FL_USER1, + +#if !USE_RVARGC + /** + * When a string employs embedded strategy (see ::RSTRING_NOEMBED), these + * bits are used to store the number of bytes actually filled into + * ::RString::ary. + * + * @internal + * + * 3rd parties must not be aware that there even is more than one way to + * store a string. Might better be hidden. + */ + RSTRING_EMBED_LEN_MASK = RUBY_FL_USER2 | RUBY_FL_USER3 | RUBY_FL_USER4 | + RUBY_FL_USER5 | RUBY_FL_USER6, +#endif + + /* Actually, string encodings are also encoded into the flags, using + * remaining bits.*/ + + /** + * This flag has something to do with infamous "f"string. What is a + * fstring? Well it is a special subkind of strings that is immutable, + * deduped globally, and managed by our GC. It is much like a Symbol (in + * fact Symbols are dynamic these days and are backended using fstrings). + * This concept has been silently introduced at some point in 2.x era. + * Since then it gained wider acceptance in the core. But extension + * libraries could not know that until very recently. Strings of this flag + * live in a special Limbo deep inside of the interpreter. Never try to + * manipulate it by hand. + * + * @internal + * + * Fstrings are not the only variant strings that we implement today. + * Other things are behind-the-scene. This is the only one that is visible + * from extension library. There is no clear reason why it has to be. + * Given there are more "polite" ways to create fstrings, it seems this bit + * need not be exposed to extension libraries. Might better be hidden. + */ + RSTRING_FSTR = RUBY_FL_USER17 +}; + +#if !USE_RVARGC +/** + * This is an enum because GDB wants it (rather than a macro). People need not + * bother. + */ +enum ruby_rstring_consts { + /** Where ::RSTRING_EMBED_LEN_MASK resides. */ + RSTRING_EMBED_LEN_SHIFT = RUBY_FL_USHIFT + 2, + + /** Max possible number of characters that can be embedded. */ + RSTRING_EMBED_LEN_MAX = RBIMPL_EMBED_LEN_MAX_OF(char) - 1 +}; +#endif + +/** + * Ruby's String. A string in ruby conceptually has these information: + * + * - Encoding of the string. + * - Length of the string. + * - Contents of the string. + * + * It is worth noting that a string is _not_ an array of characters in ruby. + * It has never been. In 1.x a string was an array of integers. Since 2.x a + * string is no longer an array of anything. A string is a string -- just like + * a Time is not an integer. + */ +struct RString { + + /** Basic part, including flags and class. */ + struct RBasic basic; + + /** String's specific fields. */ + union { + + /** + * Strings that use separated memory region for contents use this + * pattern. + */ + struct { + + /** + * Length of the string, not including terminating NUL character. + * + * @note This is in bytes. + */ + long len; + + /** + * Pointer to the contents of the string. In the old days each + * string had dedicated memory regions. That is no longer true + * today, but there still are strings of such properties. This + * field could be used to point such things. + */ + char *ptr; + + /** Auxiliary info. */ + union { + + /** + * Capacity of `*ptr`. A continuous memory region of at least + * `capa` bytes is expected to exist at `*ptr`. This can be + * bigger than `len`. + */ + long capa; + + /** + * Parent of the string. Nowadays strings can share their + * contents each other, constructing gigantic nest of objects. + * This situation is called "shared", and this is the field to + * control such properties. + */ + VALUE shared; + } aux; + } heap; + + /** Embedded contents. */ + struct { +#if USE_RVARGC + long len; + /* This is a length 1 array because: + * 1. GCC has a bug that does not optimize C flexible array members + * (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102452) + * 2. Zero length arrays are not supported by all compilers + */ + char ary[1]; +#else + /** + * When a string is short enough, it uses this area to store the + * contents themselves. This was impractical in the 20th century, + * but these days 64 bit machines can typically hold 24 bytes here. + * Could be sufficiently large. In this case the length is encoded + * into the flags. + */ + char ary[RSTRING_EMBED_LEN_MAX + 1]; +#endif + } embed; + } as; +}; + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * Identical to rb_check_string_type(), except it raises exceptions in case of + * conversion failures. + * + * @param[in] obj Target object. + * @exception rb_eTypeError No implicit conversion to String. + * @return Return value of `obj.to_str`. + * @see rb_io_get_io + * @see rb_ary_to_ary + */ +VALUE rb_str_to_str(VALUE obj); + +/** + * Identical to rb_str_to_str(), except it fills the passed pointer with the + * converted object. + * + * @param[in,out] ptr Pointer to a variable of target object. + * @exception rb_eTypeError No implicit conversion to String. + * @return Return value of `obj.to_str`. + * @post `*ptr` is the return value. + */ +VALUE rb_string_value(volatile VALUE *ptr); + +/** + * Identical to rb_str_to_str(), except it returns the converted string's + * backend memory region. + * + * @param[in,out] ptr Pointer to a variable of target object. + * @exception rb_eTypeError No implicit conversion to String. + * @post `*ptr` is the return value of `obj.to_str`. + * @return Pointer to the contents of the return value. + */ +char *rb_string_value_ptr(volatile VALUE *ptr); + +/** + * Identical to rb_string_value_ptr(), except it additionally checks for the + * contents for viability as a C string. Ruby can accept wider range of + * contents as strings, compared to C. This function is to check that. + * + * @param[in,out] ptr Pointer to a variable of target object. + * @exception rb_eTypeError No implicit conversion to String. + * @exception rb_eArgError String is not C-compatible. + * @post `*ptr` is the return value of `obj.to_str`. + * @return Pointer to the contents of the return value. + */ +char *rb_string_value_cstr(volatile VALUE *ptr); + +/** + * Identical to rb_str_to_str(), except it additionally converts the string + * into default external encoding. Ruby has a concept called encodings. A + * string can have different encoding than the environment expects. Someone + * has to make sure its contents be converted to something suitable. This is + * that routine. Call it when necessary. + * + * @param[in] obj Target object. + * @exception rb_eTypeError No implicit conversion to String. + * @return Converted ruby string of default external encoding. + */ +VALUE rb_str_export(VALUE obj); + +/** + * Identical to rb_str_export(), except it converts into the locale encoding + * instead. + * + * @param[in] obj Target object. + * @exception rb_eTypeError No implicit conversion to String. + * @return Converted ruby string of locale encoding. + */ +VALUE rb_str_export_locale(VALUE obj); + +RBIMPL_ATTR_ERROR(("rb_check_safe_str() and Check_SafeStr() are obsolete; use StringValue() instead")) +/** + * @private + * + * @deprecated This function once was a thing in the old days, but makes no + * sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + */ +void rb_check_safe_str(VALUE); + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define Check_SafeStr(v) rb_check_safe_str(RBIMPL_CAST((VALUE)(v))) + +/** + * @private + * + * Prints diagnostic message to stderr when RSTRING_PTR or RSTRING_END + * is NULL. + * + * @param[in] func The function name where encountered NULL pointer. + */ +void rb_debug_rstring_null_ptr(const char *func); +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries the length of the string. + * + * @param[in] str String in question. + * @return Its length, in bytes. + * @pre `str` must be an instance of ::RString, and must has its + * ::RSTRING_NOEMBED flag off. + * + * @internal + * + * This was a macro before. It was inevitable to be public, since macros are + * global constructs. But should it be forever? Now that it is a function, + * @shyouhei thinks it could just be eliminated, hidden into implementation + * details. + */ +static inline long +RSTRING_EMBED_LEN(VALUE str) +{ + RBIMPL_ASSERT_TYPE(str, RUBY_T_STRING); + RBIMPL_ASSERT_OR_ASSUME(! RB_FL_ANY_RAW(str, RSTRING_NOEMBED)); + +#if USE_RVARGC + long f = RSTRING(str)->as.embed.len; + return f; +#else + VALUE f = RBASIC(str)->flags; + f &= RSTRING_EMBED_LEN_MASK; + f >>= RSTRING_EMBED_LEN_SHIFT; + return RBIMPL_CAST((long)f); +#endif +} + +RBIMPL_WARNING_PUSH() +#if RBIMPL_COMPILER_IS(Intel) +RBIMPL_WARNING_IGNORED(413) +#endif + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * @private + * + * "Expands" an embedded string into an ordinal one. This is a function that + * returns aggregated type. The returned struct always has its `as.heap.len` + * an `as.heap.ptr` fields set appropriately. + * + * This is an implementation detail that 3rd parties should never bother. + */ +static inline struct RString +rbimpl_rstring_getmem(VALUE str) +{ + RBIMPL_ASSERT_TYPE(str, RUBY_T_STRING); + + if (RB_FL_ANY_RAW(str, RSTRING_NOEMBED)) { + return *RSTRING(str); + } + else { + /* Expecting compilers to optimize this on-stack struct away. */ + struct RString retval; + retval.as.heap.len = RSTRING_EMBED_LEN(str); + retval.as.heap.ptr = RSTRING(str)->as.embed.ary; + return retval; + } +} + +RBIMPL_WARNING_POP() + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries the length of the string. + * + * @param[in] str String in question. + * @return Its length, in bytes. + * @pre `str` must be an instance of ::RString. + */ +static inline long +RSTRING_LEN(VALUE str) +{ + return rbimpl_rstring_getmem(str).as.heap.len; +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries the contents pointer of the string. + * + * @param[in] str String in question. + * @return Pointer to its contents. + * @pre `str` must be an instance of ::RString. + */ +static inline char * +RSTRING_PTR(VALUE str) +{ + char *ptr = rbimpl_rstring_getmem(str).as.heap.ptr; + + if (RB_UNLIKELY(! ptr)) { + /* :BEWARE: @shyouhei thinks that currently, there are rooms for this + * function to return NULL. In the 20th century that was a pointless + * concern. However struct RString can hold fake strings nowadays. It + * seems no check against NULL are exercised around handling of them + * (one of such usages is located in marshal.c, which scares + * @shyouhei). Better check here for maximum safety. + * + * Also, this is not rb_warn() because RSTRING_PTR() can be called + * during GC (see what obj_info() does). rb_warn() needs to allocate + * Ruby objects. That is not possible at this moment. */ + rb_debug_rstring_null_ptr("RSTRING_PTR"); + } + + return ptr; +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries the end of the contents pointer of the string. + * + * @param[in] str String in question. + * @return Pointer to its end of contents. + * @pre `str` must be an instance of ::RString. + */ +static inline char * +RSTRING_END(VALUE str) +{ + struct RString buf = rbimpl_rstring_getmem(str); + + if (RB_UNLIKELY(! buf.as.heap.ptr)) { + /* Ditto. */ + rb_debug_rstring_null_ptr("RSTRING_END"); + } + + return &buf.as.heap.ptr[buf.as.heap.len]; +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Identical to RSTRING_LEN(), except it differs for the return type. + * + * @param[in] str String in question. + * @exception rb_eRangeError Too long. + * @return Its length, in bytes. + * @pre `str` must be an instance of ::RString. + * + * @internal + * + * This API seems redundant but has actual usages. + */ +static inline int +RSTRING_LENINT(VALUE str) +{ + return rb_long2int(RSTRING_LEN(str)); +} + +/** + * Convenient macro to obtain the contents and length at once. + * + * @param str String in question. + * @param ptrvar Variable where its contents is stored. + * @param lenvar Variable where its length is stored. + */ +#ifdef HAVE_STMT_AND_DECL_IN_EXPR +# define RSTRING_GETMEM(str, ptrvar, lenvar) \ + __extension__ ({ \ + struct RString rbimpl_str = rbimpl_rstring_getmem(str); \ + (ptrvar) = rbimpl_str.as.heap.ptr; \ + (lenvar) = rbimpl_str.as.heap.len; \ + }) +#else +# define RSTRING_GETMEM(str, ptrvar, lenvar) \ + ((ptrvar) = RSTRING_PTR(str), \ + (lenvar) = RSTRING_LEN(str)) +#endif /* HAVE_STMT_AND_DECL_IN_EXPR */ +#endif /* RBIMPL_RSTRING_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rstruct.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rstruct.h new file mode 100644 index 0000000..69be487 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rstruct.h @@ -0,0 +1,121 @@ +#ifndef RBIMPL_RSTRUCT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RSTRUCT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to manipulate struct RStruct. + * @note The struct RStruct itself is opaque. + */ +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" +#include "ruby/internal/arithmetic/long.h" +#include "ruby/internal/arithmetic/int.h" +#if !defined RUBY_EXPORT && !defined RUBY_NO_OLD_COMPATIBILITY +# include "ruby/backward.h" +#endif + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + * + * @internal + * + * Declaration of rb_struct_ptr() is at include/ruby/backward.h. + */ +#define RSTRUCT_PTR(st) rb_struct_ptr(st) +/** @cond INTERNAL_MACRO */ +#define RSTRUCT_LEN RSTRUCT_LEN +#define RSTRUCT_SET RSTRUCT_SET +#define RSTRUCT_GET RSTRUCT_GET +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * Returns the number of struct members. + * + * @param[in] st An instance of RStruct. + * @return The number of members of `st`. + * @pre `st` must be of ::RUBY_T_STRUCT. + */ +VALUE rb_struct_size(VALUE st); + +/** + * Resembles `Struct#[]`. + * + * @param[in] st An instance of RStruct. + * @param[in] k Index a.k.a. key of the struct. + * @exception rb_eTypeError `k` is neither Numeric, Symbol, nor String. + * @exception rb_eIndexError Numerical index out of range. + * @exception rb_eNameError No such key. + * @return The member stored at `k` in `st`. + * @pre `st` must be of ::RUBY_T_STRUCT. + */ +VALUE rb_struct_aref(VALUE st, VALUE k); + +/** + * Resembles `Struct#[]=`. + * + * @param[out] st An instance of RStruct. + * @param[in] k Index a.k.a. key of the struct. + * @param[in] v Value to store. + * @exception rb_eTypeError `k` is neither Numeric, Symbol, nor String. + * @exception rb_eIndexError Numerical index out of range. + * @exception rb_eNameError No such key. + * @return Passed `v`. + * @pre `st` must be of ::RUBY_T_STRUCT. + * @post `v` is stored at `k` in `st`. + */ +VALUE rb_struct_aset(VALUE st, VALUE k, VALUE v); +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_ARTIFICIAL() +/** @copydoc rb_struct_size() */ +static inline long +RSTRUCT_LEN(VALUE st) +{ + RBIMPL_ASSERT_TYPE(st, RUBY_T_STRUCT); + + return RB_NUM2LONG(rb_struct_size(st)); +} + +RBIMPL_ATTR_ARTIFICIAL() +/** @copydoc rb_struct_aset() */ +static inline VALUE +RSTRUCT_SET(VALUE st, int k, VALUE v) +{ + RBIMPL_ASSERT_TYPE(st, RUBY_T_STRUCT); + + return rb_struct_aset(st, INT2NUM(k), (v)); +} + +RBIMPL_ATTR_ARTIFICIAL() +/** @copydoc rb_struct_aref() */ +static inline VALUE +RSTRUCT_GET(VALUE st, int k) +{ + RBIMPL_ASSERT_TYPE(st, RUBY_T_STRUCT); + + return rb_struct_aref(st, INT2NUM(k)); +} + +#endif /* RBIMPL_RSTRUCT_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rtypeddata.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rtypeddata.h new file mode 100644 index 0000000..bbf2088 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/core/rtypeddata.h @@ -0,0 +1,604 @@ +#ifndef RBIMPL_RTYPEDDATA_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RTYPEDDATA_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines struct ::RTypedData. + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#include "ruby/internal/assume.h" +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/flag_enum.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/core/rdata.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/error.h" +#include "ruby/internal/fl_type.h" +#include "ruby/internal/stdbool.h" +#include "ruby/internal/value_type.h" + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define HAVE_TYPE_RB_DATA_TYPE_T 1 + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define HAVE_RB_DATA_TYPE_T_FUNCTION 1 + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define HAVE_RB_DATA_TYPE_T_PARENT 1 + +/** + * This is a value you can set to ::rb_data_type_struct::dfree. Setting this + * means the data was allocated using ::ruby_xmalloc() (or variants), and shall + * be freed using ::ruby_xfree(). + * + * @warning Do not use this if you want to use system malloc, because the + * system and Ruby might or might not share the same malloc + * implementation. + */ +#define RUBY_TYPED_DEFAULT_FREE RUBY_DEFAULT_FREE + +/** + * This is a value you can set to ::rb_data_type_struct::dfree. Setting this + * means the data is managed by someone else, like, statically allocated. Of + * course you are on your own then. + */ +#define RUBY_TYPED_NEVER_FREE RUBY_NEVER_FREE + +/** + * Convenient casting macro. + * + * @param obj An object, which is in fact an ::RTypedData. + * @return The passed object casted to ::RTypedData. + */ +#define RTYPEDDATA(obj) RBIMPL_CAST((struct RTypedData *)(obj)) + +/** + * Convenient getter macro. + * + * @param v An object, which is in fact an ::RTypedData. + * @return The passed object's ::RTypedData::data field. + */ +#define RTYPEDDATA_DATA(v) (RTYPEDDATA(v)->data) + +/** @old{rb_check_typeddata} */ +#define Check_TypedStruct(v, t) \ + rb_check_typeddata(RBIMPL_CAST((VALUE)(v)), (t)) + +/** @cond INTERNAL_MACRO */ +#define RTYPEDDATA_P RTYPEDDATA_P +#define RTYPEDDATA_TYPE RTYPEDDATA_TYPE +#define RUBY_TYPED_FREE_IMMEDIATELY RUBY_TYPED_FREE_IMMEDIATELY +#define RUBY_TYPED_FROZEN_SHAREABLE RUBY_TYPED_FROZEN_SHAREABLE +#define RUBY_TYPED_WB_PROTECTED RUBY_TYPED_WB_PROTECTED +#define RUBY_TYPED_PROMOTED1 RUBY_TYPED_PROMOTED1 +/** @endcond */ + +/** + * @private + * + * Bits for rb_data_type_struct::flags. + */ +enum +RBIMPL_ATTR_FLAG_ENUM() +rbimpl_typeddata_flags { + /** + * This flag has something to do with Ruby's global interpreter lock. For + * maximum safety, Ruby locks the entire VM during GC. However your + * callback functions could unintentionally unlock it, for instance when + * they try to flush an IO buffer. Such operations are dangerous (threads + * then run alongside of GC). By default, to prevent those scenario, + * callbacks are deferred until the GC engine is 100% sure threads can run. + * This flag skips that; structs with it are deallocated during the sweep + * phase. + * + * Using this flag needs deep understanding of both GC and threads. You + * would better leave it unspecified. + */ + RUBY_TYPED_FREE_IMMEDIATELY = 1, + + /** + * This flag has something to do with Ractor. Multiple Ractors run without + * protecting each other. Sharing an object among Ractors is basically + * dangerous, disabled by default. This flag is used to bypass that + * restriction. but setting it is not enough. In addition to do so, an + * object also has to be frozen, and be passed to + * rb_ractor_make_shareable() before being actually shareable. Of course, + * you have to manually prevent race conditions then. + * + * Using this flag needs deep understanding of multithreaded programming. + * You would better leave it unspecified. + */ + RUBY_TYPED_FROZEN_SHAREABLE = RUBY_FL_SHAREABLE, + + /** + * This flag has something to do with our garbage collector. These days + * ruby objects are "generational". There are those who are young and + * those who are old. Young objects are prone to die; monitored relatively + * extensively by the garbage collector. OTOH old objects tend to live + * longer. They are relatively rarely considered. This basically works. + * But there is one tweak that has to be exercised. When an elder object + * has reference(s) to younger one(s), that referenced objects must not + * die. In order to detect additions of such references, old generations + * are protected by write barriers. It is a very difficult hack to + * appropriately insert write barriers everywhere. This mechanism is + * disabled by default for 3rd party extensions (they never get aged). By + * specifying this flag you can enable the generational feature to your + * data structure. Of course, you have to manually insert write barriers + * then. + * + * Using this flag needs deep understanding of GC internals, often at the + * level of source code. You would better leave it unspecified. + */ + RUBY_TYPED_WB_PROTECTED = RUBY_FL_WB_PROTECTED, /* THIS FLAG DEPENDS ON Ruby version */ + + /** + * This flag is mysterious. It seems nobody is currently using it. The + * intention of this flag is also unclear. We need further investigations. + */ + RUBY_TYPED_PROMOTED1 = RUBY_FL_PROMOTED1 /* THIS FLAG DEPENDS ON Ruby version */ +}; + +/** + * This is the struct that holds necessary info for a struct. It roughly + * resembles a Ruby level class; multiple objects can share a ::rb_data_type_t + * instance. + */ +typedef struct rb_data_type_struct rb_data_type_t; + +/** @copydoc rb_data_type_t */ +struct rb_data_type_struct { + + /** + * Name of structs of this kind. This is used for diagnostic purposes. + * This has to be unique in the process, but doesn't has to be a valid + * C/Ruby identifier. + */ + const char *wrap_struct_name; + + /** Function pointers. Resembles C++ `vtbl`.*/ + struct { + + /** + * This function is called when the object is experiencing GC marks. + * If it contains references to other Ruby objects, you need to mark + * them also. Otherwise GC will smash your data. + * + * @see rb_gc_mark() + * @warning This is called during GC runs. Object allocations are + * impossible at that moment (that is why GC runs). + */ + RUBY_DATA_FUNC dmark; + + /** + * This function is called when the object is no longer used. You need + * to do whatever necessary to avoid memory leaks. + * + * @warning This is called during GC runs. Object allocations are + * impossible at that moment (that is why GC runs). + */ + RUBY_DATA_FUNC dfree; + + /** + * This function is to query the size of the underlying memory regions. + * + * @internal + * + * This function has only one usage, which is form inside of + * `ext/objspace`. + */ + size_t (*dsize)(const void *); + + /** + * This function is called when the object is relocated. Like + * ::rb_data_type_struct::dmark, you need to update references to Ruby + * objects inside of your structs. + * + * @see rb_gc_location() + * @warning This is called during GC runs. Object allocations are + * impossible at that moment (that is why GC runs). + */ + RUBY_DATA_FUNC dcompact; + + /** + * This field is reserved for future extension. For now, it must be + * filled with zeros. + */ + void *reserved[1]; /* For future extension. + This array *must* be filled with ZERO. */ + } function; + + /** + * Parent of this class. Sometimes C structs have inheritance-like + * relationships. An example is `struct sockaddr` and its family. If you + * design such things, make ::rb_data_type_t for each of them and connect + * using this field. Ruby can then transparently cast your data back and + * forth when you call #TypedData_Get_Struct(). + * + * ```CXX + * struct parent { }; + * static inline const rb_data_type_t parent_type = { + * .wrap_struct_name = "parent", + * }; + * + * struct child: public parent { }; + * static inline const rb_data_type_t child_type = { + * .wrap_struct_name = "child", + * .parent = &parent_type, + * }; + * + * // This function can take both parent_class and child_class. + * static inline struct parent * + * get_parent(VALUE v) + * { + * struct parent *p; + * TypedData_Get_Struct(v, parent_type, struct parent, p); + * return p; + * } + * ``` + */ + const rb_data_type_t *parent; + + /** + * Type-specific static data. This area can be used for any purpose by a + * programmer who define the type. Ruby does not manage this at all. + */ + void *data; /* This area can be used for any purpose + by a programmer who define the type. */ + + /** + * Type-specific behavioural characteristics. This is a bitfield. It is + * an EXTREMELY WISE IDEA to leave this field blank. It is designed so + * that setting zero is the safest thing to do. If you risk to set any + * bits on, you have to know exactly what you are doing. + * + * @internal + * + * Why it has to be a ::VALUE? @shyouhei doesn't understand the design. + */ + VALUE flags; /* RUBY_FL_WB_PROTECTED */ +}; + +/** + * "Typed" user data. By using this, extension libraries can wrap a C struct + * to make it visible from Ruby. For instance if you have a `struct timeval`, + * and you want users to use it, + * + * ```CXX + * static inline const rb_data_type_t timeval_type = { + * // Note that unspecified fields are 0-filled by default. + * .wrap_struct_name = "timeval", + * .function = { + * .dmark = nullptr, // no need to mark + * .dfree = RUBY_TYPED_DEFAULT_FREE, // use ruby_xfree() + * .dsize = [](auto) { + * return sizeof(struct timeval); + * }, + * }, + * }; + * + * extern "C" void + * Init_timeval(void) + * { + * auto klass = rb_define_class("YourName", rb_cObject); + * + * rb_define_alloc_func(klass, [](auto klass) { + * struct timeval *t; + * auto ret = TypedData_Make_Struct( + * klass, struct timeval, &timeval_type, t); + * + * if (auto i = gettimeofday(t, nullptr); i == -1) { + * rb_sys_fail("gettimeofday(3)"); + * } + * else { + * return ret; + * } + * }); + * } + * ``` + */ +struct RTypedData { + + /** The part that all ruby objects have in common. */ + struct RBasic basic; + + /** + * This field stores various information about how Ruby should handle a + * data. This roughly resembles a Ruby level class (apart from method + * definition etc.) + */ + const rb_data_type_t *type; + + /** + * This has to be always 1. + * + * @internal + * + * Why, then, this is not a const ::VALUE? + */ + VALUE typed_flag; + + /** Pointer to the actual C level struct that you want to wrap. */ + void *data; +}; + +RBIMPL_SYMBOL_EXPORT_BEGIN() +RBIMPL_ATTR_NONNULL((3)) +/** + * This is the primitive way to wrap an existing C struct into ::RTypedData. + * + * @param[in] klass Ruby level class of the returning object. + * @param[in] datap Pointer to the target C struct. + * @param[in] type The characteristics of the passed data. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return An allocated object that wraps `datap`. + */ +VALUE rb_data_typed_object_wrap(VALUE klass, void *datap, const rb_data_type_t *type); + +/** + * Identical to rb_data_typed_object_wrap(), except it allocates a new data + * region internally instead of taking an existing one. The allocation is done + * using ruby_calloc(). Hence it makes no sense for `type->function.dfree` to + * be anything other than ::RUBY_TYPED_DEFAULT_FREE. + * + * @param[in] klass Ruby level class of the returning object. + * @param[in] size Requested size of memory to allocate. + * @param[in] type The characteristics of the passed data. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return An allocated object that wraps a new `size` byte region. + */ +VALUE rb_data_typed_object_zalloc(VALUE klass, size_t size, const rb_data_type_t *type); + +/** + * Checks for the domestic relationship between the two. + * + * @param[in] child A data type supposed to be a child of `parent`. + * @param[in] parent A data type supposed to be a parent of `child`. + * @retval true `child` is a descendent of `parent`. + * @retval false Otherwise. + * + * @internal + * + * You can path NULL to both arguments, don't know what that means though. + */ +int rb_typeddata_inherited_p(const rb_data_type_t *child, const rb_data_type_t *parent); + +/** + * Checks if the given object is of given kind. + * + * @param[in] obj An instance of ::RTypedData. + * @param[in] data_type Expected data type of `obj`. + * @retval true `obj` is of `data_type`. + * @retval false Otherwise. + */ +int rb_typeddata_is_kind_of(VALUE obj, const rb_data_type_t *data_type); + +/** + * Identical to rb_typeddata_is_kind_of(), except it raises exceptions instead + * of returning false. + * + * @param[in] obj An instance of ::RTypedData. + * @param[in] data_type Expected data type of `obj`. + * @exception rb_eTypeError obj is not of `data_type`. + * @return Unwrapped C struct that `obj` holds. + * @post Upon successful return `obj`'s type is guaranteed `data_type`. + */ +void *rb_check_typeddata(VALUE obj, const rb_data_type_t *data_type); +RBIMPL_SYMBOL_EXPORT_END() + +/** + * Converts sval, a pointer to your struct, into a Ruby object. + * + * @param klass A ruby level class. + * @param data_type The type of `sval`. + * @param sval A pointer to your struct. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return A created Ruby object. + */ +#define TypedData_Wrap_Struct(klass,data_type,sval)\ + rb_data_typed_object_wrap((klass),(sval),(data_type)) + +/** + * @private + * + * This is an implementation detail of #TypedData_Make_Struct. People don't + * use it directly. + * + * @param result Variable name of created Ruby object. + * @param klass Ruby level class of the object. + * @param type Type name of the C struct. + * @param size Size of the C struct. + * @param data_type The data type describing `type`. + * @param sval Variable name of created C struct. + */ +#define TypedData_Make_Struct0(result, klass, type, size, data_type, sval) \ + VALUE result = rb_data_typed_object_zalloc(klass, size, data_type); \ + (sval) = RBIMPL_CAST((type *)RTYPEDDATA_DATA(result)); \ + RBIMPL_CAST(/*suppress unused variable warnings*/(void)(sval)) + +/** + * Identical to #TypedData_Wrap_Struct, except it allocates a new data region + * internally instead of taking an existing one. The allocation is done using + * ruby_calloc(). Hence it makes no sense for `data_type->function.dfree` to + * be anything other than ::RUBY_TYPED_DEFAULT_FREE. + * + * @param klass Ruby level class of the object. + * @param type Type name of the C struct. + * @param data_type The data type describing `type`. + * @param sval Variable name of created C struct. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return A created Ruby object. + */ +#ifdef HAVE_STMT_AND_DECL_IN_EXPR +#define TypedData_Make_Struct(klass, type, data_type, sval) \ + RB_GNUC_EXTENSION({ \ + TypedData_Make_Struct0( \ + data_struct_obj, \ + klass, \ + type, \ + sizeof(type), \ + data_type, \ + sval); \ + data_struct_obj; \ + }) +#else +#define TypedData_Make_Struct(klass, type, data_type, sval) \ + rb_data_typed_object_make( \ + (klass), \ + (data_type), \ + RBIMPL_CAST((void **)&(sval)), \ + sizeof(type)) +#endif + +/** + * Obtains a C struct from inside of a wrapper Ruby object. + * + * @param obj An instance of ::RTypedData. + * @param type Type name of the C struct. + * @param data_type The data type describing `type`. + * @param sval Variable name of obtained C struct. + * @exception rb_eTypeError `obj` is not a kind of `data_type`. + * @return Unwrapped C struct that `obj` holds. + */ +#define TypedData_Get_Struct(obj,type,data_type,sval) \ + ((sval) = RBIMPL_CAST((type *)rb_check_typeddata((obj), (data_type)))) + +RBIMPL_ATTR_PURE() +RBIMPL_ATTR_ARTIFICIAL() +/** + * @private + * + * This is an implementation detail of Check_Type(). People don't use it + * directly. + * + * @param[in] obj Object in question + * @retval true `obj` is an instance of ::RTypedData. + * @retval false `obj` is an instance of ::RData. + * @pre `obj` must be a Ruby object of ::RUBY_T_DATA. + */ +static inline bool +rbimpl_rtypeddata_p(VALUE obj) +{ + return RTYPEDDATA(obj)->typed_flag == 1; +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks whether the passed object is ::RTypedData or ::RData. + * + * @param[in] obj Object in question + * @retval true `obj` is an instance of ::RTypedData. + * @retval false `obj` is an instance of ::RData. + * @pre `obj` must be a Ruby object of ::RUBY_T_DATA. + */ +static inline bool +RTYPEDDATA_P(VALUE obj) +{ +#if RUBY_DEBUG + if (RB_UNLIKELY(! RB_TYPE_P(obj, RUBY_T_DATA))) { + Check_Type(obj, RUBY_T_DATA); + RBIMPL_UNREACHABLE_RETURN(false); + } +#endif + + return rbimpl_rtypeddata_p(obj); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/* :TODO: can this function be __attribute__((returns_nonnull)) or not? */ +/** + * Queries for the type of given object. + * + * @param[in] obj Object in question + * @return Data type struct that corresponds to `obj`. + * @pre `obj` must be an instance of ::RTypedData. + */ +static inline const struct rb_data_type_struct * +RTYPEDDATA_TYPE(VALUE obj) +{ +#if RUBY_DEBUG + if (RB_UNLIKELY(! RTYPEDDATA_P(obj))) { + rb_unexpected_type(obj, RUBY_T_DATA); + RBIMPL_UNREACHABLE_RETURN(NULL); + } +#endif + + return RTYPEDDATA(obj)->type; +} + +/** + * While we don't stop you from using this function, it seems to be an + * implementation detail of #TypedData_Make_Struct, which is preferred over + * this one. + * + * @param[in] klass Ruby level class of the returning object. + * @param[in] type The data type + * @param[out] datap Return pointer. + * @param[in] size Size of the C struct. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return A created Ruby object. + * @post `*datap` points to the C struct wrapped by the returned object. + */ +static inline VALUE +rb_data_typed_object_make(VALUE klass, const rb_data_type_t *type, void **datap, size_t size) +{ + TypedData_Make_Struct0(result, klass, void, size, type, *datap); + return result; +} + +RBIMPL_ATTR_DEPRECATED(("by: rb_data_typed_object_wrap")) +/** @deprecated This function was renamed to rb_data_typed_object_wrap(). */ +static inline VALUE +rb_data_typed_object_alloc(VALUE klass, void *datap, const rb_data_type_t *type) +{ + return rb_data_typed_object_wrap(klass, datap, type); +} + +#endif /* RBIMPL_RTYPEDDATA_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/ctype.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/ctype.h new file mode 100644 index 0000000..0f7ca6c --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/ctype.h @@ -0,0 +1,545 @@ +#ifndef RBIMPL_CTYPE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_CTYPE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Our own, locale independent, character handling routines. + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/constexpr.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" + +/** + * @name Old character classification macros + * + * What is this #ISPRINT business? Well, according to our VCS and some + * internet surfing, it appears that the initial intent of these macros were to + * mimic codes appear in common in several GNU projects. As far as @shyouhei + * detects they seem to originate GNU regex (that standalone one rather than + * Gnulib or Glibc), and at least date back to 1995. + * + * Let me lawfully quote from a GNU coreutils commit + * https://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=49803907f5dbd7646184a8912c9db9b09dcd0f22 + * + * > Jim Meyering writes: + * > + * > "... Some ctype macros are valid only for character codes that + * > isascii says are ASCII (SGI's IRIX-4.0.5 is one such system --when + * > using /bin/cc or gcc but without giving an ansi option). So, all + * > ctype uses should be through macros like ISPRINT... If + * > STDC_HEADERS is defined, then autoconf has verified that the ctype + * > macros don't need to be guarded with references to isascii. ... + * > Defining isascii to 1 should let any compiler worth its salt + * > eliminate the && through constant folding." + * > + * > Bruno Haible adds: + * > + * > "... Furthermore, isupper(c) etc. have an undefined result if c is + * > outside the range -1 <= c <= 255. One is tempted to write isupper(c) + * > with c being of type `char', but this is wrong if c is an 8-bit + * > character >= 128 which gets sign-extended to a negative value. + * > The macro ISUPPER protects against this as well." + * + * So the intent was to reroute old problematic systems that no longer exist. + * At the same time the problems described above no longer hurt us, because we + * decided to completely avoid using system-provided isupper etc. to reinvent + * the wheel. These macros are entirely legacy; please ignore them. + * + * But let me also put stress that GNU people are wise; they use those macros + * only inside of their own implementations and never let them be public. On + * the other hand ruby has thoughtlessly publicised them to 3rd party libraries + * since its beginning, which is a very bad idea. These macros are too easy to + * get conflicted with definitions elsewhere. + * + * New programs should stick to the `rb_` prefixed names. + * + * @note It seems we just mimic the API. We do not share their implementation + * with GPL-ed programs. + * + * @{ + */ +#ifndef ISPRINT +# define ISASCII rb_isascii /**< @old{rb_isascii}*/ +# define ISPRINT rb_isprint /**< @old{rb_isprint}*/ +# define ISGRAPH rb_isgraph /**< @old{rb_isgraph}*/ +# define ISSPACE rb_isspace /**< @old{rb_isspace}*/ +# define ISUPPER rb_isupper /**< @old{rb_isupper}*/ +# define ISLOWER rb_islower /**< @old{rb_islower}*/ +# define ISALNUM rb_isalnum /**< @old{rb_isalnum}*/ +# define ISALPHA rb_isalpha /**< @old{rb_isalpha}*/ +# define ISDIGIT rb_isdigit /**< @old{rb_isdigit}*/ +# define ISXDIGIT rb_isxdigit /**< @old{rb_isxdigit}*/ +# define ISBLANK rb_isblank /**< @old{rb_isblank}*/ +# define ISCNTRL rb_iscntrl /**< @old{rb_iscntrl}*/ +# define ISPUNCT rb_ispunct /**< @old{rb_ispunct}*/ +#endif + +#define TOUPPER rb_toupper /**< @old{rb_toupper}*/ +#define TOLOWER rb_tolower /**< @old{rb_tolower}*/ +#define STRCASECMP st_locale_insensitive_strcasecmp /**< @old{st_locale_insensitive_strcasecmp}*/ +#define STRNCASECMP st_locale_insensitive_strncasecmp /**< @old{st_locale_insensitive_strncasecmp}*/ +#define STRTOUL ruby_strtoul /**< @old{ruby_strtoul}*/ + +/** @} */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** @name locale insensitive functions + * @{ + */ + +/* In descriptions below, `the POSIX Locale` and `the "C" locale` are tactfully + * used as to whether the described function mimics POSIX or C99. */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Our own locale-insensitive version of `strcasecmp(3)`. The "case" here + * always means that of the POSIX Locale. It doesn't depend on runtime locale + * settings. + * + * @param[in] s1 Comparison LHS. + * @param[in] s2 Comparison RHS. + * @retval -1 `s1` is "less" than `s2`. + * @retval 0 Both strings converted into lowercase would be identical. + * @retval 1 `s1` is "greater" than `s2`. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + */ +int st_locale_insensitive_strcasecmp(const char *s1, const char *s2); + +RBIMPL_ATTR_NONNULL(()) +/** + * Our own locale-insensitive version of `strcnasecmp(3)`. The "case" here + * always means that of the POSIX Locale. It doesn't depend on runtime locale + * settings. + * + * @param[in] s1 Comparison LHS. + * @param[in] s2 Comparison RHS. + * @param[in] n Comparison shall stop after first `n` bytes are scanned. + * @retval -1 `s1` is "less" than `s2`. + * @retval 0 Both strings converted into lowercase would be identical. + * @retval 1 `s1` is "greater" than `s2`. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning This function is _not_ timing safe. + */ +int st_locale_insensitive_strncasecmp(const char *s1, const char *s2, size_t n); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Our own locale-insensitive version of `strtoul(3)`. The conversion is done + * as if the current locale is set to the "C" locale, no matter actual runtime + * locale settings. + * + * @note This is needed because `strtoul("i", 0, 36)` would return zero + * if it is locale sensitive and the current locale is `tr_TR`. + * @param[in] str String of digits, optionally preceded with whitespaces + * (ignored) and optionally `+` or `-` sign. + * @param[out] endptr NULL, or an arbitrary pointer (overwritten on return). + * @param[in] base `2` to `36` inclusive for each base, or special case + * `0` to detect the base from the contents of the string. + * @return Converted integer, casted to unsigned long. + * @post If `endptr` is not NULL, it is updated to point the first such + * byte where conversion failed. + * @note This function sets `errno` on failure. + * - `EINVAL`: Passed `base` is out of range. + * - `ERANGE`: Converted integer is out of range of `long`. + * @warning As far as @shyouhei reads ISO/IEC 9899:2018 section 7.22.1.4, a + * conforming `strtoul` implementation shall render `ERANGE` + * whenever it finds the input string represents a negative + * integer. Such thing can never be representable using `unsigned + * long`. However this implementation does not honour that + * language. It just casts such negative value to the return + * type, resulting a very big return value. This behaviour is at + * least questionable. But we can no longer change that at this + * point. + * @note Not only does this function works under the "C" locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + */ +unsigned long ruby_strtoul(const char *str, char **endptr, int base); +RBIMPL_SYMBOL_EXPORT_END() + +/* + * We are making the functions below to return `int` instead of `bool`. They + * have been as such since their birth at 5f237d79033b2109afb768bc889611fa9630. + */ + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `isascii(3)`. + * + * @param[in] c Byte in question to query. + * @retval false `c` is out of range of ASCII character set. + * @retval true Yes it is. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isascii(int c) +{ + return '\0' <= c && c <= '\x7f'; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `isupper(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in IEEE 1003.1 section 7.3.1.1 "upper". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isupper(int c) +{ + return 'A' <= c && c <= 'Z'; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `islower(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in IEEE 1003.1 section 7.3.1.1 "lower". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_islower(int c) +{ + return 'a' <= c && c <= 'z'; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `isalpha(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in either IEEE 1003.1 section 7.3.1.1 + * "upper" or "lower". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isalpha(int c) +{ + return rb_isupper(c) || rb_islower(c); +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `isdigit(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in IEEE 1003.1 section 7.3.1.1 "digit". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isdigit(int c) +{ + return '0' <= c && c <= '9'; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `isalnum(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in either IEEE 1003.1 section 7.3.1.1 + * "upper", "lower", or "digit". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isalnum(int c) +{ + return rb_isalpha(c) || rb_isdigit(c); +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `isxdigit(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in IEEE 1003.1 section 7.3.1.1 "xdigit". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isxdigit(int c) +{ + return rb_isdigit(c) || ('A' <= c && c <= 'F') || ('a' <= c && c <= 'f'); +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `isblank(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in IEEE 1003.1 section 7.3.1.1 "blank". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isblank(int c) +{ + return c == ' ' || c == '\t'; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `isspace(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in IEEE 1003.1 section 7.3.1.1 "space". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isspace(int c) +{ + return c == ' ' || ('\t' <= c && c <= '\r'); +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `iscntrl(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in IEEE 1003.1 section 7.3.1.1 "cntrl". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_iscntrl(int c) +{ + return ('\0' <= c && c < ' ') || c == '\x7f'; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Identical to rb_isgraph(), except it also returns true for `' '`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in either IEEE 1003.1 section 7.3.1.1 + * "upper", "lower", "digit", "punct", or a `' '`. + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isprint(int c) +{ + return ' ' <= c && c <= '\x7e'; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `ispunct(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in IEEE 1003.1 section 7.3.1.1 "punct". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_ispunct(int c) +{ + return !rb_isalnum(c); +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `isgraph(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in either IEEE 1003.1 section 7.3.1.1 + * "upper", "lower", "digit", or "punct". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isgraph(int c) +{ + return '!' <= c && c <= '\x7e'; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `tolower(3)`. + * + * @param[in] c Byte in question to convert. + * @retval c The byte is not listed in in IEEE 1003.1 section + * 7.3.1.1 "upper". + * @retval otherwise Byte converted using the map defined in IEEE 1003.1 + * section 7.3.1 "tolower". + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_tolower(int c) +{ + return rb_isupper(c) ? (c|0x20) : c; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `toupper(3)`. + * + * @param[in] c Byte in question to convert. + * @retval c The byte is not listed in in IEEE 1003.1 section + * 7.3.1.1 "lower". + * @retval otherwise Byte converted using the map defined in IEEE 1003.1 + * section 7.3.1 "toupper". + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_toupper(int c) +{ + return rb_islower(c) ? (c&0x5f) : c; +} + +/** @} */ +#endif /* RBIMPL_CTYPE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/dllexport.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/dllexport.h new file mode 100644 index 0000000..08a2622 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/dllexport.h @@ -0,0 +1,112 @@ +#ifndef RBIMPL_DLLEXPORT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_DLLEXPORT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Tweaking visibility of C variables/functions. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/compiler_is.h" + +/** + * Declaration of externally visible global variables. Here "externally" means + * they should be visible from extension libraries. Depending on operating + * systems (dynamic linkers, to be precise), global variables inside of a DLL + * may or may not be visible form outside of that DLL by default. This + * declaration manually tweaks that default and ensures the declared variable + * be truly globally visible. + * + * ```CXX + * extern VALUE foo; // hidden on some OS + * RUBY_EXTERN VALUE foo; // ensure visible + * ``` + */ +#undef RUBY_EXTERN +#if defined(MJIT_HEADER) && defined(_WIN32) +# define RUBY_EXTERN extern __declspec(dllimport) +#elif defined(RUBY_EXPORT) +# define RUBY_EXTERN extern +#elif defined(_WIN32) +# define RUBY_EXTERN extern __declspec(dllimport) +#else +# define RUBY_EXTERN extern +#endif + +#ifndef RUBY_SYMBOL_EXPORT_BEGIN +# define RUBY_SYMBOL_EXPORT_BEGIN /* begin */ +#endif + +#ifndef RUBY_SYMBOL_EXPORT_END +# define RUBY_SYMBOL_EXPORT_END /* end */ +#endif + +#ifndef RUBY_FUNC_EXPORTED +# define RUBY_FUNC_EXPORTED /* void */ +#endif + +/** + * @cond INTERNAL_MACRO + * + * These MJIT related macros are placed here because translate_mjit_header can + * need them. Extension libraries should not touch. + */ + +/* These macros are used for functions which are exported only for MJIT + and NOT ensured to be exported in future versions. */ + +#if ! defined(MJIT_HEADER) +# define MJIT_FUNC_EXPORTED RUBY_FUNC_EXPORTED +#elif ! RBIMPL_COMPILER_IS(MSVC) +# define MJIT_FUNC_EXPORTED RUBY_FUNC_EXPORTED +#else +# define MJIT_FUNC_EXPORTED static +#endif + +#define MJIT_SYMBOL_EXPORT_BEGIN RUBY_SYMBOL_EXPORT_BEGIN +#define MJIT_SYMBOL_EXPORT_END RUBY_SYMBOL_EXPORT_END + +/* On mswin, MJIT header transformation can't be used since cl.exe can't output + preprocessed output preserving macros. So this `MJIT_STATIC` is needed + to force non-static function to static on MJIT header to avoid symbol conflict. */ +#ifdef MJIT_HEADER +# define MJIT_STATIC static +#else +# define MJIT_STATIC +#endif + +/** @endcond */ + +/** Shortcut macro equivalent to `RUBY_SYMBOL_EXPORT_BEGIN extern "C" {`. + * \@shyouhei finds it handy. */ +#if defined(__DOXYGEN__) +# define RBIMPL_SYMBOL_EXPORT_BEGIN() /* void */ +#elif defined(__cplusplus) +# define RBIMPL_SYMBOL_EXPORT_BEGIN() RUBY_SYMBOL_EXPORT_BEGIN extern "C" { +#else +# define RBIMPL_SYMBOL_EXPORT_BEGIN() RUBY_SYMBOL_EXPORT_BEGIN +#endif + +/** Counterpart of #RBIMPL_SYMBOL_EXPORT_BEGIN */ +#if defined(__DOXYGEN__) +# define RBIMPL_SYMBOL_EXPORT_END() /* void */ +#elif defined(__cplusplus) +# define RBIMPL_SYMBOL_EXPORT_END() } RUBY_SYMBOL_EXPORT_END +#else +# define RBIMPL_SYMBOL_EXPORT_END() RUBY_SYMBOL_EXPORT_END +#endif +#endif /* RBIMPL_DLLEXPORT_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/dosish.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/dosish.h new file mode 100644 index 0000000..7d354dd --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/dosish.h @@ -0,0 +1,89 @@ +#ifndef RBIMPL_DOSISH_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_DOSISH_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Support for so-called dosish systems. + */ +#ifdef __CYGWIN__ +#undef _WIN32 +#endif + +#if defined(_WIN32) +/* + DOSISH mean MS-Windows style filesystem. + But you should use more precise macros like DOSISH_DRIVE_LETTER, PATH_SEP, + ENV_IGNORECASE or CASEFOLD_FILESYSTEM. + */ +#define DOSISH 1 +# define DOSISH_DRIVE_LETTER +#endif + +#ifdef _WIN32 +#include "ruby/win32.h" +#endif + +/** The delimiter of `PATH` environment variable. */ +#if defined(DOSISH) +#define PATH_SEP ";" +#else +#define PATH_SEP ":" +#endif + +/** Identical to #PATH_SEP, except it is of type `char`. */ +#define PATH_SEP_CHAR PATH_SEP[0] + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + * + * @internal + * + * For historical interests: there was an operating system called Human68k + * which used an environment variable called `"path"` for this purpose. + */ +#define PATH_ENV "PATH" + +#if defined(DOSISH) +#define ENV_IGNORECASE +#endif + +/** + * Stone age assumption was that an operating system supports only one file + * system at a moment. This macro was to detect if such (one and only) file + * system has case sensitivity. This assumption is largely not true any + * longer; most operating systems can mount many kinds of file systems side by + * side. Also there are file systems that do or do not ignore cases depending + * on configuration (e.g. EXT4's `casefold` feature). + * + * This macro is still used internally (for instance Ruby level constant + * `File::FNM_SYSCASE` depends on it), but it is basically a wrong idea for you + * to use it today. Please just find another way. + */ +#ifndef CASEFOLD_FILESYSTEM +# if defined DOSISH +# define CASEFOLD_FILESYSTEM 1 +# else +# define CASEFOLD_FILESYSTEM 0 +# endif +#endif + +#endif /* RBIMPL_DOSISH_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/coderange.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/coderange.h new file mode 100644 index 0000000..7a81208 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/coderange.h @@ -0,0 +1,202 @@ +#ifndef RUBY_INTERNAL_ENCODING_CODERANGE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERNAL_ENCODING_CODERANGE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines for code ranges. + */ + +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/fl_type.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** What rb_enc_str_coderange() returns. */ +enum ruby_coderange_type { + + /** The object's coderange is unclear yet. */ + RUBY_ENC_CODERANGE_UNKNOWN = 0, + + /** The object holds 0 to 127 inclusive and nothing else. */ + RUBY_ENC_CODERANGE_7BIT = ((int)RUBY_FL_USER8), + + /** The object's encoding and contents are consistent each other */ + RUBY_ENC_CODERANGE_VALID = ((int)RUBY_FL_USER9), + + /** The object holds invalid/malformed/broken character(s). */ + RUBY_ENC_CODERANGE_BROKEN = ((int)(RUBY_FL_USER8|RUBY_FL_USER9)), + + /** Where the coderange resides. */ + RUBY_ENC_CODERANGE_MASK = (RUBY_ENC_CODERANGE_7BIT| + RUBY_ENC_CODERANGE_VALID| + RUBY_ENC_CODERANGE_BROKEN) +}; + +RBIMPL_ATTR_CONST() +/** + * @private + * + * This is an implementation detail of #RB_ENC_CODERANGE_CLEAN_P. People don't + * use it directly. + * + * @param[in] cr An enum ::ruby_coderange_type. + * @retval 1 It is. + * @retval 0 It isn't. + */ +static inline int +rb_enc_coderange_clean_p(int cr) +{ + return (cr ^ (cr >> 1)) & RUBY_ENC_CODERANGE_7BIT; +} + +RBIMPL_ATTR_CONST() +/** + * Queries if a code range is "clean". "Clean" in this context means it is + * known and valid. + * + * @param[in] cr An enum ::ruby_coderange_type. + * @retval 1 It is. + * @retval 0 It isn't. + */ +static inline bool +RB_ENC_CODERANGE_CLEAN_P(enum ruby_coderange_type cr) +{ + return rb_enc_coderange_clean_p(cr); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +/** + * Queries the (inline) code range of the passed object. The object must be + * capable of having inline encoding. Using this macro needs deep + * understanding of bit level object binary layout. + * + * @param[in] obj Target object. + * @return An enum ::ruby_coderange_type. + */ +static inline enum ruby_coderange_type +RB_ENC_CODERANGE(VALUE obj) +{ + VALUE ret = RB_FL_TEST_RAW(obj, RUBY_ENC_CODERANGE_MASK); + + return RBIMPL_CAST((enum ruby_coderange_type)ret); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +/** + * Queries the (inline) code range of the passed object is + * ::RUBY_ENC_CODERANGE_7BIT. The object must be capable of having inline + * encoding. Using this macro needs deep understanding of bit level object + * binary layout. + * + * @param[in] obj Target object. + * @retval 1 It is ascii only. + * @retval 0 Otherwise (including cases when the range is not known). + */ +static inline bool +RB_ENC_CODERANGE_ASCIIONLY(VALUE obj) +{ + return RB_ENC_CODERANGE(obj) == RUBY_ENC_CODERANGE_7BIT; +} + +/** + * Destructively modifies the passed object so that its (inline) code range is + * the passed one. The object must be capable of having inline encoding. + * Using this macro needs deep understanding of bit level object binary layout. + * + * @param[out] obj Target object. + * @param[out] cr An enum ::ruby_coderange_type. + * @post `obj`'s code range is `cr`. + */ +static inline void +RB_ENC_CODERANGE_SET(VALUE obj, enum ruby_coderange_type cr) +{ + RB_FL_UNSET_RAW(obj, RUBY_ENC_CODERANGE_MASK); + RB_FL_SET_RAW(obj, cr); +} + +/** + * Destructively clears the passed object's (inline) code range. The object + * must be capable of having inline encoding. Using this macro needs deep + * understanding of bit level object binary layout. + * + * @param[out] obj Target object. + * @post `obj`'s code range is ::RUBY_ENC_CODERANGE_UNKNOWN. + */ +static inline void +RB_ENC_CODERANGE_CLEAR(VALUE obj) +{ + RB_FL_UNSET_RAW(obj, RUBY_ENC_CODERANGE_MASK); +} + +RBIMPL_ATTR_CONST() +/* assumed ASCII compatibility */ +/** + * "Mix" two code ranges into one. This is handy for instance when you + * concatenate two strings into one. Consider one of then is valid but the + * other isn't. The result must be invalid. This macro computes that kind of + * mixture. + * + * @param[in] a An enum ::ruby_coderange_type. + * @param[in] b Another enum ::ruby_coderange_type. + * @return The `a` "and" `b`. + */ +static inline enum ruby_coderange_type +RB_ENC_CODERANGE_AND(enum ruby_coderange_type a, enum ruby_coderange_type b) +{ + if (a == RUBY_ENC_CODERANGE_7BIT) { + return b; + } + else if (a != RUBY_ENC_CODERANGE_VALID) { + return RUBY_ENC_CODERANGE_UNKNOWN; + } + else if (b == RUBY_ENC_CODERANGE_7BIT) { + return RUBY_ENC_CODERANGE_VALID; + } + else { + return b; + } +} + +#define ENC_CODERANGE_MASK RUBY_ENC_CODERANGE_MASK /**< @old{RUBY_ENC_CODERANGE_MASK} */ +#define ENC_CODERANGE_UNKNOWN RUBY_ENC_CODERANGE_UNKNOWN /**< @old{RUBY_ENC_CODERANGE_UNKNOWN} */ +#define ENC_CODERANGE_7BIT RUBY_ENC_CODERANGE_7BIT /**< @old{RUBY_ENC_CODERANGE_7BIT} */ +#define ENC_CODERANGE_VALID RUBY_ENC_CODERANGE_VALID /**< @old{RUBY_ENC_CODERANGE_VALID} */ +#define ENC_CODERANGE_BROKEN RUBY_ENC_CODERANGE_BROKEN /**< @old{RUBY_ENC_CODERANGE_BROKEN} */ +#define ENC_CODERANGE_CLEAN_P(cr) RB_ENC_CODERANGE_CLEAN_P(cr) /**< @old{RB_ENC_CODERANGE_CLEAN_P} */ +#define ENC_CODERANGE(obj) RB_ENC_CODERANGE(obj) /**< @old{RB_ENC_CODERANGE} */ +#define ENC_CODERANGE_ASCIIONLY(obj) RB_ENC_CODERANGE_ASCIIONLY(obj) /**< @old{RB_ENC_CODERANGE_ASCIIONLY} */ +#define ENC_CODERANGE_SET(obj,cr) RB_ENC_CODERANGE_SET(obj,cr) /**< @old{RB_ENC_CODERANGE_SET} */ +#define ENC_CODERANGE_CLEAR(obj) RB_ENC_CODERANGE_CLEAR(obj) /**< @old{RB_ENC_CODERANGE_CLEAR} */ +#define ENC_CODERANGE_AND(a, b) RB_ENC_CODERANGE_AND(a, b) /**< @old{RB_ENC_CODERANGE_AND} */ +#define ENCODING_CODERANGE_SET(obj, encindex, cr) RB_ENCODING_CODERANGE_SET(obj, encindex, cr) /**< @old{RB_ENCODING_CODERANGE_SET} */ + +/** @cond INTERNAL_MACRO */ +#define RB_ENC_CODERANGE RB_ENC_CODERANGE +#define RB_ENC_CODERANGE_AND RB_ENC_CODERANGE_AND +#define RB_ENC_CODERANGE_ASCIIONLY RB_ENC_CODERANGE_ASCIIONLY +#define RB_ENC_CODERANGE_CLEAN_P RB_ENC_CODERANGE_CLEAN_P +#define RB_ENC_CODERANGE_CLEAR RB_ENC_CODERANGE_CLEAR +#define RB_ENC_CODERANGE_SET RB_ENC_CODERANGE_SET +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_INTERNAL_ENCODING_CODERANGE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/ctype.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/ctype.h new file mode 100644 index 0000000..05c314a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/ctype.h @@ -0,0 +1,258 @@ +#ifndef RUBY_INTERNAL_ENCODING_CTYPE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERNAL_ENCODING_CTYPE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to query chacater types. + */ + +#include "ruby/onigmo.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/encoding/encoding.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Queries if the passed pointer points to a newline character. What is a + * newline and what is not depends on the passed encoding. + * + * @param[in] p Pointer to a possibly-middle of a character. + * @param[in] end End of the string. + * @param[in] enc Encoding. + * @retval false It isn't. + * @retval true It is. + */ +static inline bool +rb_enc_is_newline(const char *p, const char *e, rb_encoding *enc) +{ + OnigUChar *up = RBIMPL_CAST((OnigUChar *)p); + OnigUChar *ue = RBIMPL_CAST((OnigUChar *)e); + + return ONIGENC_IS_MBC_NEWLINE(enc, up, ue); +} + +/** + * Queries if the passed code point is of passed character type in the passed + * encoding. The "character type" here is a set of macros defined in onigmo.h, + * like `ONIGENC_CTYPE_PUNCT`. + * + * @param[in] c An `OnigCodePoint` value. + * @param[in] t An `OnigCtype` value. + * @param[in] enc A `rb_encoding*` value. + * @retval true `c` is of `t` in `enc`. + * @retval false Otherwise. + */ +static inline bool +rb_enc_isctype(OnigCodePoint c, OnigCtype t, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_CTYPE(enc, c, t); +} + +/** + * Identical to rb_isascii(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval false `c` is out of range of ASCII character set in `enc`. + * @retval true Otherwise. + * + * @internal + * + * `enc` is ignored. This is at least an intentional implementation detail + * (not a bug). But there could be rooms for future extensions. + */ +static inline bool +rb_enc_isascii(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_ASCII(c); +} + +/** + * Identical to rb_isalpha(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval true `enc` classifies `c` as "ALPHA". + * @retval false Otherwise. + */ +static inline bool +rb_enc_isalpha(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_ALPHA(enc, c); +} + +/** + * Identical to rb_islower(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval true `enc` classifies `c` as "LOWER". + * @retval false Otherwise. + */ +static inline bool +rb_enc_islower(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_LOWER(enc, c); +} + +/** + * Identical to rb_isupper(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval true `enc` classifies `c` as "UPPER". + * @retval false Otherwise. + */ +static inline bool +rb_enc_isupper(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_UPPER(enc, c); +} + +/** + * Identical to rb_iscntrl(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval true `enc` classifies `c` as "CNTRL". + * @retval false Otherwise. + */ +static inline bool +rb_enc_iscntrl(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_CNTRL(enc, c); +} + +/** + * Identical to rb_ispunct(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval true `enc` classifies `c` as "PUNCT". + * @retval false Otherwise. + */ +static inline bool +rb_enc_ispunct(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_PUNCT(enc, c); +} + +/** + * Identical to rb_isalnum(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval true `enc` classifies `c` as "ANUM". + * @retval false Otherwise. + */ +static inline bool +rb_enc_isalnum(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_ALNUM(enc, c); +} + +/** + * Identical to rb_isprint(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval true `enc` classifies `c` as "PRINT". + * @retval false Otherwise. + */ +static inline bool +rb_enc_isprint(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_PRINT(enc, c); +} + +/** + * Identical to rb_isspace(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval true `enc` classifies `c` as "PRINT". + * @retval false Otherwise. + */ +static inline bool +rb_enc_isspace(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_SPACE(enc, c); +} + +/** + * Identical to rb_isdigit(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval true `enc` classifies `c` as "DIGIT". + * @retval false Otherwise. + */ +static inline bool +rb_enc_isdigit(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_DIGIT(enc, c); +} + +RBIMPL_ATTR_CONST() +/** + * Identical to rb_toupper(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @return `c`'s (Ruby's definition of) upper case counterpart. + * + * @internal + * + * As `RBIMPL_ATTR_CONST` implies this function ignores `enc`. + */ +int rb_enc_toupper(int c, rb_encoding *enc); + +RBIMPL_ATTR_CONST() +/** + * Identical to rb_tolower(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @return `c`'s (Ruby's definition of) lower case counterpart. + * + * @internal + * + * As `RBIMPL_ATTR_CONST` implies this function ignores `enc`. + */ +int rb_enc_tolower(int c, rb_encoding *enc); + +RBIMPL_SYMBOL_EXPORT_END() + +/** @cond INTERNAL_MACRO */ +#define rb_enc_is_newline rb_enc_is_newline +#define rb_enc_isalnum rb_enc_isalnum +#define rb_enc_isalpha rb_enc_isalpha +#define rb_enc_isascii rb_enc_isascii +#define rb_enc_isctype rb_enc_isctype +#define rb_enc_isdigit rb_enc_isdigit +#define rb_enc_islower rb_enc_islower +#define rb_enc_isprint rb_enc_isprint +#define rb_enc_iscntrl rb_enc_iscntrl +#define rb_enc_ispunct rb_enc_ispunct +#define rb_enc_isspace rb_enc_isspace +#define rb_enc_isupper rb_enc_isupper +/** @endcond */ + +#endif /* RUBY_INTERNAL_ENCODING_CTYPE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/encoding.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/encoding.h new file mode 100644 index 0000000..4748ca8 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/encoding.h @@ -0,0 +1,1060 @@ +#ifndef RUBY_INTERNAL_ENCODING_ENCODING_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERNAL_ENCODING_ENCODING_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines ::rb_encoding + */ + +#include "ruby/oniguruma.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/attr/noalias.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/attr/returns_nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/fl_type.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * `Encoding` class. + * + * @ingroup object + */ +RUBY_EXTERN VALUE rb_cEncoding; + +/** + * @private + * + * Bit constants used when embedding encodings into ::RBasic::flags. Extension + * libraries must not bother such things. + */ +enum ruby_encoding_consts { + + /** Max possible number of embeddable encodings. */ + RUBY_ENCODING_INLINE_MAX = 127, + + /** Where inline encodings reside. */ + RUBY_ENCODING_SHIFT = (RUBY_FL_USHIFT+10), + + /** Bits we use to store inline encodings. */ + RUBY_ENCODING_MASK = (RUBY_ENCODING_INLINE_MAX<> RUBY_ENCODING_SHIFT; + + return RBIMPL_CAST((int)ret); +} + +#define ENCODING_SET_INLINED(obj,i) RB_ENCODING_SET_INLINED(obj,i) /**< @old{RB_ENCODING_SET_INLINED} */ +#define ENCODING_SET(obj,i) RB_ENCODING_SET(obj,i) /**< @old{RB_ENCODING_SET} */ +#define ENCODING_GET_INLINED(obj) RB_ENCODING_GET_INLINED(obj) /**< @old{RB_ENCODING_GET_INLINED} */ +#define ENCODING_GET(obj) RB_ENCODING_GET(obj) /**< @old{RB_ENCODING_GET} */ +#define ENCODING_IS_ASCII8BIT(obj) RB_ENCODING_IS_ASCII8BIT(obj) /**< @old{RB_ENCODING_IS_ASCII8BIT} */ +#define ENCODING_MAXNAMELEN RUBY_ENCODING_MAXNAMELEN /**< @old{RUBY_ENCODING_MAXNAMELEN} */ + +/** + * The type of encoding. Our design here is we take Oniguruma/Onigmo's + * multilingualisation schema as our base data structure. + */ +typedef const OnigEncodingType rb_encoding; + +RBIMPL_ATTR_NOALIAS() +/** + * Converts a character option to its encoding. It only supports a very + * limited set of Japanese encodings due to its Japanese origin. Ruby still + * has this in-core for backwards compatibility. But new codes must not bother + * such concept like one-character encoding option. Consider deprecated in + * practice. + * + * @param[in] c One of `['n', 'e', 's', 'u', 'i', 'x', 'm']`. + * @param[out] option Return buffer. + * @param[out] kcode Return buffer. + * @retval 1 `c` understood properly. + * @retval 0 `c` is not understood. + * @post `option` is a ::OnigOptionType. + * @post `kcode` is an enum `ruby_preserved_encindex`. + * + * @internal + * + * `kcode` is opaque because `ruby_preserved_encindex` is not visible from + * extension libraries. But who cares? + */ +int rb_char_to_option_kcode(int c, int *option, int *kcode); + +/** + * Creates a new encoding, using the passed one as a template. + * + * @param[in] name Name of the creating encoding. + * @param[in] src Template. + * @exception rb_eArgError Duplicated or malformed `name`. + * @return Replicated new encoding's index. + * @post Encoding named `name` is created as a copy of `src`, whose index + * is the return value. + * + * @internal + * + * `name` can be `NULL`, but that just raises an exception. OTOH it seems no + * sanity check is done against `src`...? + */ +int rb_enc_replicate(const char *name, rb_encoding *src); + +/** + * Creates a new "dummy" encoding. Roughly speaking, an encoding is dummy when + * it is stateful. Notable example of dummy encoding are those defined in + * ISO/IEC 2022 + * + * @param[in] name Name of the creating encoding. + * @exception rb_eArgError Duplicated or malformed `name`. + * @return New dummy encoding's index. + * @post Encoding named `name` is created, whose index is the return + * value. + */ +int rb_define_dummy_encoding(const char *name); + +RBIMPL_ATTR_PURE() +/** + * Queries if the passed encoding is dummy. + * + * @param[in] enc Encoding in question. + * @retval 1 It is. + * @retval 0 It isn't. + */ +int rb_enc_dummy_p(rb_encoding *enc); + +RBIMPL_ATTR_PURE() +/** + * Queries the index of the encoding. An encoding's index is a Ruby-local + * concept. It is a (sequential) number assigned to each encoding. + * + * @param[in] enc Encoding in question. + * @return Its index. + * @note You can pass null pointers to this function. It is equivalent + * to rb_usascii_encindex() then. + */ +int rb_enc_to_index(rb_encoding *enc); + +/** + * Queries the index of the encoding of the passed object, if any. + * + * @param[in] obj Object in question. + * @retval -1 `obj` is incapable of having an encoding. + * @retval otherwise `obj`'s encoding's index. + */ +int rb_enc_get_index(VALUE obj); + +/** + * @alias{rb_enc_get_index} + * + * @internal + * + * Implementation wise this is not a verbatim alias of rb_enc_get_index(). But + * the API is consistent. Don't bother. + */ +static inline int +RB_ENCODING_GET(VALUE obj) +{ + int encindex = RB_ENCODING_GET_INLINED(obj); + + if (encindex == RUBY_ENCODING_INLINE_MAX) { + return rb_enc_get_index(obj); + } + else { + return encindex; + } +} + +/** + * Destructively assigns an encoding (via its index) to an object. + * + * @param[out] obj Object in question. + * @param[in] encindex An encoding index. + * @exception rb_eFrozenError `obj` is frozen. + * @exception rb_eArgError `obj` is incapable of having an encoding. + * @exception rb_eEncodingError `encindex` is out of bounds. + * @exception rb_eLoadError Failed to load the encoding. + */ +void rb_enc_set_index(VALUE obj, int encindex); + +/** @alias{rb_enc_set_index} */ +static inline void +RB_ENCODING_SET(VALUE obj, int encindex) +{ + rb_enc_set_index(obj, encindex); +} + +/** + * This is #RB_ENCODING_SET + RB_ENC_CODERANGE_SET combo. The object must be + * capable of having inline encoding. Using this macro needs deep + * understanding of bit level object binary layout. + * + * @param[out] obj Target object. + * @param[in] encindex Encoding in encindex format. + * @param[in] cr An enum ::ruby_coderange_type. + * @post `obj`'s encoding is `encindex`. + * @post `obj`'s code range is `cr`. + */ +static inline void +RB_ENCODING_CODERANGE_SET(VALUE obj, int encindex, enum ruby_coderange_type cr) +{ + RB_ENCODING_SET(obj, encindex); + RB_ENC_CODERANGE_SET(obj, cr); +} + +RBIMPL_ATTR_PURE() +/** + * Queries if the passed object can have its encoding. + * + * @param[in] obj Object in question. + * @retval 1 It can. + * @retval 0 It cannot. + */ +int rb_enc_capable(VALUE obj); + +/** + * Queries the index of the encoding. + * + * @param[in] name Name of the encoding to find. + * @exception rb_eArgError No such encoding named `name`. + * @retval -1 `name` exists, but unable to load. + * @retval otherwise Index of encoding named `name`. + */ +int rb_enc_find_index(const char *name); + +/** + * Registers an "alias" name. In the wild, an encoding can be called using + * multiple names. For instance an encoding known as `"CP932"` is also called + * `"SJIS"` on occasions. This API registers such relationships. + * + * @param[in] alias New name. + * @param[in] orig Old name. + * @exception rb_eArgError `alias` is duplicated or malformed. + * @retval -1 Failed to load `orig`. + * @retval otherwise The index of `orig` and `alias`. + * @post `alias` is a synonym of `orig`. They refer to the identical + * encoding. + */ +int rb_enc_alias(const char *alias, const char *orig); + +/** + * Obtains a encoding index from a wider range of objects (than + * rb_enc_find_index()). + * + * @param[in] obj An ::rb_cEncoding, or its name in ::rb_cString. + * @retval -1 `obj` is unexpected type/contents. + * @retval otherwise Index corresponding to `obj`. + */ +int rb_to_encoding_index(VALUE obj); + +/** + * Identical to rb_find_encoding(), except it raises an exception instead of + * returning NULL. + * + * @param[in] obj An ::rb_cEncoding, or its name in ::rb_cString. + * @exception rb_eTypeError `obj` is neither ::rb_cEncoding nor ::rb_cString. + * @exception rb_eArgError `obj` is an unknown encoding name. + * @return Encoding of `obj`. + */ +rb_encoding *rb_to_encoding(VALUE obj); + +/** + * Identical to rb_to_encoding_index(), except the return type. + * + * @param[in] obj An ::rb_cEncoding, or its name in ::rb_cString. + * @exception rb_eTypeError `obj` is neither ::rb_cEncoding nor ::rb_cString. + * @retval NULL No such encoding. + * @return otherwise Encoding of `obj`. + */ +rb_encoding *rb_find_encoding(VALUE obj); + +/** + * Identical to rb_enc_get_index(), except the return type. + * + * @param[in] obj Object in question. + * @retval NULL Obj is incapable of having an encoding. + * @retval otherwise `obj`'s encoding. + */ +rb_encoding *rb_enc_get(VALUE obj); + +/** + * Look for the "common" encoding between the two. One character can or cannot + * be expressed depending on an encoding. This function finds the super-set of + * encodings that satisfy contents of both arguments. If that is impossible + * returns NULL. + * + * @param[in] str1 An object. + * @param[in] str2 Another object. + * @retval NULL No encoding can satisfy both at once. + * @retval otherwise Common encoding between the two. + * @note Arguments can be non-string, e.g. Regexp. + */ +rb_encoding *rb_enc_compatible(VALUE str1, VALUE str2); + +/** + * Identical to rb_enc_compatible(), except it raises an exception instead of + * returning NULL. + * + * @param[in] str1 An object. + * @param[in] str2 Another object. + * @exception rb_eEncCompatError No encoding can satisfy both. + * @return Common encoding between the two. + * @note Arguments can be non-string, e.g. Regexp. + */ +rb_encoding *rb_enc_check(VALUE str1,VALUE str2); + +/** + * Identical to rb_enc_set_index(), except it additionally does contents fix-up + * depending on the passed object. It for instance changes the byte length of + * terminating `U+0000` according to the passed encoding. + * + * @param[out] obj Object in question. + * @param[in] encindex An encoding index. + * @exception rb_eFrozenError `obj` is frozen. + * @exception rb_eArgError `obj` is incapable of having an encoding. + * @exception rb_eEncodingError `encindex` is out of bounds. + * @exception rb_eLoadError Failed to load the encoding. + * @return The passed `obj`. + * @post `obj`'s contents might be fixed according to `encindex`. + */ +VALUE rb_enc_associate_index(VALUE obj, int encindex); + +/** + * Identical to rb_enc_associate_index(), except it takes an encoding itself + * instead of its index. + * + * @param[out] obj Object in question. + * @param[in] enc An encoding. + * @exception rb_eFrozenError `obj` is frozen. + * @exception rb_eArgError `obj` is incapable of having an encoding. + * @return The passed `obj`. + * @post `obj`'s contents might be fixed according to `enc`. + */ +VALUE rb_enc_associate(VALUE obj, rb_encoding *enc); + +/** + * Destructively copies the encoding of the latter object to that of former + * one. It can also be seen as a routine identical to + * rb_enc_associate_index(), except it takes an object's encoding instead of an + * encoding's index. + * + * @param[out] dst Object to modify. + * @param[in] src Object to reference. + * @exception rb_eFrozenError `dst` is frozen. + * @exception rb_eArgError `dst` is incapable of having an encoding. + * @exception rb_eEncodingError `src` is incapable of having an encoding. + * @post `dst`'s encoding is that of `src`'s. + */ +void rb_enc_copy(VALUE dst, VALUE src); + + +/** + * Identical to rb_find_encoding(), except it takes an encoding index instead + * of a Ruby object. + * + * @param[in] idx An encoding index. + * @retval NULL No such encoding. + * @retval otherwise An encoding whose index is `idx`. + */ +rb_encoding *rb_enc_from_index(int idx); + +/** + * Identical to rb_find_encoding(), except it takes a C's string instead of + * Ruby's. + * + * @param[in] name Name of the encoding to query. + * @retval NULL No such encoding. + * @retval otherwise An encoding whose index is `idx`. + */ +rb_encoding *rb_enc_find(const char *name); + +/** + * Queries the (canonical) name of the passed encoding. + * + * @param[in] enc An encoding. + * @return Its name. + */ +static inline const char * +rb_enc_name(rb_encoding *enc) +{ + return enc->name; +} + +/** + * Queries the minimum number of bytes that the passed encoding needs to + * represent a character. For ASCII and compatible encodings this is typically + * 1. There are however encodings whose minimum is not 1; they are + * historically called wide characters. + * + * @param[in] enc An encoding. + * @return Its least possible number of bytes except 0. + */ +static inline int +rb_enc_mbminlen(rb_encoding *enc) +{ + return enc->min_enc_len; +} + +/** + * Queries the maximum number of bytes that the passed encoding needs to + * represent a character. Fixed-width encodings have the same value for this + * one and #rb_enc_mbminlen. However there are variable-width encodings. + * UTF-8, for instance, takes from 1 up to 6 bytes. + * + * @param[in] enc An encoding. + * @return Its maximum possible number of bytes of a character. + */ +static inline int +rb_enc_mbmaxlen(rb_encoding *enc) +{ + return enc->max_enc_len; +} + +/** + * Queries the number of bytes of the character at the passed pointer. + * + * @param[in] p Pointer to a character's first byte. + * @param[in] e End of the string that has `p`. + * @param[in] enc Encoding of the string. + * @return If the character at `p` does not end until `e`, number of bytes + * between `p` and `e`. Otherwise the number of bytes that the + * character at `p` is encoded. + * + * @internal + * + * Strictly speaking there are chances when `p` points to a middle byte of a + * wide character. This function returns "the number of bytes from `p` to + * nearest of either `e` or the next character boundary", if you go strict. + */ +int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc); + +/** + * Identical to rb_enc_mbclen() unless the character at `p` overruns `e`. That + * can happen for instance when you read from a socket and its partial read + * cuts a wide character in-between. In those situations this function + * "estimates" theoretical length of the character in question. Typically it + * tends to be possible to know how many bytes a character needs before + * actually reaching its end; for instance UTF-8 encodes a character's length + * in the first byte of it. This function returns that info. + * + * @note This implies that the string is not broken. + * + * @param[in] p Pointer to the character's first byte. + * @param[in] e End of the string that has `p`. + * @param[in] enc Encoding of the string. + * @return Number of bytes of character at `p`, measured or estimated. + */ +int rb_enc_fast_mbclen(const char *p, const char *e, rb_encoding *enc); + +/** + * Queries the number of bytes of the character at the passed pointer. This + * function returns 3 different types of information: + * + * ```CXX + * auto n = rb_enc_precise_mbclen(p, q, r); + * + * if (ONIGENC_MBCLEN_CHARFOUND_P(n)) { + * // Character found. Normal return. + * auto found_length = ONIGENC_MBCLEN_CHARFOUND_LEN(n); + * } + * else if (ONIGENC_MBCLEN_NEEDMORE_P(n)) { + * // Character overruns past `q`; needs more. + * auto requested_length = ONIGENC_MBCLEN_NEEDMORE_LEN(n); + * } + * else { + * // `p` is broken. + * assert(ONIGENC_MBCLEN_INVALID_P(n)); + * } + * ``` + * + * @param[in] p Pointer to the character's first byte. + * @param[in] e End of the string that has `p`. + * @param[in] enc Encoding of the string. + * @return Encoded read/needed number of bytes (see above). + */ +int rb_enc_precise_mbclen(const char *p, const char *e, rb_encoding *enc); + +#define MBCLEN_CHARFOUND_P(ret) ONIGENC_MBCLEN_CHARFOUND_P(ret) /**< @old{ONIGENC_MBCLEN_CHARFOUND_P} */ +#define MBCLEN_CHARFOUND_LEN(ret) ONIGENC_MBCLEN_CHARFOUND_LEN(ret) /**< @old{ONIGENC_MBCLEN_CHARFOUND_LEN} */ +#define MBCLEN_INVALID_P(ret) ONIGENC_MBCLEN_INVALID_P(ret) /**< @old{ONIGENC_MBCLEN_INVALID_P} */ +#define MBCLEN_NEEDMORE_P(ret) ONIGENC_MBCLEN_NEEDMORE_P(ret) /**< @old{ONIGENC_MBCLEN_NEEDMORE_P} */ +#define MBCLEN_NEEDMORE_LEN(ret) ONIGENC_MBCLEN_NEEDMORE_LEN(ret) /**< @old{ONIGENC_MBCLEN_NEEDMORE_LEN} */ + +/** + * Queries the code point of character pointed by the passed pointer. If that + * code point is included in ASCII that code point is returned. Otherwise -1. + * This can be different from just looking at the first byte. For instance it + * reads 2 bytes in case of UTF-16BE. + * + * @param[in] p Pointer to the character's first byte. + * @param[in] e End of the string that has `p`. + * @param[in] len Return buffer. + * @param[in] enc Encoding of the string. + * @retval -1 The character at `p` is not i ASCII. + * @retval otherwise A code point of the character at `p`. + * @post `len` (if set) is the number of bytes of `p`. + */ +int rb_enc_ascget(const char *p, const char *e, int *len, rb_encoding *enc); + +/** + * Queries the code point of character pointed by the passed pointer. + * Exceptions happen in case of broken input. + * + * @param[in] p Pointer to the character's first byte. + * @param[in] e End of the string that has `p`. + * @param[in] len Return buffer. + * @param[in] enc Encoding of the string. + * @exception rb_eArgError `p` is broken. + * @return Code point of the character pointed by `p`. + * @post `len` (if set) is the number of bytes of `p`. + */ +unsigned int rb_enc_codepoint_len(const char *p, const char *e, int *len, rb_encoding *enc); + +/** + * Queries the code point of character pointed by the passed pointer. + * Exceptions happen in case of broken input. + * + * @deprecated Use rb_enc_codepoint_len() instead. + * @param[in] p Pointer to the character's first byte. + * @param[in] e End of the string that has `p`. + * @param[in] enc Encoding of the string. + * @exception rb_eArgError `p` is broken. + * @return Code point of the character pointed by `p`. + * + * @internal + * + * @matz says in commit 91e5ba1cb865a2385d3e1cbfacd824496898e098 that the line + * below is a "prototype for obsolete function". However even today there + * still are some use cases of it throughout our repository. It seems it has + * its own niche. + */ +static inline unsigned int +rb_enc_codepoint(const char *p, const char *e, rb_encoding *enc) +{ + return rb_enc_codepoint_len(p, e, 0, enc); + /* ^^^ + * This can be `NULL` in C, `nullptr` in C++, and `0` for both. + * We choose the most portable one here. + */ +} + + +/** + * Identical to rb_enc_codepoint(), except it assumes the passed character is + * not broken. + * + * @param[in] p Pointer to the character's first byte. + * @param[in] e End of the string that has `p`. + * @param[in] enc Encoding of the string. + * @return Code point of the character pointed by `p`. + */ +static inline OnigCodePoint +rb_enc_mbc_to_codepoint(const char *p, const char *e, rb_encoding *enc) +{ + const OnigUChar *up = RBIMPL_CAST((const OnigUChar *)p); + const OnigUChar *ue = RBIMPL_CAST((const OnigUChar *)e); + + return ONIGENC_MBC_TO_CODE(enc, up, ue); +} + +/** + * Queries the number of bytes requested to represent the passed code point + * using the passed encoding. + * + * @param[in] code Code point in question. + * @param[in] enc Encoding to convert the code into a byte sequence. + * @exception rb_eArgError `enc` does not glean `code`. + * @return Number of bytes requested to represent `code` using `enc`. + */ +int rb_enc_codelen(int code, rb_encoding *enc); + +/** + * Identical to rb_enc_codelen(), except it returns 0 for invalid code points. + * + * @param[in] c Code point in question. + * @param[in] enc Encoding to convert `c` into a byte sequence. + * @retval 0 `c` is invalid. + * @return otherwise Number of bytes needed for `enc` to encode `c`. + */ +static inline int +rb_enc_code_to_mbclen(int c, rb_encoding *enc) +{ + OnigCodePoint uc = RBIMPL_CAST((OnigCodePoint)c); + + return ONIGENC_CODE_TO_MBCLEN(enc, uc); +} + +/** + * Identical to rb_enc_uint_chr(), except it writes back to the passed buffer + * instead of allocating one. + * + * @param[in] c Code point. + * @param[out] buf Return buffer. + * @param[in] enc Target encoding scheme. + * @retval <= 0 `c` is invalid in `enc`. + * @return otherwise Number of bytes written to `buf`. + * @post `c` is encoded according to `enc`, then written to `buf`. + * + * @internal + * + * The second argument must be typed. But its current usages prevent us from + * being any stricter than this. :FIXME: + */ +static inline int +rb_enc_mbcput(unsigned int c, void *buf, rb_encoding *enc) +{ + OnigCodePoint uc = RBIMPL_CAST((OnigCodePoint)c); + OnigUChar *ubuf = RBIMPL_CAST((OnigUChar *)buf); + + return ONIGENC_CODE_TO_MBC(enc, uc, ubuf); +} + +/** + * Queries the previous (left) character. + * + * @param[in] s Start of the string. + * @param[in] p Pointer to a character. + * @param[in] e End of the string. + * @param[in] enc Encoding. + * @retval NULL No previous character. + * @retval otherwise Pointer to the head of the previous character. + */ +static inline char * +rb_enc_prev_char(const char *s, const char *p, const char *e, rb_encoding *enc) +{ + const OnigUChar *us = RBIMPL_CAST((const OnigUChar *)s); + const OnigUChar *up = RBIMPL_CAST((const OnigUChar *)p); + const OnigUChar *ue = RBIMPL_CAST((const OnigUChar *)e); + OnigUChar *ur = onigenc_get_prev_char_head(enc, us, up, ue); + + return RBIMPL_CAST((char *)ur); +} + +/** + * Queries the left boundary of a character. This function takes a pointer + * that is not necessarily a head of a character, and searches for its head. + * + * @param[in] s Start of the string. + * @param[in] p Pointer to a possibly-middle of a character. + * @param[in] e End of the string. + * @param[in] enc Encoding. + * @return Pointer to the head of the character that contains `p`. + */ +static inline char * +rb_enc_left_char_head(const char *s, const char *p, const char *e, rb_encoding *enc) +{ + const OnigUChar *us = RBIMPL_CAST((const OnigUChar *)s); + const OnigUChar *up = RBIMPL_CAST((const OnigUChar *)p); + const OnigUChar *ue = RBIMPL_CAST((const OnigUChar *)e); + OnigUChar *ur = onigenc_get_left_adjust_char_head(enc, us, up, ue); + + return RBIMPL_CAST((char *)ur); +} + +/** + * Queries the right boundary of a character. This function takes a pointer + * that is not necessarily a head of a character, and searches for its tail. + * + * @param[in] s Start of the string. + * @param[in] p Pointer to a possibly-middle of a character. + * @param[in] e End of the string. + * @param[in] enc Encoding. + * @return Pointer to the end of the character that contains `p`. + */ +static inline char * +rb_enc_right_char_head(const char *s, const char *p, const char *e, rb_encoding *enc) +{ + const OnigUChar *us = RBIMPL_CAST((const OnigUChar *)s); + const OnigUChar *up = RBIMPL_CAST((const OnigUChar *)p); + const OnigUChar *ue = RBIMPL_CAST((const OnigUChar *)e); + OnigUChar *ur = onigenc_get_right_adjust_char_head(enc, us, up, ue); + + return RBIMPL_CAST((char *)ur); +} + +/** + * Scans the string backwards for n characters. + * + * @param[in] s Start of the string. + * @param[in] p Pointer to a character. + * @param[in] e End of the string. + * @param[in] n Steps. + * @param[in] enc Encoding. + * @retval NULL There are no `n` characters left. + * @retval otherwise Pointer to `n` character before `p`. + */ +static inline char * +rb_enc_step_back(const char *s, const char *p, const char *e, int n, rb_encoding *enc) +{ + const OnigUChar *us = RBIMPL_CAST((const OnigUChar *)s); + const OnigUChar *up = RBIMPL_CAST((const OnigUChar *)p); + const OnigUChar *ue = RBIMPL_CAST((const OnigUChar *)e); + const OnigUChar *ur = onigenc_step_back(enc, us, up, ue, n); + + return RBIMPL_CAST((char *)ur); +} + +/** + * @private + * + * This is an implementation detail of rb_enc_asciicompat(). People don't use + * it directly. Just always use rb_enc_asciicompat(). + * + * @param[in] enc Encoding in question. + * @retval 1 It is ASCII compatible. + * @retval 0 It isn't. + */ +static inline int +rb_enc_asciicompat_inline(rb_encoding *enc) +{ + return rb_enc_mbminlen(enc)==1 && !rb_enc_dummy_p(enc); +} + +/** + * Queries if the passed encoding is _in some sense_ compatible with ASCII. + * The concept of ASCII compatibility is nuanced, and private to our + * implementation. For instance SJIS is ASCII compatible to us, despite their + * having different characters at code point `0x5C`. This is based on some + * practical consideration that Japanese people confuses SJIS to be "upper + * compatible" with ASCII (which is in fact a wrong idea, but we just don't go + * strict here). An example of ASCII incompatible encoding is UTF-16. UTF-16 + * shares code points with ASCII, but employs a completely different encoding + * scheme. + * + * @param[in] enc Encoding in question. + * @retval 0 It is incompatible. + * @retval 1 It is compatible. + */ +static inline bool +rb_enc_asciicompat(rb_encoding *enc) +{ + if (rb_enc_mbminlen(enc) != 1) { + return false; + } + else if (rb_enc_dummy_p(enc)) { + return false; + } + else { + return true; + } +} + +/** + * Queries if the passed string is in an ASCII-compatible encoding. + * + * @param[in] str A Ruby's string to query. + * @retval 0 `str` is not a String, or an ASCII-incompatible string. + * @retval 1 Otherwise. + */ +static inline bool +rb_enc_str_asciicompat_p(VALUE str) +{ + rb_encoding *enc = rb_enc_get(str); + + return rb_enc_asciicompat(enc); +} + +/** + * Queries the Ruby-level counterpart instance of ::rb_cEncoding that + * corresponds to the passed encoding. + * + * @param[in] enc An encoding + * @retval RUBY_Qnil `enc` is a null pointer. + * @retval otherwise An instance of ::rb_cEncoding. + */ +VALUE rb_enc_from_encoding(rb_encoding *enc); + +RBIMPL_ATTR_PURE() +/** + * Queries if the passed encoding is either one of UTF-8/16/32. + * + * @note It does not take UTF-7, which we actually support, into account. + * + * @param[in] enc Encoding in question. + * @retval 0 It is not a Unicode variant. + * @retval otherwise It is. + * + * @internal + * + * In reality it returns 1/0, but the value is abstracted as + * `ONIGENC_FLAG_UNICODE`. + */ +int rb_enc_unicode_p(rb_encoding *enc); + +RBIMPL_ATTR_RETURNS_NONNULL() +/** + * Queries the encoding that represents ASCII-8BIT a.k.a. binary. + * + * @return The encoding that represents ASCII-8BIT. + * + * @internal + * + * This can not return NULL once the process properly boots up. + */ +rb_encoding *rb_ascii8bit_encoding(void); + +RBIMPL_ATTR_RETURNS_NONNULL() +/** + * Queries the encoding that represents UTF-8. + * + * @return The encoding that represents UTF-8. + * + * @internal + * + * This can not return NULL once the process properly boots up. + */ +rb_encoding *rb_utf8_encoding(void); + +RBIMPL_ATTR_RETURNS_NONNULL() +/** + * Queries the encoding that represents US-ASCII. + * + * @return The encoding that represents US-ASCII. + * + * @internal + * + * This can not return NULL once the process properly boots up. + */ +rb_encoding *rb_usascii_encoding(void); + +/** + * Queries the encoding that represents the current locale. + * + * @return The encoding that represents the process' locale. + * + * @internal + * + * This is dynamic. If you change the process' locale by e.g. calling + * `setlocale(3)`, that should also change the return value of this function. + * + * There is no official way for Ruby scripts to manipulate locales, though. + */ +rb_encoding *rb_locale_encoding(void); + +/** + * Queries the "filesystem" encoding. This is the encoding that ruby expects + * info from the OS' file system are in. This affects for instance return + * value of rb_dir_getwd(). Most notably on Windows it can be an alias of OS + * codepage. Most notably on Linux users can set this via default external + * encoding. + * + * @return The "filesystem" encoding. + */ +rb_encoding *rb_filesystem_encoding(void); + +/** + * Queries the "default external" encoding. This is used to interact with + * outer-process things such as File. Though not recommended, you can set this + * using rb_enc_set_default_external(). + * + * @return The "default external" encoding. + */ +rb_encoding *rb_default_external_encoding(void); + +/** + * Queries the "default internal" encoding. This could be a null pointer. + * Otherwise, outer-process info are transcoded from default external encoding + * to this one during reading from an IO. + * + * @return The "default internal" encoding (if any). + */ +rb_encoding *rb_default_internal_encoding(void); + +#ifndef rb_ascii8bit_encindex +RBIMPL_ATTR_CONST() +/** + * Identical to rb_ascii8bit_encoding(), except it returns the encoding's index + * instead of the encoding itself. + * + * @return The index of encoding of ASCII-8BIT. + * + * @internal + * + * This happens to be 0. + */ +int rb_ascii8bit_encindex(void); +#endif + +/** + * Queries if the passed object is in ascii 8bit (== binary) encoding. The + * object must be capable of having inline encoding. Using this macro needs + * deep understanding of bit level object binary layout. + * + * @param[in] obj An object to check. + * @retval 1 It is. + * @retval 0 It isn't. + */ +static inline bool +RB_ENCODING_IS_ASCII8BIT(VALUE obj) +{ + return RB_ENCODING_GET_INLINED(obj) == rb_ascii8bit_encindex(); +} + +#ifndef rb_utf8_encindex +RBIMPL_ATTR_CONST() +/** + * Identical to rb_utf8_encoding(), except it returns the encoding's index + * instead of the encoding itself. + * + * @return The index of encoding of UTF-8. + */ +int rb_utf8_encindex(void); +#endif + +#ifndef rb_usascii_encindex +RBIMPL_ATTR_CONST() +/** + * Identical to rb_usascii_encoding(), except it returns the encoding's index + * instead of the encoding itself. + * + * @return The index of encoding of UTF-8. + */ +int rb_usascii_encindex(void); +#endif + +/** + * Identical to rb_locale_encoding(), except it returns the encoding's index + * instead of the encoding itself. + * + * @return The index of the locale encoding. + */ +int rb_locale_encindex(void); + +/** + * Identical to rb_filesystem_encoding(), except it returns the encoding's + * index instead of the encoding itself. + * + * @return The index of the filesystem encoding. + */ +int rb_filesystem_encindex(void); + +/** + * Identical to rb_default_external_encoding(), except it returns the + * Ruby-level counterpart instance of ::rb_cEncoding that corresponds to the + * default external encoding. + * + * @return An instance of ::rb_cEncoding of default external. + */ +VALUE rb_enc_default_external(void); + +/** + * Identical to rb_default_internal_encoding(), except it returns the + * Ruby-level counterpart instance of ::rb_cEncoding that corresponds to the + * default internal encoding. + * + * @return An instance of ::rb_cEncoding of default internal. + */ +VALUE rb_enc_default_internal(void); + +/** + * Destructively assigns the passed encoding as the default external encoding. + * You should not use this API. It has process-global side effects. Also it + * doesn't change encodings of strings that have already been read. + * + * @param[in] encoding Ruby level encoding. + * @exception rb_eArgError `encoding` is ::RUBY_Qnil. + * @post The default external encoding is `encoding`. + */ +void rb_enc_set_default_external(VALUE encoding); + +/** + * Destructively assigns the passed encoding as the default internal encoding. + * You should not use this API. It has process-global side effects. Also it + * doesn't change encodings of strings that have already been read. + * + * @param[in] encoding Ruby level encoding. + * @post The default internal encoding is `encoding`. + * @note Unlike rb_enc_set_default_external() you can pass ::RUBY_Qnil. + */ +void rb_enc_set_default_internal(VALUE encoding); + +/** + * Returns a platform-depended "charmap" of the current locale. This + * information is called a "Codeset name" in IEEE 1003.1 section 13 + * (``). This is a very low-level API. The return value can have + * no corresponding encoding when passed to rb_find_encoding(). + * + * @param[in] klass Ignored for no reason (why...) + * @return The low-level locale charmap, in Ruby's String. + */ +VALUE rb_locale_charmap(VALUE klass); + +RBIMPL_SYMBOL_EXPORT_END() + +/** @cond INTERNAL_MACRO */ +#define RB_ENCODING_GET RB_ENCODING_GET +#define RB_ENCODING_GET_INLINED RB_ENCODING_GET_INLINED +#define RB_ENCODING_IS_ASCII8BIT RB_ENCODING_IS_ASCII8BIT +#define RB_ENCODING_SET RB_ENCODING_SET +#define RB_ENCODING_SET_INLINED RB_ENCODING_SET_INLINED +#define rb_enc_asciicompat rb_enc_asciicompat +#define rb_enc_code_to_mbclen rb_enc_code_to_mbclen +#define rb_enc_codepoint rb_enc_codepoint +#define rb_enc_left_char_head rb_enc_left_char_head +#define rb_enc_mbc_to_codepoint rb_enc_mbc_to_codepoint +#define rb_enc_mbcput rb_enc_mbcput +#define rb_enc_mbmaxlen rb_enc_mbmaxlen +#define rb_enc_mbminlen rb_enc_mbminlen +#define rb_enc_name rb_enc_name +#define rb_enc_prev_char rb_enc_prev_char +#define rb_enc_right_char_head rb_enc_right_char_head +#define rb_enc_step_back rb_enc_step_back +#define rb_enc_str_asciicompat_p rb_enc_str_asciicompat_p +/** @endcond */ + +#endif /* RUBY_INTERNAL_ENCODING_ENCODING_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/pathname.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/pathname.h new file mode 100644 index 0000000..0b5e85a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/pathname.h @@ -0,0 +1,184 @@ +#ifndef RUBY_INTERNAL_ENCODING_PATHNAME_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERNAL_ENCODING_PATHNAME_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to manipulate encodings of pathnames. + */ + +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/encoding/encoding.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() +RBIMPL_ATTR_NONNULL(()) +/** + * Returns a path component directly adjacent to the passed pointer. + * + * ``` + * "/multi/byte/encoded/pathname.txt" + * ^ ^ ^ + * | | +--- end + * | +--- @return + * +--- path + * ``` + * + * @param[in] path Where to start scanning. + * @param[in] end End of the path string. + * @param[in] enc Encoding of the string. + * @return A pointer in the passed string where the next path component + * resides, or `end` if there is no next path component. + */ +char *rb_enc_path_next(const char *path, const char *end, rb_encoding *enc); + +RBIMPL_ATTR_NONNULL(()) +/** + * Seeks for non-prefix part of a pathname. This can be a no-op when the OS + * has no such concept like a path prefix. But there are OSes where path + * prefixes do exist. + * + * ``` + * "C:\multi\byte\encoded\pathname.txt" + * ^ ^ ^ + * | | +--- end + * | +--- @return + * +--- path + * ``` + * + * @param[in] path Where to start scanning. + * @param[in] end End of the path string. + * @param[in] enc Encoding of the string. + * @return A pointer in the passed string where non-prefix part starts, or + * `path` if the OS does not have path prefix. + */ +char *rb_enc_path_skip_prefix(const char *path, const char *end, rb_encoding *enc); + +RBIMPL_ATTR_NONNULL(()) +/** + * Returns the last path component. + * + * ``` + * "/multi/byte/encoded/pathname.txt" + * ^ ^ ^ + * | | +--- end + * | +--- @return + * +--- path + * ``` + * + * @param[in] path Where to start scanning. + * @param[in] end End of the path string. + * @param[in] enc Encoding of the string. + * @return A pointer in the passed string where the last path component + * resides, or `end` if there is no more path component. + */ +char *rb_enc_path_last_separator(const char *path, const char *end, rb_encoding *enc); + +RBIMPL_ATTR_NONNULL(()) +/** + * This just returns the passed end basically. It makes difference in case the + * passed string ends with tons of path separators like the following: + * + * ``` + * "/path/that/ends/with/lots/of/slashes//////////////" + * ^ ^ ^ + * | | +--- end + * | +--- @return + * +--- path + * ``` + * + * @param[in] path Where to start scanning. + * @param[in] end End of the path string. + * @param[in] enc Encoding of the string. + * @return A pointer in the passed string where the trailing path + * separators start, or `end` if there is no trailing path + * separators. + * + * @internal + * + * It seems this function was introduced to mimic what POSIX says about + * `basename(3)`. + */ +char *rb_enc_path_end(const char *path, const char *end, rb_encoding *enc); + +RBIMPL_ATTR_NONNULL((1, 4)) +/** + * Our own encoding-aware version of `basename(3)`. Normally, this function + * returns the last path component of the given name. However in case the + * passed name ends with a path separator, it returns the name of the + * directory, not the last (empty) component. Also if the passed name is a + * root directory, it returns that root directory. Note however that Windows + * filesystem have drive letters, which this function does not return. + * + * @param[in] name Target path. + * @param[out] baselen Return buffer. + * @param[in,out] alllen Number of bytes of `name`. + * @param[enc] enc Encoding of `name`. + * @return The rightmost component of `name`. + * @post `baselen`, if passed, is updated to be the number of bytes + * of the returned basename. + * @post `alllen`, if passed, is updated to be the number of bytes of + * strings not considered as the basename. + */ +const char *ruby_enc_find_basename(const char *name, long *baselen, long *alllen, rb_encoding *enc); + +RBIMPL_ATTR_NONNULL((1, 3)) +/** + * Our own encoding-aware version of `extname`. This function first applies + * rb_enc_path_last_separator() to the passed name and only concerns its return + * value (ignores any parent directories). This function returns complicated + * results: + * + * ```CXX + * auto path = "..."; + * auto len = strlen(path); + * auto ret = ruby_enc_find_extname(path, &len, rb_ascii8bit_encoding()); + * + * switch(len) { + * case 0: + * if (ret == 0) { + * // `path` is a file without extensions. + * } + * else { + * // `path` is a dotfile. + * // `ret` is the file's name. + * } + * break; + * + * case 1: + * // `path` _ends_ with a dot. + * // `ret` is that dot. + * break; + * + * default: + * // `path` has an extension. + * // `ret` is that extension. + * } + * ``` + * + * @param[in] name Target path. + * @param[in,out] len Number of bytes of `name`. + * @param[in] enc Encoding of `name`. + * @return See above. + * @post `len`, if passed, is updated (see above). + */ +const char *ruby_enc_find_extname(const char *name, long *len, rb_encoding *enc); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_INTERNAL_ENCODING_PATHNAME_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/re.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/re.h new file mode 100644 index 0000000..d0de23b --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/re.h @@ -0,0 +1,46 @@ +#ifndef RUBY_INTERNAL_ENCODING_RE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERNAL_ENCODING_RE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to manipulate encodings of symbols. + */ + +#include "ruby/internal/dllexport.h" +#include "ruby/internal/encoding/encoding.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Identical to rb_reg_new(), except it additionally takes an encoding. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @param[in] enc Encoding of `ptr`. + * @param[in] opts Options e.g. ONIG_OPTION_MULTILINE. + * @exception rb_eRegexpError Failed to compile `ptr`. + * @return An allocated new instance of ::rb_cRegexp, of `enc` encoding, + * whose expression is compiled according to `ptr`. + */ +VALUE rb_enc_reg_new(const char *ptr, long len, rb_encoding *enc, int opts); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_INTERNAL_ENCODING_RE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/sprintf.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/sprintf.h new file mode 100644 index 0000000..cb8737b --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/sprintf.h @@ -0,0 +1,78 @@ +#ifndef RUBY_INTERNAL_ENCODING_SPRINTF_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERNAL_ENCODING_SPRINTF_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to manipulate encodings of symbols. + */ +#include "ruby/internal/config.h" +#include +#include "ruby/internal/attr/format.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/encoding/encoding.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) +/** + * Identical to rb_sprintf(), except it additionally takes an encoding. The + * passed encoding rules both the incoming format specifier and the resulting + * string. + * + * @param[in] enc Encoding of `fmt`. + * @param[in] fmt A `printf`-like format specifier. + * @param[in] ... Variadic number of contents to format. + * @return A rendered new instance of ::rb_cString, of `enc` encoding. + */ +VALUE rb_enc_sprintf(rb_encoding *enc, const char *fmt, ...); + +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 0) +/** + * Identical to rb_enc_sprintf(), except it takes a `va_list` instead of + * variadic arguments. It can also be seen as a routine identical to + * rb_vsprintf(), except it additionally takes an encoding. + * + * @param[in] enc Encoding of `fmt`. + * @param[in] fmt A `printf`-like format specifier. + * @param[in] ap Contents to format. + * @return A rendered new instance of ::rb_cString, of `enc` encoding. + */ +VALUE rb_enc_vsprintf(rb_encoding *enc, const char *fmt, va_list ap); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((3)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 4) +/** + * Identical to rb_raise(), except it additionally takes an encoding. + * + * @param[in] enc Encoding of the generating exception. + * @param[in] exc A subclass of ::rb_eException. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * @param[in] ... Contents of the message. + * @exception exc The specified exception. + * @note It never returns. + */ +void rb_enc_raise(rb_encoding *enc, VALUE exc, const char *fmt, ...); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_INTERNAL_ENCODING_SPRINTF_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/string.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/string.h new file mode 100644 index 0000000..6ed7ca1 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/string.h @@ -0,0 +1,346 @@ +#ifndef RUBY_INTERNAL_ENCODING_STRING_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERNAL_ENCODING_STRING_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to manipulate encodings of strings. + */ + +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/encoding/encoding.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/intern/string.h" /* rbimpl_strlen */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Identical to rb_enc_str_new(), except it additionally takes an encoding. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @param[in] enc Encoding of `ptr`. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString, of `len` bytes length, of `enc` + * encoding, whose contents are verbatim copy of `ptr`. + * @pre At least `len` bytes of continuous memory region shall be + * accessible via `ptr`. + * @note `enc` can be a null pointer. It can also be seen as a routine + * identical to rb_usascii_str_new() then. + */ +VALUE rb_enc_str_new(const char *ptr, long len, rb_encoding *enc); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Identical to rb_enc_str_new(), except it assumes the passed pointer is a + * pointer to a C string. It can also be seen as a routine identical to + * rb_str_new_cstr(), except it additionally takes an encoding. + * + * @param[in] ptr A C string. + * @param[in] enc Encoding of `ptr`. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString, of `enc` encoding, whose contents + * are verbatim copy of `ptr`. + * @pre `ptr` must not be a null pointer. + * @pre Because `ptr` is a C string it makes no sense for `enc` to be + * something like UTF-32. + * @note `enc` can be a null pointer. It can also be seen as a routine + * identical to rb_usascii_str_new_cstr() then. + */ +VALUE rb_enc_str_new_cstr(const char *ptr, rb_encoding *enc); + +/** + * Identical to rb_enc_str_new(), except it takes a C string literal. It can + * also be seen as a routine identical to rb_str_new_static(), except it + * additionally takes an encoding. + * + * @param[in] ptr A C string literal. + * @param[in] len `strlen(ptr)`. + * @param[in] enc Encoding of `ptr`. + * @exception rb_eArgError `len` out of range of `size_t`. + * @pre `ptr` must be a C string constant. + * @return An instance of ::rb_cString, of `enc` encoding, whose backend + * storage is the passed C string literal. + * @warning It is a very bad idea to write to a C string literal (often + * immediate SEGV shall occur). Consider return values of this + * function be read-only. + * @note `enc` can be a null pointer. It can also be seen as a routine + * identical to rb_usascii_str_new_static() then. + */ +VALUE rb_enc_str_new_static(const char *ptr, long len, rb_encoding *enc); + +/** + * Identical to rb_enc_str_new(), except it returns a "f"string. It can also + * be seen as a routine identical to rb_interned_str(), except it additionally + * takes an encoding. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @param[in] enc Encoding of `ptr`. + * @exception rb_eArgError `len` is negative. + * @return A found or created instance of ::rb_cString, of `len` bytes + * length, of `enc` encoding, whose contents are identical to that + * of `ptr`. + * @pre At least `len` bytes of continuous memory region shall be + * accessible via `ptr`. + * @note `enc` can be a null pointer. + */ +VALUE rb_enc_interned_str(const char *ptr, long len, rb_encoding *enc); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Identical to rb_enc_str_new_cstr(), except it returns a "f"string. It can + * also be seen as a routine identical to rb_interned_str_cstr(), except it + * additionally takes an encoding. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] enc Encoding of `ptr`. + * @return A found or created instance of ::rb_cString of `enc` encoding, + * whose contents are identical to that of `ptr`. + * @pre At least `len` bytes of continuous memory region shall be + * accessible via `ptr`. + * @note `enc` can be a null pointer. + */ +VALUE rb_enc_interned_str_cstr(const char *ptr, rb_encoding *enc); + +/** + * Counts the number of characters of the passed string, according to the + * passed encoding. This has to be complicated. The passed string could be + * invalid and/or broken. This routine would scan from the beginning til the + * end, byte by byte, to seek out character boundaries. Could be super slow. + * + * @param[in] head Leftmost pointer to the string. + * @param[in] tail Rightmost pointer to the string. + * @param[in] enc Encoding of the string. + * @return Number of characters exist in `head` .. `tail`. The definition + * of "character" depends on the passed `enc`. + */ +long rb_enc_strlen(const char *head, const char *tail, rb_encoding *enc); + +/** + * Queries the n-th character. Like rb_enc_strlen() this function can be fast + * or slow depending on the contents. Don't expect characters to be uniformly + * distributed across the entire string. + * + * @param[in] head Leftmost pointer to the string. + * @param[in] tail Rightmost pointer to the string. + * @param[in] nth Requested index of characters. + * @param[in] enc Encoding of the string. + * @return Pointer to the first byte of the character that is `nth` + * character ahead of `head`, or `tail` if there is no such + * character (OOB etc). The definition of "character" depends on + * the passed `enc`. + */ +char *rb_enc_nth(const char *head, const char *tail, long nth, rb_encoding *enc); + +/** + * Identical to rb_enc_get_index(), except the return type. + * + * @param[in] obj Object in question. + * @exception rb_eTypeError `obj` is incapable of having an encoding. + * @return `obj`'s encoding. + */ +VALUE rb_obj_encoding(VALUE obj); + +/** + * Identical to rb_str_cat(), except it additionally takes an encoding. + * + * @param[out] str Destination object. + * @param[in] ptr Contents to append. + * @param[in] len Length of `src`, in bytes. + * @param[in] enc Encoding of `ptr`. + * @exception rb_eArgError `len` is negative. + * @exception rb_eEncCompatError `enc` is not compatible with `str`. + * @return The passed `dst`. + * @post The contents of `ptr` is copied, transcoded into `dst`'s + * encoding, then pasted into `dst`'s end. + */ +VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc); + +/** + * Encodes the passed code point into a series of bytes. + * + * @param[in] code Code point. + * @param[in] enc Target encoding scheme. + * @exception rb_eRangeError `enc` does not glean `code`. + * @return An instance of ::rb_cString, of `enc` encoding, whose sole + * contents is `code` represented in `enc`. + * @note No way to encode code points bigger than UINT_MAX. + * + * @internal + * + * In other languages, APIs like this one could be seen as the primitive + * routines where encodings' "encode" feature are implemented. However in case + * of Ruby this is not the primitive one. We directly manipulate encoded + * strings. Encoding conversion routines transcode an encoded string directly + * to another one; not via a code point array. + */ +VALUE rb_enc_uint_chr(unsigned int code, rb_encoding *enc); + +/** + * Identical to rb_external_str_new(), except it additionally takes an + * encoding. However the whole point of rb_external_str_new() is to encode a + * string into default external encoding. Being able to specify arbitrary + * encoding just ruins the designed purpose the function meseems. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @param[in] enc Target encoding scheme. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString. In case encoding conversion from + * "default internal" to `enc` is fully defined over the given + * contents, then the return value is a string of `enc` encoding, + * whose contents are the converted ones. Otherwise the string is + * a junk. + * @warning It doesn't raise on a conversion failure and silently ends up in + * a corrupted output. You can know the failure by querying + * `valid_encoding?` of the result object. + * + * @internal + * + * @shyouhei has no idea why this one does not follow the naming convention + * that others obey. It seems to him that this should have been called + * `rb_enc_external_str_new`. + */ +VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *enc); + +/** + * Identical to rb_str_export(), except it additionally takes an encoding. + * + * @param[in] obj Target object. + * @param[in] enc Target encoding. + * @exception rb_eTypeError No implicit conversion to String. + * @return Converted ruby string of `enc` encoding. + */ +VALUE rb_str_export_to_enc(VALUE obj, rb_encoding *enc); + +/** + * Encoding conversion main routine. + * + * @param[in] str String to convert. + * @param[in] from Source encoding. + * @param[in] to Destination encoding. + * @return A copy of `str`, with conversion from `from` to `to` applied. + * @note `from` can be a null pointer. `str`'s encoding is taken then. + * @note `to` can be a null pointer. No-op then. + */ +VALUE rb_str_conv_enc(VALUE str, rb_encoding *from, rb_encoding *to); + +/** + * Identical to rb_str_conv_enc(), except it additionally takes IO encoder + * options. The extra arguments can be constructed using io_extract_modeenc() + * etc. + * + * @param[in] str String to convert. + * @param[in] from Source encoding. + * @param[in] to Destination encoding. + * @param[in] ecflags A set of enum ::ruby_econv_flag_type. + * @param[in] ecopts Optional hash. + * @return A copy of `str`, with conversion from `from` to `to` applied. + * @note `from` can be a null pointer. `str`'s encoding is taken then. + * @note `to` can be a null pointer. No-op then. + * @note `ecopts` can be ::RUBY_Qnil, which is equivalent to passing an + * empty hash. + */ +VALUE rb_str_conv_enc_opts(VALUE str, rb_encoding *from, rb_encoding *to, int ecflags, VALUE ecopts); + +/** + * Scans the passed string to collect its code range. Because a Ruby's string + * is mutable, its contents change from time to time; so does its code range. + * A long-lived string tends to fall back to ::RUBY_ENC_CODERANGE_UNKNOWN. + * This API scans it and re-assigns a fine-grained code range constant. + * + * @param[out] str A string. + * @return An enum ::ruby_coderange_type. + */ +int rb_enc_str_coderange(VALUE str); + +/** + * Scans the passed string until it finds something odd. Returns the number of + * bytes scanned. As the name implies this is suitable for repeated call. One + * of its application is `IO#readlines`. The method reads from its receiver's + * read buffer, maybe more than once, looking for newlines. But "newline" can + * be different among encodings. This API is used to detect broken contents to + * properly mark them as such. + * + * @param[in] str String to scan. + * @param[in] end End of `str`. + * @param[in] enc `str`'s encoding. + * @param[out] cr Return buffer. + * @return Distance between `str` and first such byte where broken. + * @post `cr` has the code range type. + */ +long rb_str_coderange_scan_restartable(const char *str, const char *end, rb_encoding *enc, int *cr); + +/** + * Queries if the passed string is "ASCII only". An ASCII only string is a + * string who doesn't have any non-ASCII characters at all. This doesn't + * necessarily mean the string is in ASCII encoding. For instance a String of + * CP932 encoding can quite much be ASCII only, depending on its contents. + * + * @param[in] str String in question. + * @retval 1 It doesn't have non-ASCII characters. + * @retval 0 It has characters that are out of ASCII. + */ +int rb_enc_str_asciionly_p(VALUE str); + +RBIMPL_ATTR_NONNULL(()) +/** + * Looks for the passed string in the passed buffer. + * + * @param[in] x Buffer that potentially includes `y`. + * @param[in] m Number of bytes of `x`. + * @param[in] y Query string. + * @param[in] n Number of bytes of `y`. + * @param[in] enc Encoding of both `x` and `y`. + * @retval -1 Not found. + * @retval otherwise Found index in `x`. + * @note This API can match at a non-character-boundary. + */ +long rb_memsearch(const void *x, long m, const void *y, long n, rb_encoding *enc); + +/** @cond INTERNAL_MACRO */ +RBIMPL_ATTR_NONNULL(()) +static inline VALUE +rbimpl_enc_str_new_cstr(const char *str, rb_encoding *enc) +{ + long len = rbimpl_strlen(str); + + return rb_enc_str_new_static(str, len, enc); +} + +#define rb_enc_str_new(str, len, enc) \ + ((RBIMPL_CONSTANT_P(str) && \ + RBIMPL_CONSTANT_P(len) ? \ + rb_enc_str_new_static: \ + rb_enc_str_new) ((str), (len), (enc))) + +#define rb_enc_str_new_cstr(str, enc) \ + ((RBIMPL_CONSTANT_P(str) ? \ + rbimpl_enc_str_new_cstr : \ + rb_enc_str_new_cstr) ((str), (enc))) + +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_INTERNAL_ENCODING_STRING_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/symbol.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/symbol.h new file mode 100644 index 0000000..9cd1b0d --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/symbol.h @@ -0,0 +1,100 @@ +#ifndef RUBY_INTERNAL_ENCODING_SYMBOL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERNAL_ENCODING_SYMBOL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to manipulate encodings of symbols. + */ + +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/encoding/encoding.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Identical to rb_intern2(), except it additionally takes an encoding. + * + * @param[in] name The name of the id. + * @param[in] len Length of `name`. + * @param[in] enc `name`'s encoding. + * @exception rb_eRuntimeError Too many symbols. + * @return A (possibly new) id whose value is the given name. + * @note These days Ruby internally has two kinds of symbols + * (static/dynamic). Symbols created using this function would + * become static ones; i.e. would never be garbage collected. It + * is up to you to avoid memory leaks. Think twice before using + * it. + */ +ID rb_intern3(const char *name, long len, rb_encoding *enc); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_symname_p(), except it additionally takes an encoding. + * + * @param[in] str A C string to check. + * @param[in] enc `str`'s encoding. + * @retval 1 It is a valid symbol name. + * @retval 0 It is invalid as a symbol name. + */ +int rb_enc_symname_p(const char *str, rb_encoding *enc); + +/** + * Identical to rb_enc_symname_p(), except it additionally takes the passed + * string's length. This is needed for strings containing NUL bytes, like in + * case of UTF-32. + * + * @param[in] name A C string to check. + * @param[in] len Number of bytes of `str`. + * @param[in] enc `str`'s encoding. + * @retval 1 It is a valid symbol name. + * @retval 0 It is invalid as a symbol name. + */ +int rb_enc_symname2_p(const char *name, long len, rb_encoding *enc); + +/** + * Identical to rb_check_id(), except it takes a pointer to a memory region + * instead of Ruby's string. + * + * @param[in] ptr A pointer to a memory region. + * @param[in] len Number of bytes of `ptr`. + * @param[in] enc Encoding of `ptr`. + * @exception rb_eEncodingError `ptr` contains non-ASCII according to `enc`. + * @retval 0 No such id ever existed in the history. + * @retval otherwise The id that represents the given name. + */ +ID rb_check_id_cstr(const char *ptr, long len, rb_encoding *enc); + +/** + * Identical to rb_check_id_cstr(), except for the return type. It can also be + * seen as a routine identical to rb_check_symbol(), except it takes a pointer + * to a memory region instead of Ruby's string. + * + * @param[in] ptr A pointer to a memory region. + * @param[in] len Number of bytes of `ptr`. + * @param[in] enc Encoding of `ptr`. + * @exception rb_eEncodingError `ptr` contains non-ASCII according to `enc`. + * @retval RUBY_Qnil No such id ever existed in the history. + * @retval otherwise The id that represents the given name. + */ +VALUE rb_check_symbol_cstr(const char *ptr, long len, rb_encoding *enc); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_INTERNAL_ENCODING_SYMBOL_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/transcode.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/transcode.h new file mode 100644 index 0000000..7f26d2e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/encoding/transcode.h @@ -0,0 +1,562 @@ +#ifndef RUBY_INTERNAL_ENCODING_TRANSCODE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERNAL_ENCODING_TRANSCODE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief econv stuff + */ + +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** return value of rb_econv_convert() */ +typedef enum { + + /** + * The conversion stopped when it found an invalid sequence. + */ + econv_invalid_byte_sequence, + + /** + * The conversion stopped when it found a character in the input which + * cannot be representable in the output. + */ + econv_undefined_conversion, + + /** + * The conversion stopped because there is no destination. + */ + econv_destination_buffer_full, + + /** + * The conversion stopped because there is no input. + */ + econv_source_buffer_empty, + + /** + * The conversion stopped after converting everything. This is arguably + * the expected normal end of conversion. + */ + econv_finished, + + /** + * The conversion stopped after writing something to somewhere, before + * reading everything. + */ + econv_after_output, + + /** + * The conversion stopped in middle of reading a character, possibly due to + * a partial read of a socket etc. + */ + econv_incomplete_input +} rb_econv_result_t; + +/** An opaque struct that represents a lowest level of encoding conversion. */ +typedef struct rb_econv_t rb_econv_t; + +/** + * Converts the contents of the passed string from its encoding to the passed + * one. + * + * @param[in] str Target string. + * @param[in] to Destination encoding. + * @param[in] ecflags A set of enum + * ::ruby_econv_flag_type. + * @param[in] ecopts A keyword hash, like + * ::rb_io_t::rb_io_enc_t::ecopts. + * @exception rb_eArgError Not fully converted. + * @exception rb_eInvalidByteSequenceError `str` is malformed. + * @exception rb_eUndefinedConversionError `str` has a character not + * representable using `to`. + * @exception rb_eConversionNotFoundError There is no known conversion from + * `str`'s encoding to `to`. + * @return A string whose encoding is `to`, and whose contents is converted + * contents of `str`. + * @note Use rb_econv_prepare_options() to generate `ecopts`. + */ +VALUE rb_str_encode(VALUE str, VALUE to, int ecflags, VALUE ecopts); + +/** + * Queries if there is more than one way to convert between the passed two + * encodings. Encoding conversion are has_and_belongs_to_many relationships. + * There could be no direct conversion defined for the passed pair. Ruby tries + * to find an indirect way to do so then. For instance ISO-8859-1 has no + * direct conversion to ISO-2022-JP. But there is ISO-8859-1 to UTF-8 + * conversion; then there is UTF-8 to EUC-JP conversion; finally there also is + * EUC-JP to ISO-2022-JP conversion. So in short ISO-8859-1 can be converted + * to ISO-2022-JP using that path. This function returns true. Obviously not + * everything that can be represented using UTF-8 can also be represented using + * EUC-JP. Conversions in practice can fail depending on the actual input, and + * that renders exceptions in case of rb_str_encode(). + * + * @param[in] from_encoding One encoding. + * @param[in] to_encoding Another encoding. + * @retval 0 No way to convert the two. + * @retval 1 At least one way to convert the two. + * + * @internal + * + * Practically @shyouhei knows no way for this function to return 0. It seems + * everything can eventually be converted to/from UTF-8, which connects + * everything. + */ +int rb_econv_has_convpath_p(const char* from_encoding, const char* to_encoding); + +/** + * Identical to rb_econv_prepare_opts(), except it additionally takes the + * initial value of flags. The extra bits are bitwise-ORed to the return + * value. + * + * @param[in] opthash Keyword arguments. + * @param[out] ecopts Return buffer. + * @param[in] ecflags Default set of enum ::ruby_econv_flag_type. + * @exception rb_eArgError Unknown/Broken values passed. + * @return Calculated set of enum ::ruby_econv_flag_type. + * @post `ecopts` holds a hash object suitable for + * ::rb_io_t::rb_io_enc_t::ecopts. + */ +int rb_econv_prepare_options(VALUE opthash, VALUE *ecopts, int ecflags); + +/** + * Splits a keyword arguments hash (that for instance `String#encode` took) + * into a set of enum ::ruby_econv_flag_type and a hash storing replacement + * characters etc. + * + * @param[in] opthash Keyword arguments. + * @param[out] ecopts Return buffer. + * @exception rb_eArgError Unknown/Broken values passed. + * @return Calculated set of enum ::ruby_econv_flag_type. + * @post `ecopts` holds a hash object suitable for + * ::rb_io_t::rb_io_enc_t::ecopts. + */ +int rb_econv_prepare_opts(VALUE opthash, VALUE *ecopts); + +/** + * Creates a new instance of struct ::rb_econv_t. + * + * @param[in] source_encoding Name of an encoding. + * @param[in] destination_encoding Name of another encoding. + * @param[in] ecflags A set of enum ::ruby_econv_flag_type. + * @exception rb_eArgError No such encoding. + * @retval NULL Failed to create a struct ::rb_econv_t. + * @retval otherwise Allocated struct ::rb_econv_t. + * @warning Return value must be passed to rb_econv_close() exactly once. + */ +rb_econv_t *rb_econv_open(const char *source_encoding, const char *destination_encoding, int ecflags); + +/** + * Identical to rb_econv_open(), except it additionally takes a hash of + * optional strings. + * + * + * @param[in] source_encoding Name of an encoding. + * @param[in] destination_encoding Name of another encoding. + * @param[in] ecflags A set of enum ::ruby_econv_flag_type. + * @param[in] ecopts Optional set of strings. + * @exception rb_eArgError No such encoding. + * @retval NULL Failed to create a struct ::rb_econv_t. + * @retval otherwise Allocated struct ::rb_econv_t. + * @warning Return value must be passed to rb_econv_close() exactly once. + */ +rb_econv_t *rb_econv_open_opts(const char *source_encoding, const char *destination_encoding, int ecflags, VALUE ecopts); + +/** + * Converts a string from an encoding to another. + * + * Possible flags are either ::RUBY_ECONV_PARTIAL_INPUT (means the source + * buffer is a part of much larger one), ::RUBY_ECONV_AFTER_OUTPUT (instructs + * the converter to stop after output before input), or both of them. + * + * @param[in,out] ec Conversion specification/state etc. + * @param[in] source_buffer_ptr Target string. + * @param[in] source_buffer_end End of target string. + * @param[out] destination_buffer_ptr Return buffer. + * @param[out] destination_buffer_end End of return buffer. + * @param[in] flags Flags (see above). + * @return The status of the conversion. + * @post `destination_buffer_ptr` holds conversion results. + */ +rb_econv_result_t rb_econv_convert(rb_econv_t *ec, + const unsigned char **source_buffer_ptr, const unsigned char *source_buffer_end, + unsigned char **destination_buffer_ptr, unsigned char *destination_buffer_end, + int flags); + +/** + * Destructs a converter. Note that a converter can have a buffer, and can be + * non-empty. Calling this would lose your data then. + * + * @param[out] ec The converter to destroy. + * @post `ec` is no longer a valid pointer. + */ +void rb_econv_close(rb_econv_t *ec); + +/** + * Assigns the replacement string. The string passed here would appear in + * converted string when it cannot represent its source counterpart. This can + * happen for instance you convert an emoji to ISO-8859-1. + * + * @param[out] ec Target converter. + * @param[in] str Replacement string. + * @param[in] len Number of bytes of `str`. + * @param[in] encname Name of encoding of `str`. + * @retval 0 Success. + * @retval -1 Failure (ENOMEM etc.). + * @post `ec`'s replacement string is set to `str`. + */ +int rb_econv_set_replacement(rb_econv_t *ec, const unsigned char *str, size_t len, const char *encname); + +/** + * "Decorate"s a converter. There are special kind of converters that + * transforms the contents, like replacing CR into CRLF. You can add such + * decorators to a converter using this API. By using this function a + * decorator is prepended at the beginning of a conversion sequence: in case of + * CRLF conversion, newlines are converted before encodings are converted. + * + * @param[out] ec Target converter to decorate. + * @param[in] decorator_name Name of decorator to prepend. + * @retval 0 Success. + * @retval -1 Failure (no such decorator etc.). + * @post Decorator works before encoding conversion happens. + * + * @internal + * + * What is the possible value of the `decorator_name` is not public. You have + * to read through `transcode.c` carefully. + */ +int rb_econv_decorate_at_first(rb_econv_t *ec, const char *decorator_name); + +/** + * Identical to rb_econv_decorate_at_first(), except it adds to the opposite + * direction. For instance CRLF conversion would run _after_ encodings are + * converted. + * + * @param[out] ec Target converter to decorate. + * @param[in] decorator_name Name of decorator to prepend. + * @retval 0 Success. + * @retval -1 Failure (no such decorator etc.). + * @post Decorator works after encoding conversion happens. + */ +int rb_econv_decorate_at_last(rb_econv_t *ec, const char *decorator_name); + +/** + * Creates a `rb_eConverterNotFoundError` exception object (but does not + * raise). + * + * @param[in] senc Name of source encoding. + * @param[in] denc Name of destination encoding. + * @param[in] ecflags A set of enum ::ruby_econv_flag_type. + * @return An instance of `rb_eConverterNotFoundError`. + */ +VALUE rb_econv_open_exc(const char *senc, const char *denc, int ecflags); + +/** + * Appends the passed string to the passed converter's output buffer. This can + * be handy when an encoding needs bytes out of thin air; for instance + * ISO-2022-JP has "shift function" which does not correspond to any + * characters. + * + * @param[out] ec Target converter. + * @param[in] str String to insert. + * @param[in] len Number of bytes of `str`. + * @param[in] str_encoding Encoding of `str`. + * @retval 0 Success. + * @retval -1 Failure (conversion error etc.). + * @note `str_encoding` can be anything, and `str` itself is converted + * when necessary. + */ +int rb_econv_insert_output(rb_econv_t *ec, + const unsigned char *str, size_t len, const char *str_encoding); + +/** + * Queries an encoding name which best suits for rb_econv_insert_output()'s + * last parameter. Strings in this encoding need no conversion when inserted; + * can be both time/space efficient. + * + * @param[in] ec Target converter. + * @return Its encoding for insertion. + */ +const char *rb_econv_encoding_to_insert_output(rb_econv_t *ec); + +/** + * This is a rb_econv_make_exception() + rb_exc_raise() combo. + * + * @param[in] ec (Possibly failed) conversion. + * @exception rb_eInvalidByteSequenceError Invalid byte sequence. + * @exception rb_eUndefinedConversionError Conversion undefined. + * @note This function can return when no error. + */ +void rb_econv_check_error(rb_econv_t *ec); + +/** + * This function makes sense right after rb_econv_convert() returns. As listed + * in ::rb_econv_result_t, rb_econv_convert() can bail out for various reasons. + * This function checks the passed converter's internal state and convert it to + * an appropriate exception object. + * + * @param[in] ec Target converter. + * @retval RUBY_Qnil The converter has no error. + * @retval otherwise Conversion error turned into an exception. + */ +VALUE rb_econv_make_exception(rb_econv_t *ec); + +/** + * Queries if rb_econv_putback() makes sense, i.e. there are invalid byte + * sequences remain in the buffer. + * + * @param[in] ec Target converter. + * @return Number of bytes that can be pushed back. + */ +int rb_econv_putbackable(rb_econv_t *ec); + +/** + * Puts back the bytes. In case of ::econv_invalid_byte_sequence, some of + * those invalid bytes are discarded and the others are buffered to be + * converted later. The latter bytes can be put back using this API. + * + * @param[out] ec Target converter (invalid byte sequence). + * @param[out] p Return buffer. + * @param[in] n Max number of bytes to put back. + * @post At most `n` bytes of what was put back is written to `p`. + */ +void rb_econv_putback(rb_econv_t *ec, unsigned char *p, int n); + +/** + * Queries the passed encoding's corresponding ASCII compatible encoding. "The + * corresponding ASCII compatible encoding" in this context is an ASCII + * compatible encoding which can represent exactly the same character sets as + * the given ASCII incompatible encoding. For instance that of UTF-16LE is + * UTF-8. + * + * @param[in] encname Name of an ASCII incompatible encoding. + * @retval NULL `encname` is already ASCII compatible. + * @retval otherwise The corresponding ASCII compatible encoding. + */ +const char *rb_econv_asciicompat_encoding(const char *encname); + +/** + * Identical to rb_econv_convert(), except it takes Ruby's string instead of + * C's pointer. + * + * @param[in,out] ec Target converter. + * @param[in] src Source string. + * @param[in] flags Flags (see rb_econv_convert). + * @exception rb_eArgError Converted string is too long. + * @exception rb_eInvalidByteSequenceError Invalid byte sequence. + * @exception rb_eUndefinedConversionError Conversion undefined. + * @return The conversion result. + */ +VALUE rb_econv_str_convert(rb_econv_t *ec, VALUE src, int flags); + +/** + * Identical to rb_econv_str_convert(), except it converts only a part of the + * passed string. Can be handy when you for instance want to do line-buffered + * conversion. + * + * @param[in,out] ec Target converter. + * @param[in] src Source string. + * @param[in] byteoff Number of bytes to seek. + * @param[in] bytesize Number of bytes to read. + * @param[in] flags Flags (see rb_econv_convert). + * @exception rb_eArgError Converted string is too long. + * @exception rb_eInvalidByteSequenceError Invalid byte sequence. + * @exception rb_eUndefinedConversionError Conversion undefined. + * @return The conversion result. + */ +VALUE rb_econv_substr_convert(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, int flags); + +/** + * Identical to rb_econv_str_convert(), except it appends the conversion result + * to the additionally passed string instead of creating a new string. It can + * also be seen as a routine identical to rb_econv_append(), except it takes a + * Ruby's string instead of C's pointer. + * + * @param[in,out] ec Target converter. + * @param[in] src Source string. + * @param[in] dst Return buffer. + * @param[in] flags Flags (see rb_econv_convert). + * @exception rb_eArgError Converted string is too long. + * @exception rb_eInvalidByteSequenceError Invalid byte sequence. + * @exception rb_eUndefinedConversionError Conversion undefined. + * @return The conversion result. + */ +VALUE rb_econv_str_append(rb_econv_t *ec, VALUE src, VALUE dst, int flags); + +/** + * Identical to rb_econv_str_append(), except it appends only a part of the + * passed string with conversion. It can also be seen as a routine identical + * to rb_econv_substr_convert(), except it appends the conversion result to the + * additionally passed string instead of creating a new string. + * + * @param[in,out] ec Target converter. + * @param[in] src Source string. + * @param[in] byteoff Number of bytes to seek. + * @param[in] bytesize Number of bytes to read. + * @param[in] dst Return buffer. + * @param[in] flags Flags (see rb_econv_convert). + * @exception rb_eArgError Converted string is too long. + * @exception rb_eInvalidByteSequenceError Invalid byte sequence. + * @exception rb_eUndefinedConversionError Conversion undefined. + * @return The conversion result. + */ +VALUE rb_econv_substr_append(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, VALUE dst, int flags); + +/** + * Converts the passed C's pointer according to the passed converter, then + * append the conversion result to the passed Ruby's string. This way buffer + * overflow is properly avoided to resize the destination properly. + * + * @param[in,out] ec Target converter. + * @param[in] bytesrc Target string. + * @param[in] bytesize Number of bytes of `bytesrc`. + * @param[in] dst Return buffer. + * @param[in] flags Flags (see rb_econv_convert). + * @exception rb_eArgError Converted string is too long. + * @exception rb_eInvalidByteSequenceError Invalid byte sequence. + * @exception rb_eUndefinedConversionError Conversion undefined. + * @return The conversion result. + */ +VALUE rb_econv_append(rb_econv_t *ec, const char *bytesrc, long bytesize, VALUE dst, int flags); + +/** + * This badly named function does not set the destination encoding to binary, + * but instead just nullifies newline conversion decorators if any. Other + * ordinal character conversions still happen after this; something non-binary + * would still be generated. + * + * @param[out] ec Target converter to modify. + * @post Any newline conversions, if any, would be killed. + */ +void rb_econv_binmode(rb_econv_t *ec); + +/** + * This enum is kind of omnibus. Gathers various constants. + */ +enum ruby_econv_flag_type { + + /** + * @name Flags for rb_econv_open() + * + * @{ + */ + + /** Mask for error handling related bits. */ + RUBY_ECONV_ERROR_HANDLER_MASK = 0x000000ff, + + /** Special handling of invalid sequences are there. */ + RUBY_ECONV_INVALID_MASK = 0x0000000f, + + /** Invalid sequences shall be replaced. */ + RUBY_ECONV_INVALID_REPLACE = 0x00000002, + + /** Special handling of undefined conversion are there. */ + RUBY_ECONV_UNDEF_MASK = 0x000000f0, + + /** Undefined characters shall be replaced. */ + RUBY_ECONV_UNDEF_REPLACE = 0x00000020, + + /** Undefined characters shall be escaped. */ + RUBY_ECONV_UNDEF_HEX_CHARREF = 0x00000030, + + /** Decorators are there. */ + RUBY_ECONV_DECORATOR_MASK = 0x0001ff00, + + /** Newline converters are there. */ + RUBY_ECONV_NEWLINE_DECORATOR_MASK = 0x00007f00, + + /** (Unclear; seems unused). */ + RUBY_ECONV_NEWLINE_DECORATOR_READ_MASK = 0x00000f00, + + /** (Unclear; seems unused). */ + RUBY_ECONV_NEWLINE_DECORATOR_WRITE_MASK = 0x00007000, + + /** Universal newline mode. */ + RUBY_ECONV_UNIVERSAL_NEWLINE_DECORATOR = 0x00000100, + + /** CR to CRLF conversion shall happen. */ + RUBY_ECONV_CRLF_NEWLINE_DECORATOR = 0x00001000, + + /** CRLF to CR conversion shall happen. */ + RUBY_ECONV_CR_NEWLINE_DECORATOR = 0x00002000, + + /** CRLF to LF conversion shall happen. */ + RUBY_ECONV_LF_NEWLINE_DECORATOR = 0x00004000, + + /** Texts shall be XML-escaped. */ + RUBY_ECONV_XML_TEXT_DECORATOR = 0x00008000, + + /** Texts shall be AttrValue escaped */ + RUBY_ECONV_XML_ATTR_CONTENT_DECORATOR = 0x00010000, + + /** (Unclear; seems unused). */ + RUBY_ECONV_STATEFUL_DECORATOR_MASK = 0x00f00000, + + /** Texts shall be AttrValue escaped. */ + RUBY_ECONV_XML_ATTR_QUOTE_DECORATOR = 0x00100000, + + /** Newline decorator's default. */ + RUBY_ECONV_DEFAULT_NEWLINE_DECORATOR = +#if defined(RUBY_TEST_CRLF_ENVIRONMENT) || defined(_WIN32) + RUBY_ECONV_CRLF_NEWLINE_DECORATOR, +#else + 0, +#endif + +#define ECONV_ERROR_HANDLER_MASK RUBY_ECONV_ERROR_HANDLER_MASK /**< @old{RUBY_ECONV_ERROR_HANDLER_MASK} */ +#define ECONV_INVALID_MASK RUBY_ECONV_INVALID_MASK /**< @old{RUBY_ECONV_INVALID_MASK} */ +#define ECONV_INVALID_REPLACE RUBY_ECONV_INVALID_REPLACE /**< @old{RUBY_ECONV_INVALID_REPLACE} */ +#define ECONV_UNDEF_MASK RUBY_ECONV_UNDEF_MASK /**< @old{RUBY_ECONV_UNDEF_MASK} */ +#define ECONV_UNDEF_REPLACE RUBY_ECONV_UNDEF_REPLACE /**< @old{RUBY_ECONV_UNDEF_REPLACE} */ +#define ECONV_UNDEF_HEX_CHARREF RUBY_ECONV_UNDEF_HEX_CHARREF /**< @old{RUBY_ECONV_UNDEF_HEX_CHARREF} */ +#define ECONV_DECORATOR_MASK RUBY_ECONV_DECORATOR_MASK /**< @old{RUBY_ECONV_DECORATOR_MASK} */ +#define ECONV_NEWLINE_DECORATOR_MASK RUBY_ECONV_NEWLINE_DECORATOR_MASK /**< @old{RUBY_ECONV_NEWLINE_DECORATOR_MASK} */ +#define ECONV_NEWLINE_DECORATOR_READ_MASK RUBY_ECONV_NEWLINE_DECORATOR_READ_MASK /**< @old{RUBY_ECONV_NEWLINE_DECORATOR_READ_MASK} */ +#define ECONV_NEWLINE_DECORATOR_WRITE_MASK RUBY_ECONV_NEWLINE_DECORATOR_WRITE_MASK /**< @old{RUBY_ECONV_NEWLINE_DECORATOR_WRITE_MASK} */ +#define ECONV_UNIVERSAL_NEWLINE_DECORATOR RUBY_ECONV_UNIVERSAL_NEWLINE_DECORATOR /**< @old{RUBY_ECONV_UNIVERSAL_NEWLINE_DECORATOR} */ +#define ECONV_CRLF_NEWLINE_DECORATOR RUBY_ECONV_CRLF_NEWLINE_DECORATOR /**< @old{RUBY_ECONV_CRLF_NEWLINE_DECORATOR} */ +#define ECONV_CR_NEWLINE_DECORATOR RUBY_ECONV_CR_NEWLINE_DECORATOR /**< @old{RUBY_ECONV_CR_NEWLINE_DECORATOR} */ +#define ECONV_LF_NEWLINE_DECORATOR RUBY_ECONV_LF_NEWLINE_DECORATOR /**< @old{RUBY_ECONV_LF_NEWLINE_DECORATOR} */ +#define ECONV_XML_TEXT_DECORATOR RUBY_ECONV_XML_TEXT_DECORATOR /**< @old{RUBY_ECONV_XML_TEXT_DECORATOR} */ +#define ECONV_XML_ATTR_CONTENT_DECORATOR RUBY_ECONV_XML_ATTR_CONTENT_DECORATOR /**< @old{RUBY_ECONV_XML_ATTR_CONTENT_DECORATOR} */ +#define ECONV_STATEFUL_DECORATOR_MASK RUBY_ECONV_STATEFUL_DECORATOR_MASK /**< @old{RUBY_ECONV_STATEFUL_DECORATOR_MASK} */ +#define ECONV_XML_ATTR_QUOTE_DECORATOR RUBY_ECONV_XML_ATTR_QUOTE_DECORATOR /**< @old{RUBY_ECONV_XML_ATTR_QUOTE_DECORATOR} */ +#define ECONV_DEFAULT_NEWLINE_DECORATOR RUBY_ECONV_DEFAULT_NEWLINE_DECORATOR /**< @old{RUBY_ECONV_DEFAULT_NEWLINE_DECORATOR} */ + /** @} */ + + /** + * @name Flags for rb_econv_convert() + * + * @{ + */ + + /** Indicates the input is a part of much larger one. */ + RUBY_ECONV_PARTIAL_INPUT = 0x00020000, + + /** Instructs the converter to stop after output. */ + RUBY_ECONV_AFTER_OUTPUT = 0x00040000, +#define ECONV_PARTIAL_INPUT RUBY_ECONV_PARTIAL_INPUT /**< @old{RUBY_ECONV_PARTIAL_INPUT} */ +#define ECONV_AFTER_OUTPUT RUBY_ECONV_AFTER_OUTPUT /**< @old{RUBY_ECONV_AFTER_OUTPUT} */ + + RUBY_ECONV_FLAGS_PLACEHOLDER /**< Placeholder (not used) */ +}; + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_INTERNAL_ENCODING_TRANSCODE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/error.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/error.h new file mode 100644 index 0000000..49e2276 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/error.h @@ -0,0 +1,582 @@ +#ifndef RBIMPL_ERROR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ERROR_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Declares ::rb_raise(). + */ +#include "ruby/internal/attr/cold.h" +#include "ruby/internal/attr/format.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +/** + * @defgroup exception Exception handlings + * @{ + */ + +/** + * Warning categories. A warning issued using this API can be selectively + * requested / suppressed by the end-users. For instance passing + * `-W:no-deprecated` to the ruby process would suppress those warnings in + * deprecated category. + * + * @warning There is no way to declare a new category (for now). + */ +typedef enum { + /** Category unspecified. */ + RB_WARN_CATEGORY_NONE, + + /** Warning is for deprecated features. */ + RB_WARN_CATEGORY_DEPRECATED, + + /** Warning is for experimental features. */ + RB_WARN_CATEGORY_EXPERIMENTAL, + + RB_WARN_CATEGORY_ALL_BITS = 0x6 /* no RB_WARN_CATEGORY_NONE bit */ +} rb_warning_category_t; + +/** for rb_readwrite_sys_fail first argument */ +enum rb_io_wait_readwrite {RB_IO_WAIT_READABLE, RB_IO_WAIT_WRITABLE}; +/** @cond INTERNAL_MACRO */ +#define RB_IO_WAIT_READABLE RB_IO_WAIT_READABLE +#define RB_IO_WAIT_WRITABLE RB_IO_WAIT_WRITABLE +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * This is the same as `$!` in Ruby. + * + * @retval RUBY_Qnil Not handling exceptions at the moment. + * @retval otherwise The current exception in the current thread. + * @ingroup exception + */ +VALUE rb_errinfo(void); + +/** + * Sets the current exception (`$!`) to the given value. + * + * @param[in] err An instance of ::rb_eException, or ::RUBY_Qnil. + * @exception rb_eTypeError What is given was neither ::rb_eException nor + * ::RUBY_Qnil. + * @note Use rb_raise() instead to raise `err`. This function just + * assigns the given object to the global variable. + * @ingroup exception + */ +void rb_set_errinfo(VALUE err); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) +/** + * Exception entry point. By calling this function the execution of your + * program gets interrupted to "raise" an exception up to the callee entities. + * Programs could "rescue" that exception, or could "ensure" some part of them. + * If nobody cares about such things, the raised exception reaches at the top + * of execution. This yields abnormal end of the process. + * + * @param[in] exc A subclass of ::rb_eException. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * @exception exc The specified exception. + * @note It never returns. + */ +void rb_raise(VALUE exc, const char *fmt, ...); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((1)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2) +/** + * Raises the unsung "fatal" exception. This is considered severe. Nobody can + * rescue the exception. Once raised, process termination is inevitable. + * However ensure clauses still run, so that resources are properly cleaned up. + * + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * @exception rb_eFatal An exception that you cannot rescue. + * @note It never returns. + */ +void rb_fatal(const char *fmt, ...); + +RBIMPL_ATTR_COLD() +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((1)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2) +/** + * Interpreter panic switch. Immediate process termination without any + * synchronisations shall occur. LOTS of internal states, stack traces, and + * even machine registers are displayed if possible for debugging purposes + * then. + * + * @warning Do not use this API. + * @warning You are not expected to use this API. + * @warning Why not just fix your code instead of calling this API? + * @warning It was a bad idea to expose this API to extension libraries at + * the first place. We just cannot delete it at this point for + * backwards compatibility. That doesn't mean everyone are + * welcomed to call this function at will. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * @note It never returns. + */ +void rb_bug(const char *fmt, ...); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL(()) +/** + * This is a wrapper of rb_bug() which automatically constructs appropriate + * message from the passed errno. + * + * @param[in] msg Additional message to display. + * @exception err C level errno. + * @note It never returns. + */ +void rb_bug_errno(const char *msg, int err); + +RBIMPL_ATTR_NORETURN() +/** + * Converts a C errno into a Ruby exception, then raises it. For instance: + * + * ```CXX + * static VALUE + * foo(VALUE argv) + * { + * const auto cmd = StringValueCStr(argv); + * const auto waitr = system(cmd); + * if (waitr == -1) { + * rb_sys_fail("system(3posix)"); // <-------------- this + * } + * else { + * return INT2FIX(fd); + * } + * } + * ``` + * + * @param[in] msg Additional message to raise. + * @exception rb_eSystemCallError An exception representing errno. + * @note It never returns. + */ +void rb_sys_fail(const char *msg); + +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_sys_fail(), except it takes the message in Ruby's String + * instead of C's. + * + * @param[in] msg Additional message to raise. + * @exception rb_eSystemCallError An exception representing errno. + * @note It never returns. + */ +void rb_sys_fail_str(VALUE msg); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((2)) +/** + * Identical to rb_sys_fail(), except it takes additional module to extend the + * exception object before raising. + * + * @param[in] mod A ::rb_cModule instance. + * @param[in] msg Additional message to raise. + * @exception rb_eSystemCallError An exception representing errno. + * @note It never returns. + * + * @internal + * + * Does anybody use it? + */ +void rb_mod_sys_fail(VALUE mod, const char *msg); + +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_mod_sys_fail(), except it takes the message in Ruby's String + * instead of C's. + * + * @param[in] mod A ::rb_cModule instance. + * @param[in] msg Additional message to raise. + * @exception rb_eSystemCallError An exception representing errno. + * @note It never returns. + */ +void rb_mod_sys_fail_str(VALUE mod, VALUE msg); + +RBIMPL_ATTR_NORETURN() +/** + * Raises appropriate exception using the parameters. + * + * In Ruby level there are rb_eEAGAINWaitReadable etc. This function maps the + * given parameter to an appropriate exception class, then raises it. + * + * @param[in] waiting Reason for the IO to wait. + * @param[in] msg Additional message to raise. + * @exception rb_eEAGAINWaitWritable + * @exception rb_eEWOULDBLOCKWaitWritable + * @exception rb_eEINPROGRESSWaitWritable + * @exception rb_eEAGAINWaitReadable + * @exception rb_eEWOULDBLOCKWaitReadable + * @exception rb_eEINPROGRESSWaitReadable + * @exception rb_eSystemCallError + * @note It never returns. + */ +void rb_readwrite_sys_fail(enum rb_io_wait_readwrite waiting, const char *msg); + +RBIMPL_ATTR_NORETURN() +/** + * Breaks from a block. Because you are using a CAPI this is not as intuitive + * as it sounds. In order for this function to properly work, make a + * ::rb_block_call_func_t function that calls it internally, and pass that + * function to rb_block_call(). + * + * @exception rb_eLocalJumpError Called from outside of a block. + * @note It never returns. + */ +void rb_iter_break(void); + +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_iter_break(), except it additionally takes the "value" of + * this breakage. It will be the evaluation result of the iterator. This is + * kind of complicated; you cannot see this as a "return from a block" + * behaviour. Take a look at this example: + * + * ```ruby + * def foo(q) + * puts(w = yield(q)) + * puts(e = yield(w)) + * puts(r = yield(e)) + * puts(t = yield(r)) + * puts(y = yield(t)) + * return "howdy!" + * end + * + * x = foo(0) {|i| + * if i > 2 + * break "hello!" + * else + * next i + 1 + * end + * } + * + * puts x + * ``` + * + * This script outputs 1, 2, 3, and hello. Note that the value passed to break + * becomes the return value of foo method, not the value of yield. This is + * confusing, but can be handy on occasions e.g. when you want to bring a + * local variable out of a block. + * + * @param[in] val The value of the iterator. + * @exception rb_eLocalJumpError Called from outside of a block. + * @note It never returns. + */ +void rb_iter_break_value(VALUE val); + +RBIMPL_ATTR_NORETURN() +/** + * Terminates the current execution context. This API is the entry point of a + * "well-mannered" termination sequence. When called from an extension + * library, it raises ::rb_eSystemExit exception. Programs could rescue that + * exception. Can cancel process exit then. Otherwise, that exception results + * in a process termination with the status passed to this function. + * + * @param[in] status Exit status, see also exit(3). + * @exception rb_eSystemExit Exception representing the exit status. + * @note It never returns. + * + * @internal + * + * "When called from an extension library"? You might wonder. In fact there + * are chances for this function to be called from outside of it, for instance + * when dlopen(3) failed. In case it is not possible for this function to + * raise an exception, it does not (silently enters to process cleanup). But + * that is a kind of implementation detail which extension library authors + * should not bother. + */ +void rb_exit(int status); + +RBIMPL_ATTR_NORETURN() +/** + * @exception rb_eNotImpError + * @note It never returns. + */ +void rb_notimplement(void); + +/** + * Creates an exception object that represents the given C errno. + * + * @param[in] err C level errno. + * @param[in] msg Additional message. + * @retval rb_eSystemCallError An exception for the errno. + */ +VALUE rb_syserr_new(int err, const char * msg); + +/** + * Identical to rb_syserr_new(), except it takes the message in Ruby's String + * instead of C's. + * + * @param[in] n C level errno. + * @param[in] arg Additional message. + * @retval rb_eSystemCallError An exception for the errno. + */ +VALUE rb_syserr_new_str(int n, VALUE arg); + +RBIMPL_ATTR_NORETURN() +/** + * Raises appropriate exception that represents a C errno. + * + * @param[in] err C level errno. + * @param[in] msg Additional message to raise. + * @exception rb_eSystemCallError An exception representing `err`. + * @note It never returns. + */ +void rb_syserr_fail(int err, const char *msg); + +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_syserr_fail(), except it takes the message in Ruby's String + * instead of C's. + * + * @param[in] err C level errno. + * @param[in] msg Additional message to raise. + * @exception rb_eSystemCallError An exception representing `err`. + * @note It never returns. + */ +void rb_syserr_fail_str(int err, VALUE msg); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_mod_sys_fail(), except it does not depend on C global + * variable errno. Pass it explicitly. + * + * @param[in] mod A ::rb_cModule instance. + * @param[in] err C level errno. + * @param[in] msg Additional message to raise. + * @exception rb_eSystemCallError An exception representing `err`. + * @note It never returns. + */ +void rb_mod_syserr_fail(VALUE mod, int err, const char *msg); + +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_mod_syserr_fail(), except it takes the message in Ruby's + * String instead of C's. + * + * @param[in] mod A ::rb_cModule instance. + * @param[in] err C level errno. + * @param[in] msg Additional message to raise. + * @exception rb_eSystemCallError An exception representing `err`. + * @note It never returns. + */ +void rb_mod_syserr_fail_str(VALUE mod, int err, VALUE msg); + +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_readwrite_sys_fail(), except it does not depend on C global + * variable errno. Pass it explicitly. + * + * @param[in] waiting Reason for the IO to wait. + * @param[in] err C level errno. + * @param[in] msg Additional message to raise. + * @exception rb_eEAGAINWaitWritable + * @exception rb_eEWOULDBLOCKWaitWritable + * @exception rb_eEINPROGRESSWaitWritable + * @exception rb_eEAGAINWaitReadable + * @exception rb_eEWOULDBLOCKWaitReadable + * @exception rb_eEINPROGRESSWaitReadable + * @exception rb_eSystemCallError + * @note It never returns. + */ +void rb_readwrite_syserr_fail(enum rb_io_wait_readwrite waiting, int err, const char *msg); + +RBIMPL_ATTR_COLD() +RBIMPL_ATTR_NORETURN() +/** + * Fails with the given object's type incompatibility to the type. + * + * It seems this function is visible from extension libraries only because + * RTYPEDDATA_TYPE() uses it on RUBY_DEBUG. So you can basically ignore it; + * use some other fine-grained method instead. + * + * @param[in] self The object in question. + * @param[in] t Expected type of the object. + * @exception rb_eTypeError `self` not in type `t`. + * @note It never returns. + * @note The second argument must have been an enum ::ruby_value_type, + * but for historical reasons it remains to be an int (in other + * words we see no benefits fixing this bug). + */ +void rb_unexpected_type(VALUE self, int t); + +/** + * @private + * + * This is an implementation detail of #ruby_verbose. Please don't use it + * directly. + * + * @retval Qnil Interpreter is quiet. + * @retval Qfalse Interpreter is kind of chatty. + * @retval otherwise Interpreter is very verbose. + */ +VALUE *rb_ruby_verbose_ptr(void); + +/** + * @private + * + * This is an implementation detail of #ruby_debug. Please don't use it + * directly. + * + * @retval Qnil Interpreter not in debug mode. + * @retval Qfalse Interpreter not in debug mode. + * @retval otherwise Interpreter is in debug mode. + */ +VALUE *rb_ruby_debug_ptr(void); + +/** + * This variable controls whether the interpreter is in debug mode. Setting + * this to some truthy value is equivalent to passing `-W` flag to the + * interpreter. Setting this to ::Qfalse is equivalent to passing `-W1` flag + * to the interpreter. Setting this to ::Qnil is equivalent to passing `-W0` + * flag to the interpreter. + * + * @retval Qnil Interpreter is quiet. + * @retval Qfalse Interpreter is kind of chatty. + * @retval otherwise Interpreter is very verbose. + */ +#define ruby_verbose (*rb_ruby_verbose_ptr()) + +/** + * This variable controls whether the interpreter is in debug mode. Setting + * this to some truthy value is equivalent to passing `-d` flag to the + * interpreter. + * + * @retval Qnil Interpreter not in debug mode. + * @retval Qfalse Interpreter not in debug mode. + * @retval otherwise Interpreter is in debug mode. + */ +#define ruby_debug (*rb_ruby_debug_ptr()) + +/* reports if `-W' specified */ +RBIMPL_ATTR_NONNULL((1)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2) +/** + * Issues a warning. + * + * In ruby, warnings these days are tightly coupled with the rb_mWarning + * constant and its `warn` singleton method. This CAPI is just a thin wrapper + * of it; everything passed are formatted like what rb_sprintf() does, then + * passed through to the method. Programs can have their own `def + * Warning.warn` at will to do whatever they want, from ignoring the warnings + * at all to sinking them to some BigQuery data set via a Fluentd cluster. By + * default, the method just emits its passed contents to ::rb_stderr using + * rb_io_write(). + * + * @note This function is affected by the `-W` flag. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +void rb_warning(const char *fmt, ...); + +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) +/** + * Identical to rb_warning(), except it takes additional "category" parameter. + * + * @param[in] cat Name of a known category. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + */ +void rb_category_warning(rb_warning_category_t cat, const char *fmt, ...); + +RBIMPL_ATTR_NONNULL((1, 3)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 4) +/** + * Issues a compile-time warning that happens at `__file__:__line__`. Purpose + * of this function being exposed to CAPI is unclear. + * + * @note This function is affected by the `-W` flag. + * @param[in] file The path corresponding to Ruby level `__FILE__`. + * @param[in] line The number corresponding to Ruby level `__LINE__`. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + */ +void rb_compile_warning(const char *file, int line, const char *fmt, ...); + +RBIMPL_ATTR_NONNULL((1)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2) +/** + * Identical to rb_sys_fail(), except it does not raise an exception to render + * a warning instead. + * + * @note This function is affected by the `-W` flag. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + */ +void rb_sys_warning(const char *fmt, ...); + +/* reports always */ +RBIMPL_ATTR_COLD() +RBIMPL_ATTR_NONNULL((1)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2) +/** + * Identical to rb_warning(), except it reports always regardless of runtime + * `-W` flag. + * + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + */ +void rb_warn(const char *fmt, ...); + +RBIMPL_ATTR_COLD() +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) +/** + * Identical to rb_category_warning(), except it reports always regardless of + * runtime `-W` flag. + * + * @param[in] cat Category e.g. deprecated. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + */ +void rb_category_warn(rb_warning_category_t cat, const char *fmt, ...); + +RBIMPL_ATTR_NONNULL((1, 3)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 4) +/** + * Identical to rb_compile_warning(), except it reports always regardless of + * runtime `-W` flag. + * + * @param[in] file The path corresponding to Ruby level `__FILE__`. + * @param[in] line The number corresponding to Ruby level `__LINE__`. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + */ +void rb_compile_warn(const char *file, int line, const char *fmt, ...); + +RBIMPL_ATTR_NONNULL((2, 4)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 4, 5) +/** + * Identical to rb_compile_warn(), except it also accepts category. + * + * @param[in] cat Category e.g. deprecated. + * @param[in] file The path corresponding to Ruby level `__FILE__`. + * @param[in] line The number corresponding to Ruby level `__LINE__`. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + */ +void rb_category_compile_warn(rb_warning_category_t cat, const char *file, int line, const char *fmt, ...); + +/** @} */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_ERROR_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/eval.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/eval.h new file mode 100644 index 0000000..5bcbb97 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/eval.h @@ -0,0 +1,400 @@ +#ifndef RBIMPL_EVAL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_EVAL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Declares ::rb_eval_string(). + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +RBIMPL_ATTR_NONNULL(()) +/** + * Evaluates the given string. + * + * In case it is called from within a C-backended method, the evaluation is + * done under the current binding. However there can be no method. On such + * situation this function evaluates in an isolated binding, like `require` + * runs in a separate one. + * + * `__FILE__` will be `"(eval)"`, and `__LINE__` starts from 1 in the + * evaluation. + * + * @param[in] str Ruby code to evaluate. + * @exception rb_eException Raises an exception on error. + * @return The evaluated result. + * + * @internal + * + * @shyouhei's old tale about the birth and growth of this function: + * + * At the beginning, there was no rb_eval_string(). @shyouhei heard that + * @shugo, author of Apache httpd's mod_ruby module, requested @matz for this + * API. He wanted a way so that mod_ruby can evaluate ruby scripts one by one, + * separately, in each different contexts. So this function was made. It was + * designed to be a global interpreter entry point like ruby_run_node(). + * + * The way it is implemented however allows extension libraries (not just + * programs like Apache httpd) to call this function. Because its name says + * nothing about the initial design, people started to think of it as an + * orthodox way to call ruby level `eval` method from their extension + * libraries. Even our `extension.rdoc` has had a description of this function + * basically according to this understanding. + * + * The old (mod_ruby like) usage still works. But over time, usages of this + * function from extension libraries got popular, while mod_ruby faded out; is + * no longer maintained now. Devs decided to actively support both. This + * function now auto-detects how it is called, and switches how it works + * depending on it. + * + * @see https://bugs.ruby-lang.org/issues/18780 + */ +VALUE rb_eval_string(const char *str); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Identical to rb_eval_string(), except it avoids potential global escapes. + * Such global escapes include exceptions, `throw`, `break`, for example. + * + * It first evaluates the given string as rb_eval_string() does. If no global + * escape occurred during the evaluation, it returns the result and `*state` is + * zero. Otherwise, it returns some undefined value and sets `*state` to + * nonzero. If state is `NULL`, it is not set in both cases. + * + * @param[in] str Ruby code to evaluate. + * @param[out] state State of execution. + * @return The evaluated result if succeeded, an undefined value if + * otherwise. + * @post `*state` is set to zero if succeeded. Nonzero otherwise. + * @warning You have to clear the error info with `rb_set_errinfo(Qnil)` if + * you decide to ignore the caught exception. + * @see rb_eval_string + * @see rb_protect + * + * @internal + * + * The "undefined value" described above is in fact ::RUBY_Qnil for now. But + * @shyouhei doesn't think that we would never change that. + * + * Though not a part of our public API, `state` is in fact an + * enum ruby_tag_type. You can see the potential "nonzero" values by looking + * at vm_core.h. + */ +VALUE rb_eval_string_protect(const char *str, int *state); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Identical to rb_eval_string_protect(), except it evaluates the given string + * under a module binding in an isolated binding. This is the same as a + * binding for loaded libraries on `rb_load(something, true)`. + * + * @param[in] str Ruby code to evaluate. + * @param[out] state State of execution. + * @return The evaluated result if succeeded, an undefined value if + * otherwise. + * @post `*state` is set to zero if succeeded. Nonzero otherwise. + * @warning You have to clear the error info with `rb_set_errinfo(Qnil)` if + * you decide to ignore the caught exception. + * @see rb_eval_string + */ +VALUE rb_eval_string_wrap(const char *str, int *state); + +/** + * Calls a method. Can call both public and private methods. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] n Number of arguments that follow. + * @param[in] ... Arbitrary number of method arguments. + * @exception rb_eNoMethodError No such method. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + */ +VALUE rb_funcall(VALUE recv, ID mid, int n, ...); + +/** + * Identical to rb_funcall(), except it takes the method arguments as a C + * array. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @exception rb_eNoMethodError No such method. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + */ +VALUE rb_funcallv(VALUE recv, ID mid, int argc, const VALUE *argv); + +/** + * Identical to rb_funcallv(), except you can specify how to handle the last + * element of the given array. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eNoMethodError No such method. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + */ +VALUE rb_funcallv_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat); + +/** + * Identical to rb_funcallv(), except it only takes public methods into + * account. This is roughly Ruby's `Object#public_send`. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @exception rb_eNoMethodError No such method. + * @exception rb_eNoMethodError The method is private or protected. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + */ +VALUE rb_funcallv_public(VALUE recv, ID mid, int argc, const VALUE *argv); + +/** + * Identical to rb_funcallv_public(), except you can specify how to handle the + * last element of the given array. It can also be seen as a routine identical + * to rb_funcallv_kw(), except it only takes public methods into account. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eNoMethodError No such method. + * @exception rb_eNoMethodError The method is private or protected. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + */ +VALUE rb_funcallv_public_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat); + +/** + * @deprecated This is an old name of rb_funcallv(). Provided here for + * backwards compatibility to 2.x programs (introduced in 2.1). + * It is not a good name. Please don't use it any longer. + */ +#define rb_funcall2 rb_funcallv + +/** + * @deprecated This is an old name of rb_funcallv_public(). Provided here + * for backwards compatibility to 2.x programs (introduced in + * 2.1). It is not a good name. Please don't use it any longer. + */ +#define rb_funcall3 rb_funcallv_public + +/** + * Identical to rb_funcallv_public(), except you can pass the passed block. + * + * Sometimes you want to "pass" a block parameter form one method to another. + * Suppose you have this Ruby method `foo`: + * + * ```ruby + * def foo(x, y, &z) + * x.open(y, &z) + * end + * ``` + * + * And suppose you want to translate this into C. Then + * rb_funcall_passing_block() function is usable in this situation. + * + * ```CXX + * VALUE + * foo_translated_into_C(VALUE self, VALUE x, VALUE y) + * { + * const auto open = rb_intern("open"); + * + * return rb_funcall_passing_block(x, open, 1, &y); + * } + * ``` + * + * @see rb_yield_block + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @exception rb_eNoMethodError No such method. + * @exception rb_eNoMethodError The method is private or protected. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + */ +VALUE rb_funcall_passing_block(VALUE recv, ID mid, int argc, const VALUE *argv); + +/** + * Identical to rb_funcallv_passing_block(), except you can specify how to + * handle the last element of the given array. It can also be seen as a + * routine identical to rb_funcallv_public_kw(), except you can pass the passed + * block. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eNoMethodError No such method. + * @exception rb_eNoMethodError The method is private or protected. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + */ +VALUE rb_funcall_passing_block_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat); + +/** + * Identical to rb_funcallv_public(), except you can pass a block. A block + * here basically is an instance of ::rb_cProc. If you want to exercise + * `to_proc` conversion, do so before passing it here. However nil and symbols + * are special-case allowed. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] procval An instance of Proc, Symbol, or NilClass. + * @exception rb_eNoMethodError No such method. + * @exception rb_eNoMethodError The method is private or protected. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + * + * @internal + * + * Implementation-wise, `procval` is in fact a "block handler" object. You + * could also pass an IFUNC (block_handler_ifunc) here to say precise. --- But + * AFAIK there is no 3rd party way to even know that there are objects called + * IFUNC behind-the-scene. + */ +VALUE rb_funcall_with_block(VALUE recv, ID mid, int argc, const VALUE *argv, VALUE procval); + +/** + * Identical to rb_funcallv_with_block(), except you can specify how to handle + * the last element of the given array. It can also be seen as a routine + * identical to rb_funcallv_public_kw(), except you can pass a block. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] procval An instance of Proc, Symbol, or NilClass. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eNoMethodError No such method. + * @exception rb_eNoMethodError The method is private or protected. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + */ +VALUE rb_funcall_with_block_kw(VALUE recv, ID mid, int argc, const VALUE *argv, VALUE procval, int kw_splat); + +/** + * This resembles ruby's `super`. + * + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @exception rb_eNoMethodError No super method are there. + * @exception rb_eException Any exceptions happen inside. + * @return What the super method evaluates to. + */ +VALUE rb_call_super(int argc, const VALUE *argv); + +/** + * Identical to rb_call_super(), except you can specify how to handle the last + * element of the given array. + * + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eNoMethodError No super method are there. + * @exception rb_eException Any exceptions happen inside. + * @return What the super method evaluates to. + */ +VALUE rb_call_super_kw(int argc, const VALUE *argv, int kw_splat); + +/** + * This resembles ruby's `self`. + * + * @exception rb_eRuntimeError Called from outside of method context. + * @return Current receiver. + */ +VALUE rb_current_receiver(void); + +RBIMPL_ATTR_NONNULL((2)) +/** + * Keyword argument deconstructor. + * + * Retrieves argument values bound to keywords, which directed by `table` into + * `values`, deleting retrieved entries from `keyword_hash` along the way. + * First `required` number of IDs referred by `table` are mandatory, and + * succeeding `optional` (`-optional-1` if `optional` is negative) number of + * IDs are optional. If a mandatory key is not contained in `keyword_hash`, + * raises ::rb_eArgError. If an optional key is not present in `keyword_hash`, + * the corresponding element in `values` is set to ::RUBY_Qundef. If + * `optional` is negative, rest of `keyword_hash` are ignored, otherwise raises + * ::rb_eArgError. + * + * @warning Handling keyword arguments in the C API is less efficient than + * handling them in Ruby. Consider using a Ruby wrapper method + * around a non-keyword C function. + * @see https://bugs.ruby-lang.org/issues/11339 + * @param[out] keyword_hash Target hash to deconstruct. + * @param[in] table List of keywords that you are interested in. + * @param[in] required Number of mandatory keywords. + * @param[in] optional Number of optional keywords (can be negative). + * @param[out] values Buffer to be filled. + * @exception rb_eArgError Absence of a mandatory keyword. + * @exception rb_eArgError Found an unknown keyword. + * @return Number of found values that are stored into `values`. + */ +int rb_get_kwargs(VALUE keyword_hash, const ID *table, int required, int optional, VALUE *values); + +RBIMPL_ATTR_NONNULL(()) +/** + * Splits a hash into two. + * + * Takes a hash of various keys, and split it into symbol-keyed parts and + * others. Symbol-keyed part becomes the return value. What remains are + * returned as a new hash object stored at the argument pointer. + * + * @param[in,out] orighash Pointer to a target hash to split. + * @return An extracted keyword hash. + * @post Upon successful return `orighash` points to another hash + * object, whose contents are the remainder of the operation. + * @note The argument hash object is not modified. + */ +VALUE rb_extract_keywords(VALUE *orighash); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_EVAL_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/event.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/event.h new file mode 100644 index 0000000..04b137a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/event.h @@ -0,0 +1,154 @@ +#ifndef RBIMPL_EVENT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_EVENT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Debugging and tracing APIs. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +/* These macros are not enums because they are wider than int.*/ + +/** + * @name Traditional set_trace_func events + * + * @{ + */ +#define RUBY_EVENT_NONE 0x0000 /**< No events. */ +#define RUBY_EVENT_LINE 0x0001 /**< Encountered a new line. */ +#define RUBY_EVENT_CLASS 0x0002 /**< Encountered a new class. */ +#define RUBY_EVENT_END 0x0004 /**< Encountered an end of a class clause. */ +#define RUBY_EVENT_CALL 0x0008 /**< A method, written in Ruby, is called. */ +#define RUBY_EVENT_RETURN 0x0010 /**< Encountered a `return` statement. */ +#define RUBY_EVENT_C_CALL 0x0020 /**< A method, written in C, is called. */ +#define RUBY_EVENT_C_RETURN 0x0040 /**< Return from a method, written in C. */ +#define RUBY_EVENT_RAISE 0x0080 /**< Encountered a `raise` statement. */ +#define RUBY_EVENT_ALL 0x00ff /**< Bitmask of traditional events. */ + +/** @} */ + +/** + * @name TracePoint extended events + * + * @{ + */ +#define RUBY_EVENT_B_CALL 0x0100 /**< Encountered an `yield` statement. */ +#define RUBY_EVENT_B_RETURN 0x0200 /**< Encountered a `next` statement. */ +#define RUBY_EVENT_THREAD_BEGIN 0x0400 /**< Encountered a new thread. */ +#define RUBY_EVENT_THREAD_END 0x0800 /**< Encountered an end of a thread. */ +#define RUBY_EVENT_FIBER_SWITCH 0x1000 /**< Encountered a `Fiber#yield`. */ +#define RUBY_EVENT_SCRIPT_COMPILED 0x2000 /**< Encountered an `eval`. */ +#define RUBY_EVENT_TRACEPOINT_ALL 0xffff /**< Bitmask of extended events. */ + +/** @} */ + +/** + * @name Special events + * + * @internal + * + * These bits are actually used internally. See vm_core.h if you are curious. + * + * @endinternal + * + * @{ + */ +#define RUBY_EVENT_RESERVED_FOR_INTERNAL_USE 0x030000 /**< Opaque bits. */ + +/** @} */ + +/** + * @name Internal events + * + * @shyouhei's understanding is that some of them are visible from extension + * libraries because of `ext/objspace`. But it seems that doesn't describe + * everything? The ultimate reason why they are here remains unclear. + * + * @{ + */ +#define RUBY_INTERNAL_EVENT_SWITCH 0x040000 /**< Thread switched. */ +#define RUBY_EVENT_SWITCH 0x040000 /**< @old{RUBY_INTERNAL_EVENT_SWITCH} */ + /* 0x080000 */ +#define RUBY_INTERNAL_EVENT_NEWOBJ 0x100000 /**< Object allocated. */ +#define RUBY_INTERNAL_EVENT_FREEOBJ 0x200000 /**< Object swept. */ +#define RUBY_INTERNAL_EVENT_GC_START 0x400000 /**< GC started. */ +#define RUBY_INTERNAL_EVENT_GC_END_MARK 0x800000 /**< GC ended mark phase. */ +#define RUBY_INTERNAL_EVENT_GC_END_SWEEP 0x1000000 /**< GC ended sweep phase. */ +#define RUBY_INTERNAL_EVENT_GC_ENTER 0x2000000 /**< `gc_enter()` is called. */ +#define RUBY_INTERNAL_EVENT_GC_EXIT 0x4000000 /**< `gc_exit()` is called. */ +#define RUBY_INTERNAL_EVENT_OBJSPACE_MASK 0x7f00000 /**< Bitmask of GC events. */ +#define RUBY_INTERNAL_EVENT_MASK 0xffff0000 /**< Bitmask of internal events. */ + +/** @} */ + +/** + * Represents event(s). As the name implies events are bit flags. + */ +typedef uint32_t rb_event_flag_t; + +/** + * Type of event hooks. When an event happens registered functions are kicked + * with appropriate parameters. + * + * @param[in] evflag The kind of event that happened. + * @param[in] data The `data` passed to rb_add_event_hook(). + * @param[in] self Current receiver. + * @param[in] mid Name of the current method. + * @param[in] klass Current class. + */ +typedef void (*rb_event_hook_func_t)(rb_event_flag_t evflag, VALUE data, VALUE self, ID mid, VALUE klass); + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define RB_EVENT_HOOKS_HAVE_CALLBACK_DATA 1 + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Registers an event hook function. + * + * @param[in] func A callback. + * @param[in] events A set of events that `func` should run. + * @param[in] data Passed as-is to `func`. + */ +void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data); + +/** + * Removes the passed function from the list of event hooks. + * + * @param[in] func A callback. + * @return Number of deleted event hooks. + * @note As multiple events can share the same `func` it is quite + * possible for the return value to become more than one. + * + * @internal + * + * @shyouhei doesn't know if this is an Easter egg or an official feature, but + * you can pass 0 to the argument. That effectively swipes everything out from + * the hook list. + */ +int rb_remove_event_hook(rb_event_hook_func_t func); +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_EVENT_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/fl_type.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/fl_type.h new file mode 100644 index 0000000..7383426 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/fl_type.h @@ -0,0 +1,948 @@ +#ifndef RBIMPL_FL_TYPE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_FL_TYPE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines enum ::ruby_fl_type. + */ +#include "ruby/internal/config.h" /* for ENUM_OVER_INT */ +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/attr/flag_enum.h" +#include "ruby/internal/attr/forceinline.h" +#include "ruby/internal/attr/noalias.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/has/extension.h" +#include "ruby/internal/special_consts.h" +#include "ruby/internal/stdbool.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" +#include "ruby/assert.h" +#include "ruby/defines.h" + +/** @cond INTERNAL_MACRO */ +#if RBIMPL_HAS_EXTENSION(enumerator_attributes) +# define RBIMPL_HAVE_ENUM_ATTRIBUTE 1 +#elif RBIMPL_COMPILER_SINCE(GCC, 6, 0, 0) +# define RBIMPL_HAVE_ENUM_ATTRIBUTE 1 +#endif + +#ifdef ENUM_OVER_INT +# define RBIMPL_WIDER_ENUM 1 +#elif SIZEOF_INT * CHAR_BIT > 12+19+1 +# define RBIMPL_WIDER_ENUM 1 +#else +# define RBIMPL_WIDER_ENUM 0 +#endif +/** @endcond */ + +#define FL_SINGLETON RBIMPL_CAST((VALUE)RUBY_FL_SINGLETON) /**< @old{RUBY_FL_SINGLETON} */ +#define FL_WB_PROTECTED RBIMPL_CAST((VALUE)RUBY_FL_WB_PROTECTED) /**< @old{RUBY_FL_WB_PROTECTED} */ +#define FL_PROMOTED0 RBIMPL_CAST((VALUE)RUBY_FL_PROMOTED0) /**< @old{RUBY_FL_PROMOTED0} */ +#define FL_PROMOTED1 RBIMPL_CAST((VALUE)RUBY_FL_PROMOTED1) /**< @old{RUBY_FL_PROMOTED1} */ +#define FL_FINALIZE RBIMPL_CAST((VALUE)RUBY_FL_FINALIZE) /**< @old{RUBY_FL_FINALIZE} */ +#define FL_TAINT RBIMPL_CAST((VALUE)RUBY_FL_TAINT) /**< @old{RUBY_FL_TAINT} */ +#define FL_SHAREABLE RBIMPL_CAST((VALUE)RUBY_FL_SHAREABLE) /**< @old{RUBY_FL_SHAREABLE} */ +#define FL_UNTRUSTED RBIMPL_CAST((VALUE)RUBY_FL_UNTRUSTED) /**< @old{RUBY_FL_UNTRUSTED} */ +#define FL_SEEN_OBJ_ID RBIMPL_CAST((VALUE)RUBY_FL_SEEN_OBJ_ID) /**< @old{RUBY_FL_SEEN_OBJ_ID} */ +#define FL_EXIVAR RBIMPL_CAST((VALUE)RUBY_FL_EXIVAR) /**< @old{RUBY_FL_EXIVAR} */ +#define FL_FREEZE RBIMPL_CAST((VALUE)RUBY_FL_FREEZE) /**< @old{RUBY_FL_FREEZE} */ + +#define FL_USHIFT RBIMPL_CAST((VALUE)RUBY_FL_USHIFT) /**< @old{RUBY_FL_USHIFT} */ + +#define FL_USER0 RBIMPL_CAST((VALUE)RUBY_FL_USER0) /**< @old{RUBY_FL_USER0} */ +#define FL_USER1 RBIMPL_CAST((VALUE)RUBY_FL_USER1) /**< @old{RUBY_FL_USER1} */ +#define FL_USER2 RBIMPL_CAST((VALUE)RUBY_FL_USER2) /**< @old{RUBY_FL_USER2} */ +#define FL_USER3 RBIMPL_CAST((VALUE)RUBY_FL_USER3) /**< @old{RUBY_FL_USER3} */ +#define FL_USER4 RBIMPL_CAST((VALUE)RUBY_FL_USER4) /**< @old{RUBY_FL_USER4} */ +#define FL_USER5 RBIMPL_CAST((VALUE)RUBY_FL_USER5) /**< @old{RUBY_FL_USER5} */ +#define FL_USER6 RBIMPL_CAST((VALUE)RUBY_FL_USER6) /**< @old{RUBY_FL_USER6} */ +#define FL_USER7 RBIMPL_CAST((VALUE)RUBY_FL_USER7) /**< @old{RUBY_FL_USER7} */ +#define FL_USER8 RBIMPL_CAST((VALUE)RUBY_FL_USER8) /**< @old{RUBY_FL_USER8} */ +#define FL_USER9 RBIMPL_CAST((VALUE)RUBY_FL_USER9) /**< @old{RUBY_FL_USER9} */ +#define FL_USER10 RBIMPL_CAST((VALUE)RUBY_FL_USER10) /**< @old{RUBY_FL_USER10} */ +#define FL_USER11 RBIMPL_CAST((VALUE)RUBY_FL_USER11) /**< @old{RUBY_FL_USER11} */ +#define FL_USER12 RBIMPL_CAST((VALUE)RUBY_FL_USER12) /**< @old{RUBY_FL_USER12} */ +#define FL_USER13 RBIMPL_CAST((VALUE)RUBY_FL_USER13) /**< @old{RUBY_FL_USER13} */ +#define FL_USER14 RBIMPL_CAST((VALUE)RUBY_FL_USER14) /**< @old{RUBY_FL_USER14} */ +#define FL_USER15 RBIMPL_CAST((VALUE)RUBY_FL_USER15) /**< @old{RUBY_FL_USER15} */ +#define FL_USER16 RBIMPL_CAST((VALUE)RUBY_FL_USER16) /**< @old{RUBY_FL_USER16} */ +#define FL_USER17 RBIMPL_CAST((VALUE)RUBY_FL_USER17) /**< @old{RUBY_FL_USER17} */ +#define FL_USER18 RBIMPL_CAST((VALUE)RUBY_FL_USER18) /**< @old{RUBY_FL_USER18} */ +#define FL_USER19 RBIMPL_CAST((VALUE)(unsigned int)RUBY_FL_USER19) /**< @old{RUBY_FL_USER19} */ + +#define ELTS_SHARED RUBY_ELTS_SHARED /**< @old{RUBY_ELTS_SHARED} */ +#define RB_OBJ_FREEZE rb_obj_freeze_inline /**< @alias{rb_obj_freeze_inline} */ + +/** @cond INTERNAL_MACRO */ +#define RUBY_ELTS_SHARED RUBY_ELTS_SHARED +#define RB_FL_ABLE RB_FL_ABLE +#define RB_FL_ALL RB_FL_ALL +#define RB_FL_ALL_RAW RB_FL_ALL_RAW +#define RB_FL_ANY RB_FL_ANY +#define RB_FL_ANY_RAW RB_FL_ANY_RAW +#define RB_FL_REVERSE RB_FL_REVERSE +#define RB_FL_REVERSE_RAW RB_FL_REVERSE_RAW +#define RB_FL_SET RB_FL_SET +#define RB_FL_SET_RAW RB_FL_SET_RAW +#define RB_FL_TEST RB_FL_TEST +#define RB_FL_TEST_RAW RB_FL_TEST_RAW +#define RB_FL_UNSET RB_FL_UNSET +#define RB_FL_UNSET_RAW RB_FL_UNSET_RAW +#define RB_OBJ_FREEZE_RAW RB_OBJ_FREEZE_RAW +#define RB_OBJ_FROZEN RB_OBJ_FROZEN +#define RB_OBJ_FROZEN_RAW RB_OBJ_FROZEN_RAW +#define RB_OBJ_INFECT RB_OBJ_INFECT +#define RB_OBJ_INFECT_RAW RB_OBJ_INFECT_RAW +#define RB_OBJ_TAINT RB_OBJ_TAINT +#define RB_OBJ_TAINTABLE RB_OBJ_TAINTABLE +#define RB_OBJ_TAINTED RB_OBJ_TAINTED +#define RB_OBJ_TAINTED_RAW RB_OBJ_TAINTED_RAW +#define RB_OBJ_TAINT_RAW RB_OBJ_TAINT_RAW +#define RB_OBJ_UNTRUST RB_OBJ_TAINT +#define RB_OBJ_UNTRUSTED RB_OBJ_TAINTED +/** @endcond */ + +/** + * @defgroup deprecated_macros Deprecated macro APIs + * @{ + * These macros are deprecated. Prefer their `RB_`-prefixed versions. + */ +#define FL_ABLE RB_FL_ABLE /**< @old{RB_FL_ABLE} */ +#define FL_ALL RB_FL_ALL /**< @old{RB_FL_ALL} */ +#define FL_ALL_RAW RB_FL_ALL_RAW /**< @old{RB_FL_ALL_RAW} */ +#define FL_ANY RB_FL_ANY /**< @old{RB_FL_ANY} */ +#define FL_ANY_RAW RB_FL_ANY_RAW /**< @old{RB_FL_ANY_RAW} */ +#define FL_REVERSE RB_FL_REVERSE /**< @old{RB_FL_REVERSE} */ +#define FL_REVERSE_RAW RB_FL_REVERSE_RAW /**< @old{RB_FL_REVERSE_RAW} */ +#define FL_SET RB_FL_SET /**< @old{RB_FL_SET} */ +#define FL_SET_RAW RB_FL_SET_RAW /**< @old{RB_FL_SET_RAW} */ +#define FL_TEST RB_FL_TEST /**< @old{RB_FL_TEST} */ +#define FL_TEST_RAW RB_FL_TEST_RAW /**< @old{RB_FL_TEST_RAW} */ +#define FL_UNSET RB_FL_UNSET /**< @old{RB_FL_UNSET} */ +#define FL_UNSET_RAW RB_FL_UNSET_RAW /**< @old{RB_FL_UNSET_RAW} */ +#define OBJ_FREEZE RB_OBJ_FREEZE /**< @old{RB_OBJ_FREEZE} */ +#define OBJ_FREEZE_RAW RB_OBJ_FREEZE_RAW /**< @old{RB_OBJ_FREEZE_RAW} */ +#define OBJ_FROZEN RB_OBJ_FROZEN /**< @old{RB_OBJ_FROZEN} */ +#define OBJ_FROZEN_RAW RB_OBJ_FROZEN_RAW /**< @old{RB_OBJ_FROZEN_RAW} */ +#define OBJ_INFECT RB_OBJ_INFECT /**< @old{RB_OBJ_INFECT} */ +#define OBJ_INFECT_RAW RB_OBJ_INFECT_RAW /**< @old{RB_OBJ_INFECT_RAW} */ +#define OBJ_TAINT RB_OBJ_TAINT /**< @old{RB_OBJ_TAINT} */ +#define OBJ_TAINTABLE RB_OBJ_TAINTABLE /**< @old{RB_OBJ_TAINT_RAW} */ +#define OBJ_TAINTED RB_OBJ_TAINTED /**< @old{RB_OBJ_TAINTED} */ +#define OBJ_TAINTED_RAW RB_OBJ_TAINTED_RAW /**< @old{RB_OBJ_TAINTED_RAW} */ +#define OBJ_TAINT_RAW RB_OBJ_TAINT_RAW /**< @old{RB_OBJ_TAINT_RAW} */ +#define OBJ_UNTRUST RB_OBJ_UNTRUST /**< @old{RB_OBJ_TAINT} */ +#define OBJ_UNTRUSTED RB_OBJ_UNTRUSTED /**< @old{RB_OBJ_TAINTED} */ +/** @} */ + +/** + * This is an enum because GDB wants it (rather than a macro). People need not + * bother. + */ +enum ruby_fl_ushift { + /** + * Number of bits in ::ruby_fl_type that are _not_ open to users. This is + * an implementation detail. Please ignore. + */ + RUBY_FL_USHIFT = 12 +}; + +/* > The expression that defines the value of an enumeration constant shall be + * > an integer constant expression that has a value representable as an `int`. + * + * -- ISO/IEC 9899:2018 section 6.7.2.2 + * + * So ENUM_OVER_INT situation is an extension to the standard. Note however + * that we do not support 16 bit `int` environment. */ +RB_GNUC_EXTENSION +/** + * The flags. Each ruby objects have their own characteristics apart from + * their classes. For instance whether an object is frozen or not is not + * controlled by its class. This is the type that represents such properties. + * + * @note About the `FL_USER` terminology: the "user" here does not necessarily + * mean only you. For instance struct ::RString instances use these + * bits to cache their encodings etc. Devs discussed about this topic, + * reached their consensus that ::RUBY_T_DATA is the only valid data + * structure that can use these bits; other data structures including + * ::RUBY_T_OBJECT use these bits for their own purpose. See also + * https://bugs.ruby-lang.org/issues/18059 + */ +enum +RBIMPL_ATTR_FLAG_ENUM() +ruby_fl_type { + + /** + * @deprecated This flag once was a thing back in the old days, but makes + * no sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + * + * @internal + * + * The reality is our GC no longer remembers write barriers inside of each + * objects, to use dedicated bitmap instead. But this flag is still used + * internally. The current usages of this flag should be something + * different, which is unclear to @shyouhei. + */ + RUBY_FL_WB_PROTECTED = (1<<5), + + /** + * This flag has something to do with our garbage collector. These days + * ruby objects are "generational". There are those who are young and + * those who are old. Young objects are prone to die; monitored relatively + * extensively by the garbage collector. OTOH old objects tend to live + * longer. They are relatively rarely considered. This flag is set when a + * object experienced promotion i.e. survived a garbage collection. + * + * @internal + * + * But honestly, @shyouhei doesn't think this flag should be visible from + * 3rd parties. It must be an implementation detail that they should never + * know. Might better be hidden. + */ + RUBY_FL_PROMOTED0 = (1<<5), + + /** + * This flag has something to do with our garbage collector. These days + * ruby objects are "generational". There are those who are young and + * those who are old. Young objects are prone to die; monitored relatively + * extensively by the garbage collector. OTOH old objects tend to live + * longer. They are relatively rarely considered. This flag is set when a + * object experienced two promotions i.e. survived garbage collections + * twice. + * + * @internal + * + * But honestly, @shyouhei doesn't think this flag should be visible from + * 3rd parties. It must be an implementation detail that they should never + * know. Might better be hidden. + */ + RUBY_FL_PROMOTED1 = (1<<6), + + /** + * This flag has something to do with our garbage collector. These days + * ruby objects are "generational". There are those who are young and + * those who are old. Young objects are prone to die; monitored relatively + * extensively by the garbage collector. OTOH old objects tend to live + * longer. They are relatively rarely considered. This flag is set when a + * object experienced promotions i.e. survived more than one garbage + * collections. + * + * @internal + * + * But honestly, @shyouhei doesn't think this flag should be visible from + * 3rd parties. It must be an implementation detail that they should never + * know. Might better be hidden. + */ + RUBY_FL_PROMOTED = RUBY_FL_PROMOTED0 | RUBY_FL_PROMOTED1, + + /** + * This flag has something to do with finalisers. A ruby object can have + * its finaliser, which is another object that evaluates when the target + * object is about to die. This flag is used to denote that there is an + * attached finaliser. + * + * @internal + * + * But honestly, @shyouhei doesn't think this flag should be visible from + * 3rd parties. It must be an implementation detail that they should never + * know. Might better be hidden. + */ + RUBY_FL_FINALIZE = (1<<7), + + /** + * @deprecated This flag once was a thing back in the old days, but makes + * no sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + */ + RUBY_FL_TAINT + +#if defined(RBIMPL_HAVE_ENUM_ATTRIBUTE) + RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea.")) +#elif defined(_MSC_VER) +# pragma deprecated(RUBY_FL_TAINT) +#endif + + = (1<<8), + + /** + * This flag has something to do with Ractor. Multiple Ractors run without + * protecting each other. Sharing an object among Ractors are basically + * dangerous, disabled by default. This flag is used to bypass that + * restriction. Of course, you have to manually prevent race conditions + * then. + * + * This flag needs deep understanding of multithreaded programming. You + * would better not use it. + */ + RUBY_FL_SHAREABLE = (1<<8), + + /** + * @deprecated This flag once was a thing back in the old days, but makes + * no sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + */ + RUBY_FL_UNTRUSTED + +#if defined(RBIMPL_HAVE_ENUM_ATTRIBUTE) + RBIMPL_ATTR_DEPRECATED(("trustedness turned out to be a wrong idea.")) +#elif defined(_MSC_VER) +# pragma deprecated(RUBY_FL_UNTRUSTED) +#endif + + = (1<<8), + + /** + * This flag has something to do with object IDs. Unlike in the old days, + * an object's object ID (that a user can query using `Object#object_id`) + * is no longer its physical address represented using Ruby level integers. + * It is now a monotonic-increasing integer unrelated to the underlying + * memory arrangement. Object IDs are assigned when necessary; objects are + * born without one, and will eventually have such property when queried. + * The interpreter has to manage which one is which. This is the flag that + * helps the management. Objects with this flag set are the ones with + * object IDs assigned. + * + * @internal + * + * But honestly, @shyouhei doesn't think this flag should be visible from + * 3rd parties. It must be an implementation detail that they should never + * know. Might better be hidden. + */ + RUBY_FL_SEEN_OBJ_ID = (1<<9), + + /** + * This flag has something to do with instance variables. 3rd parties need + * not know, but there are several ways to store an object's instance + * variables. Objects with this flag use so-called "generic" backend + * storage. This distinction is purely an implementation detail. People + * need not be aware of this working behind-the-scene. + * + * @internal + * + * As of writing everything except ::RObject and RModule use this scheme. + */ + RUBY_FL_EXIVAR = (1<<10), + + /** + * This flag has something to do with data immutability. When this flag is + * set an object is considered "frozen". No modification are expected to + * happen beyond that point for the particular object. Immutability is + * basically considered to be a good property these days. Library authors + * are expected to obey. Test this bit before you touch a data structure. + * + * @see rb_check_frozen() + */ + RUBY_FL_FREEZE = (1<<11), + +/** (@shyouhei doesn't know how to excude this macro from doxygen). */ +#define RBIMPL_FL_USER_N(n) RUBY_FL_USER##n = (1<<(RUBY_FL_USHIFT+n)) + RBIMPL_FL_USER_N(0), /**< User-defined flag. */ + RBIMPL_FL_USER_N(1), /**< User-defined flag. */ + RBIMPL_FL_USER_N(2), /**< User-defined flag. */ + RBIMPL_FL_USER_N(3), /**< User-defined flag. */ + RBIMPL_FL_USER_N(4), /**< User-defined flag. */ + RBIMPL_FL_USER_N(5), /**< User-defined flag. */ + RBIMPL_FL_USER_N(6), /**< User-defined flag. */ + RBIMPL_FL_USER_N(7), /**< User-defined flag. */ + RBIMPL_FL_USER_N(8), /**< User-defined flag. */ + RBIMPL_FL_USER_N(9), /**< User-defined flag. */ + RBIMPL_FL_USER_N(10), /**< User-defined flag. */ + RBIMPL_FL_USER_N(11), /**< User-defined flag. */ + RBIMPL_FL_USER_N(12), /**< User-defined flag. */ + RBIMPL_FL_USER_N(13), /**< User-defined flag. */ + RBIMPL_FL_USER_N(14), /**< User-defined flag. */ + RBIMPL_FL_USER_N(15), /**< User-defined flag. */ + RBIMPL_FL_USER_N(16), /**< User-defined flag. */ + RBIMPL_FL_USER_N(17), /**< User-defined flag. */ + RBIMPL_FL_USER_N(18), /**< User-defined flag. */ +#ifdef ENUM_OVER_INT + RBIMPL_FL_USER_N(19), /**< User-defined flag. */ +#else +# define RUBY_FL_USER19 (RBIMPL_VALUE_ONE<<(RUBY_FL_USHIFT+19)) +#endif +#undef RBIMPL_FL_USER_N +#undef RBIMPL_WIDER_ENUM + + /** + * This flag has something to do with data structures. Over time, ruby + * evolved to reduce memory footprints. One of such attempt is so-called + * copy-on-write, which delays duplication of resources until ultimately + * necessary. Some data structures share this scheme. For example + * multiple instances of struct ::RArray could point identical memory + * region in common, as long as they don't differ. As people favour + * immutable style of programming than before, this situation is getting + * more and more common. Because such "shared" memory regions have nuanced + * ownership by nature, each structures need special care for them. This + * flag is used to distinguish such shared constructs. + * + * @internal + * + * But honestly, @shyouhei doesn't think this flag should be visible from + * 3rd parties. It must be an implementation detail that they should never + * know. Might better be hidden. + */ + RUBY_ELTS_SHARED = RUBY_FL_USER2, + + /** + * This flag has something to do with an object's class. There are kind of + * classes called "singleton class", each of which have exactly one + * instance. What is interesting about singleton classes is that they are + * created _after_ their instance were instantiated, like this: + * + * ```ruby + * foo = Object.new # foo is an instance of Object... + * bar = foo.singleton_class # foo is now an instance of bar. + * ``` + * + * Here as you see `bar` is a singleton class of `foo`, which is injected + * into `foo`'s inheritance tree in a different statement (== distinct + * sequence point). In order to achieve this property singleton classes + * are special-cased in the interpreter. There is one bit flag that + * distinguishes if a class is a singleton class or not, and this is it. + * + * @internal + * + * But honestly, @shyouhei doesn't think this flag should be visible from + * 3rd parties. It must be an implementation detail that they should never + * know. Might better be hidden. + */ + RUBY_FL_SINGLETON = RUBY_FL_USER0, +}; + +enum { + /** + * @deprecated This flag once was a thing back in the old days, but makes + * no sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + */ + RUBY_FL_DUPPED + +#if defined(RBIMPL_HAVE_ENUM_ATTRIBUTE) + RBIMPL_ATTR_DEPRECATED(("It seems there is no actual usage of this enum.")) +#elif defined(_MSC_VER) +# pragma deprecated(RUBY_FL_DUPPED) +#endif + + = (int)RUBY_T_MASK | (int)RUBY_FL_EXIVAR +}; + +#undef RBIMPL_HAVE_ENUM_ATTRIBUTE + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * This is an implementation detail of #RB_OBJ_FREEZE(). People don't use it + * directly. + * + * @param[out] klass A singleton class. + * @post `klass` gets frozen. + */ +void rb_freeze_singleton_class(VALUE klass); +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_FORCEINLINE() +/** + * Checks if the object is flaggable. There are some special cases (most + * notably ::RUBY_Qfalse) where appending a flag to an object is not possible. + * This function can detect that. + * + * @param[in] obj Object in question + * @retval true It is flaggable. + * @retval false No it isn't. + */ +static bool +RB_FL_ABLE(VALUE obj) +{ + if (RB_SPECIAL_CONST_P(obj)) { + return false; + } + else if (RB_TYPE_P(obj, RUBY_T_NODE)) { + return false; + } + else { + return true; + } +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * This is an implenentation detail of RB_FL_TEST(). 3rd parties need not use + * this. Just always use RB_FL_TEST(). + * + * @param[in] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @pre The object must not be an enum ::ruby_special_consts. + * @return `obj`'s flags, masked by `flags`. + */ +static inline VALUE +RB_FL_TEST_RAW(VALUE obj, VALUE flags) +{ + RBIMPL_ASSERT_OR_ASSUME(RB_FL_ABLE(obj)); + return RBASIC(obj)->flags & flags; +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Tests if the given flag(s) are set or not. You can pass multiple flags at + * once: + * + * ```CXX + * auto obj = rb_eval_string("..."); + * if (RB_FL_TEST(obj, RUBY_FL_FREEZE | RUBY_FL_SHAREABLE)) { + * printf("Ractor ready!\n"); + * } + * ``` + * + * @param[in] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @return `obj`'s flags, masked by `flags`. + * @note It is intentional for this function to return ::VALUE. The + * return value could be passed to RB_FL_STE() etc. + */ +static inline VALUE +RB_FL_TEST(VALUE obj, VALUE flags) +{ + if (RB_FL_ABLE(obj)) { + return RB_FL_TEST_RAW(obj, flags); + } + else { + return RBIMPL_VALUE_NULL; + } +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * This is an implenentation detail of RB_FL_ANY(). 3rd parties need not use + * this. Just always use RB_FL_ANY(). + * + * @param[in] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @retval true The object has any of the flags set. + * @retval false No it doesn't at all. + * @pre The object must not be an enum ::ruby_special_consts. + */ +static inline bool +RB_FL_ANY_RAW(VALUE obj, VALUE flags) +{ + return RB_FL_TEST_RAW(obj, flags); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Identical to RB_FL_TEST(), except it returns bool. + * + * @param[in] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @retval true The object has any of the flags set. + * @retval false No it doesn't at all. + */ +static inline bool +RB_FL_ANY(VALUE obj, VALUE flags) +{ + return RB_FL_TEST(obj, flags); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * This is an implenentation detail of RB_FL_ALL(). 3rd parties need not use + * this. Just always use RB_FL_ALL(). + * + * @param[in] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @retval true The object has all of the flags set. + * @retval false The object lacks any of the flags. + * @pre The object must not be an enum ::ruby_special_consts. + */ +static inline bool +RB_FL_ALL_RAW(VALUE obj, VALUE flags) +{ + return RB_FL_TEST_RAW(obj, flags) == flags; +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Identical to RB_FL_ANY(), except it mandates all passed flags be set. + * + * @param[in] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @retval true The object has all of the flags set. + * @retval false The object lacks any of the flags. + */ +static inline bool +RB_FL_ALL(VALUE obj, VALUE flags) +{ + return RB_FL_TEST(obj, flags) == flags; +} + +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_ARTIFICIAL() +/** + * @private + * + * This is an implenentation detail of RB_FL_SET(). 3rd parties need not use + * this. Just always use RB_FL_SET(). + * + * @param[out] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @post `obj` has `flags` set. + * + * @internal + * + * This is function is here to annotate a part of RB_FL_SET_RAW() as + * `__declspec(noalias)`. + */ +static inline void +rbimpl_fl_set_raw_raw(struct RBasic *obj, VALUE flags) +{ + obj->flags |= flags; +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * This is an implenentation detail of RB_FL_SET(). 3rd parties need not use + * this. Just always use RB_FL_SET(). + * + * @param[out] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @post `obj` has `flags` set. + */ +static inline void +RB_FL_SET_RAW(VALUE obj, VALUE flags) +{ + RBIMPL_ASSERT_OR_ASSUME(RB_FL_ABLE(obj)); + rbimpl_fl_set_raw_raw(RBASIC(obj), flags); +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Sets the given flag(s). + * + * ```CXX + * auto v = rb_eval_string("..."); + * RB_FL_SET(v, RUBY_FL_FREEZE); + * ``` + * + * @param[out] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @post `obj` has `flags` set. + */ +static inline void +RB_FL_SET(VALUE obj, VALUE flags) +{ + if (RB_FL_ABLE(obj)) { + RB_FL_SET_RAW(obj, flags); + } +} + +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_ARTIFICIAL() +/** + * @private + * + * This is an implenentation detail of RB_FL_UNSET(). 3rd parties need not use + * this. Just always use RB_FL_UNSET(). + * + * @param[out] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @post `obj` has `flags` cleared. + * + * @internal + * + * This is function is here to annotate a part of RB_FL_UNSET_RAW() as + * `__declspec(noalias)`. + */ +static inline void +rbimpl_fl_unset_raw_raw(struct RBasic *obj, VALUE flags) +{ + obj->flags &= ~flags; +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * This is an implenentation detail of RB_FL_UNSET(). 3rd parties need not use + * this. Just always use RB_FL_UNSET(). + * + * @param[out] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @post `obj` has `flags` cleared. + */ +static inline void +RB_FL_UNSET_RAW(VALUE obj, VALUE flags) +{ + RBIMPL_ASSERT_OR_ASSUME(RB_FL_ABLE(obj)); + rbimpl_fl_unset_raw_raw(RBASIC(obj), flags); +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Clears the given flag(s). + * + * @param[out] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @post `obj` has `flags` cleard. + */ +static inline void +RB_FL_UNSET(VALUE obj, VALUE flags) +{ + if (RB_FL_ABLE(obj)) { + RB_FL_UNSET_RAW(obj, flags); + } +} + +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_ARTIFICIAL() +/** + * @private + * + * This is an implenentation detail of RB_FL_REVERSE(). 3rd parties need not + * use this. Just always use RB_FL_REVERSE(). + * + * @param[out] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @post `obj` has `flags` reversed. + * + * @internal + * + * This is function is here to annotate a part of RB_FL_REVERSE_RAW() as + * `__declspec(noalias)`. + */ +static inline void +rbimpl_fl_reverse_raw_raw(struct RBasic *obj, VALUE flags) +{ + obj->flags ^= flags; +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * This is an implenentation detail of RB_FL_REVERSE(). 3rd parties need not + * use this. Just always use RB_FL_REVERSE(). + * + * @param[out] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @post `obj` has `flags` cleared. + */ +static inline void +RB_FL_REVERSE_RAW(VALUE obj, VALUE flags) +{ + RBIMPL_ASSERT_OR_ASSUME(RB_FL_ABLE(obj)); + rbimpl_fl_reverse_raw_raw(RBASIC(obj), flags); +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Reverses the flags. This function is here mainly for symmetry on set/unset. + * Rarely used in practice. + * + * @param[out] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @post `obj` has `flags` reversed. + */ +static inline void +RB_FL_REVERSE(VALUE obj, VALUE flags) +{ + if (RB_FL_ABLE(obj)) { + RB_FL_REVERSE_RAW(obj, flags); + } +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea.")) +/** + * @deprecated This function once was a thing in the old days, but makes no + * sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + * + * @param[in] obj Object in question. + * @return false always. + */ +static inline bool +RB_OBJ_TAINTABLE(VALUE obj) +{ + return false; +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea.")) +/** + * @deprecated This function once was a thing in the old days, but makes no + * sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + * + * @param[in] obj Object in question. + * @return false always. + */ +static inline VALUE +RB_OBJ_TAINTED_RAW(VALUE obj) +{ + return false; +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea.")) +/** + * @deprecated This function once was a thing in the old days, but makes no + * sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + * + * @param[in] obj Object in question. + * @return false always. + */ +static inline bool +RB_OBJ_TAINTED(VALUE obj) +{ + return false; +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea.")) +/** + * @deprecated This function once was a thing in the old days, but makes no + * sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + * + * @param[in] obj Object in question. + */ +static inline void +RB_OBJ_TAINT_RAW(VALUE obj) +{ + return; +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea.")) +/** + * @deprecated This function once was a thing in the old days, but makes no + * sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + * + * @param[in] obj Object in question. + */ +static inline void +RB_OBJ_TAINT(VALUE obj) +{ + return; +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea.")) +/** + * @deprecated This function once was a thing in the old days, but makes no + * sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + * + * @param[in] dst Victim object. + * @param[in] src Infectant object. + */ +static inline void +RB_OBJ_INFECT_RAW(VALUE dst, VALUE src) +{ + return; +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea.")) +/** + * @deprecated This function once was a thing in the old days, but makes no + * sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + * + * @param[in] dst Victim object. + * @param[in] src Infectant object. + */ +static inline void +RB_OBJ_INFECT(VALUE dst, VALUE src) +{ + return; +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * This is an implenentation detail of RB_OBJ_FROZEN(). 3rd parties need not + * use this. Just always use RB_OBJ_FROZEN(). + * + * @param[in] obj Object in question. + * @retval RUBY_FL_FREEZE Yes it is. + * @retval 0 No it isn't. + * + * @internal + * + * It is intentional not to return bool here. There is a place in ruby core + * (namely `class.c:singleton_class_of()`) where return value of this function + * is passed to RB_FL_SET_RAW(). + */ +static inline VALUE +RB_OBJ_FROZEN_RAW(VALUE obj) +{ + return RB_FL_TEST_RAW(obj, RUBY_FL_FREEZE); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks if an object is frozen. + * + * @param[in] obj Object in question. + * @retval true Yes it is. + * @retval false No it isn't. + */ +static inline bool +RB_OBJ_FROZEN(VALUE obj) +{ + if (! RB_FL_ABLE(obj)) { + return true; + } + else { + return RB_OBJ_FROZEN_RAW(obj); + } +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * This is an implenentation detail of RB_OBJ_FREEZE(). 3rd parties need not + * use this. Just always use RB_OBJ_FREEZE(). + * + * @param[out] obj Object in question. + */ +static inline void +RB_OBJ_FREEZE_RAW(VALUE obj) +{ + RB_FL_SET_RAW(obj, RUBY_FL_FREEZE); +} + +RUBY_SYMBOL_EXPORT_BEGIN +void rb_obj_freeze_inline(VALUE obj); +RUBY_SYMBOL_EXPORT_END + +#endif /* RBIMPL_FL_TYPE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/gc.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/gc.h new file mode 100644 index 0000000..66fc14e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/gc.h @@ -0,0 +1,57 @@ +#ifndef RBIMPL_GC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_GC_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Registering values to the GC. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Inform the garbage collector that `valptr` points to a live Ruby object that + * should not be moved. Note that extensions should use this API on global + * constants instead of assuming constants defined in Ruby are always alive. + * Ruby code can remove global constants. + */ +void rb_gc_register_address(VALUE *valptr); + +/** + * An alias for `rb_gc_register_address()`. + */ +void rb_global_variable(VALUE *); + +/** + * Inform the garbage collector that a pointer previously passed to + * `rb_gc_register_address()` no longer points to a live Ruby object. + */ +void rb_gc_unregister_address(VALUE *valptr); + +/** + * Inform the garbage collector that `object` is a live Ruby object that should + * not be moved. + * + * See also: rb_gc_register_address() + */ +void rb_gc_register_mark_object(VALUE object); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_GC_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/glob.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/glob.h new file mode 100644 index 0000000..adbccbd --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/glob.h @@ -0,0 +1,113 @@ +#ifndef RBIMPL_GLOB_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_GLOB_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Declares ::rb_glob(). + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Type of a glob callback function. Called every time glob scans a path. + * + * @param[in] path The path in question. + * @param[in] arg The argument passed to rb_glob(). + * @param[in] enc Encoding of the path. + * @retval -1 Not enough memory to do the operation. + * @retval 0 Operation successful. + * @retval otherwise Opaque exception state. + * @note You can use rb_protect() to generate the return value. + * + * @internal + * + * This is a wrong design. Type of `enc` should have been `rb_encoding*` + * instead of just `void*`. But we cannot change the API any longer. + * + * Though not a part of our public API, the "opaque exception state" is in fact + * an enum ruby_tag_type. You can see the potential "otherwise" values by + * looking at vm_core.h. + */ +typedef int ruby_glob_func(const char *path, VALUE arg, void *enc); + +RBIMPL_ATTR_NONNULL(()) +/** + * The "glob" operator. Expands the given pattern against the actual local + * filesystem, then iterates over the expanded filenames by calling the + * callback function. + * + * @param[in] pattern A glob pattern. + * @param[in] func Identical to ruby_glob_func, except it can raise + * exceptions instead of returning opaque state. + * @param[in] arg Extra argument passed to func. + * @exception rb_eException Can propagate what `func` raises. + * @note The language accepted as the pattern is not a regular + * expression. It resembles shell's glob. + */ +void rb_glob(const char *pattern, void (*func)(const char *path, VALUE arg, void *enc), VALUE arg); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_glob(), except it returns opaque exception states instead of + * raising exceptions. + * + * @param[in] pattern A glob pattern. + * @param[in] flags No, you are not allowed to use this. Just pass 0. + * @param[in] func A callback function. + * @param[in] arg Extra argument passed to func. + * @return Return value of `func`. + * + * @internal + * + * This function is completely broken by design... Not only is there no sane + * way to pass flags, but there also is no sane way to know what a return value + * is meant to be. + * + * Though not a part of our public API, and @shyouhei thinks it's a failure not + * to be a public API, the flags can be `FNM_EXTGLOB`, `FNM_DOTMATCH` etc. + * Look at dir.c for the list. + * + * Though not a part of our public API, the return value is in fact an + * enum ruby_tag_type. You can see the potential values by looking at + * vm_core.h. + */ +int ruby_glob(const char *pattern, int flags, ruby_glob_func *func, VALUE arg); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to ruby_glob(), @shyouhei currently suspects. Historically you + * had to call this function instead of ruby_glob() if the pattern included + * "{x,y,...}" syntax. However since commit 0f63d961169989a7f6dcf7c0487fe29da, + * ruby_glob() also supports that syntax. It seems as of writing these two + * functions provide basically the same functionality in a different + * implementation. Is this analysis right? Correct me! :FIXME: + * + * @param[in] pattern A glob pattern. + * @param[in] flags No, you are not allowed to use this. Just pass 0. + * @param[in] func A callback function. + * @param[in] arg Extra argument passed to func. + * @return Return value of `func`. + */ +int ruby_brace_glob(const char *pattern, int flags, ruby_glob_func *func, VALUE arg); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_GLOB_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/globals.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/globals.h new file mode 100644 index 0000000..5a414fc --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/globals.h @@ -0,0 +1,209 @@ +#ifndef RBIMPL_GLOBALS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_GLOBALS_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Ruby-level global variables / constants, visible from C. + */ +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/fl_type.h" +#include "ruby/internal/special_consts.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" + +/** + * @defgroup object Core objects and their operations + * + * @internal + * + * There are several questionable constants listed in this header file. They + * are intentionally left untouched for purely academic backwards compatibility + * concerns. But for instance do any one of 3rd party extension libraries even + * need to know that there is NameError::Message? + * + * @endinternal + * + * @{ + */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define RUBY_INTEGER_UNIFICATION 1 + +RUBY_EXTERN VALUE rb_mKernel; /**< `Kernel` module. */ +RUBY_EXTERN VALUE rb_mComparable; /**< `Comparable` module. */ +RUBY_EXTERN VALUE rb_mEnumerable; /**< `Enumerable` module. */ +RUBY_EXTERN VALUE rb_mErrno; /**< `Errno` module. */ +RUBY_EXTERN VALUE rb_mFileTest; /**< `FileTest` module. */ +RUBY_EXTERN VALUE rb_mGC; /**< `GC` module. */ +RUBY_EXTERN VALUE rb_mMath; /**< `Math` module. */ +RUBY_EXTERN VALUE rb_mProcess; /**< `Process` module. */ +RUBY_EXTERN VALUE rb_mWaitReadable; /**< `IO::WaitReadable` module. */ +RUBY_EXTERN VALUE rb_mWaitWritable; /**< `IO::WaitReadable` module. */ + +RUBY_EXTERN VALUE rb_cBasicObject; /**< `BasicObject` class. */ +RUBY_EXTERN VALUE rb_cObject; /**< `Object` class. */ +RUBY_EXTERN VALUE rb_cArray; /**< `Array` class. */ +RUBY_EXTERN VALUE rb_cBinding; /**< `Binding` class. */ +RUBY_EXTERN VALUE rb_cClass; /**< `Class` class. */ +RUBY_EXTERN VALUE rb_cDir; /**< `Dir` class. */ +RUBY_EXTERN VALUE rb_cEncoding; /**< `Encoding` class. */ +RUBY_EXTERN VALUE rb_cEnumerator; /**< `Enumerator` class. */ +RUBY_EXTERN VALUE rb_cFalseClass; /**< `FalseClass` class. */ +RUBY_EXTERN VALUE rb_cFile; /**< `File` class. */ +RUBY_EXTERN VALUE rb_cComplex; /**< `Complex` class. */ +RUBY_EXTERN VALUE rb_cFloat; /**< `Float` class. */ +RUBY_EXTERN VALUE rb_cHash; /**< `Hash` class. */ +RUBY_EXTERN VALUE rb_cIO; /**< `IO` class. */ +RUBY_EXTERN VALUE rb_cInteger; /**< `Module` class. */ +RUBY_EXTERN VALUE rb_cMatch; /**< `MatchData` class. */ +RUBY_EXTERN VALUE rb_cMethod; /**< `Method` class. */ +RUBY_EXTERN VALUE rb_cModule; /**< `Module` class. */ +RUBY_EXTERN VALUE rb_cRefinement; /**< `Refinement` class. */ +RUBY_EXTERN VALUE rb_cNameErrorMesg; /**< `NameError::Message` class. */ +RUBY_EXTERN VALUE rb_cNilClass; /**< `NilClass` class. */ +RUBY_EXTERN VALUE rb_cNumeric; /**< `Numeric` class. */ +RUBY_EXTERN VALUE rb_cProc; /**< `Proc` class. */ +RUBY_EXTERN VALUE rb_cRandom; /**< `Random` class. */ +RUBY_EXTERN VALUE rb_cRange; /**< `Range` class. */ +RUBY_EXTERN VALUE rb_cRational; /**< `Rational` class. */ +RUBY_EXTERN VALUE rb_cRegexp; /**< `Regexp` class. */ +RUBY_EXTERN VALUE rb_cStat; /**< `File::Stat` class. */ +RUBY_EXTERN VALUE rb_cString; /**< `String` class. */ +RUBY_EXTERN VALUE rb_cStruct; /**< `Struct` class. */ +RUBY_EXTERN VALUE rb_cSymbol; /**< `Sumbol` class. */ +RUBY_EXTERN VALUE rb_cThread; /**< `Thread` class. */ +RUBY_EXTERN VALUE rb_cTime; /**< `Time` class. */ +RUBY_EXTERN VALUE rb_cTrueClass; /**< `TrueClass` class. */ +RUBY_EXTERN VALUE rb_cUnboundMethod; /**< `UnboundMethod` class. */ + +/** + * @} + * @addtogroup exception + * @{ + */ + +RUBY_EXTERN VALUE rb_eException; /**< Mother of all exceptions. */ +RUBY_EXTERN VALUE rb_eStandardError; /**< `StandardError` exception. */ +RUBY_EXTERN VALUE rb_eSystemExit; /**< `SystemExit` exception. */ +RUBY_EXTERN VALUE rb_eInterrupt; /**< `Interrupt` exception. */ +RUBY_EXTERN VALUE rb_eSignal; /**< `SignalException` exception. */ +RUBY_EXTERN VALUE rb_eFatal; /**< `fatal` exception. */ +RUBY_EXTERN VALUE rb_eArgError; /**< `ArgumentError` exception. */ +RUBY_EXTERN VALUE rb_eEOFError; /**< `EOFError` exception. */ +RUBY_EXTERN VALUE rb_eIndexError; /**< `IndexError` exception. */ +RUBY_EXTERN VALUE rb_eStopIteration; /**< `StopIteration` exception. */ +RUBY_EXTERN VALUE rb_eKeyError; /**< `KeyError` exception. */ +RUBY_EXTERN VALUE rb_eRangeError; /**< `RangeError` exception. */ +RUBY_EXTERN VALUE rb_eIOError; /**< `IOError` exception. */ +RUBY_EXTERN VALUE rb_eRuntimeError; /**< `RuntimeError` exception. */ +RUBY_EXTERN VALUE rb_eFrozenError; /**< `FrozenError` exception. */ +RUBY_EXTERN VALUE rb_eSecurityError; /**< `SecurityError` exception. */ +RUBY_EXTERN VALUE rb_eSystemCallError; /**< `SystemCallError` exception. */ +RUBY_EXTERN VALUE rb_eThreadError; /**< `ThreadError` exception. */ +RUBY_EXTERN VALUE rb_eTypeError; /**< `TypeError` exception. */ +RUBY_EXTERN VALUE rb_eZeroDivError; /**< `ZeroDivisionError` exception. */ +RUBY_EXTERN VALUE rb_eNotImpError; /**< `NotImplementedError` exception. */ +RUBY_EXTERN VALUE rb_eNoMemError; /**< `NoMemoryError` exception. */ +RUBY_EXTERN VALUE rb_eNoMethodError; /**< `NoMethodError` exception. */ +RUBY_EXTERN VALUE rb_eFloatDomainError; /**< `FloatDomainError` exception. */ +RUBY_EXTERN VALUE rb_eLocalJumpError; /**< `LocalJumpError` exception. */ +RUBY_EXTERN VALUE rb_eSysStackError; /**< `SystemStackError` exception. */ +RUBY_EXTERN VALUE rb_eRegexpError; /**< `RegexpError` exception. */ +RUBY_EXTERN VALUE rb_eEncodingError; /**< `EncodingError` exception. */ +RUBY_EXTERN VALUE rb_eEncCompatError; /**< `Encoding::CompatibilityError` exception. */ +RUBY_EXTERN VALUE rb_eNoMatchingPatternError; /**< `NoMatchingPatternError` exception. */ +RUBY_EXTERN VALUE rb_eNoMatchingPatternKeyError; /**< `NoMatchingPatternKeyError` exception. */ + +RUBY_EXTERN VALUE rb_eScriptError; /**< `ScriptError` exception. */ +RUBY_EXTERN VALUE rb_eNameError; /**< `NameError` exception. */ +RUBY_EXTERN VALUE rb_eSyntaxError; /**< `SyntaxError` exception. */ +RUBY_EXTERN VALUE rb_eLoadError; /**< `LoadError` exception. */ + +RUBY_EXTERN VALUE rb_eMathDomainError; /**< `Math::DomainError` exception. */ + +/** + * @} + * @addtogroup object + * @{ + */ + +RUBY_EXTERN VALUE rb_stdin; /**< `STDIN` constant. */ +RUBY_EXTERN VALUE rb_stdout; /**< `STDOUT` constant. */ +RUBY_EXTERN VALUE rb_stderr; /**< `STDERR` constant. */ + +RBIMPL_ATTR_PURE() +/** + * Object to class mapping function. Every object have its class. This + * function obtains that. + * + * @param[in] obj Target object to query. + * @return The class of the given object. + * + * @internal + * + * This function is a super-duper hot path. Optimised targeting modern C + * compilers and x86_64 architecture. + */ +static inline VALUE +rb_class_of(VALUE obj) +{ + if (! RB_SPECIAL_CONST_P(obj)) { + return RBASIC_CLASS(obj); + } + else if (obj == RUBY_Qfalse) { + return rb_cFalseClass; + } + else if (obj == RUBY_Qnil) { + return rb_cNilClass; + } + else if (obj == RUBY_Qtrue) { + return rb_cTrueClass; + } + else if (RB_FIXNUM_P(obj)) { + return rb_cInteger; + } + else if (RB_STATIC_SYM_P(obj)) { + return rb_cSymbol; + } + else if (RB_FLONUM_P(obj)) { + return rb_cFloat; + } + +#if !RUBY_DEBUG + RBIMPL_UNREACHABLE_RETURN(Qfalse); +#else + RUBY_ASSERT_FAIL("unexpected type"); +#endif +} + +#define CLASS_OF rb_class_of /**< @old{rb_class_of} */ + +RBIMPL_SYMBOL_EXPORT_END() + +/** @} */ + +#endif /* RBIMPL_GLOBALS_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/attribute.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/attribute.h new file mode 100644 index 0000000..f068a65 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/attribute.h @@ -0,0 +1,163 @@ +#ifndef RBIMPL_HAS_ATTRIBUTE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_HAS_ATTRIBUTE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_HAS_ATTRIBUTE. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/compiler_since.h" + +#if defined(__has_attribute) +# if __has_attribute(pure) || RBIMPL_COMPILER_IS(GCC) +# /* FreeBSD's defines its own *broken* version of +# * __has_attribute. Cygwin copied that content to be a victim of the +# * broken-ness. We don't take them into account. */ +# define RBIMPL_HAVE___HAS_ATTRIBUTE 1 +# endif +#endif + +/** Wraps (or simulates) `__has_attribute`. */ +#if defined(RBIMPL_HAVE___HAS_ATTRIBUTE) +# define RBIMPL_HAS_ATTRIBUTE(_) __has_attribute(_) + +#elif RBIMPL_COMPILER_IS(GCC) +# /* GCC <= 4 lack __has_attribute predefined macro, while have attributes +# * themselves. We can simulate the macro like the following: */ +# define RBIMPL_HAS_ATTRIBUTE(_) (RBIMPL_HAS_ATTRIBUTE_ ## _) +# define RBIMPL_HAS_ATTRIBUTE_aligned RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0) +# define RBIMPL_HAS_ATTRIBUTE_alloc_size RBIMPL_COMPILER_SINCE(GCC, 4, 3, 0) +# define RBIMPL_HAS_ATTRIBUTE_artificial RBIMPL_COMPILER_SINCE(GCC, 4, 3, 0) +# define RBIMPL_HAS_ATTRIBUTE_always_inline RBIMPL_COMPILER_SINCE(GCC, 3, 1, 0) +# define RBIMPL_HAS_ATTRIBUTE_cdecl RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0) +# define RBIMPL_HAS_ATTRIBUTE_cold RBIMPL_COMPILER_SINCE(GCC, 4, 3, 0) +# define RBIMPL_HAS_ATTRIBUTE_const RBIMPL_COMPILER_SINCE(GCC, 2, 6, 0) +# define RBIMPL_HAS_ATTRIBUTE_deprecated RBIMPL_COMPILER_SINCE(GCC, 3, 1, 0) +# define RBIMPL_HAS_ATTRIBUTE_dllexport RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0) +# define RBIMPL_HAS_ATTRIBUTE_dllimport RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0) +# define RBIMPL_HAS_ATTRIBUTE_error RBIMPL_COMPILER_SINCE(GCC, 4, 3, 0) +# define RBIMPL_HAS_ATTRIBUTE_format RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0) +# define RBIMPL_HAS_ATTRIBUTE_hot RBIMPL_COMPILER_SINCE(GCC, 4, 3, 0) +# define RBIMPL_HAS_ATTRIBUTE_leaf RBIMPL_COMPILER_SINCE(GCC, 4, 6, 0) +# define RBIMPL_HAS_ATTRIBUTE_malloc RBIMPL_COMPILER_SINCE(GCC, 3, 0, 0) +# define RBIMPL_HAS_ATTRIBUTE_no_address_safety_analysis RBIMPL_COMPILER_SINCE(GCC, 4, 8, 0) +# define RBIMPL_HAS_ATTRIBUTE_no_sanitize_address RBIMPL_COMPILER_SINCE(GCC, 4, 8, 0) +# define RBIMPL_HAS_ATTRIBUTE_no_sanitize_undefined RBIMPL_COMPILER_SINCE(GCC, 4, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_noinline RBIMPL_COMPILER_SINCE(GCC, 3, 1, 0) +# define RBIMPL_HAS_ATTRIBUTE_nonnull RBIMPL_COMPILER_SINCE(GCC, 3, 3, 0) +# define RBIMPL_HAS_ATTRIBUTE_noreturn RBIMPL_COMPILER_SINCE(GCC, 2, 5, 0) +# define RBIMPL_HAS_ATTRIBUTE_nothrow RBIMPL_COMPILER_SINCE(GCC, 3, 3, 0) +# define RBIMPL_HAS_ATTRIBUTE_pure RBIMPL_COMPILER_SINCE(GCC, 2,96, 0) +# define RBIMPL_HAS_ATTRIBUTE_returns_nonnull RBIMPL_COMPILER_SINCE(GCC, 4, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_returns_twice RBIMPL_COMPILER_SINCE(GCC, 4, 1, 0) +# define RBIMPL_HAS_ATTRIBUTE_stdcall RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0) +# define RBIMPL_HAS_ATTRIBUTE_unused RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0) +# define RBIMPL_HAS_ATTRIBUTE_visibility RBIMPL_COMPILER_SINCE(GCC, 3, 3, 0) +# define RBIMPL_HAS_ATTRIBUTE_warn_unused_result RBIMPL_COMPILER_SINCE(GCC, 3, 4, 0) +# define RBIMPL_HAS_ATTRIBUTE_warning RBIMPL_COMPILER_SINCE(GCC, 4, 3, 0) +# define RBIMPL_HAS_ATTRIBUTE_weak RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0) +# /* Note that "0, 0, 0" might be inaccurate. */ + +#elif RBIMPL_COMPILER_IS(SunPro) +# /* Oracle Solaris Studio 12.4 (cc version 5.11) introduced __has_attribute. +# * Before that, following attributes were available. */ +# /* See https://docs.oracle.com/cd/F24633_01/index.html */ +# define RBIMPL_HAS_ATTRIBUTE(_) (RBIMPL_HAS_ATTRIBUTE_ ## _) +# define RBIMPL_HAS_ATTRIBUTE_alias RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_aligned RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_always_inline RBIMPL_COMPILER_SINCE(SunPro, 5, 10, 0) +# define RBIMPL_HAS_ATTRIBUTE_const RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_constructor RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_destructor RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_malloc RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_noinline RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_noreturn RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_packed RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_pure RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_returns_twice RBIMPL_COMPILER_SINCE(SunPro, 5, 10, 0) +# define RBIMPL_HAS_ATTRIBUTE_vector_size RBIMPL_COMPILER_SINCE(SunPro, 5, 10, 0) +# define RBIMPL_HAS_ATTRIBUTE_visibility RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_weak RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) + +#elif defined (_MSC_VER) +# define RBIMPL_HAS_ATTRIBUTE(_) 0 +# /* Fallback below doesn't work: see win32/Makefile.sub */ + +#else +# /* Take config.h definition when available. */ +# define RBIMPL_HAS_ATTRIBUTE(_) ((RBIMPL_HAS_ATTRIBUTE_ ## _)+0) +# ifdef ALWAYS_INLINE +# define RBIMPL_HAS_ATTRIBUTE_always_inline 1 +# endif +# ifdef FUNC_CDECL +# define RBIMPL_HAS_ATTRIBUTE_cdecl 1 +# endif +# ifdef CONSTFUNC +# define RBIMPL_HAS_ATTRIBUTE_const 1 +# endif +# ifdef DEPRECATED +# define RBIMPL_HAS_ATTRIBUTE_deprecated 1 +# endif +# ifdef ERRORFUNC +# define RBIMPL_HAS_ATTRIBUTE_error 1 +# endif +# ifdef FUNC_FASTCALL +# define RBIMPL_HAS_ATTRIBUTE_fastcall 1 +# endif +# ifdef PUREFUNC +# define RBIMPL_HAS_ATTRIBUTE_pure 1 +# endif +# ifdef NO_ADDRESS_SAFETY_ANALYSIS +# define RBIMPL_HAS_ATTRIBUTE_no_address_safety_analysis 1 +# endif +# ifdef NO_SANITIZE +# define RBIMPL_HAS_ATTRIBUTE_no_sanitize 1 +# endif +# ifdef NO_SANITIZE_ADDRESS +# define RBIMPL_HAS_ATTRIBUTE_no_sanitize_address 1 +# endif +# ifdef NOINLINE +# define RBIMPL_HAS_ATTRIBUTE_noinline 1 +# endif +# ifdef RBIMPL_FUNC_NONNULL +# define RBIMPL_HAS_ATTRIBUTE_nonnull 1 +# endif +# ifdef NORETURN +# define RBIMPL_HAS_ATTRIBUTE_noreturn 1 +# endif +# ifdef FUNC_OPTIMIZED +# define RBIMPL_HAS_ATTRIBUTE_optimize 1 +# endif +# ifdef FUNC_STDCALL +# define RBIMPL_HAS_ATTRIBUTE_stdcall 1 +# endif +# ifdef MAYBE_UNUSED +# define RBIMPL_HAS_ATTRIBUTE_unused 1 +# endif +# ifdef WARN_UNUSED_RESULT +# define RBIMPL_HAS_ATTRIBUTE_warn_unused_result 1 +# endif +# ifdef WARNINGFUNC +# define RBIMPL_HAS_ATTRIBUTE_warning 1 +# endif +# ifdef WEAK +# define RBIMPL_HAS_ATTRIBUTE_weak 1 +# endif +#endif + +#endif /* RBIMPL_HAS_ATTRIBUTE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/builtin.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/builtin.h new file mode 100644 index 0000000..243ba2a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/builtin.h @@ -0,0 +1,117 @@ +#ifndef RBIMPL_HAS_BUILTIN_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_HAS_BUILTIN_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_HAS_BUILTIN. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/compiler_since.h" + +#if defined(__has_builtin) +# if RBIMPL_COMPILER_IS(Intel) +# /* :TODO: Intel C Compiler has __has_builtin (since 19.1 maybe?), and is +# * reportedly broken. We have to skip them. However the situation can +# * change. They might improve someday. We need to revisit here later. */ +# elif RBIMPL_COMPILER_IS(GCC) && ! __has_builtin(__builtin_alloca) +# /* FreeBSD's defines its own *broken* version of +# * __has_builtin. Cygwin copied that content to be a victim of the +# * broken-ness. We don't take them into account. */ +# else +# define RBIMPL_HAVE___HAS_BUILTIN 1 +# endif +#endif + +/** Wraps (or simulates) `__has_builtin`. */ +#if defined(RBIMPL_HAVE___HAS_BUILTIN) +# define RBIMPL_HAS_BUILTIN(_) __has_builtin(_) + +#elif RBIMPL_COMPILER_IS(GCC) +# /* :FIXME: Historically GCC has had tons of builtins, but it implemented +# * __has_builtin only since GCC 10. This section can be made more +# * granular. */ +# /* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66970 */ +# define RBIMPL_HAS_BUILTIN(_) (RBIMPL_HAS_BUILTIN_ ## _) +# define RBIMPL_HAS_BUILTIN___builtin_add_overflow RBIMPL_COMPILER_SINCE(GCC, 5, 1, 0) +# define RBIMPL_HAS_BUILTIN___builtin_alloca RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0) +# define RBIMPL_HAS_BUILTIN___builtin_alloca_with_align RBIMPL_COMPILER_SINCE(GCC, 6, 1, 0) +# define RBIMPL_HAS_BUILTIN___builtin_assume 0 +# /* See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52624 for bswap16. */ +# define RBIMPL_HAS_BUILTIN___builtin_bswap16 RBIMPL_COMPILER_SINCE(GCC, 4, 8, 0) +#ifndef __OpenBSD__ +# define RBIMPL_HAS_BUILTIN___builtin_bswap32 RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_bswap64 RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +#endif +# define RBIMPL_HAS_BUILTIN___builtin_clz RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_clzl RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_clzll RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_constant_p RBIMPL_COMPILER_SINCE(GCC, 2,95, 3) +# define RBIMPL_HAS_BUILTIN___builtin_ctz RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_ctzl RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_ctzll RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_expect RBIMPL_COMPILER_SINCE(GCC, 3, 0, 0) +# define RBIMPL_HAS_BUILTIN___builtin_mul_overflow RBIMPL_COMPILER_SINCE(GCC, 5, 1, 0) +# define RBIMPL_HAS_BUILTIN___builtin_mul_overflow_p RBIMPL_COMPILER_SINCE(GCC, 7, 0, 0) +# define RBIMPL_HAS_BUILTIN___builtin_popcount RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_popcountl RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_popcountll RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_rotateleft32 0 +# define RBIMPL_HAS_BUILTIN___builtin_rotateleft64 0 +# define RBIMPL_HAS_BUILTIN___builtin_rotateright32 0 +# define RBIMPL_HAS_BUILTIN___builtin_rotateright64 0 +# define RBIMPL_HAS_BUILTIN___builtin_sub_overflow RBIMPL_COMPILER_SINCE(GCC, 5, 1, 0) +# define RBIMPL_HAS_BUILTIN___builtin_unreachable RBIMPL_COMPILER_SINCE(GCC, 4, 5, 0) +# /* Note that "0, 0, 0" might be inaccurate. */ + +#else +# /* Take config.h definition when available */ +# define RBIMPL_HAS_BUILTIN(_) ((RBIMPL_HAS_BUILTIN_ ## _)+0) +# define RBIMPL_HAS_BUILTIN___builtin_add_overflow HAVE_BUILTIN___BUILTIN_ADD_OVERFLOW +# define RBIMPL_HAS_BUILTIN___builtin_alloca 0 +# define RBIMPL_HAS_BUILTIN___builtin_alloca_with_align HAVE_BUILTIN___BUILTIN_ALLOCA_WITH_ALIGN +# define RBIMPL_HAS_BUILTIN___builtin_assume 0 +# define RBIMPL_HAS_BUILTIN___builtin_assume_aligned HAVE_BUILTIN___BUILTIN_ASSUME_ALIGNED +# define RBIMPL_HAS_BUILTIN___builtin_bswap16 HAVE_BUILTIN___BUILTIN_BSWAP16 +# define RBIMPL_HAS_BUILTIN___builtin_bswap32 HAVE_BUILTIN___BUILTIN_BSWAP32 +# define RBIMPL_HAS_BUILTIN___builtin_bswap64 HAVE_BUILTIN___BUILTIN_BSWAP64 +# define RBIMPL_HAS_BUILTIN___builtin_clz HAVE_BUILTIN___BUILTIN_CLZ +# define RBIMPL_HAS_BUILTIN___builtin_clzl HAVE_BUILTIN___BUILTIN_CLZL +# define RBIMPL_HAS_BUILTIN___builtin_clzll HAVE_BUILTIN___BUILTIN_CLZLL +# define RBIMPL_HAS_BUILTIN___builtin_constant_p HAVE_BUILTIN___BUILTIN_CONSTANT_P +# define RBIMPL_HAS_BUILTIN___builtin_ctz HAVE_BUILTIN___BUILTIN_CTZ +# define RBIMPL_HAS_BUILTIN___builtin_ctzl 0 +# define RBIMPL_HAS_BUILTIN___builtin_ctzll HAVE_BUILTIN___BUILTIN_CTZLL +# define RBIMPL_HAS_BUILTIN___builtin_expect HAVE_BUILTIN___BUILTIN_EXPECT +# define RBIMPL_HAS_BUILTIN___builtin_mul_overflow HAVE_BUILTIN___BUILTIN_MUL_OVERFLOW +# define RBIMPL_HAS_BUILTIN___builtin_mul_overflow_p HAVE_BUILTIN___BUILTIN_MUL_OVERFLOW_P +# define RBIMPL_HAS_BUILTIN___builtin_popcount HAVE_BUILTIN___BUILTIN_POPCOUNT +# define RBIMPL_HAS_BUILTIN___builtin_popcountl 0 +# define RBIMPL_HAS_BUILTIN___builtin_rotateleft32 0 +# define RBIMPL_HAS_BUILTIN___builtin_rotateleft64 0 +# define RBIMPL_HAS_BUILTIN___builtin_rotateright32 0 +# define RBIMPL_HAS_BUILTIN___builtin_rotateright64 0 +# define RBIMPL_HAS_BUILTIN___builtin_popcountll HAVE_BUILTIN___BUILTIN_POPCOUNTLL +# define RBIMPL_HAS_BUILTIN___builtin_sub_overflow HAVE_BUILTIN___BUILTIN_SUB_OVERFLOW +# if defined(HAVE___BUILTIN_UNREACHABLE) +# define RBIMPL_HAS_BUILTIN___builtin_unreachable 1 +# else +# define RBIMPL_HAS_BUILTIN___builtin_unreachable 0 +# endif +#endif + +#endif /* RBIMPL_HAS_BUILTIN_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/c_attribute.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/c_attribute.h new file mode 100644 index 0000000..c5c4886 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/c_attribute.h @@ -0,0 +1,38 @@ +#ifndef RBIMPL_HAS_C_ATTRIBUTE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_HAS_C_ATTRIBUTE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_HAS_C_ATTRIBUTE. + */ + +/** Wraps (or simulates) `__has_c_attribute`. */ +#if defined(__cplusplus) +# /* Makes no sense. */ +# define RBIMPL_HAS_C_ATTRIBUTE(_) 0 + +#elif defined(__has_c_attribute) +# define RBIMPL_HAS_C_ATTRIBUTE(_) __has_c_attribute(_) + +#else +# /* As of writing everything that lacks __has_c_attribute also completely +# * lacks C2x attributes as well. Might change in future? */ +# define RBIMPL_HAS_C_ATTRIBUTE(_) 0 +#endif + +#endif /* RBIMPL_HAS_C_ATTRIBUTE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/cpp_attribute.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/cpp_attribute.h new file mode 100644 index 0000000..6a393b1 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/cpp_attribute.h @@ -0,0 +1,86 @@ +#ifndef RBIMPL_HAS_CPP_ATTRIBUTE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_HAS_CPP_ATTRIBUTE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_HAS_CPP_ATTRIBUTE. + */ +#include "ruby/internal/compiler_is.h" +#include "ruby/internal/compiler_since.h" + +/** @cond INTERNAL_MACRO */ +#if RBIMPL_COMPILER_IS(SunPro) +# /* Oracle Developer Studio 12.5's C++ preprocessor is reportedly broken. We +# * could simulate __has_cpp_attribute like below, but don't know the exact +# * list of which version supported which attribute. Just kill everything for +# * now. If you can please :FIXME: */ +# /* https://unicode-org.atlassian.net/browse/ICU-12893 */ +# /* https://github.com/boostorg/config/pull/95 */ +# define RBIMPL_HAS_CPP_ATTRIBUTE0(_) 0 + +#elif defined(__has_cpp_attribute) +# define RBIMPL_HAS_CPP_ATTRIBUTE0(_) __has_cpp_attribute(_) + +#elif RBIMPL_COMPILER_IS(MSVC) +# /* MSVC has never updated its __cplusplus since forever (unless specified +# * explicitly by a compiler flag). They also lack __has_cpp_attribute until +# * 2019. However, they do have attributes since 2015 or so. */ +# /* https://docs.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance */ +# define RBIMPL_HAS_CPP_ATTRIBUTE0(_) (RBIMPL_HAS_CPP_ATTRIBUTE_ ## _) +# define RBIMPL_HAS_CPP_ATTRIBUTE_noreturn 200809 * RBIMPL_COMPILER_SINCE(MSVC, 19, 00, 0) +# define RBIMPL_HAS_CPP_ATTRIBUTE_carries_dependency 200809 * RBIMPL_COMPILER_SINCE(MSVC, 19, 00, 0) +# define RBIMPL_HAS_CPP_ATTRIBUTE_deprecated 201309 * RBIMPL_COMPILER_SINCE(MSVC, 19, 10, 0) +# define RBIMPL_HAS_CPP_ATTRIBUTE_fallthrough 201603 * RBIMPL_COMPILER_SINCE(MSVC, 19, 10, 0) +# define RBIMPL_HAS_CPP_ATTRIBUTE_maybe_unused 201603 * RBIMPL_COMPILER_SINCE(MSVC, 19, 11, 0) +# define RBIMPL_HAS_CPP_ATTRIBUTE_nodiscard 201603 * RBIMPL_COMPILER_SINCE(MSVC, 19, 11, 0) + +#elif RBIMPL_COMPILER_BEFORE(Clang, 3, 6, 0) +# /* Clang 3.6.0 introduced __has_cpp_attribute. Prior to that following +# * attributes were already there. */ +# /* https://clang.llvm.org/cxx_status.html */ +# define RBIMPL_HAS_CPP_ATTRIBUTE0(_) (RBIMPL_HAS_CPP_ATTRIBUTE_ ## _) +# define RBIMPL_HAS_CPP_ATTRIBUTE_noreturn 200809 * RBIMPL_COMPILER_SINCE(Clang, 3, 3, 0) +# define RBIMPL_HAS_CPP_ATTRIBUTE_deprecated 201309 * RBIMPL_COMPILER_SINCE(Clang, 3, 4, 0) + +#elif RBIMPL_COMPILER_BEFORE(GCC, 5, 0, 0) +# /* GCC 5+ have __has_cpp_attribute, while 4.x had following attributes. */ +# /* https://gcc.gnu.org/projects/cxx-status.html */ +# define RBIMPL_HAS_CPP_ATTRIBUTE0(_) (RBIMPL_HAS_CPP_ATTRIBUTE_ ## _) +# define RBIMPL_HAS_CPP_ATTRIBUTE_noreturn 200809 * RBIMPL_COMPILER_SINCE(GCC, 4, 8, 0) +# define RBIMPL_HAS_CPP_ATTRIBUTE_deprecated 201309 * RBIMPL_COMPILER_SINCE(GCC, 4, 9, 0) + +#else +# /* :FIXME: +# * Candidate compilers to list here: +# * - icpc: They have __INTEL_CXX11_MODE__. +# */ +# define RBIMPL_HAS_CPP_ATTRIBUTE0(_) 0 +#endif +/** @endcond */ + +/** Wraps (or simulates) `__has_cpp_attribute`. */ +#if ! defined(__cplusplus) +# /* Makes no sense. */ +# define RBIMPL_HAS_CPP_ATTRIBUTE(_) 0 +#else +# /* GCC needs workarounds. See https://gcc.godbolt.org/z/jdz3pa */ +# define RBIMPL_HAS_CPP_ATTRIBUTE(_) \ + ((RBIMPL_HAS_CPP_ATTRIBUTE0(_) <= __cplusplus) ? RBIMPL_HAS_CPP_ATTRIBUTE0(_) : 0) +#endif + +#endif /* RBIMPL_HAS_CPP_ATTRIBUTE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/declspec_attribute.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/declspec_attribute.h new file mode 100644 index 0000000..1c526da --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/declspec_attribute.h @@ -0,0 +1,47 @@ +#ifndef RBIMPL_HAS_DECLSPEC_ATTRIBUTE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_HAS_DECLSPEC_ATTRIBUTE. + */ +#include "ruby/internal/compiler_since.h" + +/** Wraps (or simulates) `__has_declspec_attribute`. */ +#if defined(__has_declspec_attribute) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE(_) __has_declspec_attribute(_) +#else +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE(_) (RBIMPL_HAS_DECLSPEC_ATTRIBUTE_ ## _) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_align RBIMPL_COMPILER_SINCE(MSVC, 8, 0, 0) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_deprecated RBIMPL_COMPILER_SINCE(MSVC,13, 0, 0) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_dllexport RBIMPL_COMPILER_SINCE(MSVC, 8, 0, 0) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_dllimport RBIMPL_COMPILER_SINCE(MSVC, 8, 0, 0) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_empty_bases RBIMPL_COMPILER_SINCE(MSVC,19, 0, 23918) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_noalias RBIMPL_COMPILER_SINCE(MSVC, 8, 0, 0) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_noinline RBIMPL_COMPILER_SINCE(MSVC,13, 0, 0) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_noreturn RBIMPL_COMPILER_SINCE(MSVC,11, 0, 0) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_nothrow RBIMPL_COMPILER_SINCE(MSVC, 8, 0, 0) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_restrict RBIMPL_COMPILER_SINCE(MSVC,14, 0, 0) +# /* Note that "8, 0, 0" might be inaccurate. */ +# if ! defined(__cplusplus) +# /* Clang has this in both C/C++, but MSVC has this in C++ only.*/ +# undef RBIMPL_HAS_DECLSPEC_ATTRIBUTE_nothrow +# endif +#endif + +#endif /* RBIMPL_HAS_DECLSPEC_ATTRIBUTE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/extension.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/extension.h new file mode 100644 index 0000000..da8c0d3 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/extension.h @@ -0,0 +1,33 @@ +#ifndef RBIMPL_HAS_EXTENSION_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_HAS_EXTENSION_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_HAS_EXTENSION. + */ +#include "ruby/internal/has/feature.h" + +/** Wraps (or simulates) `__has_extension`. */ +#if defined(__has_extension) +# define RBIMPL_HAS_EXTENSION(_) __has_extension(_) +#else +# /* Pre-3.0 clang had __has_feature but not __has_extension. */ +# define RBIMPL_HAS_EXTENSION(_) RBIMPL_HAS_FEATURE(_) +#endif + +#endif /* RBIMPL_HAS_EXTENSION_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/feature.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/feature.h new file mode 100644 index 0000000..7be8d27 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/feature.h @@ -0,0 +1,31 @@ +#ifndef RBIMPL_HAS_FEATURE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_HAS_FEATURE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_HAS_FEATURE. + */ + +/** Wraps (or simulates) `__has_feature`. */ +#if defined(__has_feature) +# define RBIMPL_HAS_FEATURE(_) __has_feature(_) +#else +# define RBIMPL_HAS_FEATURE(_) 0 +#endif + +#endif /* RBIMPL_HAS_FEATURE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/warning.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/warning.h new file mode 100644 index 0000000..12d7db1 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/has/warning.h @@ -0,0 +1,31 @@ +#ifndef RBIMPL_HAS_WARNING_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_HAS_WARNING_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_HAS_WARNING. + */ + +/** Wraps (or simulates) `__has_warning`. */ +#if defined(__has_warning) +# define RBIMPL_HAS_WARNING(_) __has_warning(_) +#else +# define RBIMPL_HAS_WARNING(_) 0 +#endif + +#endif /* RBIMPL_HAS_WARNING_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/array.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/array.h new file mode 100644 index 0000000..2262c6f --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/array.h @@ -0,0 +1,657 @@ +#ifndef RBIMPL_INTERN_ARRAY_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_ARRAY_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cArray. + */ +#include "ruby/internal/attr/noalias.h" +#include "ruby/internal/attr/noexcept.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* array.c */ + +RBIMPL_ATTR_NONNULL(()) +RBIMPL_ATTR_NOALIAS() +/** + * Fills the memory region with a series of ::RUBY_Qnil. + * + * @param[out] buf Buffer to squash. + * @param[in] len Number of objects of `buf`. + * @post `buf` is filled with ::RUBY_Qnil. + */ +void rb_mem_clear(VALUE *buf, long len) + RBIMPL_ATTR_NOEXCEPT(true) + ; + +/** + * Identical to rb_ary_new_from_values(), except it expects exactly two + * parameters. + * + * @param[in] car Arbitrary ruby object. + * @param[in] cdr Arbitrary ruby object. + * @return An allocated new array, of length 2, whose contents are the + * passed objects. + */ +VALUE rb_assoc_new(VALUE car, VALUE cdr); + +/** + * Try converting an object to its array representation using its `to_ary` + * method, if any. If there is no such thing, returns ::RUBY_Qnil. + * + * @param[in] obj Arbitrary ruby object to convert. + * @exception rb_eTypeError `obj.to_ary` returned something non-Array. + * @retval RUBY_Qnil No conversion from `obj` to array defined. + * @retval otherwise Converted array representation of `obj`. + * @see rb_io_check_io + * @see rb_check_string_type + * @see rb_check_hash_type + */ +VALUE rb_check_array_type(VALUE obj); + +/** + * Allocates a new, empty array. + * + * @return An allocated new array, whose length is 0. + */ +VALUE rb_ary_new(void); + +/** + * Identical to rb_ary_new(), except it additionally specifies how many rooms + * of objects it should allocate. This way you can create an array whose + * capacity is bigger than the length of it. If you can say that an array + * grows to a specific amount, this could be effective than resizing an array + * over and over again and again. + * + * @param[in] capa Designed capacity of the generating array. + * @return An empty array, whose capacity is `capa`. + */ +VALUE rb_ary_new_capa(long capa); + +/** + * Constructs an array from the passed objects. + * + * @param[in] n Number of passed objects. + * @param[in] ... Arbitrary ruby objects, filled into the returning array. + * @return An array of size `n`, whose contents are the passed objects. + */ +VALUE rb_ary_new_from_args(long n, ...); + +/** + * Identical to rb_ary_new_from_args(), except how objects are passed. + * + * @param[in] n Number of objects of `elts`. + * @param[in] elts Arbitrary ruby objects, filled into the returning array. + * @return An array of size `n`, whose contents are the passed objects. + */ +VALUE rb_ary_new_from_values(long n, const VALUE *elts); + +/** + * Allocates a hidden (no class) empty array. + * + * @param[in] capa Designed capacity of the array. + * @return A hidden, empty array. + * @see rb_obj_hide() + */ +VALUE rb_ary_hidden_new(long capa); +#define rb_ary_tmp_new rb_ary_hidden_new + +/** + * Destroys the given array for no reason. + * + * @warning DO NOT USE IT. + * @warning Leave this task to our GC. + * @warning It was a wrong indea at the first place to let you know about it. + * + * @param[out] ary The array to be executed. + * @post The given array no longer exists. + * @note Maybe `Array#clear` could be what you want. + * + * @internal + * + * Should have moved this to `internal/array.h`. + */ +void rb_ary_free(VALUE ary); + +/** + * Declares that the array is about to be modified. This for instance let the + * array have a dedicated backend storage. + * + * @param[out] ary Array about to be modified. + * @exception rb_eFrozenError `ary` is frozen. + * @post Upon successful return the passed array is eligible to be + * modified. + */ +void rb_ary_modify(VALUE ary); + +/** @alias{rb_obj_freeze} */ +VALUE rb_ary_freeze(VALUE obj); + +RBIMPL_ATTR_PURE() +/** + * Queries if the passed two arrays share the same backend storage. A use-case + * for knowing such property is to take a snapshot of an array (using + * e.g. rb_ary_replace()), then check later if that snapshot still shares the + * storage with the original. Taking a snapshot is ultra-cheap. If nothing + * happens the impact shall be minimal. But if someone modifies the original, + * that entity shall pay the cost of copy-on-write. You can detect that using + * this API. + * + * @param[in] lhs Comparison LHS. + * @param[in] rhs Comparison RHS. + * @retval RUBY_Qtrue They share the same backend storage. + * @retval RUBY_Qfalse They are distinct. + * @pre Both arguments must be of ::RUBY_T_ARRAY. + */ +VALUE rb_ary_shared_with_p(VALUE lhs, VALUE rhs); + +/** + * Queries element(s) of an array. This is complicated! Refer `Array#slice` + * document for the complete description of how it behaves. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Up to 2 objects. + * @param[in] ary Target array. + * @exception rb_eTypeError `argv` (or its part) includes non-Integer. + * @exception rb_eRangeError rb_cArithSeq is passed, and is OOB. + * @return An element (if requested), or an array of elements (if + * requested), or ::RUBY_Qnil (if index OOB). + * + * @internal + * + * ```rbs + * # "int" is ::Integer or `#to_int`, defined in builtin.rbs + * + * class ::Array[unchecked out T] + * def slice + * : (int i) -> T? + * | (int beg, int len) -> ::Array[T]? + * | (Range[int] r) -> ::Array[T]? + * | (ArithmeticSequence as) -> ::Array[T]? # This also raises RagneError. + * end + * ``` + */ +VALUE rb_ary_aref(int argc, const VALUE *argv, VALUE ary); + +/** + * Obtains a part of the passed array. + * + * @param[in] ary Target array. + * @param[in] beg Subpart index. + * @param[in] len Requested length of returning array. + * @retval RUBY_Qnil Requested range out of bounds of `ary`. + * @retval otherwise An allocated new array whose contents are `ary`'s + * `beg` to `len`. + * @note Return array can be shorter than `len` when for instance + * `[0, 1, 2, 3]`'s 4th to 1,000,000,000th is requested. + */ +VALUE rb_ary_subseq(VALUE ary, long beg, long len); + +/** + * Destructively stores the passed value to the passed array's passed index. + * It also resizes the array's backend storage so that the requested index is + * not out of bounds. + * + * @param[out] ary Target array to modify. + * @param[in] key Where to store `val`. + * @param[in] val What to store at `key`. + * @exception rb_eFrozenError `ary` is frozen. + * @exception rb_eIndexError `key` is negative. + * @post `ary`'s `key`th position is occupied with `val`. + * @post Depending on `key` and previous length of `ary` this operation + * can also create a series of "hole" positions inside of the + * backend storage. They are filled with ::RUBY_Qnil. + */ +void rb_ary_store(VALUE ary, long key, VALUE val); + +/** + * Duplicates an array. + * + * @param[in] ary Target to duplicate. + * @return An allocated new array whose contents are identical to `ary`. + * + * @internal + * + * Not sure why this has to be something different from `ary_make_shared_copy`, + * which seems much efficient. + */ +VALUE rb_ary_dup(VALUE ary); + +/** + * I guess there is no use case of this function in extension libraries, but + * this is a routine identical to rb_ary_dup(). This makes the most sense when + * the passed array is formerly hidden by rb_obj_hide(). + * + * @param[in] ary An array, possibly hidden. + * @return A duplicated new instance of ::rb_cArray. + */ +VALUE rb_ary_resurrect(VALUE ary); + +/** + * Force converts an object to an array. It first tries its `#to_ary` method. + * Takes the result if any. Otherwise creates an array of size 1 whose sole + * element is the passed object. + * + * @param[in] obj Arbitrary ruby object. + * @return An array representation of `obj`. + * @note Unlike rb_str_to_str() which is a variant of + * rb_check_string_type(), rb_ary_to_ary() is not a variant of + * rb_check_array_type(). + */ +VALUE rb_ary_to_ary(VALUE obj); + +/** + * Converts an array into a human-readable string. Historically its behaviour + * changed over time. Currently it is identical to calling `inspect` method. + * This behaviour is from that of python (!!) circa 2006. + * + * @param[in] ary Array to inspect. + * @return Recursively inspected representation of `ary`. + * @see `[ruby-dev:29520]` + */ +VALUE rb_ary_to_s(VALUE ary); + +/** + * Destructively appends multiple elements at the end of the array. + * + * @param[out] ary Where to push `train`. + * @param[in] train Arbitrary ruby objects to push to `ary`. + * @param[in] len Number of objects of `train`. + * @exception rb_eIndexError `len` too large. + * @exception rb_eFrozenError `ary` is frozen. + * @return The passed `ary`. + * @post `ary` has contents from `train` appended at its end. + */ +VALUE rb_ary_cat(VALUE ary, const VALUE *train, long len); + +/** + * Special case of rb_ary_cat() that it adds only one element. + * + * @param[out] ary Where to push `elem`. + * @param[in] elem Arbitrary ruby object to push. + * @exception rb_eFrozenError `ary` is frozen. + * @return The passed `ary`. + * @post `ary` has `elem` appended at its end. + */ +VALUE rb_ary_push(VALUE ary, VALUE elem); + +/** + * Destructively deletes an element from the end of the passed array and + * returns what was deleted. + * + * @param[out] ary Target array to modify. + * @exception rb_eFrozenError `ary` is frozen. + * @return What was at the end of `ary`, or ::RUBY_Qnil if there is + * nothing to remove. + * @post `ary`'s last element, if any, is removed. + * @note There is no way to distinguish whether `ary` was an 1-element + * array whose content was ::RUBY_Qnil, or was empty. + */ +VALUE rb_ary_pop(VALUE ary); + +/** + * Destructively deletes an element from the beginning of the passed array and + * returns what was deleted. It can also be seen as a routine identical to + * rb_ary_pop(), except which side of the array to scrub. + * + * @param[out] ary Target array to modify. + * @exception rb_eFrozenError `ary` is frozen. + * @return What was at the beginning of `ary`, or ::RUBY_Qnil if there is + * nothing to remove. + * @post `ary`'s first element, if any, is removed. As the name implies + * everything else remaining in `ary` gets moved towards `ary`'s + * beginning. + * @note There is no way to distinguish whether `ary` was an 1-element + * array whose content was ::RUBY_Qnil, or was empty. + */ +VALUE rb_ary_shift(VALUE ary); + +/** + * Destructively prepends the passed item at the beginning of the passed array. + * It can also be seen as a routine identical to rb_ary_push(), except which + * side of the array to modify. + * + * @param[out] ary Target array to modify. + * @param[in] elem Arbitrary ruby object to unshift. + * @exception rb_eFrozenError `ary` is frozen. + * @return The passed `ary`. + * @post `ary` has `elem` prepended at this beginning. + */ +VALUE rb_ary_unshift(VALUE ary, VALUE elem); + +RBIMPL_ATTR_PURE() +/** + * Queries an element of an array. When passed offset is negative it counts + * backwards. + * + * @param[in] ary An array to look into. + * @param[in] off Offset (can be negative). + * @return ::RUBY_Qnil when `off` is out of bounds of `ary`. Otherwise + * what is stored at `off`-th position of `ary`. + * @note `ary`'s `off`-th element can happen to be ::RUBY_Qnil. + */ +VALUE rb_ary_entry(VALUE ary, long off); + +/** + * Iteratively yields each element of the passed array to the implicitly passed + * block if any. In case there is no block given, an enumerator that does the + * thing is generated instead. + * + * @param[in] ary Array to iterate over. + * @retval ary Passed block was evaluated. + * @retval otherwise An instance of ::rb_cEnumerator for `Array#each`. + */ +VALUE rb_ary_each(VALUE ary); + +/** + * Recursively stringises the elements of the passed array, flattens that + * result, then joins the sequence using the passed separator. + * + * @param[in] ary Target array to convert. + * @param[in] sep Separator. Either a string, or ::RUBY_Qnil + * if you want no separator. + * @exception rb_eArgError Infinite recursion in `ary`. + * @exception rb_eTypeError `sep` is not a string. + * @exception rb_eEncCompatError Strings do not agree with their encodings. + * @return An instance of ::rb_cString which concatenates stringised + * contents of `ary`, using `sep` as separator. + */ +VALUE rb_ary_join(VALUE ary, VALUE sep); + +/** + * _Destructively_ reverses the passed array in-place. + * + * @warning This is `Array#reverse!`, not `Array#reverse`. + * @param[out] ary Target array to modify. + * @exception rb_eFrozenError `ary` is frozen. + * @return Passed `ary`. + * @post `ary` is reversed. + */ +VALUE rb_ary_reverse(VALUE ary); + +/** + * _Destructively_ rotates the passed array in-place to towards its end. The + * amount can be negative. Would rotate to the opposite direction then. + * + * @warning This is `Array#rotate!`, not `Array#rotate`. + * @param[out] ary Target array to modify. + * @param[in] rot Amount of rotation. + * @exception rb_eFrozenError `ary` is frozen. + * @retval RUBY_Qnil Not rotated. + * @retval ary Rotated. + * @post `ary` is rotated. + */ +VALUE rb_ary_rotate(VALUE ary, long rot); + +/** + * Creates a copy of the passed array, whose elements are sorted according to + * their `<=>` result. + * + * @param[in] ary Array to sort. + * @exception rb_eArgError Comparison not defined among elements. + * @exception rb_eRuntimeError Infinite recursion in `<=>`. + * @return A copy of `ary`, sorted. + * @note As of writing this function uses `qsort` as backend algorithm, + * which means the result is unstable (in terms of sort stability). + */ +VALUE rb_ary_sort(VALUE ary); + +/** + * Destructively sorts the passed array in-place, according to each elements' + * `<=>` result. + * + * @param[in] ary Target array to modify. + * @exception rb_eArgError Comparison not defined among elements. + * @exception rb_eRuntimeError Infinite recursion in `<=>`. + * @return Passed `ary`. + * @post `ary` is sorted. + * @note As of writing this function uses `qsort` as backend algorithm, + * which means the result is unstable (in terms of sort stability). + */ +VALUE rb_ary_sort_bang(VALUE ary); + +/** + * Destructively removes elements from the passed array, so that there would be + * no elements inside that satisfy `==` relationship with the passed object. + * Returns the last deleted element if any. But in case there was nothing to + * delete it gets complicated. It checks for the implicitly passed block. If + * there is a block the return value would be what the block evaluates to. + * Otherwise it resorts to ::RUBY_Qnil. + * + * @param[out] ary Target array to modify. + * @param[in] elem Template object to match against each element. + * @exception rb_eFrozenError `ary` is frozen. + * @return What was deleted, or what was the block returned, or + * ::RUBY_Qnil (see above). + * @post All elements that have `==` relationship with `elem` are purged + * from `ary`. Elements shift their positions so that `ary` gets + * compact. + * + * @internal + * + * Internally there also is `rb_ary_delete_same`, which compares by identity. + */ +VALUE rb_ary_delete(VALUE ary, VALUE elem); + +/** + * Destructively removes an element which resides at the specific index of the + * passed array. Unlike rb_ary_stre() the index can be negative, which means + * the index counts backwards from the array's tail. + * + * @param[out] ary Target array to modify. + * @param[in] pos Position (can be negative). + * @exception rb_eFrozenError `ary` is frozen. + * @return What was deleted, or ::RUBY_Qnil in case of OOB. + * @post `ary`'s `pos`-th element is deleted if any. + * @note There is no way to distinguish whether `pos` is out of bound, + * or `pos` did exist but stored ::RUBY_Qnil as an ordinal value. + */ +VALUE rb_ary_delete_at(VALUE ary, long pos); + +/** + * Destructively removes everything form an array. + * + * @param[out] ary Target array to modify. + * @exception rb_eFrozenError `ary` is frozen. + * @return The passed `ary`. + * @post `ary` is an empty array. + */ +VALUE rb_ary_clear(VALUE ary); + +/** + * Creates a new array, concatenating the former to the latter. + * + * @param[in] lhs Source array #1. + * @param[in] rhs Source array #2. + * @exception rb_eIndexError Result array too big. + * @return A new array containing `rhs` concatenated to `lhs`. + * @note This operation doesn't commute. Don't get confused by the + * "plus" terminology. For historical reasons there are some + * noncommutative `+`s in Ruby. This is one of such things. There + * has been a long discussion around `+`s in programming languages. + * + * @internal + * + * rb_ary_concat() is not a destructive version of rb_ary_plus(). They raise + * different exceptions. Don't know why though. + */ +VALUE rb_ary_plus(VALUE lhs, VALUE rhs); + +/** + * Destructively appends the contents of latter into the end of former. + * + * @param[out] lhs Destination array. + * @param[in] rhs Source array. + * @exception rb_eFrozenError `lhs` is frozen. + * @exception rb_eIndexError Result array too big. + * @exception rb_eTypeError `rhs` doesn't respond to `#to_ary`. + * @return The passed `lhs`. + * @post `lhs` has contents of `rhs` appended to its end. + */ +VALUE rb_ary_concat(VALUE lhs, VALUE rhs); + +/** + * Looks up the passed key, assuming the passed array is an alist. An "alist" + * here is a list of "association"s, much like that of Emacs. Emacs has + * `assoc` function that behaves exactly the same as this one. + * + * ```ruby + * # This is an example of aliist. + * auto_mode_alist = [ + * [ /\.[ch]\z/, :"c-mode" ], + * [ /\.[ch]pp\z/, :"c++-mode" ], + * [ /\.awk\z/, :"awk-mode" ], + * [ /\.cs\z/, :"csharp-mode" ], + * [ /\.go\z/, :"go-mode" ], + * [ /\.java\z/, :"java-mode" ], + * [ /\.pas\z/, :"pascal-mode" ], + * [ /\.rs\z/, :"rust-mode" ], + * [ /\.txt\z/, :"text-mode" ], + * ] + * ``` + * + * This function scans the passed array looking for an element, which itself is + * an array, whose first element is the passed key. If no such element is + * found, returns ::RUBY_Qnil. + * + * Although this function expects the passed array be an array of arrays, it + * can happily accept non-array elements; it just ignores such things. + * + * @param[in] alist An array of arrays. + * @param[in] key Needle. + * @retval RUBY_Qnil Nothing was found. + * @retval otherwise An element in `alist` whose first element is in `==` + * relationship with `key`. + */ +VALUE rb_ary_assoc(VALUE alist, VALUE key); + +/** + * Identical to rb_ary_assoc(), except it scans the passed array from the + * opposite direction. + * + * @param[in] alist An array of arrays. + * @param[in] key Needle. + * @retval RUBY_Qnil Nothing was found. + * @retval otherwise An element in `alist` whose first element is in `==` + * relationship with `key`. + */ +VALUE rb_ary_rassoc(VALUE alist, VALUE key); + +/** + * Queries if the passed array has the passed entry. + * + * @param[in] ary Target array to scan. + * @param[in] elem Target array to find. + * @retval RUBY_Qfalse No element in `ary` is in `==` relationship with + * `elem`. + * @retval RUBY_Qtrue There is at least one element in `ary` which is in + * `==` relationship with `elem`. + * + * @internal + * + * This is the only function in the entire C API that is named using third + * person singular form of a verb (except #ISASCII etc., which are not our + * naming). The counterpart Ruby API of this function is `Array#include?`. + */ +VALUE rb_ary_includes(VALUE ary, VALUE elem); + +/** + * Recursively compares each elements of the two arrays one-by-one using `<=>`. + * + * @param[in] lhs Comparison LHS. + * @param[in] rhs Comparison RHS. + * @retval RUBY_Qnil `lhs` and `rhs` are not comparable. + * @retval -1 `lhs` is less than `rhs`. + * @retval 0 They are equal. + * @retval 1 `rhs` is less then `lhs`. + */ +VALUE rb_ary_cmp(VALUE lhs, VALUE rhs); + +/** + * Replaces the contents of the former object with the contents of the latter. + * + * @param[out] copy Destination object. + * @param[in] orig Source object. + * @exception rb_eTypeError `orig` has no implicit conversion to Array. + * @exception rb_eFrozenError `copy` is frozen. + * @return The passed `copy`. + * @post `copy`'s former components are abandoned. It now has the + * identical length and contents to `orig`. + */ +VALUE rb_ary_replace(VALUE copy, VALUE orig); + +/** + * This _was_ a generalisation of `Array#values_at`, `Struct#values_at`, and + * `MatchData#values_at`. It begun its life as a refactoring effort. However + * as Ruby evolves over time, as of writing none of aforementioned methods + * share their implementations at all. This function is not deprecated; still + * works as it has been. But it is now kind of like a rudimentum. + * + * This function takes an object, which is a receiver, and a series of + * "indices", which are either integers, or ranges of integers. Calls the + * passed callback for each of those indices, along with the receiver. This + * callback is expected to do something like rb_ary_aref(), rb_struct_aref(), + * etc. In case of a range index rb_range_beg_len() expands the range. + * Finally return values of the callback are gathered as an array, then + * returned. + * + * @param[in] obj Arbitrary ruby object. + * @param[in] olen "Length" of `obj`. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv List of "indices", described above. + * @param[in] func Callback function. + * @return A new instance of ::rb_cArray gathering `func`outputs. + * + * @internal + * + * `Array#values_at` no longer uses this function. There is no reason apart + * from historical ones to list this function here. + */ +VALUE rb_get_values_at(VALUE obj, long olen, int argc, const VALUE *argv, VALUE (*func)(VALUE obj, long oidx)); + +/** + * Expands or shrinks the passed array to the passed length. + * + * @param[out] ary An array to modify. + * @param[in] len Desired length of `ary`. + * @exception rb_eFrozenError `ary` is frozen. + * @exception rb_eIndexError `len` too long. + * @return The passed `ary`. + * @post `ary`'s length is `len`. + * @post Depending on `len` and previous length of `ary` this operation + * can also create a series of "hole" positions inside of the + * backend storage. They are filled with ::RUBY_Qnil. + * + * @internal + * + * `len` is signed. Intentional or...? + */ +VALUE rb_ary_resize(VALUE ary, long len); + +#define rb_ary_new2 rb_ary_new_capa /**< @old{rb_ary_new_capa} */ +#define rb_ary_new3 rb_ary_new_from_args /**< @old{rb_ary_new_from_args} */ +#define rb_ary_new4 rb_ary_new_from_values /**< @old{rb_ary_new_from_values} */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_ARRAY_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/bignum.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/bignum.h new file mode 100644 index 0000000..43d6801 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/bignum.h @@ -0,0 +1,846 @@ +#ifndef RBIMPL_INTERN_BIGNUM_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_BIGNUM_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to so-called rb_cBignum. + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/backward/2/long_long.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* bignum.c */ + +/** + * Allocates a bignum object. + * + * @param[in] len Length of the bignum's backend storage, in words. + * @param[in] sign Sign of the bignum. + * @return An allocated new bignum instance. + * @note This only allocates an object, doesn't fill its value in. + * + * @internal + * + * @shyouhei finds it hard to use from extension libraries. `len` is per + * `BDIGIT` but its definition is hidden. + */ +VALUE rb_big_new(size_t len, int sign); + +/** + * Queries if the passed bignum instance is a "bigzro". What is a bigzero? + * Well, bignums are for very big integers, but can also represent tiny ones + * like -1, 0, 1. Bigzero are instances of bignums whose values are zero. + * Knowing if a bignum is bigzero can be handy on occasions, like for instance + * detecting division by zero situation. + * + * @param[in] x A bignum. + * @retval 1 It is a bigzero. + * @retval 0 Otherwise. + */ +int rb_bigzero_p(VALUE x); + +/** + * Duplicates the given bignum. + * + * @param[in] num A bignum. + * @return An allocated bignum, who is equivalent to `num`. + */ +VALUE rb_big_clone(VALUE num); + +/** + * Destructively modify the passed bignum into 2's complement representation. + * + * @note By default bignums are in signed magnitude system. + * + * @param[out] num A bignum to modify. + */ +void rb_big_2comp(VALUE num); + +/** + * Normalises the passed bignum. It for instance returns a fixnum of the same + * value if fixnum can represent that number. + * + * @param[out] x Target bignum (can be destructively modified). + * @return An integer of the identical value (can be `x` itself). + */ +VALUE rb_big_norm(VALUE x); + +/** + * Destructively resizes the backend storage of the passed bignum. + * + * @param[out] big A bignum. + * @param[in] len New length of `big`'s backend, in words. + */ +void rb_big_resize(VALUE big, size_t len); + +RBIMPL_ATTR_NONNULL(()) +/** + * Parses C's string to convert into a Ruby's integer. It understands prefixes + * (e.g. `0x`) and underscores. + * + * @param[in] str Stringised representation of the return value. + * @param[in] base Base of conversion. Must be `-36..36` inclusive, + * except `1`. `2..36` means the conversion is done + * according to it, with unmatched prefix understood + * as a part of the result. `-36..-2` means the + * conversion honours prefix when present, or use + * `-base` when absent. `0` is equivalent to `-10`. + * `-1` mandates a prefix. `1` is an error. + * @param[in] badcheck Whether to raise ::rb_eArgError on failure. If + * `0` is passed here this function can return + * `INT2FIX(0)` for parse errors. + * @exception rb_eArgError Failed to parse (and `badcheck` is truthy). + * @return An instance of ::rb_cInteger, which is a numeric interpretation + * of what is written in `str`. + * + * @internal + * + * Not sure if it intentionally accepts `base == -1` or is just buggy. Nobody + * practically uses negative bases these days. + */ +VALUE rb_cstr_to_inum(const char *str, int base, int badcheck); + +/** + * Identical to rb_cstr2inum(), except it takes Ruby's strings instead of C's. + * + * @param[in] str Stringised representation of the return + * value. + * @param[in] base Base of conversion. Must be `-36..36` + * inclusive, except `1`. `2..36` means the + * conversion is done according to it, with + * unmatched prefix understood as a part of the + * result. `-36..-2` means the conversion + * honours prefix when present, or use `-base` + * when absent. `0` is equivalent to `-10`. + * `-1` mandates a prefix. `1` is an error. + * @param[in] badcheck Whether to raise ::rb_eArgError on failure. + * If `0` is passed here this function can + * return `INT2FIX(0)` for parse errors. + * @exception rb_eArgError Failed to parse (and `badcheck` is truthy). + * @exception rb_eTypeError `str` is not a string. + * @exception rb_eEncCompatError `str` is not ASCII compatible. + * @return An instance of ::rb_cInteger, which is a numeric interpretation + * of what is written in `str`. + */ +VALUE rb_str_to_inum(VALUE str, int base, int badcheck); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_cstr_to_inum(), except the second argument controls the base + * and badcheck at once. It basically doesn't raise for parse errors, unless + * the base is zero. + * + * This is an older API. New codes might prefer rb_cstr_to_inum(). + * + * @param[in] str Stringised representation of the return value. + * @param[in] base Base of conversion. Must be `-36..36` inclusive, + * except `1`. `2..36` means the conversion is done + * according to it, with unmatched prefix understood + * as a part of the result. `-36..-2` means the + * conversion honours prefix when present, or use + * `-base` when absent. `0` is equivalent to `-10`. + * `-1` mandates a prefix. `1` is an error. + * @exception rb_eArgError Failed to parse (and `base` is zero). + * @return An instance of ::rb_cInteger, which is a numeric interpretation + * of what is written in `str`. + */ +VALUE rb_cstr2inum(const char *str, int base); + +/** + * Identical to rb_str_to_inum(), except the second argument controls the base + * and badcheck at once. It can also be seen as a routine identical to + * rb_cstr2inum(), except it takes Ruby's strings instead of C's. + * + * This is an older API. New codes might prefer rb_cstr_to_inum(). + * + * @param[in] str Stringised representation of the return + * value. + * @param[in] base Base of conversion. Must be `-36..36` + * inclusive, except `1`. `2..36` means the + * conversion is done according to it, with + * unmatched prefix understood as a part of the + * result. `-36..-2` means the conversion + * honours prefix when present, or use `-base` + * when absent. `0` is equivalent to `-10`. + * `-1` mandates a prefix. `1` is an error. + * @exception rb_eArgError Failed to parse (and `base` is zero). + * @exception rb_eTypeError `str` is not a string. + * @exception rb_eEncCompatError `str` is not ASCII compatible. + * @return An instance of ::rb_cInteger, which is a numeric interpretation + * of what is written in `str`. + */ +VALUE rb_str2inum(VALUE str, int base); + +/** + * Generates a place-value representation of the passed integer. + * + * @param[in] x An integer to stringify. + * @param[in] base `2` to `36` inclusive for each radix. + * @exception rb_eArgError `base` is out of range. + * @exception rb_eRangeError `x` is too big, cannot represent in string. + * @return An instance of ::rb_cString which represents `x`. + */ +VALUE rb_big2str(VALUE x, int base); + +/** + * Converts a bignum into C's `long`. + * + * @param[in] x A bignum. + * @exception rb_eRangeError `x` is out of range of `long`. + * @return The passed value converted into C's `long`. + */ +long rb_big2long(VALUE x); + +/** @alias{rb_big2long} */ +#define rb_big2int(x) rb_big2long(x) + +/** + * Converts a bignum into C's `unsigned long`. + * + * @param[in] x A bignum. + * @exception rb_eRangeError `x` is out of range of `unsigned long`. + * @return The passed value converted into C's `unsigned long`. + * + * @internal + * + * This function can generate a very large positive integer for a negative + * input. For instance applying Ruby's -4,611,686,018,427,387,905 to this + * function yields C's 13,835,058,055,282,163,711 on my machine. This is how + * it has been. Cannot change any longer. + */ +unsigned long rb_big2ulong(VALUE x); + +/** @alias{rb_big2long} */ +#define rb_big2uint(x) rb_big2ulong(x) + +#if HAVE_LONG_LONG +/** + * Converts a bignum into C's `long long`. + * + * @param[in] x A bignum. + * @exception rb_eRangeError `x` is out of range of `long long`. + * @return The passed value converted into C's `long long`. + */ +LONG_LONG rb_big2ll(VALUE); + +/** + * Converts a bignum into C's `unsigned long long`. + * + * @param[in] x A bignum. + * @exception rb_eRangeError `x` is out of range of `unsigned long long`. + * @return The passed value converted into C's `unsigned long long`. + * + * @internal + * + * This function can generate a very large positive integer for a negative + * input. For instance applying Ruby's -4,611,686,018,427,387,905 to this + * function yields C's 13,835,058,055,282,163,711 on my machine. This is how + * it has been. Cannot change any longer. + */ +unsigned LONG_LONG rb_big2ull(VALUE); + +#endif /* HAVE_LONG_LONG */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Converts a bignum into a series of its parts. + * + * @param[in] val An integer. + * @param[out] buf Return buffer. + * @param[in] num_longs Number of words of `buf`. + * @exception rb_eTypeError `val` doesn't respond to `#to_int`. + * @post `buf` is filled with `val`'s 2's complement representation, in + * the host CPU's native byte order, from least significant word + * towards the most significant one, for `num_longs` words. + * @note The "pack" terminology comes from `Array#pack`. + */ +void rb_big_pack(VALUE val, unsigned long *buf, long num_longs); + +RBIMPL_ATTR_NONNULL(()) +/** + * Constructs a (possibly very big) bignum from a series of integers. `buf[0]` + * would be the return value's least significant word; `buf[num_longs-1]` would + * be that of most significant. + * + * @param[in] buf A series of integers. + * @param[in] num_longs Number of words of `buf`. + * @exception rb_eArgError Result would be too big. + * @return An instance of ::rb_cInteger which is an "unpack"-ed value of + * the parameters. + * @note The "unpack" terminology comes from `String#pack`. + */ +VALUE rb_big_unpack(unsigned long *buf, long num_longs); + +/* pack.c */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Encodes a Unicode codepoint into its UTF-8 representation. + * + * @param[out] buf Return buffer, must at least be 6 bytes width. + * @param[in] uv An Unicode codepoint. + * @exception rb_eRangeError `uv` is out of Unicode. + * @return Number of bytes written to `buf` + * @post `buf` holds a UTF-8 representation of `uv`. + */ +int rb_uv_to_utf8(char buf[6], unsigned long uv); + +/* bignum.c */ + +/** + * Converts a C's `double` into a bignum. + * + * @param[in] d A value to convert. + * @exception rb_eFloatDomainError `d` is Inf/NaN. + * @return An instance of ::rb_cInteger whose value is approximately `d`. + * + * @internal + * + * @shyouhei is not sure if the result is guaranteed to be the nearest integer + * of `d`. + */ +VALUE rb_dbl2big(double d); + +/** + * Converts a bignum into C's `double`. + * + * @param[in] x A bignum. + * @return The passed value converted into C's `double`. + * + * @internal + * + * @shyouhei is not sure if the result is guaranteed to be `x`'s nearest value + * that a `double` can represent. + */ +double rb_big2dbl(VALUE x); + +/** + * Compares the passed two bignums. + * + * @param[in] lhs Comparison LHS. + * @param[in] rhs Comparison RHS. + * @retval -1 `rhs` is bigger than `lhs`. + * @retval 0 They are identical. + * @retval 1 `lhs` is bigger than `rhs`. + * @see rb_num_coerce_cmp() + */ +VALUE rb_big_cmp(VALUE lhs, VALUE rhs); + +/** + * Equality, in terms of `==`. This checks if the _value_ is the same, not the + * identity. For instance `1 == 1.0` must hold. + * + * @param[in] lhs Comparison LHS. + * @param[in] rhs Comparison RHS. + * @retval RUBY_Qtrue They are the same. + * @retval RUBY_Qfalse They are different. + */ +VALUE rb_big_eq(VALUE lhs, VALUE rhs); + +/** + * Equality, in terms of `eql?`. Unlike rb_big_eq() it does not convert + * ::rb_cFloat etc. This function returns ::RUBY_Qtrue if and only if both + * parameters are bignums, which represent the identical numerical value. + * + * @param[in] lhs Comparison LHS. + * @param[in] rhs Comparison RHS. + * @retval RUBY_Qtrue They are identical. + * @retval RUBY_Qfalse They are distinct. + */ +VALUE rb_big_eql(VALUE lhs, VALUE rhs); + +/** + * Performs addition of the passed two objects. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x + y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_big_plus(VALUE x, VALUE y); + +/** + * Performs subtraction of the passed two objects. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x - y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_big_minus(VALUE x, VALUE y); + +/** + * Performs multiplication of the passed two objects. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x * y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_big_mul(VALUE x, VALUE y); + +/** + * Performs division of the passed two objects. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x / y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_big_div(VALUE x, VALUE y); + +/** + * Performs "integer division". This is different from rb_big_div(). + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x.div y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_big_idiv(VALUE x, VALUE y); + +/** + * Performs modulo of the passed two objects. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x % y` evaluates to. + * @see rb_num_coerce_bin() + * + * @internal + * + * There also is `rb_big_remainder()` internally, which is different from this + * one. + */ +VALUE rb_big_modulo(VALUE x, VALUE y); + +/** + * Performs "divmod" operation. The operation in bignum's context is that it + * calculates rb_big_idiv() and rb_big_modulo() at once. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x.divmod y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_big_divmod(VALUE x, VALUE y); + +/** + * Raises `x` to the powerof `y`. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x ** y` evaluates to. + * @see rb_num_coerce_bin() + * @note This can return an instance of ::rb_cFloat, even when both `x` + * and `y` are bignums. Or an instance of ::rb_cRational, when for + * instance `y` is negative. + */ +VALUE rb_big_pow(VALUE x, VALUE y); + +/** + * Performs bitwise and of the passed two objects. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x & y` evaluates to. + * @see rb_num_coerce_bit() + */ +VALUE rb_big_and(VALUE x, VALUE y); + +/** + * Performs bitwise or of the passed two objects. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x | y` evaluates to. + * @see rb_num_coerce_bit() + */ +VALUE rb_big_or(VALUE x, VALUE y); + +/** + * Performs exclusive or of the passed two objects. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x ^ y` evaluates to. + * @see rb_num_coerce_bit() + */ +VALUE rb_big_xor(VALUE x, VALUE y); + +/** + * Performs shift left. + * + * @param[in] x A bignum. + * @param[in] y Shift amount. + * @exception rb_eTypeError `y` is not an integer. + * @exception rb_eArgError `y` is too big. + * @return `x` shifted left to `y` bits. + * @note `y` can be negative. Shifts right then. + */ +VALUE rb_big_lshift(VALUE x, VALUE y); + +/** + * Performs shift right. + * + * @param[in] x A bignum. + * @param[in] y Shift amount. + * @exception rb_eTypeError `y` is not an integer. + * @return `x` shifted right to `y` bits. + * @note This is arithmetic. Because bignums are not bitfields there is + * no shift right logical operator. + */ +VALUE rb_big_rshift(VALUE x, VALUE y); + +/** + * @name Flags for rb_integer_pack()/rb_integer_unpack() + * @{ + */ + +/** Stores/interprets the most significant word as the first word. */ +#define INTEGER_PACK_MSWORD_FIRST 0x01 + +/** Stores/interprets the least significant word as the first word. */ +#define INTEGER_PACK_LSWORD_FIRST 0x02 + +/** + * Stores/interprets the most significant byte in a word as the first byte in + * the word. + */ +#define INTEGER_PACK_MSBYTE_FIRST 0x10 + +/** + * Stores/interprets the least significant byte in a word as the first byte in + * the word. + */ +#define INTEGER_PACK_LSBYTE_FIRST 0x20 + +/** + * Means either #INTEGER_PACK_MSBYTE_FIRST or #INTEGER_PACK_LSBYTE_FIRST, + * depending on the host processor's endian. + */ +#define INTEGER_PACK_NATIVE_BYTE_ORDER 0x40 + +/** Uses 2's complement representation. */ +#define INTEGER_PACK_2COMP 0x80 + +/** Uses "generic" implementation (handy on test). */ +#define INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION 0x400 + +/** + * Always generates a bignum object even if the integer can be representable + * using fixnum scheme (unpack only) + */ +#define INTEGER_PACK_FORCE_BIGNUM 0x100 + +/** + * Interprets the input as a signed negative number (unpack only). If not + * specified returns a positive number. + */ +#define INTEGER_PACK_NEGATIVE 0x200 + +/** Little endian combination. */ +#define INTEGER_PACK_LITTLE_ENDIAN \ + (INTEGER_PACK_LSWORD_FIRST | \ + INTEGER_PACK_LSBYTE_FIRST) + +/** Big endian combination */ +#define INTEGER_PACK_BIG_ENDIAN \ + (INTEGER_PACK_MSWORD_FIRST | \ + INTEGER_PACK_MSBYTE_FIRST) + +/** @} */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Exports an integer into a buffer. This function fills the buffer specified + * by `words` and `numwords` as `val` in the format specified by `wordsize`, + * `nails` and `flags`. + * + * @param[in] val Integer or integer-like object which has + * `#to_int` method. + * @param[out] words Return buffer. + * @param[in] numwords Number of words of `words`. + * @param[in] wordsize Number of bytes per word. + * @param[in] nails Number of padding bits in a word. Most + * significant nails bits of each word are filled + * by zero. + * @param[in] flags Bitwise or of constants whose name starts + * "INTEGER_PACK_". + * @exception rb_eTypeError `val` doesn't respond to `#to_int`. + * + * Possible flags are: + * + * - #INTEGER_PACK_MSWORD_FIRST: + * Stores the most significant word as the first word. + * + * - #INTEGER_PACK_LSWORD_FIRST: + * Stores the least significant word as the first word. + * + * - #INTEGER_PACK_MSBYTE_FIRST: + * Stores the most significant byte in a word as the first byte in the + * word. + * + * - #INTEGER_PACK_LSBYTE_FIRST: + * Stores the least significant byte in a word as the first byte in the + * word. + * + * - #INTEGER_PACK_NATIVE_BYTE_ORDER: + * Either #INTEGER_PACK_MSBYTE_FIRST or #INTEGER_PACK_LSBYTE_FIRST + * corresponding to the host's endian. + * + * - #INTEGER_PACK_2COMP: + * Uses 2's complement representation. + * + * - #INTEGER_PACK_LITTLE_ENDIAN: Shorthand of + * `INTEGER_PACK_LSWORD_FIRST|INTEGER_PACK_LSBYTE_FIRST`. + * + * - #INTEGER_PACK_BIG_ENDIAN: Shorthand of + * `INTEGER_PACK_MSWORD_FIRST|INTEGER_PACK_MSBYTE_FIRST`. + * + * - #INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION: + * Uses generic implementation (for test and debug). + * + * This function fills the buffer specified by `words` as `val`'s 2's + * complement representation if #INTEGER_PACK_2COMP is specified in `flags`. + * Otherwise it fills `words` as `abs(val)` and signedness is returned via the + * return value. + * + * @return The signedness and overflow condition. The overflow condition + * depends on #INTEGER_PACK_2COMP. + * + * When #INTEGER_PACK_2COMP is not specified: + * + * - `-2` : + * Negative overflow. `val <= -2**(numwords*(wordsize*CHAR_BIT-nails))` + * + * - `-1` : + * Negative without overflow. + * `-2**(numwords*(wordsize*CHAR_BIT-nails)) < val < 0` + * + * - `0` : zero. `val == 0` + * + * - `1` : + * Positive without overflow. + * `0 < val < 2**(numwords*(wordsize*CHAR_BIT-nails))` + * + * - `2` : + * Positive overflow. `2**(numwords*(wordsize*CHAR_BIT-nails)) <= val` + * + * When #INTEGER_PACK_2COMP is specified: + * + * - `-2` : + * Negative overflow. `val < -2**(numwords*(wordsize*CHAR_BIT-nails))` + * + * - `-1` : + * Negative without overflow. + * `-2**(numwords*(wordsize*CHAR_BIT-nails)) <= val < 0` + * + * - `0` : zero. `val == 0` + * + * - `1` : + * Positive without overflow. + * `0 < val < 2**(numwords*(wordsize*CHAR_BIT-nails))` + * + * - `2` : + * Positive overflow. `2**(numwords*(wordsize*CHAR_BIT-nails)) <= val` + * + * The value, `-2**(numwords*(wordsize*CHAR_BIT-nails))`, is representable in + * 2's complement representation but not representable in absolute value. So + * `-1` is returned for the value if #INTEGER_PACK_2COMP is specified but + * returns `-2` if #INTEGER_PACK_2COMP is not specified. + * + * The least significant words are filled in the buffer when overflow occur. + */ +int rb_integer_pack(VALUE val, void *words, size_t numwords, size_t wordsize, size_t nails, int flags); + +RBIMPL_ATTR_NONNULL(()) +/** + * Import an integer from a buffer. + * + * @param[in] words Buffer to import. + * @param[in] numwords Number of words of `words`. + * @param[in] wordsize Number of bytes per word. + * @param[in] nails Number of padding bits in a word. Most + * significant nails bits of each word are ignored. + * @param[in] flags Bitwise or of constants whose name starts + * "INTEGER_PACK_". + * @exception rb_eArgError `numwords * wordsize` too big. + * + * Possible flags are: + * + * - #INTEGER_PACK_MSWORD_FIRST: + * Interpret the first word as the most significant word. + * + * - #INTEGER_PACK_LSWORD_FIRST: + * Interpret the first word as the least significant word. + * + * - #INTEGER_PACK_MSBYTE_FIRST: + * Interpret the first byte in a word as the most significant byte in the + * word. + * + * - #INTEGER_PACK_LSBYTE_FIRST: + * Interpret the first byte in a word as the least significant byte in + * the word. + * + * - #INTEGER_PACK_NATIVE_BYTE_ORDER: + * Either #INTEGER_PACK_MSBYTE_FIRST or #INTEGER_PACK_LSBYTE_FIRST + * corresponding to the host's endian. + * + * - #INTEGER_PACK_2COMP: + * Uses 2's complement representation. + * + * - #INTEGER_PACK_LITTLE_ENDIAN: Shorthand of + * `INTEGER_PACK_LSWORD_FIRST|INTEGER_PACK_LSBYTE_FIRST` + * + * - #INTEGER_PACK_BIG_ENDIAN: Shorthand of + * `INTEGER_PACK_MSWORD_FIRST|INTEGER_PACK_MSBYTE_FIRST` + * + * - #INTEGER_PACK_FORCE_BIGNUM: + * Returns a bignum even if its value is representable as a fixnum. + * + * - #INTEGER_PACK_NEGATIVE: + * Returns a non-positive value. (Returns a non-negative value if not + * specified.) + * + * - #INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION: + * Uses generic implementation (for test and debug). + * + * @return An instance of ::rb_cInteger whose value is the interpreted + * `words`. The range of the result value depends on + * #INTEGER_PACK_2COMP and #INTEGER_PACK_NEGATIVE. + * + * When #INTEGER_PACK_2COMP is not set: + * + * - `0 <= val < 2**(numwords*(wordsize*CHAR_BIT-nails))` if + * `!INTEGER_PACK_NEGATIVE` + * + * - `-2**(numwords*(wordsize*CHAR_BIT-nails)) < val <= 0` if + * `INTEGER_PACK_NEGATIVE` + * + * When #INTEGER_PACK_2COMP is set: + * + * - `-2**(numwords*(wordsize*CHAR_BIT-nails)-1)` `<= val <=` + * `2**(numwords*(wordsize*CHAR_BIT-nails)-1)-1` if + * `!INTEGER_PACK_NEGATIVE` + * + * - `-2**(numwords*(wordsize*CHAR_BIT-nails)) <= val <= -1` if + * `INTEGER_PACK_NEGATIVE` + * + * Passing #INTEGER_PACK_2COMP without #INTEGER_PACK_NEGATIVE means sign + * extension. #INTEGER_PACK_2COMP with #INTEGER_PACK_NEGATIVE means assuming + * the higher bits are `1`. + * + * Note that this function returns 0 when `numwords` is zero and + * #INTEGER_PACK_2COMP is set but #INTEGER_PACK_NEGATIVE is not set. + */ +VALUE rb_integer_unpack(const void *words, size_t numwords, size_t wordsize, size_t nails, int flags); + +/** + * Calculates the number of bytes needed to represent the absolute value of the + * passed integer. + * + * @param[in] val Integer or integer-like object which has + * `#to_int` method. + * @param[out] nlz_bits_ret Number of leading zero bits in the most + * significant byte is returned if not `NULL`. + * @exception rb_eTypeError `val` doesn't respond to `#to_int`. + * @return `((val_numbits * CHAR_BIT + CHAR_BIT - 1) / CHAR_BIT)`, where + * val_numbits is the number of bits of `abs(val)`. + * @post If `nlz_bits_ret` is not `NULL`, + * `(return_value * CHAR_BIT - val_numbits)` is stored in + * `*nlz_bits_ret`. In this case, + * `0 <= *nlz_bits_ret < CHAR_BIT`. + * + * This function should not overflow. + */ +size_t rb_absint_size(VALUE val, int *nlz_bits_ret); + +/** + * Calculates the number of words needed represent the absolute value of the + * passed integer. Unlike rb_absint_size() this function can overflow. It + * returns `(size_t)-1` then. + * + * @param[in] val Integer or integer-like object which has + * `#to_int` method. + * @param[in] word_numbits Number of bits per word. + * @param[out] nlz_bits_ret Number of leading zero bits in the most + * significant word is returned if not `NULL`. + * @exception rb_eTypeError `val` doesn't respond to `#to_int`. + * @retval (size_t)-1 Overflowed. + * @retval otherwise + `((val_numbits * CHAR_BIT + word_numbits - 1) / word_numbits)`, + * where val_numbits is the number of bits of `abs(val)`. + * @post If `nlz_bits_ret` is not `NULL` and there is no overflow, + * `(return_value * word_numbits - val_numbits)` is stored in + * `*nlz_bits_ret`. In this case, + * `0 <= *nlz_bits_ret < word_numbits.` + * + */ +size_t rb_absint_numwords(VALUE val, size_t word_numbits, size_t *nlz_bits_ret); + +/** + * Tests `abs(val)` consists only of a bit or not. + * + * @param[in] val Integer or integer-like object which has + * `#to_int` method. + * @exception rb_eTypeError `val` doesn't respond to `#to_int`. + * @retval 1 `abs(val) == 1 << n` for some `n >= 0`. + * @retval 0 Otherwise. + * + * rb_absint_singlebit_p() can be used to determine required buffer size for + * rb_integer_pack() used with #INTEGER_PACK_2COMP (two's complement). + * + * Following example calculates number of bits required to represent val in + * two's complement number, without sign bit. + * + * ```CXX + * size_t size; + * int neg = FIXNUM_P(val) ? FIX2LONG(val) < 0 : BIGNUM_NEGATIVE_P(val); + * size = rb_absint_numwords(val, 1, NULL) + * if (size == (size_t)-1) ...overflow... + * if (neg && rb_absint_singlebit_p(val)) + * size--; + * ``` + * + * Following example calculates number of bytes required to represent val in + * two's complement number, with sign bit. + * + * ```CXX + * size_t size; + * int neg = FIXNUM_P(val) ? FIX2LONG(val) < 0 : BIGNUM_NEGATIVE_P(val); + * int nlz_bits; + * size = rb_absint_size(val, &nlz_bits); + * if (nlz_bits == 0 && !(neg && rb_absint_singlebit_p(val))) + * size++; + * ``` + */ +int rb_absint_singlebit_p(VALUE val); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_BIGNUM_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/class.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/class.h new file mode 100644 index 0000000..0fb2d00 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/class.h @@ -0,0 +1,394 @@ +#ifndef RBIMPL_INTERN_CLASS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_CLASS_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cClass/::rb_cModule. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/backward/2/stdarg.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* class.c */ + +/** + * Creates a new, anonymous class. + * + * @param[in] super What would become a parent class. + * @exception rb_eTypeError `super` is not something inheritable. + * @return An anonymous class that inherits `super`. + */ +VALUE rb_class_new(VALUE super); + +/** + * The comment that comes with this function says `:nodoc:`. Not sure what + * that means though. + * + * @param[out] clone Destination object. + * @param[in] orig Source object. + * @exception rb_eTypeError Cannot copy `orig`. + * @return The passed `clone`. + */ +VALUE rb_mod_init_copy(VALUE clone, VALUE orig); + +/** + * Asserts that the given class can derive a child class. A class might or + * might not be able to do so; for instance a singleton class cannot. + * + * @param[in] super Possible super class. + * @exception rb_eTypeError No it cannot. + * @post Upon successful return `super` can derive. + */ +void rb_check_inheritable(VALUE super); + +/** + * This is a very badly designed API that creates an anonymous class. + * + * @param[in] id Discarded for no reason (why...). + * @param[in] super What would become a parent class. 0 means + * ::rb_cObject. + * @exception rb_eTypeError `super` is not something inheritable. + * @return An anonymous class that inherits `super`. + * @warning You must explicitly name the return value. + */ +VALUE rb_define_class_id(ID id, VALUE super); + +/** + * Identical to rb_define_class_under(), except it takes the name in ::ID + * instead of C's string. + * + * @param[out] outer A class which contains the new class. + * @param[in] id Name of the new class + * @param[in] super A class from which the new class will derive. + * 0 means ::rb_cObject. + * @exception rb_eTypeError The constant name `id` is already taken but the + * constant is not a class. + * @exception rb_eTypeError The class is already defined but the class can + * not be reopened because its superclass is not + * `super`. + * @exception rb_eArgError `super` is NULL. + * @return The created class. + * @post `outer::id` refers the returned class. + * @note If a class named `id` is already defined and its superclass is + * `super`, the function just returns the defined class. + * @note The compaction GC does not move classes returned by this + * function. + */ +VALUE rb_define_class_id_under(VALUE outer, ID id, VALUE super); + +/** + * Creates a new, anonymous module. + * + * @return An anonymous module. + */ +VALUE rb_module_new(void); + + +/** + * Creates a new, anonymous refinement. + * + * @return An anonymous refinement. + */ +VALUE rb_refinement_new(void); + +/** + * This is a very badly designed API that creates an anonymous module. + * + * @param[in] id Discarded for no reason (why...). + * @return An anonymous module. + * @warning You must explicitly name the return value. + */ +VALUE rb_define_module_id(ID id); + +/** + * Identical to rb_define_module_under(), except it takes the name in ::ID + * instead of C's string. + * + * @param[out] outer A class which contains the new module. + * @param[in] id Name of the new module + * @exception rb_eTypeError The constant name `id` is already taken but the + * constant is not a module. + * @return The created module. + * @post `outer::id` refers the returned module. + * @note The compaction GC does not move classes returned by this + * function. + */ +VALUE rb_define_module_id_under(VALUE outer, ID id); + +/** + * Queries the list of included modules. It can also be seen as a routine to + * first call rb_mod_ancestors(), then rejects non-modules from the return + * value. + * + * @param[in] mod Class or Module. + * @return An array of modules that are either included or prepended in any + * of `mod`'s ancestry tree (including itself). + */ +VALUE rb_mod_included_modules(VALUE mod); + +/** + * Queries if the passed module is included by the module. It can also be seen + * as a routine to first call rb_mod_included_modules(), then see if the return + * value contains the passed module. + * + * @param[in] child A Module. + * @param[in] parent Another Module. + * @exception rb_eTypeError `child` is not an instance of ::rb_cModule. + * @retval RUBY_Qtrue `parent` is either included or prepended in any + * of `child`'s ancestry tree (including itself). + * @return RUBY_Qfalse Otherwise. + */ +VALUE rb_mod_include_p(VALUE child, VALUE parent); + +/** + * Queries the module's ancestors. This routine gathers classes and modules + * that the passed module either inherits, includes, or prepends, then + * recursively applies that routine again and again to the collected entries + * until the list doesn't grow up. + * + * @param[in] mod A module or a class. + * @return An array of classes or modules that `mod` possibly recursively + * inherits, includes, or prepends. + * + * @internal + * + * Above description is written in a recursive language but in practice it + * computes the return value iteratively. + */ +VALUE rb_mod_ancestors(VALUE mod); + +/** + * Queries the class's descendants. This routine gathers classes that are + * subclasses of the given class (or subclasses of those subclasses, etc.), + * returning an array of classes that have the given class as an ancestor. + * The returned array does not include the given class or singleton classes. + * + * @param[in] klass A class. + * @return An array of classes where `klass` is an ancestor. + * + * @internal + */ +VALUE rb_class_descendants(VALUE klass); + +/** + * Queries the class's direct descendants. This routine gathers classes that are + * direct subclasses of the given class, + * returning an array of classes that have the given class as a superclass. + * The returned array does not include singleton classes. + * + * @param[in] klass A class. + * @return An array of classes where `klass` is the `superclass`. + * + * @internal + */ +VALUE rb_class_subclasses(VALUE klass); + + +/** + * Returns the attached object for a singleton class. + * If the given class is not a singleton class, raises a TypeError. + * + * @param[in] klass A class. + * @return The object which has the singleton class `klass`. + * + * @internal + */ +VALUE rb_class_attached_object(VALUE klass); + +/** + * Generates an array of symbols, which are the list of method names defined in + * the passed class. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Array of at most one object, which controls (if + * any) whether the return array includes the names + * of methods defined in ancestors or not. + * @param[in] mod A module or a class. + * @exception rb_eArgError `argc` out of range. + * @return An array of symbols collecting names of instance methods that + * are not private, defined at `mod`. + */ +VALUE rb_class_instance_methods(int argc, const VALUE *argv, VALUE mod); + +/** + * Identical to rb_class_instance_methods(), except it returns names of methods + * that are public only. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Array of at most one object, which controls (if + * any) whether the return array includes the names + * of methods defined in ancestors or not. + * @param[in] mod A module or a class. + * @exception rb_eArgError `argc` out of range. + * @return An array of symbols collecting names of instance methods that + * are public, defined at `mod`. + */ +VALUE rb_class_public_instance_methods(int argc, const VALUE *argv, VALUE mod); + +/** + * Identical to rb_class_instance_methods(), except it returns names of methods + * that are protected only. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Array of at most one object, which controls (if + * any) whether the return array includes the names + * of methods defined in ancestors or not. + * @param[in] mod A module or a class. + * @exception rb_eArgError `argc` out of range. + * @return An array of symbols collecting names of instance methods that + * are protected, defined at `mod`. + */ +VALUE rb_class_protected_instance_methods(int argc, const VALUE *argv, VALUE mod); + +/** + * Identical to rb_class_instance_methods(), except it returns names of methods + * that are private only. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Array of at most one object, which controls (if + * any) whether the return array includes the names + * of methods defined in ancestors or not. + * @param[in] mod A module or a class. + * @exception rb_eArgError `argc` out of range. + * @return An array of symbols collecting names of instance methods that + * are protected, defined at `mod`. + */ +VALUE rb_class_private_instance_methods(int argc, const VALUE *argv, VALUE mod); + +/** + * Identical to rb_class_instance_methods(), except it returns names of + * singleton methods instead of instance methods. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Array of at most one object, which controls (if + * any) whether the return array includes the names + * of methods defined in ancestors or not. + * @param[in] obj Arbitrary ruby object. + * @exception rb_eArgError `argc` out of range. + * @return An array of symbols collecting names of instance methods that + * are not private, defined at the singleton class of `obj`. + */ +VALUE rb_obj_singleton_methods(int argc, const VALUE *argv, VALUE obj); + +/** + * Identical to rb_define_method(), except it takes the name of the method in + * ::ID instead of C's string. + * + * @param[out] klass A module or a class. + * @param[in] mid Name of the function. + * @param[in] func The method body. + * @param[in] arity The number of parameters. See @ref defmethod. + * @note There are in fact 18 different prototypes for func. + * @see ::ruby::backward::cxxanyargs::define_method::rb_define_method_id + */ +void rb_define_method_id(VALUE klass, ID mid, VALUE (*func)(ANYARGS), int arity); + +/* vm_method.c */ + +/** + * Inserts a method entry that hides previous method definition of the given + * name. This is not a deletion of a method. Method of the same name defined + * in a parent class is kept invisible in this way. + * + * @param[out] mod The module to insert an undef. + * @param[in] mid Name of the undef. + * @exception rb_eTypeError `klass` is a non-module. + * @exception rb_eFrozenError `klass` is frozen. + * @exception rb_eNameError No such method named `klass#name`. + * @post `klass#name` is undefined. + * @see rb_undef_method + * + * @internal + * + * @shyouhei doesn't understand why this is not the ::ID -taking variant of + * rb_undef_method(), given rb_remove_method() has its ::ID -taking counterpart + * named rb_remove_method_id(). + */ +void rb_undef(VALUE mod, ID mid); + +/* class.c */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_define_method(), except it defines a protected method. + * + * @param[out] klass A module or a class. + * @param[in] mid Name of the function. + * @param[in] func The method body. + * @param[in] arity The number of parameters. See @ref defmethod. + * @note There are in fact 18 different prototypes for func. + * @see ::ruby::backward::cxxanyargs::define_method::rb_define_protected_method + */ +void rb_define_protected_method(VALUE klass, const char *mid, VALUE (*func)(ANYARGS), int arity); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_define_method(), except it defines a private method. + * + * @param[out] klass A module or a class. + * @param[in] mid Name of the function. + * @param[in] func The method body. + * @param[in] arity The number of parameters. See @ref defmethod. + * @note There are in fact 18 different prototypes for func. + * @see ::ruby::backward::cxxanyargs::define_method::rb_define_protected_method + */ +void rb_define_private_method(VALUE klass, const char *mid, VALUE (*func)(ANYARGS), int arity); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_define_method(), except it defines a singleton method. + * + * @param[out] obj Arbitrary ruby object. + * @param[in] mid Name of the function. + * @param[in] func The method body. + * @param[in] arity The number of parameters. See @ref defmethod. + * @note There are in fact 18 different prototypes for func. + * @see ::ruby::backward::cxxanyargs::define_method::rb_define_singleton_method + */ +void rb_define_singleton_method(VALUE obj, const char *mid, VALUE(*func)(ANYARGS), int arity); + +/** + * Finds or creates the singleton class of the passed object. + * + * @param[out] obj Arbitrary ruby object. + * @exception rb_eTypeError `obj` cannot have its singleton class. + * @return A (possibly newly allocated) instance of ::rb_cClass. + * @post `obj` has its singleton class, which is the return value. + * @post In case `obj` is a class, the returned singleton class also has + * its own singleton class in order to keep consistency of the + * inheritance structure of metaclasses. + * @note A new singleton class will be created if `obj` did not have + * one. + * @note The singleton classes for ::RUBY_Qnil, ::RUBY_Qtrue, and + * ::RUBY_Qfalse are ::rb_cNilClass, ::rb_cTrueClass, and + * ::rb_cFalseClass respectively. + * + * @internal + * + * You can _create_ a singleton class of a frozen object. Intentional or ...? + * + * Nowadays there are wider range of objects who cannot have singleton classes + * than before. For instance some string instances cannot for some reason. + */ +VALUE rb_singleton_class(VALUE obj); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_CLASS_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/compar.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/compar.h new file mode 100644 index 0000000..dc3b377 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/compar.h @@ -0,0 +1,62 @@ +#ifndef RBIMPL_INTERN_COMPAR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_COMPAR_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_mComparable. + */ +#include "ruby/internal/attr/cold.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* bignum.c */ + +/** + * Canonicalises the passed `val`, which is the return value of `a <=> b`, into + * C's `{-1, 0, 1}`. This can be handy when you implement a callback function + * to pass to `qsort(3)` etc. + * + * @param[in] val Return value of a space ship operator. + * @param[in] a Comparison LHS. + * @param[in] b Comparison RHS. + * @exception rb_eArgError `a` and `b` are not comparable each other. + * @retval -1 `val` is less than zero. + * @retval 0 `val` is equal to zero. + * @retval 1 `val` is greater than zero. + */ +int rb_cmpint(VALUE val, VALUE a, VALUE b); + +/* compar.c */ + +RBIMPL_ATTR_COLD() +RBIMPL_ATTR_NORETURN() +/** + * Raises "comparison failed" error. + * + * @param[in] a Comparison LHS. + * @param[in] b Comparison RHS. + * @exception rb_eArgError `a` and `b` are not comparable each other. + */ +void rb_cmperr(VALUE a, VALUE b); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_COMPAR_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/complex.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/complex.h new file mode 100644 index 0000000..e111bd8 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/complex.h @@ -0,0 +1,253 @@ +#ifndef RBIMPL_INTERN_COMPLEX_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_COMPLEX_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cComplex. + */ +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/arithmetic/long.h" /* INT2FIX is here. */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* complex.c */ + +/** + * Identical to rb_complex_new(), except it assumes both arguments are not + * instances of ::rb_cComplex. It is thus dangerous for extension libraries. + * + * @param[in] real Real part, in any numeric except Complex. + * @param[in] imag Imaginary part, in any numeric except Complex. + * @return An instance of ::rb_cComplex whose value is `real + (imag)i`. + */ +VALUE rb_complex_raw(VALUE real, VALUE imag); + +/** + * Shorthand of `x+0i`. It practically converts `x` into a Complex of the + * identical value. + * + * @param[in] x Any numeric except Complex. + * @return An instance of ::rb_cComplex, whose value is `x + 0i`. + */ +#define rb_complex_raw1(x) rb_complex_raw((x), INT2FIX(0)) + +/** @alias{rb_complex_raw} */ +#define rb_complex_raw2(x,y) rb_complex_raw((x), (y)) + +/** + * Constructs a Complex, by first multiplying the imaginary part with `1i` then + * adds it to the real part. This definition doesn't need both arguments be + * real numbers. It can happily combine two instances of ::rb_cComplex (with + * rotating the latter one). + * + * @param[in] real An instance of ::rb_cNumeric. + * @param[in] imag Another instance of ::rb_cNumeric. + * @return An instance of ::rb_cComplex whose value is `imag * 1i + real`. + */ +VALUE rb_complex_new(VALUE real, VALUE imag); + +/** + * Shorthand of `x+0i`. It practically converts `x` into a Complex of the + * identical value. + * + * @param[in] x Any numeric value. + * @return An instance of ::rb_cComplex, whose value is `x + 0i`. + */ +#define rb_complex_new1(x) rb_complex_new((x), INT2FIX(0)) + +/** @alias{rb_complex_new} */ +#define rb_complex_new2(x,y) rb_complex_new((x), (y)) + +/** + * Constructs a Complex using polar representations. Unlike rb_complex_new() + * it makes no sense to pass non-real instances to this function. + * + * @param[in] abs Magnitude, in any numeric except Complex. + * @param[in] arg Angle, in radians, in any numeric except Complex. + * @return An instance of ::rb_cComplex which denotes the given polar + * coordinates. + */ +VALUE rb_complex_new_polar(VALUE abs, VALUE arg); + +RBIMPL_ATTR_DEPRECATED(("by: rb_complex_new_polar")) +/** @old{rb_complex_new_polar} */ +VALUE rb_complex_polar(VALUE abs, VALUE arg); + +RBIMPL_ATTR_PURE() +/** + * Queries the real part of the passed Complex. + * + * @param[in] z An instance of ::rb_cComplex. + * @return Its real part, which is an instance of ::rb_cNumeric. + */ +VALUE rb_complex_real(VALUE z); + +RBIMPL_ATTR_PURE() +/** + * Queries the imaginary part of the passed Complex. + * + * @param[in] z An instance of ::rb_cComplex. + * @return Its imaginary part, which is an instance of ::rb_cNumeric. + */ +VALUE rb_complex_imag(VALUE z); + +/** + * Performs addition of the passed two objects. + * + * @param[in] x An instance of ::rb_cComplex. + * @param[in] y Arbitrary ruby object. + * @return What `x + y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_complex_plus(VALUE x, VALUE y); + +/** + * Performs subtraction of the passed two objects. + * + * @param[in] x An instance of ::rb_cComplex. + * @param[in] y Arbitrary ruby object. + * @return What `x - y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_complex_minus(VALUE x, VALUE y); + +/** + * Performs multiplication of the passed two objects. + * + * @param[in] x An instance of ::rb_cComplex. + * @param[in] y Arbitrary ruby object. + * @return What `x * y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_complex_mul(VALUE x, VALUE y); + +/** + * Performs division of the passed two objects. + * + * @param[in] x An instance of ::rb_cComplex. + * @param[in] y Arbitrary ruby object. + * @return What `x / y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_complex_div(VALUE x, VALUE y); + +/** + * Performs negation of the passed object. + * + * @param[in] z An instance of ::rb_cComplex. + * @return What `-z` evaluates to. + */ +VALUE rb_complex_uminus(VALUE z); + +/** + * Performs complex conjugation of the passed object. + * + * @param[in] z An instance of ::rb_cComplex. + * @return Its complex conjugate, in ::rb_cComplex. + */ +VALUE rb_complex_conjugate(VALUE z); + +/** + * Queries the absolute (or the magnitude) of the passed object. + * + * @param[in] z An instance of ::rb_cComplex. + * @return Its magnitude, in ::rb_cFloat. + */ +VALUE rb_complex_abs(VALUE z); + +/** + * Queries the argument (or the angle) of the passed object. + * + * @param[in] z An instance of ::rb_cComplex. + * @return Its magnitude, in ::rb_cFloat. + */ +VALUE rb_complex_arg(VALUE z); + +/** + * Performs exponentiation of the passed two objects. + * + * @param[in] base An instance of ::rb_cComplex. + * @param[in] exp Arbitrary ruby object. + * @return What `base ** exp` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_complex_pow(VALUE base, VALUE exp); + +/** + * Identical to rb_complex_new(), except it takes the arguments as C's double + * instead of Ruby's object. + * + * @param[in] real Real part. + * @param[in] imag Imaginary part. + * @return An instance of ::rb_cComplex whose value is `real + (imag)i`. + */ +VALUE rb_dbl_complex_new(double real, double imag); + +/** @alias{rb_complex_plus} */ +#define rb_complex_add rb_complex_plus + +/** @alias{rb_complex_minus} */ +#define rb_complex_sub rb_complex_minus + +/** @alias{rb_complex_uminus} */ +#define rb_complex_nagate rb_complex_uminus + +/** + * Converts various values into a Complex. This function accepts: + * + * - Instances of ::rb_cComplex (taken as-is), + * - Instances of ::rb_cNumeric (adds `0i`), + * - Instances of ::rb_cString (parses), + * - Other objects that respond to `#to_c`. + * + * It (possibly recursively) applies `#to_c` until both sides become a Complex + * value, then computes `imag * 1i + real`. + * + * As a special case, passing ::RUBY_Qundef to `imag` is the same as passing + * `RB_INT2NUM(0)`. + * + * @param[in] real Real part (see above). + * @param[in] imag Imaginary part (see above). + * @exception rb_eTypeError Passed something not described above. + * @return An instance of ::rb_cComplex whose value is `1i * imag + real`. + * + * @internal + * + * This was the implementation of `Kernel#Complex` before, but they diverged. + */ +VALUE rb_Complex(VALUE real, VALUE imag); + +/** + * Shorthand of `x+0i`. It practically converts `x` into a Complex of the + * identical value. + * + * @param[in] x ::rb_cNumeric, ::rb_cString, or something that responds to + * `#to_c`. + * @return An instance of ::rb_cComplex, whose value is `x + 0i`. + */ +#define rb_Complex1(x) rb_Complex((x), INT2FIX(0)) + +/** @alias{rb_Complex} */ +#define rb_Complex2(x,y) rb_Complex((x), (y)) + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_COMPLEX_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/cont.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/cont.h new file mode 100644 index 0000000..32647f4 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/cont.h @@ -0,0 +1,282 @@ +#ifndef RBIMPL_INTERN_CONT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_CONT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to rb_cFiber. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/iterator.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* cont.c */ + +/** + * Creates a Fiber instance from a C-backended block. + * + * @param[in] func A function, to become the fiber's body. + * @param[in] callback_obj Passed as-is to `func`. + * @return An allocated new instance of rb_cFiber, which is ready to be + * "resume"d. + */ +VALUE rb_fiber_new(rb_block_call_func_t func, VALUE callback_obj); + +/** + * Creates a Fiber instance from a C-backended block with the specified + * storage. + * + * If the given storage is Qundef or Qtrue, this function is equivalent to + * rb_fiber_new() which inherits storage from the current fiber. + * + * Specifying Qtrue is experimental and may be changed in the future. + * + * If the given storage is Qnil, this function will lazy initialize the + * internal storage which starts of empty (without any inheritance). + * + * Otherwise, the given storage is used as the internal storage. + * + * @param[in] func A function, to become the fiber's body. + * @param[in] callback_obj Passed as-is to `func`. + * @param[in] storage The way to set up the storage for the fiber. + * @return An allocated new instance of rb_cFiber, which is ready to be + * "resume"d. + */ +VALUE rb_fiber_new_storage(rb_block_call_func_t func, VALUE callback_obj, VALUE storage); + +/** + * Queries the fiber which is calling this function. Any ruby execution + * context has its fiber, either explicitly or implicitly. + * + * @return The current fiber. + */ +VALUE rb_fiber_current(void); + +/** + * Queries the liveness of the passed fiber. "Alive" in this context means + * that the fiber can still be resumed. Once it reaches is its end of + * execution, this function returns ::RUBY_Qfalse. + * + * @param[in] fiber A target fiber. + * @retval RUBY_Qtrue It is. + * @retval RUBY_Qfalse It isn't. + */ +VALUE rb_fiber_alive_p(VALUE fiber); + +/** + * Queries if an object is a fiber. + * + * @param[in] obj Arbitrary ruby object. + * @retval RUBY_Qtrue It is. + * @retval RUBY_Qfalse It isn't. + */ +VALUE rb_obj_is_fiber(VALUE obj); + +/** + * Resumes the execution of the passed fiber, either from the point at which + * the last rb_fiber_yield() was called if any, or at the beginning of the + * fiber body if it is the first call to this function. + * + * Other arguments are passed into the fiber's body, either as return values of + * rb_fiber_yield() in case it switches to there, or as the block parameter of + * the fiber body if it switches to the beginning of the fiber. + * + * The return value of this function is either the value passed to previous + * rb_fiber_yield() call, or the ultimate evaluated value of the entire fiber + * body if the execution reaches the end of it. + * + * When an exception happens inside of a fiber it propagates to this function. + * + * ```ruby + * f = Fiber.new do |i| + * puts " =>> #{i}" + * puts " <-- #{i + 1}" + * j = Fiber.yield(i + 1) + * puts " =>> #{j}" + * puts " <-- #{j + 1}" + * next j + 1 + * end + * + * puts "[a] <-- 1" + * p = f.resume(1) + * puts "[b] =>> #{p}" + * puts "[c] <-- #{p + 1}" + * q = f.resume(p + 1) + * puts "[d] =>> #{q}" + * ``` + * + * Above program executes in `[a] [b] [c] [d]`. + * + * @param[out] fiber The fiber to resume. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Passed (somehow) to `fiber`. + * @exception rb_eFiberError `fib` is terminated etc. + * @exception rb_eException Any exceptions happen in `fiber`. + * @return (See above) + * @note This function _does_ return. + * + * @internal + * + * @shyouhei expected this function to raise ::rb_eFrozenError for frozen + * fibers but it doesn't in practice. Intentional or ...? + */ +VALUE rb_fiber_resume(VALUE fiber, int argc, const VALUE *argv); + +/** + * Identical to rb_fiber_resume(), except you can specify how to handle the + * last element of the given array. + * + * @param[out] fiber The fiber to resume. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Passed (somehow) to `fiber`. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eFiberError `fiber` is terminated etc. + * @exception rb_eException Any exceptions happen in `fiber`. + * @return Either what was yielded or the last value of the fiber body. + */ +VALUE rb_fiber_resume_kw(VALUE fiber, int argc, const VALUE *argv, int kw_splat); + +/** + * Yields the control back to the point where the current fiber was resumed. + * The passed objects would be the return value of rb_fiber_resume(). This + * fiber then suspends its execution until next time it is resumed. + * + * This function can also raise arbitrary exceptions injected from outside of + * the fiber using rb_fiber_raise(). + * + * ```ruby + * exc = Class.new Exception + * + * f = Fiber.new do + * Fiber.yield + * rescue exc => e + * puts e.message + * end + * + * f.resume + * f.raise exc, "Hi!" + * ``` + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Passed to rb_fiber_resume(). + * @exception rb_eException (See above) + * @return (See rb_fiber_resume() for details) + */ +VALUE rb_fiber_yield(int argc, const VALUE *argv); + +/** + * Identical to rb_fiber_yield(), except you can specify how to handle the last + * element of the given array. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Passed to rb_fiber_resume(). + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eException What was raised using `Fiber#raise`. + * @return (See rb_fiber_resume() for details) + */ +VALUE rb_fiber_yield_kw(int argc, const VALUE *argv, int kw_splat); + +/** + * Transfers control to another fiber, resuming it from where it last stopped + * or starting it if it was not resumed before. The calling fiber will be + * suspended much like in a call to rb_fiber_yield(). + * + * The fiber which receives the transfer call treats it much like a resume + * call. Arguments passed to transfer are treated like those passed to resume. + * + * The two style of control passing to and from fiber (one is rb_fiber_resume() + * and rb_fiber_yield(), another is rb_fiber_transfer() to and from fiber) + * can't be freely mixed. + * + * - If the Fiber's lifecycle had started with transfer, it will never be + * able to yield or be resumed control passing, only finish or transfer + * back. (It still can resume other fibers that are allowed to be + * resumed.) + * + * - If the Fiber's lifecycle had started with resume, it can yield or + * transfer to another Fiber, but can receive control back only the way + * compatible with the way it was given away: if it had transferred, it + * only can be transferred back, and if it had yielded, it only can be + * resumed back. After that, it again can transfer or yield. + * + * If those rules are broken, rb_eFiberError is raised. + * + * For an individual Fiber design, yield/resume is easier to use (the Fiber + * just gives away control, it doesn't need to think about who the control is + * given to), while transfer is more flexible for complex cases, allowing to + * build arbitrary graphs of Fibers dependent on each other. + * + * @param[out] fiber Explicit control destination. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Passed to rb_fiber_resume(). + * @exception rb_eFiberError (See above) + * @exception rb_eException What was raised using `Fiber#raise`. + * @return (See rb_fiber_resume() for details) + */ +VALUE rb_fiber_transfer(VALUE fiber, int argc, const VALUE *argv); + +/** + * Identical to rb_fiber_transfer(), except you can specify how to handle the + * last element of the given array. + * + * @param[out] fiber Explicit control destination. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Passed to rb_fiber_resume(). + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eFiberError (See above) + * @exception rb_eException What was raised using `Fiber#raise`. + * @return (See rb_fiber_resume() for details) + */ +VALUE rb_fiber_transfer_kw(VALUE fiber, int argc, const VALUE *argv, int kw_splat); + +/** + * Identical to rb_fiber_resume() but instead of resuming normal execution of + * the passed fiber, it raises the given exception in it. From inside of the + * fiber this would be seen as if rb_fiber_yield() raised. + * + * This function does return in case the passed fiber gracefully handled the + * passed exception. But if it does not, the raised exception propagates out + * of the passed fiber; this function then does not return. + * + * Parameters are passed to rb_make_exception() to create an exception object. + * See its document for what are allowed here. + * + * It is a failure to call this function against a fiber which is resuming, + * have never run yet, or has already finished running. + * + * @param[out] fiber Where exception is raised. + * @param[in] argc Passed as-is to rb_make_exception(). + * @param[in] argv Passed as-is to rb_make_exception(). + * @exception rb_eFiberError `fiber` is terminated etc. + * @return (See rb_fiber_resume() for details) + */ +VALUE rb_fiber_raise(VALUE fiber, int argc, const VALUE *argv); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_CONT_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/dir.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/dir.h new file mode 100644 index 0000000..da1873e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/dir.h @@ -0,0 +1,42 @@ +#ifndef RBIMPL_INTERN_DIR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_DIR_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cDir. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* dir.c */ + +/** + * Queries the path of the current working directory of the current process. + * + * @return An instance of ::rb_cString that holds the working directory. + * @note The returned string is in "filesystem" encoding. Most notably on + * Linux this is an alias of default external encoding. Most notably + * on Windows it can be an alias of OS codepage. + */ +VALUE rb_dir_getwd(void); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_DIR_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/enum.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/enum.h new file mode 100644 index 0000000..215ad82 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/enum.h @@ -0,0 +1,73 @@ +#ifndef RBIMPL_INTERN_ENUM_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_ENUM_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_mEnumerable. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* enum.c */ + +/** + * Basically identical to rb_ary_new_form_values(), except it returns something + * different when `argc` < 2. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arbitrary objects. + * @retval RUBY_Qnil `argc` is zero. + * @retval argv[0] `argc` is one. + * @retval otherwise Otherwise. + * + * @internal + * + * What is this business? Well, this function is about `yield`'s taking + * multiple values. Consider following user-defined class: + * + * ```ruby + * class Foo + * include Enumerable + * + * def each + * yield :q, :w, :e, :r + * end + * end + * + * Foo.new.each_with_object([]) do |i, j| + * j << i # ^^^ <- What to expect for `i`? + * end + * ``` + * + * Here, `Foo#each_with_object` is in fact `Enumerable#each_with_object`, which + * doesn't know what would be yielded. Yet, it has to take a block of arity 2. + * This function is used here, to "pack" arbitrary number of yielded objects + * into one. + * + * If people want to implement their own `Enumerable#each_with_object` this API + * can be handy. Though @shyouhei suspects it is relatively rare for 3rd party + * extension libraries to have such things. Also `Enumerable#each_entry` is + * basically this function exposed as a Ruby method. + */ +VALUE rb_enum_values_pack(int argc, const VALUE *argv); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_ENUM_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/enumerator.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/enumerator.h new file mode 100644 index 0000000..20e5d7c --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/enumerator.h @@ -0,0 +1,259 @@ +#ifndef RBIMPL_INTERN_ENUMERATOR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_ENUMERATOR_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cEnumerator. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/intern/eval.h" /* rb_frame_this_func */ +#include "ruby/internal/iterator.h" /* rb_block_given_p */ +#include "ruby/internal/symbol.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * This is the type of functions that rb_enumeratorize_with_size() expects. In + * theory an enumerator can have indefinite number of elements, but in practice + * it often is the case we can compute the size of an enumerator beforehand. + * If your enumerator has such property, supply a function that calculates such + * values. + * + * @param[in] recv The original receiver of the enumerator. + * @param[in] argv Arguments passed to `Object#enum_for` etc. + * @param[in] eobj The enumerator object. + * @return The size of `eobj`, in ::rb_cNumeric, or ::RUBY_Qnil if the size + * is not known until we actually iterate. + */ +typedef VALUE rb_enumerator_size_func(VALUE recv, VALUE argv, VALUE eobj); + +/** + * Decomposed `Enumerator::ArithmeicSequence`. This is a subclass of + * ::rb_cEnumerator, which represents a sequence of numbers with common + * difference. Internal data structure of the class is opaque to users, but + * you can obtain a decomposed one using rb_arithmetic_sequence_extract(). + */ +typedef struct { + VALUE begin; /**< "Left" or "lowest" endpoint of the sequence. */ + VALUE end; /**< "Right" or "highest" endpoint of the sequence.*/ + VALUE step; /**< Step between a sequence. */ + int exclude_end; /**< Whether the endpoint is open or closed. */ +} rb_arithmetic_sequence_components_t; + +/* enumerator.c */ + +/** + * Constructs an enumerator. This roughly resembles `Object#enum_for`. + * + * @param[in] recv A receiver of `meth`. + * @param[in] meth Method ID in a symbol object. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to `meth`. + * @exception rb_eTypeError `meth` is not an instance of ::rb_cSymbol. + * @return A new instance of ::rb_cEnumerator which, when yielded, + * enumerates by calling `meth` on `recv` with `argv`. + */ +VALUE rb_enumeratorize(VALUE recv, VALUE meth, int argc, const VALUE *argv); + +/** + * Identical to rb_enumeratorize(), except you can additionally specify the + * size function of return value. + * + * @param[in] recv A receiver of `meth`. + * @param[in] meth Method ID in a symbol object. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to `meth`. + * @param[in] func Size calculator. + * @exception rb_eTypeError `meth` is not an instance of ::rb_cSymbol. + * @return A new instance of ::rb_cEnumerator which, when yielded, + * enumerates by calling `meth` on `recv` with `argv`. + * @note `func` can be zero, which means the size is unknown. + */ +VALUE rb_enumeratorize_with_size(VALUE recv, VALUE meth, int argc, const VALUE *argv, rb_enumerator_size_func *func); + +/** + * Identical to rb_enumeratorize_with_func(), except you can specify how to + * handle the last element of the given array. + * + * @param[in] recv A receiver of `meth`. + * @param[in] meth Method ID in a symbol object. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to `meth`. + * @param[in] func Size calculator. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eTypeError `meth` is not an instance of ::rb_cSymbol. + * @return A new instance of ::rb_cEnumerator which, when yielded, + * enumerates by calling `meth` on `recv` with `argv`. + * @note `func` can be zero, which means the size is unknown. + */ +VALUE rb_enumeratorize_with_size_kw(VALUE recv, VALUE meth, int argc, const VALUE *argv, rb_enumerator_size_func *func, int kw_splat); + +RBIMPL_ATTR_NONNULL(()) +/** + * Extracts components of the passed arithmetic sequence. This can be seen as + * an extended version of rb_range_values(). + * + * @param[in] as Target instance of `Enumerator::ArithmericSequence`. + * @param[out] buf Decomposed results buffer. + * @return 0 `as` is not `Enumerator::ArithmericSequence`. + * @return 1 Success. + * @post `buf` is filled. + */ +int rb_arithmetic_sequence_extract(VALUE as, rb_arithmetic_sequence_components_t *buf); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_range_beg_len(), except it takes an instance of + * `Enumerator::ArithmericSequence`. + * + * @param[in] as An `Enumerator::ArithmericSequence` instance. + * @param[out] begp Return value buffer. + * @param[out] lenp Return value buffer. + * @param[out] stepp Return value buffer. + * @param[in] len Updated length. + * @param[in] err In case `len` is out of range... + * - `0`: returns ::RUBY_Qnil. + * - `1`: raises ::rb_eRangeError. + * - `2`: `beg` and `len` expanded accordingly. + * @exception rb_eRangeError `as` cannot fit into `long`. + * @retval RUBY_Qfalse `as` is not `Enumerator::ArithmericSequence`. + * @retval RUBY_Qnil `len` is out of `as` but `err` is zero. + * @retval RUBY_Qtrue Otherwise. + * @post `beg` is the (possibly updated) left endpoint. + * @post `len` is the (possibly updated) length of the range. + * + * @internal + * + * Currently no 3rd party applications of this function is found. But that can + * be because this function is relatively new. + */ +VALUE rb_arithmetic_sequence_beg_len_step(VALUE as, long *begp, long *lenp, long *stepp, long len, int err); + +RBIMPL_SYMBOL_EXPORT_END() + +/** @cond INTERNAL_MACRO */ +#ifndef RUBY_EXPORT +# define rb_enumeratorize_with_size(obj, id, argc, argv, size_fn) \ + rb_enumeratorize_with_size(obj, id, argc, argv, (rb_enumerator_size_func *)(size_fn)) +# define rb_enumeratorize_with_size_kw(obj, id, argc, argv, size_fn, kw_splat) \ + rb_enumeratorize_with_size_kw(obj, id, argc, argv, (rb_enumerator_size_func *)(size_fn), kw_splat) +#endif +/** @endcond */ + +/** + * This is an implementation detail of #RETURN_SIZED_ENUMERATOR(). You could + * use it directly, but can hardly be handy. + * + * @param[in] obj A receiver. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to the current method. + * @param[in] size_fn Size calculator. + * @return A new instance of ::rb_cEnumerator which, when yielded, + * enumerates by calling the current method on `recv` with `argv`. + */ +#define SIZED_ENUMERATOR(obj, argc, argv, size_fn) \ + rb_enumeratorize_with_size((obj), ID2SYM(rb_frame_this_func()), \ + (argc), (argv), (size_fn)) + +/** + * This is an implementation detail of #RETURN_SIZED_ENUMERATOR_KW(). You + * could use it directly, but can hardly be handy. + * + * @param[in] obj A receiver. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to the current method. + * @param[in] size_fn Size calculator. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @return A new instance of ::rb_cEnumerator which, when yielded, + * enumerates by calling the current method on `recv` with `argv`. + */ +#define SIZED_ENUMERATOR_KW(obj, argc, argv, size_fn, kw_splat) \ + rb_enumeratorize_with_size_kw((obj), ID2SYM(rb_frame_this_func()), \ + (argc), (argv), (size_fn), (kw_splat)) + +/** + * This roughly resembles `return enum_for(__callee__) unless block_given?`. + * + * @param[in] obj A receiver. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to the current method. + * @param[in] size_fn Size calculator. + * @note This macro may return inside. + */ +#define RETURN_SIZED_ENUMERATOR(obj, argc, argv, size_fn) do { \ + if (!rb_block_given_p()) \ + return SIZED_ENUMERATOR(obj, argc, argv, size_fn); \ + } while (0) + + +/** + * Identical to #RETURN_SIZED_ENUMERATOR(), except you can specify how to + * handle the last element of the given array. + * + * @param[in] obj A receiver. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to the current method. + * @param[in] size_fn Size calculator. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @note This macro may return inside. + */ +#define RETURN_SIZED_ENUMERATOR_KW(obj, argc, argv, size_fn, kw_splat) do { \ + if (!rb_block_given_p()) \ + return SIZED_ENUMERATOR_KW(obj, argc, argv, size_fn, kw_splat); \ + } while (0) + +/** + * Identical to #RETURN_SIZED_ENUMERATOR(), except its size is unknown. + * + * @param[in] obj A receiver. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to the current method. + * @note This macro may return inside. + */ +#define RETURN_ENUMERATOR(obj, argc, argv) \ + RETURN_SIZED_ENUMERATOR(obj, argc, argv, 0) + +/** + * Identical to #RETURN_SIZED_ENUMERATOR_KW(), except its size is unknown. It + * can also be seen as a routine identical to #RETURN_ENUMERATOR(), except you + * can specify how to handle the last element of the given array. + * + * @param[in] obj A receiver. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to the current method. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @note This macro may return inside. + */ +#define RETURN_ENUMERATOR_KW(obj, argc, argv, kw_splat) \ + RETURN_SIZED_ENUMERATOR_KW(obj, argc, argv, 0, kw_splat) + +#endif /* RBIMPL_INTERN_ENUMERATOR_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/error.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/error.h new file mode 100644 index 0000000..9c153cb --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/error.h @@ -0,0 +1,287 @@ +#ifndef RBIMPL_INTERN_ERROR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_ERROR_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_eException. + */ +#include "ruby/internal/attr/format.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/fl_type.h" +#include "ruby/backward/2/assume.h" + +/** + * This macro is used in conjunction with rb_check_arity(). If you pass it to + * the function's last (max) argument, that means the function does not check + * upper limit. + */ +#define UNLIMITED_ARGUMENTS (-1) + +#define rb_exc_new2 rb_exc_new_cstr /**< @old{rb_exc_new_cstr} */ +#define rb_exc_new3 rb_exc_new_str /**< @old{rb_exc_new_str} */ + +/** @cond INTERNAL_MACRO */ +#define rb_check_arity rb_check_arity +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* error.c */ + +/** + * Creates an instance of the passed exception class. + * + * @param[in] etype A subclass of ::rb_eException. + * @param[in] ptr Buffer contains error message. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eTypeError `etype` is not a class. + * @exception rb_eArgError `len` is negative. + * @return An instance of `etype`. + * @pre At least `len` bytes of continuous memory region shall be + * accessible via `ptr`. + * + * @internal + * + * This function works for non-exception classes as well, as long as they take + * one string argument. + */ +VALUE rb_exc_new(VALUE etype, const char *ptr, long len); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_exc_new(), except it assumes the passed pointer is a pointer + * to a C string. + * + * @param[in] etype A subclass of ::rb_eException. + * @param[in] str A C string (becomes an error message). + * @exception rb_eTypeError `etype` is not a class. + * @return An instance of `etype`. + */ +VALUE rb_exc_new_cstr(VALUE etype, const char *str); + +/** + * Identical to rb_exc_new_cstr(), except it takes a Ruby's string instead of + * C's. + * + * @param[in] etype A subclass of ::rb_eException. + * @param[in] str An instance of ::rb_cString. + * @exception rb_eTypeError `etype` is not a class. + * @return An instance of `etype`. + */ +VALUE rb_exc_new_str(VALUE etype, VALUE str); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((1)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2) +/** + * Raises an instance of ::rb_eLoadError. + * + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * @exception rb_eLoadError Always raises this. + * @note It never returns. + * + * @internal + * + * Who needs this? Except ruby itself? + */ +void rb_loaderror(const char *fmt, ...); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) +/** + * Identical to rb_loaderror(), except it additionally takes which file is + * unable to load. The path can be obtained later using `LoadError#path` of + * the raising exception. + * + * @param[in] path What failed. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * @exception rb_eLoadError Always raises this. + * @note It never returns. + */ +void rb_loaderror_with_path(VALUE path, const char *fmt, ...); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) +/** + * Raises an instance of ::rb_eNameError. The name can be obtained later using + * `NameError#name` of the raising exception. + * + * @param[in] name What failed. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * @exception rb_eNameError Always raises this. + * @note It never returns. + */ +void rb_name_error(ID name, const char *fmt, ...); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) +/** + * Identical to rb_name_error(), except it takes a ::VALUE instead of ::ID. + * + * @param[in] name What failed. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * @exception rb_eNameError Always raises this. + * @note It never returns. + */ +void rb_name_error_str(VALUE name, const char *fmt, ...); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) +/** + * Raises an instance of ::rb_eFrozenError. The object can be obtained later + * using `FrozenError#receiver` of the raising exception. + * + * @param[in] recv What is frozen. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * @exception rb_eFrozenError Always raises this. + * @note It never returns. + * + * @internal + * + * Note however, that it is often not possible to inspect a frozen object, + * because the inspection itself could be forbidden by the frozen-ness. + */ +void rb_frozen_error_raise(VALUE recv, const char *fmt, ...); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL(()) +/** + * Honestly I don't understand the name, but it raises an instance of + * ::rb_eArgError. + * + * @param[in] str A message. + * @param[in] type Another message. + * @exception rb_eArgError Always raises this. + * @note It never returns. + */ +void rb_invalid_str(const char *str, const char *type); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_frozen_error_raise(), except its raising exception has a + * message like "can't modify frozen /what/". + * + * @param[in] what What was frozen. + * @exception rb_eFrozenError Always raises this. + * @note It never returns. + */ +void rb_error_frozen(const char *what); + +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_error_frozen(), except it takes arbitrary Ruby object + * instead of C's string. + * + * @param[in] what What was frozen. + * @exception rb_eFrozenError Always raises this. + * @note It never returns. + */ +void rb_error_frozen_object(VALUE what); + +/** + * Queries if the passed object is frozen. + * + * @param[in] obj Target object to test frozen-ness. + * @exception rb_eFrozenError It is frozen. + * @post Upon successful return it is guaranteed _not_ frozen. + */ +void rb_check_frozen(VALUE obj); + +/** + * Ensures that the passed object can be `initialize_copy` relationship. When + * you implement your own one you would better call this at the right beginning + * of your implementation. + * + * @param[in] obj Destination object. + * @param[in] orig Source object. + * @exception rb_eFrozenError `obj` is frozen. + * @post Upon successful return obj is guaranteed safe to copy orig. + */ +void rb_check_copyable(VALUE obj, VALUE orig); + +RBIMPL_ATTR_NORETURN() +/** + * @private + * + * This is an implementation detail of rb_scan_args(). You don't have to + * bother. + * + * @pre `argc` is out of range of `min`..`max`, both inclusive. + * @param[in] argc Arbitrary integer. + * @param[in] min Minimum allowed `argc`. + * @param[in] max Maximum allowed `argc`. + * @exception rb_eArgError Always. + */ +MJIT_STATIC void rb_error_arity(int argc, int min, int max); + +RBIMPL_SYMBOL_EXPORT_END() + +/** + * @deprecated + * + * Does anyone use this? Remain not deleted for compatibility. + */ +#define rb_check_frozen_internal(obj) do { \ + VALUE frozen_obj = (obj); \ + if (RB_UNLIKELY(RB_OBJ_FROZEN(frozen_obj))) { \ + rb_error_frozen_object(frozen_obj); \ + } \ + } while (0) + +/** @alias{rb_check_frozen} */ +static inline void +rb_check_frozen_inline(VALUE obj) +{ + if (RB_UNLIKELY(RB_OBJ_FROZEN(obj))) { + rb_error_frozen_object(obj); + } +} + +/** @alias{rb_check_frozen} */ +#define rb_check_frozen rb_check_frozen_inline + +/** + * Ensures that the passed integer is in the passed range. When you can use + * rb_scan_args() that is preferred over this one (powerful, descriptive). But + * it can have its own application area. + * + * @param[in] argc Arbitrary integer. + * @param[in] min Minimum allowed `argv`. + * @param[in] max Maximum allowed `argv`, or `UNLIMITED_ARGUMENTS`. + * @exception rb_eArgError `argc` out of range. + * @return The passed `argc`. + * @post Upon successful return `argc` is in range of `min`..`max`, both + * inclusive. + */ +static inline int +rb_check_arity(int argc, int min, int max) +{ + if ((argc < min) || (max != UNLIMITED_ARGUMENTS && argc > max)) + rb_error_arity(argc, min, max); + return argc; +} + +#endif /* RBIMPL_INTERN_ERROR_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/eval.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/eval.h new file mode 100644 index 0000000..2230f7a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/eval.h @@ -0,0 +1,222 @@ +#ifndef RBIMPL_INTERN_EVAL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_EVAL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Pre-1.9 era evaluator APIs (now considered miscellaneous). + */ +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* eval.c */ +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_raise(), except it raises the passed exception instance as- + * is instead of creating new one. + * + * @param[in] exc An instance of a subclass of ::rb_eException. + * @exception exc What is passed. + * @exception rb_eTypeError `exc` is not an exception. + * @note It never returns. + * + * @internal + * + * Wellll actually, it can take more than what is described above. This + * function tries to call `exception` method of the passed object. If that + * function returns an exception object that is used instead. + */ +void rb_exc_raise(VALUE exc); + +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_fatal(), except it raises the passed exception instance as- + * is instead of creating new one. + * + * @param[in] exc An instance of a subclass of ::rb_eException. + * @exception exc What is passed. + * @note It never returns. + * + * @internal + * + * You know what...? Using this API you can make arbitrary exceptions, like + * `RuntimeError`, that doesn't interface with `rescue` clause. This is very + * confusing. + */ +void rb_exc_fatal(VALUE exc); + +/* process.c */ + +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_exit(), except how arguments are passed. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Contains at most one of the following: + * - ::RUBY_Qtrue - means `EXIT_SUCCESS`. + * - ::RUBY_Qfalse - means `EXIT_FAILURE`. + * - Numerical value - takes that value. + * @exception rb_eArgError Wrong `argc`. + * @exception rb_eSystemExit Exception representing the exit status. + * @note It never returns. + */ +VALUE rb_f_exit(int argc, const VALUE *argv); + +RBIMPL_ATTR_NORETURN() +/** + * This is similar to rb_f_exit(). In fact on some situation it internally + * calls rb_exit(). But can be very esoteric on occasions. + * + * It takes up to one argument. If an argument is passed, it tries to display + * that. Otherwise if there is `$!`, displays that exception instead. It + * finally raise ::rb_eSystemExit in both cases. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Contains at most one string-ish object. + * @exception rb_eArgError Wrong `argc`. + * @exception rb_eTypeError No conversion from `argv[0]` to String. + * @exception rb_eSystemExit Exception representing `EXIT_FAILURE`. + * @note It never returns. + */ +VALUE rb_f_abort(int argc, const VALUE *argv); + +/* eval.c*/ + +RBIMPL_ATTR_NORETURN() +/** + * Raises an instance of ::rb_eInterrupt. + * + * @exception rb_eInterrupt Always raises this exception. + * @note It never returns. + */ +void rb_interrupt(void); + +/** + * Queries the name of the Ruby level method that is calling this function. + * The "name" in this context is the one assigned to the function for the first + * time (note that methods can have multiple names via aliases). + * + * @retval 0 There is no method (e.g. toplevel context). + * @retval otherwise The name of the current method. + */ +ID rb_frame_this_func(void); + +RBIMPL_ATTR_NORETURN() +/** + * This function is to re-throw global escapes. Such global escapes include + * exceptions, `throw`, `break`, for example. + * + * It makes sense only when used in conjunction with "protect" series APIs + * e.g. rb_protect(), rb_load_protect(), rb_eval_string_protect(), etc. In + * case these functions experience global escapes, they fill their opaque + * `state` return buffer. You can ignore such escapes. But if you decide + * otherwise, you have to somehow escape globally again. This function is used + * for that purpose. + * + * @param[in] state Opaque state of execution. + * @note It never returns. + * + * @internal + * + * Though not a part of our public API, `state` is in fact an enum + * ruby_tag_type. You can see the potential values by looking at vm_core.h. + */ +void rb_jump_tag(int state); + +/** + * Calls `initialize` method of the passed object with the passed arguments. + * It also forwards the implicitly passed block to the method. + * + * @param[in] obj Receiver object. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Passed as-is to `obj.initialize`. + * @exception rb_eException Any exceptions happen inside. + */ +void rb_obj_call_init(VALUE obj, int argc, const VALUE *argv); + +/** + * Identical to rb_obj_call_init(), except you can specify how to handle the + * last element of the given array. + * + * @param[in] obj Receiver object. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Passed as-is to `obj.initialize`. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eNoMethodError No such method. + * @exception rb_eException Any exceptions happen inside. + */ +void rb_obj_call_init_kw(VALUE, int, const VALUE*, int); + +/** + * Identical to rb_frame_this_func(), except it returns the named used to call + * the method. + * + * @retval 0 There is no method (e.g. toplevel context). + * @retval otherwise The name of the current method. + */ +ID rb_frame_callee(void); + +/** + * Constructs an exception object from the list of arguments, in a manner + * similar to Ruby's `raise`. This function can take: + * + * - No arguments at all, i.e. `argc == 0`. This is not a failure. It + * returns ::RUBY_Qnil then. + * + * - An object, which is an instance of ::rb_cString. In this case an + * instance of ::rb_eRuntimeError whose message is the passed string is + * created then returned. + * + * - An object, which responds to `exception` method, and optionally its + * argument, and optionally its backtrace. For example instances of + * subclasses of ::rb_eException have this method. What is returned from + * the method is returned. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv 0 up to 3 objects. + * @exception rb_eArgError Wrong `argc`. + * @exception rb_eTypeError `argv[0].exception` returned non-exception. + * @return An instance of a subclass of ::rb_eException. + * + * @internal + * + * Historically this was _the_ way `raise` converted its arguments to an + * exception. However they diverged. + */ +VALUE rb_make_exception(int argc, const VALUE *argv); + +/* eval_jump.c */ + +/** + * Registers a function that shall run on process exit. Registered functions + * run in reverse-chronological order, mixed with syntactic `END` block and + * `Kernel#at_exit`. + * + * @param[in] func Function to run at process exit. + * @param[in] arg Passed as-is to `func`. + */ +void rb_set_end_proc(void (*func)(VALUE arg), VALUE arg); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_EVAL_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/file.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/file.h new file mode 100644 index 0000000..79820fd --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/file.h @@ -0,0 +1,213 @@ +#ifndef RBIMPL_INTERN_FILE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_FILE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cFile. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* file.c */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_file_expand_path(), except how arguments are passed. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Filename, and base directory, in that order. + * @exception rb_eArgError Wrong `argc`. + * @exception rb_eTypeError Non-string passed. + * @exception rb_eEncCompatError No conversion from arguments to a path. + * @return Expanded path. + * + * @internal + * + * It seems nobody actually uses this function right now. Maybe delete it? + */ +VALUE rb_file_s_expand_path(int argc, const VALUE *argv); + +/** + * Identical to rb_file_absolute_path(), except it additionally understands + * `~`. If a given pathname starts with `~someone/`, that part expands to the + * user's home directory (or that of current process' owner's in case of `~/`). + * + * @param[in] fname Relative file name. + * @param[in] dname Lookup base directory name, or in case + * ::RUBY_Qnil is passed the process' current + * working directory is assumed. + * @exception rb_eArgError Home directory is not absolute. + * @exception rb_eTypeError Non-string passed. + * @exception rb_eEncCompatError No conversion from arguments to a path. + * @return Expanded path. + */ +VALUE rb_file_expand_path(VALUE fname, VALUE dname); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_file_absolute_path(), except how arguments are passed. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Filename, and base directory, in that order. + * @exception rb_eArgError Wrong `argc`. + * @exception rb_eTypeError Non-string passed. + * @exception rb_eEncCompatError No conversion from arguments to a path. + * @return Expanded path. + * + * @internal + * + * It seems nobody actually uses this function right now. Maybe delete it? + */ +VALUE rb_file_s_absolute_path(int argc, const VALUE *argv); + +/** + * Maps a relative path to its absolute representation. Relative paths are + * referenced from the passed directory name, or from the process' current + * working directory in case ::RUBY_Qnil is passed. + * + * @param[in] fname Relative file name. + * @param[in] dname Lookup base directory name, or in case + * ::RUBY_Qnil is passed the process' current + * working directory is assumed. + * @exception rb_eArgError Strings contain NUL bytes. + * @exception rb_eTypeError Non-string passed. + * @exception rb_eEncCompatError No conversion from arguments to a path. + * @return Expanded path. + */ +VALUE rb_file_absolute_path(VALUE fname, VALUE dname); + +/** + * Strips a file path's last component (and trailing separators if any). This + * function is relatively simple on POSIX environments; just splits the input + * with `/`, strips the last one, if something remains joins them again, + * otherwise the return value is `"."`. However when it comes to Windows this + * function is quite very much complicated. We have to take UNC etc. into + * account. So for instance `"C:foo"`'s dirname is `"C:."`. + * + * @param[in] fname File name to strip. + * @exception rb_eTypeError `fname` is not a String. + * @exception rb_eArgError `fname` contains NUL bytes. + * @exception rb_eEncCompatError `fname`'s encoding is not path-compat. + * @return A dirname of `fname`. + * @note This is a "pure" operation; it computes the return value solely + * from the passed object and never does any file IO. + */ +VALUE rb_file_dirname(VALUE fname); + +RBIMPL_ATTR_NONNULL(()) +/** + * Resolves a feature's path. This function takes for instance `"json"` and + * `[".so", ".rb"]`, and iterates over the `$LOAD_PATH` to see if there is + * either `json.so` or `json.rb` in the directory. + * + * This is not what everything `require` does, but at least `require` is built + * on top of it. + * + * @param[in,out] feature File to search, and return buffer. + * @param[in] exts List of file extensions. + * @exception rb_eTypeError `feature` is not a String. + * @exception rb_eArgError `feature` contains NUL bytes. + * @exception rb_eEncCompatError `feature`'s encoding is not path-compat. + * @retval 0 Not found + * @retval otherwise Found index in `ext`, plus one. + * @post `*feature` is a resolved path. + */ +int rb_find_file_ext(VALUE *feature, const char *const *exts); + +/** + * Identical to rb_find_file_ext(), except it takes a feature name and is + * extension at once, e.g. `"json.rb"`. This difference is much like how + * `require` and `load` are different. + * + * @param[in] path A path relative to `$LOAD_PATH`. + * @exception rb_eTypeError `path` is not a String. + * @exception rb_eArgError `path` contains NUL bytes. + * @exception rb_eEncCompatError `path`'s encoding is not path-compat. + * @return Expanded path. + */ +VALUE rb_find_file(VALUE path); + +/** + * Queries if the given path is either a directory, or a symlink that + * (potentially recursively) points to such thing. + * + * @param[in] _ Ignored (why...?) + * @param[in] path String, or IO. In case of IO it issues + * `fstat(2)` instead of `stat(2)`. + * @exception rb_eFrozenError `path` is a frozen IO (why...?) + * @exception rb_eTypeError `path` is neither String nor IO. + * @exception rb_eArgError `path` contains NUL bytes. + * @exception rb_eEncCompatError `path`'s encoding is not path-compat. + * @retval RUBY_Qtrue `path` is a directory. + * @retval RUBY_Qfalse Otherwise. + */ +VALUE rb_file_directory_p(VALUE _, VALUE path); + +/** + * Converts a string into an "OS Path" encoding, if any. In most operating + * systems there are no such things like per-OS default encoding of filename. + * For them this function is no-op. However most notably on MacOS, pathnames + * are UTF-8 encoded. It converts the given string into such encoding. + * + * @param[in] path An instance of ::rb_cString. + * @exception rb_eEncCompatError `path`'s encoding is not path-compat. + * @return `path`'s contents converted to the OS' path encoding. + */ +VALUE rb_str_encode_ospath(VALUE path); + +RBIMPL_ATTR_NONNULL(()) +RBIMPL_ATTR_PURE() +/** + * Queries if the given path is an absolute path. On POSIX environments it is + * as easy as `path[0] == '/'`. However on Windows, drive letters and UNC + * paths are also taken into account. + * + * @param[in] path A possibly relative path string. + * @retval 1 `path` is absolute. + * @retval 0 `path` is relative. + */ +int rb_is_absolute_path(const char *path); + +/** + * Queries the file size of the given file. Because this function calls + * `fstat(2)` internally, it is a failure to pass a closed file to this + * function. + * + * This function flushes the passed file's buffer if any. Can take time. + * + * @param[in] file A file object. + * @exception rb_eFrozenError `file` is frozen. + * @exception rb_eIOError `file` is closed. + * @exception rb_eSystemCallError Permission denied etc. + * @exception rb_eNoMethodError The given non-file object doesn't respond + * to `#size`. + * @return The size of the passed file. + * @note Passing a non-regular file such as a UNIX domain socket to this + * function is not a failure. But the return value is + * unpredictable. POSIX's `` states that "the use of + * this field is unspecified" then. + */ +rb_off_t rb_file_size(VALUE file); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_FILE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/gc.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/gc.h new file mode 100644 index 0000000..2ee1d25 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/gc.h @@ -0,0 +1,392 @@ +#ifndef RBIMPL_INTERN_GC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_GC_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_mGC. + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include /* size_t */ +#endif + +#ifdef HAVE_SYS_TYPES_H +# include /* ssize_t */ +#endif + +#include "ruby/internal/attr/cold.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* gc.c */ + +RBIMPL_ATTR_COLD() +RBIMPL_ATTR_NORETURN() +/** + * Triggers out-of-memory error. If possible it raises ::rb_eNoMemError. But + * because we are running out of memory that is not always doable. This + * function tries hard to show something, but ultimately can die silently. + * + * @exception rb_eNoMemError Raises it if possible. + */ +void rb_memerror(void); + +RBIMPL_ATTR_PURE() +/** + * Queries if the GC is busy. + * + * @retval 0 It isn't. + * @retval 1 It is. + */ +int rb_during_gc(void); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Marks objects between the two pointers. This is one of the GC utility + * functions that you can call when you design your own + * ::rb_data_type_struct::dmark. + * + * @pre Continuous memory region from `start` to `end` shall be fully + * addressable. + * @param[out] start Pointer to an array of objects. + * @param[out] end Pointer that terminates the array of objects. + * @post Objects from `start` (included) to `end` (excluded) are marked. + * + * @internal + * + * `end` can be NULL... But that just results in no-op. + */ +void rb_gc_mark_locations(const VALUE *start, const VALUE *end); + +/** + * Identical to rb_mark_hash(), except it marks only values of the table and + * leave their associated keys unmarked. This is one of the GC utility + * functions that you can call when you design your own + * ::rb_data_type_struct::dmark. + * + * @warning Of course it can break GC. Leave it unused if unsure. + * @param[in] tbl A table to mark. + * @post Values stored in `tbl` are marked. + */ +void rb_mark_tbl(struct st_table *tbl); + +/** + * Identical to rb_mark_tbl(), except it marks objects using + * rb_gc_mark_movable(). This is one of the GC utility functions that you can + * call when you design your own ::rb_data_type_struct::dmark. + * + * @warning Of course it can break GC. Leave it unused if unsure. + * @param[in] tbl A table to mark. + * @post Values stored in `tbl` are marked. + */ +void rb_mark_tbl_no_pin(struct st_table *tbl); + +/** + * Identical to rb_mark_hash(), except it marks only keys of the table and + * leave their associated values unmarked. This is one of the GC utility + * functions that you can call when you design your own + * ::rb_data_type_struct::dmark. + * + * @warning Of course it can break GC. Leave it unused if unsure. + * @param[in] tbl A table to mark. + * @post Keys stored in `tbl` are marked. + */ +void rb_mark_set(struct st_table *tbl); + +/** + * Marks keys and values associated inside of the given table. This is one of + * the GC utility functions that you can call when you design your own + * ::rb_data_type_struct::dmark. + * + * @param[in] tbl A table to mark. + * @post Objects stored in `tbl` are marked. + */ +void rb_mark_hash(struct st_table *tbl); + +/** + * Updates references inside of tables. After you marked values using + * rb_mark_tbl_no_pin(), the objects inside of the table could of course be + * moved. This function is to fixup those references. You can call this from + * your ::rb_data_type_struct::dcompact. + * + * @param[out] ptr A table that potentially includes moved references. + * @post Moved references, if any, are corrected. + */ +void rb_gc_update_tbl_refs(st_table *ptr); + +/** + * Identical to rb_gc_mark(), except it allows the passed value be a + * non-object. For instance pointers to different type of memory regions are + * allowed here. Such values are silently ignored. This is one of the GC + * utility functions that you can call when you design your own + * ::rb_data_type_struct::dmark. + * + * @param[out] obj A possible object. + * @post `obj` is marked, if possible. + */ +void rb_gc_mark_maybe(VALUE obj); + +/** + * Marks an object. This is one of the GC utility functions that you can call + * when you design your own ::rb_data_type_struct::dmark. + * + * @param[out] obj Arbitrary Ruby object. + * @post `obj` is marked. + */ +void rb_gc_mark(VALUE obj); + +/** + * Maybe this is the only function provided for C extensions to control the + * pinning of objects, so let us describe it in detail. These days Ruby's GC + * is copying. As far as an object's physical address is guaranteed unused, it + * can move around the object space. Our GC engine rearranges these objects + * after it reclaims unreachable objects from our object space, so that the + * space is compact (improves memory locality). This is called the + * "compaction" phase, and works well most of the time... as far as there are + * no C extensions. C extensions complicate the scenario because Ruby core + * cannot detect any use of the physical address of an object inside of C + * functions. In order to prevent memory corruptions, objects observable from + * C extensions are "pinned"; they stick to where they are born until they die, + * just in case any C extensions touch their raw pointers. This variant of + * scheme is called "Mostly-Copying" garbage collector. Authors of C + * extensions, however, can extremely carefully write them to become + * compaction-aware. To do so avoid referring to a Ruby object from inside of + * your struct in the first place. But if that is not possible, use this + * function from your ::rb_data_type_struct::dmark then. This way objects + * marked using it are considered movable. If you chose this way you have to + * manually fix up locations of such moved pointers using rb_gc_location(). + * + * @see Bartlett, Joel F., "Compacting Garbage Collection with Ambiguous + * Roots", ACM SIGPLAN Lisp Pointers Volume 1 Issue 6 pp. 3-12, + * April-May-June, 1988. https://doi.org/10.1145/1317224.1317225 + * + * @param[in] obj Object that is movable. + * @post Values stored in `tbl` are marked. + */ +void rb_gc_mark_movable(VALUE obj); + +/** + * Finds a new "location" of an object. An object can be moved on compaction. + * This function projects its new abode, or just returns the passed object if + * not moved. This is one of the GC utility functions that you can call when + * you design your own ::rb_data_type_struct::dcompact. + * + * @param[in] obj An object, possibly already moved to somewhere else. + * @return An object, which holds the current contents of former `obj`. + */ +VALUE rb_gc_location(VALUE obj); + +/** + * Asserts that the passed object is no longer needed. Such objects are + * reclaimed sooner or later so this function is not mandatory. But sometimes + * you can know from your application knowledge that an object is surely dead + * at some point. Calling this as a hint can be a polite way. + * + * @param[out] obj Object, dead. + * @pre `obj` have never been passed to this function before. + * @post `obj` could be invalidated. + * @warning It is a failure to pass an object multiple times to this + * function. + * @deprecated This is now a no-op function. + */ +RBIMPL_ATTR_DEPRECATED(("this is now a no-op function")) +void rb_gc_force_recycle(VALUE obj); + +/** + * Triggers a GC process. This was the only GC entry point that we had at the + * beginning. Over time our GC evolved. Now what this function does is just a + * very simplified variation of the entire GC algorithms. A series of + * procedures kicked by this API is called a "full" GC. + * + * - It immediately scans the entire object space to sort the dead. + * - It immediately reclaims any single dead bodies to reuse later. + * + * It is worth noting that the procedures above do not include evaluations of + * finalisers. They run later. + * + * @internal + * + * Finalisers are deferred until we can handle interrupts. See + * `rb_postponed_job_flush` in vm_trace.c. + * + * Of course there are GC that are not "full". For instance this one and the + * GC which runs when we are running out of memory are different. See + * `gc_profile_record_flag` defined in gc.c for the kinds of GC. + * + * In spite of the name this is not what everything that a GC can trigger. As + * of writing it seems this function does not trigger compaction. But this + * might change in future. + */ +void rb_gc(void); + +/** + * Copy&paste an object's finaliser to another. This is one of the GC utility + * functions that you can call when you design your own `initialize_copy`, + * `initialize_dup`, `initialize_clone`. + * + * @param[out] dst Destination object. + * @param[in] src Source object. + * @post `dst` and `src` share the same finaliser. + * + * @internal + * + * But isn't it easier for you to call super, and let `Object#initialize_copy` + * call this function instead? + */ +void rb_gc_copy_finalizer(VALUE dst, VALUE src); + +/** + * (Re-) enables GC. This makes sense only after you called rb_gc_disable(). + * + * @retval RUBY_Qtrue GC was disabled before. + * @retval RUBY_Qfalse GC was enabled before. + * @post GC is enabled. + * + * @internal + * + * This is one of such exceptional functions that does not raise both Ruby + * exceptions and C++ exceptions. + */ +VALUE rb_gc_enable(void); + +/** + * Disables GC. This prevents automatic GC runs when the process is running + * out of memory. Such situations shall result in rb_memerror(). However this + * does not prevent users from manually invoking rb_gc(). That should work. + * People abused this by disabling GC at the beginning of an event loop, + * process events without GC overheads, then manually force reclaiming garbage + * at the bottom of the loop. However because our GC is now much smarter than + * just calling rb_gc(), this technique is proven to be sub-optimal these days. + * It is believed that there is currently practically no needs of this + * function. + * + * @retval RUBY_Qtrue GC was disabled before. + * @retval RUBY_Qfalse GC was enabled before. + * @post GC is disabled. + */ +VALUE rb_gc_disable(void); + +/** + * Identical to rb_gc(), except the return value. + * + * @return Always returns ::RUBY_Qnil. + */ +VALUE rb_gc_start(void); + +/** + * Assigns a finaliser for an object. Each objects can have objects (typically + * blocks) that run immediately after that object dies. They are called + * finalisers of an object. This function associates a finaliser object with a + * target object. + * + * @note Note that finalisers run _after_ the object they finalise dies. You + * cannot for instance call its methods. + * @note If your finaliser references the object it finalises that object + * loses any chance to become a garbage; effectively leaks memory until + * the end of the process. + * + * @param[in] obj Target to finalise. + * @param[in] block Something `call`able. + * @exception rb_eRuntimeError Somehow `obj` cannot have finalisers. + * @exception rb_eFrozenError `obj` is frozen. + * @exception rb_eArgError `block` doesn't respond to `call`. + * @return The passed `block`. + * @post `block` runs after `obj` dies. + */ +VALUE rb_define_finalizer(VALUE obj, VALUE block); + +/** + * Modifies the object so that it has no finalisers at all. This function is + * mainly provided for symmetry. No practical usages can be thought of. + * + * @param[out] obj Object to clear its finalisers. + * @exception rb_eFrozenError `obj` is frozen. + * @return The passed `obj`. + * @post `obj` has no finalisers. + * @note There is no way to undefine a specific part of many finalisers + * that `obj` could have. All you can do is to clear them all. + */ +VALUE rb_undefine_finalizer(VALUE obj); + +/** + * Identical to rb_gc_stat(), with "count" parameter. + * + * @return Lifetime total number of runs of GC. + */ +size_t rb_gc_count(void); + +/** + * Obtains various GC related profiles. The parameter can be either a Symbol + * or a Hash. If a Hash is passed, it is filled with everything currently + * available. If a Symbol is passed just that portion is returned. + * + * Possible variations of keys you can pass here change from version to + * version. You can get the list of known keys by passing an empty hash and + * let it be filled. + * + * @param[in,out] key_or_buf A Symbol, or a Hash. + * @exception rb_eTypeError Neither Symbol nor Hash. + * @exception rb_eFrozenError Frozen hash is passed. + * @return In case a Hash is passed it returns 0. Otherwise the + * profile value associated with the given key is returned. + * @post In case a Hash is passed it is filled with values. + */ +size_t rb_gc_stat(VALUE key_or_buf); + +/** + * Obtains various info regarding the most recent GC run. This includes for + * instance the reason of the GC. The parameter can be either a Symbol or a + * Hash. If a Hash is passed, it is filled with everything currently + * available. If a Symbol is passed just that portion is returned. + * + * Possible variations of keys you can pass here change from version to + * version. You can get the list of known keys by passing an empty hash and + * let it be filled. + * + * @param[in,out] key_or_buf A Symbol, or a Hash. + * @exception rb_eTypeError Neither Symbol nor Hash. + * @exception rb_eFrozenError Frozen hash is passed. + * @return In case a Hash is passed it returns that hash. Otherwise + * the profile value associated with the given key is returned. + * @post In case a Hash is passed it is filled with values. + */ +VALUE rb_gc_latest_gc_info(VALUE key_or_buf); + +/** + * Informs that there are external memory usages. Our GC runs when we are + * running out of memory. The amount of memory, however, can increase/decrease + * behind-the-scene. For instance DLLs can allocate memories using `mmap(2)` + * etc, which are opaque to us. Registering such external allocations using + * this function enables proper detection of how much memories an object used + * as a whole. That will trigger GCs more often than it would otherwise. You + * can also pass negative numbers here, to indicate that such external + * allocations are gone. + * + * @param[in] diff Amount of memory increased(+)/decreased(-). + */ +void rb_gc_adjust_memory_usage(ssize_t diff); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_GC_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/hash.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/hash.h new file mode 100644 index 0000000..af8dfd5 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/hash.h @@ -0,0 +1,320 @@ +#ifndef RBIMPL_INTERN_HASH_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_HASH_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cHash. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/st.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* hash.c */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_st_foreach(), except it raises exceptions when the callback + * function tampers the table during iterating over it. + * + * @param[in] st Table to iterate over. + * @param[in] func Callback function to apply. + * @param[in] arg Passed as-is to `func`. + * @exception rb_eRuntimeError `st` was tampered during iterating. + * + * @internal + * + * This is declared here because exceptions are Ruby level concept. + * + * This is in fact a very thin wrapper of rb_st_foreach_check(). + */ +void rb_st_foreach_safe(struct st_table *st, st_foreach_callback_func *func, st_data_t arg); + +/** @alias{rb_st_foreach_safe} */ +#define st_foreach_safe rb_st_foreach_safe + +/** + * Try converting an object to its hash representation using its `to_hash` + * method, if any. If there is no such thing, returns ::RUBY_Qnil. + * + * @param[in] obj Arbitrary ruby object to convert. + * @exception rb_eTypeError `obj.to_hash` returned something non-Hash. + * @retval RUBY_Qnil No conversion from `obj` to hash defined. + * @retval otherwise Converted hash representation of `obj`. + * @see rb_io_check_io + * @see rb_check_array_type + * @see rb_check_string_type + * + * @internal + * + * There is no rb_hash_to_hash() that analogous to rb_str_to_str(). + * Intentional or ...? + */ +VALUE rb_check_hash_type(VALUE obj); + +RBIMPL_ATTR_NONNULL(()) +/** + * Iterates over a hash. This basically does the same thing as + * rb_st_foreach(). But because the passed hash is a Ruby object, its keys and + * values are both Ruby objects. + * + * @param[in] hash An instance of ::rb_cHash to iterate over. + * @param[in] func Callback function to yield. + * @param[in] arg Passed as-is to `func`. + * @exception rb_eRuntimeError `hash` was tampered during iterating. + */ +void rb_hash_foreach(VALUE hash, int (*func)(VALUE key, VALUE val, VALUE arg), VALUE arg); + +/** + * Calculates a message authentication code of the passed object. The return + * value is a very small integer used as an index of a key of a table. In + * order to calculate the value this function calls `#hash` method of the + * passed object. Ruby provides you a default implementation. But if you + * implement your class in C, that default implementation cannot know the + * underlying data structure. You must implement your own `#hash` method then, + * which must return an integer of uniform distribution in a sufficiently + * instant manner. + * + * @param[in] obj Arbitrary Ruby object. + * @exception rb_eTypeError `obj.hash` returned something non-Integer. + * @return A small integer. + * @note `#hash` can return very big integers, but they get truncated. + */ +VALUE rb_hash(VALUE obj); + +/** + * Creates a new, empty hash object. + * + * @return An allocated new instance of ::rb_cHash. + */ +VALUE rb_hash_new(void); + +/** + * Identical to rb_hash_new(), except it additionally specifies how many keys + * it is expected to contain. This way you can create a hash that is large enough + * for your need. For large hashes it means it won't need to be reallocated and + * rehashed as much, improving performance. + * + * @param[in] capa Designed capacity of the hash. + * @return An empty Hash, whose capacity is `capa`. + */ +VALUE rb_hash_new_capa(long capa); + +/** + * Duplicates a hash. + * + * @param[in] hash An instance of ::rb_cHash. + * @return An allocated new instance of ::rb_cHash, whose contents are + * a verbatim copy of from `hash`. + */ +VALUE rb_hash_dup(VALUE hash); + +/** @alias{rb_obj_freeze} */ +VALUE rb_hash_freeze(VALUE obj); + +/** + * Queries the given key in the given hash table. If there is the key in the + * hash, returns the value associated with the key. Otherwise it returns the + * "default" value (defined per hash table). + * + * @param[in] hash Hash table to look into. + * @param[in] key Hash key to look for. + * @return Either the value associated with the key, or the default one if + * absent. + */ +VALUE rb_hash_aref(VALUE hash, VALUE key); + +/** + * Identical to rb_hash_aref(), except it always returns ::RUBY_Qnil for + * misshits. + * + * @param[in] hash Hash table to look into. + * @param[in] key Hash key to look for. + * @return Either the value associated with the key, or ::RUBY_Qnil if + * absent. + * @note A hash can store ::RUBY_Qnil as an ordinary value. You cannot + * distinguish whether the key is missing, or just its associated + * value happens to be ::RUBY_Qnil, as far as you use this API. + */ +VALUE rb_hash_lookup(VALUE hash, VALUE key); + +/** + * Identical to rb_hash_lookup(), except you can specify what to return on + * misshits. This is much like 2-arguments version of `Hash#fetch`. + * + * ```CXX + * VALUE hash; + * VALUE key; + * VALUE tmp = rb_obj_alloc(rb_cObject); + * VALUE val = rb_hash_lookup2(hash, key, tmp); + * if (val == tmp) { + * printf("misshit"); + * } + * else { + * printf("hit"); + * } + * ``` + * + * @param[in] hash Hash table to look into. + * @param[in] key Hash key to look for. + * @param[in] def Default value. + * @retval def `hash` does not have `key`. + * @retval otherwise The value associated with `key`. + */ +VALUE rb_hash_lookup2(VALUE hash, VALUE key, VALUE def); + +/** + * Identical to rb_hash_lookup(), except it yields the (implicitly) passed + * block instead of returning ::RUBY_Qnil. + * + * @param[in] hash Hash table to look into. + * @param[in] key Hash key to look for. + * @exception rb_eKeyError No block given. + * @return Either the value associated with the key, or what the block + * evaluates to if absent. + */ +VALUE rb_hash_fetch(VALUE hash, VALUE key); + +/** + * Inserts or replaces ("upsert"s) the objects into the given hash table. This + * basically associates the given value with the given key. On duplicate key + * this function updates its associated value with the given one. Otherwise it + * inserts the association at the end of the table. + * + * @param[out] hash Target hash table to modify. + * @param[in] key Arbitrary Ruby object. + * @param[in] val A value to be associated with `key`. + * @exception rb_eFrozenError `hash` is frozen. + * @return The passed `val` + * @post `val` is associated with `key` in `hash`. + */ +VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val); + +/** + * Swipes everything out of the passed hash table. + * + * @param[out] hash Target to clear. + * @exception rb_eFrozenError `hash`is frozen. + * @return The passed `hash` + * @post `hash` has no contents. + */ +VALUE rb_hash_clear(VALUE hash); + +/** + * Deletes each entry for which the block returns a truthy value. If there is + * no block given, it returns an enumerator that does the thing. + * + * @param[out] hash Target hash to modify. + * @exception rb_eFrozenError `hash` is frozen. + * @retval hash The hash is modified. + * @retval otherwise An instance of ::rb_cEnumerator that does it. + */ +VALUE rb_hash_delete_if(VALUE hash); + +/** + * Deletes the passed key from the passed hash table, if any. + * + * @param[out] hash Target hash to modify. + * @param[in] key Key to delete. + * @retval RUBY_Qnil `hash` has no such key as `key`. + * @retval otherwise What was associated with `key`. + * @post `hash` has no such key as `key`. + */ +VALUE rb_hash_delete(VALUE hash, VALUE key); + +/** + * Inserts a list of key-value pairs into a hash table at once. It is + * semantically identical to repeatedly calling rb_hash_aset(), but can be + * faster than that. + * + * @param[in] argc Length of `argv`, must be even. + * @param[in] argv A list of key, value, key, value, ... + * @param[out] hash Target hash table to modify. + * @post `hash` has contents from `argv`. + * @note `argv` is allowed to be NULL as long as `argc` is zero. + * + * @internal + * + * What happens for duplicated keys? Well it silently discards older ones to + * accept the newest (rightmost) one. This behaviour also mimics repeated call + * of rb_hash_aset(). + */ +void rb_hash_bulk_insert(long argc, const VALUE *argv, VALUE hash); + +/** + * Type of callback functions to pass to rb_hash_update_by(). + * + * @param[in] newkey A key of the table. + * @param[in] oldkey Value associated with `key` in hash1. + * @param[in] value Value associated with `key` in hash2. + * @return Either one of the passed values to take. + */ +typedef VALUE rb_hash_update_func(VALUE newkey, VALUE oldkey, VALUE value); + +/** + * Destructively merges two hash tables into one. It resolves key conflicts by + * calling the passed function and take its return value. + * + * @param[out] hash1 Target hash to be modified. + * @param[in] hash2 A hash to merge into `hash1`. + * @param[in] func Conflict reconciler. + * @exception rb_eFrozenError `hash1` is frozen. + * @exception rb_eRuntimeError `hash2` is updated instead. + * @return The passed `hash1`. + * @post Contents of `hash2` is merged into `hash1`. + * @note You can pass zero to `func`. This means values from `hash2` + * are always taken. + */ +VALUE rb_hash_update_by(VALUE hash1, VALUE hash2, rb_hash_update_func *func); + +/* file.c */ + +/** + * This function is mysterious. What it does is not immediately obvious. Also + * what it does seems platform dependent. + * + * @param[in] path A local path. + * @retval 0 The "check" succeeded. + * @retval otherwise The "check" failed. + */ +int rb_path_check(const char *path); + +/* hash.c */ + +/** + * Destructively removes every environment variables of the running process. + * + * @return The `ENV` object. + * @post The process has no environment variables. + */ +VALUE rb_env_clear(void); + +/** + * Identical to #RHASH_SIZE(), except it returns the size in Ruby's integer + * instead of C's. + * + * @param[in] hash A hash object. + * @return The size of the hash. + */ +VALUE rb_hash_size(VALUE hash); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_HASH_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/io.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/io.h new file mode 100644 index 0000000..02c2497 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/io.h @@ -0,0 +1,661 @@ +#ifndef RBIMPL_INTERN_IO_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_IO_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cIO. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* io.c */ + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define rb_defout rb_stdout + +/* string.c */ /* ...why? moved in commit de7161526014b781468cea5d84411e23be */ + +/** + * The field separator character for inputs, or the `$;`. This affects how + * `String#split` works. You can set this via the `-F` command line option. + * You can also assign arbitrary ruby objects programmatically, but it makes + * best sense for you to assign a regular expression here. + * + * @internal + * + * Tidbit: "fs" comes from AWK's `FS` variable. + */ +RUBY_EXTERN VALUE rb_fs; + +/* io.c */ /* ...why? given rb_fs is in string.c? */ + +/** + * The field separator character for outputs, or the `$,`. This affects how + * `Array#join` works. + * + * @deprecated Assigning anything other than ::RUBY_Qnil to this variable is + * deprecated. + */ +RUBY_EXTERN VALUE rb_output_fs; + +/** + * The record separator character for inputs, or the `$/`. This affects how + * `IO#gets` works. You can set this via the `-0` command line option. + * + * @deprecated Assigning anything other than ::RUBY_Qnil to this variable is + * deprecated. + * + * @internal + * + * Tidbit: "rs" comes from AWK's `RS` variable. + */ +RUBY_EXTERN VALUE rb_rs; + +/** + * This is the default value of ::rb_rs, i.e. `"\n"`. It seems it has always + * been just a newline string since the beginning. Not sure why C codes has to + * use this, given there is no way for ruby programs to interface. + * + * Also it has not been deprecated for unknown reasons. + */ +RUBY_EXTERN VALUE rb_default_rs; + +/** + * The record separator character for outputs, or the `$\`. This affects how + * `IO#print` works. + * + * @deprecated Assigning anything other than ::RUBY_Qnil to this variable is + * deprecated. + */ +RUBY_EXTERN VALUE rb_output_rs; + +/** + * Writes the given string to the given IO. + * + * @param[out] io An IO, opened for writing. + * @param[in] str A String-like object to write to `io`. + * @exception rb_eIOError `io` isn't opened for writing. + * @exception rb_eFrozenError `io` is frozen. + * @exception rb_eTypeError No conversion from `str` to String. + * @exception rb_eSystemCallError `write(2)` failed for some reason. + * @return The number of bytes written to the `io`. + * @post `str` (up to the length of return value) is written to `io`. + * @note This function blocks. + * @note Partial write is a thing. It must be at least questionable not + * to check the return value. + * + * @internal + * + * Above description is in fact inaccurate. This function can take arbitrary + * objects, and calls their `write` method. What is written above in fact + * describes how `IO#write` works. You can pass StringIO etc. here, and would + * work completely differently. + */ +VALUE rb_io_write(VALUE io, VALUE str); + +/** + * Reads a "line" from the given IO. A line here means a chunk of characters + * which is terminated by either `"\n"` or an EOF. + * + * @param[in,out] io An IO, opened for reading. + * @exception rb_eIOError `io` isn't opened for reading. + * @exception rb_eFrozenError `io` is frozen. + * @retval RUBY_Qnil `io` is at EOF. + * @retval otherwise An instance of ::rb_cString. + * @post `io` is read. + * @note Unlike `IO#gets` it doesn't set `$_`. + * @note Unlike `IO#gets` it doesn't consider `$/`. + */ +VALUE rb_io_gets(VALUE io); + +/** + * Reads a byte from the given IO. + * + * @note In Ruby a "byte" always means an 8 bit integer ranging from + * 0 to 255 inclusive. + * @param[in,out] io An IO, opened for reading. + * @exception rb_eIOError `io` is not opened for reading. + * @exception rb_eFrozenError `io` is frozen. + * @retval RUBY_Qnil `io` is at EOF. + * @retval otherwise An instance of ::rb_cInteger. + * @post `io` is read. + * + * @internal + * + * Of course there was a function called `rb_io_getc()`. It was removed in + * commit a25fbe3b3e531bbe479f344af24eaf9d2eeae6ea. + */ +VALUE rb_io_getbyte(VALUE io); + +/** + * "Unget"s a string. This function pushes back the passed string onto the + * passed IO, such that a subsequent buffered read will return it. If the + * passed content is in fact an integer, a single character string of that + * codepoint of the encoding of the IO will be pushed back instead. + * + * It might be counter-intuitive but this function can push back multiple + * characters at once. Also this function can be called multiple times on a + * same IO. Also a "character" can be wider than a byte, depending on the + * encoding of the IO. + * + * @param[out] io An IO, opened for reading. + * @param[in] c Either a String, or an Integer. + * @exception rb_eIOError `io` is not opened for reading. + * @exception rb_eFrozenError `io` is frozen. + * @exception rb_eTypeError No conversion from `c` to ::rb_cString. + * @return Always returns ::RUBY_Qnil. + * + * @internal + * + * Why there is ungetc, given there is no getc? + */ +VALUE rb_io_ungetc(VALUE io, VALUE c); + +/** + * Identical to rb_io_ungetc(), except it doesn't take the encoding of the + * passed IO into account. When an integer is passed, it just casts that value + * to C's `unsigned char`, and pushes that back. + * + * @param[out] io An IO, opened for reading. + * @param[in] b Either a String, or an Integer. + * @exception rb_eIOError `io` is not opened for reading. + * @exception rb_eFrozenError `io` is frozen. + * @exception rb_eTypeError No conversion from `b` to ::rb_cString. + * @return Always returns ::RUBY_Qnil. + */ +VALUE rb_io_ungetbyte(VALUE io, VALUE b); + +/** + * Closes the IO. Any buffered contents are flushed to the operating system. + * Any future operations against the IO would raise ::rb_eIOError. In case the + * io was created using `IO.popen`, it also sets the `$?`. + * + * @param[out] io Target IO to close. + * @return Always returns ::RUBY_Qnil. + * @post `$?` is set in case IO is a pipe. + * @post No operations are possible against `io` any further. + * @note This can block to flush the contents. + * @note This can wake other threads up, especially those who are + * `select()`-ing the passed IO. + * @note Multiple invocations of this function over the same IO again + * and again is not an error, since Ruby 2.3. + * + * @internal + * + * You can close a frozen IO... Is this intentional? + */ +VALUE rb_io_close(VALUE io); + +/** + * Flushes any buffered data within the passed IO to the underlying operating + * system. + * + * @param[out] io Target IO to flush. + * @exception rb_eIOError `io` is closed. + * @exception rb_eFrozenError `io` is frozen. + * @exception rb_eSystemCallError `write(2)` failed for some reason. + * @return The passed `io`. + * @post `io`'s buffers are empty. + * @note This operation also discards the read buffer. Should basically + * be harmless, but in an esoteric situation like when user pushed + * something different from what was read using `ungetc`, this + * operation in fact changes the behaviour of the `io`. + * @note Buffering is difficult. This operation flushes the data from + * our userspace to the kernel, but that doesn't always mean you + * can expect them stored persistently onto your hard drive. + */ +VALUE rb_io_flush(VALUE io); + +/** + * Queries if the passed IO is at the end of file. "The end of file" here mans + * that there are no more data to read. This function blocks until the read + * buffer is filled in, and if that operation reached the end of file, it still + * returns ::RUBY_Qfalse (because there are data yet in that buffer). It + * returns ::RUBY_Qtrue once after the buffer is cleared. + * + * @param[in,out] io Target io to query. + * @exception rb_eIOError `io` is not opened for reading. + * @exception rb_eFrozenError `io` is frozen. + * @retval RUBY_Qfalse There are things yet to be read. + * @retval RUBY_Qtrue "The end of file" situation. + */ +VALUE rb_io_eof(VALUE io); + +/** + * Sets the binmode. This operation nullifies the effect of textmode (newline + * conversion from `"\r\n"` to `"\n"` or vice versa). Note that it doesn't + * stop character encodings conversions. For instance an IO created using: + * + * ```ruby + * File.open( + * "/dev/urandom", + * textmode: true, + * external_encoding: Encoding::GB18030, + * internal_encoding: Encoding::Windows_31J) + * ``` + * + * has both newline and character conversions. If you pass such IO to this + * function, only the `textmode:true` part is cancelled. Texts read through + * the IO would still be encoded in Windows-31J; texts written to the IO will + * be encoded in GB18030. + * + * @param[out] io Target IO to modify. + * @exception rb_eFrozenError `io` is frozen. + * @return The passed `io`. + * @post `io` is in binmode. + * @note There is no equivalent operation in Ruby. You can do this only + * in C. + */ +VALUE rb_io_binmode(VALUE io); + +/** + * Forces no conversions be applied to the passed IO. Unlike rb_io_binmode(), + * this cancels any newline conversions as well as encoding conversions. Any + * texts read/written through the IO will be the verbatim binary contents. + * + * @param[out] io Target IO to modify. + * @exception rb_eFrozenError `io` is frozen. + * @return The passed `io`. + * @post `io` is in binmode. Both external/internal encoding are set to + * rb_ascii8bit_encoding(). + * @note This is the implementation of `IO#binmode`. + */ +VALUE rb_io_ascii8bit_binmode(VALUE io); + +/** + * Identical to rb_io_write(), except it always returns the passed IO. + * + * @param[out] io An IO, opened for writing. + * @param[in] str A String-like object to write to `io`. + * @exception rb_eIOError `io` isn't opened for writing. + * @exception rb_eFrozenError `io` is frozen. + * @exception rb_eTypeError No conversion from `str` to String. + * @exception rb_eSystemCallError `write(2)` failed. + * @return The passed `io`. + * @post `str` is written to `io`. + * @note This function blocks. + * + * @internal + * + * As rb_io_write(), above description is a fake. + */ +VALUE rb_io_addstr(VALUE io, VALUE str); + +/** + * This is a rb_f_sprintf() + rb_io_write() combo. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv A format string followed by its arguments. + * @param[out] io An IO, opened for writing. + * @exception rb_eIOError `io` isn't opened for writing. + * @exception rb_eFrozenError `io` is frozen. + * @exception rb_eTypeError No conversion from `str` to String. + * @exception rb_eSystemCallError `write(2)` failed. + * @return Always returns ::RUBY_Qnil. + * @post `argv` is formatted, then written to `io`. + * @note This function blocks. + * + * @internal + * + * As rb_io_write(), above descriptions include fakes. + */ +VALUE rb_io_printf(int argc, const VALUE *argv, VALUE io); + +/** + * Iterates over the passed array to apply rb_io_write() individually. If + * there is `$,`, this function inserts the string in middle of each + * iterations. If there is `$\`, this function appends the string at the end. + * If the array is empty, this function outputs `$_`. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv An array of strings to display. + * @param[out] io An IO, opened for writing. + * @exception rb_eIOError `io` isn't opened for writing. + * @exception rb_eFrozenError `io` is frozen. + * @exception rb_eTypeError No conversion from `str` to String. + * @exception rb_eSystemCallError `write(2)` failed. + * @return Always returns ::RUBY_Qnil. + * @post `argv` is written to `io`. + * @note This function blocks. + * @note This function calls rb_io_write() multiple times. Which means, + * it is not an atomic operation. Outputs from multiple threads + * can interleave. + * + * @internal + * + * As rb_io_write(), above descriptions include fakes. + */ +VALUE rb_io_print(int argc, const VALUE *argv, VALUE io); + +/** + * Iterates over the passed array to apply rb_io_write() individually. Unlike + * rb_io_print(), this function prints a newline per each element. It also + * flattens the passed array (OTOH rb_io_print() just resorts to + * rb_ary_to_s()). + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv An array of strings to display. + * @param[out] io An IO, opened for writing. + * @exception rb_eIOError `io` isn't opened for writing. + * @exception rb_eFrozenError `io` is frozen. + * @exception rb_eTypeError No conversion from `str` to String. + * @exception rb_eSystemCallError `write(2)` failed. + * @return Always returns ::RUBY_Qnil. + * @post `argv` is written to `io`. + * @note This function blocks. + * @note This function calls rb_io_write() multiple times. Which means, + * it is not an atomic operation. Outputs from multiple threads + * can interleave. + * + * @internal + * + * As rb_io_write(), above descriptions include fakes. + */ +VALUE rb_io_puts(int argc, const VALUE *argv, VALUE io); + +/** + * Creates an IO instance whose backend is the given file descriptor. C + * extension libraries sometimes have file descriptors created elsewhere (maybe + * deep inside of another shared library), which they want ruby programs to + * handle. This function is handy for such situations. + * + * @param[in] fd Target file descriptor. + * @param[in] flags Flags, e.g. `O_CREAT|O_EXCL` + * @param[in] path The path of the file that backs `fd`, for diagnostics. + * @return An allocated instance of ::rb_cIO. + * @note Leave `path` NULL if you don't know. + */ +VALUE rb_io_fdopen(int fd, int flags, const char *path); + +RBIMPL_ATTR_NONNULL(()) +/** + * Opens a file located at the given path. + * + * `fmode` is a C string that represents the open mode. It can be one of: + * + * - `r` (means `O_RDONLY`), + * - `w` (means `O_WRONLY | O_TRUNC | O_CREAT`), + * - `a` (means `O_WRONLY | O_APPEND | O_CREAT`), + * + * Followed by zero or more combinations of: + * + * - `b` (means `_O_BINARY`), + * - `t` (means `_O_TEXT`), + * - `+` (means `O_RDWR`), + * - `x` (means `O_TRUNC`), or + * - `:[BOM|]enc[:enc]` (see below). + * + * This last one specifies external (and internal if any) encodings, + * respectively. If optional `BOM|` is specified and the specified external + * encoding is capable of expressing BOMs, opening file's contents' byte order + * is auto-detected using the mechanism. + * + * So for instance, fmode of `"rt|BOM:utf-16le:utf-8"` specifies that... + * + * - the physical representation of the contents of the file is in UTF-16; + * - honours its BOM but assumes little endian if absent; + * - opens the file for reading; + * - what is read is converted into UTF-8; + * - with newlines cannibalised to `\n`. + * + * @param[in] fname Path to open. + * @param[in] fmode Mode specifier much like `fopen(3)`. + * @exception rb_eArgError `fmode` contradicted (e.g. `"bt"`). + * @exception rb_eSystemCallError `open(2)` failed for some reason. + * @return An instance of ::rb_cIO. + */ +VALUE rb_file_open(const char *fname, const char *fmode); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_file_open(), except it takes the pathname as a Ruby's string + * instead of C's. In case the passed Ruby object is a non-String it tries to + * call `#to_path`. + * + * @param[in] fname Path to open. + * @param[in] fmode Mode specifier much like `fopen(3)`. + * @exception rb_eTypeError `fname` is not a String. + * @exception rb_eEncCompatError `fname` is not ASCII-compatible. + * @exception rb_eArgError `fmode` contradicted (e.g. `"bt"`). + * @exception rb_eSystemCallError `open(2)` failed for some reason. + * @return An instance of ::rb_cIO. + */ +VALUE rb_file_open_str(VALUE fname, const char *fmode); + +/** + * Much like rb_io_gets(), but it reads from the mysterious ARGF object. ARGF + * in this context can be seen as a virtual IO which concatenates contents of + * the files passed to the process via the ARGV, or just STDIN if there are no + * such files. + * + * Unlike rb_io_gets() this function sets `$_`. + * + * @exception rb_eFrozenError ARGF resorts to STDIN but it is frozen. + * @retval RUBY_Qnil ARGF is at EOF. + * @retval otherwise An instance of ::rb_cString. + * @post ARGF is read. + * @post `$_` is set. + * + * @internal + * + * In reality, this function can call `ARGF.gets`. Its redefinition can affect + * the behaviour. + * + * Also, you can tamper ARGV on-the-fly in middle of ARGF usages: + * + * ``` + * gets # Reads the first file. + * ARGV << '/proc/self/limits' # Adds a file. + * gets # Can read from /proc/self/limits. + * ``` + */ +VALUE rb_gets(void); + +RBIMPL_ATTR_NONNULL(()) +/** + * Writes the given error message to somewhere applicable. On Windows it goes + * to the console. On POSIX environments it goes to the standard error. + * + * @warning IT IS A BAD IDEA to use this function form your C extensions. + * It is often annoying when GUI applications write to consoles; + * users don't want to look at there. Programmers also want to + * control the cause of the message itself, like by rescuing an + * exception. Just let ruby handle errors. That must be better than + * going your own way. + * + * @param[in] str Error message to display. + * @post `str` is written to somewhere. + * + * @internal + * + * AFAIK this function is listed here without marked deprecated because there + * are usages of this function in the wild. + */ +void rb_write_error(const char *str); + +/** + * Identical to rb_write_error(), except it additionally takes the message's + * length. Necessary when you want to handle wide characters. + * + * @param[in] str Error message to display. + * @param[in] len Length of `str`, in bytes. + * @post `str` is written to somewhere. + */ +void rb_write_error2(const char *str, long len); + +/** + * Closes everything. In case of POSIX environments, a child process inherits + * its parent's opened file descriptors. Which is nowadays considered as one + * of the UNIX mistakes. This function closes such inherited file descriptors. + * When your C extension needs to have a child process, don't forget to call + * this from your child process right before exec. + * + * @param[in] lowfd Lower bound of FDs (you want STDIN to remain, no?). + * @param[in] maxhint Hint of max FDs. + * @param[in] noclose_fds A hash, whose keys are an allowlist. + * + * @internal + * + * As of writing, in spite of the name, this function does not actually close + * anything. It just sets `FD_CLOEXEC` for everything and let `execve(2)` to + * atomically close them at once. This is because as far as we know there are + * no such platform that has `fork(2)` but lacks `FD_CLOEXEC`. + * + * Because this function is expected to run on a forked process it is entirely + * async-signal-safe. + */ +void rb_close_before_exec(int lowfd, int maxhint, VALUE noclose_fds); + +RBIMPL_ATTR_NONNULL(()) +/** + * This is an rb_cloexec_pipe() + rb_update_max_fd() combo. + * + * @param[out] pipes Return buffer. Must at least hold 2 elements. + * @retval 0 Successful creation of a pipe. + * @retval -1 Failure in underlying system call(s). + * @post `pipes` is filled with file descriptors. + * @post `errno` is set on failure. + */ +int rb_pipe(int *pipes); + +/** + * Queries if the given FD is reserved or not. Occasionally Ruby interpreter + * opens files for its own purposes. Use this function to prevent touching + * such behind-the-scene descriptors. + * + * @param[in] fd Target file descriptor. + * @retval 1 `fd` is reserved. + * @retval 0 Otherwise. + */ +int rb_reserved_fd_p(int fd); + +/** @alias{rb_reserved_fd_p} */ +#define RB_RESERVED_FD_P(fd) rb_reserved_fd_p(fd) + +/** + * Opens a file that closes on exec. In case of POSIX environments, a child + * process inherits its parent's opened file descriptors. Which is nowadays + * considered as one of the UNIX mistakes. This function opens a file + * descriptor as `open(2)` does, but additionally instructs the operating + * system that we don't want it be seen from child processes. + * + * @param[in] pathname File path to open. + * @param[in] flags Open mode, as in `open(2)`. + * @param[in] mode File mode, in case of `O_CREAT`. + * @retval -1 `open(2)` failed for some reason. + * @retval otherwise An allocated new file descriptor. + * @note This function does not raise. + * + * @internal + * + * Whether this function can take NULL or not depends on the underlying open(2) + * system call implementation but @shyouhei doesn't think it's worth trying. + */ +int rb_cloexec_open(const char *pathname, int flags, mode_t mode); + +/** + * Identical to rb_cloexec_fcntl_dupfd(), except it implies minfd is 3. + * + * @param[in] oldfd File descriptor to duplicate. + * @retval -1 `dup2(2)` failed for some reason. + * @retval otherwise An allocated new file descriptor. + * @note This function does not raise. + */ +int rb_cloexec_dup(int oldfd); + +/** + * Identical to rb_cloexec_dup(), except you can specify the destination file + * descriptor. If the destination is already squatted by another file + * descriptor that gets silently closed without any warnings. (This is a spec + * requested by POSIX.) + * + * @param[in] oldfd File descriptor to duplicate. + * @param[in] newfd Return value destination. + * @retval -1 `dup2(2)` failed for some reason. + * @retval newfd An allocated new file descriptor. + * @post Whatever sat at `newfd` gets closed with no notifications. + * @post In case return value is -1 `newfd` is untouched. + * @note This function does not raise. + */ +int rb_cloexec_dup2(int oldfd, int newfd); + +RBIMPL_ATTR_NONNULL(()) +/** + * Opens a pipe with closing on exec. In case of POSIX environments, a child + * process inherits its parent's opened file descriptors. Which is nowadays + * considered as one of the UNIX mistakes. This function opens a pipe as + * `pipe(2)` does, but additionally instructs the operating system that we + * don't want the duplicated FDs be seen from child processes. + * + * @param[out] fildes Return buffer. Must at least hold 2 elements. + * @retval 0 Successful creation of a pipe. + * @retval -1 Failure in underlying system call(s). + * @post `pipes` is filled with file descriptors. + * @post `errno` is set on failure. + */ +int rb_cloexec_pipe(int fildes[2]); + +/** + * Duplicates a file descriptor with closing on exec. In case of POSIX + * environments, a child process inherits its parent's opened file descriptors. + * Which is nowadays considered as one of the UNIX mistakes. This function + * duplicates a file descriptor as `dup(2)` does, but additionally instructs + * the operating system that we don't want the duplicated FD be seen from child + * processes. + * + * @param[in] fd File descriptor to duplicate. + * @param[in] minfd Minimum allowed FD to return. + * @retval -1 `dup(2)` failed for some reason. + * @retval otherwise An allocated new file descriptor. + * @note This function does not raise. + * + * `minfd` is handy when for instance STDERR is closed but you don't want to + * use fd 2. + */ +int rb_cloexec_fcntl_dupfd(int fd, int minfd); + +/** + * Informs the interpreter that the passed fd can be the max. This information + * is used from rb_close_before_exec(). + * + * @param[in] fd An open FD, which can be large. + */ +void rb_update_max_fd(int fd); + +/** + * Sets or clears the close-on-exec flag of the passed file descriptor to the + * desired state. STDIN, STDOUT, STDERR are the exceptional file descriptors + * that shall remain open. All others are to be closed on exec. When a C + * extension library opens a file descriptor using anything other than + * rb_cloexec_open() etc., that file descriptor shall experience this function. + * + * @param[in] fd An open file descriptor. + */ +void rb_fd_fix_cloexec(int fd); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_IO_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/load.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/load.h new file mode 100644 index 0000000..288a16c --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/load.h @@ -0,0 +1,218 @@ +#ifndef RBIMPL_INTERN_LOAD_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_LOAD_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_f_require(). + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* load.c */ + +/** + * Loads and executes the Ruby program in the given file. + * + * If the path is an absolute path (e.g. starts with `'/'`), the file will be + * loaded directly using the absolute path. If the path is an explicit + * relative path (e.g. starts with `'./'` or `'../'`), the file will be loaded + * using the relative path from the current directory. Otherwise, the file + * will be searched for in the library directories listed in the `$LOAD_PATH`. + * If the file is found in a directory, this function will attempt to load the + * file relative to that directory. If the file is not found in any of the + * directories in the `$LOAD_PATH`, the file will be loaded using the relative + * path from the current directory. + * + * If the file doesn't exist when there is an attempt to load it, a LoadError + * will be raised. + * + * If the `wrap` parameter is true, the loaded script will be executed under an + * anonymous module, protecting the calling program's global namespace. In no + * circumstance will any local variables in the loaded file be propagated to + * the loading environment. + * + * @param[in] path Pathname of a file to load. + * @param[in] wrap Either to load under an anonymous module. + * @exception rb_eTypeError `path` is not a string. + * @exception rb_eArgError `path` is broken as a pathname. + * @exception rb_eEncCompatError `path` is incompatible with pathnames. + * @exception rb_eLoadError `path` not found. + * @exception rb_eException Any exceptions while loading the contents. + * + * @internal + * + * It seems this function is under the rule of bootsnap's regime? + */ +void rb_load(VALUE path, int wrap); + +/** + * Identical to rb_load(), except it avoids potential global escapes. Such + * global escapes include exceptions, `throw`, `break`, for example. + * + * It first evaluates the given file as rb_load() does. If no global escape + * occurred during the evaluation, it `*state` is set to zero on return. + * Otherwise, it sets `*state` to nonzero. If state is `NULL`, it is not set + * in both cases. + * + * @param[in] path Pathname of a file to load. + * @param[in] wrap Either to load under an anonymous module. + * @param[out] state State of execution. + * @post `*state` is set to zero if succeeded. Nonzero otherwise. + * @warning You have to clear the error info with `rb_set_errinfo(Qnil)` if + * you decide to ignore the caught exception. + * @see rb_load + * @see rb_protect + * + * @internal + * + * Though not a part of our public API, `state` is in fact an + * enum ruby_tag_type. You can see the potential "nonzero" values by looking + * at vm_core.h. + */ +void rb_load_protect(VALUE path, int wrap, int *state); + +RBIMPL_ATTR_NONNULL(()) +/** + * Queries if the given feature has already been loaded into the execution + * context. The "feature" head are things like `"json"` or `"socket"`. + * + * @param[in] feature Name of a library you want to know about. + * @retval 1 Yes there is. + * @retval 0 Not yet. + */ +int rb_provided(const char *feature); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Identical to rb_provided(), except it additionally returns the "canonical" + * name of the loaded feature. This can be handy when for instance you want to + * know the actually loaded library is either `foo.rb` or `foo.so`. + * + * @param[in] feature Name of a library you want to know about. + * @param[out] loading Return buffer. + * @retval 1 Yes there is. + * @retval 0 Not yet. + */ +int rb_feature_provided(const char *feature, const char **loading); + +RBIMPL_ATTR_NONNULL(()) +/** + * Declares that the given feature is already provided by someone else. This + * API can be handy when you have an extension called `foo.so` which, when + * required, also provides functionality of `bar.so`. + * + * @param[in] feature Name of a library which had already been provided. + * @post No further `require` would search `feature`. + */ +void rb_provide(const char *feature); + +/** + * Identical to rb_require_string(), except it ignores the first argument for + * no reason. There seems to be no reason for 3rd party extension libraries to + * use it. + * + * @param[in] self Ignored. Can be anything. + * @param[in] feature Name of a feature, e.g. `"json"`. + * @exception rb_eLoadError No such feature. + * @exception rb_eRuntimeError `$"` is frozen; unable to push. + * @retval RUBY_Qtrue The feature is loaded for the first time. + * @retval RUBY_Qfalse The feature has already been loaded. + * @post `$"` is updated. + */ +VALUE rb_f_require(VALUE self, VALUE feature); + +/** + * Finds and loads the given feature, if absent. + * + * If the feature is an absolute path (e.g. starts with `'/'`), the feature + * will be loaded directly using the absolute path. If the feature is an + * explicit relative path (e.g. starts with `'./'` or `'../'`), the feature + * will be loaded using the relative path from the current directory. + * Otherwise, the feature will be searched for in the library directories + * listed in the `$LOAD_PATH`. + * + * If the feature has the extension `".rb"`, it is loaded as a source file; if + * the extension is `".so"`, `".o"`, or `".dll"`, or the default shared library + * extension on the current platform, Ruby loads the shared library as a Ruby + * extension. Otherwise, Ruby tries adding `".rb"`, `".so"`, and so on to the + * name until found. If the file named cannot be found, a LoadError will be + * raised. + * + * For extension libraries the given feature may use any shared library + * extension. For example, on Linux you can require `"socket.dll"` to actually + * load `socket.so`. + * + * The absolute path of the loaded file is added to `$LOADED_FEATURES`. A file + * will not be loaded again if its path already appears in there. + * + * Any constants or globals within the loaded source file will be available in + * the calling program's global namespace. However, local variables will not + * be propagated to the loading environment. + * + * @param[in] feature Name of a feature, e.g. `"json"`. + * @exception rb_eLoadError No such feature. + * @exception rb_eRuntimeError `$"` is frozen; unable to push. + * @retval RUBY_Qtrue The feature is loaded for the first time. + * @retval RUBY_Qfalse The feature has already been loaded. + * @post `$"` is updated. + */ +VALUE rb_require_string(VALUE feature); + +/** + * @name extension configuration + * @{ + */ + +/** + * Asserts that the extension library that calls this function is aware of + * Ractor. Multiple Ractors run without protecting each other. This doesn't + * interface well with C programs, unless designed with an in-depth + * understanding of how Ractors work. Extension libraries are shut out from + * Ractors by default. This API is to bypass that restriction. Once after it + * was called, successive calls to rb_define_method() etc. become definitions + * of methods that are aware of Ractors. The amendment would be in effect + * until the end of rb_require_string() etc. + * + * @param[in] flag Either the library is aware of Ractors or not. + * @post Methods would be callable form Ractors, if `flag` is true. + */ +void rb_ext_ractor_safe(bool flag); + +/** @alias{rb_ext_ractor_safe} */ +#define RB_EXT_RACTOR_SAFE(f) rb_ext_ractor_safe(f) + +/** + * This macro is to provide backwards compatibility. It must be safe to do + * something like: + * + * ```CXX + * #ifdef HAVE_RB_EXT_RACTOR_SAFE + * rb_ext_ractor_safe(true); + * #endif + * ``` + */ +#define HAVE_RB_EXT_RACTOR_SAFE 1 + +/** @} */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_LOAD_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/marshal.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/marshal.h new file mode 100644 index 0000000..118d78a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/marshal.h @@ -0,0 +1,112 @@ +#ifndef RBIMPL_INTERN_MARSHAL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_MARSHAL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to rb_mMarshal. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* marshal.c */ + +/** + * Serialises the given object and all its referring objects, to write them + * down to the passed port. + * + * @param[in] obj Target object to dump. + * @param[out] port IO-like destination buffer. + * @exception rb_eTypeError `obj` cannot be dumped for some reason. + * @exception rb_eRuntimeError `obj` was tampered during dumping. + * @exception rb_eArgError Traversal too deep. + * @return The passed `port` as-is. + * @post Serialised representation of `obj` is written to `port`. + * @note `port` is basically an IO but StringIO is also possible. + */ +VALUE rb_marshal_dump(VALUE obj, VALUE port); + +/** + * Deserialises a previous output of rb_marshal_dump() into a network of + * objects. + * + * @param[in,out] port Either IO or String. + * @exception rb_eTypeError `port` is in unexpected type. + * @exception rb_eArgError Contents of `port` is broken. + * @return Object(s) rebuilt using the info from `port`. + * + * SECURITY CONSIDERATIONS + * ======================== + * + * @warning By design, rb_marshal_load() can deserialise almost any + * class loaded into the Ruby process. In many cases this can + * lead to remote code execution if the Marshal data is loaded + * from an untrusted source. + * @warning As a result, rb_marshal_load() is not suitable as a general + * purpose serialisation format and you should never unmarshal + * user supplied input or other untrusted data. + * @warning If you need to deserialise untrusted data, use JSON or + * another serialisation format that is only able to load + * simple, 'primitive' types such as String, Array, Hash, etc. + * Never allow user input to specify arbitrary types to + * deserialise into. + */ +VALUE rb_marshal_load(VALUE port); + +/** + * Marshal format compatibility layer. Over time, classes evolve, so that + * their internal data structure change drastically. For instance an instance + * of ::rb_cRange was made of ::RUBY_T_OBJECT in 1.x., but in 3.x it is a + * ::RUBY_T_STRUCT now. In order to keep binary compatibility, we "fake" the + * marshalled representation to stick to old types. This is the API to enable + * that manoeuvre. Here is how: + * + * First, because you are going to keep backwards compatibility, you need to + * retain the old implementation of your class. Rename it, and keep the class + * somewhere (for instance rb_register_global_address() could help). Next + * create your new class. Do whatever you want. + * + * Then, this is the key point. Create two new "bridge" functions that convert + * the structs back and forth: + * + * - the "dumper" function that takes an instance of the new class, and + * returns an instance of the old one. This is called from + * rb_marshal_dump(), to keep it possible for old programs to read your new + * data. + * + * - the "loader" function that takes two arguments, new one and old one, in + * that order. rb_marshal_load() calls this function when it finds a + * representation of the retained old class. The old one passed to this + * function is the reconstructed instance of the old class. + * Reverse-engineer that to modify the new one, to have the identical + * contents. + * + * Finally, connect all of them using this function. + * + * @param[in] newclass The class that needs conversion. + * @param[in] oldclass Old implementation of `newclass`. + * @param[in] dumper Function that converts `newclass` to `oldclass`. + * @param[in] loader Function that converts `oldclass` to `newclass`. + * @exception rb_eTypeError `newclass` has no allocator. + */ +void rb_marshal_define_compat(VALUE newclass, VALUE oldclass, VALUE (*dumper)(VALUE), VALUE (*loader)(VALUE, VALUE)); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_MARSHAL_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/numeric.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/numeric.h new file mode 100644 index 0000000..30863fb --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/numeric.h @@ -0,0 +1,208 @@ +#ifndef RBIMPL_INTERN_NUMERIC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_NUMERIC_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cNumeric. + */ +#include "ruby/internal/attr/cold.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define RB_NUM_COERCE_FUNCS_NEED_OPID 1 + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* numeric.c */ + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_COLD() +/** + * Just always raises an exception. + * + * @exception rb_eZeroDivError Division by zero error. + */ +void rb_num_zerodiv(void); + +/** + * @name Coercion operators. + * + * What is a coercion? Well Ruby is basically an OOPL but it also has + * arithmetic operators. They are implemented in OO manners. For instance + * `a+b` is a binary operation `+`, whose receiver is `a`, and whose (sole) + * argument is `b`. + * + * The problem is, you often want `a+b == b+a` to hold. That is easy if both + * `a` and `b` belongs to the same class... Ensuring `1 + 2 == 2 + 1` is kind + * of intuitive. But if you want `1.0 + 2 == 2 + 1.0`, things start getting + * complicated. `1.0+2` is `Float#+`, while `2+1.0` is `Integer#+`. In order + * to achieve the equality Float's and Integer's methods must agree with their + * behaviours. + * + * Now. Floats versus Integers situation is still controllable because they + * are both built-in. But in Ruby you can define your own numeric classes. + * BigDecimal, which is a rubygems gem distributed along with the interpreter, + * is one of such examples. Rational was another such example before. In + * short you cannot create list of all possible combination of the classes that + * could be the operand of `+` operator. Then how do we achieve the + * commutativity? + * + * Here comes the concept of coercion. If a definition of an operator + * encounters an object which is unknown to the author, just assumes that the + * unknown object knows how to handle the situation. So for instance when + * `1+x` has unknown `x`, it lets the `x` handle this. + * + * ```ruby + * class Foo + * def +(x) + * if we_know_what_is_x? then + * ... # handle here + * else + * y, z = x.coerce self + * return y + z + * end + * end + * end + * ``` + * + * The `x.coerce` method returns a 2-element array which are "casted" versions + * of `x` and `self`. + * + * @{ + */ + +/** + * Coerced binary operation. This function first coerces the two objects, then + * applies the operation. + * + * @param[in] lhs LHS operand. + * @param[in] rhs RHS operand. + * @param[in] op Operator method name. + * @exception rb_eTypeError Coercion failed for some reason. + * @return `lhs op rhs`, in a coerced way. + */ +VALUE rb_num_coerce_bin(VALUE lhs, VALUE rhs, ID op); + +/** + * Identical to rb_num_coerce_bin(), except for return values. This function + * best suits for comparison operators e.g. `<=>`. + * + * @param[in] lhs LHS operand. + * @param[in] rhs RHS operand. + * @param[in] op Operator method name. + * @retval RUBY_Qnil Coercion failed for some reason. + * @retval otherwise `lhs op rhs`, in a coerced way. + */ +VALUE rb_num_coerce_cmp(VALUE lhs, VALUE rhs, ID op); + +/** + * Identical to rb_num_coerce_cmp(), except for return values. This function + * best suits for relationship operators e.g. `<=`. + * + * @param[in] lhs LHS operand. + * @param[in] rhs RHS operand. + * @param[in] op Operator method name. + * @exception rb_eArgError Coercion failed for some reason. + * @return `lhs op rhs`, in a coerced way. + */ +VALUE rb_num_coerce_relop(VALUE lhs, VALUE rhs, ID op); + +/** + * This one is optimised for bitwise operations, but the API is identical to + * rb_num_coerce_bin(). + * + * @param[in] lhs LHS operand. + * @param[in] rhs RHS operand. + * @param[in] op Operator method name. + * @exception rb_eArgError Coercion failed for some reason. + * @return `lhs op rhs`, in a coerced way. + */ +VALUE rb_num_coerce_bit(VALUE lhs, VALUE rhs, ID op); + +/** @} */ + +/** + * Converts a numeric value into a Fixnum. This is not a preserving + * conversion; for instance 1.5 would be converted into 1. + * + * @param[in] val A numeric object. + * @exception rb_eTypeError No conversion from `val` to Integer. + * @exception rb_eRangeError `val` out of range. + * @return A fixnum converted from `val`. + * + * @internal + * + * This seems used from nowhere? + */ +VALUE rb_num2fix(VALUE val); + +/** + * Generates a place-value representation of the given Fixnum, with given + * radix. + * + * @param[in] val A fixnum to stringify. + * @param[in] base `2` to `36` inclusive for each radix. + * @exception rb_eArgError `base` is out of range. + * @return An instance of ::rb_cString representing `val`. + * @pre `val` must be a Fixnum (no checks performed). + */ +VALUE rb_fix2str(VALUE val, int base); + +RBIMPL_ATTR_CONST() +/** + * Compares two `double`s. Handy when implementing a spaceship operator. + * + * @param[in] lhs A value. + * @param[in] rhs Another value. + * @retval RB_INT2FIX(-1) `lhs` is "bigger than" `rhs`. + * @retval RB_INT2FIX(1) `rhs` is "bigger than" `lhs`. + * @retval RB_INT2FIX(0) They are equal. + * @retval RUBY_Qnil Not comparable, e.g. NaN. + */ +VALUE rb_dbl_cmp(double lhs, double rhs); + +/** + * Raises the passed `x` to the power of `y`. + * + * @note The return value can be really big. + * @note Also the return value can be really small, in case `x` is a + * negative number. + * @param[in] x A number. + * @param[in] y Another number. + * @retval Inf Cannot express the result. + * @retval 1 Either `y` is 0 or `x` is 1. + * @retval otherwise An instance of ::rb_cInteger whose value is `x ** y`. + * + * @internal + * + * This function returns Infinity when `y` is big enough not to fit into a + * Fixnum. Warning is issued then. + */ +RUBY_EXTERN VALUE rb_int_positive_pow(long x, unsigned long y); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_NUMERIC_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/object.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/object.h new file mode 100644 index 0000000..b9ffa57 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/object.h @@ -0,0 +1,501 @@ +#ifndef RBIMPL_INTERN_OBJECT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_OBJECT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cObject. + */ +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * This macro is (used but) mysterious. Why on earth do we need this? + * + * - `obj != orig` check is done anyways inside of rb_obj_init_copy(). + * - rb_obj_init_copy() returns something. No need are there to add `, 1`. + */ +#define RB_OBJ_INIT_COPY(obj, orig) \ + ((obj) != (orig) && (rb_obj_init_copy((obj), (orig)), 1)) +/** @old{RB_OBJ_INIT_COPY} */ +#define OBJ_INIT_COPY(obj, orig) RB_OBJ_INIT_COPY(obj, orig) + +/* object.c */ + +/** + * Identical to rb_class_new_instance(), except it passes the passed keywords + * if any to the `#initialize` method. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] klass An instance of ::rb_cClass. + * @exception rb_eTypeError `klass`'s allocator is undefined. + * @exception rb_eException Any exceptions can happen inside. + * @return An allocated new instance of `klass`. + * @note This is _the_ implementation of `Object.new`. + */ +VALUE rb_class_new_instance_pass_kw(int argc, const VALUE *argv, VALUE klass); + +/** + * Allocates, then initialises an instance of the given class. It first calls + * the passed class' allocator to obtain an uninitialised object, then calls + * its initialiser with the remaining arguments. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to `#initialize`. + * @param[in] klass An instance of ::rb_cClass. + * @exception rb_eTypeError `klass`'s allocator is undefined. + * @exception rb_eException Any exceptions can happen inside. + * @return An allocated new instance of `klass`. + */ +VALUE rb_class_new_instance(int argc, const VALUE *argv, VALUE klass); + +/** + * Identical to rb_class_new_instance(), except you can specify how to handle + * the last element of the given array. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] klass An instance of ::rb_cClass. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eTypeError `klass`'s allocator is undefined. + * @exception rb_eException Any exceptions can happen inside. + * @return An allocated new instance of `klass`. + */ +VALUE rb_class_new_instance_kw(int argc, const VALUE *argv, VALUE klass, int kw_splat); + +/** + * Checks for equality of the passed objects, in terms of `Object#eql?`. + * + * @param[in] lhs Comparison left hand side. + * @param[in] rhs Comparison right hand side. + * @retval non-zero They are equal. + * @retval 0 Otherwise. + * @note This function actually calls `lhs.eql?(rhs)` so you cannot + * implement your class' `#eql?` method using it. + */ +int rb_eql(VALUE lhs, VALUE rhs); + +/** + * Generates a textual representation of the given object. + * + * @param[in] obj Arbitrary ruby object. + * @return An instance of ::rb_cString that represents `obj`. + * @note This is the default implementation of `Object#to_s` that each + * subclasses want to override. + */ +VALUE rb_any_to_s(VALUE obj); + +/** + * Generates a human-readable textual representation of the given object. This + * is largely similar to Ruby level `Object#inspect` but not the same; it + * additionally escapes the inspection result so that the string be compatible + * with that of default internal (or default external, if absent). + * + * @param[in] obj Arbitrary ruby object. + * @return An instance of ::rb_cString that represents `obj`. + */ +VALUE rb_inspect(VALUE obj); + +/** + * Queries if the given object is a direct instance of the given class. + * + * @param[in] obj Arbitrary ruby object. + * @param[in] klass An instance of ::rb_cModule. + * @exception rb_eTypeError `klass` is neither module nor class. + * @retval RUBY_Qtrue `obj` is an instance of `klass`. + * @retval RUBY_Qfalse Otherwise. + */ +VALUE rb_obj_is_instance_of(VALUE obj, VALUE klass); + +/** + * Queries if the given object is an instance (of possibly descendants) of the + * given class. + * + * @param[in] obj Arbitrary ruby object. + * @param[in] klass An instance of ::rb_cModule. + * @exception rb_eTypeError `klass` is neither module nor class. + * @retval RUBY_Qtrue `obj` is a `klass`. + * @retval RUBY_Qfalse Otherwise. + */ +VALUE rb_obj_is_kind_of(VALUE obj, VALUE klass); + +/** + * Allocates an instance of the given class. + * + * @param[in] klass A class to instantiate. + * @exception rb_eTypeError `klass` is not a class. + * @return An allocated, not yet initialised instance of `klass`. + * @note It calls the allocator defined by rb_define_alloc_func(). You + * cannot use this function to define an allocator. Use + * rb_newobj_of(), #TypedData_Make_Struct or others, instead. + * @note Usually prefer rb_class_new_instance() to rb_obj_alloc() and + * rb_obj_call_init(). + * @see rb_class_new_instance() + * @see rb_obj_call_init() + * @see rb_define_alloc_func() + * @see rb_newobj_of() + * @see #TypedData_Make_Struct + */ +VALUE rb_obj_alloc(VALUE klass); + +/** + * Produces a shallow copy of the given object. Its list of instance variables + * are copied, but not the objects they reference. It also copies the frozen + * value state. + * + * @param[in] obj Arbitrary ruby object. + * @exception rb_eException `#initialize_copy` can raise anything. + * @return A "clone" of `obj`. + * + * @internal + * + * Unlike ruby-level `Object#clone`, there is no way to control the frozen-ness + * of the return value. + */ +VALUE rb_obj_clone(VALUE obj); + +/** + * Duplicates the given object. This does almost the same thing as + * rb_obj_clone() do. However it does not copy the singleton class (if any). + * It also doesn't copy frozen-ness. + * + * @param[in] obj Arbitrary ruby object. + * @exception rb_eException `#initialize_copy` can raise anything. + * @return A shallow copy of `obj`. + */ +VALUE rb_obj_dup(VALUE obj); + +/** + * Default implementation of `#initialize_copy`, `#initialize_dup` and + * `#initialize_clone`. It does almost nothing. Just raises exceptions for + * checks. + * + * @param[in] dst The destination object. + * @param[in] src The source object. + * @exception rb_eFrozenError `dst` is frozen. + * @exception rb_eTypeError `dst` and `src` have different classes. + * @return Always returns `dst`. + */ +VALUE rb_obj_init_copy(VALUE src, VALUE dst); + +/** + * Just calls rb_obj_freeze_inline() inside. Does this make any sens to + * extension libraries? + * + * @param[out] obj Object to freeze. + * @return Verbatim `obj`. + */ +VALUE rb_obj_freeze(VALUE obj); + +RBIMPL_ATTR_PURE() +/** + * Just calls RB_OBJ_FROZEN() inside. Does this make any sens to extension + * libraries? + * + * @param[in] obj Object in question. + * @retval RUBY_Qtrue Yes it is. + * @retval RUBY_Qfalse No it isn't. + */ +VALUE rb_obj_frozen_p(VALUE obj); + +/* gc.c */ + +/** + * Finds or creates an integer primary key of the given object. In the old + * days this function was a purely arithmetic operation that maps the + * underlying memory address where the object resides into a Ruby's integer. + * Some time around 2.x this changed. It no longer relates its return values + * to C level pointers. This function assigns some random number to the given + * object if absent. The same number will be returned on all subsequent + * requests. No two active objects share a number. + * + * @param[in] obj Arbitrary ruby object. + * @return An instance of ::rb_cInteger which is an "identifier" of `obj`. + * + * @internal + * + * The "some random number" is in fact a monotonic-increasing process-global + * unique integer, much like an `INTEGER AUTO_INCREMENT PRIMARY KEY` column in + * a MySQL table. + */ +VALUE rb_obj_id(VALUE obj); + +RBIMPL_ATTR_CONST() +/** + * Identical to rb_obj_id(), except it hesitates from allocating a new instance + * of ::rb_cInteger. rb_obj_id() could allocate ::RUBY_T_BIGNUM objects. That + * allocation might perhaps impact negatively. On such situations, this + * function instead returns one-shot temporary small integers that need no + * allocations at all. The values are guaranteed unique at the moment, but no + * future promise is made; could be reused. Use of this API should be very + * instant. It is a failure to store the returned integer to somewhere else. + * + * In short it is difficult to use. + * + * @param[in] obj Arbitrary ruby object. + * @return An instance of ::rb_cInteger unique at the moment. + * + * @internal + * + * This is roughly the old behaviour of rb_obj_id(). + */ +VALUE rb_memory_id(VALUE obj); + +/* object.c */ + +RBIMPL_ATTR_PURE() +/** + * Finds a "real" class. As the name implies there are class objects that are + * surreal. This function takes a class, traverses its ancestry tree, and + * returns its nearest ancestor which is neither a module nor a singleton + * class. + * + * @param[in] klass An instance of ::rb_cClass. + * @retval RUBY_Qfalse No real class in `klass`' ancestry tree. + * @retval klass `klass` itself is a real class. + * @retval otherwise Nearest ancestor of `klass` who is real. + */ +VALUE rb_class_real(VALUE klass); + +RBIMPL_ATTR_PURE() +/** + * Determines if the given two modules are relatives. + * + * @param[in] scion Possible subclass. + * @param[in] ascendant Possible superclass. + * @exception rb_eTypeError `ascendant` is not a module. + * @retval RUBY_Qtrue `scion` inherits, or is equal to `ascendant`. + * @retval RUBY_Qfalse `ascendant` inherits `scion`. + * @retval RUBY_Qnil They are not relatives. + */ +VALUE rb_class_inherited_p(VALUE scion, VALUE ascendant); + +RBIMPL_ATTR_PURE() +/** + * Queries the parent of the given class. + * + * @param[in] klass A child class. + * @exception rb_eTypeError `klass` is a `Class.allocate`. + * @retval RUBY_Qfalse `klass` has no superclass. + * @retval otherwise `klass`' superclass. + * + * @internal + * + * Is there any class except ::rb_cBasicObject, that has no superclass? + */ +VALUE rb_class_superclass(VALUE klass); + +RBIMPL_ATTR_NONNULL(()) +/** + * Converts an object into another type. Calls the specified conversion method + * if necessary. + * + * @param[in] val An object to convert. + * @param[in] type A value of enum ::ruby_value_type. + * @param[in] name Name to display on error (e.g. "Array"). + * @param[in] mid Conversion method (e.g. "to_ary"). + * @exception rb_eTypeError Failed to convert. + * @return An object of the specified type. + */ +VALUE rb_convert_type(VALUE val, int type, const char *name, const char *mid); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_convert_type(), except it returns ::RUBY_Qnil instead of + * raising exceptions, in case of conversion failure. It still raises + * exceptions for various reasons, like when the conversion method itself + * raises, though. + * + * @param[in] val An object to convert. + * @param[in] type A value of enum ::ruby_value_type. + * @param[in] name Name to display on error (e.g. "Array"). + * @param[in] mid Conversion method (e.g. "to_ary"). + * @exception rb_eTypeError The `mid` does not generate `type`. + * @retval RUBY_Qnil No conversion defined. + * @retval otherwise An object of the specified type. + */ +VALUE rb_check_convert_type(VALUE val, int type, const char *name, const char *mid); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_check_convert_type(), except the return value type is fixed + * to ::rb_cInteger. + * + * @param[in] val An object to convert. + * @param[in] mid Conversion method (e.g. "to_ary"). + * @exception rb_eTypeError The `mid` does not generate an integer. + * @retval RUBY_Qnil No conversion defined. + * @retval otherwise An instance of ::rb_cInteger. + */ +VALUE rb_check_to_integer(VALUE val, const char *mid); + +/** + * This is complicated. + * + * - When the passed object is already an instance of ::rb_cFloat, just + * returns it as-is. + * + * - When the passed object is something numeric, the function tries to + * convert it using `#to_f` method. + * + * - If that conversion fails (this happens for instance when the numeric + * is a complex) it returns ::RUBY_Qnil. + * + * - Otherwise returns the conversion result. + * + * - Otherwise it also returns ::RUBY_Qnil. + * + * @param[in] val An object to convert. + * @retval RUBY_Qnil Conversion from `val` to float is undefined. + * @retval otherwise Converted result. + */ +VALUE rb_check_to_float(VALUE val); + +/** + * Identical to rb_check_to_int(), except it raises in case of conversion + * mismatch. + * + * @param[in] val An object to convert. + * @exception rb_eTypeError `#to_int` does not generate an integer. + * @return An instance of ::rb_cInteger. + */ +VALUE rb_to_int(VALUE val); + +/** + * Identical to rb_check_to_integer(), except it uses `#to_int` for conversion. + * + * @param[in] val An object to convert. + * @exception rb_eTypeError `#to_int` does not return an integer. + * @retval RUBY_Qnil No conversion defined. + * @retval otherwise An instance of ::rb_cInteger. + */ +VALUE rb_check_to_int(VALUE val); + +/** + * This is the logic behind `Kernel#Integer`. Numeric types are converted + * directly, with floating point numbers being truncated. Strings are + * interpreted strictly; only leading/trailing whitespaces, plus/minus sign, + * radix indicators such as `0x`, digits, and underscores are allowed. + * Anything else are converted by first trying `#to_int`, then `#to_i`. + * + * This is slightly stricter than `String#to_i`. + * + * @param[in] val An object to convert. + * @exception rb_eArgError Malformed `val` passed. + * @exception rb_eTypeError No conversion defined. + * @return An instance of ::rb_cInteger. + */ +VALUE rb_Integer(VALUE val); + +/** + * Identical to rb_check_to_float(), except it raises on error. + * + * @param[in] val An object to convert. + * @exception rb_eTypeError No conversion defined. + * @return An instance of ::rb_cFloat. + */ +VALUE rb_to_float(VALUE val); + +/** + * This is the logic behind `Kernel#Float`. Numeric types are converted + * directly to the nearest value that a Float can represent. Strings are + * interpreted strictly; only leading/trailing whitespaces are allowed except + * what `strtod` understands. Anything else are converted using `#to_f`. + * + * This is slightly stricter than `String#to_f`. + * + * @param[in] val An object to convert. + * @exception rb_eArgError Malformed `val` passed. + * @exception rb_eTypeError No conversion defined. + * @return An instance of ::rb_cFloat. + */ +VALUE rb_Float(VALUE val); + +/** + * This is the logic behind `Kernel#String`. Arguments are converted by first + * trying `#to_str`, then `#to_s`. + * + * @param[in] val An object to convert. + * @exception rb_eTypeError No conversion defined. + * @return An instance of ::rb_cString. + */ +VALUE rb_String(VALUE val); + +/** + * This is the logic behind `Kernel#Array`. Arguments are converted by first + * trying `#to_ary`, then `#to_a`, and if both failed, returns an array of + * length 1 that contains the passed argument as the sole contents. + * + * @param[in] val An object to convert. + * @return An instance of ::rb_cArray. + */ +VALUE rb_Array(VALUE val); + +/** + * This is the logic behind `Kernel#Hash`. Arguments are converted by first + * trying `#to_hash`. if it failed, and the argument is either ::RUBY_Qnil or + * an empty array, returns an empty hash. Otherwise an exception is raised. + * + * @param[in] val An object to convert. + * @exception rb_eTypeError No conversion defined. + * @return An instance of ::rb_cHash. + */ +VALUE rb_Hash(VALUE val); + +RBIMPL_ATTR_NONNULL(()) +/** + * Converts a textual representation of a real number into a numeric, which is + * the nearest value that the return type can represent, of the value that the + * argument represents. This is in fact a 2-in-1 function whose behaviour can + * be controlled using the second (mode) argument. If the mode is zero, this + * function is in "historical" mode which only understands "floating-constant" + * defined at ISO/IEC 9899:1990 section 6.1.3.1. If the mode is nonzero, it is + * in "extended" mode, which also accepts "hexadecimal-floating-constant" + * defined at ISO/IEC 9899:2018 section 6.4.4.2. + * + * @param[in] str A textual representation of a real number. + * @param[in] mode Conversion mode, as described above. + * @exception rb_eArgError Malformed `str` passed. + * @see https://bugs.ruby-lang.org/issues/2969 + * @note Null pointers are allowed, and it returns 0.0 then. + */ +double rb_cstr_to_dbl(const char *str, int mode); + +/** + * Identical to rb_cstr_to_dbl(), except it accepts a Ruby's string instead of + * C's. + * + * @param[in] str A textual representation of a real number. + * @param[in] mode Conversion mode, as described in rb_cstr_to_dbl(). + * @exception rb_eArgError Malformed `str` passed. + * @see https://bugs.ruby-lang.org/issues/2969 + */ +double rb_str_to_dbl(VALUE str, int mode); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_OBJECT_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/parse.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/parse.h new file mode 100644 index 0000000..7c4e992 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/parse.h @@ -0,0 +1,194 @@ +#ifndef RBIMPL_INTERN_PARSE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_PARSE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cSymbol. + */ +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* symbol.c */ + +/** + * Calculates an ID of attribute writer. For instance it returns `:foo=` when + * passed `:foo`. + * + * @param[in] id An id. + * @exception rb_eNameError `id` is not for attributes (e.g. operator). + * @return Calculated name of attribute writer. + */ +ID rb_id_attrset(ID id); + +RBIMPL_ATTR_CONST() +/** + * Classifies the given ID, then sees if it is a constant. In case an ID is in + * Unicode (likely), its "constant"-ness is determined if its first character + * is either upper case or title case. Otherwise it is detected if case- + * folding the first character changes its case or not. + * + * @param[in] id An id to classify. + * @retval 1 It is a constant. + * @retval 0 It isn't. + */ +int rb_is_const_id(ID id); + +RBIMPL_ATTR_CONST() +/** + * Classifies the given ID, then sees if it is a global variable. A global + * variable must start with `$`. + * + * @param[in] id An id to classify. + * @retval 1 It is a global variable. + * @retval 0 It isn't. + */ +int rb_is_global_id(ID id); + +RBIMPL_ATTR_CONST() +/** + * Classifies the given ID, then sees if it is an instance variable. An + * instance variable must start with `@`, but not `@@`. + * + * @param[in] id An id to classify. + * @retval 1 It is an instance variable. + * @retval 0 It isn't. + */ +int rb_is_instance_id(ID id); + +RBIMPL_ATTR_CONST() +/** + * Classifies the given ID, then sees if it is an attribute writer. An + * attribute writer is otherwise a local variable, except it ends with `=`. + * + * @param[in] id An id to classify. + * @retval 1 It is an attribute writer. + * @retval 0 It isn't. + */ +int rb_is_attrset_id(ID id); + +RBIMPL_ATTR_CONST() +/** + * Classifies the given ID, then sees if it is a class variable. A class + * variable is must start with `@@`. + * + * @param[in] id An id to classify. + * @retval 1 It is a class variable. + * @retval 0 It isn't. + */ +int rb_is_class_id(ID id); + +RBIMPL_ATTR_CONST() +/** + * Classifies the given ID, then sees if it is a local variable. A local + * variable starts with a lowercase character, followed by some alphanumeric + * characters or `_`, then ends with anything other than `!`, `?`, or `=`. + * + * @param[in] id An id to classify. + * @retval 1 It is a local variable. + * @retval 0 It isn't. + */ +int rb_is_local_id(ID id); + +RBIMPL_ATTR_CONST() +/** + * Classifies the given ID, then sees if it is a junk ID. An ID with no + * special syntactic structure is considered junk. This category includes for + * instance punctuation. + * + * @param[in] id An id to classify. + * @retval 1 It is a junk. + * @retval 0 It isn't. + */ +int rb_is_junk_id(ID); + +RBIMPL_ATTR_NONNULL(()) +/** + * Sees if the passed C string constructs a valid syntactic symbol. Invalid + * ones for instance includes whitespaces. + * + * @param[in] str A C string to check. + * @retval 1 It is a valid symbol name. + * @retval 0 It is invalid as a symbol name. + */ +int rb_symname_p(const char *str); + +/* vm.c */ + +/** + * Queries the last match, or `Regexp.last_match`, or the `$~`. You don't have + * to use it, because in reality you can get `$~` using rb_gv_get() as usual. + * + * @retval RUBY_Qnil The method has not ran a regular expression. + * @retval otherwise An instance of ::rb_cMatch. + */ +VALUE rb_backref_get(void); + +/** + * Updates `$~`. You don't have to use it, because in reality you can set `$~` + * using rb_gv_set() as usual. + * + * @param[in] md Arbitrary Ruby object. + * @post The passed object is assigned to `$~`. + * + * @internal + * + * Yes, this function bypasses the Check_Type() that would normally prevent + * evil souls from assigning evil objects to `$~`. Use of this function is a + * really bad smell. + */ +void rb_backref_set(VALUE md); + +/** + * Queries the last line, or the `$_`. You don't have to use it, because in + * reality you can get `$_` using rb_gv_get() as usual. + * + * @retval RUBY_Qnil There has never been a "line" yet. + * @retval otherwise The last set `$_` value. + */ +VALUE rb_lastline_get(void); + +/** + * Updates `$_`. You don't have to use it, because in reality you can set `$_` + * using rb_gv_set() as usual. + * + * @param[in] str Arbitrary Ruby object. + * @post The passed object is assigned to `$_`. + * + * @internal + * + * Unlike `$~`, you can assign non-strings to `$_`, even from ruby scripts. + */ +void rb_lastline_set(VALUE str); + +/* symbol.c */ + +/** + * Collects every single bits of symbols that have ever interned in the entire + * history of the current process. + * + * @return An array that contains all symbols that have ever existed. + */ +VALUE rb_sym_all_symbols(void); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_PARSE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/proc.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/proc.h new file mode 100644 index 0000000..b8c3c5e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/proc.h @@ -0,0 +1,353 @@ +#ifndef RBIMPL_INTERN_PROC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_PROC_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cProc. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/iterator.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* proc.c */ + +/** + * Constructs a Proc object from implicitly passed components. When a ruby + * method is called with a block, that block is not explicitly passed around + * using C level function parameters. This function gathers all the necessary + * info to turn them into a Ruby level instance of ::rb_cProc. + * + * @exception rb_eArgError There is no passed block. + * @return An instance of ::rb_cProc. + */ +VALUE rb_block_proc(void); + +/** + * Identical to rb_proc_new(), except it returns a lambda. + * + * @exception rb_eArgError There is no passed block. + * @return An instance of ::rb_cProc. + */ +VALUE rb_block_lambda(void); + +/** + * This is an rb_iterate() + rb_block_proc() combo. + * + * ```CXX + * VALUE + * my_own_iterator(RB_BLOCK_CALL_FUNC_ARGLIST(y, c)) + * { + * const auto plus = rb_intern("+"); + * return rb_funcall(c, plus, 1, y); + * } + * + * VALUE + * my_own_method(VALUE self) + * { + * return rb_proc_new(my_own_iterator, self); + * } + * ``` + * + * @param[in] func A backend function of a proc. + * @param[in] callback_arg Passed to `func`'s callback_arg. + * @return A C-backended proc object. + * + */ +VALUE rb_proc_new(rb_block_call_func_t func, VALUE callback_arg); + +/** + * Queries if the given object is a proc. + * + * @note This is about the object's data structure, not its class etc. + * @param[in] recv Object in question. + * @retval RUBY_Qtrue It is a proc. + * @retval RUBY_Qfalse Otherwise. + */ +VALUE rb_obj_is_proc(VALUE recv); + +/** + * Evaluates the passed proc with the passed arguments. + * + * @param[in] recv The proc to call. + * @param[in] args An instance of ::RArray which is the arguments. + * @exception rb_eException Any exceptions happen inside. + * @return What the proc evaluates to. + */ +VALUE rb_proc_call(VALUE recv, VALUE args); + +/** + * Identical to rb_proc_call(), except you can specify how to handle the last + * element of the given array. + * + * @param[in] recv The proc to call. + * @param[in] args An instance of ::RArray which is the arguments. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `args`' last is not a keyword argument. + * - RB_PASS_KEYWORDS `args`' last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eException Any exceptions happen inside. + * @return What the proc evaluates to. + */ +VALUE rb_proc_call_kw(VALUE recv, VALUE args, int kw_splat); + +/** + * Identical to rb_proc_call(), except you can additionally pass another proc + * object, as a block. Nowadays procs can take blocks: + * + * ```ruby + * l = -> (positional, optional=nil, *rest, kwarg:, **kwrest, &block) { + * # ... how can we pass this `&block`? ^^^^^^ + * } + * ``` + * + * And this function is to pass one to such procs. + * + * @param[in] recv The proc to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of proc arguments. + * @param[in] proc Proc as a passed block. + * @exception rb_eException Any exceptions happen inside. + * @return What the proc evaluates to. + */ +VALUE rb_proc_call_with_block(VALUE recv, int argc, const VALUE *argv, VALUE proc); + +/** + * Identical to rb_proc_call_with_block(), except you can specify how to handle + * the last element of the given array. It can also be seen as a routine + * identical to rb_proc_call_kw(), except you can additionally pass another + * proc object as a block. + * + * @param[in] recv The proc to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of proc arguments. + * @param[in] proc Proc as a passed block. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `args`' last is not a keyword argument. + * - RB_PASS_KEYWORDS `args`' last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eException Any exceptions happen inside. + * @return What the proc evaluates to. + */ +VALUE rb_proc_call_with_block_kw(VALUE recv, int argc, const VALUE *argv, VALUE proc, int kw_splat); + +/** + * Queries the number of mandatory arguments of the given Proc. If its block + * is declared to take no arguments, returns `0`. If the block is known to + * take exactly `n` arguments, returns `n`. If the block has optional + * arguments, returns `-n-1`, where `n` is the number of mandatory arguments, + * with the exception for blocks that are not lambdas and have only a finite + * number of optional arguments; in this latter case, returns `n`. Keyword + * arguments will be considered as a single additional argument, that argument + * being mandatory if any keyword argument is mandatory. + * + * @param[in] recv Target Proc object. + * @retval 0 It takes no arguments. + * @retval >0 It takes exactly this number of arguments. + * @retval <0 It takes optional arguments. + */ +int rb_proc_arity(VALUE recv); + +/** + * Queries if the given object is a lambda. Instances of ::rb_cProc are either + * lambda or proc. They differ in several points. This function can + * distinguish them without actually evaluating their contents. + * + * @param[in] recv Target proc object. + * @retval RUBY_Qtrue It is a lambda. + * @retval RUBY_Qfalse Otherwise. + */ +VALUE rb_proc_lambda_p(VALUE recv); + +/** + * Snapshots the current execution context and turn it into an instance of + * ::rb_cBinding. + * + * @return An instance of ::rb_cBinding. + */ +VALUE rb_binding_new(void); + +/** + * Creates a method object. A method object is a proc-like object that you can + * "call". Note that a method object snapshots the method at the time the + * object is created: + * + * ```ruby + * class Foo + * def foo + * return 1 + * end + * end + * + * obj = Foo.new.method(:foo) + * + * class Foo + * def foo + * return 2 + * end + * end + * + * obj.call # => 1, not 2. + * ``` + * + * @param[in] recv Receiver of the method. + * @param[in] mid Method name, in either String or Symbol. + * @exception rb_eNoMethodError No such method. + * @return An instance of ::rb_cMethod. + */ +VALUE rb_obj_method(VALUE recv, VALUE mid); + +/** + * Queries if the given object is a method. + * + * @note This is about the object's data structure, not its class etc. + * @param[in] recv Object in question. + * @retval RUBY_Qtrue It is a method. + * @retval RUBY_Qfalse Otherwise. + */ +VALUE rb_obj_is_method(VALUE recv); + +/** + * Evaluates the passed method with the passed arguments. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] recv The method object to call. + * @exception rb_eTypeError `recv` is not a method. + * @exception rb_eException Any exceptions happen inside. + * @return What the method returns. + */ +VALUE rb_method_call(int argc, const VALUE *argv, VALUE recv); + +/** + * Identical to rb_method_call(), except you can specify how to handle the last + * element of the given array. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] recv The method object to call. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `args`' last is not a keyword argument. + * - RB_PASS_KEYWORDS `args`' last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eTypeError `recv` is not a method. + * @exception rb_eException Any exceptions happen inside. + * @return What the method returns. + */ +VALUE rb_method_call_kw(int argc, const VALUE *argv, VALUE recv, int kw_splat); + +/** + * Identical to rb_proc_call(), except you can additionally pass a proc as a + * block. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] recv The method object to call. + * @param[in] proc Proc as a passed block. + * @exception rb_eTypeError `recv` is not a method. + * @exception rb_eException Any exceptions happen inside. + * @return What the method returns. + */ +VALUE rb_method_call_with_block(int argc, const VALUE *argv, VALUE recv, VALUE proc); + +/** + * Identical to rb_method_call_with_block(), except you can specify how to + * handle the last element of the given array. It can also be seen as a + * routine identical to rb_method_call_kw(), except you can additionally pass + * another proc object as a block. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] recv The method object to call. + * @param[in] proc Proc as a passed block. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `args`' last is not a keyword argument. + * - RB_PASS_KEYWORDS `args`' last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eTypeError `recv` is not a method. + * @exception rb_eException Any exceptions happen inside. + * @return What the method returns. + */ +VALUE rb_method_call_with_block_kw(int argc, const VALUE *argv, VALUE recv, VALUE proc, int kw_splat); + +/** + * Queries the number of mandatory arguments of the method defined in the given + * module. If it is declared to take no arguments, returns `0`. If it takes + * exactly `n` arguments, returns `n`. If it has optional arguments, returns + * `-n-1`, where `n` is the number of mandatory arguments. Keyword arguments + * will be considered as a single additional argument, that argument being + * mandatory if any keyword argument is mandatory. + * + * @param[in] mod Namespace to search a method for. + * @param[in] mid Method id. + * @retval 0 It takes no arguments. + * @retval >0 It takes exactly this number of arguments. + * @retval <0 It takes optional arguments. + */ +int rb_mod_method_arity(VALUE mod, ID mid); + +/** + * Identical to rb_mod_method_arity(), except it searches for singleton methods + * rather than instance methods. + * + * @param[in] obj Object to search for a singleton method. + * @param[in] mid Method id. + * @retval 0 It takes no arguments. + * @retval >0 It takes exactly this number of arguments. + * @retval <0 It takes optional arguments. + */ +int rb_obj_method_arity(VALUE obj, ID mid); + +/* eval.c */ + +RBIMPL_ATTR_NONNULL((1)) +/** + * Protects a function call from potential global escapes from the function. + * Such global escapes include exceptions, `throw`, `break`, for example. + * + * It first calls the function func with `args` as the argument. If no global + * escape occurred during the function, it returns the result and `*state` is + * zero. Otherwise, it returns ::RUBY_Qnil and sets `*state` to nonzero. If + * `state` is `NULL`, it is not set in both cases. + * + * @param[in] func A function that potentially escapes globally. + * @param[in] args Passed as-is to `func`. + * @param[out] state State of execution. + * @return What `func` returns, or an undefined value when it did not + * return. + * @post `*state` is set to zero if succeeded. Nonzero otherwise. + * @warning You have to clear the error info with `rb_set_errinfo(Qnil)` if + * you decide to ignore the caught exception. + * @see rb_eval_string_protect() + * @see rb_load_protect() + * + * @internal + * + * The "undefined value" described above is in fact ::RUBY_Qnil for now. But + * @shyouhei doesn't think that we would never change that. + * + * Though not a part of our public API, `state` is in fact an + * enum ruby_tag_type. You can see the potential "nonzero" values by looking + * at vm_core.h. + */ +VALUE rb_protect(VALUE (*func)(VALUE args), VALUE args, int *state); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_PROC_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/process.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/process.h new file mode 100644 index 0000000..7a7b24e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/process.h @@ -0,0 +1,273 @@ +#ifndef RBIMPL_INTERN_PROCESS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_PROCESS_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_mProcess. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/config.h" /* rb_pid_t is defined here. */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* process.c */ + +/** + * Sets the "last status", or the `$?`. + * + * @param[in] status The termination status, as defined in `waitpid(3posix)`. + * @param[in] pid The last child of the current process. + * @post `$?` is updated. + */ +void rb_last_status_set(int status, rb_pid_t pid); + +/** + * Queries the "last status", or the `$?`. + * + * @retval RUBY_Qnil The current thread has no dead children. + * @retval otherwise An instance of Process::Status describing the status of + * the child that was most recently `wait`-ed. + */ +VALUE rb_last_status_get(void); + +RBIMPL_ATTR_NONNULL(()) +/** + * Executes a shell command. + * + * @warning THIS FUNCTION RETURNS on error! + * @param[in] cmd Passed to the shell. + * @retval -1 Something prevented the command execution. + * @post Upon successful execution this function doesn't return. + * @post In case it returns the `errno` is set properly. + */ +int rb_proc_exec(const char *cmd); + +RBIMPL_ATTR_NORETURN() +/** + * Replaces the current process by running the given external command. This is + * the implementation of `Kernel#exec`. + * + * @param[in] argc Number of objects in `argv`. + * @param[in] argv Command and its options to execute. + * @exception rb_eTypeError Invalid options e.g. non-String argv. + * @exception rb_eArgError Invalid options e.g. redirection cycle. + * @exception rb_eNotImpError Not implemented e.g. no `setuid(2)`. + * @exception rb_eRuntimeError `Process::UID.switch` in operation. + * @exception rb_eSystemCallError `execve(2)` failed. + * @warning This function doesn't return. + * @warning On failure it raises. On success the process is replaced. + * + * @internal + * + * @shyouhei have to say that the rdoc for `Kernel#exec` is fairly incomplete. + * AFAIK this function ultimately takes the following signature: + * + * ```rbs + * type boolx = bool | nil # != `boolish` + * + * type rlim_t = Integer # rlim_cur + * | [ Integer, Integer ] # rlim_cur, rlim_max + * + * type uid_t = String # e.g. "root" + * | Integer # e.g. 0 + * + * type gid_t = String # e.g. "wheel" + * | Integer # e.g. 0 + * + * type fmode = String # e.g. "rb" + * | Integer # e.g. O_RDONLY | O_BINARY + * + * type mode_t = Integer # e.g. 0644 + * + * type pgrp = true # Creates a dedicated pgroup + * | 0 # ditto + * | nil # Uses the current one + * | Integer # Uses this specific pgroup + * + * type fd = :in # STDIN + * | :out # STDOUT + * | :err # STDERR + * | IO # This specific IO + * | Integer # A file descriptor of this # + * + * type src = fd | [ fd ] + * type dst = :close # Intuitive + * | fd # Intuitive + * | String # Open a file at this path + * | [ String ] # ... using O_RDONLY + * | [ String, fmode ] # ... using this mode + * | [ String, fmode, mode_t ] # ... with a permission + * | [ :child, fd ] # fd of child side + * + * type redir = Hash[ src, dst ] + * + * # ---- + * + * # Key-value pair of environment variables + * type envp = Hash[ String, String ] + * + * # Actual name (and the name passed to the subprocess if any) + * type arg0 = String | [ String, String ] + * + * # Arbitrary string parameters + * type argv = String + * + * # Exec options: + * type argh = redir | { + * chdir: String, # Working directory + * close_others: boolx, # O_CLOEXEC like behaviour + * gid: gid_t, # setegid(2) + * pgrooup: pgrp, # setpgrp(2) + * rlimit_as: rlim_t, # setrlimit(2) + * rlimit_core: rlim_t, # ditto + * rlimit_cpu: rlim_t, # ditto + * rlimit_data: rlim_t, # ditto + * rlimit_fsize: rlim_t, # ditto + * rlimit_memlock: rlim_t, # ditto + * rlimit_msgqueue: rlim_t, # ditto + * rlimit_nice: rlim_t, # ditto + * rlimit_nofile: rlim_t, # ditto + * rlimit_nproc: rlim_t, # ditto + * rlimit_rss: rlim_t, # ditto + * rlimit_rtprio: rlim_t, # ditto + * rlimit_rttime: rlim_t, # ditto + * rlimit_sbsize: rlim_t, # ditto + * rlimit_sigpending: rlim_t, # ditto + * rlimit_stack: rlim_t, # ditto + * uid: uid_t, # seteuid(2) + * umask: mode_t, # umask(2) + * unsetenv_others: boolx # Unset everything except the passed envp + * } + * + * # ==== + * + * class Kernel + * def self?.exec + * : ( arg0 cmd, *argv args ) -> void + * | ( arg0 cmd, *argv args, argh opts) -> void + * | (envp env, arg0 cmd, *argv args ) -> void + * | (envp env, arg0 cmd, *argv args, argh opts) -> void + * end + * ``` + */ +VALUE rb_f_exec(int argc, const VALUE *argv); + +/** + * Waits for a process, with releasing GVL. + * + * @param[in] pid Process ID. + * @param[out] status The wait status is filled back. + * @param[in] flags Wait options. + * @retval -1 System call failed, errno set. + * @retval 0 WNOHANG but no waitable children. + * @retval otherwise A process ID that was `wait()`-ed. + * @post Upon successful return `status` is updated to have the process' + * status. + * @note `status` can be NULL. + * @note The arguments are passed through to underlying system call(s). + * Can have special meanings. For instance passing `(rb_pid_t)-1` + * to `pid` means it waits for any processes, under + * POSIX-compliant situations. + */ +rb_pid_t rb_waitpid(rb_pid_t pid, int *status, int flags); + +/** + * This is a shorthand of rb_waitpid without status and flags. It has been + * like this since the very beginning. The initial revision already did the + * same thing. Not sure why, then, it has been named `syswait`. AFAIK this is + * different from how `wait(3posix)` works. + * + * @param[in] pid Passed to rb_waitpid(). + */ +void rb_syswait(rb_pid_t pid); + +/** + * Identical to rb_f_exec(), except it spawns a child process instead of + * replacing the current one. + * + * @param[in] argc Number of objects in `argv`. + * @param[in] argv Command and its options to execute. + * @exception rb_eTypeError Invalid options e.g. non-String argv. + * @exception rb_eArgError Invalid options e.g. redirection cycle. + * @exception rb_eNotImpError Not implemented e.g. no `setuid(2)`. + * @exception rb_eRuntimeError `Process::UID.switch` in operation. + * @retval -1 Child process died for some reason. + * @retval otherwise The ID of the born child. + * + * @internal + * + * This is _really_ identical to rb_f_exec() until ultimately calling the + * system call. Almost everything are shared among these two (and + * rb_f_system()). + */ +rb_pid_t rb_spawn(int argc, const VALUE *argv); + +/** + * Identical to rb_spawn(), except you can additionally know the detailed + * situation in case of abnormal parturitions. + * + * @param[in] argc Number of objects in `argv`. + * @param[in] argv Command and its options to execute. + * @param[out] errbuf Error description write-back buffer. + * @param[in] buflen Number of bytes of `errbuf`, including NUL. + * @exception rb_eTypeError Invalid options e.g. non-String argv. + * @exception rb_eArgError Invalid options e.g. redirection cycle. + * @exception rb_eNotImpError Not implemented e.g. no `setuid(2)`. + * @exception rb_eRuntimeError `Process::UID.switch` in operation. + * @retval -1 Child process died for some reason. + * @retval otherwise The ID of the born child. + * @post In case of `-1`, at most `buflen` bytes of the reason why is + * written back to `errbuf`. + */ +rb_pid_t rb_spawn_err(int argc, const VALUE *argv, char *errbuf, size_t buflen); + +/** + * Gathers info about resources consumed by the current process. + * + * @param[in] _ Not used. Pass anything. + * @return An instance of `Process::Tms`. + * + * @internal + * + * This function might or might not exist depending on `./confiugre` result. + * It must be a portability hell. Better not use. + */ +VALUE rb_proc_times(VALUE _); + +/** + * "Detaches" a subprocess. In POSIX systems every child processes that a + * process creates must be `wait(2)`-ed. A child process that died yet has not + * been waited so far is called a "zombie", which more or less consumes + * resources. This function automates reclamation of such processes. Once + * after this function successfully returns you can basically forget about the + * child process. + * + * @param[in] pid Process to wait. + * @return An instance of ::rb_cThread which is `waitpid(2)`-ing `pid`. + * @post You can just forget about the return value. GC reclaims it. + * @post You can know the exit status by querying `#value` of the + * return value (which is a blocking operation). + */ +VALUE rb_detach_process(rb_pid_t pid); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_PROCESS_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/random.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/random.h new file mode 100644 index 0000000..5577f53 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/random.h @@ -0,0 +1,116 @@ +#ifndef RBIMPL_INTERN_RANDOM_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_RANDOM_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief MT19937 backended pseudo random number generator. + * @see Matsumoto, M., Nishimura, T., "Mersenne Twister: A 623- + * dimensionally equidistributed uniform pseudorandom number + * generator", ACM Trans. on Modeling and Computer Simulation, 8 + * (1): pp 3-30, 1998. https://doi.org/10.1145/272991.272995 + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* random.c */ + +/** + * Generates a 32 bit random number. + * + * @return A random number. + * @note Now that we have ractors, the RNG behind this function is + * per-ractor. + */ +unsigned int rb_genrand_int32(void); + +/** + * Generates a `double` random number. + * + * @return A random number. + * @note This function shares the RNG with rb_genrand_int32(). + */ +double rb_genrand_real(void); + +/** + * Resets the RNG behind rb_genrand_int32()/rb_genrand_real(). + * + * @post The (now per-ractor) default RNG's internal state is cleared. + */ +void rb_reset_random_seed(void); + +/** + * Generates a String of random bytes. + * + * @param[in,out] rnd An instance of ::rb_cRandom. + * @param[in] n Requested number of bytes. + * @return An instance of ::rb_cString, of binary, of `n` bytes length, + * whose contents are random bits. + * + * @internal + * + * @shyouhei doesn't know if this is an Easter egg or an official feature, but + * this function can take a wider range of objects, such as `Socket::Ifaddr`. + * The arguments are just silently ignored and the default RNG is used instead, + * if they are non-RNG. + */ +VALUE rb_random_bytes(VALUE rnd, long n); + +/** + * Identical to rb_genrand_int32(), except it generates using the passed RNG. + * + * @param[in,out] rnd An instance of ::rb_cRandom. + * @return A random number. + */ +unsigned int rb_random_int32(VALUE rnd); + +/** + * Identical to rb_genrand_real(), except it generates using the passed RNG. + * + * @param[in,out] rnd An instance of ::rb_cRandom. + * @return A random number. + */ +double rb_random_real(VALUE rnd); + +/** + * Identical to rb_genrand_ulong_limited(), except it generates using the + * passed RNG. + * + * @param[in,out] rnd An instance of ::rb_cRandom. + * @param[in] limit Max possible return value. + * @return A random number, distributed in `[0, limit]` interval. + * @note Note it can return `limit`. + * @note Whether the return value distributes uniformly in the + * interval or not depends on how the argument RNG behaves; at + * least in case of MT19937 it does. + */ +unsigned long rb_random_ulong_limited(VALUE rnd, unsigned long limit); + +/** + * Generates a random number whose upper limit is `i`. + * + * @param[in] i Max possible return value. + * @return A random number, uniformly distributed in `[0, limit]` interval. + * @note Note it can return `i`. + */ +unsigned long rb_genrand_ulong_limited(unsigned long i); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_RANDOM_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/range.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/range.h new file mode 100644 index 0000000..1f7d7c3 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/range.h @@ -0,0 +1,89 @@ +#ifndef RBIMPL_INTERN_RANGE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_RANGE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cRange. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* range.c */ + +/** + * Creates a new Range. + * + * @param[in] beg "Left" or "lowest" endpoint of the range. + * @param[in] end "Right" or "highest" endpoint of the range. + * @param[in] excl Whether the range is open-ended. + * @exception rb_eArgError `beg` and `end` are not comparable. + * @note These days both endpoints can be ::RUBY_Qnil, which means that + * endpoint is unbound. + */ +VALUE rb_range_new(VALUE beg, VALUE end, int excl); + +RBIMPL_ATTR_NONNULL(()) +/** + * Deconstructs a numerical range. As the arguments are `long` based, it + * expects everything are in the `long` domain. + * + * @param[in] range A range of numerical endpoints. + * @param[out] begp Return value buffer. + * @param[out] lenp Return value buffer. + * @param[in] len Updated length. + * @param[in] err In case `len` is out of range... + * - `0`: returns ::RUBY_Qnil. + * - `1`: raises ::rb_eRangeError. + * - `2`: `beg` and `len` expanded accordingly. + * @exception rb_eTypeError `range` is not a numerical range. + * @exception rb_eRangeError `range` cannot fit into `long`. + * @retval RUBY_Qfalse `range` is not an ::rb_cRange. + * @retval RUBY_Qnil `len` is out of `range` but `err` is zero. + * @retval RUBY_Qtrue Otherwise. + * @post `beg` is the (possibly updated) left endpoint. + * @post `len` is the (possibly updated) length of the range. + * + * @internal + * + * The complex error handling switch reflects the fact that `Array#[]=` and + * `String#[]=` behave differently when they take ranges. + */ +VALUE rb_range_beg_len(VALUE range, long *begp, long *lenp, long len, int err); + +RBIMPL_ATTR_NONNULL(()) +/** + * Deconstructs a range into its components. + * + * @param[in] range Range or range-ish object. + * @param[out] begp Return value buffer. + * @param[out] endp Return value buffer. + * @param[out] exclp Return value buffer. + * @retval RUBY_Qfalse `range` is not an instance of ::rb_cRange. + * @retval RUBY_Qtrue Argument pointers are updated. + * @post `*begp` is the left endpoint of the range. + * @post `*endp` is the right endpoint of the range. + * @post `*exclp` is whether the range is open-ended or not. + */ +int rb_range_values(VALUE range, VALUE *begp, VALUE *endp, int *exclp); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_RANGE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/rational.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/rational.h new file mode 100644 index 0000000..ff4beca --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/rational.h @@ -0,0 +1,172 @@ +#ifndef RBIMPL_INTERN_RATIONAL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_RATIONAL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cRational. + */ +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/arithmetic/long.h" /* INT2FIX is here. */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* rational.c */ + +/** + * Identical to rb_rational_new(), except it skips argument validations. It is + * thus dangerous for extension libraries. For instance `1/0r` could be + * constructed using this. + * + * @param[in] num Numerator, an instance of ::rb_cInteger. + * @param[in] den Denominator, an instance of ::rb_cInteger. + * @exception rb_eTypeError Either argument is not an Integer. + * @return An instance of ::rb_cRational whose value is `(num/den)r`. + */ +VALUE rb_rational_raw(VALUE num, VALUE den); + +/** + * Shorthand of `(x/1)r`. As `x` is already an Integer, it practically + * converts it into a Rational of the identical value. + * + * @param[in] x An instance of ::rb_cInteger. + * @return An instance of ::rb_cRational, whose value is `(x/1)r`. + */ +#define rb_rational_raw1(x) rb_rational_raw((x), INT2FIX(1)) + +/** @alias{rb_rational_raw} */ +#define rb_rational_raw2(x,y) rb_rational_raw((x), (y)) + +/** + * Constructs a Rational, with reduction. This returns for instance `(2/3)r` + * for `rb_rational_new(INT2NUM(-384), INT2NUM(-576))`. + * + * @param[in] num Numerator, an instance of ::rb_cInteger. + * @param[in] den Denominator, an instance of ::rb_cInteger. + * @exception rb_eZeroDivError `den` is zero. + * @return An instance of ::rb_cRational whose value is `(num/den)r`. + */ +VALUE rb_rational_new(VALUE num, VALUE den); + +/** + * Shorthand of `(x/1)r`. As `x` is already an Integer, it practically + * converts it into a Rational of the identical value. + * + * @param[in] x An instance of ::rb_cInteger. + * @return An instance of ::rb_cRational, whose value is `(x/1)r`. + */ +#define rb_rational_new1(x) rb_rational_new((x), INT2FIX(1)) + +/** @alias{rb_rational_new} */ +#define rb_rational_new2(x,y) rb_rational_new((x), (y)) + +/** + * Converts various values into a Rational. This function accepts: + * + * - Instances of ::rb_cInteger (taken as-is), + * - Instances of ::rb_cRational (taken as-is), + * - Instances of ::rb_cFloat (applies `#to_r`), + * - Instances of ::rb_cComplex (applies `#to_r`), + * - Instances of ::rb_cString (applies `#to_r`), + * - Other objects that respond to `#to_r`. + * + * It (possibly recursively) applies `#to_r` until both sides become either + * Integer or Rational, then divides them. + * + * As a special case, passing ::RUBY_Qundef to `den` is the same as passing + * `RB_INT2NUM(1)`. + * + * @param[in] num Numerator (see above). + * @param[in] den Denominator (see above). + * @exception rb_eTypeError Passed something not described above. + * @exception rb_eFloatDomainError `#to_r` produced Nan/Inf. + * @exception rb_eZeroDivError `#to_r` produced zero for `den`. + * @return An instance of ::rb_cRational whose value is `(num/den)r`. + * + * @internal + * + * This was the implementation of `Kernel#Rational` before, but they diverged. + */ +VALUE rb_Rational(VALUE num, VALUE den); + +/** + * Shorthand of `(x/1)r`. It practically converts it into a Rational of the + * identical value. + * + * @param[in] x ::rb_cInteger, ::rb_cRational, or something that responds to + * `#to_r`. + * @return An instance of ::rb_cRational, whose value is `(x/1)r`. + */ +#define rb_Rational1(x) rb_Rational((x), INT2FIX(1)) + +/** @alias{rb_Rational} */ +#define rb_Rational2(x,y) rb_Rational((x), (y)) + +RBIMPL_ATTR_PURE() +/** + * Queries the numerator of the passed Rational. + * + * @param[in] rat An instance of ::rb_cRational. + * @return Its numerator part, which is an instance of ::rb_cInteger. + */ +VALUE rb_rational_num(VALUE rat); + +RBIMPL_ATTR_PURE() +/** + * Queries the denominator of the passed Rational. + * + * @param[in] rat An instance of ::rb_cRational. + * @return Its denominator part, which is an instance of ::rb_cInteger + * greater than or equal to one.. + */ +VALUE rb_rational_den(VALUE rat); + +/** + * Simplified approximation of a float. It returns a rational `rat` which + * satisfies: + * + * ``` + * flt - |prec| <= rat <= flt + |prec| + * ``` + * + * ```ruby + * 3.141592.rationalize(0.001) # => (201/64)r + * 3.141592.rationalize(0.01)' # => (22/7)r + * 3.141592.rationalize(0.1)' # => (16/5)r + * 3.141592.rationalize(1)' # => (3/1)r + * ``` + * + * @param[in] flt An instance of ::rb_cFloat to rationalise. + * @param[in] prec Another ::rb_cFloat, which is the "precision". + * @return Approximation of `flt`, in ::rb_cRational. + */ +VALUE rb_flt_rationalize_with_prec(VALUE flt, VALUE prec); + +/** + * Identical to rb_flt_rationalize_with_prec(), except it auto-detects + * appropriate precision depending on the passed value. + * + * @param[in] flt An instance of ::rb_cFloat to rationalise. + * @return Approximation of `flt`, in ::rb_cRational. + */ +VALUE rb_flt_rationalize(VALUE flt); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_RATIONAL_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/re.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/re.h new file mode 100644 index 0000000..31f5593 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/re.h @@ -0,0 +1,249 @@ +#ifndef RBIMPL_INTERN_RE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_RE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cRegexp. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* re.c */ + +/** + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + * + * @internal + * + * This was a function that switched between memcmp and rb_memcicmp depending + * on then-called `ruby_ignorecase`, or the `$=` global variable. That feature + * was abandoned in sometime around version 1.9.0. + */ +#define rb_memcmp memcmp + +/** + * Identical to st_locale_insensitive_strcasecmp(), except it is timing safe + * and returns something different. + * + * @param[in] s1 Comparison LHS. + * @param[in] s2 Comparison RHS. + * @param[in] n Comparison shall stop after first `n` bytes are scanned. + * @retval <0 `s1` is "less" than `s2`. + * @retval 0 Both sides converted into lowercase would be identical. + * @retval >0 `s1` is "greater" than `s2`. + * @note The "case" here means that of the POSIX Locale. + * + * @internal + * + * Can accept NULLs as long as n is also 0, and returns 0. + */ +int rb_memcicmp(const void *s1,const void *s2, long n); + +/** + * Asserts that the given MatchData is "occupied". MatchData shares its + * backend storages with its Regexp object. But programs can destructively + * tamper its contents. Calling this function beforehand shall prevent such + * modifications to spill over into other objects. + * + * @param[out] md Target instance of ::rb_cMatch. + * @post The object is "busy". + * + * @internal + * + * There is rb_match_unbusy internally, but extension libraries are left unable + * to do so. + */ +void rb_match_busy(VALUE md); + +/** + * Identical to rb_reg_nth_match(), except it just returns Boolean. This could + * skip allocating a returning string, resulting in reduced memory footprints + * if applicable. + * + * @param[in] n Match index. + * @param[in] md An instance of ::rb_cMatch. + * @exception rb_eTypeError `md` is not initialised. + * @retval RUBY_Qnil There is no `n`-th capture. + * @retval RUBY_Qfalse There is a `n`-th capture and is empty. + * @retval RUBY_Qtrue There is a `n`-th capture that has something. + * + * @internal + * + * @shyouhei wonders: why there are both rb_reg_match_defined() and + * rb_match_nth_defined, which are largely the same things, but do not share + * their implementations at all? + */ +VALUE rb_reg_nth_defined(int n, VALUE md); + +/** + * Queries the nth captured substring. + * + * @param[in] n Match index. + * @param[in] md An instance of ::rb_cMatch. + * @exception rb_eTypeError `md` is not initialised. + * @retval RUBY_Qnil There is no `n`-th capture. + * @retval otherwise An allocated instance of ::rb_cString containing + * the contents captured. + */ +VALUE rb_reg_nth_match(int n, VALUE md); + +/** + * Queries the index of the given named capture. Captures could be named. But + * that doesn't mean named ones are not indexed. A regular expression can mix + * named and non-named captures, and they are all indexed. This function + * converts from a name to its index. + * + * @param[in] match An instance of ::rb_cMatch. + * @param[in] backref Capture name, in String, Symbol, or Numeric. + * @exception rb_eIndexError No such named capture. + * @return The index of the given name. + */ +int rb_reg_backref_number(VALUE match, VALUE backref); + +/** + * This just returns the argument, stringified. What a poor name. + * + * @param[in] md An instance of ::rb_cMatch. + * @return Its 0th capture (i.e. entire matched string). + */ +VALUE rb_reg_last_match(VALUE md); + +/** + * The portion of the original string before the given match. + * + * @param[in] md An instance of ::rb_cMatch. + * @return Its "prematch". This is perl's ``$```. + */ +VALUE rb_reg_match_pre(VALUE md); + +/** + * The portion of the original string after the given match. + * + * @param[in] md An instance of ::rb_cMatch. + * @return Its "postmatch". This is perl's `$'`. + */ +VALUE rb_reg_match_post(VALUE md); + +/** + * The portion of the original string that captured at the very last. + * + * @param[in] md An instance of ::rb_cMatch. + * @return Its "lastmatch". This is perl's `$+`. + */ +VALUE rb_reg_match_last(VALUE md); + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define HAVE_RB_REG_NEW_STR 1 + +/** + * Identical to rb_reg_new(), except it takes the expression in Ruby's string + * instead of C's. + * + * @param[in] src Source code in String. + * @param[in] opts Options e.g. ONIG_OPTION_MULTILINE. + * @exception rb_eRegexpError `src` and `opts` do not interface. + * @return Allocated new instance of ::rb_cRegexp. + */ +VALUE rb_reg_new_str(VALUE src, int opts); + +RBIMPL_ATTR_NONNULL(()) +/** + * Creates a new Regular expression. + * + * @param[in] src Source code. + * @param[in] len `strlen(src)`. + * @param[in] opts Options e.g. ONIG_OPTION_MULTILINE. + * @return Allocated new instance of ::rb_cRegexp. + */ +VALUE rb_reg_new(const char *src, long len, int opts); + +/** + * Allocates an instance of ::rb_cRegexp. + * + * @private + * + * Nobody should call this function. Regular expressions that are not + * initialised must not exist in the wild. + */ +VALUE rb_reg_alloc(void); + +/** + * Initialises an instance of ::rb_cRegexp. + * + * @private + * + * This just raises for ordinal regexp objects. Extension libraries must not + * use. + */ +VALUE rb_reg_init_str(VALUE re, VALUE s, int options); + +/** + * This is the match operator. + * + * @param[in] re An instance of ::rb_cRegexp. + * @param[in] str An instance of ::rb_cString. + * @exception rb_eTypeError `str` is not a string. + * @exception rb_eRegexpError Error inside of Onigmo (unlikely). + * @retval RUBY_Qnil Match failed. + * @retval otherwise Matched position (character index inside of + * `str`). + * @post `Regexp.last_match` is updated. + * @post `$&`, `$~`, etc., are updated. + * @note If you do this in ruby, named captures are assigned to local + * variable of the local scope. But that doesn't happen here. The + * assignment is done by the interpreter. + */ +VALUE rb_reg_match(VALUE re, VALUE str); + +/** + * Identical to rb_reg_match(), except it matches against rb_lastline_get() + * (or, the `$_`). + * + * @param[in] re An instance of ::rb_cRegexp. + * @exception rb_eRegexpError Error inside of Onigmo (unlikely). + * @retval RUBY_Qnil Match failed or `$_` is absent. + * @retval otherwise Matched position (character index inside of + * `$_`). + * @post `Regexp.last_match` is updated. + * @post `$&`, `$~`, etc., are updated. + */ +VALUE rb_reg_match2(VALUE re); + +/** + * Queries the options of the passed regular expression. + * + * @param[in] re An instance of ::rb_cRegexp. + * @return Its options. + * @note Possible return values are defined in Onigmo.h. + */ +int rb_reg_options(VALUE re); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_RE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/ruby.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/ruby.h new file mode 100644 index 0000000..efe6142 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/ruby.h @@ -0,0 +1,77 @@ +#ifndef RBIMPL_INTERN_RUBY_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_RUBY_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Process-global APIs. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* ruby.c */ +/** @alias{rb_get_argv} */ +#define rb_argv rb_get_argv() + +/** + * The value of `$0` at process bootup. + * + * @note This is just a snapshot of `$0`, not the backend storage of it. `$0` + * could become something different because it is a writable global + * variable. Modifying it for instance affects `ps(1)` output. Don't + * assume they are synced. + */ +RUBY_EXTERN VALUE rb_argv0; + +/* io.c */ + +/** + * Queries the arguments passed to the current process that you can access from + * Ruby as `ARGV`. + * + * @return An array of strings containing arguments passed to the process. + */ +VALUE rb_get_argv(void); + +/* ruby.c */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Loads the given file. This function opens the given pathname for reading, + * parses the contents as a Ruby script, and returns an opaque "node" pointer. + * You can then pass it to ruby_run_node() for evaluation. + * + * @param[in] file File name, or "-" to read from stdin. + * @return Opaque "node" pointer. + */ +void *rb_load_file(const char *file); + +/** + * Identical to rb_load_file(), except it takes the argument as a Ruby's string + * instead of C's. + * + * @param[in] file File name, or "-" to read from stdin. + * @return Opaque "node" pointer. + */ +void *rb_load_file_str(VALUE file); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_RUBY_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/select.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/select.h new file mode 100644 index 0000000..fabc287 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/select.h @@ -0,0 +1,86 @@ +#ifndef RBIMPL_INTERN_SELECT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_SELECT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs to provide ::rb_fd_select(). + * @note Functions and structs defined in this header file are not + * necessarily ruby-specific. They don't need ::VALUE etc. + */ +#include "ruby/internal/config.h" + +#ifdef HAVE_SYS_TYPES_H +# include /* for NFDBITS (BSD Net/2) */ +#endif + +#include "ruby/internal/dllexport.h" + +/* thread.c */ +#if defined(NFDBITS) && defined(HAVE_RB_FD_INIT) +# include "ruby/internal/intern/select/largesize.h" +#elif defined(_WIN32) +# include "ruby/internal/intern/select/win32.h" +# /** Does nothing (defined for compatibility). */ +# define rb_fd_resize(n, f) ((void)(f)) +#else +# include "ruby/internal/intern/select/posix.h" +# /** Does nothing (defined for compatibility). */ +# define rb_fd_resize(n, f) ((void)(f)) +#endif + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +struct timeval; + +/** + * Waits for multiple file descriptors at once. This is basically a wrapper of + * system-provided select() with releasing GVL, to allow other Ruby threads run + * in parallel. + * + * @param[in] nfds Max FD in everything passed, plus one. + * @param[in,out] rfds Set of FDs to wait for reads. + * @param[in,out] wfds Set of FDs to wait for writes. + * @param[in,out] efds Set of FDs to wait for OOBs. + * @param[in,out] timeout Max blocking duration. + * @retval -1 Failed, errno set. + * @retval 0 Timeout exceeded. + * @retval otherwise Total number of file descriptors returned. + * @post `rfds` contains readable FDs. + * @post `wfds` contains writable FDs. + * @post `efds` contains exceptional FDs. + * @post `timeout` is the time left. + * @note All pointers are allowed to be null pointers. + * + * Although backend threads can run in parallel of this function, touching a + * file descriptor from multiple threads could be problematic. For instance + * what happens when a thread closes a file descriptor that is selected by + * someone else, vastly varies among operating systems. You would better avoid + * touching an fd from more than one threads. + * + * @internal + * + * Although any file descriptors are possible here, it makes completely no + * sense to pass a descriptor that is not `O_NONBLOCK`. If you want to know + * the reason for this limitatuon in detail, you might find this thread super + * interesting: https://lkml.org/lkml/2004/10/6/117 + */ +int rb_thread_fd_select(int nfds, rb_fdset_t *rfds, rb_fdset_t *wfds, rb_fdset_t *efds, struct timeval *timeout); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_SELECT_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/select/largesize.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/select/largesize.h new file mode 100644 index 0000000..d65f088 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/select/largesize.h @@ -0,0 +1,214 @@ +#ifndef RBIMPL_INTERN_SELECT_LARGESIZE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_SELECT_LARGESIZE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs to provide ::rb_fd_select(). + * + * Several Unix platforms support file descriptors bigger than FD_SETSIZE in + * `select(2)` system call. + * + * - Linux 2.2.12 (?) + * + * - NetBSD 1.2 (src/sys/kern/sys_generic.c:1.25) + * `select(2)` documents how to allocate fd_set dynamically. + * http://netbsd.gw.com/cgi-bin/man-cgi?select++NetBSD-4.0 + * + * - FreeBSD 2.2 (src/sys/kern/sys_generic.c:1.19) + * + * - OpenBSD 2.0 (src/sys/kern/sys_generic.c:1.4) + * `select(2)` documents how to allocate fd_set dynamically. + * http://www.openbsd.org/cgi-bin/man.cgi?query=select&manpath=OpenBSD+4.4 + * + * - Solaris 8 has `select_large_fdset` + * + * - Mac OS X 10.7 (Lion) + * `select(2)` returns `EINVAL` if `nfds` is greater than `FD_SET_SIZE` and + * `_DARWIN_UNLIMITED_SELECT` (or `_DARWIN_C_SOURCE`) isn't defined. + * http://developer.apple.com/library/mac/#releasenotes/Darwin/SymbolVariantsRelNotes/_index.html + * + * When `fd_set` is not big enough to hold big file descriptors, it should be + * allocated dynamically. Note that this assumes `fd_set` is structured as + * bitmap. + * + * `rb_fd_init` allocates the memory. + * `rb_fd_term` frees the memory. + * `rb_fd_set` may re-allocate bitmap. + * + * So `rb_fd_set` doesn't reject file descriptors bigger than `FD_SETSIZE`. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" + +/**@cond INTERNAL_MACRO */ +#define rb_fd_ptr rb_fd_ptr +#define rb_fd_max rb_fd_max +/** @endcond */ + +struct timeval; + +/** + * The data structure which wraps the fd_set bitmap used by select(2). This + * allows Ruby to use FD sets larger than that allowed by historic limitations + * on modern platforms. + */ +typedef struct { + int maxfd; /**< Maximum allowed number of FDs. */ + fd_set *fdset; /**< File descriptors buffer */ +} rb_fdset_t; + +RBIMPL_SYMBOL_EXPORT_BEGIN() +RBIMPL_ATTR_NONNULL(()) +/** + * (Re-)initialises a fdset. One must be initialised before other `rb_fd_*` + * operations. Analogous to calling `malloc(3)` to allocate an `fd_set`. + * + * @param[out] f An fdset to squash. + * @post `f` holds no file descriptors. + */ +void rb_fd_init(rb_fdset_t *f); + +RBIMPL_ATTR_NONNULL(()) +/** + * Destroys the ::rb_fdset_t, releasing any memory and resources it used. It + * must be reinitialised using rb_fd_init() before future use. Analogous to + * calling `free(3)` to release memory for an `fd_set`. + * + * @param[out] f An fdset to squash. + * @post `f` holds no file descriptors. + */ +void rb_fd_term(rb_fdset_t *f); + +RBIMPL_ATTR_NONNULL(()) +/** + * Wipes out the current set of FDs. + * + * @param[out] f The fdset to clear. + * @post `f` has no FDs. + */ +void rb_fd_zero(rb_fdset_t *f); + +RBIMPL_ATTR_NONNULL(()) +/** + * Sets an fd to a fdset. + * + * @param[in] fd A file descriptor. + * @param[out] f Target fdset. + * @post `f` holds `fd`. + */ +void rb_fd_set(int fd, rb_fdset_t *f); + +RBIMPL_ATTR_NONNULL(()) +/** + * Releases a specific FD from the given fdset. + * + * @param[in] fd Target FD. + * @param[out] f The fdset that holds `fd`. + * @post `f` doesn't hold n. + */ +void rb_fd_clr(int fd, rb_fdset_t *f); + +RBIMPL_ATTR_NONNULL(()) +RBIMPL_ATTR_PURE() +/** + * Queries if the given FD is in the given set. + * + * @param[in] fd Target FD. + * @param[in] f The fdset to scan. + * @retval 1 Yes there is. + * @retval 0 No there isn't. + * @see http://www.freebsd.org/cgi/query-pr.cgi?pr=91421 + */ +int rb_fd_isset(int fd, const rb_fdset_t *f); + +/** + * Destructively overwrites an fdset with another. + * + * @param[out] dst Target fdset. + * @param[in] src Source fdset. + * @param[in] max Maximum number of file descriptors to copy. + * @post `dst` is a copy of `src`. + */ +void rb_fd_copy(rb_fdset_t *dst, const fd_set *src, int max); + +/** + * Identical to rb_fd_copy(), except it copies unlimited number of file + * descriptors. + * + * @param[out] dst Target fdset. + * @param[in] src Source fdset. + * @post `dst` is a copy of `src`. + */ +void rb_fd_dup(rb_fdset_t *dst, const rb_fdset_t *src); + +/** + * Waits for multiple file descriptors at once. + * + * @param[in] nfds Max FD in everything passed, plus one. + * @param[in,out] rfds Set of FDs to wait for reads. + * @param[in,out] wfds Set of FDs to wait for writes. + * @param[in,out] efds Set of FDs to wait for OOBs. + * @param[in,out] timeout Max blocking duration. + * @retval -1 Failed, errno set. + * @retval 0 Timeout exceeded. + * @retval otherwise Total number of file descriptors returned. + * @post `rfds` contains readable FDs. + * @post `wfds` contains writable FDs. + * @post `efds` contains exceptional FDs. + * @post `timeout` is the time left. + * @note All pointers are allowed to be null pointers. + */ +int rb_fd_select(int nfds, rb_fdset_t *rfds, rb_fdset_t *wfds, rb_fdset_t *efds, struct timeval *timeout); +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_NONNULL(()) +RBIMPL_ATTR_PURE() +/** + * Raw pointer to `fd_set`. + * + * @param[in] f Target fdset. + * @retval NULL `f` is already terminated by rb_fd_term(). + * @retval otherwise Underlying fd_set. + * + * @internal + * + * Extension library must not touch raw pointers. It was a bad idea to let + * them use it. + */ +static inline fd_set * +rb_fd_ptr(const rb_fdset_t *f) +{ + return f->fdset; +} + +RBIMPL_ATTR_NONNULL(()) +RBIMPL_ATTR_PURE() +/** + * It seems this function has no use. Maybe just remove? + * + * @param[in] f A set. + * @return Number of file descriptors stored. + */ +static inline int +rb_fd_max(const rb_fdset_t *f) +{ + return f->maxfd; +} + +#endif /* RBIMPL_INTERN_SELECT_LARGESIZE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/select/posix.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/select/posix.h new file mode 100644 index 0000000..0a9b0b2 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/select/posix.h @@ -0,0 +1,144 @@ +#ifndef RBIMPL_INTERN_SELECT_POSIX_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_SELECT_POSIX_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs to provide ::rb_fd_select(). + */ +#include "ruby/internal/config.h" + +#ifdef HAVE_SYS_SELECT_H +# include /* for select(2) (modern POSIX) */ +#endif + +#ifdef HAVE_UNISTD_H +# include /* for select(2) (archaic UNIX) */ +#endif + +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/noalias.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" + +/** + * The data structure which wraps the fd_set bitmap used by `select(2)`. This + * allows Ruby to use FD sets larger than what has been historically allowed on + * modern platforms. + * + * @internal + * + * ... but because this header file is included only when the system is with + * that "historic restrictions", this is nothing more than an alias of fd_set. + */ +typedef fd_set rb_fdset_t; + +/** Clears the given ::rb_fdset_t. */ +#define rb_fd_zero FD_ZERO + +/** Sets the given fd to the ::rb_fdset_t. */ +#define rb_fd_set FD_SET + +/** Unsets the given fd from the ::rb_fdset_t. */ +#define rb_fd_clr FD_CLR + +/** Queries if the given fd is in the ::rb_fdset_t. */ +#define rb_fd_isset FD_ISSET + +/** Initialises the :given :rb_fdset_t. */ +#define rb_fd_init FD_ZERO + +/** Waits for multiple file descriptors at once. */ +#define rb_fd_select select + +/**@cond INTERNAL_MACRO */ +#define rb_fd_copy rb_fd_copy +#define rb_fd_dup rb_fd_dup +#define rb_fd_ptr rb_fd_ptr +#define rb_fd_max rb_fd_max +/** @endcond */ + +RBIMPL_ATTR_NONNULL(()) +RBIMPL_ATTR_NOALIAS() +/** + * Destructively overwrites an fdset with another. + * + * @param[out] dst Target fdset. + * @param[in] src Source fdset. + * @param[in] n Unused parameter. + * @post `dst` is a copy of `src`. + */ +static inline void +rb_fd_copy(rb_fdset_t *dst, const fd_set *src, int n) +{ + *dst = *src; +} + +RBIMPL_ATTR_NONNULL(()) +RBIMPL_ATTR_NOALIAS() +/** + * Destructively overwrites an fdset with another. + * + * @param[out] dst Target fdset. + * @param[in] src Source fdset. + * @post `dst` is a copy of `src`. + */ +static inline void +rb_fd_dup(rb_fdset_t *dst, const fd_set *src) +{ + *dst = *src; +} + +RBIMPL_ATTR_PURE() +/* :TODO: can this function be __attribute__((returns_nonnull)) or not? */ +/** + * Raw pointer to `fd_set`. + * + * @param[in] f Target fdset. + * @return Underlying fd_set. + * + * @internal + * + * Extension library must not touch raw pointers. It was a bad idea to let + * them use it. + */ +static inline fd_set * +rb_fd_ptr(rb_fdset_t *f) +{ + return f; +} + +RBIMPL_ATTR_CONST() +/** + * It seems this function has no use. Maybe just remove? + * + * @param[in] f A set. + * @return Number of file descriptors stored. + */ +static inline int +rb_fd_max(const rb_fdset_t *f) +{ + return FD_SETSIZE; +} + +/** @cond INTERNAL_MACRO */ +/* :FIXME: What are these? They don't exist for sibling implementations. */ +#define rb_fd_init_copy(d, s) (*(d) = *(s)) +#define rb_fd_term(f) ((void)(f)) +/** @endcond */ + +#endif /* RBIMPL_INTERN_SELECT_POSIX_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/signal.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/signal.h new file mode 100644 index 0000000..84f7558 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/signal.h @@ -0,0 +1,152 @@ +#ifndef RBIMPL_INTERN_SIGNAL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_SIGNAL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Signal handling APIs. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* signal.c */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Sends a signal ("kills") to processes. + * + * The first argument is the signal, either in: + * + * - Numerical representation (e.g. `9`), or + * - Textual representation of canonical (e.g. `:SIGKILL`) name or + * abbreviated (e.g. `:KILL`) name, either in ::rb_cSymbol or ::rb_cString. + * + * All the remaining arguments are numerical representations of process IDs. + * This function iterates over them to send the specified signal. + * + * You can specify both negative PIDs and negative signo to this function: + * + * ``` + * sig \ pid | >= 1 | == 0 | == -1 | <= -2 + * ===========+======+======+=======+======= + * > 0 | #1 | #2 | #3 | #4 + * == 0 | #5 | #6 | #7 | #8 + * < 0 | #9 | #10 | #11 + * ``` + * + * - Case #1: When signo and PID are both positive, this function sends the + * specified signal to the specified process (intuitive). + * + * - Case #2: When signo is positive and PID is zero, this function sends + * that signal to the current process group. + * + * - Case #3: When signo is positive and PID is -1, this function sends that + * signal to everything that the current process is allowed to kill. + * + * - Case #4: When signo is positive and PID is negative (but not -1), this + * function sends that signal to every processes in a process group, whose + * process group ID is the absolute value of the passed PID. + * + * - Case #5: When signo is zero and PID is positive, this function just + * checks for the existence of the specified process and doesn't send + * anything to anyone. In case the process is absent `Errno::ESRCH` is + * raised. + * + * - Case #6: When signo and PID are both zero, this function checks for the + * existence of the current process group. And it must do. This function + * is effectively a no-op then. + * + * - Case #7: When signo is zero and PID is -1, this function checks if there + * is any other process that the current process can kill. At least init + * (PID 1) must exist, so this must not fail. + * + * - Case #8: When signo is zero and PID is negative (but not -1), this + * function checks if there is a process group whose process group ID is + * the absolute value of the passed PID. In case the process group is + * absent `Errno::ESRCH` is raised. + * + * - Case #9: When signo is negative and PID is positive, this function sends + * the absolute value of the passed signo to the process group specified as + * the PID. + * + * - Case #10: When signo is negative and PID is zero, it is highly expected + * that this function sends the absolute value of the passed signo to the + * current process group. Strictly speaking, IEEE Std 1003.1-2017 + * specifies that this (`killpg(3posix)` with an argument of zero) is an + * undefined behaviour. But no operating system is known so far that does + * things differently. + * + * - Case #11: When signo and PID are both negative, the behaviour of this + * function depends on how `killpg(3)` works. On Linux, it seems such + * attempt is strictly prohibited and `Errno::EINVAL` is raised. But on + * macOS, it seems it tries to to send the signal actually to the process + * group. + * + * @note Above description is in fact different from how `kill(2)` works. + * We interpret the passed arguments before passing them through to + * system calls. + * @param[in] argc Number of objects in `argv`. + * @param[in] argv Signal, followed by target PIDs. + * @exception rb_eArgError Unknown signal name. + * @exception rb_eSystemCallError Various errors sending signal to processes. + * @return Something numeric. The meaning of this return value is unclear. + * It seems in case of #1 above, this could be the body count. But + * other cases remain mysterious. + */ +VALUE rb_f_kill(int argc, const VALUE *argv); + +/* This must be private, @shyouhei guesses. */ +#ifdef POSIX_SIGNAL +#define posix_signal ruby_posix_signal +void (*posix_signal(int, void (*)(int)))(int); +#endif + +RBIMPL_ATTR_PURE() +/** + * Queries the name of the signal. It returns for instance `"KILL"` for + * SIGKILL. + * + * @param[in] signo Signal number to query. + * @retval 0 No such signal. + * @retval otherwise A pointer to a static C string that is the name of + * the signal. + * @warning Don't free the return value. + */ +const char *ruby_signal_name(int signo); + +/** + * Pretends as if there was no custom signal handler. This function sets the + * signal action to SIG_DFL, then kills itself. + * + * @param[in] sig The signal. + * @post Previous signal handler is lost. + * @post Passed signal is sent to the current process. + * + * @internal + * + * @shyouhei doesn't understand the needs of this function being visible from + * extension libraries. + */ +void ruby_default_signal(int sig); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_SIGNAL_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/sprintf.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/sprintf.h new file mode 100644 index 0000000..aedc0f9 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/sprintf.h @@ -0,0 +1,159 @@ +#ifndef RBIMPL_INTERN_SPRINTF_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_SPRINTF_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Our own private `printf(3)`. + */ +#include "ruby/internal/attr/format.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* sprintf.c */ + +/** + * Identical to rb_str_format(), except how the arguments are arranged. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv A format string, followed by its arguments. + * @return A rendered new instance of ::rb_cString. + * + * @internal + * + * You can safely pass NULL to `argv`. Doesn't make any sense though. + */ +VALUE rb_f_sprintf(int argc, const VALUE *argv); + +RBIMPL_ATTR_NONNULL((1)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2) +/** + * Ruby's extended `sprintf(3)`. We ended up reinventing the entire `printf` + * business because we don't want to depend on locales. OS-provided `printf` + * routines might or might not, which caused instabilities of the result + * strings. + * + * The format sequence is a mixture of format specifiers and other verbatim + * contents. Each format specifier starts with a `%`, and has the following + * structure: + * + * ``` + * %[flags][width][.precision][length]conversion + * ``` + * + * This function supports flags of ` `, `#`, `+`, `-`, `0`, width of + * non-negative decimal integer and `*`, precision of non-negative decimal + * integers and `*`, length of `L`, `h`, `t`, `z`, `l`, `ll`, `q`, conversions + * of `A`, `D`, `E`, `G`, `O`, `U`, `X`, `a`, `c`, `d`, `e`, `f`, `g`, `i`, + * `n`, `o`, `p`, `s`, `u`, `x`, and `%`. In case of `_WIN32` it also supports + * `I`. And additionally, it supports magical `PRIsVALUE` macro that can + * stringise arbitrary Ruby objects: + * + * ```CXX + * rb_sprintf("|%"PRIsVALUE"|", RUBY_Qtrue); // => "|true|" + * rb_sprintf("%+"PRIsVALUE, rb_stdin); // => "#>" + * ``` + * + * @param[in] fmt A `printf`-like format specifier. + * @param[in] ... Variadic number of contents to format. + * @return A rendered new instance of ::rb_cString. + * + * @internal + * + * :FIXME: We can improve this document. + */ +VALUE rb_sprintf(const char *fmt, ...); + +RBIMPL_ATTR_NONNULL((1)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 0) +/** + * Identical to rb_sprintf(), except it takes a `va_list`. + * + * @param[in] fmt A `printf`-like format specifier. + * @param[in] ap Contents to format. + * @return A rendered new instance of ::rb_cString. + */ +VALUE rb_vsprintf(const char *fmt, va_list ap); + +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) +/** + * Identical to rb_sprintf(), except it renders the output to the specified + * object rather than creating a new one. + * + * @param[out] dst String to modify. + * @param[in] fmt A `printf`-like format specifier. + * @param[in] ... Variadic number of contents to format. + * @exception rb_eTypeError `dst` is not a String. + * @return Passed `dst`. + * @post `dst` has the rendered output appended to its end. + */ +VALUE rb_str_catf(VALUE dst, const char *fmt, ...); + +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 0) +/** + * Identical to rb_str_catf(), except it takes a `va_list`. It can also be + * seen as a routine identical to rb_vsprintf(), except it renders the output + * to the specified object rather than creating a new one. + * + * @param[out] dst String to modify. + * @param[in] fmt A `printf`-like format specifier. + * @param[in] ap Contents to format. + * @exception rb_eTypeError `dst` is not a String. + * @return Passed `dst`. + * @post `dst` has the rendered output appended to its end. + */ +VALUE rb_str_vcatf(VALUE dst, const char *fmt, va_list ap); + +/** + * Formats a string. + * + * Returns the string resulting from applying `fmt` to `argv`. The format + * sequence is a mixture of format specifiers and other verbatim contents. + * Each format specifier starts with a `%`, and has the following structure: + * + * ``` + * %[flags][width][.precision]type + * ``` + * + * ... which is different from that of rb_sprintf(). Because ruby has no + * `short` or `long`, there is no way to specify a "length" of an argument. + * + * This function supports flags of ` `, `#`, `+`, `-`, `<>`, `{}`, with of + * non-negative decimal integer and `$`, `*`, precision of non-negative decimal + * integer and `$`, `*`, type of `A`, `B`, `E`, `G`, `X`, `a`, `b`, `c`, `d`, + * `e`, `f`, `g`, `i`, `o`, `p`, `s`, `u`, `x`, `%`. This list is also + * (largely the same but) not identical to that of rb_sprintf(). + * + * @param[in] argc Number of objects in `argv`. + * @param[in] argv Format arguments. + * @param[in] fmt A printf-like format specifier. + * @exception rb_eTypeError `fmt` is not a string. + * @exception rb_eArgError Failed to parse `fmt`. + * @return A rendered new instance of ::rb_cString. + * @note Everything it takes must be Ruby objects. + * + */ +VALUE rb_str_format(int argc, const VALUE *argv, VALUE fmt); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_SPRINTF_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/string.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/string.h new file mode 100644 index 0000000..3083125 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/string.h @@ -0,0 +1,1757 @@ +#ifndef RBIMPL_INTERN_STRING_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_STRING_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cString. + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#ifdef HAVE_STRING_H +# include +#endif + +#ifdef HAVE_STDINT_H +# include +#endif + +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/constant_p.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/variable.h" /* rb_gvar_setter_t */ +#include "ruby/st.h" /* st_index_t */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* string.c */ + +/** + * Allocates an instance of ::rb_cString. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString, of `len` bytes length, of + * "binary" encoding, whose contents are verbatim copy of `ptr`. + * @pre At least `len` bytes of continuous memory region shall be + * accessible via `ptr`. + */ +VALUE rb_str_new(const char *ptr, long len); + +/** + * Identical to rb_str_new(), except it assumes the passed pointer is a pointer + * to a C string. + * + * @param[in] ptr A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @exception rb_eArgError `ptr` is a null pointer. + * @return An instance of ::rb_cString, of "binary" encoding, whose + * contents are verbatim copy of `ptr`. + * @pre `ptr` must not be a null pointer. + */ +VALUE rb_str_new_cstr(const char *ptr); + +/** + * Identical to rb_str_new_cstr(), except it takes a Ruby's string instead of + * C's. Implementation wise it creates a string that shares the backend memory + * region with the receiver. So the name. But there is no way for extension + * libraries to know if a string is of such variant. + * + * @param[in] str An object of ::RString. + * @return An allocated instance of ::rb_cString, which shares the + * encoding, length, and contents with the passed string. + * @pre `str` must not be any arbitrary object except ::RString. + * @note Use #StringValue to enforce the precondition. + */ +VALUE rb_str_new_shared(VALUE str); + +/** + * Creates a frozen copy of the string, if necessary. This function does + * nothing when the passed string is already frozen. Otherwise, it allocates a + * copy of it, which is frozen. The passed string is untouched either ways. + * + * @param[in] str An object of ::RString. + * @return Something frozen. + * @pre `str` must not be any arbitrary object except ::RString. + * @note Use #StringValue to enforce the precondition. + */ +VALUE rb_str_new_frozen(VALUE str); + +/** + * Identical to rb_str_new(), except it takes the class of the allocating + * object. + * + * @param[in] obj A string-ish object. + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of the class of `obj`, of `len` bytes length, of + * "binary" encoding, whose contents are verbatim copy of `ptr`. + * @pre At least `len` bytes of continuous memory region shall be + * accessible via `ptr`. + * + * @internal + * + * Why it doesn't take an instance of ::rb_cClass? + */ +VALUE rb_str_new_with_class(VALUE obj, const char *ptr, long len); + +/** + * Identical to rb_str_new(), except it generates a string of "default + * external" encoding. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString. In case encoding conversion from + * "default internal" to "default external" is fully defined over + * the given contents, then the return value is a string of + * "default external" encoding, whose contents are the converted + * ones. Otherwise the string is a junk. + * @warning It doesn't raise on a conversion failure and silently ends up in + * a corrupted output. You can know the failure by querying + * `valid_encoding?` of the result object. + */ +VALUE rb_external_str_new(const char *ptr, long len); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_external_str_new(), except it assumes the passed pointer is + * a pointer to a C string. It can also be seen as a routine identical to + * rb_str_new_cstr(), except it generates a string of "default external" + * encoding. + * + * @param[in] ptr A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString. In case encoding conversion from + * "default internal" to "default external" is fully defined over + * the given contents, then the return value is a string of + * "default external" encoding, whose contents are the converted + * ones. Otherwise the string is a junk. + * @warning It doesn't raise on a conversion failure and silently ends up in + * a corrupted output. You can know the failure by querying + * `valid_encoding?` of the result object. + * @pre `ptr` must not be a null pointer. + */ +VALUE rb_external_str_new_cstr(const char *ptr); + +/** + * Identical to rb_str_new(), except it generates a string of "locale" + * encoding. It can also be seen as a routine identical to + * rb_external_str_new(), except it generates a string of "locale" encoding + * instead of "default external" encoding. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString. In case encoding conversion from + * "default internal" to "locale" is fully defined over the given + * contents, then the return value is a string of "locale" + * encoding, whose contents are the converted ones. Otherwise the + * string is a junk. + * @warning It doesn't raise on a conversion failure and silently ends up in + * a corrupted output. You can know the failure by querying + * `valid_encoding?` of the result object. + */ +VALUE rb_locale_str_new(const char *ptr, long len); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_locale_str_new(), except it assumes the passed pointer is a + * pointer to a C string. It can also be seen as a routine identical to + * rb_external_str_new_cstr(), except it generates a string of "locale" + * encoding instead of "default external". + * + * @param[in] ptr A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString. In case encoding conversion from + * "default internal" to "locale" is fully defined over the given + * contents, then the return value is a string of "locale" + * encoding, whose contents are the converted ones. Otherwise the + * string is a junk. + * @warning It doesn't raise on a conversion failure and silently ends up in + * a corrupted output. You can know the failure by querying + * `valid_encoding?` of the result object. + * @pre `ptr` must not be a null pointer. + */ +VALUE rb_locale_str_new_cstr(const char *ptr); + +/** + * Identical to rb_str_new(), except it generates a string of "filesystem" + * encoding. It can also be seen as a routine identical to + * rb_external_str_new(), except it generates a string of "filesystem" encoding + * instead of "default external" encoding. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString. In case encoding conversion from + * "default internal" to "filesystem" is fully defined over the + * given contents, then the return value is a string of + * "filesystem" encoding, whose contents are the converted ones. + * Otherwise the string is a junk. + * @warning It doesn't raise on a conversion failure and silently ends up in + * a corrupted output. You can know the failure by querying + * `valid_encoding?` of the result object. + */ +VALUE rb_filesystem_str_new(const char *ptr, long len); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_filesystem_str_new(), except it assumes the passed pointer + * is a pointer to a C string. It can also be seen as a routine identical to + * rb_external_str_new_cstr(), except it generates a string of "filesystem" + * encoding instead of "default external". + * + * @param[in] ptr A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString. In case encoding conversion from + * "default internal" to "filesystem" is fully defined over the + * given contents, then the return value is a string of + * "filesystem" encoding, whose contents are the converted ones. + * Otherwise the string is a junk. + * @warning It doesn't raise on a conversion failure and silently ends up in + * a corrupted output. You can know the failure by querying + * `valid_encoding?` of the result object. + * @pre `ptr` must not be a null pointer. + */ +VALUE rb_filesystem_str_new_cstr(const char *ptr); + +/** + * Allocates a "string buffer". A string buffer here is an instance of + * ::rb_cString, whose capacity is bigger than the length of it. If you can + * say that a string grows to a specific amount of bytes, this could be + * effective than resizing a string over and over again and again. + * + * @param[in] capa Designed capacity of the generating string. + * @return An empty string, of "binary" encoding, whose capacity is `capa`. + */ +VALUE rb_str_buf_new(long capa); + +RBIMPL_ATTR_NONNULL(()) +/** + * This is a rb_str_buf_new() + rb_str_buf_cat() combo. + * + * @param[in] ptr A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString, of "binary" encoding, whose + * contents are verbatim copy of `ptr`. + * @pre `ptr` must not be a null pointer. + * + * @internal + * + * This must be identical to rb_str_new_cstr(), except done in inefficient way? + * @shyouhei doesn't understand why this is not a simple alias. + */ +VALUE rb_str_buf_new_cstr(const char *ptr); + +/** + * Allocates a "temporary" string. This is a hidden empty string. Handy on + * occasions. + * + * @param[in] len Designed length of the string. + * @return A hidden, empty string. + * @see rb_obj_hide() + */ +VALUE rb_str_tmp_new(long len); + +/** + * Identical to rb_str_new(), except it generates a string of "US ASCII" + * encoding. This is different from rb_external_str_new(), not only for the + * output encoding, but also it doesn't convert the contents. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString, of `len` bytes length, of + * "US ASCII" encoding, whose contents are verbatim copy of `ptr`. + */ +VALUE rb_usascii_str_new(const char *ptr, long len); + +/** + * Identical to rb_str_new_cstr(), except it generates a string of "US ASCII" + * encoding. It can also be seen as a routine Identical to + * rb_usascii_str_new(), except it assumes the passed pointer is a pointer to a + * C string. + * + * @param[in] ptr A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @exception rb_eArgError `ptr` is a null pointer. + * @return An instance of ::rb_cString, of "US ASCII" encoding, whose + * contents are verbatim copy of `ptr`. + * @pre `ptr` must not be a null pointer. + */ +VALUE rb_usascii_str_new_cstr(const char *ptr); + +/** + * Identical to rb_str_new(), except it generates a string of "UTF-8" encoding. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString, of `len` bytes length, of + * "UTF-8" encoding, whose contents are verbatim copy of `ptr`. + */ +VALUE rb_utf8_str_new(const char *ptr, long len); + +/** + * Identical to rb_str_new_cstr(), except it generates a string of "UTF-8" + * encoding. It can also be seen as a routine Identical to + * rb_usascii_str_new(), except it assumes the passed pointer is a pointer to a + * C string. + * + * @param[in] ptr A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @exception rb_eArgError `ptr` is a null pointer. + * @return An instance of ::rb_cString, of "UTF-8" encoding, whose contents + * are verbatim copy of `ptr`. + * @pre `ptr` must not be a null pointer. + */ +VALUE rb_utf8_str_new_cstr(const char *ptr); + +/** + * @name Special strings that are backended by C string literals. + * + * *_str_new_static functions are intended for C string literals. + * They require memory in the range [ptr, ptr+len] to always be readable. + * Note that this range covers a total of len + 1 bytes. + * + * @{ + */ + +/** + * Identical to rb_str_new(), except it takes a C string literal. + * + * @param[in] ptr A C string literal. + * @param[in] len `strlen(ptr)`. + * @exception rb_eArgError `len` out of range of `size_t`. + * @pre `ptr` must be a C string constant. + * @return An instance of ::rb_cString, of "binary" encoding, whose backend + * storage is the passed C string literal. + * @warning It is a very bad idea to write to a C string literal (often + * immediate SEGV shall occur). Consider return values of this + * function be read-only. + * + * @internal + * + * Surprisingly it can take NULL, and generates an empty string. + */ +VALUE rb_str_new_static(const char *ptr, long len); + +/** + * Identical to rb_str_new_static(), except it generates a string of "US ASCII" + * encoding instead of "binary". It can also be seen as a routine identical to + * rb_usascii_str_new(), except it takes a C string literal. + * + * @param[in] ptr A C string literal. + * @param[in] len `strlen(ptr)`. + * @exception rb_eArgError `len` out of range of `size_t`. + * @pre `ptr` must be a C string constant. + * @return An instance of ::rb_cString, of "US ASCII" encoding, whose + * backend storage is the passed C string literal. + * @warning It is a very bad idea to write to a C string literal (often + * immediate SEGV shall occur). Consider return values of this + * function be read-only. + */ +VALUE rb_usascii_str_new_static(const char *ptr, long len); + +/** + * Identical to rb_str_new_static(), except it generates a string of "UTF-8" + * encoding instead of "binary". It can also be seen as a routine identical to + * rb_utf8_str_new(), except it takes a C string literal. + * + * @param[in] ptr A C string literal. + * @param[in] len `strlen(ptr)`. + * @exception rb_eArgError `len` out of range of `size_t`. + * @pre `ptr` must be a C string constant. + * @return An instance of ::rb_cString, of "UTF-8" encoding, whose backend + * storage is the passed C string literal. + * @warning It is a very bad idea to write to a C string literal (often + * immediate SEGV shall occur). Consider return values of this + * function be read-only. + */ +VALUE rb_utf8_str_new_static(const char *ptr, long len); + +/** @} */ + +/** + * Identical to rb_interned_str(), except it takes a Ruby's string instead of + * C's. It can also be seen as a routine identical to to rb_str_new_shared(), + * except it returns an infamous "f"string. + * + * @param[in] str An object of ::RString. + * @return An instance of ::rb_cString, either cached or allocated, which + * has the identical encoding, length, and contents with the passed + * string. + * @pre `str` must not be any arbitrary object except ::RString. + * @note Use #StringValue to enforce the precondition. + * + * @internal + * + * It actually finds or creates a fstring of the needed property, and + * destructively modifies the receiver behind-the-scene so that it becomes a + * shared string whose parent is the returning fstring. + */ +VALUE rb_str_to_interned_str(VALUE str); + +/** + * Identical to rb_str_new(), except it returns an infamous "f"string. What is + * a fstring? Well it is a special subkind of strings that is immutable, + * deduped globally, and managed by our GC. It is much like a Symbol (in fact + * Symbols are dynamic these days and are backended using fstrings). This + * concept has been silently introduced at some point in 2.x era. Since then + * it gained wider acceptance in the core. Starting from 3.x extension + * libraries can also generate ones. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eArgError `len` is negative. + * @return A found or created instance of ::rb_cString, of `len` bytes + * length, of "binary" encoding, whose contents are identical to + * that of `ptr`. + * @pre At least `len` bytes of continuous memory region shall be + * accessible via `ptr`. + */ +VALUE rb_interned_str(const char *ptr, long len); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_interned_str(), except it assumes the passed pointer is a + * pointer to a C's string. It can also be seen as a routine identical to to + * rb_str_to_interned_str(), except it takes a C's string instead of Ruby's. + * Or it can also be seen as a routine identical to rb_str_new_cstr(), except + * it returns an infamous "f"string. + * + * @param[in] ptr A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString, of "binary" encoding, whose + * contents are verbatim copy of `ptr`. + * @pre `ptr` must not be a null pointer. + */ +VALUE rb_interned_str_cstr(const char *ptr); + +/** + * Destroys the given string for no reason. + * + * @warning DO NOT USE IT. + * @warning Leave this task to our GC. + * @warning It was a bad idea at the first place to let you know about it. + * + * @param[out] str The string to be executed. + * @post The given string no longer exists. + * @note Maybe `String#clear` could be what you want. + * + * @internal + * + * Should have moved this to `internal/string.h`. + */ +void rb_str_free(VALUE str); + +/** + * Replaces the contents of the former with the latter. + * + * @param[out] dst Destination object. + * @param[in] src Source object. + * @pre Both objects must not be any arbitrary objects except + * ::RString. + * @post `dst`'s former components are abandoned. It now has the + * identical encoding, length, and contents to `src`. + * @see rb_str_replace() + * + * @internal + * + * @shyouhei doesn't understand why this is useful to extension libraries. + * Just use rb_str_replace(). What's wrong with that? + */ +void rb_str_shared_replace(VALUE dst, VALUE src); + +/** + * Identical to rb_str_cat_cstr(), except it takes Ruby's string instead of + * C's. It can also be seen as a routine identical to rb_str_shared_replace(), + * except it appends instead of replaces. + * + * @param[out] dst Destination object. + * @param[in] src Source object. + * @exception rb_eEncCompatError Can't mix the encodings. + * @exception rb_eArgError Result string too big. + * @return The passed `dst`. + * @pre Both objects must not be any arbitrary objects except + * ::RString. + * @post `dst` has the contents of `src` appended, with encoding + * converted into `dst`'s one, into the end of `dst`. + */ +VALUE rb_str_buf_append(VALUE dst, VALUE src); + +/** @alias{rb_str_cat} */ +VALUE rb_str_buf_cat(VALUE, const char*, long); + +/** @alias{rb_str_cat_cstr} */ +VALUE rb_str_buf_cat2(VALUE, const char*); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_str_cat_cstr(), except it additionally assumes the source + * string be a NUL terminated ASCII string. + * + * @param[out] dst Destination object. + * @param[in] src Source string. + * @exception rb_eArgError Result string too big. + * @return The passed `dst`. + * @pre `dst` must not be any arbitrary object except ::RString. + * @pre `src` must be a NUL terminated ASCII string. + * @post `dst` has the contents of `src` appended, with encoding + * converted into `dst`'s one, into the end of `dst`. + */ +VALUE rb_str_buf_cat_ascii(VALUE dst, const char *src); + +/** + * Try converting an object to its stringised representation using its `to_s` + * method, if any. If there is no such thing, it resorts to rb_any_to_s() + * output. + * + * @param[in] obj Arbitrary ruby object to stringise. + * @return An instance of ::rb_cString. + */ +VALUE rb_obj_as_string(VALUE obj); + +/** + * Try converting an object to its stringised representation using its `to_str` + * method, if any. If there is no such thing, returns ::RUBY_Qnil. + * + * @param[in] obj Arbitrary ruby object to stringise. + * @exception rb_eTypeError `obj.to_str` returned something non-String. + * @retval RUBY_Qnil No conversion from obj to String defined. + * @return otherwise Stringised representation of `obj`. + * @see rb_io_check_io + * @see rb_check_array_type + * @see rb_check_hash_type + */ +VALUE rb_check_string_type(VALUE obj); + +/** + * Asserts that the given string's encoding is (Ruby's definition of) ASCII + * compatible. + * + * @param[in] obj An instance of ::rb_cString. + * @exception rb_eEncCompatError `obj` is ASCII incompatible. + * + * @internal + * + * @shyouhei doesn't know if this is an Easter egg or an official feature, but + * this function can in fact take non-strings such as Symbols, Regexps, IOs, + * etc. However if something unsupported is passed, it causes SEGV. It seems + * the feature is kind of untested. + */ +void rb_must_asciicompat(VALUE obj); + +/** + * Duplicates a string. + * + * @param[in] str String in question to duplicate. + * @return A duplicated new instance. + * @pre `str` must be of ::RString. + */ +VALUE rb_str_dup(VALUE str); + +/** + * I guess there is no use case of this function in extension libraries, but + * this is a routine identical to rb_str_dup(), except it always creates an + * instance of ::rb_cString regardless of the given object's class. This makes + * the most sense when the passed string is formerly hidden by rb_obj_hide(). + * + * @param[in] str A string, possibly hidden. + * @return A duplicated new instance of ::rb_cString. + */ +VALUE rb_str_resurrect(VALUE str); + +/** + * Obtains a "temporary lock" of the string. This advisory locking mechanism + * prevents other cooperating threads from tampering the receiver. The same + * thing could be done via freeze mechanism, but this one can also be unlocked + * using rb_str_unlocktmp(). + * + * @param[out] str String to lock. + * @exception rb_eRuntimeError `str` already locked. + * @return The given string. + * @post The string is locked. + */ +VALUE rb_str_locktmp(VALUE str); + +/** + * Releases a lock formerly obtained by rb_str_locktmp(). + * + * @param[out] str String to unlock. + * @exception rb_eRuntimeError `str` already unlocked. + * @return The given string. + * @post The string is locked. + */ +VALUE rb_str_unlocktmp(VALUE str); + +/** @alias{rb_str_new_frozen} */ +VALUE rb_str_dup_frozen(VALUE); + +/** @alias{rb_str_new_frozen} */ +#define rb_str_dup_frozen rb_str_new_frozen + +/** + * Generates a new string, concatenating the former to the latter. It can also + * be seen as a routine identical to rb_str_append(), except it doesn't tamper + * the passed strings to create a new one instead. + * + * @param[in] lhs Source string #1. + * @param[in] rhs Source string #2. + * @exception rb_eEncCompatError Can't mix the encodings. + * @exception rb_eArgError Result string too big. + * @return A new string containing `rhs` concatenated to `lhs`. + * @pre Both objects must not be any arbitrary objects except ::RString. + * @note This operation doesn't commute. Don't get confused by the + * "plus" terminology. For historical reasons there are some + * noncommutative `+`s in Ruby. This is one of such things. There + * has been a long discussion around `+`s in programming languages. + */ +VALUE rb_str_plus(VALUE lhs, VALUE rhs); + +/** + * Repetition of a string. + * + * @param[in] str String to repeat. + * @param[in] num Count, something numeric. + * @exception rb_eArgError `num` is negative. + * @return A new string repeating `num` times of `str`. + */ +VALUE rb_str_times(VALUE str, VALUE num); + +/** + * Byte offset to character offset conversion. This makes sense when the + * receiver is in a multibyte encoding. The string's i-th character does not + * always sit at its i-th byte. This function scans the contents to find the + * character index that matches the byte index. Generally speaking this is an + * `O(n)` operation. Could be slow. + * + * @param[in] str The string to scan. + * @param[in] pos Offset, in bytes. + * @return Offset, in characters. + */ +long rb_str_sublen(VALUE str, long pos); + +/** + * This is the implementation of two-argumented `String#slice`. + * + * - Returns the substring of the given `len` found in `str` at offset `beg`: + * + * ```ruby + * 'foo'[0, 2] # => "fo" + * 'foo'[0, 0] # => "" + * ``` + * + * - Counts backward from the end of `str` if `beg` is negative: + * + * ```ruby + * 'foo'[-2, 2] # => "oo" + * ``` + * + * - Special case: returns a new empty string if `beg` is equal to the length + * of `str`: + * + * ```ruby + * 'foo'[3, 2] # => "" + * ``` + * + * - Returns a null pointer if `beg` is out of range: + * + * ```ruby + * 'foo'[4, 2] # => nil + * 'foo'[-4, 2] # => nil + * ``` + * + * - Returns the trailing substring of `str` if `len` is large: + * + * ```ruby + * 'foo'[1, 50] # => "oo" + * ``` + * + * - Returns a null pointer if `len` is negative: + * + * ```ruby + * 'foo'[0, -1] # => nil + * ``` + * + * @param[in] str The string to slice. + * @param[in] beg Requested offset of the substring. + * @param[in] len Requested length of the substring. + * @retval RUBY_Qnil Parameters out of range. + * @retval otherwise A new string whose contents is the specified + * substring of `str`. + * @pre `str` must not be any arbitrary objects except ::RString. + */ +VALUE rb_str_substr(VALUE str, long beg, long len); + +/** + * Identical to rb_str_substr(), except the numbers are interpreted as byte + * offsets instead of character offsets. + * + * @param[in] str The string to slice. + * @param[in] beg Requested offset of the substring. + * @param[in] len Requested length of the substring. + * @return A new string whose contents is the specified substring of `str`. + * @pre `str` must not be any arbitrary objects except ::RString. + * @pre `beg` and `len` must not point to OOB contents. + */ +VALUE rb_str_subseq(VALUE str, long beg, long len); + +/** + * Identical to rb_str_substr(), except it returns a C's string instead of + * Ruby's. + * + * @param[in] str The string to slice. + * @param[in] beg Requested offset of the substring. + * @param[in,out] len Requested length of the substring. + * @retval NULL Parameters out of range. + * @retval otherwise A pointer inside of `str`'s backend storage where + * the specified substring exist. + * @pre `str` must not be any arbitrary objects except ::RString. + * @post `len` is updated to have the length of the return value. + */ +char *rb_str_subpos(VALUE str, long beg, long *len); + +/** + * Declares that the string is about to be modified. This for instance let the + * string have a dedicated backend storage. + * + * @param[out] str String about to be modified. + * @exception rb_eRuntimeError `str` is `locktmp`-ed. + * @exception rb_eFrozenError `str` is frozen. + * @pre `str` must not be any arbitrary objects except ::RString. + * @post Upon successful return the passed string is eligible to be + * modified. + */ +void rb_str_modify(VALUE str); + +/** + * Identical to rb_str_modify(), except it additionally expands the capacity of + * the receiver. + * + * @param[out] str Target string to modify. + * @param[in] capa Additional capacity to add. + * @exception rb_eArgError `capa` is negative. + * @exception rb_eRuntimeError `str` is `locktmp`-ed. + * @exception rb_eFrozenError `str` is frozen. + * @pre `str` must not be any arbitrary objects except ::RString. + * @post Upon successful return the passed string is modified so that + * its capacity is increased for `capa` bytes. + */ +void rb_str_modify_expand(VALUE str, long capa); + +/** + * This is the implementation of `String#freeze`. + * + * @param[out] str Target string to freeze. + * @return The passed string. + * @post Upon successful return the passed string is frozen. + */ +VALUE rb_str_freeze(VALUE str); + +/** + * Overwrites the length of the string. Typically this is used to shrink a + * string that was formerly expanded. + * + * ```CXX + * extern int fd; + * auto str = rb_eval_string("'...'"); + * rb_str_modify_expand(str, BUFSIZ); + * if (auto len = recv(fd, RSTRING_PTR(str), BUFSIZ, 0); len >= 0) { + * rb_str_set_len(str, len); + * } + * else { + * rb_sys_fail("recv(2)"); + * } + * ``` + * + * @param[out] str String to shrink. + * @param[in] len New length of the string. + * @exception rb_eRuntimeError `str` is `locktmp`-ed. + * @exception rb_eFrozenError `str` is frozen. + * @pre `str` must not be any arbitrary objects except ::RString. + * @post Upon successful return `str`'s length is set to `len`. + */ +void rb_str_set_len(VALUE str, long len); + +/** + * Overwrites the length of the string. In contrast to rb_str_set_len(), this + * function can also expand a string. + * + * @param[out] str String to shrink. + * @param[in] len New length of the string. + * @exception rb_eArgError `len` is negative. + * @exception rb_eRuntimeError `str` is `locktmp`-ed. + * @exception rb_eFrozenError `str` is frozen. + * @return The passed `str`. + * @pre `str` must not be any arbitrary objects except ::RString. + * @post Upon successful return `str` is either expanded or shrunken to + * have its length be `len`. + */ +VALUE rb_str_resize(VALUE str, long len); + +/** + * Destructively appends the passed contents to the string. + * + * @param[out] dst Destination object. + * @param[in] src Contents to append. + * @param[in] srclen Length of `src`. + * @exception rb_eArgError `srclen` is negative. + * @return The passed `dst`. + * @pre `dst` must not be any arbitrary objects except ::RString. + * @post `dst` has the contents of `ptr` appended. + */ +VALUE rb_str_cat(VALUE dst, const char *src, long srclen); + +/** + * Identical to rb_str_cat(), except it assumes the passed pointer is a pointer + * to a C string. + * + * @param[out] dst Destination object. + * @param[in] src Contents to append. + * @exception rb_eArgError Result string too big. + * @exception rb_eArgError `src` is a null pointer. + * @return The passed `dst`. + * @pre `dst` must not be any arbitrary objects except ::RString. + * @pre `src` must not be a null pointer. + * @post `dst` has the contents of `src` appended. + */ +VALUE rb_str_cat_cstr(VALUE dst, const char *src); + +/** @alias{rb_str_cat_cstr} */ +VALUE rb_str_cat2(VALUE, const char*); + +/** + * Identical to rb_str_buf_append(), except it converts the right hand side + * before concatenating. + * + * @param[out] dst Destination object. + * @param[in] src Source object. + * @exception rb_eEncCompatError Can't mix the encodings. + * @exception rb_eArgError Result string too big. + * @return The passed `dst`. + * @pre `dst` must not be any arbitrary objects except ::RString. + * @post `dst` has the contents of `src` appended, with encoding + * converted into `dst`'s one, into the end of `dst`. + */ +VALUE rb_str_append(VALUE dst, VALUE src); + +/** + * Identical to rb_str_append(), except it also accepts an integer as a + * codepoint. This resembles `String#<<`. + * + * @param[out] dst Destination object. + * @param[in] src Source object, String or Numeric. + * @exception rb_eRangeError Source numeric is out of range. + * @exception rb_eEncCompatError Source string too long. + * @exception rb_eArgError Result string too big. + * @return The passed `dst`. + * @pre `dst` must not be any arbitrary objects except ::RString. + * @post `dst` has the contents of `src` appended, with encoding + * converted into `dst`'s one, into the end of `dst`. + */ +VALUE rb_str_concat(VALUE dst, VALUE src); + +/* random.c */ + +/** + * This is a universal hash function. + * + * @warning This function changes its value per process. + * @param[in] ptr Target message. + * @param[in] len Length of `ptr` in bytes. + * @return A pseudorandom number suitable for Hash's hash value. + * @see Aumasson, JP., Bernstein, D.J., "SipHash: A Fast Short-Input + * PRF", In proceedings of 13th International Conference on + * Cryptology in India (INDOCRYPT 2012), LNCS 7668, pp. 489-508, + * 2012. http://doi.org/10.1007/978-3-642-34931-7_28 +*/ +st_index_t rb_memhash(const void *ptr, long len); + +/** + * Starts a series of hashing. Suppose you have a struct: + * + * ```CXX + * struct foo_tag { + * unsigned char bar; + * uint32_t baz; + * }; + * ``` + * + * It is not a wise idea to call rb_memhash() over it, because there could be + * padding bits. Instead you should explicitly iterate over each fields: + * + * ```CXX + * foo_tag foo = { 0, 0, }; + * st_index_t hash = 0; + * + * hash = rb_hash_start(0); + * hash = rb_hash_uint(hash, foo.bar); + * hash = rb_hash_uint32(hash, foo.baz); + * hash = rb_hash_end(hash); + * ``` + * + * @param[in] i Initial value. + * @return A hash value. + */ +st_index_t rb_hash_start(st_index_t i); + +/** @alias{st_hash_uint32} */ +#define rb_hash_uint32(h, i) st_hash_uint32((h), (i)) + +/** @alias{st_hash_uint} */ +#define rb_hash_uint(h, i) st_hash_uint((h), (i)) + +/** @alias{st_hash_end} */ +#define rb_hash_end(h) st_hash_end(h) + +/* string.c */ + +/** + * Calculates a hash value of a string. This is one of the two functions that + * constructs struct ::st_hash_type. + * + * @param[in] str An object of ::RString. + * @return A hash value. + * @pre `str` must not be any arbitrary object except ::RString. + * + * @internal + * + * Although safe to call, there must be no particular use case of this function + * for extension libraries. Only ruby internals must know about it. + * + * This is not a simple alias of rb_memhash(), because it considers the passed + * string's encoding as well as its contents. + */ +st_index_t rb_str_hash(VALUE str); + +/** + * Compares two strings. This is one of the two functions that constructs + * struct ::st_hash_type. + * + * @param[in] str1 A string. + * @param[in] str2 Another string. + * @retval 1 They have identical contents, length, and encodings. + * @retval 0 Otherwise. + * @pre Both objects must not be any arbitrary objects except + * ::RString. + * + * @internal + * + * In contrast to rb_str_hash(), this could be handy for comparison that only + * concerns equality. rb_str_cmp() returns 1, 0, -1. + */ +int rb_str_hash_cmp(VALUE str1, VALUE str2); + +/** + * Checks if two strings are comparable each other or not. Because + * rb_str_cmp() must return "lesser than" or "greater than" information, + * comparing two strings needs a stricter restriction. Both sides must be in a + * same set of strings which have total order. This is to check that property. + * Intuitive it sounds? But they can have different encodings. A character + * and another might or might not appear in the same order in their codepoints. + * It is complicated than you think. + * + * @param[in] str1 A string. + * @param[in] str2 Another string. + * @retval 1 They agree on a total order. + * @retval 0 Otherwise. + * @pre Both objects must not be any arbitrary objects except + * ::RString. + */ +int rb_str_comparable(VALUE str1, VALUE str2); + +/** + * Compares two strings, as in `strcmp(3)`. This does not consider the current + * locale, but considers the encodings of both sides instead. + * + * @param[in] lhs A string. + * @param[in] rhs Another string. + * @retval -1 `lhs` is "bigger than" `rhs`. + * @retval 1 `rhs` is "bigger than" `lhs`. + * @retval 0 Otherwise, e.g. not comparable. + * @pre Both objects must not be any arbitrary objects except + * ::RString. + */ +int rb_str_cmp(VALUE lhs, VALUE rhs); + +/** + * Equality of two strings. + * + * If `str2` is not a String, it resorts to `str2 == str1`. Otherwise if they + * are not comparable, returns ::RUBY_Qfalse. Otherwise if they have the same + * contents and the length, returns ::RUBY_Qtrue. Otherwise, returns + * ::RUBY_Qfalse. + * + * @param[in] str1 A string. + * @param[in] str2 Another string. + * @retval RUBY_Qtrue They are equal. + * @retval RUBY_Qfalse They are either different, or not comparable. + */ +VALUE rb_str_equal(VALUE str1, VALUE str2); + +/** + * Shrinks the given string for the given number of bytes. + * + * @param[out] str String to squash. + * @param[in] len Number of bytes to reduce. + * @exception rb_eRuntimeError `str` is `locktmp`-ed. + * @exception rb_eFrozenError `str` is frozen. + * @return The passed `str`. + * @pre `str` must not be any arbitrary objects except ::RString. + * @post `str` is shrunken. + * @warning Can break a multibyte character in middle. + * + * @internal + * + * What if `len` is negative? + */ +VALUE rb_str_drop_bytes(VALUE str, long len); + +/** + * Replaces some (or all) of the contents of the given string. This is the + * implementation of three-argumented `String#[]=`. + * + * @param[out] dst Target string to update. + * @param[in] beg Offset of the affected portion. + * @param[in] len Length of the affected portion. + * @param[in] src Object to be assigned. + * @exception rb_eTypeError `src` has no implicit conversion to String. + * @exception rb_eIndexError `len` is negative, or `beg` is OOB. + * @exception rb_eRuntimeError `dst` is `locktmp`-ed. + * @exception rb_eFrozenError `dst` is frozen. + * @note Unlike rb_str_substr(), this function raises. + * @post A portion of `dst` from `beg` to `len` is the stringised + * representation of `src`. If that replacement string is not the + * same length as the portion it is replacing, `dst` will be + * resized accordingly. + */ +void rb_str_update(VALUE dst, long beg, long len, VALUE src); + +/** + * Replaces the contents of the former object with the stringised contents of + * the latter. + * + * @param[out] dst Destination object. + * @param[in] src Source object. + * @exception rb_eTypeError `src` has no implicit conversion to String. + * @exception rb_eRuntimeError `dst` is `locktmp`-ed. + * @exception rb_eFrozenError `dst` is frozen. + * @return The passed `dst`. + * @pre `dst` must not be any arbitrary object except ::RString. + * @post `dst`'s former components are abandoned. It now has the + * identical encoding, length, and contents to `src`. + */ +VALUE rb_str_replace(VALUE dst, VALUE src); + +/** + * Generates a "readable" version of the receiver. + * + * @warning The output is _insecure_. Never feed one to `eval`. + * @warning The output is not always in the same encoding as the given one. + * @warning A character might or might not be escaped, depending on the + * result encoding. + * @param[in] str String to inspect. + * @return Its inspection, either in default internal encoding if any, or + * in default external encoding otherwise. + * @see rb_str_dump() + * + * @internal + * + * This is a (silent) fix of an actual vulnerability feeding `inspect` output + * strings to `eval`: + * https://github.com/hiki/hiki/commit/8771a6e25198e264a2bf9dc1c102fea2cc8ff975 + * + * ... and its advisory: + * http://hikiwiki.org/en/advisory20040712.html + */ +VALUE rb_str_inspect(VALUE str); + +/** + * "Inverse" of rb_eval_string(). Returns a quoted version of the string. All + * non-printing characters are replaced by `\uNNNN` or `\xHH` notation and all + * special characters are escaped. The result string is guaranteed to render a + * string of the same contents when passed to `eval` and friends. + * + * @param[in] str String to dump. + * @exception rb_eRuntimeError Too many escape sequences causes integer + * overflow on the length of the string. + * @return An US-ASCII string that includes all the necessary info to + * reconstruct the original string. + */ +VALUE rb_str_dump(VALUE str); + +/** + * Divides the given string based on the given delimiter. This is the + * 1-argument 0-block version of `String#split`. + * + * @param[in] str Object in question to split. + * @param[in] delim Delimiter, in C string. + * @exception rb_eTypeError `str` has no implicit conversion to String. + * @exception rb_eArgError `delim` is a null pointer. + * @return An array of strings, which are substrings of the passed `str`. + * If `delim` is an empty C string (i.e. `""`), `str` is split into + * each characters. If `delim` is a C string whose sole content is + * a whitespace (i.e. `" "`), `str` is split on whitespaces, with + * leading and trailing whitespace and runs of contiguous + * whitespace characters ignored. Otherwise, `str` is split + * according to `delim`. + */ +VALUE rb_str_split(VALUE str, const char *delim); + +/** + * This is a ::rb_gvar_setter_t that refutes non-string assignments. + * + * @exception rb_eTypeError Passed something non-string. + */ +rb_gvar_setter_t rb_str_setter; + +/* symbol.c */ + +/** + * Identical to rb_to_symbol(), except it assumes the receiver being an + * instance of ::RString. + * + * @param[in] str The name of the id. + * @exception rb_eRuntimeError Too many symbols. + * @return A (possibly new) id whose value is the given `str`. + * @pre `str` must not be any arbitrary object except ::RString. + * @note These days Ruby internally has two kinds of symbols + * (static/dynamic). Symbols created using this function would + * become dynamic ones; i.e. would be garbage collected. It could + * be safer for you to use it than alternatives, when applicable. + */ +VALUE rb_str_intern(VALUE str); + +/* string.c */ + +/** + * This is an rb_sym2str() + rb_str_dup() combo. + * + * @param[in] sym A symbol to query. + * @return A string duplicating the symbol's backend storage. + * + * @internal + * + * This function causes SEGV when the passed value is a static symbol that + * doesn't exist. + */ +VALUE rb_sym_to_s(VALUE sym); + +/** + * Counts the number of characters (not bytes) that are stored inside of the + * given string. This of course depends on its encoding. Also this function + * generally runs in O(n), because for instance you have to scan the entire + * string to know how many characters are there in a UTF-8 string. + * + * @param[in] str Target string to query. + * @return Its number of characters. + */ +long rb_str_strlen(VALUE str); + +/** + * Identical to rb_str_strlen(), except it returns the value in ::rb_cInteger. + * + * @param[in] str Target string to query. + * @return Its number of characters. + */ +VALUE rb_str_length(VALUE); + +/** + * "Inverse" of rb_str_sublen(). This function scans the contents to find the + * byte index that matches the character index. Generally speaking this is an + * `O(n)` operation. Could be slow. + * + * @param[in] str The string to scan. + * @param[in] pos Offset, in characters. + * @return Offset, in bytes. + */ +long rb_str_offset(VALUE str, long pos); + +RBIMPL_ATTR_PURE() +/** + * Queries the capacity of the given string. + * + * @see ::RString::capa + * @param[in] str String in question. + * @return Its capacity. + */ +size_t rb_str_capacity(VALUE str); + +/** + * Shortens `str` and adds three dots, an ellipsis, if it is longer than `len` + * characters. The length of the returned string in characters is less than or + * equal to `len`. If the length of `str` is less than or equal `len`, returns + * `str` itself. The encoding of returned string is equal to that of passed + * one. The class of returned string is equal to that of passed one. + * + * @param[in] str The string to shorten. + * @param[in] len The maximum string length. + * @exception rb_eIndexError `len` is negative. + * @retval str No need to add ellipsis. + * @retval otherwise A new, shortened string. + * @note The length is counted in characters. + */ +VALUE rb_str_ellipsize(VALUE str, long len); + +/** + * "Cleanses" the string. A string has its encoding and its contents. They, + * in practice, do not always fit. There are strings in the wild that are + * "broken"; include bit patterns that are not allowed by its encoding. That + * can happen when a user copy&pasted something bad, network input got + * clobbered by a middleman, cosmic rays hit the physical memory, and many more + * occasions. This function takes such strings, and fills the "broken" portion + * with the passed replacement bit pattern. + * + * This function also takes a ruby block. That is a neat way to do things, but + * can be annoying when the caller function want to use a block for another + * purpose. + * + * @param[in] str Target string to scrub. + * @param[in] repl Replacement string. When it is a string, + * this function takes that as a replacement. + * When it is ::RUBY_Qnil, this function tries + * to yield a block (if any) and takes its + * evaluated value as a replacement. In case + * of ::RUBY_Qnil without a block, this + * function takes an encoding-specific default + * character (`U+FFFD`, for instance) as a last + * resort. + * @exception rb_eTypeError `repl` is neither string nor nil. + * @exception rb_eArgError `repl` itself is broken. + * @exception rb_eEncCompatError `repl` and `str` are incompatible. + * @retval RUBY_Qnil `str` is already clean. + * @retval otherwise A new, clean string. + */ +VALUE rb_str_scrub(VALUE str, VALUE repl); + +/** + * Searches for the "successor" of a string. This function is complicated! + * This is the only function in the entire ruby API (either C or Ruby) that + * generates a string out of thin air. First, the successor to an empty string + * is a new empty string: + * + * ```ruby + * ''.succ # => "" + * ``` + * + * Otherwise the successor is calculated by "incrementing" characters. The + * first character to be incremented is the rightmost alphanumeric: or, if no + * alphanumerics, the rightmost character: + * + * ```ruby + * 'THX1138'.succ # => "THX1139" + * '<>'.succ # => "<>" + * '***'.succ # => '**+' + * ``` + * + * The successor to a digit is another digit, "carrying" to the next-left + * character for a "rollover" from 9 to 0, and prepending another digit if + * necessary: + * + * ```ruby + * '00'.succ # => "01" + * '09'.succ # => "10" + * '99'.succ # => "100" + * '-9'.succ # => "-10" + * ``` + * + * The successor to a letter is another letter of the same case, carrying to + * the next-left character for a rollover, and prepending another same-case + * letter if necessary: + * + * ```ruby + * 'aa'.succ # => "ab" + * 'az'.succ # => "ba" + * 'zz'.succ # => "aaa" + * 'AA'.succ # => "AB" + * 'AZ'.succ # => "BA" + * 'ZZ'.succ # => "AAA" + * ``` + * + * The successor to a non-alphanumeric character is the next character in the + * underlying character set's collating sequence, carrying to the next-left + * character for a rollover, and prepending another character if necessary: + * + * ```ruby + * s = "\u03A1" + * s.succ # => "\u03A3" # There is no such thing like \u03A2. + * s = 255.chr * 3 + * s # => "\xFF\xFF\xFF" + * s.succ # => "\x01\x00\x00\x00" + * ``` + * + * Carrying can occur between and among mixtures of alphanumeric characters: + * + * ```ruby + * s = 'zz99zz99' + * s.succ # => "aaa00aa00" + * s = '99zz99zz' + * s.succ # => "100aa00aa" + * s = '1.9.9' + * s.succ # => "2.0.0" + * ``` + * + * @param[in] orig Predecessor string. + * @return Successor string. + */ +VALUE rb_str_succ(VALUE orig); + +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail. Don't bother. + * + * @param[in] str A C string. + * @return `strlen`, casted to `long`. + */ +static inline long +rbimpl_strlen(const char *str) +{ + return RBIMPL_CAST((long)strlen(str)); +} + +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail. Don't bother. + * + * @param[in] str A C string literal. + * @return Corresponding Ruby string. + */ +static inline VALUE +rbimpl_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_str_new_static(str, len); +} + +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail. Don't bother. + * + * @param[in] str A C string literal. + * @return Corresponding Ruby string. + */ +static inline VALUE +rbimpl_usascii_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_usascii_str_new_static(str, len); +} + +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail. Don't bother. + * + * @param[in] str A C string literal. + * @return Corresponding Ruby string. + */ +static inline VALUE +rbimpl_utf8_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_utf8_str_new_static(str, len); +} + +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail. Don't bother. + * + * @param[in] str A C string literal. + * @return Corresponding Ruby string. + */ +static inline VALUE +rbimpl_external_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_external_str_new(str, len); +} + +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail. Don't bother. + * + * @param[in] str A C string literal. + * @return Corresponding Ruby string. + */ +static inline VALUE +rbimpl_locale_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_locale_str_new(str, len); +} + +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail. Don't bother. + * + * @param[in] str A C string literal. + * @return Corresponding Ruby string. + */ +static inline VALUE +rbimpl_str_buf_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + VALUE buf = rb_str_buf_new(len); + return rb_str_buf_cat(buf, str, len); +} + +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail. Don't bother. + * + * @param[out] buf A string buffer. + * @param[in] str A C string literal. + * @return `buf` itself. + */ +static inline VALUE +rbimpl_str_cat_cstr(VALUE buf, const char *str) +{ + long len = rbimpl_strlen(str); + return rb_str_cat(buf, str, len); +} + +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail. Don't bother. + * + * @param[in] exc An exception class. + * @param[in] str A C string literal. + * @return An instance of `exc`. + */ +static inline VALUE +rbimpl_exc_new_cstr(VALUE exc, const char *str) +{ + long len = rbimpl_strlen(str); + return rb_exc_new(exc, str, len); +} + +/** + * Allocates an instance of ::rb_cString. + * + * @param[in] str A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString, of `len` bytes length, of + * "binary" encoding, whose contents are verbatim copy of `str`. + * @pre At least `len` bytes of continuous memory region shall be + * accessible via `str`. + */ +#define rb_str_new(str, len) \ + ((RBIMPL_CONSTANT_P(str) && \ + RBIMPL_CONSTANT_P(len) ? \ + rb_str_new_static : \ + rb_str_new) ((str), (len))) + +/** + * Identical to #rb_str_new, except it assumes the passed pointer is a pointer + * to a C string. + * + * @param[in] str A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString, of "binary" encoding, whose + * contents are verbatim copy of `str`. + * @pre `str` must not be a null pointer. + */ +#define rb_str_new_cstr(str) \ + ((RBIMPL_CONSTANT_P(str) ? \ + rbimpl_str_new_cstr : \ + rb_str_new_cstr) (str)) + +/** + * Identical to #rb_str_new, except it generates a string of "US ASCII" + * encoding. This is different from rb_external_str_new(), not only for the + * output encoding, but also it doesn't convert the contents. + * + * @param[in] str A memory region of `len` bytes length. + * @param[in] len Length of `str`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString, of `len` bytes length, of + * "US ASCII" encoding, whose contents are verbatim copy of `str`. + */ +#define rb_usascii_str_new(str, len) \ + ((RBIMPL_CONSTANT_P(str) && \ + RBIMPL_CONSTANT_P(len) ? \ + rb_usascii_str_new_static : \ + rb_usascii_str_new) ((str), (len))) + +/** + * Identical to #rb_str_new, except it generates a string of "UTF-8" encoding. + * + * @param[in] str A memory region of `len` bytes length. + * @param[in] len Length of `str`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString, of `len` bytes length, of + * "UTF-8" encoding, whose contents are verbatim copy of `str`. + */ +#define rb_utf8_str_new(str, len) \ + ((RBIMPL_CONSTANT_P(str) && \ + RBIMPL_CONSTANT_P(len) ? \ + rb_utf8_str_new_static : \ + rb_utf8_str_new) ((str), (len))) + +/** + * Identical to #rb_str_new_cstr, except it generates a string of "US ASCII" + * encoding. It can also be seen as a routine Identical to + * #rb_usascii_str_new, except it assumes the passed pointer is a pointer to a + * C string. + * + * @param[in] str A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString, of "US ASCII" encoding, whose + * contents are verbatim copy of `str`. + * @pre `str` must not be a null pointer. + */ +#define rb_usascii_str_new_cstr(str) \ + ((RBIMPL_CONSTANT_P(str) ? \ + rbimpl_usascii_str_new_cstr : \ + rb_usascii_str_new_cstr) (str)) + +/** + * Identical to #rb_str_new_cstr, except it generates a string of "UTF-8" + * encoding. It can also be seen as a routine Identical to #rb_utf8_str_new, + * except it assumes the passed pointer is a pointer to a C string. + * + * @param[in] str A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString, of "UTF-8" encoding, whose contents + * are verbatim copy of `str`. + * @pre `str` must not be a null pointer. + */ +#define rb_utf8_str_new_cstr(str) \ + ((RBIMPL_CONSTANT_P(str) ? \ + rbimpl_utf8_str_new_cstr : \ + rb_utf8_str_new_cstr) (str)) + +/** + * Identical to #rb_str_new_cstr, except it generates a string of "default + * external" encoding. + * + * @param[in] str A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString. In case encoding conversion from + * "default internal" to "default external" is fully defined over + * the given contents, then the return value is a string of + * "default external" encoding, whose contents are the converted + * ones. Otherwise the string is a junk. + * @warning It doesn't raise on a conversion failure and silently ends up in + * a corrupted output. You can know the failure by querying + * `valid_encoding?` of the result object. + * @pre `str` must not be a null pointer. + */ +#define rb_external_str_new_cstr(str) \ + ((RBIMPL_CONSTANT_P(str) ? \ + rbimpl_external_str_new_cstr : \ + rb_external_str_new_cstr) (str)) + +/** + * Identical to #rb_external_str_new_cstr, except it generates a string of + * "locale" encoding instead of "default external". + * + * @param[in] str A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString. In case encoding conversion from + * "default internal" to "locale" is fully defined over the given + * contents, then the return value is a string of "locale" + * encoding, whose contents are the converted ones. Otherwise the + * string is a junk. + * @warning It doesn't raise on a conversion failure and silently ends up in + * a corrupted output. You can know the failure by querying + * `valid_encoding?` of the result object. + * @pre `str` must not be a null pointer. + */ +#define rb_locale_str_new_cstr(str) \ + ((RBIMPL_CONSTANT_P(str) ? \ + rbimpl_locale_str_new_cstr : \ + rb_locale_str_new_cstr) (str)) + +/** + * Identical to #rb_str_new_cstr, except done differently. + * + * @param[in] str A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString, of "binary" encoding, whose + * contents are verbatim copy of `str`. + * @pre `str` must not be a null pointer. + */ +#define rb_str_buf_new_cstr(str) \ + ((RBIMPL_CONSTANT_P(str) ? \ + rbimpl_str_buf_new_cstr : \ + rb_str_buf_new_cstr) (str)) + +/** + * Identical to rb_str_cat(), except it assumes the passed pointer is a pointer + * to a C string. + * + * @param[out] buf Destination object. + * @param[in] str Contents to append. + * @exception rb_eArgError Result string too big. + * @return The passed `buf`. + * @pre `buf` must not be any arbitrary objects except ::RString. + * @pre `str` must not be a null pointer. + * @post `buf` has the contents of `str` appended. + */ +#define rb_str_cat_cstr(buf, str) \ + ((RBIMPL_CONSTANT_P(str) ? \ + rbimpl_str_cat_cstr : \ + rb_str_cat_cstr) ((buf), (str))) + +/** + * Identical to rb_exc_new(), except it assumes the passed pointer is a pointer + * to a C string. + * + * @param[out] exc A subclass of ::rb_eException. + * @param[in] str Message to raise. + * @return An instance of `exc` whose message is `str`. + * @pre `str` must not be a null pointer. + */ +#define rb_exc_new_cstr(exc, str) \ + ((RBIMPL_CONSTANT_P(str) ? \ + rbimpl_exc_new_cstr : \ + rb_exc_new_cstr) ((exc), (str))) + +#define rb_str_new2 rb_str_new_cstr /**< @old{rb_str_new_cstr} */ +#define rb_str_new3 rb_str_new_shared /**< @old{rb_str_new_shared} */ +#define rb_str_new4 rb_str_new_frozen /**< @old{rb_str_new_frozen} */ +#define rb_str_new5 rb_str_new_with_class /**< @old{rb_str_new_with_class} */ +#define rb_str_buf_new2 rb_str_buf_new_cstr /**< @old{rb_str_buf_new_cstr} */ +#define rb_usascii_str_new2 rb_usascii_str_new_cstr /**< @old{rb_usascii_str_new_cstr} */ +#define rb_str_buf_cat rb_str_cat /**< @alias{rb_str_cat} */ +#define rb_str_buf_cat2 rb_str_cat_cstr /**< @old{rb_usascii_str_new_cstr} */ +#define rb_str_cat2 rb_str_cat_cstr /**< @old{rb_str_cat_cstr} */ + +/** + * Length of a string literal. + * + * @param[in] str A C String literal. + * @return An integer constant expression that represents `str`'s length, + * in bytes, not including the terminating NUL character. + */ +#define rb_strlen_lit(str) (sizeof(str "") - 1) + +/** + * Identical to rb_str_new_static(), except it cannot take string variables. + * + * @param[in] str A C string literal. + * @pre `str` must not be a variable. + * @return An instance of ::rb_cString, of "binary" encoding, whose backend + * storage is the passed C string literal. + * @warning It is a very bad idea to write to a C string literal (often + * immediate SEGV shall occur). Consider return values of this + * function be read-only. + */ +#define rb_str_new_lit(str) rb_str_new_static((str), rb_strlen_lit(str)) + +/** + * Identical to rb_usascii_str_new_static(), except it cannot take string + * variables. + * + * @param[in] str A C string literal. + * @pre `str` must not be a variable. + * @return An instance of ::rb_cString, of "US ASCII" encoding, whose + * backend storage is the passed C string literal. + * @warning It is a very bad idea to write to a C string literal (often + * immediate SEGV shall occur). Consider return values of this + * function be read-only. + */ +#define rb_usascii_str_new_lit(str) rb_usascii_str_new_static((str), rb_strlen_lit(str)) + +/** + * Identical to rb_utf8_str_new_static(), except it cannot take string + * variables. + * + * @param[in] str A C string literal. + * @pre `str` must not be a variable. + * @return An instance of ::rb_cString, of "UTF-8" encoding, whose backend + * storage is the passed C string literal. + * @warning It is a very bad idea to write to a C string literal (often + * immediate SEGV shall occur). Consider return values of this + * function be read-only. + */ +#define rb_utf8_str_new_lit(str) rb_utf8_str_new_static((str), rb_strlen_lit(str)) + +/** + * Identical to rb_enc_str_new_static(), except it cannot take string + * variables. + * + * @param[in] str A C string literal. + * @param[in] enc A pointer to an encoding. + * @pre `str` must not be a variable. + * @return An instance of ::rb_cString, of the passed encoding, whose + * backend storage is the passed C string literal. + * @warning It is a very bad idea to write to a C string literal (often + * immediate SEGV shall occur). Consider return values of this + * function be read-only. + */ +#define rb_enc_str_new_lit(str, enc) rb_enc_str_new_static((str), rb_strlen_lit(str), (enc)) + +#define rb_str_new_literal(str) rb_str_new_lit(str) /**< @alias{rb_str_new_lit} */ +#define rb_usascii_str_new_literal(str) rb_usascii_str_new_lit(str) /**< @alias{rb_usascii_str_new_lit} */ +#define rb_utf8_str_new_literal(str) rb_utf8_str_new_lit(str) /**< @alias{rb_utf8_str_new_lit} */ +#define rb_enc_str_new_literal(str, enc) rb_enc_str_new_lit(str, enc) /**< @alias{rb_enc_str_new_lit} */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_STRING_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/struct.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/struct.h new file mode 100644 index 0000000..312cf44 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/struct.h @@ -0,0 +1,203 @@ +#ifndef RBIMPL_INTERN_STRUCT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_STRUCT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cStruct. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/intern/vm.h" /* rb_alloc_func_t */ +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* struct.c */ + +/** + * Creates an instance of the given struct. + * + * @param[in] klass The class of the instance to allocate. + * @param[in] ... The fields. + * @return Allocated instance of `klass`. + * @pre `klass` must be a subclass of ::rb_cStruct. + * @note Number of variadic arguments must much that of the passed klass' + * fields. + */ +VALUE rb_struct_new(VALUE klass, ...); + +/** + * Defines a struct class. + * + * @param[in] name Name of the class. + * @param[in] ... Arbitrary number of `const char*`, terminated by + * zero. Each of which are the name of fields. + * @exception rb_eNameError `name` is not a constant name. + * @exception rb_eTypeError `name` is already taken. + * @exception rb_eArgError Duplicated field name. + * @return The defined class. + * @post Global toplevel constant `name` is defined. + * @note `name` is allowed to be a null pointer. This function creates + * an anonymous struct class then. + * + * @internal + * + * Not seriously checked but it seems this function does not share its + * implementation with how `Struct.new` is implemented...? + */ +VALUE rb_struct_define(const char *name, ...); + +RBIMPL_ATTR_NONNULL((2)) +/** + * Identical to rb_struct_define(), except it defines the class under the + * specified namespace instead of global toplevel. + * + * @param[out] space Namespace that the defining class shall reside. + * @param[in] name Name of the class. + * @param[in] ... Arbitrary number of `const char*`, terminated by + * zero. Each of which are the name of fields. + * @exception rb_eNameError `name` is not a constant name. + * @exception rb_eTypeError `name` is already taken. + * @exception rb_eArgError Duplicated field name. + * @return The defined class. + * @post `name` is a constant under `space`. + * @note In contrast to rb_struct_define(), it doesn't make any sense to + * pass a null pointer to this function. + */ +VALUE rb_struct_define_under(VALUE space, const char *name, ...); + +/** + * Identical to rb_struct_new(), except it takes the field values as a Ruby + * array. + * + * @param[in] klass The class of the instance to allocate. + * @param[in] values Field values. + * @return Allocated instance of `klass`. + * @pre `klass` must be a subclass of ::rb_cStruct. + * @pre `values` must be an instance of struct ::RArray. + */ +VALUE rb_struct_alloc(VALUE klass, VALUE values); + +/** + * Mass-assigns a struct's fields. + * + * @param[out] self An instance of a struct class to squash. + * @param[in] values New values. + * @return ::RUBY_Qnil. + */ +VALUE rb_struct_initialize(VALUE self, VALUE values); + +/** + * Identical to rb_struct_aref(), except it takes ::ID instead of ::VALUE. + * + * @param[in] self An instance of a struct class. + * @param[in] key Key to query. + * @exception rb_eTypeError `self` is not a struct. + * @exception rb_eNameError No such field. + * @return The value stored at `key` in `self`. + */ +VALUE rb_struct_getmember(VALUE self, ID key); + +/** + * Queries the list of the names of the fields of the given struct class. + * + * @param[in] klass A subclass of ::rb_cStruct. + * @return The list of the names of the fields of `klass`. + */ +VALUE rb_struct_s_members(VALUE klass); + +/** + * Queries the list of the names of the fields of the class of the given struct + * object. This is almost the same as calling rb_struct_s_members() over the + * class of the receiver. + * + * @internal + * + * "Almost"? What exactly is the difference? + * + * @endinternal + * + * @param[in] self An instance of a subclass of ::rb_cStruct. + * @return The list of the names of the fields. + */ +VALUE rb_struct_members(VALUE self); + +/** + * Allocates an instance of the given class. This consequential name is of + * course because rb_struct_alloc() not only allocates but also initialises an + * instance. The API design is broken. + * + * @param[in] klass A subclass of ::rb_cStruct. + * @return An allocated instance of `klass`, not initialised. + */ +VALUE rb_struct_alloc_noinit(VALUE klass); + +/** + * Identical to rb_struct_define(), except it does not define accessor methods. + * You have to define them yourself. Forget about the allocator function + * parameter; it is for internal use only. Extension libraries are unable to + * properly allocate a ruby struct, because `RStruct` is opaque. + * + * @internal + * + * Several flags must be set up properly for ::RUBY_T_STRUCT objects, which are + * also missing for extension libraries. + * + * @endinternal + * + * @param[in] name Name of the class. + * @param[in] super Superclass of the defining class. + * @param[in] func Must be 0 for extension libraries. + * @param[in] ... Arbitrary number of `const char*`, terminated by + * zero. Each of which are the name of fields. + * @exception rb_eNameError `name` is not a constant name. + * @exception rb_eTypeError `name` is already taken. + * @exception rb_eArgError Duplicated field name. + * @return The defined class. + * @post Global toplevel constant `name` is defined. + * @note `name` is allowed to be a null pointer. This function creates + * an anonymous struct class then. + */ +VALUE rb_struct_define_without_accessor(const char *name, VALUE super, rb_alloc_func_t func, ...); + +RBIMPL_ATTR_NONNULL((2)) +/** + * Identical to rb_struct_define_without_accessor(), except it defines the + * class under the specified namespace instead of global toplevel. It can also + * be seen as a routine identical to rb_struct_define_under(), except it does + * not define accessor methods. + * + * @param[out] outer Namespace that the defining class shall reside. + * @param[in] class_name Name of the class. + * @param[in] super Superclass of the defining class. + * @param[in] alloc Must be 0 for extension libraries. + * @param[in] ... Arbitrary number of `const char*`, terminated by + * zero. Each of which are the name of fields. + * @exception rb_eNameError `class_name` is not a constant name. + * @exception rb_eTypeError `class_name` is already taken. + * @exception rb_eArgError Duplicated field name. + * @return The defined class. + * @post `class_name` is a constant under `outer`. + * @note In contrast to rb_struct_define_without_accessor(), it doesn't + * make any sense to pass a null name. + */ +VALUE rb_struct_define_without_accessor_under(VALUE outer, const char *class_name, VALUE super, rb_alloc_func_t alloc, ...); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_STRUCT_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/thread.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/thread.h new file mode 100644 index 0000000..716375a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/thread.h @@ -0,0 +1,492 @@ +#ifndef RBIMPL_INTERN_THREAD_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_THREAD_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cThread. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/config.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +struct timeval; + +/* thread.c */ + +/** + * Tries to switch to another thread. This function blocks until the current + * thread re-acquires the GVL. + * + * @exception rb_eInterrupt Operation interrupted. + */ +void rb_thread_schedule(void); + +/** + * Blocks the current thread until the given file descriptor is ready to be + * read. + * + * @param[in] fd A file descriptor. + * @exception rb_eIOError Closed stream. + * @exception rb_eSystemCallError Situations like EBADF. + */ +int rb_thread_wait_fd(int fd); + +/** + * Identical to rb_thread_wait_fd(), except it blocks the current thread until + * the given file descriptor is ready to be written. + * + * @param[in] fd A file descriptor. + * @exception rb_eIOError Closed stream. + * @exception rb_eSystemCallError Situations like EBADF. + */ +int rb_thread_fd_writable(int fd); + +/** + * Notifies a closing of a file descriptor to other threads. Multiple threads + * can wait for the given file descriptor at once. If such file descriptor is + * closed, threads need to start propagating their exceptions. This is the API + * to kick that process. + * + * @param[in] fd A file descriptor. + * @note This function blocks until all the threads waiting for such fd + * have woken up. + */ +void rb_thread_fd_close(int fd); + +/** + * Checks if the thread this function is running is the only thread that is + * currently alive. + * + * @retval 1 Yes it is. + * @retval 0 No it isn't. + * + * @internal + * + * Above description is in fact inaccurate. There are Ractors these days. + */ +int rb_thread_alone(void); + +/** + * Blocks for the given period of time. + * + * @warning This function can be interrupted by signals. + * @param[in] sec Duration in seconds. + * @exception rb_eInterrupt Interrupted. + */ +void rb_thread_sleep(int sec); + +/** + * Blocks indefinitely. + * + * @exception rb_eInterrupt Interrupted. + */ +void rb_thread_sleep_forever(void); + +/** + * Identical to rb_thread_sleep_forever(), except the thread calling this + * function is considered "dead" when our deadlock checker is triggered. + * + * @exception rb_eInterrupt Interrupted. + */ +void rb_thread_sleep_deadly(void); + +/** + * Stops the current thread. This is not the end of the thread's lifecycle. A + * stopped thread can later be woken up. + * + * @exception rb_eThreadError Stopping this thread would deadlock. + * @retval ::RUBY_Qnil Always. + * + * @internal + * + * The return value makes no sense at all. + */ +VALUE rb_thread_stop(void); + +/** + * Marks a given thread as eligible for scheduling. + * + * @note It may still remain blocked on I/O. + * @note This does not invoke the scheduler itself. + * + * @param[out] thread Thread in question to wake up. + * @exception rb_eThreadError Stop flogging a dead horse. + * @return The passed thread. + * @post The passed thread is made runnable. + */ +VALUE rb_thread_wakeup(VALUE thread); + +/** + * Identical to rb_thread_wakeup(), except it doesn't raise on an already + * killed thread. + * + * @param[out] thread A thread to wake up. + * @retval RUBY_Qnil `thread` is already killed. + * @retval otherwise `thread` is alive. + * @post The passed thread is made runnable, unless killed. + */ +VALUE rb_thread_wakeup_alive(VALUE thread); + +/** + * This is a rb_thread_wakeup() + rb_thread_schedule() combo. + * + * @note There is no guarantee that this function yields to the passed + * thread. It may still remain blocked on I/O. + * @param[out] thread Thread in question to wake up. + * @exception rb_eThreadError Stop flogging a dead horse. + * @return The passed thread. + */ +VALUE rb_thread_run(VALUE thread); + +/** + * Terminates the given thread. Unlike a stopped thread, a killed thread could + * never be revived. This function does return, when passed e.g. an already + * killed thread. But if the passed thread is the only one, or a special + * thread called "main", then it also terminates the entire process. + * + * @param[out] thread The thread to terminate. + * @exception rb_eFatal The passed thread is the running thread. + * @exception rb_eSystemExit The passed thread is the last thread. + * @return The passed thread. + * @post Either the passed thread, or the process entirely, is killed. + * + * @internal + * + * It seems killing the main thread also kills the entire process even if there + * are multiple running ractors. No idea why. + */ +VALUE rb_thread_kill(VALUE thread); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Creates a Ruby thread that is backended by a C function. + * + * @param[in] f The function to run on a thread. + * @param[in,out] g Passed through to `f`. + * @exception rb_eThreadError Could not create a ruby thread. + * @exception rb_eSystemCallError Situations like `EPERM`. + * @return Allocated instance of ::rb_cThread. + * @note This doesn't wait for anything. + */ +VALUE rb_thread_create(VALUE (*f)(void *g), void *g); + +/** + * Identical to rb_thread_sleep(), except it takes struct `timeval` instead. + * + * @warning This function can be interrupted by signals. + * @param[in] time Duration. + * @exception rb_eInterrupt Interrupted. + */ +void rb_thread_wait_for(struct timeval time); + +/** + * Obtains the "current" thread. + * + * @return The current thread of the current ractor of the current execution + * context. + * @pre This function must be called from a thread controlled by ruby. + */ +VALUE rb_thread_current(void); + +/** + * Obtains the "main" thread. There are threads called main. Historically the + * (only) main thread was the one which runs when the process boots. Now that + * we have Ractor, there are more than one main threads. + * + * @return The main thread of the current ractor of the current execution + * context. + * @pre This function must be called from a thread controlled by ruby. + */ +VALUE rb_thread_main(void); + +/** + * This badly named function reads from a Fiber local storage. When this + * function was born there was no such thing like a Fiber. The world was + * innocent. But now... This is a Fiber local storage. Sorry. + * + * @param[in] thread Thread that the target Fiber is running. + * @param[in] key The name of the Fiber local storage to read. + * @retval RUBY_Qnil No such storage. + * @retval otherwise The value stored at `key`. + * @note There in fact are "true" thread local storage, but Ruby doesn't + * provide any interface of them to you, C programmers. + */ +VALUE rb_thread_local_aref(VALUE thread, ID key); + +/** + * This badly named function writes to a Fiber local storage. When this + * function was born there was no such thing like a Fiber. The world was + * innocent. But now... This is a Fiber local storage. Sorry. + * + * @param[in] thread Thread that the target Fiber is running. + * @param[in] key The name of the Fiber local storage to write. + * @param[in] val The new value of the storage. + * @exception rb_eFrozenError `thread` is frozen. + * @return The passed `val` as-is. + * @post Fiber local storage `key` has value of `val`. + * @note There in fact are "true" thread local storage, but Ruby doesn't + * provide any interface of them to you, C programmers. + */ +VALUE rb_thread_local_aset(VALUE thread, ID key, VALUE val); + +/** + * A `pthread_atfork(3posix)`-like API. Ruby expects its child processes to + * call this function at the very beginning of their processes. If you plan to + * fork a process don't forget to call it. + */ +void rb_thread_atfork(void); + +/** + * :FIXME: situation of this function is unclear. It seems nobody uses it. + * Maybe a good idea to KonMari. + */ +void rb_thread_atfork_before_exec(void); + +/** + * "Recursion" API entry point. This basically calls the given function with + * the given arguments, but additionally with recursion flag. The flag is set + * to 1 if the execution have already experienced the passed `g` parameter + * before. + * + * @param[in] f The function that possibly recurs. + * @param[in,out] g Passed as-is to `f`. + * @param[in,out] h Passed as-is to `f`. + * @return The return value of f. + */ +VALUE rb_exec_recursive(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE h); + +/** + * Identical to rb_exec_recursive(), except it checks for the recursion on the + * ordered pair of `{ g, p }` instead of just `g`. + * + * @param[in] f The function that possibly recurs. + * @param[in,out] g Passed as-is to `f`. + * @param[in] p Paired object for recursion detection. + * @param[in,out] h Passed as-is to `f`. + */ +VALUE rb_exec_recursive_paired(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE p, VALUE h); + +/** + * Identical to rb_exec_recursive(), except it calls `f` for outermost + * recursion only. Inner recursions yield calls to rb_throw_obj(). + * + * @param[in] f The function that possibly recurs. + * @param[in,out] g Passed as-is to `f`. + * @param[in,out] h Passed as-is to `f`. + * @return The return value of f. + * + * @internal + * + * It seems nobody uses the "it calls rb_throw_obj()" part of this function. + * @shyouhei doesn't understand the needs. + */ +VALUE rb_exec_recursive_outer(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE h); + +/** + * Identical to rb_exec_recursive_outer(), except it checks for the recursion + * on the ordered pair of `{ g, p }` instead of just `g`. It can also be seen + * as a routine identical to rb_exec_recursive_paired(), except it calls `f` + * for outermost recursion only. Inner recursions yield calls to + * rb_throw_obj(). + * + * @param[in] f The function that possibly recurs. + * @param[in,out] g Passed as-is to `f`. + * @param[in] p Paired object for recursion detection. + * @param[in,out] h Passed as-is to `f`. + * + * @internal + * + * It seems nobody uses the "it calls rb_throw_obj()" part of this function. + * @shyouhei doesn't understand the needs. + */ +VALUE rb_exec_recursive_paired_outer(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE p, VALUE h); + +/** + * This is the type of UBFs. An UBF is a function that unblocks a blocking + * region. For instance when a thread is blocking due to `pselect(3posix)`, it + * is highly expected that `pthread_kill(3posix)` can interrupt the system call + * and the thread could revive. Or when a thread is blocking due to + * `waitpid(3posix)`, it is highly expected that killing the waited process + * should suffice. An UBF is a function that does such things. Designing your + * own UBF needs deep understanding of why your blocking region blocks, how + * threads work in ruby, and a matter of luck. It often is the case you simply + * cannot cancel something that had already begun. + * + * @see rb_thread_call_without_gvl() + */ +typedef void rb_unblock_function_t(void *); + +/** + * @private + * + * This is an implementation detail. Must be a mistake to be here. + * + * @internal + * + * Why is this function type different from what rb_thread_call_without_gvl() + * takes? + */ +typedef VALUE rb_blocking_function_t(void *); + +/** + * Checks for interrupts. In ruby, signals are masked by default. You can + * call this function at will to check if there are pending signals. In case + * there are, they would be handled in this function. + * + * If your extension library has a function that takes a long time, consider + * calling it periodically. + * + * @note It might switch to another thread. + */ +void rb_thread_check_ints(void); + +/** + * Checks if the thread's execution was recently interrupted. If called from + * that thread, this function can be used to detect spurious wake-ups. + * + * @param[in] thval Thread in question. + * @retval 0 The thread was not interrupted. + * @retval otherwise The thread was interrupted recently. + * + * @internal + * + * Above description is not a lie. But actually the return value is an opaque + * trap vector. If you know which bit means which, you can know what happened. + */ +int rb_thread_interrupted(VALUE thval); + +/** + * A special UBF for blocking IO operations. You need deep understanding of + * what this actually do before using. Basically you should not use it from + * extension libraries. It is too easy to mess up. + */ +#define RUBY_UBF_IO RBIMPL_CAST((rb_unblock_function_t *)-1) + +/** + * A special UBF for blocking process operations. You need deep understanding + * of what this actually do before using. Basically you should not use it from + * extension libraries. It is too easy to mess up. + */ +#define RUBY_UBF_PROCESS RBIMPL_CAST((rb_unblock_function_t *)-1) + +/* thread_sync.c */ + +/** + * Creates a mutex. + * + * @return An allocated instance of rb_cMutex. + */ +VALUE rb_mutex_new(void); + +/** + * Queries if there are any threads that holds the lock. + * + * @param[in] mutex The mutex in question. + * @retval RUBY_Qtrue The mutex is locked by someone. + * @retval RUBY_Qfalse The mutex is not locked by anyone. + */ +VALUE rb_mutex_locked_p(VALUE mutex); + +/** + * Attempts to lock the mutex, without waiting for other threads to unlock it. + * Failure in locking the mutex can be detected by the return value. + * + * @param[out] mutex The mutex to lock. + * @retval RUBY_Qtrue Successfully locked by the current thread. + * @retval RUBY_Qfalse Otherwise. + * @note This function also returns ::RUBY_Qfalse when the mutex is + * already owned by the calling thread itself. + */ +VALUE rb_mutex_trylock(VALUE mutex); + +/** + * Attempts to lock the mutex. It waits until the mutex gets available. + * + * @param[out] mutex The mutex to lock. + * @exception rb_eThreadError Recursive deadlock situation. + * @return The passed mutex. + * @post The mutex is owned by the current thread. + */ +VALUE rb_mutex_lock(VALUE mutex); + +/** + * Releases the mutex. + * + * @param[out] mutex The mutex to unlock. + * @exception rb_eThreadError The mutex is not owned by the current thread. + * @return The passed mutex. + * @post Upon successful return the passed mutex is no longer owned by + * the current thread. + */ +VALUE rb_mutex_unlock(VALUE mutex); + +/** + * Releases the lock held in the mutex and waits for the period of time; + * reacquires the lock on wakeup. + * + * @pre The lock has to be owned by the current thread beforehand. + * @param[out] self The target mutex. + * @param[in] timeout Duration, in seconds, in ::rb_cNumeric. + * @exception rb_eArgError `timeout` is negative. + * @exception rb_eRangeError `timeout` is out of range of `time_t`. + * @exception rb_eThreadError The mutex is not owned by the current thread. + * @return Number of seconds it actually slept. + * @warning It is a failure not to check the return value. This function + * can return spuriously for various reasons. Maybe other threads + * can rb_thread_wakeup(). Maybe an end user can press the + * Control and C key from the interactive console. On the other + * hand it can also take longer than the specified. The mutex + * could be locked by someone else. It waits then. + * @post Upon successful return the passed mutex is owned by the current + * thread. + * + * @internal + * + * This function is called from `ConditionVariable#wait`. So it is not a + * deprecated feature. However @shyouhei have never seen any similar mutex + * primitive available in any other languages than Ruby. + * + * EDIT: In 2021, @shyouhei asked @ko1 in person about this API. He answered + * that it is his invention. The motivation behind its design is to eliminate + * needs of condition variables as primitives. Unlike other languages, Ruby's + * `ConditionVariable` class was written in pure-Ruby initially. We don't have + * to implement machine-native condition variables in assembly each time we + * port Ruby to a new architecture. This function made it possible. "I felt I + * was a genius when this idea came to me", said @ko1. + * + * `rb_cConditionVariable` is now written in C for speed, though. + */ +VALUE rb_mutex_sleep(VALUE self, VALUE timeout); + +/** + * Obtains the lock, runs the passed function, and releases the lock when it + * completes. + * + * @param[out] mutex The mutex to lock. + * @param[in] func What to do during the mutex is locked. + * @param[in,out] arg Passed as-is to `func`. + */ +VALUE rb_mutex_synchronize(VALUE mutex, VALUE (*func)(VALUE arg), VALUE arg); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_THREAD_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/time.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/time.h new file mode 100644 index 0000000..df48286 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/time.h @@ -0,0 +1,161 @@ +#ifndef RBIMPL_INTERN_TIME_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_TIME_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cTime. + */ +#include "ruby/internal/config.h" + +#ifdef HAVE_TIME_H +# include /* for time_t */ +#endif + +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +struct timespec; +struct timeval; + +/* time.c */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Fills the current time into the given struct. + * + * @param[out] ts Return buffer. + * @exception rb_eSystemCallError Access denied for hardware clock. + * @post Current time is stored in `*ts`. + */ +void rb_timespec_now(struct timespec *ts); + +/** + * Creates an instance of ::rb_cTime with the given time and the local + * timezone. + * + * @param[in] sec Seconds since the UNIX epoch. + * @param[in] usec Subsecond part, in microseconds resolution. + * @exception rb_eRangeError Cannot express the time. + * @return An allocated instance of ::rb_cTime. + */ +VALUE rb_time_new(time_t sec, long usec); + +/** + * Identical to rb_time_new(), except it accepts the time in nanoseconds + * resolution. + * + * @param[in] sec Seconds since the UNIX epoch. + * @param[in] nsec Subsecond part, in nanoseconds resolution. + * @exception rb_eRangeError Cannot express the time. + * @return An allocated instance of ::rb_cTime. + */ +VALUE rb_time_nano_new(time_t sec, long nsec); + +RBIMPL_ATTR_NONNULL(()) +/** + * Creates an instance of ::rb_cTime, with given time and offset. + * + * @param[in] ts Time specifier. + * @param[in] offset Offset specifier, can take following values: + * - `INT_MAX`: `ts` is in local time. + * - `INT_MAX - 1`: `ts` is in UTC. + * - `-86400` to `86400`: fixed timezone. + * @exception rb_eArgError Malformed `offset`. + * @return An allocated instance of ::rb_cTime. + */ +VALUE rb_time_timespec_new(const struct timespec *ts, int offset); + +/** + * Identical to rb_time_timespec_new(), except it takes Ruby values instead of + * C structs. + * + * @param[in] timev Something numeric. Currently Integers, Rationals, + * and Floats are accepted. + * @param[in] off Offset specifier. As of 2.7 this argument is + * heavily extended to take following kinds of + * objects: + * - ::RUBY_Qundef ... means UTC. + * - ::rb_cString ... "+12:34" etc. + * - A mysterious "zone" object. This is largely + * undocumented. However the initial intent was + * that we want to accept + * `ActiveSupport::TimeZone` here. Other gems + * could also be possible... But how to make an + * acceptable class is beyond this document. + * @exception rb_eArgError Malformed `off`. + * @return An allocated instance of ::rb_cTime. + */ +VALUE rb_time_num_new(VALUE timev, VALUE off); + +/** + * Creates a "time interval". This basically converts an instance of + * ::rb_cNumeric into a struct `timeval`, but for instance negative time + * interval must not exist. + * + * @param[in] num An instance of ::rb_cNumeric. + * @exception rb_eArgError `num` is negative. + * @exception rb_eRangeError `num` is out of range of `timeval::tv_sec`. + * @return A struct that represents the identical time to `num`. + */ +struct timeval rb_time_interval(VALUE num); + +/** + * Converts an instance of rb_cTime to a struct timeval that represents the + * identical point of time. It can also take something numeric; would consider + * it as a UNIX time then. + * + * @param[in] time Instance of either ::rb_cTime or ::rb_cNumeric. + * @exception rb_eRangeError `time` is out of range of `timeval::tv_sec`. + * @return A struct that represents the identical time to `num`. + */ +struct timeval rb_time_timeval(VALUE time); + +/** + * Identical to rb_time_timeval(), except for return type. + * + * @param[in] time Instance of either ::rb_cTime or ::rb_cNumeric. + * @exception rb_eRangeError `time` is out of range of `timeval::tv_sec`. + * @return A struct that represents the identical time to `num`. + */ +struct timespec rb_time_timespec(VALUE time); + +/** + * Identical to rb_time_interval(), except for return type. + * + * @param[in] num An instance of ::rb_cNumeric. + * @exception rb_eArgError `num` is negative. + * @exception rb_eRangeError `num` is out of range of `timespec::tv_sec`. + * @return A struct that represents the identical time to `num`. + */ +struct timespec rb_time_timespec_interval(VALUE num); + +/** + * Queries the offset, in seconds between the time zone of the time and the + * UTC. + * + * @param[in] time An instance of ::rb_cTime. + * @return Numeric offset. + */ +VALUE rb_time_utc_offset(VALUE time); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_TIME_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/variable.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/variable.h new file mode 100644 index 0000000..479c395 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/variable.h @@ -0,0 +1,628 @@ +#ifndef RBIMPL_INTERN_VARIABLE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_VARIABLE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to names inside of a Ruby program. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/st.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* variable.c */ + +/** + * Queries the name of a module. + * + * @param[in] mod An instance of ::rb_cModule. + * @retval RUBY_Qnil `mod` is anonymous. + * @retval otherwise `mod` is onymous. + */ +VALUE rb_mod_name(VALUE mod); + +/** + * Identical to rb_mod_name(), except it returns `#` style + * inspection for anonymous modules. + * + * @param[in] mod An instance of ::rb_cModule. + * @return An instance of ::rb_cString representing `mod`'s path. + */ +VALUE rb_class_path(VALUE mod); + +/** + * @alias{rb_mod_name} + * + * @internal + * + * Am I missing something? Why we have the same thing in different names? + */ +VALUE rb_class_path_cached(VALUE mod); + +RBIMPL_ATTR_NONNULL(()) +/** + * Names a class. + * + * @param[out] klass Target module to name. + * @param[out] space Namespace that `klass` shall reside. + * @param[in] name Name of `klass`. + * @post `klass` has `space::klass` name. + */ +void rb_set_class_path(VALUE klass, VALUE space, const char *name); + +/** + * Identical to rb_set_class_path(), except it accepts the name as Ruby's + * string instead of C's. + * + * @param[out] klass Target module to name. + * @param[out] space Namespace that `klass` shall reside. + * @param[in] name Name of `klass`. + * @post `klass` has `space::klass` name. + */ +void rb_set_class_path_string(VALUE klass, VALUE space, VALUE name); + +/** + * Identical to rb_path2class(), except it accepts the path as Ruby's string + * instead of C's. + * + * @param[in] path Path to query. + * @exception rb_eArgError No such constant. + * @exception rb_eTypeError The path resolved to a non-module. + * @return Resolved class. + */ +VALUE rb_path_to_class(VALUE path); + +RBIMPL_ATTR_NONNULL(()) +/** + * Resolves a `Q::W::E::R`-style path string to the actual class it points. + * + * @param[in] path Path to query. + * @exception rb_eArgError No such constant. + * @exception rb_eTypeError The path resolved to a non-module. + * @return Resolved class. + */ +VALUE rb_path2class(const char *path); + +/** + * Queries the name of the given object's class. + * + * @param[in] obj Arbitrary object. + * @return An instance of ::rb_cString representing `obj`'s class' path. + */ +VALUE rb_class_name(VALUE obj); + +/** + * Kicks the autoload procedure as if it was "touched". + * + * @param[out] space Namespace where autoload is defined. + * @param[in] name Name of the autoloaded constant. + * @retval RUBY_Qfalse No such autoload. + * @retval RUBY_Qtrue Autoload successfully initiated. + * @note As an autoloaded library is expected to define `space::name`, + * it is a nature of this function to have process-global side + * effects. + * @note Multiple threads can simultaneously call this API. It blocks + * then. That must not last indefinitely but can take longer than + * you expect. + * + * @internal + * + * @shyouhei has no idea why extension libraries should use this API. + */ +VALUE rb_autoload_load(VALUE space, ID name); + +/** + * Queries if an autoload is defined at a point. + * + * @param[in] space Namespace where autoload is defined. + * @param[in] name Name of the autoloaded constant. + * @retval RUBY_Qnil No such autoload. + * @retval otherwise The feature (path) registered at `space::name`. + */ +VALUE rb_autoload_p(VALUE space, ID name); + +/** + * Traces a global variable. + * + * @param[in] argc Either 1 or 2. + * @param[in] argv Variable name, optionally a Proc. + * @retval RUBY_Qnil No previous tracers. + * @retval otherwise Previous tracers. + * + * @internal + * + * @shyouhei has no idea why extension libraries should use this API. + */ +VALUE rb_f_trace_var(int argc, const VALUE *argv); + +/** + * Deletes the passed tracer from the passed global variable, or if omitted, + * deletes everything. + * + * @param[in] argc Either 1 or 2. + * @param[in] argv Variable name, optionally a Proc. + * @retval RUBY_Qnil No previous tracers. + * @retval otherwise Deleted tracers. + * + * @internal + * + * @shyouhei has no idea why extension libraries should use this API. + */ +VALUE rb_f_untrace_var(int argc, const VALUE *argv); + +/** + * Queries the list of global variables. + * + * @return The list of the name of the global variables. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +VALUE rb_f_global_variables(void); + +/** + * Aliases a global variable. Did you know that you can alias a global + * variable? It is like aliasing methods: + * + * ```ruby + * alias $dst $src + * ``` + * + * This C function does the same thing. + * + * @param[in] dst Destination name. + * @param[in] src Source name. + * @post A global variable named `dst` is defined to be an alias of a + * global variable named `src`. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +void rb_alias_variable(ID dst, ID src); + +/** + * Frees the list of instance variables. 3rd parties need not know, but there + * are several ways to store an object's instance variables, depending on its + * internal structure. This function makes sense when the passed objects is + * using so-called "generic" backend storage. People need not be aware of this + * working behind-the-scenes. + * + * @param[out] obj The object in question. + * + * @internal + * + * This just destroys the given object. @shyouhei has no idea why extension + * libraries should use this API. + */ +void rb_free_generic_ivar(VALUE obj); + +/** + * Identical to rb_iv_get(), except it accepts the name as an ::ID instead of a + * C string. + * + * @param[in] obj Target object. + * @param[in] name Target instance variable to query. + * @retval RUBY_nil No such instance variable. + * @retval otherwise The value assigned to the instance variable. + */ +VALUE rb_ivar_get(VALUE obj, ID name); + +/** + * Identical to rb_iv_set(), except it accepts the name as an ::ID instead of a + * C string. + * + * @param[out] obj Target object. + * @param[in] name Target instance variable. + * @param[in] val Value to assign. + * @exception rb_eFrozenError Can't modify `obj`. + * @exception rb_eArgError `obj` has too many instance variables. + * @return Passed value. + * @post An instance variable named `name` is defined if absent on + * `obj`, whose value is set to `val`. + */ +VALUE rb_ivar_set(VALUE obj, ID name, VALUE val); + +/** + * Queries if the instance variable is defined at the object. This roughly + * resembles `defined?(@name)` in `obj`'s context. + * + * @param[in] obj Target object. + * @param[in] name Target instance variable to query. + * @retval RUBY_Qtrue There is an instance variable. + * @retval RUBY_Qfalse No such instance variable. + */ +VALUE rb_ivar_defined(VALUE obj, ID name); + +/** + * Iterates over an object's instance variables. + * + * @param[in] obj Target object. + * @param[in] func Callback function. + * @param[in] arg Passed as-is to the last argument of `func`. + */ +void rb_ivar_foreach(VALUE obj, int (*func)(ID name, VALUE val, st_data_t arg), st_data_t arg); + +/** + * Number of instance variables defined on an object. + * + * @param[in] obj Target object. + * @return Number of instance variables defined on `obj`. + */ +st_index_t rb_ivar_count(VALUE obj); + +/** + * Identical to rb_ivar_get() + * + * @param[in] obj Target object. + * @param[in] name Target instance variable to query. + * @retval RUBY_nil No such instance variable. + * @retval otherwise The value assigned to the instance variable. + * + * @internal + * + * Am I missing something? Why we have the same thing in different names? + */ +VALUE rb_attr_get(VALUE obj, ID name); + +/** + * Resembles `Object#instance_variables`. + * + * @param[in] obj Target object to query. + * @return An array of instance variable names for the receiver. + * @note Simply defining an accessor does not create the corresponding + * instance variable. + */ +VALUE rb_obj_instance_variables(VALUE obj); + +/** + * Resembles `Object#remove_instance_variable`. + * + * @param[out] obj Target object. + * @param[in] name Variable name to remove, either in Symbol or String. + * @return What was removed. + * @pre Instance variable named `name` is deleted from `obj`. + */ +VALUE rb_obj_remove_instance_variable(VALUE obj, VALUE name); + +/** + * This API is mysterious. It has been there since the initial revision. No + * single bits of documents has ever been written. The function name doesn't + * describe anything. What should be passed to the argument, or what should be + * the return value, are not obvious. Yet it has evolved over time. The + * source code is written in counter-intuitive way (as of 3.0). + * + * Simply put, don't try to understand this API. + */ +void *rb_mod_const_at(VALUE, void*); + +/** + * This is a variant of rb_mod_const_at(). As a result, it is also mysterious. + * It _seems_ it iterates over the ancestry tree of the module. But what that + * means is beyond a human brain. + */ +void *rb_mod_const_of(VALUE, void*); + +/** + * This is another mysterious API that comes with no documents at all. It + * seems it expects some specific data structure for the passed pointer. But + * the details has never been made explicit. It seems nobody should use this + * API. + */ +VALUE rb_const_list(void*); + +/** + * Resembles `Module#constants`. List up the constants defined at the + * receiver. This includes the names of constants in any included modules, + * unless `argv[0]` is ::RUBY_Qfalse. + * + * The implementation makes no guarantees about the order in which the + * constants are yielded. + * + * @param[in] argc Either 0 or 1. + * @param[in] argv Pointer to ::RUBY_Qfalse, if `argc == 1`. + * @param[in] recv Target namespace. + * @return An array of symbols, which are constant names under `recv`. + */ +VALUE rb_mod_constants(int argc, const VALUE *argv, VALUE recv); + +/** + * Resembles `Module#remove_const`. + * + * @param[out] space Target namespace. + * @param[in] name Variable name to remove, either in Symbol or String. + * @return What was removed. + * @pre Constant named `space::name` is deleted. + * @note In case what was removed was in fact a module or a class, this + * operation does not affect its name. Which means when people + * for instance look at it using `p` etc., it still introduces + * itself using the deleted name. Can confuse people. + */ +VALUE rb_mod_remove_const(VALUE space, VALUE name); + +/** + * Queries if the constant is defined at the namespace. + * + * @param[in] space Target namespace. + * @param[in] name Target name to query. + * @retval RUBY_Qtrue There is a constant. + * @retval RUBY_Qfalse No such constant. + * + * @internal + * + * The return values are not typo! This function returns ruby values casted to + * `int`. Completely brain-damaged design. + */ +int rb_const_defined(VALUE space, ID name); + +/** + * Identical to rb_const_defined(), except it doesn't look for parent classes. + * For instance `Array` is a toplevel constant, which is visible from + * everywhere. But this function does not take such things into account. It + * concerns only what is directly defined inside of the given namespace. + * + * @param[in] space Target namespace. + * @param[in] name Target name to query. + * @retval RUBY_Qtrue There is a constant. + * @retval RUBY_Qfalse No such constant. + * + * @internal + * + * The return values are not typo! This function returns ruby values casted to + * `int`. Completely brain-damaged design. + */ +int rb_const_defined_at(VALUE space, ID name); + +/** + * Identical to rb_const_defined(), except it returns false for private + * constants. + * + * @param[in] space Target namespace. + * @param[in] name Target name to query. + * @retval RUBY_Qtrue There is a constant. + * @retval RUBY_Qfalse No such constant. + * + * @internal + * + * What does "from" mean? The name sounds quite cryptic. + * + * The return values are not typo! This function returns ruby values casted to + * `int`. Completely brain-damaged design. + */ +int rb_const_defined_from(VALUE space, ID name); + +/** + * Identical to rb_const_defined(), except it returns the actual defined value. + * + * @param[in] space Target namespace. + * @param[in] name Target name to query. + * @exception rb_eNameError No such constant. + * @return The defined constant. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +VALUE rb_const_get(VALUE space, ID name); + +/** + * Identical to rb_const_defined_at(), except it returns the actual defined + * value. It can also be seen as a routine identical to rb_const_get(), except + * it doesn't look for parent classes. + * + * @param[in] space Target namespace. + * @param[in] name Target name to query. + * @exception rb_eNameError No such constant. + * @return The defined constant. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +VALUE rb_const_get_at(VALUE space, ID name); + +/** + * Identical to rb_const_defined_at(), except it returns the actual defined + * value. It can also be seen as a routine identical to rb_const_get(), except + * it doesn't return a private constant. + * + * @param[in] space Target namespace. + * @param[in] name Target name to query. + * @exception rb_eNameError No such constant. + * @return The defined constant. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +VALUE rb_const_get_from(VALUE space, ID name); + +/** + * Names a constant. + * + * @param[out] space Target namespace. + * @param[in] name Target name to query. + * @param[in] val Value to define. + * @exception rb_eTypeError `space` is not a module. + * @post `name` is a constant under `space`, whose value is `val`. + * @note You can reassign. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +void rb_const_set(VALUE space, ID name, VALUE val); + +/** + * Identical to rb_mod_remove_const(), except it takes the name as ::ID instead + * of ::VALUE. + * + * @param[out] space Target namespace. + * @param[in] name Variable name to remove, either in Symbol or String. + * @return What was removed. + * @pre Constant named `space::name` is deleted. + * @note In case what was removed was in fact a module or a class, this + * operation does not affect its name. Which means when people + * for instance look at it using `p` etc., it still introduces + * itself using the deleted name. Can confuse people. + */ +VALUE rb_const_remove(VALUE space, ID name); + +#if 0 /* EXPERIMENTAL: remove if no problem */ +RBIMPL_ATTR_NORETURN() +/** + * This is the default implementation of `Module#const_missing`. + * + * @param[in] space Target namespace. + * @param[in] name Target name that is nonexistent. + * @exception rb_eNameError Always. + */ +VALUE rb_mod_const_missing(VALUE space, VALUE name); +#endif + +/** + * Queries if the given class has the given class variable. + * + * @param[in] klass Target class. + * @param[in] name Name to query. + * @return RUBY_Qtrue Yes there is. + * @return RUBY_Qfalse No there isn't. + * @pre `klass` must be an instance of rb_cModule. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +VALUE rb_cvar_defined(VALUE klass, ID name); + +/** + * Assigns a value to a class variable. + * + * @param[out] klass Target class. + * @param[in] name Variable name. + * @param[in] val Value to be assigned. + * @post `klass` has a class variable named `name` whose value is `val`. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +void rb_cvar_set(VALUE klass, ID name, VALUE val); + +/** + * Obtains a value from a class variable. + * + * @param[in] klass Target class. + * @param[in] name Variable name. + * @exception rb_eNameError Uninitialised class variable. + * @exception rb_eRuntimeError `[Bug#14541]` situation. + * @return Class variable named `name` under `klass`. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +VALUE rb_cvar_get(VALUE klass, ID name); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_cvar_get(), except it takes additional "front" pointer. + * This extra parameter is a buffer, which will have the class where the + * queried class variable actually resides. + * + * @param[in] klass Target class. + * @param[in] name Variable name. + * @param[out] front Return buffer. + * @exception rb_eNameError Uninitialised class variable. + * @exception rb_eRuntimeError `[Bug#14541]` situation. + * @return Class variable named `name` under `klass`. + * @post `front` has the class object, which is an ancestor of `klass`, + * where the queried class variable actually resides. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +VALUE rb_cvar_find(VALUE klass, ID name, VALUE *front); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_cvar_set(), except it accepts C's string instead of ::ID. + * + * @param[out] klass Target class. + * @param[in] name Variable name. + * @param[in] val Value to be assigned. + * @post `klass` has a class variable named `name` whose value is `val`. + */ +void rb_cv_set(VALUE klass, const char *name, VALUE val); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_cvar_get(), except it accepts C's string instead of ::ID. + * + * @param[in] klass Target class. + * @param[in] name Variable name. + * @exception rb_eNameError Uninitialised class variable. + * @exception rb_eRuntimeError `[Bug#14541]` situation. + * @return Class variable named `name` under `klass`. + */ +VALUE rb_cv_get(VALUE klass, const char *name); + +RBIMPL_ATTR_NONNULL(()) +/** + * @alias{rb_cv_set} + * + * @internal + * + * Am I missing something? Why we have the same thing in different names? + */ +void rb_define_class_variable(VALUE, const char*, VALUE); + +/** + * Resembles `Module#class_variables`. List up the variables defined at the + * receiver. This includes the names of constants in any included modules, + * unless `argv[0]` is ::RUBY_Qfalse. + * + * The implementation makes no guarantees about the order in which the + * constants are yielded. + * + * @param[in] argc Either 0 or 1. + * @param[in] argv Pointer to ::RUBY_Qfalse, if `argc == 1`. + * @param[in] recv Target class. + * @return An array of symbols, which are class variable names under + * `recv`. + */ +VALUE rb_mod_class_variables(int argc, const VALUE *argv, VALUE recv); + +/** + * Resembles `Module#remove_class_variable`. + * + * @param[out] mod Target class. + * @param[in] name Variable name to remove, either in Symbol or String. + * @return What was removed. + * @pre Instance variable named `name` is deleted from `obj`. + */ +VALUE rb_mod_remove_cvar(VALUE mod, VALUE name); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_VARIABLE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/vm.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/vm.h new file mode 100644 index 0000000..76af796 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/intern/vm.h @@ -0,0 +1,431 @@ +#ifndef RBIMPL_INTERN_VM_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_VM_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to rb_cRubyVM. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* vm.c */ + +/** + * Resembles `__LINE__`. + * + * @retval 0 Current execution context not in a ruby method. + * @retval otherwise The current line number of the current thread of the + * current ractor of the current execution context. + */ +int rb_sourceline(void); + +/** + * Resembles `__FILE__`. + * + * @retval 0 Current execution context not in a ruby method. + * @retval otherwise The current source path of the current thread of the + * current ractor of the current execution context. + * @note This may or may not be an absolute path. + */ +const char *rb_sourcefile(void); + +/** + * Resembles `__method__`. + * + * @param[out] idp Return buffer for method id. + * @param[out] klassp Return buffer for class. + * @retval 0 Current execution context not in a method. + * @retval 1 Successful return. + * @post Upon successful return `*idp` and `*klassp` are updated to have + * the current method name and its defined class respectively. + * @note Both parameters can be `NULL`. + */ +int rb_frame_method_id_and_class(ID *idp, VALUE *klassp); + +/* vm_eval.c */ + +/** + * Identical to rb_funcallv(), except it returns ::RUBY_Qundef instead of + * raising ::rb_eNoMethodError. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @retval RUBY_Qundef `recv` doesn't respond to `mid`. + * @retval otherwise What the method evaluates to. + */ +VALUE rb_check_funcall(VALUE recv, ID mid, int argc, const VALUE *argv); + +/** + * Identical to rb_check_funcall(), except you can specify how to handle the + * last element of the given array. It can also be seen as a routine identical + * to rb_funcallv_kw(), except it returns ::RUBY_Qundef instead of raising + * ::rb_eNoMethodError. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @retval RUBY_Qundef `recv` doesn't respond to `mid`. + * @retval otherwise What the method evaluates to. + */ +VALUE rb_check_funcall_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat); + +/** + * This API is practically a variant of rb_proc_call_kw() now. Historically + * when there still was a concept called `$SAFE`, this was an API for that. + * But we no longer have that. This function basically ended its role. It + * just remains here because of no harm. + * + * @param[in] cmd A string, or something callable. + * @param[in] arg Argument passed to the call. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `arg`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `arg`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @return What the command evaluates to. + */ +VALUE rb_eval_cmd_kw(VALUE cmd, VALUE arg, int kw_splat); + +/** + * Identical to rb_funcallv(), except it takes Ruby's array instead of C's. + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] args An instance of ::RArray. + * @exception rb_eNoMethodError No such method. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + * @pre `args` must be an ::RArray. Call `to_ary` beforehand when + * necessary. + */ +VALUE rb_apply(VALUE recv, ID mid, VALUE args); + +/** + * Evaluates a string containing Ruby source code, or the given block, within + * the context of the receiver. In order to set the context, the variable + * `self` is set to `recv` while the code is executing, giving the code access + * to `recv`'s instance variables and private methods. + * + * When given a block, `recv` is also passed in as the block's only argument. + * + * When given a string, the optional second and third parameters supply a + * filename and starting line number that are used when reporting compilation + * errors. + * + * @param[in] argc Number of objects in `argv` + * @param[in] argv C array of 0 up to 3 elements. + * @param[in] recv The object in question. + * @return What was evaluated. + */ +VALUE rb_obj_instance_eval(int argc, const VALUE *argv, VALUE recv); + +/** + * Executes the given block within the context of the receiver. In order to + * set the context, the variable `self` is set to `recv` while the code is + * executing, giving the code access to `recv`'s instance variables. Arguments + * are passed as block parameters. + * + * @param[in] argc Number of objects in `argv` + * @param[in] argv Arbitrary parameters to be passed to the block. + * @param[in] recv The object in question. + * @return What was evaluated. + * @note Don't confuse this with rb_obj_instance_eval(). The key + * difference is whether you can pass arbitrary parameters to the + * block, like this: + * + * ```ruby + * class Foo + * def initialize + * @foo = 5 + * end + * end + * Foo.new.instance_exec(7) {|i| @foo + i } # => 12 + * ``` + */ +VALUE rb_obj_instance_exec(int argc, const VALUE *argv, VALUE recv); + +/** + * Identical to rb_obj_instance_eval(), except it evaluates within the context + * of module. + * + * @param[in] argc Number of objects in `argv` + * @param[in] argv C array of 0 up to 3 elements. + * @param[in] mod The module in question. + * @pre `mod` must be a Module. + * @return What was evaluated. + */ +VALUE rb_mod_module_eval(int argc, const VALUE *argv, VALUE mod); + +/** + * Identical to rb_obj_instance_exec(), except it evaluates within the context + * of module. + * + * @param[in] argc Number of objects in `argv` + * @param[in] argv Arbitrary parameters to be passed to the block. + * @param[in] mod The module in question. + * @pre `mod` must be a Module. + * @return What was evaluated. + */ +VALUE rb_mod_module_exec(int argc, const VALUE *argv, VALUE mod); + +/* vm_method.c */ + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define HAVE_RB_DEFINE_ALLOC_FUNC 1 + +/** + * This is the type of functions that ruby calls when trying to allocate an + * object. It is sometimes necessary to allocate extra memory regions for an + * object. When you define a class that uses ::RTypedData, it is typically the + * case. On such situations define a function of this type and pass it to + * rb_define_alloc_func(). + * + * @param[in] klass The class that this function is registered. + * @return A newly allocated instance of `klass`. + */ +typedef VALUE (*rb_alloc_func_t)(VALUE klass); + +/** + * Sets the allocator function of a class. + * + * @param[out] klass The class to modify. + * @param[in] func An allocator function for the class. + * @pre `klass` must be an instance of Class. + */ +void rb_define_alloc_func(VALUE klass, rb_alloc_func_t func); + +/** + * Deletes the allocator function of a class. It is sometimes desirable to + * restrict creation of an instance of a class. For example it rarely makes + * sense for a DB adaptor class to allow programmers creating DB row objects + * without querying the DB itself. You can kill sporadic creation of such + * objects then, by nullifying the allocator function using this API. Your + * object shall be allocated using #RB_NEWOBJ_OF() directly. + * + * @param[out] klass The class to modify. + * @pre `klass` must be an instance of Class. + */ +void rb_undef_alloc_func(VALUE klass); + +/** + * Queries the allocator function of a class. + * + * @param[in] klass The class in question. + * @pre `klass` must be an instance of Class. + * @retval 0 No allocator function is registered. + * @retval otherwise The allocator function. + * + * @internal + * + * Who cares? @shyouhei finds no practical usage of the return value. Maybe we + * need KonMari. + */ +rb_alloc_func_t rb_get_alloc_func(VALUE klass); + +/** + * Clears the inline constant caches associated with a particular ID. Extension + * libraries should not bother with such things. Just forget about this API (or + * even, the presence of constant caches). + */ +void rb_clear_constant_cache_for_id(ID id); + +/** + * Resembles `alias`. + * + * @param[out] klass Where to define an alias. + * @param[in] dst New name. + * @param[in] src Existing name. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eFrozenError `klass` is frozen. + * @exception rb_eNameError No such method named `src`. + * @post `klass` has a method named `dst`, which is the identical to its + * method named `src`. + */ +void rb_alias(VALUE klass, ID dst, ID src); + +/** + * This function resembles now-deprecated `Module#attr`. + * + * @param[out] klass Where to define an attribute. + * @param[in] name Name of an instance variable. + * @param[in] need_reader Whether attr_reader is needed. + * @param[in] need_writer Whether attr_writer is needed. + * @param[in] honour_visibility Whether to use the current visibility. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eFrozenError `klass` is frozen. + * @post If `need_reader` is set `klass` has a method named `name`. + * @post If `need_writer` is set `klass` has a method named `name=`. + * + * @internal + * + * The three `int` arguments should have been bool, but there was no such thing + * like a bool when K&R was used in this project. + */ +void rb_attr(VALUE klass, ID name, int need_reader, int need_writer, int honour_visibility); + +RBIMPL_ATTR_NONNULL(()) +/** + * Removes a method. Don't confuse this to rb_undef_method(), which doesn't + * remove a method. This one resembles `Module#remove_method`. + * + * @param[out] klass The class to remove a method. + * @param[in] name Name of a method to be removed. + * @exception rb_eTypeError `klass` is a non-module. + * @exception rb_eFrozenError `klass` is frozen. + * @exception rb_eNameError No such method. + * @see rb_undef_method + */ +void rb_remove_method(VALUE klass, const char *name); + +/** + * Identical to rb_remove_method(), except it accepts the method name as ::ID. + * + * @param[out] klass The class to remove a method. + * @param[in] mid Name of a method to be removed. + * @exception rb_eTypeError `klass` is a non-module. + * @exception rb_eFrozenError `klass` is frozen. + * @exception rb_eNameError No such method. + * @see rb_undef + */ +void rb_remove_method_id(VALUE klass, ID mid); + +/** + * Queries if the klass has this method. This function has only one line of + * document in the implementation that states "// deprecated". Don't know what + * that means though. + * + * @param[in] klass The class in question. + * @param[in] id The method name to query. + * @param[in] ex Undocumented magic value. + * @retval false Method not found. + * @retval true There is a method. + * @pre `klass` must be a module. + * + * @internal + * + * @shyouhei has no motivation to describe what should be passed to `ex`. It + * seems this function should just be trashed. + */ +int rb_method_boundp(VALUE klass, ID id, int ex); + +/** + * Well... Let us hesitate from describing what a "basic definition" is. This + * nuanced concept should have been kept private. Just please. Don't touch + * it. This function is a badly distributed random number generator. Right? + * + * @param[in] klass The class in question. + * @param[in] mid The method name in question. + * @retval 1 It is. + * @retval 0 It isn't. + */ +int rb_method_basic_definition_p(VALUE klass, ID mid); + +/** + * Identical to rb_respond_to(), except it additionally takes the visibility + * parameter. This does not make difference unless the object has + * `respond_to?` undefined, but has `respond_to_missing?` defined. That case + * the passed argument becomes the second argument of `respond_to_missing?`. + * + * @param[in] obj The object in question. + * @param[in] mid The method name in question. + * @param[in] private_p This is the second argument of `obj`'s + * `respond_to_missing?`. + * @retval 1 Yes it does. + * @retval 0 No it doesn't. + */ +int rb_obj_respond_to(VALUE obj, ID mid, int private_p); + +/** + * Queries if the object responds to the method. This involves calling the + * object's `respond_to?` method. + * + * @param[in] obj The object in question. + * @param[in] mid The method name in question. + * @retval 1 Yes it does. + * @retval 0 No it doesn't. + */ +int rb_respond_to(VALUE obj, ID mid); + +RBIMPL_ATTR_NORETURN() +/** + * Raises ::rb_eNotImpError. This function is used as an argument to + * rb_define_method() etc. + * + * ```CXX + * rb_define_method(rb_cFoo, "foo", rb_f_notimplement, -1); + * ``` + * + * @param argc Unused parameter. + * @param argv Unused parameter. + * @param obj Unused parameter. + * @param marker Unused parameter. + * @exception rb_eNotImpError Always. + * @return Never returns. + * + * @internal + * + * See also the Q&A section of include/ruby/internal/anyargs.h. + */ +VALUE rb_f_notimplement(int argc, const VALUE *argv, VALUE obj, VALUE marker); +#if !defined(RUBY_EXPORT) && defined(_WIN32) +RUBY_EXTERN VALUE (*const rb_f_notimplement_)(int, const VALUE *, VALUE, VALUE marker); +#define rb_f_notimplement (*rb_f_notimplement_) +#endif + +/* vm_backtrace.c */ + +/** + * Prints the backtrace out to the standard error. This just confuses people + * for no reason. Evil souls must only use it. + * + * @internal + * + * Actually it is very useful when called from an interactive GDB session. + */ +void rb_backtrace(void); + +/** + * Creates the good old fashioned array-of-strings style backtrace info. + * + * @return An array which contains strings, which are the textual + * representations of the backtrace locations of the current thread of + * the current ractor of the current execution context. + * @note Ruby scripts can access more sophisticated + * `Thread::Backtrace::Location`. But it seems there is no way for C + * extensions to use that API. + */ +VALUE rb_make_backtrace(void); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_VM_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/interpreter.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/interpreter.h new file mode 100644 index 0000000..662d39c --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/interpreter.h @@ -0,0 +1,304 @@ +#ifndef RBIMPL_INTERPRETER_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERPRETER_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Interpreter embedding APIs. + */ +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * @defgroup embed CRuby Embedding APIs + * + * CRuby interpreter APIs. These are APIs to embed MRI interpreter into your + * program. + * These functions are not a part of Ruby extension library API. + * Extension libraries of Ruby should not depend on these functions. + * + * @{ + */ + +/** + * @defgroup ruby1 ruby(1) implementation + * + * A part of the implementation of ruby(1) command. + * Other programs that embed Ruby interpreter do not always need to use these + * functions. + * + * @{ + */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Initializes the process for libruby. + * + * This function assumes this process is `ruby(1)` and it has just started. + * Usually programs that embed CRuby interpreter may not call this function, + * and may do their own initialization. + * + * @param[in] argc Pointer to process main's `argc`. + * @param[in] argv Pointer to process main's `argv`. + * @warning `argc` and `argv` cannot be `NULL`. + * + * @internal + * + * AFAIK Ruby does write to argv, especially `argv[0][0]`, via setproctitle(3). + * It is intentional that the argument is not const-qualified. + */ +void ruby_sysinit(int *argc, char ***argv); + +/** + * Calls ruby_setup() and check error. + * + * Prints errors and calls exit(3) if an error occurred. + */ +void ruby_init(void); + +/** + * Processes command line arguments and compiles the Ruby source to execute. + * + * This function does: + * - Processes the given command line flags and arguments for `ruby(1)` + * - Compiles the source code from the given argument, `-e` or `stdin`, and + * - Returns the compiled source as an opaque pointer to an internal data + * structure + * + * @param[in] argc Process main's `argc`. + * @param[in] argv Process main's `argv`. + * @return An opaque pointer to the compiled source or an internal special + * value. Pass it to ruby_executable_node() to detect which. + * @see ruby_executable_node + */ +void* ruby_options(int argc, char** argv); + +/** + * Checks the return value of ruby_options(). + * + * ruby_options() sometimes returns a special value to indicate this process + * should immediately exit. This function checks if the case. Also stores the + * exit status that the caller have to pass to exit(3) into `*status`. + * + * @param[in] n A return value of ruby_options(). + * @param[out] status Pointer to the exit status of this process. + * @retval 0 The given value is such a special value. + * @retval otherwise The given opaque pointer is actually a compiled + * source. + */ +int ruby_executable_node(void *n, int *status); + +/** + * Runs the given compiled source and exits this process. + * + * @param[in] n Opaque "node" pointer. + * @retval EXIT_SUCCESS Successfully run the source. + * @retval EXIT_FAILURE An error occurred. + */ +int ruby_run_node(void *n); + +/* version.c */ +/** Prints the version information of the CRuby interpreter to stdout. */ +void ruby_show_version(void); + +#ifndef ruby_show_copyright +/** Prints the copyright notice of the CRuby interpreter to stdout. */ +void ruby_show_copyright(void); +#endif + +/** + * A convenience macro to call ruby_init_stack(). + * Must be placed just after variable declarations. + */ +#define RUBY_INIT_STACK \ + VALUE variable_in_this_stack_frame; \ + ruby_init_stack(&variable_in_this_stack_frame); +/** @} */ + +/** + * Set stack bottom of Ruby implementation. + * + * You must call this function before any heap allocation by Ruby + * implementation. Or GC will break living objects. + * + * @param[in] addr A pointer somewhere on the stack, near its bottom. + */ +void ruby_init_stack(volatile VALUE *addr); + +/** + * Initializes the VM and builtin libraries. + * + * @retval 0 Initialization succeeded. + * @retval otherwise An error occurred. + * + * @internal + * + * Though not a part of our public API, the return value is in fact an enum + * ruby_tag_type. You can see the potential "otherwise" values by looking at + * vm_core.h. + */ +int ruby_setup(void); + +/** + * Destructs the VM. + * + * Runs the VM finalization processes as well as ruby_finalize(), and frees + * resources used by the VM. + * + * @param[in] ex Default value to the return value. + * @retval EXIT_FAILURE An error occurred. + * @retval ex Successful cleanup. + * @note This function does not raise any exception. + */ +int ruby_cleanup(int ex); + +/** + * Runs the VM finalization processes. + * + * `END{}` and procs registered by `Kernel.#at_exit` are executed here. See the + * Ruby language spec for more details. + * + * @note This function is allowed to raise an exception if an error occurred. + */ +void ruby_finalize(void); + +RBIMPL_ATTR_NORETURN() +/** Calls ruby_cleanup() and exits the process. */ +void ruby_stop(int); + +/** + * Checks for stack overflow. + * + * @retval true NG machine stack is about to overflow. + * @retval false OK there still is a room in the stack. + * + * @internal + * + * Does anybody use it? So far @shyouhei have never seen any actual use-case. + */ +int ruby_stack_check(void); + +/** + * Queries what Ruby thinks is the machine stack. Ruby manages a region of + * memory. It calls that area the "machine stack". By calling this function, + * in spite of its name, you can obtain both one end of the stack and its + * length at once. Which means you can know the entire region. + * + * @param[out] topnotch On return the pointer points to the upmost address of + * the macihne stack that Ruby knows. + * @return Length of the machine stack that Ruby knows. + * + * @internal + * + * Does anybody use it? @shyouhei is quite skeptical if this is useful outside + * of the VM. Maybe it was a wrong idea to expose this API to 3rd parties. + */ +size_t ruby_stack_length(VALUE **topnotch); + +/** + * Identical to ruby_run_node(), except it returns an opaque execution status. + * You can pass it to rb_cleanup(). + * + * @param[in] n Opaque "node" pointer. + * @retval 0 Successful end-of-execution. + * @retval otherwise An error occurred. + * + * @internal + * + * Though not a part of our public API, the return value is in fact an enum + * ruby_tag_type. You can see the potential "otherwise" values by looking at + * vm_core.h. + */ +int ruby_exec_node(void *n); + +/** + * Sets the current script name to this value. + * + * This is similar to `$0 = name` in Ruby level but also affects + * `Method#location` and others. + * + * @param[in] name File name to set. + */ +void ruby_script(const char* name); + +/** + * Identical to ruby_script(), except it takes the name as a Ruby String + * instance. + * + * @param[in] name File name to set. + */ +void ruby_set_script_name(VALUE name); + +/** Defines built-in variables */ +void ruby_prog_init(void); + +/** + * Sets argv that ruby understands. Your program might have its own command + * line parameters etc. Handle them as you wish, and pass remaining parts of + * argv here. + * + * @param[in] argc Number of elements of `argv`. + * @param[in] argv Command line arguments. + */ +void ruby_set_argv(int argc, char **argv); + +/** + * Identical to ruby_options(), except it raises ruby-level exceptions on + * failure. + * + * @param[in] argc Process main's `argc`. + * @param[in] argv Process main's `argv`. + * @return An opaque "node" pointer. + */ +void *ruby_process_options(int argc, char **argv); + +/** + * Sets up `$LOAD_PATH`. + * + * @internal + * + * @shyouhei guesses this has to be called at very later stage, at least after + * the birth of object system. But is not exactly sure when. + */ +void ruby_init_loadpath(void); + +/** + * Appends the given path to the end of the load path. + * + * @pre ruby_init_loadpath() must be done beforehand. + * @param[in] path The path you want to push to the load path. + */ +void ruby_incpush(const char *path); + +/** + * Clear signal handlers. + * + * Ruby installs its own signal handler (apart from those which user scripts + * set). This is to clear that. Must be called when the ruby part terminates, + * before switching to your program's own logic. + */ +void ruby_sig_finalize(void); + +/** @} */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERPRETER_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/iterator.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/iterator.h new file mode 100644 index 0000000..5f70646 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/iterator.h @@ -0,0 +1,513 @@ +#ifndef RBIMPL_ITERATOR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ITERATOR_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Block related APIs. + */ +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define RB_BLOCK_CALL_FUNC_STRICT 1 + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define RUBY_BLOCK_CALL_FUNC_TAKES_BLOCKARG 1 + +/** + * Shim for block function parameters. Historically ::rb_block_call_func_t had + * only two parameters. Over time it evolved to have much more than that. By + * using this macro you can absorb such API differences. + * + * ```CXX + * // This works since 2.1.0 + * VALUE my_own_iterator(RB_BLOCK_CALL_FUNC_ARGLIST(y, c)); + * ``` + */ +#define RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg) \ + VALUE yielded_arg, VALUE callback_arg, int argc, const VALUE *argv, VALUE blockarg + +/** + * This is the type of a function that the interpreter expect for C-backended + * blocks. Blocks are often written in Ruby. But C extensions might want to + * have their own blocks. In order to do so authors have to create a separate + * C function of this type, and pass its pointer to rb_block_call(). + * + * ```CXX + * VALUE + * my_own_iterator(RB_BLOCK_CALL_FUNC_ARGLIST(y, c)) + * { + * const auto plus = rb_intern("+"); + * return rb_funcall(c, plus, 1, y); + * } + * + * VALUE + * my_own_method(VALUE self) + * { + * const auto each = rb_intern("each"); + * return rb_block_call(self, each, 0, 0, my_own_iterator, self); + * } + * ``` + */ +typedef VALUE rb_block_call_func(RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg)); + +/** + * Shorthand type that represents an iterator-written-in-C function pointer. + */ +typedef rb_block_call_func *rb_block_call_func_t; + +/** + * This is a shorthand of calling `obj.each`. + * + * @param[in] obj The receiver. + * @return What `obj.each` returns. + * + * @internal + * + * Does anyone still need it? This API was to use with rb_iterate(), which is + * marked deprecated (see below). Old idiom to call an iterator was: + * + * ```CXX + * VALUE recv; + * VALUE iter_func(ANYARGS); + * VALUE iter_data; + * rb_iterate(rb_each, recv, iter_func, iter_data); + * ``` + */ +VALUE rb_each(VALUE obj); + +/** + * Yields the block. In Ruby there is a concept called a block. You can pass + * one to a method. In a method, when called with a block, you can yield it + * using this function. + * + * ```CXX + * VALUE + * iterate(VALUE self) + * { + * extern int get_n(VALUE); + * extern VALUE get_v(VALUE, VALUE); + * const auto n = get_n(self); + * + * for (int i=0; i + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Memory management stuff. + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#ifdef HAVE_STRING_H +# include +#endif + +#ifdef HAVE_STDINT_H +# include +#endif + +#ifdef HAVE_ALLOCA_H +# include +#endif + +#if defined(_MSC_VER) && defined(_WIN64) +# include +# pragma intrinsic(_umul128) +#endif + +#include "ruby/internal/attr/alloc_size.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/constexpr.h" +#include "ruby/internal/attr/noalias.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/attr/restrict.h" +#include "ruby/internal/attr/returns_nonnull.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/has/builtin.h" +#include "ruby/internal/stdalign.h" +#include "ruby/internal/stdbool.h" +#include "ruby/internal/xmalloc.h" +#include "ruby/backward/2/limits.h" +#include "ruby/backward/2/long_long.h" +#include "ruby/backward/2/assume.h" +#include "ruby/defines.h" + +/** @cond INTENAL_MACRO */ + +/* Make alloca work the best possible way. */ +#if defined(alloca) +# /* Take that. */ +#elif RBIMPL_HAS_BUILTIN(__builtin_alloca) +# define alloca __builtin_alloca +#elif defined(_AIX) +# pragma alloca +#elif defined(__cplusplus) +extern "C" void *alloca(size_t); +#else +extern void *alloca(); +#endif + +/** @endcond */ + +#if defined(__DOXYGEN__) +/** + * @private + * + * Type that is as twice wider as size_t. This is an implementation detail of + * rb_mul_size_overflow(). People should not use it. This is not a good name + * either. + */ +typedef uint128_t DSIZE_T; +#elif defined(HAVE_INT128_T) && SIZEOF_SIZE_T <= 8 +# define DSIZE_T uint128_t +#elif SIZEOF_SIZE_T * 2 <= SIZEOF_LONG_LONG +# define DSIZE_T unsigned LONG_LONG +#endif + +/** + * @private + * + * Maximum possible number of bytes that #RB_ALLOCV can allocate using + * `alloca`. Anything beyond this is allocated using rb_alloc_tmp_buffer(). + * This selection is transparent to users. People don't have to bother. + */ +#ifdef C_ALLOCA +# define RUBY_ALLOCV_LIMIT 0 +#else +# define RUBY_ALLOCV_LIMIT 1024 +#endif + +/** + * Prevents premature destruction of local objects. Ruby's garbage collector + * is conservative; it scans the C level machine stack as well. Possible in- + * use Ruby objects must remain visible on stack, to be properly marked as + * such. However contemporary C compilers do not interface well with this. + * Consider the following example: + * + * ```CXX + * auto s = rb_str_new_cstr(" world"); + * auto sptr = RSTRING_PTR(s); + * auto t = rb_str_new_cstr("hello,"); // Possible GC invocation + * auto u = rb_str_cat_cstr(t, sptr); + * + * RB_GC_GUARD(s); // ensure `s` (and thus `sptr`) do not get GC-ed + * ``` + * + * Here, without the #RB_GC_GUARD, the last use of `s` is _before_ the last use + * of `sptr`. Compilers could thus think `s` and `t` are allowed to overlap. + * That would eliminate `s` from the stack, while `sptr` is still in use. If + * our GC ran at that very moment, `s` gets swept out, which also destroys + * `sptr`. Boom! You got a SEGV. + * + * In order to prevent this scenario #RB_GC_GUARD must be placed _after_ the + * last use of `sptr`. Placing #RB_GC_GUARD before dereferencing `sptr` would + * be of no use. + * + * #RB_GC_GUARD would not be necessary at all in the above example if non- + * inlined function calls are made on the `s` variable after `sptr` is + * dereferenced. Thus, in the above example, calling any un-inlined function + * on `s` such as `rb_str_modify(s);` will ensure `s` stays on the stack or + * register to prevent a GC invocation from prematurely freeing it. + * + * Using the #RB_GC_GUARD macro is preferable to using the `volatile` keyword + * in C. #RB_GC_GUARD has the following advantages: + * + * - the intent of the macro use is clear. + * + * - #RB_GC_GUARD only affects its call site. OTOH `volatile` generates some + * extra code every time the variable is used, hurting optimisation. + * + * - `volatile` implementations may be buggy/inconsistent in some compilers + * and architectures. #RB_GC_GUARD is customisable for broken + * systems/compilers without negatively affecting other systems. + * + * - C++ since C++20 deprecates `volatile`. If you write your extension + * library in that language there is no escape but to use this macro. + * + * @param v A variable of ::VALUE type. + * @post `v` is still alive. + */ +#ifdef __GNUC__ +#define RB_GC_GUARD(v) \ + (*__extension__ ({ \ + volatile VALUE *rb_gc_guarded_ptr = &(v); \ + __asm__("" : : "m"(rb_gc_guarded_ptr)); \ + rb_gc_guarded_ptr; \ + })) +#elif defined _MSC_VER +#define RB_GC_GUARD(v) (*rb_gc_guarded_ptr(&(v))) +#else +#define HAVE_RB_GC_GUARDED_PTR_VAL 1 +#define RB_GC_GUARD(v) (*rb_gc_guarded_ptr_val(&(v),(v))) +#endif + +/* Casts needed because void* is NOT compatible with others in C++. */ + +/** + * Convenient macro that allocates an array of n elements. + * + * @param type Type of array elements. + * @param n Length of the array. + * @exception rb_eNoMemError No space left for allocation. + * @exception rb_eArgError Integer overflow trying to calculate the length + * of continuous memory region of `n` elements of + * `type`. + * @return Storage instance that is capable of storing at least `n` + * elements of type `type`. + * @note It doesn't return NULL, even when `n` is zero. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +#define RB_ALLOC_N(type,n) RBIMPL_CAST((type *)ruby_xmalloc2((n), sizeof(type))) + +/** + * Shorthand of #RB_ALLOC_N with `n=1`. + * + * @param type Type of allocation. + * @exception rb_eNoMemError No space left for allocation. + * @return Storage instance that can hold an `type` object. + * @note It doesn't return NULL. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +#define RB_ALLOC(type) RBIMPL_CAST((type *)ruby_xmalloc(sizeof(type))) + +/** + * Identical to #RB_ALLOC_N() but also nullifies the allocated region before + * returning. + * + * @param type Type of array elements. + * @param n Length of the array. + * @exception rb_eNoMemError No space left for allocation. + * @exception rb_eArgError Integer overflow trying to calculate the length + * of continuous memory region of `n` elements of + * `type`. + * @return Storage instance that is capable of storing at least `n` + * elements of type `type`. + * @post Returned array is filled with zeros. + * @note It doesn't return NULL, even when `n` is zero. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +#define RB_ZALLOC_N(type,n) RBIMPL_CAST((type *)ruby_xcalloc((n), sizeof(type))) + +/** + * Shorthand of #RB_ZALLOC_N with `n=1`. + * + * @param type Type of allocation. + * @exception rb_eNoMemError No space left for allocation. + * @return Storage instance that can hold an `type` object. + * @post Returned object is filled with zeros. + * @note It doesn't return NULL. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +#define RB_ZALLOC(type) (RB_ZALLOC_N(type, 1)) + +/** + * Convenient macro that reallocates an array with a new size. + * + * @param var A variable of `type`, which points to a storage + * instance that was previously returned from + * either + * - ruby_xmalloc(), + * - ruby_xmalloc2(), + * - ruby_xcalloc(), + * - ruby_xrealloc(), or + * - ruby_xrealloc2(). + * @param type Type of allocation. + * @param n Requested new size of each element. + * @exception rb_eNoMemError No space left for allocation. + * @exception rb_eArgError Integer overflow trying to calculate the length + * of continuous memory region of `n` elements of + * `type`. + * @return Storage instance that is capable of storing at least `n` + * elements of type `type`. + * @pre The passed variable must point to a valid live storage instance. + * It is a failure to pass a variable that holds an already-freed + * pointer. + * @note It doesn't return NULL, even when `n` is zero. + * @warning Do not assume anything on the alignment of the return value. + * There is no guarantee that it inherits the passed argument's + * one. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +#define RB_REALLOC_N(var,type,n) \ + ((var) = RBIMPL_CAST((type *)ruby_xrealloc2((void *)(var), (n), sizeof(type)))) + +/** + * @deprecated This macro is dangerous (does not bother stack overflow at + * all). #RB_ALLOCV is the modern way to do the same thing. + * @param type Type of array elements. + * @param n Length of the array. + * @return A pointer on stack. + */ +#define ALLOCA_N(type,n) \ + RBIMPL_CAST((type *)alloca(rbimpl_size_mul_or_raise(sizeof(type), (n)))) + +/** + * Identical to #RB_ALLOCV_N(), except that it allocates a number of bytes and + * returns a void* . + * + * @param v A variable to hold the just-in-case opaque Ruby object. + * @param n Size of allocation, in bytes. + * @return A void pointer to `n` bytes storage. + * @note `n` may be evaluated twice. + */ +#define RB_ALLOCV(v, n) \ + ((n) < RUBY_ALLOCV_LIMIT ? \ + ((v) = 0, alloca(n)) : \ + rb_alloc_tmp_buffer(&(v), (n))) + +/** + * Allocates a memory region, possibly on stack. If the given size exceeds + * #RUBY_ALLOCV_LIMIT, it allocates a dedicated opaque ruby object instead and + * let our GC sweep that region after use. Either way you can fire-and-forget. + * + * ```CXX + * #include + * + * VALUE + * foo(int n) + * { + * VALUE v; + * auto ptr = RB_ALLOCV(struct tms, v, n); + * ... + * // no need to free `ptr`. + * } + * ``` + * + * If you want to be super-duper polite you can also explicitly state the end + * of use of such memory region by calling #RB_ALLOCV_END(). + * + * @param type The type of array elements. + * @param v A variable to hold the just-in-case opaque Ruby object. + * @param n Number of elements requested to allocate. + * @return An array of `n` elements of `type`. + * @note `n` may be evaluated twice. + */ +#define RB_ALLOCV_N(type, v, n) \ + RBIMPL_CAST((type *) \ + (((size_t)(n) < RUBY_ALLOCV_LIMIT / sizeof(type)) ? \ + ((v) = 0, alloca((n) * sizeof(type))) : \ + rb_alloc_tmp_buffer2(&(v), (n), sizeof(type)))) + +/** + * Polite way to declare that the given array is not used any longer. Calling + * this not mandatory. Our GC can baby-sit you. However it is not a very bad + * idea to use it when possible. Doing so could reduce memory footprint. + * + * @param v A variable previously passed to either #RB_ALLOCV/#RB_ALLOCV_N. + */ +#define RB_ALLOCV_END(v) rb_free_tmp_buffer(&(v)) + +/** + * Handy macro to erase a region of memory. + * + * @param p Target pointer. + * @param type Type of `p[0]` + * @param n Length of `p`. + * @return `p`. + * @post First `n` elements of `p` are squashed. + */ +#define MEMZERO(p,type,n) memset((p), 0, rbimpl_size_mul_or_raise(sizeof(type), (n))) + +/** + * Handy macro to call memcpy. + * + * @param p1 Destination pointer. + * @param p2 Source pointer. + * @param type Type of `p2[0]` + * @param n Length of `p2`. + * @return `p1`. + * @post First `n` elements of `p2` are copied into `p1`. + */ +#define MEMCPY(p1,p2,type,n) ruby_nonempty_memcpy((p1), (p2), rbimpl_size_mul_or_raise(sizeof(type), (n))) + +/** + * Handy macro to call memmove. + * + * @param p1 Destination pointer. + * @param p2 Source pointer. + * @param type Type of `p2[0]` + * @param n Length of `p2`. + * @return `p1`. + * @post First `n` elements of `p2` are copied into `p1`. + */ +#define MEMMOVE(p1,p2,type,n) memmove((p1), (p2), rbimpl_size_mul_or_raise(sizeof(type), (n))) + +/** + * Handy macro to call memcmp + * + * @param p1 Target LHS. + * @param p2 Target RHS. + * @param type Type of `p1[0]` + * @param n Length of `p1`. + * @retval <0 `p1` is "less" than `p2`. + * @retval 0 `p1` is equal to `p2`. + * @retval >0 `p1` is "greater" than `p2`. + */ +#define MEMCMP(p1,p2,type,n) memcmp((p1), (p2), rbimpl_size_mul_or_raise(sizeof(type), (n))) + +#define ALLOC_N RB_ALLOC_N /**< @old{RB_ALLOC_N} */ +#define ALLOC RB_ALLOC /**< @old{RB_ALLOC} */ +#define ZALLOC_N RB_ZALLOC_N /**< @old{RB_ZALLOC_N} */ +#define ZALLOC RB_ZALLOC /**< @old{RB_ZALLOC} */ +#define REALLOC_N RB_REALLOC_N /**< @old{RB_REALLOC_N} */ +#define ALLOCV RB_ALLOCV /**< @old{RB_ALLOCV} */ +#define ALLOCV_N RB_ALLOCV_N /**< @old{RB_ALLOCV_N} */ +#define ALLOCV_END RB_ALLOCV_END /**< @old{RB_ALLOCV_END} */ + +/** + * @private + * + * This is an implementation detail of rbimpl_size_mul_overflow(). + * + * @internal + * + * Expecting this struct to be eliminated by function inlinings. This is + * nothing more than std::variant if we could use recent C++, but + * reality is we cannot. + */ +struct rbimpl_size_mul_overflow_tag { + bool left; /**< Whether overflow happened or not. */ + size_t right; /**< Multiplication result. */ +}; + +RBIMPL_SYMBOL_EXPORT_BEGIN() +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((2)) +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail of #RB_ALLOCV(). People don't use this + * directly. + * + * @param[out] store Pointer to a variable. + * @param[in] len Requested number of bytes to allocate. + * @return Allocated `len` bytes array. + * @post `store` holds the corresponding tmp buffer object. + */ +void *rb_alloc_tmp_buffer(volatile VALUE *store, long len); + +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((2,3)) +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail of #RB_ALLOCV_N(). People don't use this + * directly. + * + * @param[out] store Pointer to a variable. + * @param[in] len Requested number of bytes to allocate. + * @param[in] count Number of elements in an array. + * @return Allocated `len` bytes array. + * @post `store` holds the corresponding tmp buffer object. + * + * @internal + * + * Although the meaning of `count` variable is clear, @shyouhei doesn't + * understand its needs. + */ +void *rb_alloc_tmp_buffer_with_count(volatile VALUE *store, size_t len,size_t count); + +/** + * @private + * + * This is an implementation detail of #RB_ALLOCV_END(). People don't use this + * directly. + * + * @param[out] store Pointer to a variable. + * @pre `store` is a NULL, or a pointer to a tmp buffer object. + * @post `*store` is ::RUBY_Qfalse. + * @post The object formerly stored in `store` is destroyed. + */ +void rb_free_tmp_buffer(volatile VALUE *store); + +RBIMPL_ATTR_NORETURN() +/** + * @private + * + * This is an implementation detail of #RB_ALLOCV_N(). People don't use this + * directly. + * + * @param[in] x Arbitrary value. + * @param[in] y Arbitrary value. + * @exception rb_eArgError `x` * `y` would integer overflow. + */ +void ruby_malloc_size_overflow(size_t x, size_t y); + +#ifdef HAVE_RB_GC_GUARDED_PTR_VAL +volatile VALUE *rb_gc_guarded_ptr_val(volatile VALUE *ptr, VALUE val); +#endif +RBIMPL_SYMBOL_EXPORT_END() + +#ifdef _MSC_VER +# pragma optimize("", off) + +/** + * @private + * + * This is an implementation detail of #RB_GC_GUARD(). People don't use this + * directly. + * + * @param[in] ptr A pointer to an on-stack C variable. + * @return `ptr` as-is. + */ +static inline volatile VALUE * +rb_gc_guarded_ptr(volatile VALUE *ptr) +{ + return ptr; +} + +# pragma optimize("", on) +#endif + +/** + * @deprecated This function was an implementation detail of old + * #RB_ALLOCV_N(). We no longer use it. @shyouhei suspects that + * there are no actual usage now. However it was not marked as + * private before. We cannot delete it any longer. + * @param[in] a Arbitrary value. + * @param[in] b Arbitrary value. + * @param[in] max Possible maximum value. + * @param[out] c A pointer to return the computation result. + * @retval 1 `c` is insane. + * @retval 0 `c` is sane. + * @post `c` holds `a` * `b`, but could be overflowed. + */ +static inline int +rb_mul_size_overflow(size_t a, size_t b, size_t max, size_t *c) +{ +#ifdef DSIZE_T + RB_GNUC_EXTENSION DSIZE_T da, db, c2; + da = a; + db = b; + c2 = da * db; + if (c2 > max) return 1; + *c = RBIMPL_CAST((size_t)c2); +#else + if (b != 0 && a > max / b) return 1; + *c = a * b; +#endif + return 0; +} + +#if defined(__DOXYGEN__) +RBIMPL_ATTR_CONSTEXPR(CXX14) +#elif RBIMPL_COMPILER_SINCE(GCC, 7, 0, 0) +RBIMPL_ATTR_CONSTEXPR(CXX14) /* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70507 */ +#elif RBIMPL_COMPILER_SINCE(Clang, 7, 0, 0) +RBIMPL_ATTR_CONSTEXPR(CXX14) /* https://bugs.llvm.org/show_bug.cgi?id=37633 */ +#endif +RBIMPL_ATTR_CONST() +/** + * @private + * + * This is an implementation detail of #RB_ALLOCV_N(). People don't use this + * directly. + * + * @param[in] x Arbitrary value. + * @param[in] y Arbitrary value. + * @return `{ left, right }`, where `left` is whether there is an integer + * overflow or not, and `right` is a (possibly overflowed) result + * of `x` * `y`. + * + * @internal + * + * This is in fact also an implementation detail of ruby_xmalloc2() etc. + */ +static inline struct rbimpl_size_mul_overflow_tag +rbimpl_size_mul_overflow(size_t x, size_t y) +{ + struct rbimpl_size_mul_overflow_tag ret = { false, 0, }; + +#if RBIMPL_HAS_BUILTIN(__builtin_mul_overflow) + ret.left = __builtin_mul_overflow(x, y, &ret.right); + +#elif defined(DSIZE_T) + RB_GNUC_EXTENSION DSIZE_T dx = x; + RB_GNUC_EXTENSION DSIZE_T dy = y; + RB_GNUC_EXTENSION DSIZE_T dz = dx * dy; + ret.left = dz > SIZE_MAX; + ret.right = RBIMPL_CAST((size_t)dz); + +#elif defined(_MSC_VER) && defined(_WIN64) + unsigned __int64 dp = 0; + unsigned __int64 dz = _umul128(x, y, &dp); + ret.left = RBIMPL_CAST((bool)dp); + ret.right = RBIMPL_CAST((size_t)dz); + +#else + /* https://wiki.sei.cmu.edu/confluence/display/c/INT30-C.+Ensure+that+unsigned+integer+operations+do+not+wrap */ + ret.left = (y != 0) && (x > SIZE_MAX / y); + ret.right = x * y; +#endif + + return ret; +} + +/** + * @private + * + * This is an implementation detail of #RB_ALLOCV_N(). People don't use this + * directly. + * + * @param[in] x Arbitrary value. + * @param[in] y Arbitrary value. + * @exception rb_eArgError Multiplication could integer overflow. + * @return `x` * `y`. + * + * @internal + * + * This is in fact also an implementation detail of ruby_xmalloc2() etc. + */ +static inline size_t +rbimpl_size_mul_or_raise(size_t x, size_t y) +{ + struct rbimpl_size_mul_overflow_tag size = + rbimpl_size_mul_overflow(x, y); + + if (RB_LIKELY(! size.left)) { + return size.right; + } + else { + ruby_malloc_size_overflow(x, y); + RBIMPL_UNREACHABLE_RETURN(0); + } +} + +/** + * This is an implementation detail of #RB_ALLOCV_N(). People don't use this + * directly. + * + * @param[out] store Pointer to a variable. + * @param[in] count Number of elements in an array. + * @param[in] elsize Size of each elements. + * @return Region of `count` * `elsize` bytes. + * @post `store` holds the corresponding tmp buffer object. + * + * @internal + * + * We might want to deprecate this function and make a `rbimpl_` counterpart. + */ +static inline void * +rb_alloc_tmp_buffer2(volatile VALUE *store, long count, size_t elsize) +{ + const size_t total_size = rbimpl_size_mul_or_raise(count, elsize); + const size_t cnt = (total_size + sizeof(VALUE) - 1) / sizeof(VALUE); + return rb_alloc_tmp_buffer_with_count(store, total_size, cnt); +} + +RBIMPL_SYMBOL_EXPORT_BEGIN() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +RBIMPL_ATTR_RETURNS_NONNULL() +/* At least since 2004, glibc's annotates memcpy to be + * __attribute__((__nonnull__(1, 2))). However it is safe to pass NULL to the + * source pointer, if n is 0. Let's wrap memcpy. */ +static inline void * +ruby_nonempty_memcpy(void *dest, const void *src, size_t n) +{ + if (n) { + return memcpy(dest, src, n); + } + else { + return dest; + } +} +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_MEMORY_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/method.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/method.h new file mode 100644 index 0000000..19feb0c --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/method.h @@ -0,0 +1,205 @@ +#ifndef RBIMPL_METHOD_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_METHOD_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Creation and modification of Ruby methods. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/backward/2/stdarg.h" + +/** + * @defgroup defmethod Defining methods + * + * There are some APIs to define a method from C. + * These API takes a C function as a method body. + * + * ### Method body functions + * + * Method body functions must return a VALUE and + * can be one of the following form: + * + * #### Fixed number of parameters + * + * This form is a normal C function, excepting it takes + * a receiver object as the first argument. + * + * ```CXX + * static VALUE my_method(VALUE self, VALUE x, VALUE y); + * ``` + * + * #### argc and argv style + * + * This form takes three parameters: argc, argv and self. + * self is the receiver. argc is the number of arguments. + * argv is a pointer to an array of the arguments. + * + * ```CXX + * static VALUE my_method(int argc, VALUE *argv, VALUE self); + * ``` + * + * #### Ruby array style + * + * This form takes two parameters: self and args. + * self is the receiver. args is an Array object which + * contains the arguments. + * + * ```CXX + * static VALUE my_method(VALUE self, VALUE args); + * ``` + * + * ### Number of parameters + * + * Method defining APIs takes the number of parameters which the + * method will takes. This number is called argc. + * argc can be: + * + * - Zero or positive number. + * This means the method body function takes a fixed number of parameters. + * + * - `-1`. + * This means the method body function is "argc and argv" style. + * + * - `-2`. + * This means the method body function is "self and args" style. + * + * @{ + */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines a method. + * + * @param[out] klass A module or a class. + * @param[in] mid Name of the function. + * @param[in] func The method body. + * @param[in] arity The number of parameters. See @ref defmethod. + * @note There are in fact 18 different prototypes for func. + * @see ::ruby::backward::cxxanyargs::define_method::rb_define_method + */ +void rb_define_method(VALUE klass, const char *mid, VALUE (*func)(ANYARGS), int arity); + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines a module function for a module. + * + * @param[out] klass A module or a class. + * @param[in] mid Name of the function. + * @param[in] func The method body. + * @param[in] arity The number of parameters. See @ref defmethod. + * @note There are in fact 18 different prototypes for func. + * @see ::ruby::backward::cxxanyargs::define_method::rb_define_module_function + */ +void rb_define_module_function(VALUE klass, const char *mid, VALUE (*func)(ANYARGS), int arity); + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines a global function. + * + * @param[in] mid Name of the function. + * @param[in] func The method body. + * @param[in] arity The number of parameters. See @ref defmethod. + * @note There are in fact 18 different prototypes for func. + * @see ::ruby::backward::cxxanyargs::define_method::rb_define_global_function + */ +void rb_define_global_function(const char *mid, VALUE (*func)(ANYARGS), int arity); + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines an undef of a method. -- What? + * + * In ruby, there are two separate concepts called "undef" and "remove_method". + * The thing you imagine when you "un-define" a method is remove_method. This + * one on the other hand is masking of a previous method definition. Suppose + * for instance: + * + * ```ruby + * class Foo + * def foo + * end + * end + * + * class Bar < Foo + * def bar + * foo + * end + * end + * + * class Baz < Foo + * undef foo # <--- (*1) + * end + * ``` + * + * This `undef foo` at `(*1)` must not eliminate `Foo#foo`, because that method + * is also used from `Bar#bar`. So instead of physically executing the target + * method, `undef` inserts a special filtering entry to the class (`Baz` this + * case). That entry, when called, acts as if there were no methods at all. + * But the original can still be accessible, via ways like `Bar#bar` above. + * + * @param[out] klass The class to insert an undef. + * @param[in] name Name of the undef. + * @exception rb_eTypeError `klass` is a non-module. + * @exception rb_eFrozenError `klass` is frozen. + * @see rb_remove_method + */ +void rb_undef_method(VALUE klass, const char *name); + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines an alias of a method. + * + * @param[in,out] klass The class which the original method belongs + * to; this is also where the new method will + * belong to. + * @param[in] dst A new name for the method. + * @param[in] src The original name of the method. + * @exception rb_eTypeError `klass` is a non-module. + * @exception rb_eFrozenError `klass` is frozen. + * @exception rb_eNameError There is no such method named as `src` in + * `klass`. + * + * @internal + * + * Above description is in fact a bit inaccurate because it ignores + * Refinements. + */ +void rb_define_alias(VALUE klass, const char *dst, const char *src); + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines public accessor method(s) for an attribute. + * + * @param[out] klass The class which the attribute will belong to. + * @param[in] name Name of the attribute. + * @param[in] read Whether to define a getter method. + * @param[in] write Whether to define a setter method. + * @exception rb_eTypeError `klass` is a non-module. + * @exception rb_eFrozenError `klass` is frozen. + * @exception rb_eNameError `name` invalid as an attr e.g. an operator. + */ +void rb_define_attr(VALUE klass, const char *name, int read, int write); + +/** @} */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_METHOD_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/module.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/module.h new file mode 100644 index 0000000..d678dd2 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/module.h @@ -0,0 +1,177 @@ +#ifndef RBIMPL_MODULE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_MODULE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Creation and modification of Ruby modules. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +/** + * @defgroup class Classes and their hierarchy. + * + * @par Terminology + * - class: same as in Ruby. + * - singleton class: class for a particular object. + * - eigenclass: = singleton class + * - metaclass: class of a class. Metaclass is a kind of singleton class. + * - metametaclass: class of a metaclass. + * - meta^(n)-class: class of a meta^(n-1)-class. + * - attached object: A singleton class knows its unique instance. + * The instance is called the attached object for the singleton class. + * @{ + */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines a top-level class. + * + * @param[in] name Name of the class. + * @param[in] super A class from which the new class will derive. + * @exception rb_eTypeError The constant name `name` is already taken but the + * constant is not a class. + * @exception rb_eTypeError The class is already defined but the class can + * not be reopened because its superclass is not + * `super`. + * @exception rb_eArgError `super` is NULL. + * @return The created class. + * @post Top-level constant named `name` refers the returned class. + * @note If a class named `name` is already defined and its superclass is + * `super`, the function just returns the defined class. + * @note The compaction GC does not move classes returned by this + * function. + * + * @internal + * + * There are classes without names, but you can't pass NULL here. You have to + * use other ways to create one. + */ +VALUE rb_define_class(const char *name, VALUE super); + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines a top-level module. + * + * @param[in] name Name of the module. + * @exception rb_eTypeError The constant name `name` is already taken but the + * constant is not a module. + * @return The created module. + * @post Top-level constant named `name` refers the returned module. + * @note The compaction GC does not move classes returned by this + * function. + * + * @internal + * + * There are modules without names, but you can't pass NULL here. You have to + * use other ways to create one. + */ +VALUE rb_define_module(const char *name); + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines a class under the namespace of `outer`. + * + * @param[out] outer A class which contains the new class. + * @param[in] name Name of the new class + * @param[in] super A class from which the new class will derive. + * 0 means ::rb_cObject. + * @exception rb_eTypeError The constant name `name` is already taken but + * the constant is not a class. + * @exception rb_eTypeError The class is already defined but the class can + * not be reopened because its superclass is not + * `super`. + * @exception rb_eArgError `super` is NULL. + * @return The created class. + * @post `outer::name` refers the returned class. + * @note If a class named `name` is already defined and its superclass + * is `super`, the function just returns the defined class. + * @note The compaction GC does not move classes returned by this + * function. + */ +VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super); + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines a module under the namespace of `outer`. + * + * @param[out] outer A class which contains the new module. + * @param[in] name Name of the new module + * @exception rb_eTypeError The constant name `name` is already taken but + * the constant is not a class. + * @return The created module. + * @post `outer::name` refers the returned module. + * @note The compaction GC does not move classes returned by this + * function. + */ +VALUE rb_define_module_under(VALUE outer, const char *name); + +/** + * Includes a module to a class. + * + * @param[out] klass Inclusion destination. + * @param[in] module Inclusion source. + * @exception rb_eArgError Cyclic inclusion. + * + * @internal + * + * :FIXME: @shyouhei suspects this function lacks assertion that the arguments + * being modules... Could silently SEGV if non-module was passed? + */ +void rb_include_module(VALUE klass, VALUE module); + +/** + * Extend the object with the module. + * + * @warning This is the same as `Module#extend_object`, not + * `Object#extend`! These two methods are very similar, but not + * identical. The difference is the hook. `Module#extend_object` + * does not invoke `Module#extended`, while `Object#extend` does. + * @param[out] obj Object to extend. + * @param[in] mod Module of extension. + */ +void rb_extend_object(VALUE obj, VALUE mod); + +/** + * Identical to rb_include_module(), except it "prepends" the passed module to + * the klass, instead of includes. This affects how `super` resolves. For + * instance: + * + * ```ruby + * class Q; def foo; "" end end + * module W; def foo; "#{super}" end end + * class E < Q; include W; def foo; "#{super}" end end + * class R < Q; prepend W; def foo; "#{super}" end end + * + * E.new.foo # => "" + * r.new.foo # => "" + * ``` + * + * @param[out] klass Target class to modify. + * @param[in] module Module to prepend. + * @exception rb_eArgError Cyclic inclusion. + */ +void rb_prepend_module(VALUE klass, VALUE module); + +/** @} */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_MODULE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/newobj.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/newobj.h new file mode 100644 index 0000000..a8a5557 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/newobj.h @@ -0,0 +1,195 @@ +#ifndef RBIMPL_NEWOBJ_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_NEWOBJ_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #NEWOBJ. + */ +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/fl_type.h" +#include "ruby/internal/special_consts.h" +#include "ruby/internal/value.h" +#include "ruby/assert.h" + +/** + * Declares, allocates, then assigns a new object to the given variable. + * + * @param obj Variable name. + * @param type Variable type. + * @exception rb_eNoMemError No space left. + * @return An allocated object, not initialised. + * @note Modern programs tend to use #NEWOBJ_OF instead. + * + * @internal + * + * :FIXME: Should we deprecate it? + */ +#define RB_NEWOBJ(obj,type) type *(obj) = RBIMPL_CAST((type *)rb_newobj()) + +/** + * Identical to #RB_NEWOBJ, except it also accepts the allocating object's + * class and flags. + * + * @param obj Variable name. + * @param type Variable type. + * @param klass Object's class. + * @param flags Object's flags. + * @exception rb_eNoMemError No space left. + * @return An allocated object, filled with the arguments. + */ +#define RB_NEWOBJ_OF(obj,type,klass,flags) type *(obj) = RBIMPL_CAST((type *)rb_newobj_of(klass, flags)) + +#define NEWOBJ RB_NEWOBJ /**< @old{RB_NEWOBJ} */ +#define NEWOBJ_OF RB_NEWOBJ_OF /**< @old{RB_NEWOBJ_OF} */ +#define OBJSETUP rb_obj_setup /**< @old{rb_obj_setup} */ +#define CLONESETUP rb_clone_setup /**< @old{rb_clone_setup} */ +#define DUPSETUP rb_dup_setup /**< @old{rb_dup_setup} */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * This is the implementation detail of #RB_NEWOBJ. + * + * @exception rb_eNoMemError No space left. + * @return An allocated object, not initialised. + */ +VALUE rb_newobj(void); + +/** + * This is the implementation detail of #RB_NEWOBJ_OF. + * + * @param klass Object's class. + * @param flags Object's flags. + * @exception rb_eNoMemError No space left. + * @return An allocated object, filled with the arguments. + */ +VALUE rb_newobj_of(VALUE klass, VALUE flags); + +/** + * Fills common fields in the object. + * + * @note Prefer rb_newobj_of() to this function. + * @param[in,out] obj A Ruby object to be set up. + * @param[in] klass `obj` will belong to this class. + * @param[in] type One of ::ruby_value_type. + * @return The passed object. + * + * @internal + * + * Historically, authors of Ruby has described the `type` argument as "one of + * ::ruby_value_type". In reality it accepts either ::ruby_value_type, + * ::ruby_fl_type, or any combinations of the two. For instance + * `RUBY_T_STRING | RUBY_FL_FREEZE` is a valid value that this function takes, + * and means this is a frozen string. + * + * 3rd party extension libraries rarely need to allocate Strings this way. + * They normally only concern ::RUBY_T_DATA. This argument is mainly used for + * specifying flags, @shyouhei suspects. + */ +VALUE rb_obj_setup(VALUE obj, VALUE klass, VALUE type); + +/** + * Queries the class of an object. This is not always identical to + * `RBASIC_CLASS(obj)`. It searches for the nearest ancestor skipping + * singleton classes or included modules. + * + * @param[in] obj Object in question. + * @return The object's class, in a normal sense. + */ +VALUE rb_obj_class(VALUE obj); + +/** + * Clones a singleton class. An object can have its own singleton class. OK. + * Then what happens when a program clones such object? The singleton class + * that is attached to the source object must also be cloned. Otherwise a + * singleton object gets shared with two objects, which breaks "singleton"-ness + * of such class. + * + * This is basically an implementation detail of rb_clone_setup(). People + * need not be aware of this working behind-the-scene. + * + * @param[in] obj The object that has its own singleton class. + * @return Cloned singleton class. + */ +VALUE rb_singleton_class_clone(VALUE obj); + +/** + * Attaches a singleton class to its corresponding object. + * + * This is basically an implementation detail of rb_clone_setup(). People + * need not be aware of this working behind-the-scene. + * + * @param[in] klass The singleton class. + * @param[out] obj The object to attach a class. + * @pre The passed two objects must agree with each other that `klass` + * becomes a singleton class of `obj`. + * @post `klass` becomes the singleton class of `obj`. + */ +void rb_singleton_class_attached(VALUE klass, VALUE obj); + +/** + * Copies the list of instance variables. 3rd parties need not know, but there + * are several ways to store an object's instance variables, depending on its + * internal structure. This function makes sense when either of the passed + * objects are using so-called "generic" backend storage. This distinction is + * purely an implementation detail of rb_clone_setup(). People need not be + * aware of this working behind-the-scenes. + * + * @param[out] clone The destination object. + * @param[in] obj The source object. + */ +void rb_copy_generic_ivar(VALUE clone, VALUE obj); +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_DEPRECATED(("This is no longer how Object#clone works.")) +/** + * @deprecated Not sure exactly when but at some time, the implementation of + * `Object#clone` stopped using this function. It remained + * untouched for a while, and then @shyouhei realised that they + * are no longer doing the same thing. It seems nobody seriously + * uses this function any longer. Let's just abandon it. + * + * @param[out] clone The destination object. + * @param[in] obj The source object. + */ +static inline void +rb_clone_setup(VALUE clone, VALUE obj) +{ + return; +} + +RBIMPL_ATTR_DEPRECATED(("This is no longer how Object#dup works.")) +/** + * @deprecated Not sure exactly when but at some time, the implementation of + * `Object#dup` stopped using this function. It remained + * untouched for a while, and then @shyouhei realised that they + * are no longer the same thing. It seems nobody seriously uses + * this function any longer. Let's just abandon it. + * + * @param[out] dup The destination object. + * @param[in] obj The source object. + */ +static inline void +rb_dup_setup(VALUE dup, VALUE obj) +{ + return; +} + +#endif /* RBIMPL_NEWOBJ_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/rgengc.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/rgengc.h new file mode 100644 index 0000000..7ea0444 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/rgengc.h @@ -0,0 +1,443 @@ +#ifndef RBIMPL_RGENGC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RGENGC_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief RGENGC write-barrier APIs. + * @see Sasada, K., "Gradual write-barrier insertion into a Ruby + * interpreter", in proceedings of the 2019 ACM SIGPLAN + * International Symposium on Memory Management (ISMM 2019), pp + * 115-121, 2019. https://doi.org/10.1145/3315573.3329986 + */ +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/maybe_unused.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/special_consts.h" +#include "ruby/internal/stdbool.h" +#include "ruby/internal/value.h" +#include "ruby/assert.h" + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#undef USE_RGENGC +#define USE_RGENGC 1 + +/** + * @private + * + * This is a compile-time flag to enable/disable incremental GC feature. It + * has to be set at the time ruby itself compiles. Makes no sense for 3rd + * parties. It is safe for them to set this though; that just doesn't change + * anything. + */ +#ifndef USE_RINCGC +# define USE_RINCGC 1 +#endif + +/** + * @deprecated This macro seems broken. Setting this to anything other than + * zero just doesn't compile. We need to KonMari. + */ +#ifndef USE_RGENGC_LOGGING_WB_UNPROTECT +# define USE_RGENGC_LOGGING_WB_UNPROTECT 0 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RArray. It has to be set at the time ruby itself compiles. Makes + * no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_ARRAY +# define RGENGC_WB_PROTECTED_ARRAY 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RHash. It has to be set at the time ruby itself compiles. Makes + * no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_HASH +# define RGENGC_WB_PROTECTED_HASH 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RStruct. It has to be set at the time ruby itself compiles. Makes + * no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_STRUCT +# define RGENGC_WB_PROTECTED_STRUCT 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RString. It has to be set at the time ruby itself compiles. Makes + * no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_STRING +# define RGENGC_WB_PROTECTED_STRING 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RObject. It has to be set at the time ruby itself compiles. Makes + * no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_OBJECT +# define RGENGC_WB_PROTECTED_OBJECT 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RRegexp. It has to be set at the time ruby itself compiles. Makes + * no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_REGEXP +# define RGENGC_WB_PROTECTED_REGEXP 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RClass. It has to be set at the time ruby itself compiles. Makes + * no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_CLASS +# define RGENGC_WB_PROTECTED_CLASS 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RFloat. It has to be set at the time ruby itself compiles. Makes + * no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_FLOAT +# define RGENGC_WB_PROTECTED_FLOAT 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RComplex. It has to be set at the time ruby itself compiles. + * Makes no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_COMPLEX +# define RGENGC_WB_PROTECTED_COMPLEX 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RRational. It has to be set at the time ruby itself compiles. + * Makes no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_RATIONAL +# define RGENGC_WB_PROTECTED_RATIONAL 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RBignum. It has to be set at the time ruby itself compiles. Makes + * no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_BIGNUM +# define RGENGC_WB_PROTECTED_BIGNUM 1 +#endif + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + * + * @internal + * + * @shyouhei doesn't think anybody uses this right now. + */ +#ifndef RGENGC_WB_PROTECTED_NODE_CREF +# define RGENGC_WB_PROTECTED_NODE_CREF 1 +#endif + +/** + * @defgroup rgengc Write barrier (WB) interfaces: + * + * @note The following core interfaces can be changed in the future. Please + * catch up if you want to insert WB into C-extensions correctly. + * + * @{ + */ + +/** + * Declaration of a "back" pointer. This is a write barrier for new reference + * from "old" generation to "young" generation. It writes `young` into + * `*slot`, which is a pointer inside of `old`. + * + * @param[in] old An old object. + * @param[in] slot A pointer inside of `old`. + * @param[out] young A young object. + */ +#define RB_OBJ_WRITE(old, slot, young) \ + RBIMPL_CAST(rb_obj_write((VALUE)(old), (VALUE *)(slot), (VALUE)(young), __FILE__, __LINE__)) + +/** + * Identical to #RB_OBJ_WRITE(), except it doesn't write any values, but only a + * WB declaration. `oldv` is replaced value with `b` (not used in current + * Ruby). + * + * @param[in] old An old object. + * @param[in] oldv An object previously stored inside of `old`. + * @param[out] young A young object. + */ +#define RB_OBJ_WRITTEN(old, oldv, young) \ + RBIMPL_CAST(rb_obj_written((VALUE)(old), (VALUE)(oldv), (VALUE)(young), __FILE__, __LINE__)) +/** @} */ + +#define OBJ_PROMOTED_RAW RB_OBJ_PROMOTED_RAW /**< @old{RB_OBJ_PROMOTED_RAW} */ +#define OBJ_PROMOTED RB_OBJ_PROMOTED /**< @old{RB_OBJ_PROMOTED} */ +#define OBJ_WB_UNPROTECT RB_OBJ_WB_UNPROTECT /**< @old{RB_OBJ_WB_UNPROTECT} */ + +/** + * Asserts that the passed object is not fenced by write barriers. Objects of + * such property do not contribute to generational GCs. They are scanned + * always. + * + * @param[out] x An object that would not be protected by the barrier. + */ +#define RB_OBJ_WB_UNPROTECT(x) rb_obj_wb_unprotect(x, __FILE__, __LINE__) + +/** + * Identical to #RB_OBJ_WB_UNPROTECT(), except it can also assert that the + * given object is of given type. + * + * @param[in] type One of `ARRAY`, `STRING`, etc. + * @param[out] obj An object of `type` that would not be protected. + * + * @internal + * + * @shyouhei doesn't understand why this has to be visible from extensions. + */ +#define RB_OBJ_WB_UNPROTECT_FOR(type, obj) \ + (RGENGC_WB_PROTECTED_##type ? OBJ_WB_UNPROTECT(obj) : obj) + +/** + * @private + * + * This is an implementation detail of rb_obj_wb_unprotect(). People don't use + * it directly. + */ +#define RGENGC_LOGGING_WB_UNPROTECT rb_gc_unprotect_logging + +/** @cond INTERNAL_MACRO */ +#define RB_OBJ_PROMOTED_RAW RB_OBJ_PROMOTED_RAW +#define RB_OBJ_PROMOTED RB_OBJ_PROMOTED +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * This is the implementation of #RB_OBJ_WRITE(). People don't use it + * directly. + * + * @param[in] old An object that points to `young`. + * @param[out] young An object that is referenced from `old`. + */ +void rb_gc_writebarrier(VALUE old, VALUE young); + +/** + * This is the implementation of #RB_OBJ_WB_UNPROTECT(). People don't use it + * directly. + * + * @param[out] obj An object that does not participate in WB. + */ +void rb_gc_writebarrier_unprotect(VALUE obj); + +#if USE_RGENGC_LOGGING_WB_UNPROTECT +/** + * @private + * + * This is the implementation of #RGENGC_LOGGING_WB_UNPROTECT(). People + * don't use it directly. + * + * @param[in] objptr Don't know why this is a pointer to void but in + * reality this is a pointer to an object that is about + * to be un-protected. + * @param[in] filename Pass C's `__FILE__` here. + * @param[in] line Pass C's `__LINE__` here. + */ +void rb_gc_unprotect_logging(void *objptr, const char *filename, int line); +#endif + +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * This is the implementation of #RB_OBJ_PROMOTED(). People don't use it + * directly. + * + * @param[in] obj An object to query. + * @retval true The object is "promoted". + * @retval false The object is young. Have not experienced GC at all. + */ +static inline bool +RB_OBJ_PROMOTED_RAW(VALUE obj) +{ + RBIMPL_ASSERT_OR_ASSUME(RB_FL_ABLE(obj)); + return RB_FL_ANY_RAW(obj, RUBY_FL_PROMOTED); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Tests if the object is "promoted" -- that is, whether the object experienced + * one or more GC marks. + * + * @param[in] obj An object to query. + * @retval true The object is "promoted". + * @retval false The object is young. Have not experienced GC at all. + * @note Hello, is anyone actively calling this function? @shyouhei have + * never seen any actual usages outside of the GC implementation + * itself. + */ +static inline bool +RB_OBJ_PROMOTED(VALUE obj) +{ + if (! RB_FL_ABLE(obj)) { + return false; + } + else { + return RB_OBJ_PROMOTED_RAW(obj); + } +} + +/** + * This is the implementation of #RB_OBJ_WB_UNPROTECT(). People don't use it + * directly. + * + * @param[out] x An object that does not participate in WB. + * @param[in] filename C's `__FILE__` of the caller function. + * @param[in] line C's `__LINE__` of the caller function. + * @return x + */ +static inline VALUE +rb_obj_wb_unprotect( + VALUE x, + RBIMPL_ATTR_MAYBE_UNUSED() + const char *filename, + RBIMPL_ATTR_MAYBE_UNUSED() + int line) +{ +#if USE_RGENGC_LOGGING_WB_UNPROTECT + RGENGC_LOGGING_WB_UNPROTECT(RBIMPL_CAST((void *)x), filename, line); +#endif + rb_gc_writebarrier_unprotect(x); + return x; +} + +/** + * @private + * + * This is the implementation of #RB_OBJ_WRITTEN(). People don't use it + * directly. + * + * @param[in] a An old object. + * @param[in] oldv An object previously stored inside of `old`. + * @param[out] b A young object. + * @param[in] filename C's `__FILE__` of the caller function. + * @param[in] line C's `__LINE__` of the caller function. + * @return a + */ +static inline VALUE +rb_obj_written( + VALUE a, + RBIMPL_ATTR_MAYBE_UNUSED() + VALUE oldv, + VALUE b, + RBIMPL_ATTR_MAYBE_UNUSED() + const char *filename, + RBIMPL_ATTR_MAYBE_UNUSED() + int line) +{ +#if USE_RGENGC_LOGGING_WB_UNPROTECT + RGENGC_LOGGING_OBJ_WRITTEN(a, oldv, b, filename, line); +#endif + + if (!RB_SPECIAL_CONST_P(b)) { + rb_gc_writebarrier(a, b); + } + + return a; +} + +/** + * @private + * + * This is the implementation of #RB_OBJ_WRITE(). People don't use it + * directly. + * + * @param[in] a An old object. + * @param[in] slot A pointer inside of `old`. + * @param[out] b A young object. + * @param[in] filename C's `__FILE__` of the caller function. + * @param[in] line C's `__LINE__` of the caller function. + * @return a + */ +static inline VALUE +rb_obj_write( + VALUE a, VALUE *slot, VALUE b, + RBIMPL_ATTR_MAYBE_UNUSED() + const char *filename, + RBIMPL_ATTR_MAYBE_UNUSED() + int line) +{ +#ifdef RGENGC_LOGGING_WRITE + RGENGC_LOGGING_WRITE(a, slot, b, filename, line); +#endif + + *slot = b; + + rb_obj_written(a, RUBY_Qundef /* ignore `oldv' now */, b, filename, line); + return a; +} + +#endif /* RBIMPL_RGENGC_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/scan_args.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/scan_args.h new file mode 100644 index 0000000..1ed2bf6 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/scan_args.h @@ -0,0 +1,534 @@ +#ifndef RBIMPL_SCAN_ARGS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_SCAN_ARGS_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Compile-time static implementation of ::rb_scan_args(). + * + * This is a beast. It statically analyses the argument spec string, and + * expands the assignment of variables into dedicated codes. + */ +#include "ruby/assert.h" +#include "ruby/internal/attr/diagnose_if.h" +#include "ruby/internal/attr/error.h" +#include "ruby/internal/attr/forceinline.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/config.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/intern/array.h" /* rb_ary_new_from_values */ +#include "ruby/internal/intern/error.h" /* rb_error_arity */ +#include "ruby/internal/intern/hash.h" /* rb_hash_dup */ +#include "ruby/internal/intern/proc.h" /* rb_block_proc */ +#include "ruby/internal/iterator.h" /* rb_block_given_p / rb_keyword_given_p */ +#include "ruby/internal/static_assert.h" +#include "ruby/internal/stdbool.h" +#include "ruby/internal/value.h" + +/** + * @name Possible values that you should pass to rb_scan_args_kw(). + * @{ + */ + +/** Same behaviour as rb_scan_args(). */ +#define RB_SCAN_ARGS_PASS_CALLED_KEYWORDS 0 + +/** The final argument should be a hash treated as keywords.*/ +#define RB_SCAN_ARGS_KEYWORDS 1 + +/** + * Treat a final argument as keywords if it is a hash, and not as keywords + * otherwise. + */ +#define RB_SCAN_ARGS_LAST_HASH_KEYWORDS 3 + +/** @} */ + +/** + * @name Possible values that you should pass to rb_funcallv_kw(). + * @{ + */ + +/** Do not pass keywords. */ +#define RB_NO_KEYWORDS 0 + +/** Pass keywords, final argument should be a hash of keywords. */ +#define RB_PASS_KEYWORDS 1 + +/** + * Pass keywords if current method is called with keywords, useful for argument + * delegation + */ +#define RB_PASS_CALLED_KEYWORDS rb_keyword_given_p() + +/** @} */ + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define HAVE_RB_SCAN_ARGS_OPTIONAL_HASH 1 + +RBIMPL_SYMBOL_EXPORT_BEGIN() +RBIMPL_ATTR_NONNULL((2, 3)) +/** + * Retrieves argument from argc and argv to given ::VALUE references according + * to the format string. The format can be described in ABNF as follows: + * + * ``` + * scan-arg-spec := param-arg-spec [keyword-arg-spec] [block-arg-spec] + * + * param-arg-spec := pre-arg-spec [post-arg-spec] / post-arg-spec / + * pre-opt-post-arg-spec + * pre-arg-spec := num-of-leading-mandatory-args + * [num-of-optional-args] + * post-arg-spec := sym-for-variable-length-args + * [num-of-trailing-mandatory-args] + * pre-opt-post-arg-spec := num-of-leading-mandatory-args num-of-optional-args + * num-of-trailing-mandatory-args + * keyword-arg-spec := sym-for-keyword-arg + * block-arg-spec := sym-for-block-arg + * + * num-of-leading-mandatory-args := DIGIT ; The number of leading mandatory + * ; arguments + * num-of-optional-args := DIGIT ; The number of optional arguments + * sym-for-variable-length-args := "*" ; Indicates that variable length + * ; arguments are captured as a ruby + * ; array + * num-of-trailing-mandatory-args := DIGIT ; The number of trailing mandatory + * ; arguments + * sym-for-keyword-arg := ":" ; Indicates that keyword argument + * ; captured as a hash. + * ; If keyword arguments are not + * ; provided, returns nil. + * sym-for-block-arg := "&" ; Indicates that an iterator block + * ; should be captured if given + * ``` + * + * For example, "12" means that the method requires at least one argument, and + * at most receives three (1+2) arguments. So, the format string must be + * followed by three variable references, which are to be assigned to captured + * arguments. For omitted arguments, variables are set to ::RUBY_Qnil. `NULL` + * can be put in place of a variable reference, which means the corresponding + * captured argument(s) should be just dropped. + * + * The number of given arguments, excluding an option hash or iterator block, + * is returned. + * + * @param[in] argc Length of `argv`. + * @param[in] argv Pointer to the arguments to parse. + * @param[in] fmt Format, in the language described above. + * @param[out] ... Variables to fill in. + * @exception rb_eFatal Malformed `fmt`. + * @exception rb_eArgError Arity mismatch. + * @return Actually parsed number of given arguments. + * @post Each values passed to `argv` is filled into the variadic + * arguments, according to the format. + */ +int rb_scan_args(int argc, const VALUE *argv, const char *fmt, ...); + +RBIMPL_ATTR_NONNULL((3, 4)) +/** + * Identical to rb_scan_args(), except it also accepts `kw_splat`. + * + * @param[in] kw_splat How to understand the keyword arguments. + * - RB_SCAN_ARGS_PASS_CALLED_KEYWORDS: Same behaviour as rb_scan_args(). + * - RB_SCAN_ARGS_KEYWORDS: The final argument is a kwarg. + * - RB_SCAN_ARGS_LAST_HASH_KEYWORDS: The final argument is a kwarg, iff it + * is a hash. + * @param[in] argc Length of `argv`. + * @param[in] argv Pointer to the arguments to parse. + * @param[in] fmt Format, in the language described above. + * @param[out] ... Variables to fill in. + * @exception rb_eFatal Malformed `fmt`. + * @exception rb_eArgError Arity mismatch. + * @return Actually parsed number of given arguments. + * @post Each values passed to `argv` is filled into the variadic + * arguments, according to the format. + */ +int rb_scan_args_kw(int kw_splat, int argc, const VALUE *argv, const char *fmt, ...); + +RBIMPL_ATTR_ERROR(("bad scan arg format")) +/** + * @private + * + * This is an implementation detail of rb_scan_args(). People don't use it + * directly. + */ +void rb_scan_args_bad_format(const char*); + +RBIMPL_ATTR_ERROR(("variable argument length doesn't match")) +/** + * @private + * + * This is an implementation detail of rb_scan_args(). People don't use it + * directly. + */ +void rb_scan_args_length_mismatch(const char*,int); + +RBIMPL_SYMBOL_EXPORT_END() + +/** @cond INTERNAL_MACRO */ + +/* If we could use constexpr the following macros could be inline functions + * ... but sadly we cannot. */ + +#define rb_scan_args_isdigit(c) (RBIMPL_CAST((unsigned char)((c)-'0'))<10) + +#define rb_scan_args_count_end(fmt, ofs, vari) \ + ((fmt)[ofs] ? -1 : (vari)) + +#define rb_scan_args_count_block(fmt, ofs, vari) \ + ((fmt)[ofs]!='&' ? \ + rb_scan_args_count_end(fmt, ofs, vari) : \ + rb_scan_args_count_end(fmt, (ofs)+1, (vari)+1)) + +#define rb_scan_args_count_hash(fmt, ofs, vari) \ + ((fmt)[ofs]!=':' ? \ + rb_scan_args_count_block(fmt, ofs, vari) : \ + rb_scan_args_count_block(fmt, (ofs)+1, (vari)+1)) + +#define rb_scan_args_count_trail(fmt, ofs, vari) \ + (!rb_scan_args_isdigit((fmt)[ofs]) ? \ + rb_scan_args_count_hash(fmt, ofs, vari) : \ + rb_scan_args_count_hash(fmt, (ofs)+1, (vari)+((fmt)[ofs]-'0'))) + +#define rb_scan_args_count_var(fmt, ofs, vari) \ + ((fmt)[ofs]!='*' ? \ + rb_scan_args_count_trail(fmt, ofs, vari) : \ + rb_scan_args_count_trail(fmt, (ofs)+1, (vari)+1)) + +#define rb_scan_args_count_opt(fmt, ofs, vari) \ + (!rb_scan_args_isdigit((fmt)[ofs]) ? \ + rb_scan_args_count_var(fmt, ofs, vari) : \ + rb_scan_args_count_var(fmt, (ofs)+1, (vari)+(fmt)[ofs]-'0')) + +#define rb_scan_args_count_lead(fmt, ofs, vari) \ + (!rb_scan_args_isdigit((fmt)[ofs]) ? \ + rb_scan_args_count_var(fmt, ofs, vari) : \ + rb_scan_args_count_opt(fmt, (ofs)+1, (vari)+(fmt)[ofs]-'0')) + +#define rb_scan_args_count(fmt) rb_scan_args_count_lead(fmt, 0, 0) + +#if RBIMPL_HAS_ATTRIBUTE(diagnose_if) +# /* Assertions done in the attribute. */ +# define rb_scan_args_verify(fmt, varc) RBIMPL_ASSERT_NOTHING +#else +# /* At one sight it _seems_ the expressions below could be written using +# * static assertions. The reality is no, they don't. Because fmt is a +# * string literal, any operations against fmt cannot produce the "integer +# * constant expression"s, as defined in ISO/IEC 9899:2018 section 6.6 +# * paragraph #6. Static assertions need such integer constant expressions as +# * defined in ISO/IEC 9899:2018 section 6.7.10 paragraph #3. +# * +# * GCC nonetheless constant-folds this into a no-op, though. */ +# define rb_scan_args_verify(fmt, varc) \ + (sizeof(char[1-2*(rb_scan_args_count(fmt)<0)])!=1 ? \ + rb_scan_args_bad_format(fmt) : \ + sizeof(char[1-2*(rb_scan_args_count(fmt)!=(varc))])!=1 ? \ + rb_scan_args_length_mismatch(fmt, varc) : \ + RBIMPL_ASSERT_NOTHING) +#endif + +static inline bool +rb_scan_args_keyword_p(int kw_flag, VALUE last) +{ + switch (kw_flag) { + case RB_SCAN_ARGS_PASS_CALLED_KEYWORDS: + return !! rb_keyword_given_p(); + case RB_SCAN_ARGS_KEYWORDS: + return true; + case RB_SCAN_ARGS_LAST_HASH_KEYWORDS: + return RB_TYPE_P(last, T_HASH); + default: + return false; + } +} + +RBIMPL_ATTR_FORCEINLINE() +static bool +rb_scan_args_lead_p(const char *fmt) +{ + return rb_scan_args_isdigit(fmt[0]); +} + +RBIMPL_ATTR_FORCEINLINE() +static int +rb_scan_args_n_lead(const char *fmt) +{ + return (rb_scan_args_lead_p(fmt) ? fmt[0]-'0' : 0); +} + +RBIMPL_ATTR_FORCEINLINE() +static bool +rb_scan_args_opt_p(const char *fmt) +{ + return (rb_scan_args_lead_p(fmt) && rb_scan_args_isdigit(fmt[1])); +} + +RBIMPL_ATTR_FORCEINLINE() +static int +rb_scan_args_n_opt(const char *fmt) +{ + return (rb_scan_args_opt_p(fmt) ? fmt[1]-'0' : 0); +} + +RBIMPL_ATTR_FORCEINLINE() +static int +rb_scan_args_var_idx(const char *fmt) +{ + return (!rb_scan_args_lead_p(fmt) ? 0 : !rb_scan_args_isdigit(fmt[1]) ? 1 : 2); +} + +RBIMPL_ATTR_FORCEINLINE() +static bool +rb_scan_args_f_var(const char *fmt) +{ + return (fmt[rb_scan_args_var_idx(fmt)]=='*'); +} + +RBIMPL_ATTR_FORCEINLINE() +static int +rb_scan_args_trail_idx(const char *fmt) +{ + const int idx = rb_scan_args_var_idx(fmt); + return idx+(fmt[idx]=='*'); +} + +RBIMPL_ATTR_FORCEINLINE() +static int +rb_scan_args_n_trail(const char *fmt) +{ + const int idx = rb_scan_args_trail_idx(fmt); + return (rb_scan_args_isdigit(fmt[idx]) ? fmt[idx]-'0' : 0); +} + +RBIMPL_ATTR_FORCEINLINE() +static int +rb_scan_args_hash_idx(const char *fmt) +{ + const int idx = rb_scan_args_trail_idx(fmt); + return idx+rb_scan_args_isdigit(fmt[idx]); +} + +RBIMPL_ATTR_FORCEINLINE() +static bool +rb_scan_args_f_hash(const char *fmt) +{ + return (fmt[rb_scan_args_hash_idx(fmt)]==':'); +} + +RBIMPL_ATTR_FORCEINLINE() +static int +rb_scan_args_block_idx(const char *fmt) +{ + const int idx = rb_scan_args_hash_idx(fmt); + return idx+(fmt[idx]==':'); +} + +RBIMPL_ATTR_FORCEINLINE() +static bool +rb_scan_args_f_block(const char *fmt) +{ + return (fmt[rb_scan_args_block_idx(fmt)]=='&'); +} + +# if 0 +RBIMPL_ATTR_FORCEINLINE() +static int +rb_scan_args_end_idx(const char *fmt) +{ + const int idx = rb_scan_args_block_idx(fmt); + return idx+(fmt[idx]=='&'); +} +# endif + +/* NOTE: Use `char *fmt` instead of `const char *fmt` because of clang's bug*/ +/* https://bugs.llvm.org/show_bug.cgi?id=38095 */ +# define rb_scan_args0(argc, argv, fmt, varc, vars) \ + rb_scan_args_set(RB_SCAN_ARGS_PASS_CALLED_KEYWORDS, argc, argv, \ + rb_scan_args_n_lead(fmt), \ + rb_scan_args_n_opt(fmt), \ + rb_scan_args_n_trail(fmt), \ + rb_scan_args_f_var(fmt), \ + rb_scan_args_f_hash(fmt), \ + rb_scan_args_f_block(fmt), \ + (rb_scan_args_verify(fmt, varc), vars), (char *)fmt, varc) +# define rb_scan_args_kw0(kw_flag, argc, argv, fmt, varc, vars) \ + rb_scan_args_set(kw_flag, argc, argv, \ + rb_scan_args_n_lead(fmt), \ + rb_scan_args_n_opt(fmt), \ + rb_scan_args_n_trail(fmt), \ + rb_scan_args_f_var(fmt), \ + rb_scan_args_f_hash(fmt), \ + rb_scan_args_f_block(fmt), \ + (rb_scan_args_verify(fmt, varc), vars), (char *)fmt, varc) + +RBIMPL_ATTR_FORCEINLINE() +static int +rb_scan_args_set(int kw_flag, int argc, const VALUE *argv, + int n_lead, int n_opt, int n_trail, + bool f_var, bool f_hash, bool f_block, + VALUE *vars[], RB_UNUSED_VAR(const char *fmt), RB_UNUSED_VAR(int varc)) + RBIMPL_ATTR_DIAGNOSE_IF(rb_scan_args_count(fmt) < 0, "bad scan arg format", "error") + RBIMPL_ATTR_DIAGNOSE_IF(rb_scan_args_count(fmt) != varc, "variable argument length doesn't match", "error") +{ + int i, argi = 0, vari = 0; + VALUE *var, hash = Qnil; +#define rb_scan_args_next_param() vars[vari++] + const int n_mand = n_lead + n_trail; + + /* capture an option hash - phase 1: pop from the argv */ + if (f_hash && argc > 0) { + VALUE last = argv[argc - 1]; + if (rb_scan_args_keyword_p(kw_flag, last)) { + hash = rb_hash_dup(last); + argc--; + } + } + + if (argc < n_mand) { + goto argc_error; + } + + /* capture leading mandatory arguments */ + for (i = 0; i < n_lead; i++) { + var = rb_scan_args_next_param(); + if (var) *var = argv[argi]; + argi++; + } + + /* capture optional arguments */ + for (i = 0; i < n_opt; i++) { + var = rb_scan_args_next_param(); + if (argi < argc - n_trail) { + if (var) *var = argv[argi]; + argi++; + } + else { + if (var) *var = Qnil; + } + } + + /* capture variable length arguments */ + if (f_var) { + int n_var = argc - argi - n_trail; + + var = rb_scan_args_next_param(); + if (0 < n_var) { + if (var) *var = rb_ary_new_from_values(n_var, &argv[argi]); + argi += n_var; + } + else { + if (var) *var = rb_ary_new(); + } + } + + /* capture trailing mandatory arguments */ + for (i = 0; i < n_trail; i++) { + var = rb_scan_args_next_param(); + if (var) *var = argv[argi]; + argi++; + } + + /* capture an option hash - phase 2: assignment */ + if (f_hash) { + var = rb_scan_args_next_param(); + if (var) *var = hash; + } + + /* capture iterator block */ + if (f_block) { + var = rb_scan_args_next_param(); + if (rb_block_given_p()) { + *var = rb_block_proc(); + } + else { + *var = Qnil; + } + } + + if (argi == argc) { + return argc; + } + + argc_error: + rb_error_arity(argc, n_mand, f_var ? UNLIMITED_ARGUMENTS : n_mand + n_opt); + UNREACHABLE_RETURN(-1); +#undef rb_scan_args_next_param +} + +/** @endcond */ + +#if defined(__DOXYGEN__) +# /* don't bother */ + +#elif ! defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P) +# /* skip */ + +#elif ! defined(HAVE_VA_ARGS_MACRO) +# /* skip */ + +#elif ! defined(__OPTIMIZE__) +# /* skip */ + +#elif defined(HAVE___VA_OPT__) +# define rb_scan_args(argc, argvp, fmt, ...) \ + __builtin_choose_expr( \ + __builtin_constant_p(fmt), \ + rb_scan_args0( \ + argc, argvp, fmt, \ + (sizeof((VALUE*[]){__VA_ARGS__})/sizeof(VALUE*)), \ + ((VALUE*[]){__VA_ARGS__})), \ + (rb_scan_args)(argc, argvp, fmt __VA_OPT__(, __VA_ARGS__))) +# define rb_scan_args_kw(kw_flag, argc, argvp, fmt, ...) \ + __builtin_choose_expr( \ + __builtin_constant_p(fmt), \ + rb_scan_args_kw0( \ + kw_flag, argc, argvp, fmt, \ + (sizeof((VALUE*[]){__VA_ARGS__})/sizeof(VALUE*)), \ + ((VALUE*[]){__VA_ARGS__})), \ + (rb_scan_args_kw)(kw_flag, argc, argvp, fmt __VA_OPT__(, __VA_ARGS__))) + +#elif defined(__STRICT_ANSI__) +# /* skip */ + +#elif defined(__GNUC__) +# define rb_scan_args(argc, argvp, fmt, ...) \ + __builtin_choose_expr( \ + __builtin_constant_p(fmt), \ + rb_scan_args0( \ + argc, argvp, fmt, \ + (sizeof((VALUE*[]){__VA_ARGS__})/sizeof(VALUE*)), \ + ((VALUE*[]){__VA_ARGS__})), \ + (rb_scan_args)(argc, argvp, fmt, __VA_ARGS__)) +# define rb_scan_args_kw(kw_flag, argc, argvp, fmt, ...) \ + __builtin_choose_expr( \ + __builtin_constant_p(fmt), \ + rb_scan_args_kw0( \ + kw_flag, argc, argvp, fmt, \ + (sizeof((VALUE*[]){__VA_ARGS__})/sizeof(VALUE*)), \ + ((VALUE*[]){__VA_ARGS__})), \ + (rb_scan_args_kw)(kw_flag, argc, argvp, fmt, __VA_ARGS__ /**/)) +#endif + +#endif /* RBIMPL_SCAN_ARGS_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/special_consts.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/special_consts.h new file mode 100644 index 0000000..dc0a6b4 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/special_consts.h @@ -0,0 +1,362 @@ +#ifndef RBIMPL_SPECIAL_CONSTS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_SPECIAL_CONSTS_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines enum ::ruby_special_consts. + * @see Sasada, K., "A Lightweight Representation of Floating-Point + * Numbers on Ruby Interpreter", in proceedings of 10th JSSST + * SIGPPL Workshop on Programming and Programming Languages + * (PPL2008), pp. 9-16, 2008. + */ +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/constexpr.h" +#include "ruby/internal/attr/enum_extensibility.h" +#include "ruby/internal/stdbool.h" +#include "ruby/internal/value.h" + +/** + * @private + * @warning Do not touch this macro. + * @warning It is an implementation detail. + * @warning The value of this macro must match for ruby itself and all + * extension libraries, otherwise serious memory corruption shall + * occur. + */ +#if defined(USE_FLONUM) +# /* Take that. */ +#elif SIZEOF_VALUE >= SIZEOF_DOUBLE +# define USE_FLONUM 1 +#else +# define USE_FLONUM 0 +#endif + +/** This is an old name of #RB_TEST. Not sure which name is preferred. */ +#define RTEST RB_TEST + +#define FIXNUM_P RB_FIXNUM_P /**< @old{RB_FIXNUM_P} */ +#define IMMEDIATE_P RB_IMMEDIATE_P /**< @old{RB_IMMEDIATE_P} */ +#define NIL_P RB_NIL_P /**< @old{RB_NIL_P} */ +#define SPECIAL_CONST_P RB_SPECIAL_CONST_P /**< @old{RB_SPECIAL_CONST_P} */ +#define STATIC_SYM_P RB_STATIC_SYM_P /**< @old{RB_STATIC_SYM_P} */ + +#define Qfalse RUBY_Qfalse /**< @old{RUBY_Qfalse} */ +#define Qnil RUBY_Qnil /**< @old{RUBY_Qnil} */ +#define Qtrue RUBY_Qtrue /**< @old{RUBY_Qtrue} */ +#define Qundef RUBY_Qundef /**< @old{RUBY_Qundef} */ + +#define FIXNUM_FLAG RUBY_FIXNUM_FLAG /**< @old{RUBY_FIXNUM_FLAG} */ +#define FLONUM_FLAG RUBY_FLONUM_FLAG /**< @old{RUBY_FLONUM_FLAG} */ +#define FLONUM_MASK RUBY_FLONUM_MASK /**< @old{RUBY_FLONUM_MASK} */ +#define FLONUM_P RB_FLONUM_P /**< @old{RB_FLONUM_P} */ +#define IMMEDIATE_MASK RUBY_IMMEDIATE_MASK /**< @old{RUBY_IMMEDIATE_MASK} */ +#define SYMBOL_FLAG RUBY_SYMBOL_FLAG /**< @old{RUBY_SYMBOL_FLAG} */ + +/** @cond INTERNAL_MACRO */ +#define RB_FIXNUM_P RB_FIXNUM_P +#define RB_FLONUM_P RB_FLONUM_P +#define RB_IMMEDIATE_P RB_IMMEDIATE_P +#define RB_NIL_P RB_NIL_P +#define RB_SPECIAL_CONST_P RB_SPECIAL_CONST_P +#define RB_STATIC_SYM_P RB_STATIC_SYM_P +#define RB_TEST RB_TEST +#define RB_UNDEF_P RB_UNDEF_P +#define RB_NIL_OR_UNDEF_P RB_NIL_OR_UNDEF_P +/** @endcond */ + +/** special constants - i.e. non-zero and non-fixnum constants */ +enum +RBIMPL_ATTR_ENUM_EXTENSIBILITY(closed) +ruby_special_consts { +#if defined(__DOXYGEN__) + RUBY_Qfalse, /**< @see ::rb_cFalseClass */ + RUBY_Qtrue, /**< @see ::rb_cTrueClass */ + RUBY_Qnil, /**< @see ::rb_cNilClass */ + RUBY_Qundef, /**< Represents so-called undef. */ + RUBY_IMMEDIATE_MASK, /**< Bit mask detecting special consts. */ + RUBY_FIXNUM_FLAG, /**< Flag to denote a fixnum. */ + RUBY_FLONUM_MASK, /**< Bit mask detecting a flonum. */ + RUBY_FLONUM_FLAG, /**< Flag to denote a flonum. */ + RUBY_SYMBOL_FLAG, /**< Flag to denote a static symbol. */ +#elif USE_FLONUM + RUBY_Qfalse = 0x00, /* ...0000 0000 */ + RUBY_Qnil = 0x04, /* ...0000 0100 */ + RUBY_Qtrue = 0x14, /* ...0001 0100 */ + RUBY_Qundef = 0x24, /* ...0010 0100 */ + RUBY_IMMEDIATE_MASK = 0x07, /* ...0000 0111 */ + RUBY_FIXNUM_FLAG = 0x01, /* ...xxxx xxx1 */ + RUBY_FLONUM_MASK = 0x03, /* ...0000 0011 */ + RUBY_FLONUM_FLAG = 0x02, /* ...xxxx xx10 */ + RUBY_SYMBOL_FLAG = 0x0c, /* ...xxxx 1100 */ +#else + RUBY_Qfalse = 0x00, /* ...0000 0000 */ + RUBY_Qnil = 0x02, /* ...0000 0010 */ + RUBY_Qtrue = 0x06, /* ...0000 0110 */ + RUBY_Qundef = 0x0a, /* ...0000 1010 */ + RUBY_IMMEDIATE_MASK = 0x03, /* ...0000 0011 */ + RUBY_FIXNUM_FLAG = 0x01, /* ...xxxx xxx1 */ + RUBY_FLONUM_MASK = 0x00, /* any values ANDed with FLONUM_MASK cannot be FLONUM_FLAG */ + RUBY_FLONUM_FLAG = 0x02, /* ...0000 0010 */ + RUBY_SYMBOL_FLAG = 0x0e, /* ...xxxx 1110 */ +#endif + + RUBY_SPECIAL_SHIFT = 8 /**< Least significant 8 bits are reserved. */ +}; + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Emulates Ruby's "if" statement. + * + * @param[in] obj An arbitrary ruby object. + * @retval false `obj` is either ::RUBY_Qfalse or ::RUBY_Qnil. + * @retval true Anything else. + * + * @internal + * + * It HAS to be `__attribute__((const))` in order for clang to properly deduce + * `__builtin_assume()`. + */ +static inline bool +RB_TEST(VALUE obj) +{ + /* + * if USE_FLONUM + * Qfalse: ....0000 0000 + * Qnil: ....0000 0100 + * ~Qnil: ....1111 1011 + * v ....xxxx xxxx + * ---------------------------- + * RTEST(v) ....xxxx x0xx + * + * if ! USE_FLONUM + * Qfalse: ....0000 0000 + * Qnil: ....0000 0010 + * ~Qnil: ....1111 1101 + * v ....xxxx xxxx + * ---------------------------- + * RTEST(v) ....xxxx xx0x + * + * RTEST(v) can be 0 if and only if (v == Qfalse || v == Qnil). + */ + return obj & ~RUBY_Qnil; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks if the given object is nil. + * + * @param[in] obj An arbitrary ruby object. + * @retval true `obj` is ::RUBY_Qnil. + * @retval false Anything else. + */ +static inline bool +RB_NIL_P(VALUE obj) +{ + return obj == RUBY_Qnil; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks if the given object is undef. + * + * @param[in] obj An arbitrary ruby object. + * @retval true `obj` is ::RUBY_Qundef. + * @retval false Anything else. + */ +static inline bool +RB_UNDEF_P(VALUE obj) +{ + return obj == RUBY_Qundef; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX14) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks if the given object is nil or undef. Can be used to see if + * a keyword argument is not given or given `nil`. + * + * @param[in] obj An arbitrary ruby object. + * @retval true `obj` is ::RUBY_Qnil or ::RUBY_Qundef. + * @retval false Anything else. + */ +static inline bool +RB_NIL_OR_UNDEF_P(VALUE obj) +{ + /* + * if USE_FLONUM + * Qundef: ....0010 0100 + * Qnil: ....0000 0100 + * mask: ....1101 1111 + * common_bits: ....0000 0100 + * --------------------------------- + * Qnil & mask ....0000 0100 + * Qundef & mask ....0000 0100 + * + * if ! USE_FLONUM + * Qundef: ....0000 1010 + * Qnil: ....0000 0010 + * mask: ....1111 0111 + * common_bits: ....0000 0010 + * ---------------------------- + * Qnil & mask ....0000 0010 + * Qundef & mask ....0000 0010 + * + * NIL_OR_UNDEF_P(v) can be true only when v is Qundef or Qnil. + */ + const VALUE mask = ~(RUBY_Qundef ^ RUBY_Qnil); + const VALUE common_bits = RUBY_Qundef & RUBY_Qnil; + return (obj & mask) == common_bits; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks if the given object is a so-called Fixnum. + * + * @param[in] obj An arbitrary ruby object. + * @retval true `obj` is a Fixnum. + * @retval false Anything else. + * @note Fixnum was a thing in the 20th century, but it is rather an + * implementation detail today. + */ +static inline bool +RB_FIXNUM_P(VALUE obj) +{ + return obj & RUBY_FIXNUM_FLAG; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX14) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks if the given object is a static symbol. + * + * @param[in] obj An arbitrary ruby object. + * @retval true `obj` is a static symbol + * @retval false Anything else. + * @see RB_DYNAMIC_SYM_P() + * @see RB_SYMBOL_P() + * @note These days there are static and dynamic symbols, just like we + * once had Fixnum/Bignum back in the old days. + */ +static inline bool +RB_STATIC_SYM_P(VALUE obj) +{ + RBIMPL_ATTR_CONSTEXPR(CXX14) + const VALUE mask = ~(RBIMPL_VALUE_FULL << RUBY_SPECIAL_SHIFT); + return (obj & mask) == RUBY_SYMBOL_FLAG; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks if the given object is a so-called Flonum. + * + * @param[in] obj An arbitrary ruby object. + * @retval true `obj` is a Flonum. + * @retval false Anything else. + * @see RB_FLOAT_TYPE_P() + * @note These days there are Flonums and non-Flonum floats, just like we + * once had Fixnum/Bignum back in the old days. + */ +static inline bool +RB_FLONUM_P(VALUE obj) +{ +#if USE_FLONUM + return (obj & RUBY_FLONUM_MASK) == RUBY_FLONUM_FLAG; +#else + return false; +#endif +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks if the given object is an immediate i.e. an object which has no + * corresponding storage inside of the object space. + * + * @param[in] obj An arbitrary ruby object. + * @retval true `obj` is a Flonum. + * @retval false Anything else. + * @see RB_FLOAT_TYPE_P() + * @note The concept of "immediate" is purely C specific. + */ +static inline bool +RB_IMMEDIATE_P(VALUE obj) +{ + return obj & RUBY_IMMEDIATE_MASK; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks if the given object is of enum ::ruby_special_consts. + * + * @param[in] obj An arbitrary ruby object. + * @retval true `obj` is a special constant. + * @retval false Anything else. + */ +static inline bool +RB_SPECIAL_CONST_P(VALUE obj) +{ + return RB_IMMEDIATE_P(obj) || obj == RUBY_Qfalse; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +/** + * Identical to RB_SPECIAL_CONST_P, except it returns a ::VALUE. + * + * @param[in] obj An arbitrary ruby object. + * @retval RUBY_Qtrue `obj` is a special constant. + * @retval RUBY_Qfalse Anything else. + * + * @internal + * + * This function is to mimic old rb_special_const_p macro but have anyone + * actually used its return value? Wasn't it just something no one needed? + */ +static inline VALUE +rb_special_const_p(VALUE obj) +{ + return RB_SPECIAL_CONST_P(obj) * RUBY_Qtrue; +} + +/** + * @cond INTERNAL_MACRO + * See [ruby-dev:27513] for the following macros. + */ +#define RUBY_Qfalse RBIMPL_CAST((VALUE)RUBY_Qfalse) +#define RUBY_Qtrue RBIMPL_CAST((VALUE)RUBY_Qtrue) +#define RUBY_Qnil RBIMPL_CAST((VALUE)RUBY_Qnil) +#define RUBY_Qundef RBIMPL_CAST((VALUE)RUBY_Qundef) +/** @endcond */ + +#endif /* RBIMPL_SPECIAL_CONSTS_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/static_assert.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/static_assert.h new file mode 100644 index 0000000..594c2b2 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/static_assert.h @@ -0,0 +1,77 @@ +#ifndef RBIMPL_STATIC_ASSERT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_STATIC_ASSERT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_STATIC_ASSERT. + */ +#include +#include "ruby/internal/has/extension.h" +#include "ruby/internal/compiler_since.h" + +/** @cond INTERNAL_MACRO */ +#if defined(__cplusplus) && defined(__cpp_static_assert) +# /* https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations */ +# define RBIMPL_STATIC_ASSERT0 static_assert + +#elif defined(__cplusplus) && RBIMPL_COMPILER_SINCE(MSVC, 16, 0, 0) +# define RBIMPL_STATIC_ASSERT0 static_assert + +#elif defined(__INTEL_CXX11_MODE__) +# define RBIMPL_STATIC_ASSERT0 static_assert + +#elif defined(__cplusplus) && __cplusplus >= 201103L +# define RBIMPL_STATIC_ASSERT0 static_assert + +#elif defined(__cplusplus) && RBIMPL_HAS_EXTENSION(cxx_static_assert) +# define RBIMPL_STATIC_ASSERT0 __extension__ static_assert + +#elif defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__ +# define RBIMPL_STATIC_ASSERT0 __extension__ static_assert + +#elif defined(__STDC_VERSION__) && RBIMPL_HAS_EXTENSION(c_static_assert) +# define RBIMPL_STATIC_ASSERT0 __extension__ _Static_assert + +#elif defined(__STDC_VERSION__) && RBIMPL_COMPILER_SINCE(GCC, 4, 6, 0) +# define RBIMPL_STATIC_ASSERT0 __extension__ _Static_assert + +#elif defined(static_assert) +# /* Take definition */ +# define RBIMPL_STATIC_ASSERT0 static_assert +#endif +/** @endcond */ + +/** + * @brief Wraps (or simulates) `static_assert` + * @param name Valid C/C++ identifier, describing the assertion. + * @param expr Expression to assert. + * @note `name` shall not be a string literal. + */ +#if defined(__DOXYGEN__) +# define RBIMPL_STATIC_ASSERT static_assert + +#elif defined(RBIMPL_STATIC_ASSERT0) +# define RBIMPL_STATIC_ASSERT(name, expr) \ + RBIMPL_STATIC_ASSERT0(expr, # name ": " # expr) + +#else +# define RBIMPL_STATIC_ASSERT(name, expr) \ + typedef int static_assert_ ## name ## _check[1 - 2 * !(expr)] +#endif + +#endif /* RBIMPL_STATIC_ASSERT_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/stdalign.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/stdalign.h new file mode 100644 index 0000000..ec68f6a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/stdalign.h @@ -0,0 +1,135 @@ +#ifndef RBIMPL_STDALIGN_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_STDALIGN_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ALIGNAS / #RBIMPL_ALIGNOF + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#include "ruby/internal/compiler_is.h" +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/has/declspec_attribute.h" +#include "ruby/internal/has/feature.h" + +/** + * Wraps (or simulates) `alignas`. This is C++11's `alignas` and is _different_ + * from C11 `_Alignas`. For instance, + * + * ```CXX + * typedef struct alignas(128) foo { int foo } foo; + * ``` + * + * is a valid C++ while + * + * ```C + * typedef struct _Alignas(128) foo { int foo } foo; + * ``` + * + * is an invalid C because: + * + * - You cannot `struct _Alignas`. + * - A `typedef` cannot have alignments. + */ +#if defined(__cplusplus) && RBIMPL_HAS_FEATURE(cxx_alignas) +# define RBIMPL_ALIGNAS alignas + +#elif defined(__cplusplus) && (__cplusplus >= 201103L) +# define RBIMPL_ALIGNAS alignas + +#elif defined(__INTEL_CXX11_MODE__) +# define RBIMPL_ALIGNAS alignas + +#elif defined(__GXX_EXPERIMENTAL_CXX0X__) +# define RBIMPL_ALIGNAS alignas + +#elif RBIMPL_HAS_DECLSPEC_ATTRIBUTE(align) +# define RBIMPL_ALIGNAS(_) __declspec(align(_)) + +#elif RBIMPL_HAS_ATTRIBUTE(aligned) +# define RBIMPL_ALIGNAS(_) __attribute__((__aligned__(_))) + +#else +# define RBIMPL_ALIGNAS(_) /* void */ +#endif + +/** + * Wraps (or simulates) `alignof`. + * + * We want C11's `_Alignof`. However in spite of its clear language, compilers + * (including GCC and clang) tend to have buggy implementations. We have to + * avoid such things to resort to our own version. + * + * @see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023 + * @see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69560 + * @see https://bugs.llvm.org/show_bug.cgi?id=26547 + */ +#if defined(__DOXYGEN__) +# define RBIMPL_ALIGNOF alignof +#elif defined(__cplusplus) +# /* C++11 `alignof()` can be buggy. */ +# /* see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69560 */ +# /* But don't worry, we can use templates. */ +# define RBIMPL_ALIGNOF(T) (static_cast(ruby::rbimpl_alignof::value)) + +namespace ruby { +template +struct rbimpl_alignof { + typedef struct { + char _; + T t; + } type; + + enum { + value = offsetof(type, t) + }; +}; +} + +#elif RBIMPL_COMPILER_IS(MSVC) +# /* Windows have no alignment glitch.*/ +# define RBIMPL_ALIGNOF __alignof + +#elif defined(HAVE__ALIGNOF) +# /* Autoconf detected availability of a sane `_Alignof()`. */ +# define RBIMPL_ALIGNOF(T) RB_GNUC_EXTENSION(_Alignof(T)) + +#else +# /* :BEWARE: This is the last resort. If your compiler somehow supports +# * querying the alignment of a type, you definitely should use that instead. +# * There are 2 known pitfalls for this fallback implementation: +# * +# * First, it is either an undefined behaviour (C) or an explicit error (C++) +# * to define a struct inside of `offsetof`. C compilers tend to accept such +# * things, but AFAIK C++ has no room to allow. +# * +# * Second, there exist T such that `struct { char _; T t; }` is invalid. A +# * known example is when T is a struct with a flexible array member. Such +# * struct cannot be enclosed into another one. +# */ +# /* see: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2083.htm */ +# /* see: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2350.htm */ +# define RBIMPL_ALIGNOF(T) offsetof(struct { char _; T t; }, t) + +#endif + +#endif /* RBIMPL_STDALIGN_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/stdbool.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/stdbool.h new file mode 100644 index 0000000..1ca6113 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/stdbool.h @@ -0,0 +1,51 @@ +#ifndef RBIMPL_STDBOOL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_STDBOOL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief C99 shim for + */ +#include "ruby/internal/config.h" + +#if defined(__bool_true_false_are_defined) +# /* Take that. */ + +#elif defined(__cplusplus) +# /* bool is a keyword in C++. */ +# if defined(HAVE_STDBOOL_H) && (__cplusplus >= 201103L) +# include +# endif +# +# ifndef __bool_true_false_are_defined +# define __bool_true_false_are_defined +# endif + +#elif defined(HAVE_STDBOOL_H) +# /* Take stdbool.h definition. */ +# include + +#elif !defined(HAVE__BOOL) +typedef unsigned char _Bool; +# /* See also http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2229.htm */ +# define bool _Bool +# define true ((_Bool)+1) +# define false ((_Bool)+0) +# define __bool_true_false_are_defined +#endif + +#endif /* RBIMPL_STDBOOL_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/symbol.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/symbol.h new file mode 100644 index 0000000..869a311 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/symbol.h @@ -0,0 +1,332 @@ +#ifndef RBIMPL_SYMBOL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_SYMBOL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #rb_intern + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#ifdef HAVE_STRING_H +# include +#endif + +#include "ruby/internal/attr/noalias.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/constant_p.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/has/builtin.h" +#include "ruby/internal/value.h" + +#define RB_ID2SYM rb_id2sym /**< @alias{rb_id2sym} */ +#define RB_SYM2ID rb_sym2id /**< @alias{rb_sym2id} */ +#define ID2SYM RB_ID2SYM /**< @old{RB_ID2SYM} */ +#define SYM2ID RB_SYM2ID /**< @old{RB_SYM2ID} */ +#define CONST_ID_CACHE RUBY_CONST_ID_CACHE /**< @old{RUBY_CONST_ID_CACHE} */ +#define CONST_ID RUBY_CONST_ID /**< @old{RUBY_CONST_ID} */ + +/** @cond INTERNAL_MACRO */ +#define rb_intern_const rb_intern_const +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Converts an instance of ::rb_cSymbol into an ::ID. + * + * @param[in] obj An instance of ::rb_cSymbol. + * @exception rb_eTypeError `obj` is not an instance of ::rb_cSymbol. + * @return An ::ID of the identical symbol. + */ +ID rb_sym2id(VALUE obj); + +/** + * Allocates an instance of ::rb_cSymbol that has the given id. + * + * @param[in] id An id. + * @retval RUBY_Qfalse No such id ever existed in the history. + * @retval Otherwise An allocated ::rb_cSymbol instance. + */ +VALUE rb_id2sym(ID id); + +RBIMPL_ATTR_NONNULL(()) +/** + * Finds or creates a symbol of the given name. + * + * @param[in] name The name of the id. + * @exception rb_eRuntimeError Too many symbols. + * @return A (possibly new) id whose value is the given name. + * @note These days Ruby internally has two kinds of symbols (static / + * dynamic). Symbols created using this function would become a + * static one; i.e. would never be garbage collected. It is up to + * you to avoid memory leaks. Think twice before using it. + */ +ID rb_intern(const char *name); + +/** + * Identical to rb_intern(), except it additionally takes the length of the + * string. This way you can have a symbol that contains NUL characters. + * + * @param[in] name The name of the id. + * @param[in] len Length of `name`. + * @exception rb_eRuntimeError Too many symbols. + * @return A (possibly new) id whose value is the given name. + * @note These days Ruby internally has two kinds of symbols + * (static/dynamic). Symbols created using this function would + * become static ones; i.e. would never be garbage collected. It + * is up to you to avoid memory leaks. Think twice before using + * it. + */ +ID rb_intern2(const char *name, long len); + +/** + * Identical to rb_intern(), except it takes an instance of ::rb_cString. + * + * @param[in] str The name of the id. + * @pre `str` must either be an instance of ::rb_cSymbol, or an instance + * of ::rb_cString, or responds to `#to_str` method. + * @exception rb_eTypeError Can't convert `str` into ::rb_cString. + * @exception rb_eRuntimeError Too many symbols. + * @return A (possibly new) id whose value is the given str. + * @note These days Ruby internally has two kinds of symbols + * (static/dynamic). Symbols created using this function would + * become static ones; i.e. would never be garbage collected. It + * is up to you to avoid memory leaks. Think twice before using + * it. + */ +ID rb_intern_str(VALUE str); + +/** + * Retrieves the name mapped to the given id. + * + * @param[in] id An id to query. + * @retval NULL No such id ever existed in the history. + * @retval otherwise A name that the id represents. + * @note The return value is managed by the interpreter. Don't pass it + * to free(). + */ +const char *rb_id2name(ID id); + +RBIMPL_ATTR_NONNULL(()) +/** + * Detects if the given name is already interned or not. It first tries to + * convert the argument to an instance of ::rb_cString if it is neither an + * instance of ::rb_cString nor ::rb_cSymbol. The conversion result is written + * back to the variable. Then queries if that name was already interned + * before. If found it returns such id, otherwise zero. + * + * We eventually introduced this API to avoid inadvertent symbol pin-down. + * Before, there was no way to know if an ID was already interned or not + * without actually creating one (== leaking memory). By using this API you + * can avoid such situations: + * + * ```CXX + * bool does_interning_this_leak_memory(VALUE obj) + * { + * auto tmp = obj; + * if (auto id = rb_check_id(&tmp); id) { + * return false; + * } + * else { + * return true; // Let GC sweep tmp if necessary. + * } + * } + * ``` + * + * @param[in,out] namep A pointer to a name to query. + * @pre The object referred by `*namep` must either be an instance + * of ::rb_cSymbol, or an instance of ::rb_cString, or responds + * to `#to_str` method. + * @exception rb_eTypeError Can't convert `*namep` into ::rb_cString. + * @exception rb_eEncodingError Given string is non-ASCII. + * @retval 0 No such id ever existed in the history. + * @retval otherwise The id that represents the given name. + * @post The object that `*namep` points to is a converted result + * object, which is always an instance of either ::rb_cSymbol + * or ::rb_cString. + * @see https://bugs.ruby-lang.org/issues/5072 + * + * @internal + * + * @shyouhei doesn't know why this has to raise rb_eEncodingError. + */ +ID rb_check_id(volatile VALUE *namep); + +/** + * @copydoc rb_intern_str() + * + * @internal + * + * :FIXME: Can anyone tell us what is the difference between this one and + * rb_intern_str()? As far as @shyouhei reads the implementation it seems what + * rb_to_id() does is is just waste some CPU time, then call rb_intern_str(). + * He hopes he is wrong. + */ +ID rb_to_id(VALUE str); + +/** + * Identical to rb_id2name(), except it returns a Ruby's String instead of C's. + * + * @param[in] id An id to query. + * @retval RUBY_Qfalse No such id ever existed in the history. + * @retval otherwise An instance of ::rb_cString with the name of id. + * + * @internal + * + * In reality "rb_id2str() is identical to rb_id2name() except it returns Ruby + * string" is just describing things upside down; truth is `rb_id2name(foo)` is + * a shorthand of `RSTRING_PTR(rb_id2str(foo))`. + */ +VALUE rb_id2str(ID id); + +/** + * Identical to rb_id2str(), except it takes an instance of ::rb_cSymbol rather + * than an ::ID. + * + * @param[in] id An id to query. + * @retval RUBY_Qfalse No such id ever existed in the history. + * @retval otherwise An instance of ::rb_cString with the name of id. + */ +VALUE rb_sym2str(VALUE id); + +/** + * Identical to rb_intern_str(), except it generates a dynamic symbol if + * necessary. + * + * @param[in] name The name of the id. + * @pre `name` must either be an instance of ::rb_cSymbol, or an + * instance of ::rb_cString, or responds to `#to_str` method. + * @exception rb_eTypeError Can't convert `name` into ::rb_cString. + * @exception rb_eRuntimeError Too many symbols. + * @return A (possibly new) id whose value is the given name. + * @note These days Ruby internally has two kinds of symbols + * (static/dynamic). Symbols created using this function would + * become dynamic ones; i.e. would be garbage collected. It could + * be safer for you to use it than alternatives, when applicable. + */ +VALUE rb_to_symbol(VALUE name); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_check_id(), except it returns an instance of ::rb_cSymbol + * instead. + * + * @param[in,out] namep A pointer to a name to query. + * @pre The object referred by `*namep` must either be an instance + * of ::rb_cSymbol, or an instance of ::rb_cString, or responds + * to `#to_str` method. + * @exception rb_eTypeError Can't convert `*namep` into ::rb_cString. + * @exception rb_eEncodingError Given string is non-ASCII. + * @retval RUBY_Qnil No such id ever existed in the history. + * @retval otherwise The id that represents the given name. + * @post The object that `*namep` points to is a converted result + * object, which is always an instance of either ::rb_cSymbol + * or ::rb_cString. + * @see https://bugs.ruby-lang.org/issues/5072 + * + * @internal + * + * @shyouhei doesn't know why this has to raise rb_eEncodingError. + */ +VALUE rb_check_symbol(volatile VALUE *namep); +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_PURE() +RBIMPL_ATTR_NONNULL(()) +/** + * This is a "tiny optimisation" over rb_intern(). If you pass a string + * _literal_, and if your C compiler can special-case strlen of such literal to + * strength-reduce into an integer constant expression, then this inline + * function can precalc a part of conversion. + * + * @note This function also works happily for non-constant strings. Why + * bother then? Just apply liberally to everything. + * @note But #rb_intern() could be faster on compilers with statement + * expressions, because they can cache the created ::ID. + * @param[in] str The name of the id. + * @exception rb_eRuntimeError Too many symbols. + * @return A (possibly new) id whose value is the given str. + * @note These days Ruby internally has two kinds of symbols (static / + * dynamic). Symbols created using this function would become a + * static one; i.e. would never be garbage collected. It is up to + * you to avoid memory leaks. Think twice before using it. + */ +static inline ID +rb_intern_const(const char *str) +{ + size_t len = strlen(str); + return rb_intern2(str, RBIMPL_CAST((long)len)); +} + +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail of #rb_intern(). Just don't use it. + */ +static inline ID +rbimpl_intern_const(ID *ptr, const char *str) +{ + while (! *ptr) { + *ptr = rb_intern_const(str); + } + + return *ptr; +} + +/** + * Old implementation detail of rb_intern(). + * @deprecated Does anyone use it? Preserved for backward compat. + */ +#define RUBY_CONST_ID_CACHE(result, str) \ + { \ + static ID rb_intern_id_cache; \ + rbimpl_intern_const(&rb_intern_id_cache, (str)); \ + result rb_intern_id_cache; \ + } + +/** + * Old implementation detail of rb_intern(). + * @deprecated Does anyone use it? Preserved for backward compat. + */ +#define RUBY_CONST_ID(var, str) \ + do { \ + static ID rbimpl_id; \ + (var) = rbimpl_intern_const(&rbimpl_id, (str)); \ + } while (0) + +#if defined(HAVE_STMT_AND_DECL_IN_EXPR) +/* __builtin_constant_p and statement expression is available + * since gcc-2.7.2.3 at least. */ +#define rb_intern(str) \ + (RBIMPL_CONSTANT_P(str) ? \ + __extension__ ({ \ + static ID rbimpl_id; \ + rbimpl_intern_const(&rbimpl_id, (str)); \ + }) : \ + (rb_intern)(str)) +#endif + +#endif /* RBIMPL_SYMBOL_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/value.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/value.h new file mode 100644 index 0000000..805cd83 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/value.h @@ -0,0 +1,133 @@ +#ifndef RBIMPL_VALUE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_VALUE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines ::VALUE and ::ID. + */ +#include "ruby/internal/static_assert.h" +#include "ruby/backward/2/long_long.h" +#include "ruby/backward/2/limits.h" + +#if defined(__DOXYGEN__) + +/** + * Type that represents a Ruby object. It is an unsigned integer of some kind, + * depending on platforms. + * + * ```CXX + * VALUE value = rb_eval_string("ARGF.readlines.map.with_index"); + * ``` + * + * @warning ::VALUE is not a pointer. + * @warning ::VALUE can be wider than `long`. + */ +typedef uintptr_t VALUE; + +/** + * Type that represents a Ruby identifier such as a variable name. + * + * ```CXX + * ID method = rb_intern("method"); + * VALUE result = rb_funcall(obj, method, 0); + * ``` + * + * @note ::rb_cSymbol is a Ruby-level data type for the same thing. + */ +typedef uintptr_t ID; + +/** + * A signed integer type that has the same width with ::VALUE. + * + * @internal + * + * @shyouhei wonders: is it guaranteed that `uintptr_t` and `intptr_t` are the + * same width? As far as I read ISO/IEC 9899:2018 section 7.20.1.4 paragraph 1 + * no such description is given... or defined elsewhere? + */ +typedef intptr_t SIGNED_VALUE; + +/** + * Identical to `sizeof(VALUE)`, except it is a macro that can also be used + * inside of preprocessor directives such as `#if`. Handy on occasions. + */ +#define SIZEOF_VALUE SIZEOF_UINTPTR_T + +/** + * @private + * + * A compile-time constant of type ::VALUE whose value is 0. + */ +#define RBIMPL_VALUE_NULL UINTPTR_C(0) + +/** + * @private + * + * A compile-time constant of type ::VALUE whose value is 1. + */ +#define RBIMPL_VALUE_ONE UINTPTR_C(1) + +/** + * @private + * + * Maximum possible value that a ::VALUE can take. + */ +#define RBIMPL_VALUE_FULL UINTPTR_MAX + +#elif defined HAVE_UINTPTR_T && 0 +typedef uintptr_t VALUE; +typedef uintptr_t ID; +# define SIGNED_VALUE intptr_t +# define SIZEOF_VALUE SIZEOF_UINTPTR_T +# undef PRI_VALUE_PREFIX +# define RBIMPL_VALUE_NULL UINTPTR_C(0) +# define RBIMPL_VALUE_ONE UINTPTR_C(1) +# define RBIMPL_VALUE_FULL UINTPTR_MAX + +#elif SIZEOF_LONG == SIZEOF_VOIDP +typedef unsigned long VALUE; +typedef unsigned long ID; +# define SIGNED_VALUE long +# define SIZEOF_VALUE SIZEOF_LONG +# define PRI_VALUE_PREFIX "l" +# define RBIMPL_VALUE_NULL 0UL +# define RBIMPL_VALUE_ONE 1UL +# define RBIMPL_VALUE_FULL ULONG_MAX + +#elif SIZEOF_LONG_LONG == SIZEOF_VOIDP +typedef unsigned LONG_LONG VALUE; +typedef unsigned LONG_LONG ID; +# define SIGNED_VALUE LONG_LONG +# define LONG_LONG_VALUE 1 +# define SIZEOF_VALUE SIZEOF_LONG_LONG +# define PRI_VALUE_PREFIX PRI_LL_PREFIX +# define RBIMPL_VALUE_NULL 0ULL +# define RBIMPL_VALUE_ONE 1ULL +# define RBIMPL_VALUE_FULL ULLONG_MAX + +#else +# error ---->> ruby requires sizeof(void*) == sizeof(long) or sizeof(LONG_LONG) to be compiled. <<---- +#endif + +/** @cond INTERNAL_MACRO */ +RBIMPL_STATIC_ASSERT(sizeof_int, SIZEOF_INT == sizeof(int)); +RBIMPL_STATIC_ASSERT(sizeof_long, SIZEOF_LONG == sizeof(long)); +RBIMPL_STATIC_ASSERT(sizeof_long_long, SIZEOF_LONG_LONG == sizeof(LONG_LONG)); +RBIMPL_STATIC_ASSERT(sizeof_voidp, SIZEOF_VOIDP == sizeof(void *)); +/** @endcond */ +#endif /* RBIMPL_VALUE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/value_type.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/value_type.h new file mode 100644 index 0000000..977f60a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/value_type.h @@ -0,0 +1,449 @@ +#ifndef RBIMPL_VALUE_TYPE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_VALUE_TYPE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines enum ::ruby_value_type. + */ +#include "ruby/internal/assume.h" +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/cold.h" +#include "ruby/internal/attr/enum_extensibility.h" +#include "ruby/internal/attr/forceinline.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/constant_p.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/error.h" +#include "ruby/internal/has/builtin.h" +#include "ruby/internal/special_consts.h" +#include "ruby/internal/stdbool.h" +#include "ruby/internal/value.h" +#include "ruby/assert.h" + +#if defined(T_DATA) +/* + * :!BEWARE!: (Recent?) Solaris' have conflicting definition of + * T_DATA. Let us stop here. Please have a workaround like this: + * + * ```C + * #include // <- Include this one first. + * #undef T_DATA // <- ... and stick to RUBY_T_DATA forever. + * #include // <- OS-provided T_DATA introduced. + * ``` + * + * See also [ruby-core:4261] + */ +# error Bail out due to conflicting definition of T_DATA. +#endif + +#define T_ARRAY RUBY_T_ARRAY /**< @old{RUBY_T_ARRAY} */ +#define T_BIGNUM RUBY_T_BIGNUM /**< @old{RUBY_T_BIGNUM} */ +#define T_CLASS RUBY_T_CLASS /**< @old{RUBY_T_CLASS} */ +#define T_COMPLEX RUBY_T_COMPLEX /**< @old{RUBY_T_COMPLEX} */ +#define T_DATA RUBY_T_DATA /**< @old{RUBY_T_DATA} */ +#define T_FALSE RUBY_T_FALSE /**< @old{RUBY_T_FALSE} */ +#define T_FILE RUBY_T_FILE /**< @old{RUBY_T_FILE} */ +#define T_FIXNUM RUBY_T_FIXNUM /**< @old{RUBY_T_FIXNUM} */ +#define T_FLOAT RUBY_T_FLOAT /**< @old{RUBY_T_FLOAT} */ +#define T_HASH RUBY_T_HASH /**< @old{RUBY_T_HASH} */ +#define T_ICLASS RUBY_T_ICLASS /**< @old{RUBY_T_ICLASS} */ +#define T_IMEMO RUBY_T_IMEMO /**< @old{RUBY_T_IMEMO} */ +#define T_MASK RUBY_T_MASK /**< @old{RUBY_T_MASK} */ +#define T_MATCH RUBY_T_MATCH /**< @old{RUBY_T_MATCH} */ +#define T_MODULE RUBY_T_MODULE /**< @old{RUBY_T_MODULE} */ +#define T_MOVED RUBY_T_MOVED /**< @old{RUBY_T_MOVED} */ +#define T_NIL RUBY_T_NIL /**< @old{RUBY_T_NIL} */ +#define T_NODE RUBY_T_NODE /**< @old{RUBY_T_NODE} */ +#define T_NONE RUBY_T_NONE /**< @old{RUBY_T_NONE} */ +#define T_OBJECT RUBY_T_OBJECT /**< @old{RUBY_T_OBJECT} */ +#define T_RATIONAL RUBY_T_RATIONAL /**< @old{RUBY_T_RATIONAL} */ +#define T_REGEXP RUBY_T_REGEXP /**< @old{RUBY_T_REGEXP} */ +#define T_STRING RUBY_T_STRING /**< @old{RUBY_T_STRING} */ +#define T_STRUCT RUBY_T_STRUCT /**< @old{RUBY_T_STRUCT} */ +#define T_SYMBOL RUBY_T_SYMBOL /**< @old{RUBY_T_SYMBOL} */ +#define T_TRUE RUBY_T_TRUE /**< @old{RUBY_T_TRUE} */ +#define T_UNDEF RUBY_T_UNDEF /**< @old{RUBY_T_UNDEF} */ +#define T_ZOMBIE RUBY_T_ZOMBIE /**< @old{RUBY_T_ZOMBIE} */ + +#define BUILTIN_TYPE RB_BUILTIN_TYPE /**< @old{RB_BUILTIN_TYPE} */ +#define DYNAMIC_SYM_P RB_DYNAMIC_SYM_P /**< @old{RB_DYNAMIC_SYM_P} */ +#define RB_INTEGER_TYPE_P rb_integer_type_p /**< @old{rb_integer_type_p} */ +#define SYMBOL_P RB_SYMBOL_P /**< @old{RB_SYMBOL_P} */ +#define rb_type_p RB_TYPE_P /**< @alias{RB_TYPE_P} */ + +/** @cond INTERNAL_MACRO */ +#define RB_BUILTIN_TYPE RB_BUILTIN_TYPE +#define RB_DYNAMIC_SYM_P RB_DYNAMIC_SYM_P +#define RB_FLOAT_TYPE_P RB_FLOAT_TYPE_P +#define RB_SYMBOL_P RB_SYMBOL_P +#define RB_TYPE_P RB_TYPE_P +#define Check_Type Check_Type + +#if !RUBY_DEBUG +# define RBIMPL_ASSERT_TYPE(v, t) RBIMPL_ASSERT_OR_ASSUME(RB_TYPE_P((v), (t))) +#else +# define RBIMPL_ASSERT_TYPE Check_Type +#endif +/** @endcond */ + +/** @old{rb_type} */ +#define TYPE(_) RBIMPL_CAST((int)rb_type(_)) + +/** C-level type of an object. */ +enum +RBIMPL_ATTR_ENUM_EXTENSIBILITY(closed) +ruby_value_type { + RUBY_T_NONE = 0x00, /**< Non-object (swept etc.) */ + + RUBY_T_OBJECT = 0x01, /**< @see struct ::RObject */ + RUBY_T_CLASS = 0x02, /**< @see struct ::RClass and ::rb_cClass */ + RUBY_T_MODULE = 0x03, /**< @see struct ::RClass and ::rb_cModule */ + RUBY_T_FLOAT = 0x04, /**< @see struct ::RFloat */ + RUBY_T_STRING = 0x05, /**< @see struct ::RString */ + RUBY_T_REGEXP = 0x06, /**< @see struct ::RRegexp */ + RUBY_T_ARRAY = 0x07, /**< @see struct ::RArray */ + RUBY_T_HASH = 0x08, /**< @see struct ::RHash */ + RUBY_T_STRUCT = 0x09, /**< @see struct ::RStruct */ + RUBY_T_BIGNUM = 0x0a, /**< @see struct ::RBignum */ + RUBY_T_FILE = 0x0b, /**< @see struct ::RFile */ + RUBY_T_DATA = 0x0c, /**< @see struct ::RTypedData */ + RUBY_T_MATCH = 0x0d, /**< @see struct ::RMatch */ + RUBY_T_COMPLEX = 0x0e, /**< @see struct ::RComplex */ + RUBY_T_RATIONAL = 0x0f, /**< @see struct ::RRational */ + + RUBY_T_NIL = 0x11, /**< @see ::RUBY_Qnil */ + RUBY_T_TRUE = 0x12, /**< @see ::RUBY_Qfalse */ + RUBY_T_FALSE = 0x13, /**< @see ::RUBY_Qtrue */ + RUBY_T_SYMBOL = 0x14, /**< @see struct ::RSymbol */ + RUBY_T_FIXNUM = 0x15, /**< Integers formerly known as Fixnums. */ + RUBY_T_UNDEF = 0x16, /**< @see ::RUBY_Qundef */ + + RUBY_T_IMEMO = 0x1a, /**< @see struct ::RIMemo */ + RUBY_T_NODE = 0x1b, /**< @see struct ::RNode */ + RUBY_T_ICLASS = 0x1c, /**< Hidden classes known as IClasses. */ + RUBY_T_ZOMBIE = 0x1d, /**< @see struct ::RZombie */ + RUBY_T_MOVED = 0x1e, /**< @see struct ::RMoved */ + + RUBY_T_MASK = 0x1f /**< Bitmask of ::ruby_value_type. */ +}; + +RBIMPL_SYMBOL_EXPORT_BEGIN() +RBIMPL_ATTR_COLD() +/** + * @private + * + * This was the old implementation of Check_Type(), but they diverged. This + * one remains for theoretical backwards compatibility. People normally need + * not use it. + * + * @param[in] obj An object. + * @param[in] t A type. + * @exception rb_eTypeError `obj` is not of type `t`. + * @exception rb_eFatal `obj` is corrupt. + * @post Upon successful return `obj` is guaranteed to have type `t`. + * + * @internal + * + * The second argument shall have been enum ::ruby_value_type. But at the time + * matz designed this function he still used K&R C. There was no such thing + * like a function prototype. We can no longer change this API. + */ +void rb_check_type(VALUE obj, int t); +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries the type of the object. + * + * @param[in] obj Object in question. + * @pre `obj` must not be a special constant. + * @return The type of `obj`. + */ +static inline enum ruby_value_type +RB_BUILTIN_TYPE(VALUE obj) +{ + RBIMPL_ASSERT_OR_ASSUME(! RB_SPECIAL_CONST_P(obj)); + +#if 0 && defined __GNUC__ && !defined __clang__ + /* Don't move the access to `flags` before the preceding + * RB_SPECIAL_CONST_P check. */ + __asm volatile("": : :"memory"); +#endif + VALUE ret = RBASIC(obj)->flags & RUBY_T_MASK; + return RBIMPL_CAST((enum ruby_value_type)ret); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +/** + * Queries if the object is an instance of ::rb_cInteger. + * + * @param[in] obj Object in question. + * @retval true It is. + * @retval false It isn't. + */ +static inline bool +rb_integer_type_p(VALUE obj) +{ + if (RB_FIXNUM_P(obj)) { + return true; + } + else if (RB_SPECIAL_CONST_P(obj)) { + return false; + } + else { + return RB_BUILTIN_TYPE(obj) == RUBY_T_BIGNUM; + } +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +/** + * Identical to RB_BUILTIN_TYPE(), except it can also accept special constants. + * + * @param[in] obj Object in question. + * @return The type of `obj`. + */ +static inline enum ruby_value_type +rb_type(VALUE obj) +{ + if (! RB_SPECIAL_CONST_P(obj)) { + return RB_BUILTIN_TYPE(obj); + } + else if (obj == RUBY_Qfalse) { + return RUBY_T_FALSE; + } + else if (obj == RUBY_Qnil) { + return RUBY_T_NIL; + } + else if (obj == RUBY_Qtrue) { + return RUBY_T_TRUE; + } + else if (obj == RUBY_Qundef) { + return RUBY_T_UNDEF; + } + else if (RB_FIXNUM_P(obj)) { + return RUBY_T_FIXNUM; + } + else if (RB_STATIC_SYM_P(obj)) { + return RUBY_T_SYMBOL; + } + else { + RBIMPL_ASSUME(RB_FLONUM_P(obj)); + return RUBY_T_FLOAT; + } +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries if the object is an instance of ::rb_cFloat. + * + * @param[in] obj Object in question. + * @retval true It is. + * @retval false It isn't. + */ +static inline bool +RB_FLOAT_TYPE_P(VALUE obj) +{ + if (RB_FLONUM_P(obj)) { + return true; + } + else if (RB_SPECIAL_CONST_P(obj)) { + return false; + } + else { + return RB_BUILTIN_TYPE(obj) == RUBY_T_FLOAT; + } +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries if the object is a dynamic symbol. + * + * @param[in] obj Object in question. + * @retval true It is. + * @retval false It isn't. + */ +static inline bool +RB_DYNAMIC_SYM_P(VALUE obj) +{ + if (RB_SPECIAL_CONST_P(obj)) { + return false; + } + else { + return RB_BUILTIN_TYPE(obj) == RUBY_T_SYMBOL; + } +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries if the object is an instance of ::rb_cSymbol. + * + * @param[in] obj Object in question. + * @retval true It is. + * @retval false It isn't. + */ +static inline bool +RB_SYMBOL_P(VALUE obj) +{ + return RB_STATIC_SYM_P(obj) || RB_DYNAMIC_SYM_P(obj); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_FORCEINLINE() +/** + * @private + * + * This is an implementation detail of RB_TYPE_P(). Just don't use it. + * + * @param[in] obj An object. + * @param[in] t A type. + * @retval true `obj` is of type `t`. + * @retval false Otherwise. + */ +static bool +rbimpl_RB_TYPE_P_fastpath(VALUE obj, enum ruby_value_type t) +{ + if (t == RUBY_T_TRUE) { + return obj == RUBY_Qtrue; + } + else if (t == RUBY_T_FALSE) { + return obj == RUBY_Qfalse; + } + else if (t == RUBY_T_NIL) { + return obj == RUBY_Qnil; + } + else if (t == RUBY_T_UNDEF) { + return obj == RUBY_Qundef; + } + else if (t == RUBY_T_FIXNUM) { + return RB_FIXNUM_P(obj); + } + else if (t == RUBY_T_SYMBOL) { + return RB_SYMBOL_P(obj); + } + else if (t == RUBY_T_FLOAT) { + return RB_FLOAT_TYPE_P(obj); + } + else if (RB_SPECIAL_CONST_P(obj)) { + return false; + } + else if (t == RB_BUILTIN_TYPE(obj)) { + return true; + } + else { + return false; + } +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries if the given object is of given type. + * + * @param[in] obj An object. + * @param[in] t A type. + * @retval true `obj` is of type `t`. + * @retval false Otherwise. + * + * @internal + * + * This function is a super-duper hot path. Optimised targeting modern C + * compilers and x86_64 architecture. + */ +static inline bool +RB_TYPE_P(VALUE obj, enum ruby_value_type t) +{ + if (RBIMPL_CONSTANT_P(t)) { + return rbimpl_RB_TYPE_P_fastpath(obj, t); + } + else { + return t == rb_type(obj); + } +} + +/** @cond INTERNAL_MACRO */ +/* Clang, unlike GCC, cannot propagate __builtin_constant_p beyond function + * boundary. */ +#if defined(__clang__) +# undef RB_TYPE_P +# define RB_TYPE_P(obj, t) \ + (RBIMPL_CONSTANT_P(t) ? \ + rbimpl_RB_TYPE_P_fastpath((obj), (t)) : \ + (RB_TYPE_P)((obj), (t))) +#endif + +/* clang 3.x (4.2 compatible) can't eliminate CSE of RB_BUILTIN_TYPE + * in inline function and caller function + * See also 8998c06461ea0bef11b3aeb30b6d2ab71c8762ba + */ +#if RBIMPL_COMPILER_BEFORE(Clang, 4, 0, 0) +# undef rb_integer_type_p +# define rb_integer_type_p(obj) \ + __extension__ ({ \ + const VALUE integer_type_obj = (obj); \ + (RB_FIXNUM_P(integer_type_obj) || \ + (!RB_SPECIAL_CONST_P(integer_type_obj) && \ + RB_BUILTIN_TYPE(integer_type_obj) == RUBY_T_BIGNUM)); \ + }) +#endif +/** @endcond */ + +RBIMPL_ATTR_PURE() +RBIMPL_ATTR_ARTIFICIAL() +/** + * @private + * Defined in ruby/internal/core/rtypeddata.h + */ +static inline bool rbimpl_rtypeddata_p(VALUE obj); + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Identical to RB_TYPE_P(), except it raises exceptions on predication + * failure. + * + * @param[in] v An object. + * @param[in] t A type. + * @exception rb_eTypeError `obj` is not of type `t`. + * @exception rb_eFatal `obj` is corrupt. + * @post Upon successful return `obj` is guaranteed to have type `t`. + */ +static inline void +Check_Type(VALUE v, enum ruby_value_type t) +{ + if (RB_UNLIKELY(! RB_TYPE_P(v, t))) { + goto unexpected_type; + } + else if (t == RUBY_T_DATA && rbimpl_rtypeddata_p(v)) { + /* Typed data is not simple `T_DATA`, see `rb_check_type` */ + goto unexpected_type; + } + else { + return; + } + + unexpected_type: + rb_unexpected_type(v, t); +} + +#endif /* RBIMPL_VALUE_TYPE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/variable.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/variable.h new file mode 100644 index 0000000..c017ffe --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/variable.h @@ -0,0 +1,337 @@ +#ifndef RBIMPL_VARIABLE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_VARIABLE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Declares rb_define_variable(). + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/noreturn.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Type that represents a global variable getter function. + * + * @param[in] id The variable name. + * @param[in,out] data Where the value is stored. + * @return The value that shall be visible from Ruby. + */ +typedef VALUE rb_gvar_getter_t(ID id, VALUE *data); + +/** + * Type that represents a global variable setter function. + * + * @param[in] val The value to set. + * @param[in] id The variable name. + * @param[in,out] data Where the value is to be stored. + */ +typedef void rb_gvar_setter_t(VALUE val, ID id, VALUE *data); + +/** + * Type that represents a global variable marker function. + * + * @param[in] var Where the value is to be stored. + */ +typedef void rb_gvar_marker_t(VALUE *var); + +/** + * @deprecated + * + * This function has no actual usage (than in ruby itself). Please ignore. It + * was a bad idea to expose this function to 3rd parties, but we can no longer + * delete it. + */ +rb_gvar_getter_t rb_gvar_undef_getter; + +/** + * @deprecated + * + * This function has no actual usage (than in ruby itself). Please ignore. It + * was a bad idea to expose this function to 3rd parties, but we can no longer + * delete it. + */ +rb_gvar_setter_t rb_gvar_undef_setter; + +/** + * @deprecated + * + * This function has no actual usage (than in ruby itself). Please ignore. It + * was a bad idea to expose this function to 3rd parties, but we can no longer + * delete it. + */ +rb_gvar_marker_t rb_gvar_undef_marker; + +/** + * This is the getter function that backs global variables defined from a ruby + * script. Extension libraries can use this if its global variable needs no + * custom logic. + */ +rb_gvar_getter_t rb_gvar_val_getter; + +/** + * This is the setter function that backs global variables defined from a ruby + * script. Extension libraries can use this if its global variable needs no + * custom logic. + */ +rb_gvar_setter_t rb_gvar_val_setter; + +/** + * This is the setter function that backs global variables defined from a ruby + * script. Extension libraries can use this if its global variable needs no + * custom logic. + */ +rb_gvar_marker_t rb_gvar_val_marker; + +/** + * @deprecated + * + * This function has no actual usage (than in ruby itself). Please ignore. It + * was a bad idea to expose this function to 3rd parties, but we can no longer + * delete it. + */ +rb_gvar_getter_t rb_gvar_var_getter; + +/** + * @deprecated + * + * This function has no actual usage (than in ruby itself). Please ignore. It + * was a bad idea to expose this function to 3rd parties, but we can no longer + * delete it. + */ +rb_gvar_setter_t rb_gvar_var_setter; + +/** + * @deprecated + * + * This function has no actual usage (than in ruby itself). Please ignore. It + * was a bad idea to expose this function to 3rd parties, but we can no longer + * delete it. + */ +rb_gvar_marker_t rb_gvar_var_marker; + +RBIMPL_ATTR_NORETURN() +/** + * This function just raises ::rb_eNameError. Handy when you want to prohibit + * a global variable from being squashed by someone. + */ +rb_gvar_setter_t rb_gvar_readonly_setter; + +RBIMPL_ATTR_NONNULL(()) +/** + * "Shares" a global variable between Ruby and C. Normally a Ruby-level global + * variable is stored somewhere deep inside of the interpreter's execution + * context, but this way you can explicitly specify its storage. + * + * ```CXX + * static VALUE foo; + * + * extern "C" void + * init_Foo(void) + * { + * foo = rb_eval_string("..."); + * rb_define_variable("$foo", &foo); + * } + * ``` + * + * In the above example a Ruby global variable named `$foo` is stored in a C + * global variable named `foo`. + * + * @param[in] name Variable (Ruby side). + * @param[in] var Variable (C side). + * @post Ruby level global variable named `name` is defined if absent, + * and its storage is set to `var`. + */ +void rb_define_variable(const char *name, VALUE *var); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Defines a global variable that is purely function-backended. By using this + * API a programmer can define a global variable that dynamically changes from + * time to time. + * + * @param[in] name Variable name, in C's string. + * @param[in] getter A getter function. + * @param[in] setter A setter function. + * @post Ruby level global variable named `name` is defined if absent. + * + * @internal + * + * @shyouhei doesn't know if this is an Easter egg or an official feature, but + * you can pass 0 to the third argument (setter). That effectively nullifies + * any efforts to write to the defining global variable. + */ +void rb_define_virtual_variable(const char *name, rb_gvar_getter_t *getter, rb_gvar_setter_t *setter); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Identical to rb_define_virtual_variable(), but can also specify a storage. + * A programmer can use the storage for e.g. memoisation, storing intermediate + * computation result, etc. + * + * Also you can pass 0 to this function, unlike other variants: + * + * - When getter is 0 ::rb_gvar_var_getter is used instead. + * - When setter is 0 ::rb_gvar_var_setter is used instead. + * - When data is 0, you must specify a non-zero setter function. Otherwise + * ::rb_gvar_var_setter tries to write to `*NULL`, and just causes SEGV. + * + * @param[in] name Variable name, in C's string. + * @param[in] var Variable storage. + * @param[in] getter A getter function. + * @param[in] setter A setter function. + * @post Ruby level global variable named `name` is defined if absent. + */ +void rb_define_hooked_variable(const char *name, VALUE *var, rb_gvar_getter_t *getter, rb_gvar_setter_t *setter); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_define_variable(), except it does not allow Ruby programs to + * assign values to such global variable. C codes can still set values at + * will. This could be handy for you when implementing an `errno`-like + * experience, where a method updates a read-only global variable as a side- + * effect. + * + * @param[in] name Variable (Ruby side). + * @param[in] var Variable (C side). + * @post Ruby level global variable named `name` is defined if absent, + * and its storage is set to `var`. + */ +void rb_define_readonly_variable(const char *name, const VALUE *var); + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines a Ruby level constant under a namespace. + * + * @param[out] klass Namespace for the constant to reside. + * @param[in] name Name of the constant. + * @param[in] val Value of the constant. + * @exception rb_eTypeError `klass` is not a kind of ::rb_cModule. + * @exception rb_eFrozenError `klass` is frozen. + * @post Ruby level constant `klass::name` is defined to be `val`. + * @note This API does not stop you from defining a constant that is + * unable to reach from ruby (like for instance passing + * non-capital letter to `name`). + * @note This API does not stop you from overwriting a constant that + * already exist. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +void rb_define_const(VALUE klass, const char *name, VALUE val); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_define_const(), except it defines that of "global", + * i.e. toplevel constant. + * + * @param[in] name Name of the constant. + * @param[in] val Value of the constant. + * @exception rb_eFrozenError ::rb_cObject is frozen. + * @post Ruby level constant \::name is defined to be `val`. + * @note This API does not stop you from defining a constant that is + * unable to reach from ruby (like for instance passing + * non-capital letter to `name`). + * @note This API does not stop you from overwriting a constant that + * already exist. + */ +void rb_define_global_const(const char *name, VALUE val); + +RBIMPL_ATTR_NONNULL(()) +/** + * Asserts that the given constant is deprecated. Attempt to refer such + * constant will produce a warning. + * + * @param[in] mod Namespace of the target constant. + * @param[in] name Name of the constant. + * @exception rb_eNameError No such constant. + * @exception rb_eFrozenError `mod` is frozen. + * @post `name` under `mod` is deprecated. + */ +void rb_deprecate_constant(VALUE mod, const char *name); + +RBIMPL_ATTR_NONNULL(()) +/** + * Assigns to a global variable. + * + * @param[in] name Target global variable. + * @param[in] val Value to assign. + * @return Passed value. + * @post Ruby level global variable named `name` is defined if absent, + * whose value is set to `val`. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with + * `set_trace_func`. + */ +VALUE rb_gv_set(const char *name, VALUE val); + +RBIMPL_ATTR_NONNULL(()) +/** + * Obtains a global variable. + * + * @param[in] name Global variable to query. + * @retval RUBY_Qnil The global variable does not exist. + * @retval otherwise The value assigned to the global variable. + * + * @internal + * + * Unlike rb_gv_set(), there is no way to trace this function. + */ +VALUE rb_gv_get(const char *name); + +RBIMPL_ATTR_NONNULL(()) +/** + * Obtains an instance variable. + * + * @param[in] obj Target object. + * @param[in] name Target instance variable to query. + * @exception rb_eEncodingError `name` is corrupt (contains Hanzi etc.). + * @retval RUBY_nil No such instance variable. + * @retval otherwise The value assigned to the instance variable. + */ +VALUE rb_iv_get(VALUE obj, const char *name); + +RBIMPL_ATTR_NONNULL(()) +/** + * Assigns to an instance variable. + * + * @param[out] obj Target object. + * @param[in] name Target instance variable. + * @param[in] val Value to assign. + * @exception rb_eFrozenError Can't modify `obj`. + * @exception rb_eArgError `obj` has too many instance variables. + * @return Passed value. + * @post An instance variable named `name` is defined if absent on + * `obj`, whose value is set to `val`. + * + * @internal + * + * This function does not stop you form creating an ASCII-incompatible instance + * variable, but there is no way to get one because rb_iv_get raises exceptions + * for such things. This design seems broken... But no idea why. + */ +VALUE rb_iv_set(VALUE obj, const char *name, VALUE val); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_VARIABLE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/warning_push.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/warning_push.h new file mode 100644 index 0000000..f598163 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/warning_push.h @@ -0,0 +1,124 @@ +#ifndef RBIMPL_WARNING_PUSH_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_WARNING_PUSH_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_WARNING_PUSH. + * + * ### Q&A ### + * + * Q: Why all the macros defined in this file are function-like macros? + * + * A: Sigh. This is because of Doxygen. Its `SKIP_FUNCTION_MACROS = YES` + * configuration setting requests us that if we want it to ignore these + * macros, then we have to do two things: (1) let them be defined as + * function-like macros, and (2) place them separately in their own line, + * like below: + * + * ```CXX + * // NG -- foo's type considered something like `unsigned int`. + * RBIMPL_WARNING_PUSH + * int foo(void); + * RBIMPL_WARNING_POP + * + * // OK -- the macros are ignored by Doxygen. + * RBIMPL_WARNING_PUSH() + * int foo(void); + * RBIMPL_WARNING_POP() + * ``` + */ +#include "ruby/internal/compiler_is.h" +#include "ruby/internal/compiler_since.h" + +#if defined(__DOXYGEN__) + +/** + * @private + * + * Pushes compiler warning state. + */ +#define RBIMPL_WARNING_PUSH() __pragma(warning(push)) + +/** + * @private + * + * Pops compiler warning state. + */ +#define RBIMPL_WARNING_POP() __pragma(warning(pop)) + +/** + * @private + * + * Turns a warning into a fatal error. + * + * @param flag A flag that represents the kind of warnings. + */ +#define RBIMPL_WARNING_ERROR(flag) __pragma(warning(error: flag)) + +/** + * @private + * + * Suppresses a warning. + * + * @param flag A flag that represents the kind of warnings. + */ +#define RBIMPL_WARNING_IGNORED(flag) __pragma(warning(disable: flag)) + +#elif RBIMPL_COMPILER_SINCE(MSVC, 12, 0, 0) +# /* Not sure exactly when but it seems VC++ 6.0 is a version with it.*/ +# define RBIMPL_WARNING_PUSH() __pragma(warning(push)) +# define RBIMPL_WARNING_POP() __pragma(warning(pop)) +# define RBIMPL_WARNING_ERROR(flag) __pragma(warning(error: flag)) +# define RBIMPL_WARNING_IGNORED(flag) __pragma(warning(disable: flag)) + +#elif RBIMPL_COMPILER_SINCE(Intel, 13, 0, 0) +# define RBIMPL_WARNING_PUSH() __pragma(warning(push)) +# define RBIMPL_WARNING_POP() __pragma(warning(pop)) +# define RBIMPL_WARNING_ERROR(flag) __pragma(warning(error: flag)) +# define RBIMPL_WARNING_IGNORED(flag) __pragma(warning(disable: flag)) + +#elif RBIMPL_COMPILER_IS(Clang) || RBIMPL_COMPILER_IS(Apple) +# /* Not sure exactly when but it seems LLVM 2.6.0 is a version with it. */ +# define RBIMPL_WARNING_PRAGMA0(x) _Pragma(# x) +# define RBIMPL_WARNING_PRAGMA1(x) RBIMPL_WARNING_PRAGMA0(clang diagnostic x) +# define RBIMPL_WARNING_PRAGMA2(x, y) RBIMPL_WARNING_PRAGMA1(x # y) +# define RBIMPL_WARNING_PUSH() RBIMPL_WARNING_PRAGMA1(push) +# define RBIMPL_WARNING_POP() RBIMPL_WARNING_PRAGMA1(pop) +# define RBIMPL_WARNING_ERROR(flag) RBIMPL_WARNING_PRAGMA2(error, flag) +# define RBIMPL_WARNING_IGNORED(flag) RBIMPL_WARNING_PRAGMA2(ignored, flag) + +#elif RBIMPL_COMPILER_SINCE(GCC, 4, 6, 0) +# /* https://gcc.gnu.org/onlinedocs/gcc-4.6.0/gcc/Diagnostic-Pragmas.html */ +# define RBIMPL_WARNING_PRAGMA0(x) _Pragma(# x) +# define RBIMPL_WARNING_PRAGMA1(x) RBIMPL_WARNING_PRAGMA0(GCC diagnostic x) +# define RBIMPL_WARNING_PRAGMA2(x, y) RBIMPL_WARNING_PRAGMA1(x # y) +# define RBIMPL_WARNING_PUSH() RBIMPL_WARNING_PRAGMA1(push) +# define RBIMPL_WARNING_POP() RBIMPL_WARNING_PRAGMA1(pop) +# define RBIMPL_WARNING_ERROR(flag) RBIMPL_WARNING_PRAGMA2(error, flag) +# define RBIMPL_WARNING_IGNORED(flag) RBIMPL_WARNING_PRAGMA2(ignored, flag) + +#else +# /* :FIXME: improve here */ +# define RBIMPL_WARNING_PUSH() /* void */ +# define RBIMPL_WARNING_POP() /* void */ +# define RBIMPL_WARNING_ERROR(flag) /* void */ +# define RBIMPL_WARNING_IGNORED(flag) /* void */ +#endif /* _MSC_VER */ +/** @endcond */ + +#endif /* RBIMPL_WARNING_PUSH_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/internal/xmalloc.h b/ThirdParty/include/ruby/3.2/mac/ruby/internal/xmalloc.h new file mode 100644 index 0000000..57552e4 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/internal/xmalloc.h @@ -0,0 +1,392 @@ +#ifndef RBIMPL_XMALLOC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_XMALLOC_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Declares ::ruby_xmalloc(). + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#ifdef HAVE_STDLIB_H +# include +#endif + +#include "ruby/internal/attr/alloc_size.h" +#include "ruby/internal/attr/nodiscard.h" +#include "ruby/internal/attr/noexcept.h" +#include "ruby/internal/attr/restrict.h" +#include "ruby/internal/attr/returns_nonnull.h" +#include "ruby/internal/dllexport.h" + +/** + * @private + * @warning Do not touch this macro. + * @warning It is an implementation detail. + * @warning It was a failure at the first place to let you know about it. + * @warning The value of this macro must match for ruby itself and all + * extension libraries, otherwise serious memory corruption shall + * occur. + */ +#ifndef USE_GC_MALLOC_OBJ_INFO_DETAILS +# define USE_GC_MALLOC_OBJ_INFO_DETAILS 0 +#endif + +#define xmalloc ruby_xmalloc /**< @old{ruby_xmalloc} */ +#define xmalloc2 ruby_xmalloc2 /**< @old{ruby_xmalloc2} */ +#define xcalloc ruby_xcalloc /**< @old{ruby_xcalloc} */ +#define xrealloc ruby_xrealloc /**< @old{ruby_xrealloc} */ +#define xrealloc2 ruby_xrealloc2 /**< @old{ruby_xrealloc2} */ +#define xfree ruby_xfree /**< @old{ruby_xfree} */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((1)) +/** + * Allocates a storage instance. It is largely the same as system malloc(), + * except: + * + * - It raises Ruby exceptions instead of returning NULL, and + * - In case of `ENOMEM` it tries to GC to make some room. + * + * @param[in] size Requested amount of memory. + * @exception rb_eNoMemError No space left for `size` bytes allocation. + * @return A valid pointer to an allocated storage instance; which has at + * least `size` bytes width, with appropriate alignment detected by + * the underlying malloc() routine. + * @note It doesn't return NULL. + * @note Unlike some malloc() implementations, it allocates something and + * returns a meaningful value even when `size` is equal to zero. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +void *ruby_xmalloc(size_t size) +RBIMPL_ATTR_NOEXCEPT(malloc(size)) +; + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((1,2)) +/** + * Identical to ruby_xmalloc(), except it allocates `nelems` * `elemsiz` bytes. + * This is needed because the multiplication could integer overflow. On such + * situations Ruby does not try to allocate at all but raises Ruby level + * exceptions instead. If there is no integer overflow the behaviour is + * exactly the same as `ruby_xmalloc(nelems*elemsiz)`. + * + * @param[in] nelems Number of elements. + * @param[in] elemsiz Size of an element. + * @exception rb_eNoMemError No space left for allocation. + * @exception rb_eArgError `nelems` * `elemsiz` would overflow. + * @return A valid pointer to an allocated storage instance; which has at + * least `nelems` * `elemsiz` bytes width, with appropriate + * alignment detected by the underlying malloc() routine. + * @note It doesn't return NULL. + * @note Unlike some malloc() implementations, it allocates something and + * returns a meaningful value even when `nelems` or `elemsiz` or + * both are zero. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +void *ruby_xmalloc2(size_t nelems, size_t elemsiz) +RBIMPL_ATTR_NOEXCEPT(malloc(nelems * elemsiz)) +; + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((1,2)) +/** + * Identical to ruby_xmalloc2(), except it returns a zero-filled storage + * instance. It can also be seen as a routine identical to ruby_xmalloc(), + * except it calls calloc() instead of malloc(). + * + * @param[in] nelems Number of elements. + * @param[in] elemsiz Size of an element. + * @exception rb_eNoMemError No space left for allocation. + * @exception rb_eArgError `nelems` * `elemsiz` would overflow. + * @return A valid pointer to an allocated storage instance; which has at + * least `nelems` * `elemsiz` bytes width, with appropriate + * alignment detected by the underlying calloc() routine. + * @post The returned storage instance is filled with zeros. + * @note It doesn't return NULL. + * @note Unlike some calloc() implementations, it allocates something and + * returns a meaningful value even when `nelems` or `elemsiz` or + * both are zero. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +void *ruby_xcalloc(size_t nelems, size_t elemsiz) +RBIMPL_ATTR_NOEXCEPT(calloc(nelems, elemsiz)) +; + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((2)) +/** + * Resize the storage instance. + * + * @param[in] ptr A valid pointer to a storage instance that was + * previously returned from either: + * - ruby_xmalloc(), + * - ruby_xmalloc2(), + * - ruby_xcalloc(), + * - ruby_xrealloc(), or + * - ruby_xrealloc2(). + * @param[in] newsiz Requested new amount of memory. + * @exception rb_eNoMemError No space left for `newsiz` bytes allocation. + * @return A valid pointer to a (possibly newly allocated) storage + * instance; which has at least `newsiz` bytes width, with + * appropriate alignment detected by the underlying realloc() + * routine. + * @pre The passed pointer must point to a valid live storage instance. + * It is a failure to pass an already freed pointer. + * @post In case the function returns the passed pointer as-is, the + * storage instance that the pointer holds is either grown or + * shrunken to have at least `newsiz` bytes. Otherwise a valid + * pointer to a newly allocated storage instance is returned. In + * this case `ptr` is invalidated as if it was passed to + * ruby_xfree(). + * @note It doesn't return NULL. + * @warning Unlike some realloc() implementations, passing zero to `newsiz` + * is not the same as calling ruby_xfree(), because this function + * never returns NULL. Something meaningful still returns then. + * @warning It is a failure not to check the return value. Do not assume + * anything on it. It could be either identical to, or distinct + * form the passed argument. + * @warning Do not assume anything on the alignment of the return value. + * There is no guarantee that it inherits the passed argument's + * one. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +void *ruby_xrealloc(void *ptr, size_t newsiz) +RBIMPL_ATTR_NOEXCEPT(realloc(ptr, newsiz)) +; + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((2,3)) +/** + * Identical to ruby_xrealloc(), except it resizes the given storage instance + * to `newelems` * `newsiz` bytes. This is needed because the multiplication + * could integer overflow. On such situations Ruby does not try to touch the + * contents of argument pointer at all but raises Ruby level exceptions + * instead. If there is no integer overflow the behaviour is exactly the same + * as `ruby_xrealloc(ptr,nelems*elemsiz)`. + * + * This is roughly the same as reallocarray() function that OpenBSD + * etc. provides, but also interacts with our GC. + * + * @param[in] ptr A valid pointer to a storage instance that was + * previously returned from either: + * - ruby_xmalloc(), + * - ruby_xmalloc2(), + * - ruby_xcalloc(), + * - ruby_xrealloc(), or + * - ruby_xrealloc2(). + * @param[in] newelems Requested new number of elements. + * @param[in] newsiz Requested new size of each element. + * @exception rb_eNoMemError No space left for allocation. + * @exception rb_eArgError `newelems` * `newsiz` would overflow. + * @return A valid pointer to a (possibly newly allocated) storage + * instance; which has at least `newelems` * `newsiz` bytes width, + * with appropriate alignment detected by the underlying realloc() + * routine. + * @pre The passed pointer must point to a valid live storage instance. + * It is a failure to pass an already freed pointer. + * @post In case the function returns the passed pointer as-is, the + * storage instance that the pointer holds is either grown or + * shrunken to have at least `newelems` * `newsiz` bytes. + * Otherwise a valid pointer to a newly allocated storage instance + * is returned. In this case `ptr` is invalidated as if it was + * passed to ruby_xfree(). + * @note It doesn't return NULL. + * @warning Unlike some realloc() implementations, passing zero to either + * `newelems` or `elemsiz` are not the same as calling + * ruby_xfree(), because this function never returns NULL. + * Something meaningful still returns then. + * @warning It is a failure not to check the return value. Do not assume + * anything on it. It could be either identical to, or distinct + * form the passed argument. + * @warning Do not assume anything on the alignment of the return value. + * There is no guarantee that it inherits the passed argument's + * one. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +void *ruby_xrealloc2(void *ptr, size_t newelems, size_t newsiz) +RBIMPL_ATTR_NOEXCEPT(realloc(ptr, newelems * newsiz)) +; + +/** + * Deallocates a storage instance. + * + * @param[out] ptr Either + * - NULL, or + * - a valid pointer previously returned from one of: + * - ruby_xmalloc(), + * - ruby_xmalloc2(), + * - ruby_xcalloc(), + * - ruby_xrealloc(), or + * - ruby_xrealloc2(). + * @pre The passed pointer must point to a valid live storage instance. + * It is a failure to pass an already freed pointer. + * @post The storage instance pointed by the passed pointer gets + * invalidated; it is no longer addressable. + * @warning Every single storage instance that was previously allocated by + * either ruby_xmalloc(), ruby_xmalloc2(), ruby_xcalloc(), + * ruby_xrealloc(), or ruby_xrealloc2() shall be invalidated + * exactly once by either passing it to ruby_xfree(), or passing + * it to either ruby_xrealloc(), ruby_xrealloc2() then check the + * return value for invalidation. + * @warning Do not pass anything other than pointers described above. For + * instance pointers returned from malloc() or mmap() shall not be + * passed to this function, because the underlying memory + * management mechanism could differ. + * @warning Do not pass any invalid pointers to this function e.g. by + * calling it twice with a same argument. + */ +void ruby_xfree(void *ptr) +RBIMPL_ATTR_NOEXCEPT(free(ptr)) +; + +#if USE_GC_MALLOC_OBJ_INFO_DETAILS +# define ruby_xmalloc(s1) ruby_xmalloc_with_location(s1, __FILE__, __LINE__) +# define ruby_xmalloc2(s1, s2) ruby_xmalloc2_with_location(s1, s2, __FILE__, __LINE__) +# define ruby_xcalloc(s1, s2) ruby_xcalloc_with_location(s1, s2, __FILE__, __LINE__) +# define ruby_xrealloc(ptr, s1) ruby_xrealloc_with_location(ptr, s1, __FILE__, __LINE__) +# define ruby_xrealloc2(ptr, s1, s2) ruby_xrealloc2_with_location(ptr, s1, s2, __FILE__, __LINE__) + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((1)) +void *ruby_xmalloc_body(size_t size) +RBIMPL_ATTR_NOEXCEPT(malloc(size)) +; + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((1,2)) +void *ruby_xmalloc2_body(size_t nelems, size_t elemsiz) +RBIMPL_ATTR_NOEXCEPT(malloc(nelems * elemsiz)) +; + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((1,2)) +void *ruby_xcalloc_body(size_t nelems, size_t elemsiz) +RBIMPL_ATTR_NOEXCEPT(calloc(nelems, elemsiz)) +; + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((2)) +void *ruby_xrealloc_body(void *ptr, size_t newsiz) +RBIMPL_ATTR_NOEXCEPT(realloc(ptr, newsiz)) +; + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((2,3)) +void *ruby_xrealloc2_body(void *ptr, size_t newelems, size_t newsiz) +RBIMPL_ATTR_NOEXCEPT(realloc(ptr, newelems * newsiz)) +; + +RUBY_EXTERN const char *ruby_malloc_info_file; +RUBY_EXTERN int ruby_malloc_info_line; + +static inline void * +ruby_xmalloc_with_location(size_t s, const char *file, int line) +{ + void *ptr; + ruby_malloc_info_file = file; + ruby_malloc_info_line = line; + ptr = ruby_xmalloc_body(s); + ruby_malloc_info_file = NULL; + return ptr; +} + +static inline void * +ruby_xmalloc2_with_location(size_t s1, size_t s2, const char *file, int line) +{ + void *ptr; + ruby_malloc_info_file = file; + ruby_malloc_info_line = line; + ptr = ruby_xmalloc2_body(s1, s2); + ruby_malloc_info_file = NULL; + return ptr; +} + +static inline void * +ruby_xcalloc_with_location(size_t s1, size_t s2, const char *file, int line) +{ + void *ptr; + ruby_malloc_info_file = file; + ruby_malloc_info_line = line; + ptr = ruby_xcalloc_body(s1, s2); + ruby_malloc_info_file = NULL; + return ptr; +} + +static inline void * +ruby_xrealloc_with_location(void *ptr, size_t s, const char *file, int line) +{ + void *rptr; + ruby_malloc_info_file = file; + ruby_malloc_info_line = line; + rptr = ruby_xrealloc_body(ptr, s); + ruby_malloc_info_file = NULL; + return rptr; +} + +static inline void * +ruby_xrealloc2_with_location(void *ptr, size_t s1, size_t s2, const char *file, int line) +{ + void *rptr; + ruby_malloc_info_file = file; + ruby_malloc_info_line = line; + rptr = ruby_xrealloc2_body(ptr, s1, s2); + ruby_malloc_info_file = NULL; + return rptr; +} +#endif + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_XMALLOC_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/io.h b/ThirdParty/include/ruby/3.2/mac/ruby/io.h new file mode 100644 index 0000000..88029b1 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/io.h @@ -0,0 +1,1022 @@ +#ifndef RUBY_IO_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_IO_H 1 +/** + * @file + * @author $Author$ + * @date Fri Nov 12 16:47:09 JST 1993 + * @copyright Copyright (C) 1993-2007 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ +#include "ruby/internal/config.h" + +#include +#include "ruby/encoding.h" + +#if defined(HAVE_STDIO_EXT_H) +#include +#endif + +#include + +/** @cond INTERNAL_MACRO */ +#if defined(HAVE_POLL) +# ifdef _AIX +# define reqevents events +# define rtnevents revents +# endif +# include +# ifdef _AIX +# undef reqevents +# undef rtnevents +# undef events +# undef revents +# endif +# define RB_WAITFD_IN POLLIN +# if defined(POLLPRI) +# define RB_WAITFD_PRI POLLPRI +# else +# define RB_WAITFD_PRI 0 +# endif +# define RB_WAITFD_OUT POLLOUT +#else +# define RB_WAITFD_IN 0x001 +# define RB_WAITFD_PRI 0x002 +# define RB_WAITFD_OUT 0x004 +#endif +/** @endcond */ + +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/backward/2/attributes.h" /* PACKED_STRUCT_UNALIGNED */ + +// IO#wait, IO#wait_readable, IO#wait_writable, IO#wait_priority are defined by this implementation. +#define RUBY_IO_WAIT_METHODS + +// Used as the default timeout argument to `rb_io_wait` to use the `IO#timeout` value. +#define RUBY_IO_TIMEOUT_DEFAULT Qnil + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +struct stat; +struct timeval; + +/** + * Indicates that a timeout has occurred while performing an IO operation. + */ +RUBY_EXTERN VALUE rb_eIOTimeoutError; + +/** + * Type of events that an IO can wait. + * + * @internal + * + * This is visible from extension libraries because `io/wait` wants it. + */ +typedef enum { + RUBY_IO_READABLE = RB_WAITFD_IN, /**< `IO::READABLE` */ + RUBY_IO_WRITABLE = RB_WAITFD_OUT, /**< `IO::WRITABLE` */ + RUBY_IO_PRIORITY = RB_WAITFD_PRI, /**< `IO::PRIORITY` */ +} rb_io_event_t; + +/** + * IO buffers. This is an implementation detail of ::rb_io_t::wbuf and + * ::rb_io_t::rbuf. People don't manipulate it directly. + */ +PACKED_STRUCT_UNALIGNED(struct rb_io_buffer_t { + + /** Pointer to the underlying memory region, of at least `capa` bytes. */ + char *ptr; /* off + len <= capa */ + + /** Offset inside of `ptr`. */ + int off; + + /** Length of the buffer. */ + int len; + + /** Designed capacity of the buffer. */ + int capa; +}); + +/** @alias{rb_io_buffer_t} */ +typedef struct rb_io_buffer_t rb_io_buffer_t; + +/** Decomposed encoding flags (e.g. `"enc:enc2""`). */ +/* + * enc enc2 read action write action + * NULL NULL force_encoding(default_external) write the byte sequence of str + * e1 NULL force_encoding(e1) convert str.encoding to e1 + * e1 e2 convert from e2 to e1 convert str.encoding to e2 + */ +struct rb_io_enc_t { + /** Internal encoding. */ + rb_encoding *enc; + /** External encoding. */ + rb_encoding *enc2; + /** + * Flags. + * + * @see enum ::ruby_econv_flag_type + */ + int ecflags; + /** + * Flags as Ruby hash. + * + * @internal + * + * This is set. But used from nowhere maybe? + */ + VALUE ecopts; +}; + +/** Ruby's IO, metadata and buffers. */ +typedef struct rb_io_t { + + /** The IO's Ruby level counterpart. */ + VALUE self; + + /** stdio ptr for read/write, if available. */ + FILE *stdio_file; + + /** file descriptor. */ + int fd; + + /** mode flags: FMODE_XXXs */ + int mode; + + /** child's pid (for pipes) */ + rb_pid_t pid; + + /** number of lines read */ + int lineno; + + /** pathname for file */ + VALUE pathv; + + /** finalize proc */ + void (*finalize)(struct rb_io_t*,int); + + /** Write buffer. */ + rb_io_buffer_t wbuf; + + /** + * (Byte) read buffer. Note also that there is a field called + * ::rb_io_t::cbuf, which also concerns read IO. + */ + rb_io_buffer_t rbuf; + + /** + * Duplex IO object, if set. + * + * @see rb_io_set_write_io() + */ + VALUE tied_io_for_writing; + + struct rb_io_enc_t encs; /**< Decomposed encoding flags. */ + + /** Encoding converter used when reading from this IO. */ + rb_econv_t *readconv; + + /** + * rb_io_ungetc() destination. This buffer is read before checking + * ::rb_io_t::rbuf + */ + rb_io_buffer_t cbuf; + + /** Encoding converter used when writing to this IO. */ + rb_econv_t *writeconv; + + /** + * This is, when set, an instance of ::rb_cString which holds the "common" + * encoding. Write conversion can convert strings twice... In case + * conversion from encoding X to encoding Y does not exist, Ruby finds an + * encoding Z that bridges the two, so that X to Z to Y conversion happens. + */ + VALUE writeconv_asciicompat; + + /** Whether ::rb_io_t::writeconv is already set up. */ + int writeconv_initialized; + + /** + * Value of ::rb_io_t::rb_io_enc_t::ecflags stored right before + * initialising ::rb_io_t::writeconv. + */ + int writeconv_pre_ecflags; + + /** + * Value of ::rb_io_t::rb_io_enc_t::ecopts stored right before initialising + * ::rb_io_t::writeconv. + */ + VALUE writeconv_pre_ecopts; + + /** + * This is a Ruby level mutex. It avoids multiple threads to write to an + * IO at once; helps for instance rb_io_puts() to ensure newlines right + * next to its arguments. + * + * This of course doesn't help inter-process IO interleaves, though. + */ + VALUE write_lock; + + /** + * The timeout associated with this IO when performing blocking operations. + */ + VALUE timeout; +} rb_io_t; + +/** @alias{rb_io_enc_t} */ +typedef struct rb_io_enc_t rb_io_enc_t; + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define HAVE_RB_IO_T 1 + +/** + * @name Possible flags for ::rb_io_t::mode + * + * @{ + */ + +/** The IO is opened for reading. */ +#define FMODE_READABLE 0x00000001 + +/** The IO is opened for writing. */ +#define FMODE_WRITABLE 0x00000002 + +/** The IO is opened for both read/write. */ +#define FMODE_READWRITE (FMODE_READABLE|FMODE_WRITABLE) + +/** + * The IO is in "binary mode". This is not what everything rb_io_binmode() + * concerns. This low-level flag is to stop CR <-> CRLF conversions that would + * happen in the underlying operating system. + * + * Setting this one and #FMODE_TEXTMODE at the same time is a contradiction. + * Setting this one and #ECONV_NEWLINE_DECORATOR_MASK at the same time is also + * a contradiction. + */ +#define FMODE_BINMODE 0x00000004 + +/** + * The IO is in "sync mode". All output is immediately flushed to the + * underlying operating system then. Can be set via rb_io_synchronized(), but + * there is no way except calling `IO#sync=` to reset. + */ +#define FMODE_SYNC 0x00000008 + +/** + * The IO is a TTY. What is a TTY and what isn't depends on the underlying + * operating system's `isatty(3)` output. You cannot change this. + */ +#define FMODE_TTY 0x00000010 + +/** + * Ruby eventually detects that the IO is bidirectional. For instance a TTY + * has such property. There are several other things known to be duplexed. + * Additionally you (extension library authors) can also implement your own + * bidirectional IO subclasses. One of such example is `Socket`. + */ +#define FMODE_DUPLEX 0x00000020 + +/** + * The IO is opened for appending. This mode always writes at the end of the + * IO. Ruby manages this flag for record but basically the logic behind this + * mode is at the underlying operating system. We almost do nothing. + */ +#define FMODE_APPEND 0x00000040 + +/** + * The IO is opened for creating. This makes sense only when the destination + * file does not exist at the time the IO object was created. This is the + * default mode for writing, but you can pass `"r+"` to `IO.open` etc., to + * reroute this creation. + */ +#define FMODE_CREATE 0x00000080 +/* #define FMODE_NOREVLOOKUP 0x00000100 */ + +/** + * This flag amends the effect of #FMODE_CREATE, so that if there already is a + * file at the given path the operation fails. Using this you can be sure that + * the file you get is a fresh new one. + */ +#define FMODE_EXCL 0x00000400 + +/** + * This flag amends the effect of #FMODE_CREATE, so that if there already is a + * file at the given path it gets truncated. + */ +#define FMODE_TRUNC 0x00000800 + +/** + * The IO is in "text mode". On systems where such mode make sense, this flag + * changes the way the IO handles the contents. On POSIX systems it is + * basically a no-op, but with this flag set you can optionally let Ruby + * manually convert newlines, unlike when in binary mode: + * + * ```ruby + * IO.open("/p/a/t/h", "wt", crlf_newline: true) # "wb" is NG. + * ``` + * + * Setting this one and #FMODE_BINMODE at the same time is a contradiction. + */ +#define FMODE_TEXTMODE 0x00001000 +/* #define FMODE_PREP 0x00010000 */ +/* #define FMODE_SIGNAL_ON_EPIPE 0x00020000 */ + +/** + * This flag amends the encoding of the IO so that the BOM of the contents of + * the IO takes effect. + */ +#define FMODE_SETENC_BY_BOM 0x00100000 +/* #define FMODE_UNIX 0x00200000 */ +/* #define FMODE_INET 0x00400000 */ +/* #define FMODE_INET6 0x00800000 */ + +/** @} */ + +/** + * Queries the underlying IO pointer. + * + * @param[in] obj An IO object. + * @param[out] fp A variable of type ::rb_io_t. + * @exception rb_eFrozenError `obj` is frozen. + * @exception rb_eIOError `obj` is closed. + * @post `fp` holds `obj`'s underlying IO. + */ +#define RB_IO_POINTER(obj,fp) rb_io_check_closed((fp) = RFILE(rb_io_taint_check(obj))->fptr) + +/** + * This is an old name of #RB_IO_POINTER. Not sure if we want to deprecate + * this macro. There still are tons of usages out there in the wild. + */ +#define GetOpenFile RB_IO_POINTER + +/** + * Fills an IO object. This makes the best sense when called from inside of an + * `#initialize` method of a 3rd party extension library that inherits + * ::rb_cIO. + * + * If the passed IO is already opened for something it first closes that and + * opens a new one instead. + * + * @param[out] obj An IO object to fill in. + * @param[out] fp A variable of type ::rb_io_t. + * @exception rb_eTypeError `obj` is not ::RUBY_T_FILE. + * @post `fp` holds `obj`'s underlying IO. + */ +#define RB_IO_OPEN(obj, fp) do {\ + (fp) = rb_io_make_open_file(obj);\ +} while (0) + +/** + * This is an old name of #RB_IO_OPEN. Not sure if we want to deprecate this + * macro. There still are usages out there in the wild. + */ +#define MakeOpenFile RB_IO_OPEN + +/** + * @private + * + * This is an implementation detail of #RB_IO_OPEN. People don't use it + * directly. + * + * @param[out] obj An IO object to fill in. + * @exception rb_eTypeError `obj` is not ::RUBY_T_FILE. + * @return `obj`'s backend IO. + * @post `obj` is initialised. + */ +rb_io_t *rb_io_make_open_file(VALUE obj); + +/** + * Finds or creates a stdio's file structure from a Ruby's one. This can be + * handy if you want to call an external API that accepts `FILE *`. + * + * @note Note however, that `FILE`s can have their own buffer. Mixing Ruby's + * and stdio's file are basically dangerous. Use with care. + * + * @param[in,out] fptr Target IO. + * @return A stdio's file, created if absent. + * @post `fptr` has its corresponding stdio's file. + * + * @internal + * + * We had rich support for `FILE` before! In the days of 1.8.x ::rb_io_t was + * like this: + * + * ```CXX + * typedef struct rb_io_t { + * FILE *f; // stdio ptr for read/write + * FILE *f2; // additional ptr for rw pipes + * int mode; // mode flags + * int pid; // child's pid (for pipes) + * int lineno; // number of lines read + * char *path; // pathname for file + * void (*finalize) _((struct rb_io_t*,int)); // finalize proc + * } rb_io_t; + *``` + * + * But we eventually abandoned this layout. It was too difficult. We could + * not have fine-grained control over the `f` field. + * + * - `FILE` tends to be an opaque struct. It does not interface well with + * `select(2)` etc. This makes IO multiplexing quite hard. Using stdio, + * there is arguably no portable way to know if `fwrite(3)` blocks. + * + * - Nonblocking mode, which is another core concept that enables IO + * multiplexing, does not interface with stdio routines at all. + * + * - Detection of duplexed IO is also hard for the same reason. + * + * - `feof(3)` is not portable. + * https://mail.python.org/pipermail/python-dev/2001-January/011390.html + * + * - Solaris was a thing back then. They could not have more than 256 `FILE` + * structures at a time. Their file descriptors ware stored in an + * `unsigned char`. + * + * - It is next to impossible to avoid SEGV, especially when a thread tries to + * `ungetc(3)`-ing from a `FILE` which is `fread(3)`-ed by another one. + * + * In short, it is a bad idea to let someone else manage IO buffers, especially + * someone you cannot control. This still applies to extension libraries + * methinks. Ruby doesn't prevent you from shooting yourself in the foot, but + * consider yourself warned here. + */ +FILE *rb_io_stdio_file(rb_io_t *fptr); + +/** + * Identical to rb_io_stdio_file(), except it takes file descriptors instead of + * Ruby's IO. It can also be seen as a compatibility layer to wrap + * `fdopen(3)`. Nowadays all supporting systems, including Windows, have + * `fdopen`. Why not use them. + * + * @param[in] fd A file descriptor. + * @param[in] modestr C string, something like `"r+"`. + * @exception rb_eSystemCallError `fdopen` failed for some reason. + * @return A stdio's file associated with `fd`. + * @note Interpretation of `modestr` depends on the underlying operating + * system. On glibc you might be able to pass e.g. `"rm"`, but + * that's an extension to POSIX. + */ +FILE *rb_fdopen(int fd, const char *modestr); + +/** + * Maps a file mode string (that rb_file_open() takes) into a mixture of + * `FMODE_` flags. This for instance returns + * `FMODE_WRITABLE | FMODE_TRUNC | FMODE_CREATE | FMODE_EXCL` for `"wx"`. + * + * @note You cannot pass this return value to OS provided `open(2)` etc. + * + * @param[in] modestr File mode, in C's string. + * @exception rb_eArgError `modestr` is broken. + * @return A set of flags. + * + * @internal + * + * rb_io_modestr_fmode() is not a pure function because it raises. + */ +int rb_io_modestr_fmode(const char *modestr); + +/** + * Identical to rb_io_modestr_fmode(), except it returns a mixture of `O_` + * flags. This for instance returns `O_WRONLY | O_TRUNC | O_CREAT | O_EXCL` for + * `"wx"`. + * + * @param[in] modestr File mode, in C's string. + * @exception rb_eArgError `modestr` is broken. + * @return A set of flags. + * + * @internal + * + * rb_io_modestr_oflags() is not a pure function because it raises. + */ +int rb_io_modestr_oflags(const char *modestr); + +RBIMPL_ATTR_CONST() +/** + * Converts an oflags (that rb_io_modestr_oflags() returns) to a fmode (that + * rb_io_mode_flags() returns). This is a purely functional operation. + * + * @param[in] oflags A set of `O_` flags. + * @return Corresponding set of `FMODE_` flags. + */ +int rb_io_oflags_fmode(int oflags); + +/** + * Asserts that an IO is opened for writing. + * + * @param[in] fptr An IO you want to write to. + * @exception rb_eIOError `fptr` is not for writing. + * @post Upon successful return `fptr` is ready for writing. + * + * @internal + * + * The parameter must have been `const rb_io_t *`. + */ +void rb_io_check_writable(rb_io_t *fptr); + +/** @alias{rb_io_check_byte_readable} */ +void rb_io_check_readable(rb_io_t *fptr); + +/** + * Asserts that an IO is opened for character-based reading. A character can + * be wider than a byte. Because of this we have to buffer reads from + * descriptors. This fiction checks if that is possible. + * + * @param[in] fptr An IO you want to read characters from. + * @exception rb_eIOError `fptr` is not for reading. + * @post Upon successful return `fptr` is ready for reading characters. + * + * @internal + * + * Unlike rb_io_check_writable() the parameter cannot be `const rb_io_t *`. + * Behind the scene this operation flushes its write buffers. This is because + * of OpenSSL. They mandate this way. + * + * @see "Can I use OpenSSL's SSL library with non-blocking I/O?" + * https://www.openssl.org/docs/faq.html + */ +void rb_io_check_char_readable(rb_io_t *fptr); + +/** + * Asserts that an IO is opened for byte-based reading. Byte-based and + * character-based reading operations cannot be mixed at a time. + * + * @param[in] fptr An IO you want to read characters from. + * @exception rb_eIOError `fptr` is not for reading. + * @post Upon successful return `fptr` is ready for reading bytes. + */ +void rb_io_check_byte_readable(rb_io_t *fptr); + +/** + * Destroys the given IO. Any pending operations are flushed. + * + * @note It makes no sense to call this function from anywhere outside of your + * class' ::rb_data_type_struct::dfree. + * + * @param[out] fptr IO to close. + * @post `fptr` is no longer a valid pointer. + */ +int rb_io_fptr_finalize(rb_io_t *fptr); + +/** + * Sets #FMODE_SYNC. + * + * @note There is no way for C extensions to undo this operation. + * + * @param[out] fptr IO to set the flag. + * @exception rb_eIOError `fptr` is not opened. + * @post `fptr` is in sync mode. + */ +void rb_io_synchronized(rb_io_t *fptr); + +/** + * Asserts that the passed IO is initialised. + * + * @param[in] fptr IO that you expect be initialised. + * @exception rb_eIOError `fptr` is not initialised. + * @post `fptr` is initialised. + */ +void rb_io_check_initialized(rb_io_t *fptr); + +/** + * This badly named function asserts that the passed IO is _open_. + * + * @param[in] fptr An IO + * @exception rb_eIOError `fptr` is closed. + * @post `fptr` is open. + */ +void rb_io_check_closed(rb_io_t *fptr); + +/** + * Identical to rb_io_check_io(), except it raises exceptions on conversion + * failures. + * + * @param[in] io Target object. + * @exception rb_eTypeError No implicit conversion to IO. + * @return Return value of `obj.to_io`. + * @see rb_str_to_str + * @see rb_ary_to_ary + */ +VALUE rb_io_get_io(VALUE io); + +/** + * Try converting an object to its IO representation using its `to_io` method, + * if any. If there is no such thing, returns ::RUBY_Qnil. + * + * @param[in] io Arbitrary ruby object to convert. + * @exception rb_eTypeError `obj.to_io` returned something non-IO. + * @retval RUBY_Qnil No conversion from `obj` to IO defined. + * @retval otherwise Converted IO representation of `obj`. + * @see rb_check_array_type + * @see rb_check_string_type + * @see rb_check_hash_type + */ +VALUE rb_io_check_io(VALUE io); + +/** + * Queries the tied IO for writing. An IO can be duplexed. Fine. The thing + * is, that characteristics could sometimes be achieved by the underlying + * operating system (for instance a socket's duplexity is by nature) but + * sometimes by us. Notable example is a bidirectional pipe. Suppose you + * have: + * + * ```ruby + * fp = IO.popen("-", "r+") + * ``` + * + * This pipe is duplexed (the `"r+"`). You can both read from/write to it. + * However your operating system may or may not implement bidirectional pipes. + * FreeBSD is one of such operating systems known to have one; OTOH Linux is + * known to lack such things. So to achieve maximum portability, Ruby's + * bidirectional pipes are done purely in user land. A pipe in ruby can have + * multiple file descriptors; one for reading and the other for writing. This + * API is to obtain the IO port which corresponds to the passed one, for + * writing. + * + * @param[in] io An IO. + * @return Its tied IO for writing, if any, or `io` itself otherwise. + */ +VALUE rb_io_get_write_io(VALUE io); + +/** + * Assigns the tied IO for writing. See rb_io_get_write_io() for what a "tied + * IO for writing" is. + * + * @param[out] io An IO. + * @param[in] w Another IO. + * @retval RUBY_Qnil There was no tied IO for writing for `io`. + * @retval otherwise The IO formerly tied to `io`. + * @post `io` ties `w` for writing. + * + * @internal + * + * @shyouhei doesn't think there is any needs of this function for 3rd party + * extension libraries. + */ +VALUE rb_io_set_write_io(VALUE io, VALUE w); + +/** + * Instructs the OS to put its internal file structure into "nonblocking mode". + * This is an in-Kernel concept. Reading from/writing to that file using C + * function calls would return -1 with errno set. However when it comes to a + * ruby program, we hide that error behind our `IO#read` method. Ruby level + * `IO#read` blocks regardless of this flag. If you want to avoid blocking, + * you should consider using methods like `IO#readpartial`. + * + * ```ruby + * require 'io/nonblock' + * STDIN.nonblock = true + * STDIN.gets # blocks. + * ``` + * + * As of writing there is a room of this API in Fiber schedulers. A Fiber + * scheduler could be written in a way its behaviour depends on this property. + * You need an in-depth understanding of how schedulers work to properly + * leverage this, though. + * + * @note Note however that nonblocking-ness propagates across process + * boundaries. You must really carefully watch your step when turning + * for instance `stderr` into nonblock mode (it tends to be shared + * across many processes). Also it is a complete disaster to mix a + * nonblocking file and stdio, and `stderr` tends to be under control of + * stdio in other processes. + * + * @param[out] fptr An IO that is to ne nonblocking. + * @post Descriptor that `fptr` describes is under nonblocking mode. + * + * @internal + * + * There is `O_NONBLOCK` but not `FMODE_NONBLOCK`. You cannot atomically + * create a nonblocking file descriptor using our API. + */ +void rb_io_set_nonblock(rb_io_t *fptr); + +/** + * Returns an integer representing the numeric file descriptor for + * io. + * + * @param[in] io An IO. + * @retval int A file descriptor. + */ +int rb_io_descriptor(VALUE io); + +/** + * This function breaks down the option hash that `IO#initialize` takes into + * components. This is an implementation detail of rb_io_extract_modeenc() + * today. People prefer that API instead. + * + * @param[in] opt The hash to decompose. + * @param[out] enc_p Return value buffer. + * @param[out] enc2_p Return value buffer. + * @param[out] fmode_p Return value buffer. + * @exception rb_eTypeError `opt` is broken. + * @exception rb_eArgError Specified encoding does not exist. + * @retval 1 Components got extracted. + * @retval 0 Otherwise. + * @post `enc_p` is the specified internal encoding. + * @post `enc2_p` is the specified external encoding. + * @post `fmode_p` is the specified set of `FMODE_` modes. + */ +int rb_io_extract_encoding_option(VALUE opt, rb_encoding **enc_p, rb_encoding **enc2_p, int *fmode_p); + +/** + * This function can be seen as an extended version of + * rb_io_extract_encoding_option() that not only concerns the option hash but + * also mode string and so on. This should be mixed with rb_scan_args() like: + * + * ```CXX + * // This method mimics File.new + * static VALUE + * your_method(int argc, const VALUE *argv, VALUE self) + * { + * VALUE f; // file name + * VALUE m; // open mode + * VALUE p; // permission (O_CREAT) + * VALUE k; // keywords + * rb_io_enc_t c; // converter + * int oflags; + * int fmode; + * + * int n = rb_scan_args(argc, argv, "12:", &f, &m, &p, &k); + * rb_io_extract_modeenc(&m, &p, k, &oflags, &fmode, &c); + * + * // Every local variables declared so far has been properly filled here. + * ... + * } + * ``` + * + * @param[in,out] vmode_p Pointer to a mode object. + * @param[in,out] vperm_p Pointer to a permission object. + * @param[in] opthash Keyword arguments + * @param[out] oflags_p `O_` flags return buffer. + * @param[out] fmode_p `FMODE_` flags return buffer. + * @param[out] convconfig_p Encoding config return buffer. + * @exception rb_eTypeError Unexpected object (e.g. Time) passed. + * @exception rb_eArgError Contradiction inside of params. + * @post `*vmode_p` is a mode object (filled if any). + * @post `*vperm_p` is a permission object (filled if any). + * @post `*oflags_p` is filled with `O_` flags. + * @post `*fmode_p` is filled with `FMODE_` flags. + * @post `*convconfig_p` is filled with conversion instructions. + * + * @internal + * + * ```rbs + * class File + * def initialize: ( + * (String | int) path, + * ?(String | int) fmode, + * ?(String | int) perm, + * ?mode: (String | int), + * ?flags: int, + * ?external_encoding: (Encoding | String), + * ?internal_encoding: (Encoding | String), + * ?encoding: String, + * ?textmode: bool, + * ?binmode: bool, + * ?autoclose: bool, + * ?invalid: :replace, + * ?undef: :replace, + * ?replace: String, + * ?fallback: (Hash | Proc | Method), + * ?xml: (:text | :attr), + * ?crlf_newline: bool, + * ?cr_newline: bool, + * ?universal_newline: bool + * ) -> void + * ``` + */ +void rb_io_extract_modeenc(VALUE *vmode_p, VALUE *vperm_p, VALUE opthash, int *oflags_p, int *fmode_p, rb_io_enc_t *convconfig_p); + +/* :TODO: can this function be __attribute__((warn_unused_result)) or not? */ +/** + * Buffered write to the passed IO. + * + * @param[out] io Destination IO. + * @param[in] buf Contents to go to `io`. + * @param[in] size Number of bytes of `buf`. + * @exception rb_eFrozenError `io` is frozen. + * @exception rb_eIOError `io` is not open for writing. + * @exception rb_eSystemCallError `writev(2)` failed for some reason. + * @retval -1 Write failed. + * @retval otherwise Number of bytes actually written. + * @post `buf` is written to `io`. + * @note Partial write is a thing. It is a failure not to check the + * return value. + */ +ssize_t rb_io_bufwrite(VALUE io, const void *buf, size_t size); + +//RBIMPL_ATTR_DEPRECATED(("use rb_io_maybe_wait_readable")) +/** + * Blocks until the passed file descriptor gets readable. + * + * @deprecated We now prefer rb_io_maybe_wait_readable() over this one. + * @param[in] fd The file descriptor to wait. + * @exception rb_eIOError Bad file descriptor. + * @return 0 or 1 (meaning unclear). + * @post `fd` is ready for reading. + */ +int rb_io_wait_readable(int fd); + +//RBIMPL_ATTR_DEPRECATED(("use rb_io_maybe_wait_writable")) +/** + * Blocks until the passed file descriptor gets writable. + * + * @deprecated We now prefer rb_io_maybe_wait_writable() over this one. + * @param[in] fd The file descriptor to wait. + * @exception rb_eIOError Bad file descriptor. + * @return 0 or 1 (meaning unclear). + */ +int rb_io_wait_writable(int fd); + +//RBIMPL_ATTR_DEPRECATED(("use rb_io_wait")) +/** + * Blocks until the passed file descriptor is ready for the passed events. + * + * @deprecated We now prefer rb_io_maybe_wait() over this one. + * @param[in] fd The file descriptor to wait. + * @param[in] events A set of enum ::rb_io_event_t. + * @param[in,out] tv Timeout. + * @retval 0 Operation timed out. + * @retval -1 `select(2)` failed for some reason. + * @retval otherwise A set of enum ::rb_io_event_t. + * @note Depending on your operating system `tv` might or might not + * be updated (POSIX permits both). Portable programs must + * have no assumptions. + */ +int rb_wait_for_single_fd(int fd, int events, struct timeval *tv); + +/** + * Get the timeout associated with the specified io object. + * + * @param[in] io An IO object. + * @retval RUBY_Qnil There is no associated timeout. + * @retval Otherwise The timeout value. + */ +VALUE rb_io_timeout(VALUE io); + +/** + * Set the timeout associated with the specified io object. This timeout is + * used as a best effort timeout to prevent operations from blocking forever. + * + * @param[in] io An IO object. + * @param[in] timeout A timeout value. Must respond to #to_f. + * @ + */ +VALUE rb_io_set_timeout(VALUE io, VALUE timeout); + +/** + * Blocks until the passed IO is ready for the passed events. The "events" + * here is a Ruby level integer, which is an OR-ed value of `IO::READABLE`, + * `IO::WRITable`, and `IO::PRIORITY`. + * + * If timeout is `Qnil`, it will use the default timeout as given by + * `rb_io_timeout(io)`. + * + * @param[in] io An IO object to wait. + * @param[in] events See above. + * @param[in] timeout Time, or numeric seconds since UNIX epoch. + * If Qnil, use the default timeout. If Qfalse + * or Qundef, wait forever. + * @exception rb_eIOError `io` is not open. + * @exception rb_eRangeError `timeout` is out of range. + * @exception rb_eSystemCallError `select(2)` failed for some reason. + * @retval RUBY_Qfalse Operation timed out. + * @retval Otherwise Actual events reached. + */ +VALUE rb_io_wait(VALUE io, VALUE events, VALUE timeout); + +/** + * Identical to rb_io_wait() except it additionally takes previous errno. If + * the passed errno indicates for instance `EINTR`, this function returns + * immediately. This is expected to be called in a loop. + * + * ```CXX + * while (true) { + * + * ... // Your interesting operation here + * // `errno` could be updated + * + * rb_io_maybe_wait(errno, io, ev, Qnil); + * } + * ``` + * + * @param[in] error System errno. + * @param[in] io An IO object to wait. + * @param[in] events An integer set of interests. + * @param[in] timeout Time, or numeric seconds since UNIX epoch. + * @exception rb_eIOError `io` is not open. + * @exception rb_eRangeError `timeout` is out of range. + * @exception rb_eSystemCallError `select(2)` failed for some reason. + * @retval RUBY_Qfalse Operation timed out. + * @retval Otherwise Actual events reached. + * + * @internal + * + * This function to return ::RUBY_Qfalse on timeout could be unintended. It + * seems timeout feature has some rough edge. + */ +VALUE rb_io_maybe_wait(int error, VALUE io, VALUE events, VALUE timeout); + +/** + * Blocks until the passed IO is ready for reading, if that makes sense for the + * passed errno. This is a special case of rb_io_maybe_wait() that only + * concerns for reading. + * + * @param[in] error System errno. + * @param[in] io An IO object to wait. + * @param[in] timeout Time, or numeric seconds since UNIX epoch. + * @exception rb_eIOError `io` is not open. + * @exception rb_eRangeError `timeout` is out of range. + * @exception rb_eSystemCallError `select(2)` failed for some reason. + * @retval 0 Operation timed out. + * @retval Otherwise Always returns ::RUBY_IO_READABLE. + */ +int rb_io_maybe_wait_readable(int error, VALUE io, VALUE timeout); + +/** + * Blocks until the passed IO is ready for writing, if that makes sense for the + * passed errno. This is a special case of rb_io_maybe_wait() that only + * concernsfor writing. + * + * @param[in] error System errno. + * @param[in] io An IO object to wait. + * @param[in] timeout Time, or numeric seconds since UNIX epoch. + * @exception rb_eIOError `io` is not open. + * @exception rb_eRangeError `timeout` is out of range. + * @exception rb_eSystemCallError `select(2)` failed for some reason. + * @retval 0 Operation timed out. + * @retval Otherwise Always returns ::RUBY_IO_WRITABLE. + */ +int rb_io_maybe_wait_writable(int error, VALUE io, VALUE timeout); + +/** @cond INTERNAL_MACRO */ +/* compatibility for ruby 1.8 and older */ +#define rb_io_mode_flags(modestr) [<"rb_io_mode_flags() is obsolete; use rb_io_modestr_fmode()">] +#define rb_io_modenum_flags(oflags) [<"rb_io_modenum_flags() is obsolete; use rb_io_oflags_fmode()">] +/** @endcond */ + +/** + * @deprecated This function once was a thing in the old days, but makes no + * sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + * + * @param[in] obj Object in question. + * @exception rb_eFrozenError obj is frozen. + * @return The passed `obj` + */ +VALUE rb_io_taint_check(VALUE obj); + +RBIMPL_ATTR_NORETURN() +/** + * Utility function to raise ::rb_eEOFError. + * + * @exception rb_eEOFError End of file situation. + * @note It never returns. + */ +void rb_eof_error(void); + +/** + * Blocks until there is a pending read in the passed IO. If there already is + * it just returns. + * + * @param[out] fptr An IO to wait for reading. + * @post The are bytes to be read. + */ +void rb_io_read_check(rb_io_t *fptr); + +RBIMPL_ATTR_PURE() +/** + * Queries if the passed IO has any pending reads. Unlike rb_io_read_check() + * this doesn't block; has no side effects. + * + * @param[in] fptr An IO which can have pending reads. + * @retval 0 The IO is empty. + * @retval 1 There is something buffered. + */ +int rb_io_read_pending(rb_io_t *fptr); + +/** + * Constructs an instance of ::rb_cStat from the passed information. + * + * @param[in] st A stat. + * @return Allocated new instance of ::rb_cStat. + */ +VALUE rb_stat_new(const struct stat *st); + +/* gc.c */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_IO_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/io/buffer.h b/ThirdParty/include/ruby/3.2/mac/ruby/io/buffer.h new file mode 100644 index 0000000..88e5598 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/io/buffer.h @@ -0,0 +1,96 @@ +#ifndef RUBY_IO_BUFFER_H +#define RUBY_IO_BUFFER_H +/** + * @file + * @author Samuel Williams + * @date Fri 2 Jul 2021 16:29:01 NZST + * @copyright Copyright (C) 2021 Samuel Williams + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ + +#pragma once + +#include "ruby/ruby.h" +#include "ruby/internal/config.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +// WARNING: This entire interface is experimental and may change in the future! +#define RB_IO_BUFFER_EXPERIMENTAL 1 + +#define RUBY_IO_BUFFER_VERSION 2 + +RUBY_EXTERN VALUE rb_cIOBuffer; +RUBY_EXTERN size_t RUBY_IO_BUFFER_PAGE_SIZE; +RUBY_EXTERN size_t RUBY_IO_BUFFER_DEFAULT_SIZE; + +enum rb_io_buffer_flags { + // The memory in the buffer is owned by someone else. + // More specifically, it means that someone else owns the buffer and we shouldn't try to resize it. + RB_IO_BUFFER_EXTERNAL = 1, + // The memory in the buffer is allocated internally. + RB_IO_BUFFER_INTERNAL = 2, + // The memory in the buffer is mapped. + // A non-private mapping is marked as external. + RB_IO_BUFFER_MAPPED = 4, + + // A mapped buffer that is also shared. + RB_IO_BUFFER_SHARED = 8, + + // The buffer is locked and cannot be resized. + // More specifically, it means we can't change the base address or size. + // A buffer is typically locked before a system call that uses the data. + RB_IO_BUFFER_LOCKED = 32, + + // The buffer mapping is private and will not impact other processes or the underlying file. + RB_IO_BUFFER_PRIVATE = 64, + + // The buffer is read-only and cannot be modified. + RB_IO_BUFFER_READONLY = 128 +}; + +enum rb_io_buffer_endian { + RB_IO_BUFFER_LITTLE_ENDIAN = 4, + RB_IO_BUFFER_BIG_ENDIAN = 8, + +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ + RB_IO_BUFFER_HOST_ENDIAN = RB_IO_BUFFER_LITTLE_ENDIAN, +#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + RB_IO_BUFFER_HOST_ENDIAN = RB_IO_BUFFER_BIG_ENDIAN, +#elif REG_DWORD == REG_DWORD_LITTLE_ENDIAN + RB_IO_BUFFER_HOST_ENDIAN = RB_IO_BUFFER_LITTLE_ENDIAN, +#elif REG_DWORD == REG_DWORD_BIG_ENDIAN + RB_IO_BUFFER_HOST_ENDIAN = RB_IO_BUFFER_BIG_ENDIAN, +#endif + + RB_IO_BUFFER_NETWORK_ENDIAN = RB_IO_BUFFER_BIG_ENDIAN +}; + +VALUE rb_io_buffer_new(void *base, size_t size, enum rb_io_buffer_flags flags); +VALUE rb_io_buffer_map(VALUE io, size_t size, rb_off_t offset, enum rb_io_buffer_flags flags); + +VALUE rb_io_buffer_lock(VALUE self); +VALUE rb_io_buffer_unlock(VALUE self); +int rb_io_buffer_try_unlock(VALUE self); +VALUE rb_io_buffer_free(VALUE self); + +int rb_io_buffer_get_bytes(VALUE self, void **base, size_t *size); +void rb_io_buffer_get_bytes_for_reading(VALUE self, const void **base, size_t *size); +void rb_io_buffer_get_bytes_for_writing(VALUE self, void **base, size_t *size); + +VALUE rb_io_buffer_transfer(VALUE self); +void rb_io_buffer_resize(VALUE self, size_t size); +void rb_io_buffer_clear(VALUE self, uint8_t value, size_t offset, size_t length); + +// The length is the minimum required length. +VALUE rb_io_buffer_read(VALUE self, VALUE io, size_t length, size_t offset); +VALUE rb_io_buffer_pread(VALUE self, VALUE io, rb_off_t from, size_t length, size_t offset); +VALUE rb_io_buffer_write(VALUE self, VALUE io, size_t length, size_t offset); +VALUE rb_io_buffer_pwrite(VALUE self, VALUE io, rb_off_t from, size_t length, size_t offset); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_IO_BUFFER_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/memory_view.h b/ThirdParty/include/ruby/3.2/mac/ruby/memory_view.h new file mode 100644 index 0000000..1ddca2d --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/memory_view.h @@ -0,0 +1,325 @@ +#ifndef RUBY_MEMORY_VIEW_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_MEMORY_VIEW_H 1 +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @brief Memory View. + */ + +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include /* size_t */ +#endif + +#ifdef HAVE_SYS_TYPES_H +# include /* ssize_t */ +#endif + +#include "ruby/internal/attr/pure.h" /* RBIMPL_ATTR_PURE */ +#include "ruby/internal/core/rtypeddata.h" /* rb_data_type_t */ +#include "ruby/internal/dllexport.h" /* RUBY_EXTERN */ +#include "ruby/internal/stdbool.h" /* bool */ +#include "ruby/internal/value.h" /* VALUE */ + +/** + * Flags passed to rb_memory_view_get(), then to ::rb_memory_view_get_func_t. + */ +enum ruby_memory_view_flags { + RUBY_MEMORY_VIEW_SIMPLE = 0, + RUBY_MEMORY_VIEW_WRITABLE = (1<<0), + RUBY_MEMORY_VIEW_FORMAT = (1<<1), + RUBY_MEMORY_VIEW_MULTI_DIMENSIONAL = (1<<2), + RUBY_MEMORY_VIEW_STRIDES = (1<<3) | RUBY_MEMORY_VIEW_MULTI_DIMENSIONAL, + RUBY_MEMORY_VIEW_ROW_MAJOR = (1<<4) | RUBY_MEMORY_VIEW_STRIDES, + RUBY_MEMORY_VIEW_COLUMN_MAJOR = (1<<5) | RUBY_MEMORY_VIEW_STRIDES, + RUBY_MEMORY_VIEW_ANY_CONTIGUOUS = RUBY_MEMORY_VIEW_ROW_MAJOR | RUBY_MEMORY_VIEW_COLUMN_MAJOR, + RUBY_MEMORY_VIEW_INDIRECT = (1<<6) | RUBY_MEMORY_VIEW_STRIDES, +}; + +/** Memory view component metadata. */ +typedef struct { + /** @see ::rb_memory_view_t::format */ + char format; + + /** :FIXME: what is a "native" size is unclear. */ + unsigned native_size_p: 1; + + /** Endian of the component */ + unsigned little_endian_p: 1; + + /** The component's offset. */ + size_t offset; + + /** The component's size. */ + size_t size; + + /** + * How many numbers of components are there. For instance "CCC"'s repeat is + * 3. + */ + size_t repeat; +} rb_memory_view_item_component_t; + +/** + * A MemoryView structure, `rb_memory_view_t`, is used for exporting objects' + * MemoryView. + * + * This structure contains the reference of the object, which is the owner of + * the MemoryView, the pointer to the head of exported memory, and the metadata + * that describes the structure of the memory. The metadata can describe + * multidimensional arrays with strides. + */ +typedef struct { + /** + * The original object that has the memory exported via this memory view. + */ + VALUE obj; + + /** The pointer to the exported memory. */ + void *data; + + /** The number of bytes in data. */ + ssize_t byte_size; + + /** true for readonly memory, false for writable memory. */ + bool readonly; + + /** + * A string to describe the format of an element, or NULL for unsigned bytes. + * The format string is a sequence of the following pack-template specifiers: + * + * c, C, s, s!, S, S!, n, v, i, i!, I, I!, l, l!, L, L!, + * N, V, f, e, g, q, q!, Q, Q!, d, E, G, j, J, x + * + * For example, "dd" for an element that consists of two double values, + * and "CCC" for an element that consists of three bytes, such as + * an RGB color triplet. + * + * Also, the value endianness can be explicitly specified by '<' or '>' + * following a value type specifier. + * + * The items are packed contiguously. When you emulate the alignment of + * structure members, put '|' at the beginning of the format string, + * like "|iqc". On x86_64 Linux ABI, the size of the item by this format + * is 24 bytes instead of 13 bytes. + */ + const char *format; + + /** + * The number of bytes in each element. + * item_size should equal to rb_memory_view_item_size_from_format(format). */ + ssize_t item_size; + + /** Description of each components. */ + struct { + /** + * The array of rb_memory_view_item_component_t that describes the + * item structure. rb_memory_view_prepare_item_desc and + * rb_memory_view_get_item allocate this memory if needed, + * and rb_memory_view_release frees it. */ + const rb_memory_view_item_component_t *components; + + /** The number of components in an item. */ + size_t length; + } item_desc; + + /** The number of dimension. */ + ssize_t ndim; + + /** + * ndim size array indicating the number of elements in each dimension. + * This can be NULL when ndim == 1. */ + const ssize_t *shape; + + /** + * ndim size array indicating the number of bytes to skip to go to the + * next element in each dimension. */ + const ssize_t *strides; + + /** + * The offset in each dimension when this memory view exposes a nested array. + * Or, NULL when this memory view exposes a flat array. */ + const ssize_t *sub_offsets; + + /** The private data for managing this exported memory */ + void *private_data; + + /** DO NOT TOUCH THIS: The memory view entry for the internal use */ + const struct rb_memory_view_entry *_memory_view_entry; +} rb_memory_view_t; + +/** Type of function of ::rb_memory_view_entry_t::get_func. */ +typedef bool (* rb_memory_view_get_func_t)(VALUE obj, rb_memory_view_t *view, int flags); + +/** Type of function of ::rb_memory_view_entry_t::release_func. */ +typedef bool (* rb_memory_view_release_func_t)(VALUE obj, rb_memory_view_t *view); + +/** Type of function of ::rb_memory_view_entry_t::available_p_func. */ +typedef bool (* rb_memory_view_available_p_func_t)(VALUE obj); + +/** Operations applied to a specific kind of a memory view. */ +typedef struct rb_memory_view_entry { + /** + * Exports a memory view from a Ruby object. + */ + rb_memory_view_get_func_t get_func; + + /** + * Releases a memory view that was previously generated using + * ::rb_memory_view_entry_t::get_func. + */ + rb_memory_view_release_func_t release_func; + + /** + * Queries if an object understands memory view protocol. + */ + rb_memory_view_available_p_func_t available_p_func; +} rb_memory_view_entry_t; + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* memory_view.c */ + +/** + * Associates the passed class with the passed memory view entry. This has to + * be called before actually creating a memory view from an instance. + */ +bool rb_memory_view_register(VALUE klass, const rb_memory_view_entry_t *entry); + +RBIMPL_ATTR_PURE() +/** + * Return `true` if the data in the MemoryView `view` is row-major contiguous. + * + * Return `false` otherwise. + */ +bool rb_memory_view_is_row_major_contiguous(const rb_memory_view_t *view); + +RBIMPL_ATTR_PURE() +/** + * Return `true` if the data in the MemoryView `view` is column-major + * contiguous. + * + * Return `false` otherwise. + */ +bool rb_memory_view_is_column_major_contiguous(const rb_memory_view_t *view); + +RBIMPL_ATTR_NOALIAS() +/** + * Fill the `strides` array with byte-Strides of a contiguous array of the + * given shape with the given element size. + */ +void rb_memory_view_fill_contiguous_strides(const ssize_t ndim, const ssize_t item_size, const ssize_t *const shape, const bool row_major_p, ssize_t *const strides); + +RBIMPL_ATTR_NOALIAS() +/** + * Fill the members of `view` as an 1-dimensional byte array. + */ +bool rb_memory_view_init_as_byte_array(rb_memory_view_t *view, VALUE obj, void *data, const ssize_t len, const bool readonly); + +/** + * Deconstructs the passed format string, as describe in + * ::rb_memory_view_t::format. + */ +ssize_t rb_memory_view_parse_item_format(const char *format, + rb_memory_view_item_component_t **members, + size_t *n_members, const char **err); + +/** + * Calculate the number of bytes occupied by an element. + * + * When the calculation fails, the failed location in `format` is stored into + * `err`, and returns `-1`. + */ +ssize_t rb_memory_view_item_size_from_format(const char *format, const char **err); + +/** + * Calculate the location of the item indicated by the given `indices`. + * + * The length of `indices` must equal to `view->ndim`. + * + * This function initializes `view->item_desc` if needed. + */ +void *rb_memory_view_get_item_pointer(rb_memory_view_t *view, const ssize_t *indices); + +/** + * Return a value that consists of item members. + * + * When an item is a single member, the return value is a single value. + * + * When an item consists of multiple members, an array will be returned. + */ +VALUE rb_memory_view_extract_item_members(const void *ptr, const rb_memory_view_item_component_t *members, const size_t n_members); + +/** Fill the `item_desc` member of `view`. */ +void rb_memory_view_prepare_item_desc(rb_memory_view_t *view); + +/** * Return a value that consists of item members in the given memory view. */ +VALUE rb_memory_view_get_item(rb_memory_view_t *view, const ssize_t *indices); + +/** + * Return `true` if `obj` supports to export a MemoryView. Return `false` + * otherwise. + * + * If this function returns `true`, it doesn't mean the function + * `rb_memory_view_get` will succeed. + */ +bool rb_memory_view_available_p(VALUE obj); + +/** + * If the given `obj` supports to export a MemoryView that conforms the given + * `flags`, this function fills `view` by the information of the MemoryView and + * returns `true`. In this case, the reference count of `obj` is increased. + * + * If the given combination of `obj` and `flags` cannot export a MemoryView, + * this function returns `false`. The content of `view` is not touched in this + * case. + * + * The exported MemoryView must be released by `rb_memory_view_release` when + * the MemoryView is no longer needed. + */ +bool rb_memory_view_get(VALUE obj, rb_memory_view_t* memory_view, int flags); + +/** + * Release the given MemoryView `view` and decrement the reference count of + * `memory_view->obj`. + * + * Consumers must call this function when the MemoryView is no longer needed. + * Missing to call this function leads memory leak. + */ +bool rb_memory_view_release(rb_memory_view_t* memory_view); + +/* for testing */ +/** @cond INTERNAL_MACRO */ +RUBY_EXTERN VALUE rb_memory_view_exported_object_registry; +RUBY_EXTERN const rb_data_type_t rb_memory_view_exported_object_registry_data_type; +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_PURE() +/** + * Return `true` if the data in the MemoryView `view` is row-major or + * column-major contiguous. + * + * Return `false` otherwise. + */ +static inline bool +rb_memory_view_is_contiguous(const rb_memory_view_t *view) +{ + if (rb_memory_view_is_row_major_contiguous(view)) { + return true; + } + else if (rb_memory_view_is_column_major_contiguous(view)) { + return true; + } + else { + return false; + } +} + +#endif /* RUBY_BUFFER_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/missing.h b/ThirdParty/include/ruby/3.2/mac/ruby/missing.h new file mode 100644 index 0000000..aea6c90 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/missing.h @@ -0,0 +1,342 @@ +#ifndef RUBY_MISSING_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_MISSING_H 1 +/** + * @author $Author$ + * @date Sat May 11 23:46:03 JST 2002 + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @brief Prototype for *.c in ./missing, and for missing timeval struct. + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#if defined(__cplusplus) +# include +#else +# include /* for INFINITY and NAN */ +#endif + +#ifdef RUBY_ALTERNATIVE_MALLOC_HEADER +# include RUBY_ALTERNATIVE_MALLOC_HEADER +#endif + +#if defined(HAVE_TIME_H) +# include +#endif + +#if defined(HAVE_SYS_TIME_H) +# include +#endif + +#ifdef HAVE_SYS_STAT_H +# include +#endif + +#ifdef HAVE_UNISTD_H +# include +#endif + +#ifdef HAVE_STDIO_H +# include +#endif + +#ifdef HAVE_IEEEFP_H +# include +#endif + +#include "ruby/internal/dllexport.h" +#include "ruby/internal/attr/format.h" + +#ifndef M_PI +# define M_PI 3.14159265358979323846 +#endif +#ifndef M_PI_2 +# define M_PI_2 (M_PI/2) +#endif + +#if !defined(HAVE_STRUCT_TIMEVAL) +struct timeval { + time_t tv_sec; /* seconds */ + long tv_usec; /* microseconds */ +}; +#endif /* HAVE_STRUCT_TIMEVAL */ + +#if !defined(HAVE_STRUCT_TIMESPEC) +/* :BEWARE: @shyouhei warns that IT IS A WRONG IDEA to define our own version + * of struct timespec here. `clock_gettime` is a system call, and your kernel + * could expect something other than just `long` (results stack smashing if + * that happens). See also https://ewontfix.com/19/ */ +struct timespec { + time_t tv_sec; /* seconds */ + long tv_nsec; /* nanoseconds */ +}; +#endif + +#if !defined(HAVE_STRUCT_TIMEZONE) +struct timezone { + int tz_minuteswest; + int tz_dsttime; +}; +#endif + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +#ifndef HAVE_ACOSH +RUBY_EXTERN double acosh(double); +RUBY_EXTERN double asinh(double); +RUBY_EXTERN double atanh(double); +#endif + +#ifndef HAVE_CRYPT +RUBY_EXTERN char *crypt(const char *, const char *); +#endif + +#ifndef HAVE_EACCESS +RUBY_EXTERN int eaccess(const char*, int); +#endif + +#ifndef HAVE_ROUND +RUBY_EXTERN double round(double); /* numeric.c */ +#endif + +#ifndef HAVE_FLOCK +RUBY_EXTERN int flock(int, int); +#endif + +/* +#ifndef HAVE_FREXP +RUBY_EXTERN double frexp(double, int *); +#endif +*/ + +#ifndef HAVE_HYPOT +RUBY_EXTERN double hypot(double, double); +#endif + +#ifndef HAVE_ERF +RUBY_EXTERN double erf(double); +RUBY_EXTERN double erfc(double); +#endif + +#ifndef HAVE_TGAMMA +RUBY_EXTERN double tgamma(double); +#endif + +#ifndef HAVE_LGAMMA_R +RUBY_EXTERN double lgamma_r(double, int *); +#endif + +#ifndef HAVE_CBRT +RUBY_EXTERN double cbrt(double); +#endif + +#if !defined(INFINITY) || !defined(NAN) +union bytesequence4_or_float { + unsigned char bytesequence[4]; + float float_value; +}; +#endif + +#ifndef INFINITY +/** @internal */ +RUBY_EXTERN const union bytesequence4_or_float rb_infinity; +# define INFINITY (rb_infinity.float_value) +# define USE_RB_INFINITY 1 +#endif + +#ifndef NAN +/** @internal */ +RUBY_EXTERN const union bytesequence4_or_float rb_nan; +# define NAN (rb_nan.float_value) +# define USE_RB_NAN 1 +#endif + +#ifndef HUGE_VAL +# define HUGE_VAL ((double)INFINITY) +#endif + +#ifndef HAVE_FINITE +# define HAVE_FINITE 1 +# define finite(x) isfinite(x) +#endif + +#ifndef HAVE_NAN +RUBY_EXTERN double nan(const char *); +#endif + +#ifndef HAVE_NEXTAFTER +RUBY_EXTERN double nextafter(double x, double y); +#endif + +/* +#ifndef HAVE_MEMCMP +RUBY_EXTERN int memcmp(const void *, const void *, size_t); +#endif +*/ + +#ifndef HAVE_MEMMOVE +RUBY_EXTERN void *memmove(void *, const void *, size_t); +#endif + +/* +#ifndef HAVE_MODF +RUBY_EXTERN double modf(double, double *); +#endif +*/ + +#ifndef HAVE_STRCHR +RUBY_EXTERN char *strchr(const char *, int); +RUBY_EXTERN char *strrchr(const char *, int); +#endif + +#ifndef HAVE_STRERROR +RUBY_EXTERN char *strerror(int); +#endif + +#ifndef HAVE_STRSTR +RUBY_EXTERN char *strstr(const char *, const char *); +#endif + +#ifndef HAVE_STRLCPY +RUBY_EXTERN size_t strlcpy(char *, const char*, size_t); +#endif + +#ifndef HAVE_STRLCAT +RUBY_EXTERN size_t strlcat(char *, const char*, size_t); +#endif + +#ifndef HAVE_FFS +RUBY_EXTERN int ffs(int); +#endif + +#ifdef BROKEN_CLOSE +# include +# include +RUBY_EXTERN int ruby_getpeername(int, struct sockaddr *, socklen_t *); +RUBY_EXTERN int ruby_getsockname(int, struct sockaddr *, socklen_t *); +RUBY_EXTERN int ruby_shutdown(int, int); +RUBY_EXTERN int ruby_close(int); +#endif + +#ifndef HAVE_SETPROCTITLE +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2) +RUBY_EXTERN void setproctitle(const char *fmt, ...); +#endif + +#ifdef HAVE_EXPLICIT_BZERO +# /* Take that. */ +#elif defined(SecureZeroMemory) +# define explicit_bzero(b, len) SecureZeroMemory(b, len) +#else +RUBY_EXTERN void explicit_bzero(void *b, size_t len); +#endif + +#ifndef HAVE_TZSET +RUBY_EXTERN void tzset(void); +#endif + +#ifndef HAVE_POSIX_MADVISE +RUBY_EXTERN int posix_madvise(void *, size_t, int); +#endif + +#ifndef HAVE_GETEUID +RUBY_EXTERN rb_uid_t geteuid(void); +#endif + +#ifndef HAVE_GETUID +RUBY_EXTERN rb_uid_t getuid(void); +#endif + +#ifndef HAVE_GETEGID +RUBY_EXTERN rb_gid_t getegid(void); +#endif + +#ifndef HAVE_GETGID +RUBY_EXTERN rb_gid_t getgid(void); +#endif + +#ifndef HAVE_GETLOGIN +RUBY_EXTERN char *getlogin(void); +#endif + +#ifndef HAVE_GETPPID +RUBY_EXTERN rb_pid_t getppid(void); +#endif + +#ifndef HAVE_UMASK +RUBY_EXTERN rb_mode_t umask(rb_mode_t); +#endif + +#ifndef HAVE_CHMOD +RUBY_EXTERN int chmod(const char *, rb_mode_t); +#endif + +#ifndef HAVE_CHOWN +RUBY_EXTERN int chown(const char *, rb_uid_t, rb_gid_t); +#endif + +#ifndef HAVE_PCLOSE +RUBY_EXTERN int pclose(FILE *); +#endif + +#ifndef HAVE_POPEN +RUBY_EXTERN FILE *popen(const char *, const char *); +#endif + +#ifndef HAVE_PIPE +RUBY_EXTERN int pipe(int [2]); +#endif + +#ifndef HAVE_DUP +RUBY_EXTERN int dup(int); +#endif + +#ifndef HAVE_DUP2 +RUBY_EXTERN int dup2(int, int); +#endif + +#ifndef HAVE_KILL +RUBY_EXTERN int kill(rb_pid_t, int); +#endif + +#ifndef HAVE_EXECL +RUBY_EXTERN int execl(const char *, const char *, ...); +#endif + +#ifndef HAVE_EXECLE +RUBY_EXTERN int execle(const char *, const char *, ...); +#endif + +#ifndef HAVE_EXECV +RUBY_EXTERN int execv(const char *, char *const []); +#endif + +#ifndef HAVE_EXECVE +RUBY_EXTERN int execve(const char *, char *const [], char *const []); +#endif + +#ifndef HAVE_SHUTDOWN +RUBY_EXTERN int shutdown(int, int); +#endif + +#ifndef HAVE_SYSTEM +RUBY_EXTERN int system(const char *); +#endif + +#ifndef WNOHANG +# define WNOHANG 0 +#endif + +#ifndef HAVE_WAITPID +# define HAVE_WAITPID 1 +RUBY_EXTERN rb_pid_t waitpid(rb_pid_t, int *, int); +#endif + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_MISSING_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/onigmo.h b/ThirdParty/include/ruby/3.2/mac/ruby/onigmo.h new file mode 100644 index 0000000..8d7c601 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/onigmo.h @@ -0,0 +1,952 @@ +#ifndef ONIGMO_H +#define ONIGMO_H +/********************************************************************** + onigmo.h - Onigmo (Oniguruma-mod) (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2009 K.Kosako + * Copyright (c) 2011-2017 K.Takata + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifdef __cplusplus +extern "C" { +# if 0 +} /* satisfy cc-mode */ +# endif +#endif + +#define ONIGMO_VERSION_MAJOR 6 +#define ONIGMO_VERSION_MINOR 1 +#define ONIGMO_VERSION_TEENY 3 + +#ifndef ONIG_EXTERN +# ifdef RUBY_EXTERN +# define ONIG_EXTERN RUBY_EXTERN +# else +# if defined(_WIN32) && !defined(__GNUC__) +# if defined(EXPORT) || defined(RUBY_EXPORT) +# define ONIG_EXTERN extern __declspec(dllexport) +# else +# define ONIG_EXTERN extern __declspec(dllimport) +# endif +# endif +# endif +#endif + +#ifndef ONIG_EXTERN +# define ONIG_EXTERN extern +#endif + +#ifndef RUBY +# ifndef RUBY_SYMBOL_EXPORT_BEGIN +# define RUBY_SYMBOL_EXPORT_BEGIN +# define RUBY_SYMBOL_EXPORT_END +# endif +#endif + +RUBY_SYMBOL_EXPORT_BEGIN + +#include /* for size_t */ + +/* PART: character encoding */ + +#ifndef ONIG_ESCAPE_UCHAR_COLLISION +# define UChar OnigUChar +#endif + +typedef unsigned char OnigUChar; +typedef unsigned int OnigCodePoint; +typedef unsigned int OnigCtype; +typedef size_t OnigDistance; +typedef ptrdiff_t OnigPosition; + +#define ONIG_INFINITE_DISTANCE ~((OnigDistance )0) + +/* + * Onig casefold/case mapping flags and related definitions + * + * Subfields (starting with 0 at LSB): + * 0-2: Code point count in casefold.h + * 3-12: Index into SpecialCaseMapping array in casefold.h + * 13-22: Case folding/mapping flags + */ +typedef unsigned int OnigCaseFoldType; /* case fold flag */ + +ONIG_EXTERN OnigCaseFoldType OnigDefaultCaseFoldFlag; + +/* bits for actual code point count; 3 bits is more than enough, currently only 2 used */ +#define OnigCodePointMaskWidth 3 +#define OnigCodePointMask ((1< Unicode:0x1ffc */ + +/* code range */ +#define ONIGENC_CODE_RANGE_NUM(range) ((int )range[0]) +#define ONIGENC_CODE_RANGE_FROM(range,i) range[((i)*2) + 1] +#define ONIGENC_CODE_RANGE_TO(range,i) range[((i)*2) + 2] + +typedef struct { + int byte_len; /* argument(original) character(s) byte length */ + int code_len; /* number of code */ + OnigCodePoint code[ONIGENC_MAX_COMP_CASE_FOLD_CODE_LEN]; +} OnigCaseFoldCodeItem; + +typedef struct { + OnigCodePoint esc; + OnigCodePoint anychar; + OnigCodePoint anytime; + OnigCodePoint zero_or_one_time; + OnigCodePoint one_or_more_time; + OnigCodePoint anychar_anytime; +} OnigMetaCharTableType; + +typedef int (*OnigApplyAllCaseFoldFunc)(OnigCodePoint from, OnigCodePoint* to, int to_len, void* arg); + +typedef struct OnigEncodingTypeST { + int (*precise_mbc_enc_len)(const OnigUChar* p,const OnigUChar* e, const struct OnigEncodingTypeST* enc); + const char* name; + int max_enc_len; + int min_enc_len; + int (*is_mbc_newline)(const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc); + OnigCodePoint (*mbc_to_code)(const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc); + int (*code_to_mbclen)(OnigCodePoint code, const struct OnigEncodingTypeST* enc); + int (*code_to_mbc)(OnigCodePoint code, OnigUChar *buf, const struct OnigEncodingTypeST* enc); + int (*mbc_case_fold)(OnigCaseFoldType flag, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, const struct OnigEncodingTypeST* enc); + int (*apply_all_case_fold)(OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, const struct OnigEncodingTypeST* enc); + int (*get_case_fold_codes_by_str)(OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem acs[], const struct OnigEncodingTypeST* enc); + int (*property_name_to_ctype)(const struct OnigEncodingTypeST* enc, const OnigUChar* p, const OnigUChar* end); + int (*is_code_ctype)(OnigCodePoint code, OnigCtype ctype, const struct OnigEncodingTypeST* enc); + int (*get_ctype_code_range)(OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[], const struct OnigEncodingTypeST* enc); + OnigUChar* (*left_adjust_char_head)(const OnigUChar* start, const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc); + int (*is_allowed_reverse_match)(const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc); + int (*case_map)(OnigCaseFoldType* flagP, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, const struct OnigEncodingTypeST* enc); + int ruby_encoding_index; + unsigned int flags; +} OnigEncodingType; + +typedef const OnigEncodingType* OnigEncoding; + +ONIG_EXTERN const OnigEncodingType OnigEncodingASCII; +#ifndef RUBY +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_1; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_2; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_3; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_4; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_5; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_6; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_7; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_8; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_9; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_10; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_11; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_13; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_14; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_15; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_16; +ONIG_EXTERN const OnigEncodingType OnigEncodingUTF_8; +ONIG_EXTERN const OnigEncodingType OnigEncodingUTF_16BE; +ONIG_EXTERN const OnigEncodingType OnigEncodingUTF_16LE; +ONIG_EXTERN const OnigEncodingType OnigEncodingUTF_32BE; +ONIG_EXTERN const OnigEncodingType OnigEncodingUTF_32LE; +ONIG_EXTERN const OnigEncodingType OnigEncodingEUC_JP; +ONIG_EXTERN const OnigEncodingType OnigEncodingEUC_TW; +ONIG_EXTERN const OnigEncodingType OnigEncodingEUC_KR; +ONIG_EXTERN const OnigEncodingType OnigEncodingEUC_CN; +ONIG_EXTERN const OnigEncodingType OnigEncodingShift_JIS; +ONIG_EXTERN const OnigEncodingType OnigEncodingWindows_31J; +/* ONIG_EXTERN const OnigEncodingType OnigEncodingKOI8; */ +ONIG_EXTERN const OnigEncodingType OnigEncodingKOI8_R; +ONIG_EXTERN const OnigEncodingType OnigEncodingKOI8_U; +ONIG_EXTERN const OnigEncodingType OnigEncodingWindows_1250; +ONIG_EXTERN const OnigEncodingType OnigEncodingWindows_1251; +ONIG_EXTERN const OnigEncodingType OnigEncodingWindows_1252; +ONIG_EXTERN const OnigEncodingType OnigEncodingWindows_1253; +ONIG_EXTERN const OnigEncodingType OnigEncodingWindows_1254; +ONIG_EXTERN const OnigEncodingType OnigEncodingWindows_1257; +ONIG_EXTERN const OnigEncodingType OnigEncodingBIG5; +ONIG_EXTERN const OnigEncodingType OnigEncodingGB18030; +#endif /* RUBY */ + +#define ONIG_ENCODING_ASCII (&OnigEncodingASCII) +#ifndef RUBY +# define ONIG_ENCODING_ISO_8859_1 (&OnigEncodingISO_8859_1) +# define ONIG_ENCODING_ISO_8859_2 (&OnigEncodingISO_8859_2) +# define ONIG_ENCODING_ISO_8859_3 (&OnigEncodingISO_8859_3) +# define ONIG_ENCODING_ISO_8859_4 (&OnigEncodingISO_8859_4) +# define ONIG_ENCODING_ISO_8859_5 (&OnigEncodingISO_8859_5) +# define ONIG_ENCODING_ISO_8859_6 (&OnigEncodingISO_8859_6) +# define ONIG_ENCODING_ISO_8859_7 (&OnigEncodingISO_8859_7) +# define ONIG_ENCODING_ISO_8859_8 (&OnigEncodingISO_8859_8) +# define ONIG_ENCODING_ISO_8859_9 (&OnigEncodingISO_8859_9) +# define ONIG_ENCODING_ISO_8859_10 (&OnigEncodingISO_8859_10) +# define ONIG_ENCODING_ISO_8859_11 (&OnigEncodingISO_8859_11) +# define ONIG_ENCODING_ISO_8859_13 (&OnigEncodingISO_8859_13) +# define ONIG_ENCODING_ISO_8859_14 (&OnigEncodingISO_8859_14) +# define ONIG_ENCODING_ISO_8859_15 (&OnigEncodingISO_8859_15) +# define ONIG_ENCODING_ISO_8859_16 (&OnigEncodingISO_8859_16) +# define ONIG_ENCODING_UTF_8 (&OnigEncodingUTF_8) +# define ONIG_ENCODING_UTF_16BE (&OnigEncodingUTF_16BE) +# define ONIG_ENCODING_UTF_16LE (&OnigEncodingUTF_16LE) +# define ONIG_ENCODING_UTF_32BE (&OnigEncodingUTF_32BE) +# define ONIG_ENCODING_UTF_32LE (&OnigEncodingUTF_32LE) +# define ONIG_ENCODING_EUC_JP (&OnigEncodingEUC_JP) +# define ONIG_ENCODING_EUC_TW (&OnigEncodingEUC_TW) +# define ONIG_ENCODING_EUC_KR (&OnigEncodingEUC_KR) +# define ONIG_ENCODING_EUC_CN (&OnigEncodingEUC_CN) +# define ONIG_ENCODING_SHIFT_JIS (&OnigEncodingShift_JIS) +# define ONIG_ENCODING_WINDOWS_31J (&OnigEncodingWindows_31J) +/* # define ONIG_ENCODING_KOI8 (&OnigEncodingKOI8) */ +# define ONIG_ENCODING_KOI8_R (&OnigEncodingKOI8_R) +# define ONIG_ENCODING_KOI8_U (&OnigEncodingKOI8_U) +# define ONIG_ENCODING_WINDOWS_1250 (&OnigEncodingWindows_1250) +# define ONIG_ENCODING_WINDOWS_1251 (&OnigEncodingWindows_1251) +# define ONIG_ENCODING_WINDOWS_1252 (&OnigEncodingWindows_1252) +# define ONIG_ENCODING_WINDOWS_1253 (&OnigEncodingWindows_1253) +# define ONIG_ENCODING_WINDOWS_1254 (&OnigEncodingWindows_1254) +# define ONIG_ENCODING_WINDOWS_1257 (&OnigEncodingWindows_1257) +# define ONIG_ENCODING_BIG5 (&OnigEncodingBIG5) +# define ONIG_ENCODING_GB18030 (&OnigEncodingGB18030) + +/* old names */ +# define ONIG_ENCODING_SJIS ONIG_ENCODING_SHIFT_JIS +# define ONIG_ENCODING_CP932 ONIG_ENCODING_WINDOWS_31J +# define ONIG_ENCODING_CP1250 ONIG_ENCODING_WINDOWS_1250 +# define ONIG_ENCODING_CP1251 ONIG_ENCODING_WINDOWS_1251 +# define ONIG_ENCODING_CP1252 ONIG_ENCODING_WINDOWS_1252 +# define ONIG_ENCODING_CP1253 ONIG_ENCODING_WINDOWS_1253 +# define ONIG_ENCODING_CP1254 ONIG_ENCODING_WINDOWS_1254 +# define ONIG_ENCODING_CP1257 ONIG_ENCODING_WINDOWS_1257 +# define ONIG_ENCODING_UTF8 ONIG_ENCODING_UTF_8 +# define ONIG_ENCODING_UTF16_BE ONIG_ENCODING_UTF_16BE +# define ONIG_ENCODING_UTF16_LE ONIG_ENCODING_UTF_16LE +# define ONIG_ENCODING_UTF32_BE ONIG_ENCODING_UTF_32BE +# define ONIG_ENCODING_UTF32_LE ONIG_ENCODING_UTF_32LE +#endif /* RUBY */ + +#define ONIG_ENCODING_UNDEF ((OnigEncoding )0) + +/* this declaration needs to be here because it is used in string.c in Ruby */ +ONIG_EXTERN +int onigenc_ascii_only_case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, const struct OnigEncodingTypeST* enc); + + +/* work size */ +#define ONIGENC_CODE_TO_MBC_MAXLEN 7 +#define ONIGENC_MBC_CASE_FOLD_MAXLEN 18 +/* 18: 6(max-byte) * 3(case-fold chars) */ + +/* character types */ +#define ONIGENC_CTYPE_NEWLINE 0 +#define ONIGENC_CTYPE_ALPHA 1 +#define ONIGENC_CTYPE_BLANK 2 +#define ONIGENC_CTYPE_CNTRL 3 +#define ONIGENC_CTYPE_DIGIT 4 +#define ONIGENC_CTYPE_GRAPH 5 +#define ONIGENC_CTYPE_LOWER 6 +#define ONIGENC_CTYPE_PRINT 7 +#define ONIGENC_CTYPE_PUNCT 8 +#define ONIGENC_CTYPE_SPACE 9 +#define ONIGENC_CTYPE_UPPER 10 +#define ONIGENC_CTYPE_XDIGIT 11 +#define ONIGENC_CTYPE_WORD 12 +#define ONIGENC_CTYPE_ALNUM 13 /* alpha || digit */ +#define ONIGENC_CTYPE_ASCII 14 +#define ONIGENC_MAX_STD_CTYPE ONIGENC_CTYPE_ASCII + +/* flags */ +#define ONIGENC_FLAG_NONE 0U +#define ONIGENC_FLAG_UNICODE 1U + +#define onig_enc_len(enc,p,e) ONIGENC_MBC_ENC_LEN(enc, p, e) + +#define ONIGENC_IS_UNDEF(enc) ((enc) == ONIG_ENCODING_UNDEF) +#define ONIGENC_IS_SINGLEBYTE(enc) (ONIGENC_MBC_MAXLEN(enc) == 1) +#define ONIGENC_IS_MBC_HEAD(enc,p,e) (ONIGENC_MBC_ENC_LEN(enc,p,e) != 1) +#define ONIGENC_IS_MBC_ASCII(p) (*(p) < 128) +#define ONIGENC_IS_CODE_ASCII(code) ((code) < 128) +#define ONIGENC_IS_MBC_WORD(enc,s,end) \ + ONIGENC_IS_CODE_WORD(enc,ONIGENC_MBC_TO_CODE(enc,s,end)) +#define ONIGENC_IS_MBC_ASCII_WORD(enc,s,end) \ + onigenc_ascii_is_code_ctype( \ + ONIGENC_MBC_TO_CODE(enc,s,end),ONIGENC_CTYPE_WORD,enc) +#define ONIGENC_IS_UNICODE(enc) ((enc)->flags & ONIGENC_FLAG_UNICODE) + + +#define ONIGENC_NAME(enc) ((enc)->name) + +#define ONIGENC_MBC_CASE_FOLD(enc,flag,pp,end,buf) \ + (enc)->mbc_case_fold(flag,(const OnigUChar** )pp,end,buf,enc) +#define ONIGENC_IS_ALLOWED_REVERSE_MATCH(enc,s,end) \ + (enc)->is_allowed_reverse_match(s,end,enc) +#define ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc,start,s,end) \ + (enc)->left_adjust_char_head(start, s, end, enc) +#define ONIGENC_APPLY_ALL_CASE_FOLD(enc,case_fold_flag,f,arg) \ + (enc)->apply_all_case_fold(case_fold_flag,f,arg,enc) +#define ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc,case_fold_flag,p,end,acs) \ + (enc)->get_case_fold_codes_by_str(case_fold_flag,p,end,acs,enc) +#define ONIGENC_STEP_BACK(enc,start,s,end,n) \ + onigenc_step_back((enc),(start),(s),(end),(n)) + +#define ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(n) (n) +#define ONIGENC_MBCLEN_CHARFOUND_P(r) (0 < (r)) +#define ONIGENC_MBCLEN_CHARFOUND_LEN(r) (r) + +#define ONIGENC_CONSTRUCT_MBCLEN_INVALID() (-1) +#define ONIGENC_MBCLEN_INVALID_P(r) ((r) == -1) + +#define ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(n) (-1-(n)) +#define ONIGENC_MBCLEN_NEEDMORE_P(r) ((r) < -1) +#define ONIGENC_MBCLEN_NEEDMORE_LEN(r) (-1-(r)) + +#define ONIGENC_PRECISE_MBC_ENC_LEN(enc,p,e) (enc)->precise_mbc_enc_len(p,e,enc) + +ONIG_EXTERN +int onigenc_mbclen(const OnigUChar* p,const OnigUChar* e, const struct OnigEncodingTypeST* enc); + +#define ONIGENC_MBC_ENC_LEN(enc,p,e) onigenc_mbclen(p,e,enc) +#define ONIGENC_MBC_MAXLEN(enc) ((enc)->max_enc_len) +#define ONIGENC_MBC_MAXLEN_DIST(enc) ONIGENC_MBC_MAXLEN(enc) +#define ONIGENC_MBC_MINLEN(enc) ((enc)->min_enc_len) +#define ONIGENC_IS_MBC_NEWLINE(enc,p,end) (enc)->is_mbc_newline((p),(end),enc) +#define ONIGENC_MBC_TO_CODE(enc,p,end) (enc)->mbc_to_code((p),(end),enc) +#define ONIGENC_CODE_TO_MBCLEN(enc,code) (enc)->code_to_mbclen(code,enc) +#define ONIGENC_CODE_TO_MBC(enc,code,buf) (enc)->code_to_mbc(code,buf,enc) +#define ONIGENC_PROPERTY_NAME_TO_CTYPE(enc,p,end) \ + (enc)->property_name_to_ctype(enc,p,end) + +#define ONIGENC_IS_CODE_CTYPE(enc,code,ctype) (enc)->is_code_ctype(code,ctype,enc) + +#define ONIGENC_IS_CODE_NEWLINE(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_NEWLINE) +#define ONIGENC_IS_CODE_GRAPH(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_GRAPH) +#define ONIGENC_IS_CODE_PRINT(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PRINT) +#define ONIGENC_IS_CODE_ALNUM(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALNUM) +#define ONIGENC_IS_CODE_ALPHA(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALPHA) +#define ONIGENC_IS_CODE_LOWER(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_LOWER) +#define ONIGENC_IS_CODE_UPPER(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_UPPER) +#define ONIGENC_IS_CODE_CNTRL(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_CNTRL) +#define ONIGENC_IS_CODE_PUNCT(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PUNCT) +#define ONIGENC_IS_CODE_SPACE(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_SPACE) +#define ONIGENC_IS_CODE_BLANK(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_BLANK) +#define ONIGENC_IS_CODE_DIGIT(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_DIGIT) +#define ONIGENC_IS_CODE_XDIGIT(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_XDIGIT) +#define ONIGENC_IS_CODE_WORD(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_WORD) + +#define ONIGENC_GET_CTYPE_CODE_RANGE(enc,ctype,sbout,ranges) \ + (enc)->get_ctype_code_range(ctype,sbout,ranges,enc) + +ONIG_EXTERN +OnigUChar* onigenc_step_back(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, int n); + + +/* encoding API */ +ONIG_EXTERN +int onigenc_init(void); +ONIG_EXTERN +int onigenc_set_default_encoding(OnigEncoding enc); +ONIG_EXTERN +OnigEncoding onigenc_get_default_encoding(void); +ONIG_EXTERN +OnigUChar* onigenc_get_right_adjust_char_head_with_prev(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, const OnigUChar** prev); +ONIG_EXTERN +OnigUChar* onigenc_get_prev_char_head(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end); +ONIG_EXTERN +OnigUChar* onigenc_get_left_adjust_char_head(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end); +ONIG_EXTERN +OnigUChar* onigenc_get_right_adjust_char_head(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end); +ONIG_EXTERN +int onigenc_strlen(OnigEncoding enc, const OnigUChar* p, const OnigUChar* end); +ONIG_EXTERN +int onigenc_strlen_null(OnigEncoding enc, const OnigUChar* p); +ONIG_EXTERN +int onigenc_str_bytelen_null(OnigEncoding enc, const OnigUChar* p); + + + +/* PART: regular expression */ + +/* config parameters */ +#define ONIG_NREGION 4 +#define ONIG_MAX_CAPTURE_GROUP_NUM 32767 +#define ONIG_MAX_BACKREF_NUM 1000 +#define ONIG_MAX_REPEAT_NUM 100000 +#define ONIG_MAX_MULTI_BYTE_RANGES_NUM 10000 +/* constants */ +#define ONIG_MAX_ERROR_MESSAGE_LEN 90 + +typedef unsigned int OnigOptionType; + +#define ONIG_OPTION_DEFAULT ONIG_OPTION_NONE + +/* options */ +#define ONIG_OPTION_NONE 0U +#define ONIG_OPTION_IGNORECASE 1U +#define ONIG_OPTION_EXTEND (ONIG_OPTION_IGNORECASE << 1) +#define ONIG_OPTION_MULTILINE (ONIG_OPTION_EXTEND << 1) +#define ONIG_OPTION_DOTALL ONIG_OPTION_MULTILINE +#define ONIG_OPTION_SINGLELINE (ONIG_OPTION_MULTILINE << 1) +#define ONIG_OPTION_FIND_LONGEST (ONIG_OPTION_SINGLELINE << 1) +#define ONIG_OPTION_FIND_NOT_EMPTY (ONIG_OPTION_FIND_LONGEST << 1) +#define ONIG_OPTION_NEGATE_SINGLELINE (ONIG_OPTION_FIND_NOT_EMPTY << 1) +#define ONIG_OPTION_DONT_CAPTURE_GROUP (ONIG_OPTION_NEGATE_SINGLELINE << 1) +#define ONIG_OPTION_CAPTURE_GROUP (ONIG_OPTION_DONT_CAPTURE_GROUP << 1) +/* options (search time) */ +#define ONIG_OPTION_NOTBOL (ONIG_OPTION_CAPTURE_GROUP << 1) +#define ONIG_OPTION_NOTEOL (ONIG_OPTION_NOTBOL << 1) +#define ONIG_OPTION_NOTBOS (ONIG_OPTION_NOTEOL << 1) +#define ONIG_OPTION_NOTEOS (ONIG_OPTION_NOTBOS << 1) +/* options (ctype range) */ +#define ONIG_OPTION_ASCII_RANGE (ONIG_OPTION_NOTEOS << 1) +#define ONIG_OPTION_POSIX_BRACKET_ALL_RANGE (ONIG_OPTION_ASCII_RANGE << 1) +#define ONIG_OPTION_WORD_BOUND_ALL_RANGE (ONIG_OPTION_POSIX_BRACKET_ALL_RANGE << 1) +/* options (newline) */ +#define ONIG_OPTION_NEWLINE_CRLF (ONIG_OPTION_WORD_BOUND_ALL_RANGE << 1) +#define ONIG_OPTION_MAXBIT ONIG_OPTION_NEWLINE_CRLF /* limit */ + +#define ONIG_OPTION_ON(options,regopt) ((options) |= (regopt)) +#define ONIG_OPTION_OFF(options,regopt) ((options) &= ~(regopt)) +#define ONIG_IS_OPTION_ON(options,option) ((options) & (option)) + +/* syntax */ +typedef struct { + unsigned int op; + unsigned int op2; + unsigned int behavior; + OnigOptionType options; /* default option */ + OnigMetaCharTableType meta_char_table; +} OnigSyntaxType; + +ONIG_EXTERN const OnigSyntaxType OnigSyntaxASIS; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxPosixBasic; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxPosixExtended; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxEmacs; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxGrep; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxGnuRegex; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxJava; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxPerl58; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxPerl58_NG; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxPerl; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxRuby; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxPython; + +/* predefined syntaxes (see regsyntax.c) */ +#define ONIG_SYNTAX_ASIS (&OnigSyntaxASIS) +#define ONIG_SYNTAX_POSIX_BASIC (&OnigSyntaxPosixBasic) +#define ONIG_SYNTAX_POSIX_EXTENDED (&OnigSyntaxPosixExtended) +#define ONIG_SYNTAX_EMACS (&OnigSyntaxEmacs) +#define ONIG_SYNTAX_GREP (&OnigSyntaxGrep) +#define ONIG_SYNTAX_GNU_REGEX (&OnigSyntaxGnuRegex) +#define ONIG_SYNTAX_JAVA (&OnigSyntaxJava) +#define ONIG_SYNTAX_PERL58 (&OnigSyntaxPerl58) +#define ONIG_SYNTAX_PERL58_NG (&OnigSyntaxPerl58_NG) +#define ONIG_SYNTAX_PERL (&OnigSyntaxPerl) +#define ONIG_SYNTAX_RUBY (&OnigSyntaxRuby) +#define ONIG_SYNTAX_PYTHON (&OnigSyntaxPython) + +/* default syntax */ +ONIG_EXTERN const OnigSyntaxType* OnigDefaultSyntax; +#define ONIG_SYNTAX_DEFAULT OnigDefaultSyntax + +/* syntax (operators) */ +#define ONIG_SYN_OP_VARIABLE_META_CHARACTERS (1U<<0) +#define ONIG_SYN_OP_DOT_ANYCHAR (1U<<1) /* . */ +#define ONIG_SYN_OP_ASTERISK_ZERO_INF (1U<<2) /* * */ +#define ONIG_SYN_OP_ESC_ASTERISK_ZERO_INF (1U<<3) +#define ONIG_SYN_OP_PLUS_ONE_INF (1U<<4) /* + */ +#define ONIG_SYN_OP_ESC_PLUS_ONE_INF (1U<<5) +#define ONIG_SYN_OP_QMARK_ZERO_ONE (1U<<6) /* ? */ +#define ONIG_SYN_OP_ESC_QMARK_ZERO_ONE (1U<<7) +#define ONIG_SYN_OP_BRACE_INTERVAL (1U<<8) /* {lower,upper} */ +#define ONIG_SYN_OP_ESC_BRACE_INTERVAL (1U<<9) /* \{lower,upper\} */ +#define ONIG_SYN_OP_VBAR_ALT (1U<<10) /* | */ +#define ONIG_SYN_OP_ESC_VBAR_ALT (1U<<11) /* \| */ +#define ONIG_SYN_OP_LPAREN_SUBEXP (1U<<12) /* (...) */ +#define ONIG_SYN_OP_ESC_LPAREN_SUBEXP (1U<<13) /* \(...\) */ +#define ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR (1U<<14) /* \A, \Z, \z */ +#define ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR (1U<<15) /* \G */ +#define ONIG_SYN_OP_DECIMAL_BACKREF (1U<<16) /* \num */ +#define ONIG_SYN_OP_BRACKET_CC (1U<<17) /* [...] */ +#define ONIG_SYN_OP_ESC_W_WORD (1U<<18) /* \w, \W */ +#define ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END (1U<<19) /* \<. \> */ +#define ONIG_SYN_OP_ESC_B_WORD_BOUND (1U<<20) /* \b, \B */ +#define ONIG_SYN_OP_ESC_S_WHITE_SPACE (1U<<21) /* \s, \S */ +#define ONIG_SYN_OP_ESC_D_DIGIT (1U<<22) /* \d, \D */ +#define ONIG_SYN_OP_LINE_ANCHOR (1U<<23) /* ^, $ */ +#define ONIG_SYN_OP_POSIX_BRACKET (1U<<24) /* [:xxxx:] */ +#define ONIG_SYN_OP_QMARK_NON_GREEDY (1U<<25) /* ??,*?,+?,{n,m}? */ +#define ONIG_SYN_OP_ESC_CONTROL_CHARS (1U<<26) /* \n,\r,\t,\a ... */ +#define ONIG_SYN_OP_ESC_C_CONTROL (1U<<27) /* \cx */ +#define ONIG_SYN_OP_ESC_OCTAL3 (1U<<28) /* \OOO */ +#define ONIG_SYN_OP_ESC_X_HEX2 (1U<<29) /* \xHH */ +#define ONIG_SYN_OP_ESC_X_BRACE_HEX8 (1U<<30) /* \x{7HHHHHHH} */ +#define ONIG_SYN_OP_ESC_O_BRACE_OCTAL (1U<<31) /* \o{OOO} */ + +#define ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE (1U<<0) /* \Q...\E */ +#define ONIG_SYN_OP2_QMARK_GROUP_EFFECT (1U<<1) /* (?...) */ +#define ONIG_SYN_OP2_OPTION_PERL (1U<<2) /* (?imsxadlu), (?-imsx), (?^imsxalu) */ +#define ONIG_SYN_OP2_OPTION_RUBY (1U<<3) /* (?imxadu), (?-imx) */ +#define ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT (1U<<4) /* ?+,*+,++ */ +#define ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL (1U<<5) /* {n,m}+ */ +#define ONIG_SYN_OP2_CCLASS_SET_OP (1U<<6) /* [...&&..[..]..] */ +#define ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP (1U<<7) /* (?...) */ +#define ONIG_SYN_OP2_ESC_K_NAMED_BACKREF (1U<<8) /* \k */ +#define ONIG_SYN_OP2_ESC_G_SUBEXP_CALL (1U<<9) /* \g, \g */ +#define ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY (1U<<10) /* (?@..),(?@..) */ +#define ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL (1U<<11) /* \C-x */ +#define ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META (1U<<12) /* \M-x */ +#define ONIG_SYN_OP2_ESC_V_VTAB (1U<<13) /* \v as VTAB */ +#define ONIG_SYN_OP2_ESC_U_HEX4 (1U<<14) /* \uHHHH */ +#define ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR (1U<<15) /* \`, \' */ +#define ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY (1U<<16) /* \p{...}, \P{...} */ +#define ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT (1U<<17) /* \p{^..}, \P{^..} */ +/* #define ONIG_SYN_OP2_CHAR_PROPERTY_PREFIX_IS (1U<<18) */ +#define ONIG_SYN_OP2_ESC_H_XDIGIT (1U<<19) /* \h, \H */ +#define ONIG_SYN_OP2_INEFFECTIVE_ESCAPE (1U<<20) /* \ */ +#define ONIG_SYN_OP2_ESC_CAPITAL_R_LINEBREAK (1U<<21) /* \R as (?>\x0D\x0A|[\x0A-\x0D\x{85}\x{2028}\x{2029}]) */ +#define ONIG_SYN_OP2_ESC_CAPITAL_X_EXTENDED_GRAPHEME_CLUSTER (1U<<22) /* \X */ +#define ONIG_SYN_OP2_ESC_V_VERTICAL_WHITESPACE (1U<<23) /* \v, \V -- Perl */ /* NOTIMPL */ +#define ONIG_SYN_OP2_ESC_H_HORIZONTAL_WHITESPACE (1U<<24) /* \h, \H -- Perl */ /* NOTIMPL */ +#define ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP (1U<<25) /* \K */ +#define ONIG_SYN_OP2_ESC_G_BRACE_BACKREF (1U<<26) /* \g{name}, \g{n} */ +#define ONIG_SYN_OP2_QMARK_SUBEXP_CALL (1U<<27) /* (?&name), (?n), (?R), (?0) */ +#define ONIG_SYN_OP2_QMARK_VBAR_BRANCH_RESET (1U<<28) /* (?|...) */ /* NOTIMPL */ +#define ONIG_SYN_OP2_QMARK_LPAREN_CONDITION (1U<<29) /* (?(cond)yes...|no...) */ +#define ONIG_SYN_OP2_QMARK_CAPITAL_P_NAMED_GROUP (1U<<30) /* (?P...), (?P=name), (?P>name) -- Python/PCRE */ +#define ONIG_SYN_OP2_QMARK_TILDE_ABSENT (1U<<31) /* (?~...) */ +/* #define ONIG_SYN_OP2_OPTION_JAVA (1U< {0,n} */ +#define ONIG_SYN_STRICT_CHECK_BACKREF (1U<<5) /* /(\1)/,/\1()/ ..*/ +#define ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND (1U<<6) /* (?<=a|bc) */ +#define ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP (1U<<7) /* see doc/RE */ +#define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME (1U<<8) /* (?)(?) */ +#define ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY (1U<<9) /* a{n}?=(?:a{n})? */ +#define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME_CALL (1U<<10) /* (?)(?)(?&x) */ +#define ONIG_SYN_USE_LEFT_MOST_NAMED_GROUP (1U<<11) /* (?)(?)\k */ + +/* syntax (behavior) in char class [...] */ +#define ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC (1U<<20) /* [^...] */ +#define ONIG_SYN_BACKSLASH_ESCAPE_IN_CC (1U<<21) /* [..\w..] etc.. */ +#define ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC (1U<<22) +#define ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC (1U<<23) /* [0-9-a]=[0-9\-a] */ +/* syntax (behavior) warning */ +#define ONIG_SYN_WARN_CC_OP_NOT_ESCAPED (1U<<24) /* [,-,] */ +#define ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT (1U<<25) /* (?:a*)+ */ +#define ONIG_SYN_WARN_CC_DUP (1U<<26) /* [aa] */ + +/* meta character specifiers (onig_set_meta_char()) */ +#define ONIG_META_CHAR_ESCAPE 0 +#define ONIG_META_CHAR_ANYCHAR 1 +#define ONIG_META_CHAR_ANYTIME 2 +#define ONIG_META_CHAR_ZERO_OR_ONE_TIME 3 +#define ONIG_META_CHAR_ONE_OR_MORE_TIME 4 +#define ONIG_META_CHAR_ANYCHAR_ANYTIME 5 + +#define ONIG_INEFFECTIVE_META_CHAR 0 + +/* error codes */ +#define ONIG_IS_PATTERN_ERROR(ecode) ((ecode) <= -100 && (ecode) > -1000) +/* normal return */ +#define ONIG_NORMAL 0 +#define ONIG_MISMATCH -1 +#define ONIG_NO_SUPPORT_CONFIG -2 + +/* internal error */ +#define ONIGERR_MEMORY -5 +#define ONIGERR_TYPE_BUG -6 +#define ONIGERR_PARSER_BUG -11 +#define ONIGERR_STACK_BUG -12 +#define ONIGERR_UNDEFINED_BYTECODE -13 +#define ONIGERR_UNEXPECTED_BYTECODE -14 +#define ONIGERR_MATCH_STACK_LIMIT_OVER -15 +#define ONIGERR_PARSE_DEPTH_LIMIT_OVER -16 +#define ONIGERR_DEFAULT_ENCODING_IS_NOT_SET -21 +#define ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR -22 +/* general error */ +#define ONIGERR_INVALID_ARGUMENT -30 +/* syntax error */ +#define ONIGERR_END_PATTERN_AT_LEFT_BRACE -100 +#define ONIGERR_END_PATTERN_AT_LEFT_BRACKET -101 +#define ONIGERR_EMPTY_CHAR_CLASS -102 +#define ONIGERR_PREMATURE_END_OF_CHAR_CLASS -103 +#define ONIGERR_END_PATTERN_AT_ESCAPE -104 +#define ONIGERR_END_PATTERN_AT_META -105 +#define ONIGERR_END_PATTERN_AT_CONTROL -106 +#define ONIGERR_META_CODE_SYNTAX -108 +#define ONIGERR_CONTROL_CODE_SYNTAX -109 +#define ONIGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE -110 +#define ONIGERR_CHAR_CLASS_VALUE_AT_START_OF_RANGE -111 +#define ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS -112 +#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED -113 +#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID -114 +#define ONIGERR_NESTED_REPEAT_OPERATOR -115 +#define ONIGERR_UNMATCHED_CLOSE_PARENTHESIS -116 +#define ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS -117 +#define ONIGERR_END_PATTERN_IN_GROUP -118 +#define ONIGERR_UNDEFINED_GROUP_OPTION -119 +#define ONIGERR_INVALID_POSIX_BRACKET_TYPE -121 +#define ONIGERR_INVALID_LOOK_BEHIND_PATTERN -122 +#define ONIGERR_INVALID_REPEAT_RANGE_PATTERN -123 +#define ONIGERR_INVALID_CONDITION_PATTERN -124 +/* values error (syntax error) */ +#define ONIGERR_TOO_BIG_NUMBER -200 +#define ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE -201 +#define ONIGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE -202 +#define ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS -203 +#define ONIGERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE -204 +#define ONIGERR_TOO_MANY_MULTI_BYTE_RANGES -205 +#define ONIGERR_TOO_SHORT_MULTI_BYTE_STRING -206 +#define ONIGERR_TOO_BIG_BACKREF_NUMBER -207 +#define ONIGERR_INVALID_BACKREF -208 +#define ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED -209 +#define ONIGERR_TOO_MANY_CAPTURE_GROUPS -210 +#define ONIGERR_TOO_SHORT_DIGITS -211 +#define ONIGERR_TOO_LONG_WIDE_CHAR_VALUE -212 +#define ONIGERR_EMPTY_GROUP_NAME -214 +#define ONIGERR_INVALID_GROUP_NAME -215 +#define ONIGERR_INVALID_CHAR_IN_GROUP_NAME -216 +#define ONIGERR_UNDEFINED_NAME_REFERENCE -217 +#define ONIGERR_UNDEFINED_GROUP_REFERENCE -218 +#define ONIGERR_MULTIPLEX_DEFINED_NAME -219 +#define ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL -220 +#define ONIGERR_NEVER_ENDING_RECURSION -221 +#define ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY -222 +#define ONIGERR_INVALID_CHAR_PROPERTY_NAME -223 +#define ONIGERR_INVALID_CODE_POINT_VALUE -400 +#define ONIGERR_INVALID_WIDE_CHAR_VALUE -400 +#define ONIGERR_TOO_BIG_WIDE_CHAR_VALUE -401 +#define ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION -402 +#define ONIGERR_INVALID_COMBINATION_OF_OPTIONS -403 + +/* errors related to thread */ +/* #define ONIGERR_OVER_THREAD_PASS_LIMIT_COUNT -1001 */ + + +/* must be smaller than BIT_STATUS_BITS_NUM (unsigned int * 8) */ +#define ONIG_MAX_CAPTURE_HISTORY_GROUP 31 +#define ONIG_IS_CAPTURE_HISTORY_GROUP(r, i) \ + ((i) <= ONIG_MAX_CAPTURE_HISTORY_GROUP && (r)->list && (r)->list[i]) + +#ifdef USE_CAPTURE_HISTORY +typedef struct OnigCaptureTreeNodeStruct { + int group; /* group number */ + OnigPosition beg; + OnigPosition end; + int allocated; + int num_childs; + struct OnigCaptureTreeNodeStruct** childs; +} OnigCaptureTreeNode; +#endif + +/* match result region type */ +struct re_registers { + int allocated; + int num_regs; + OnigPosition* beg; + OnigPosition* end; +#ifdef USE_CAPTURE_HISTORY + /* extended */ + OnigCaptureTreeNode* history_root; /* capture history tree root */ +#endif +}; + +/* capture tree traverse */ +#define ONIG_TRAVERSE_CALLBACK_AT_FIRST 1 +#define ONIG_TRAVERSE_CALLBACK_AT_LAST 2 +#define ONIG_TRAVERSE_CALLBACK_AT_BOTH \ + ( ONIG_TRAVERSE_CALLBACK_AT_FIRST | ONIG_TRAVERSE_CALLBACK_AT_LAST ) + + +#define ONIG_REGION_NOTPOS -1 + +typedef struct re_registers OnigRegion; + +typedef struct { + OnigEncoding enc; + OnigUChar* par; + OnigUChar* par_end; +} OnigErrorInfo; + +typedef struct { + int lower; + int upper; + long base_num; + long inner_num; +} OnigRepeatRange; + +typedef void (*OnigWarnFunc)(const char* s); +extern void onig_null_warn(const char* s); +#define ONIG_NULL_WARN onig_null_warn + +#define ONIG_CHAR_TABLE_SIZE 256 + +typedef struct re_pattern_buffer { + /* common members of BBuf(bytes-buffer) */ + unsigned char* p; /* compiled pattern */ + unsigned int used; /* used space for p */ + unsigned int alloc; /* allocated space for p */ + + int num_mem; /* used memory(...) num counted from 1 */ + int num_repeat; /* OP_REPEAT/OP_REPEAT_NG id-counter */ + int num_null_check; /* OP_NULL_CHECK_START/END id counter */ + int num_comb_exp_check; /* combination explosion check */ + int num_call; /* number of subexp call */ + unsigned int capture_history; /* (?@...) flag (1-31) */ + unsigned int bt_mem_start; /* need backtrack flag */ + unsigned int bt_mem_end; /* need backtrack flag */ + int stack_pop_level; + int repeat_range_alloc; + + OnigOptionType options; + + OnigRepeatRange* repeat_range; + + OnigEncoding enc; + const OnigSyntaxType* syntax; + void* name_table; + OnigCaseFoldType case_fold_flag; + + /* optimization info (string search, char-map and anchors) */ + int optimize; /* optimize flag */ + int threshold_len; /* search str-length for apply optimize */ + int anchor; /* BEGIN_BUF, BEGIN_POS, (SEMI_)END_BUF */ + OnigDistance anchor_dmin; /* (SEMI_)END_BUF anchor distance */ + OnigDistance anchor_dmax; /* (SEMI_)END_BUF anchor distance */ + int sub_anchor; /* start-anchor for exact or map */ + unsigned char *exact; + unsigned char *exact_end; + unsigned char map[ONIG_CHAR_TABLE_SIZE]; /* used as BM skip or char-map */ + int *int_map; /* BM skip for exact_len > 255 */ + int *int_map_backward; /* BM skip for backward search */ + OnigDistance dmin; /* min-distance of exact or map */ + OnigDistance dmax; /* max-distance of exact or map */ + + /* rb_hrtime_t from hrtime.h */ +#ifdef MY_RUBY_BUILD_MAY_TIME_TRAVEL + int128_t timelimit; +#else + uint64_t timelimit; +#endif + + /* regex_t link chain */ + struct re_pattern_buffer* chain; /* escape compile-conflict */ +} OnigRegexType; + +typedef OnigRegexType* OnigRegex; + +#ifndef ONIG_ESCAPE_REGEX_T_COLLISION +typedef OnigRegexType regex_t; +#endif + + +typedef struct { + int num_of_elements; + OnigEncoding pattern_enc; + OnigEncoding target_enc; + const OnigSyntaxType* syntax; + OnigOptionType option; + OnigCaseFoldType case_fold_flag; +} OnigCompileInfo; + +/* Oniguruma Native API */ +ONIG_EXTERN +int onig_initialize(OnigEncoding encodings[], int n); +ONIG_EXTERN +int onig_init(void); +ONIG_EXTERN +int onig_error_code_to_str(OnigUChar* s, OnigPosition err_code, ...); +ONIG_EXTERN +void onig_set_warn_func(OnigWarnFunc f); +ONIG_EXTERN +void onig_set_verb_warn_func(OnigWarnFunc f); +ONIG_EXTERN +int onig_new(OnigRegex*, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, const OnigSyntaxType* syntax, OnigErrorInfo* einfo); +ONIG_EXTERN +int onig_reg_init(OnigRegex reg, OnigOptionType option, OnigCaseFoldType case_fold_flag, OnigEncoding enc, const OnigSyntaxType* syntax); +ONIG_EXTERN +int onig_new_without_alloc(OnigRegex, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, const OnigSyntaxType* syntax, OnigErrorInfo* einfo); +ONIG_EXTERN +int onig_new_deluxe(OnigRegex* reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo); +ONIG_EXTERN +void onig_free(OnigRegex); +ONIG_EXTERN +void onig_free_body(OnigRegex); +ONIG_EXTERN +OnigPosition onig_scan(OnigRegex reg, const OnigUChar* str, const OnigUChar* end, OnigRegion* region, OnigOptionType option, int (*scan_callback)(OnigPosition, OnigPosition, OnigRegion*, void*), void* callback_arg); +ONIG_EXTERN +OnigPosition onig_search(OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option); +ONIG_EXTERN +OnigPosition onig_search_gpos(OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* global_pos, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option); +ONIG_EXTERN +OnigPosition onig_match(OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* at, OnigRegion* region, OnigOptionType option); +ONIG_EXTERN +int onig_check_linear_time(OnigRegex reg); +ONIG_EXTERN +OnigRegion* onig_region_new(void); +ONIG_EXTERN +void onig_region_init(OnigRegion* region); +ONIG_EXTERN +void onig_region_free(OnigRegion* region, int free_self); +ONIG_EXTERN +void onig_region_copy(OnigRegion* to, const OnigRegion* from); +ONIG_EXTERN +void onig_region_clear(OnigRegion* region); +ONIG_EXTERN +int onig_region_resize(OnigRegion* region, int n); +ONIG_EXTERN +int onig_region_set(OnigRegion* region, int at, int beg, int end); +ONIG_EXTERN +int onig_name_to_group_numbers(OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, int** nums); +ONIG_EXTERN +int onig_name_to_backref_number(OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, const OnigRegion *region); +ONIG_EXTERN +int onig_foreach_name(OnigRegex reg, int (*func)(const OnigUChar*, const OnigUChar*,int,int*,OnigRegex,void*), void* arg); +ONIG_EXTERN +int onig_number_of_names(const OnigRegexType *reg); +ONIG_EXTERN +int onig_number_of_captures(const OnigRegexType *reg); +ONIG_EXTERN +int onig_number_of_capture_histories(const OnigRegexType *reg); +#ifdef USE_CAPTURE_HISTORY +ONIG_EXTERN +OnigCaptureTreeNode* onig_get_capture_tree(OnigRegion* region); +#endif +ONIG_EXTERN +int onig_capture_tree_traverse(OnigRegion* region, int at, int(*callback_func)(int,OnigPosition,OnigPosition,int,int,void*), void* arg); +ONIG_EXTERN +int onig_noname_group_capture_is_active(const OnigRegexType *reg); +ONIG_EXTERN +OnigEncoding onig_get_encoding(const OnigRegexType *reg); +ONIG_EXTERN +OnigOptionType onig_get_options(const OnigRegexType *reg); +ONIG_EXTERN +OnigCaseFoldType onig_get_case_fold_flag(const OnigRegexType *reg); +ONIG_EXTERN +const OnigSyntaxType* onig_get_syntax(const OnigRegexType *reg); +ONIG_EXTERN +int onig_set_default_syntax(const OnigSyntaxType* syntax); +ONIG_EXTERN +void onig_copy_syntax(OnigSyntaxType* to, const OnigSyntaxType* from); +ONIG_EXTERN +unsigned int onig_get_syntax_op(const OnigSyntaxType* syntax); +ONIG_EXTERN +unsigned int onig_get_syntax_op2(const OnigSyntaxType* syntax); +ONIG_EXTERN +unsigned int onig_get_syntax_behavior(const OnigSyntaxType* syntax); +ONIG_EXTERN +OnigOptionType onig_get_syntax_options(const OnigSyntaxType* syntax); +ONIG_EXTERN +void onig_set_syntax_op(OnigSyntaxType* syntax, unsigned int op); +ONIG_EXTERN +void onig_set_syntax_op2(OnigSyntaxType* syntax, unsigned int op2); +ONIG_EXTERN +void onig_set_syntax_behavior(OnigSyntaxType* syntax, unsigned int behavior); +ONIG_EXTERN +void onig_set_syntax_options(OnigSyntaxType* syntax, OnigOptionType options); +ONIG_EXTERN +int onig_set_meta_char(OnigSyntaxType* syntax, unsigned int what, OnigCodePoint code); +ONIG_EXTERN +void onig_copy_encoding(OnigEncodingType *to, OnigEncoding from); +ONIG_EXTERN +OnigCaseFoldType onig_get_default_case_fold_flag(void); +ONIG_EXTERN +int onig_set_default_case_fold_flag(OnigCaseFoldType case_fold_flag); +ONIG_EXTERN +unsigned int onig_get_match_stack_limit_size(void); +ONIG_EXTERN +int onig_set_match_stack_limit_size(unsigned int size); +ONIG_EXTERN +unsigned int onig_get_parse_depth_limit(void); +ONIG_EXTERN +int onig_set_parse_depth_limit(unsigned int depth); +ONIG_EXTERN +int onig_end(void); +ONIG_EXTERN +const char* onig_version(void); +ONIG_EXTERN +const char* onig_copyright(void); + +RUBY_SYMBOL_EXPORT_END + +#ifdef __cplusplus +# if 0 +{ /* satisfy cc-mode */ +# endif +} +#endif + +#endif /* ONIGMO_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/oniguruma.h b/ThirdParty/include/ruby/3.2/mac/ruby/oniguruma.h new file mode 100644 index 0000000..dc83754 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/oniguruma.h @@ -0,0 +1,8 @@ +#ifndef ONIGURUMA_H +#define ONIGURUMA_H +#include "onigmo.h" +#define ONIGURUMA +#define ONIGURUMA_VERSION_MAJOR ONIGMO_VERSION_MAJOR +#define ONIGURUMA_VERSION_MINOR ONIGMO_VERSION_MINOR +#define ONIGURUMA_VERSION_TEENY ONIGMO_VERSION_TEENY +#endif /* ONIGURUMA_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/ractor.h b/ThirdParty/include/ruby/3.2/mac/ruby/ractor.h new file mode 100644 index 0000000..7811616 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/ractor.h @@ -0,0 +1,264 @@ +#ifndef RUBY_RACTOR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_RACTOR_H 1 + +/** + * @file + * @author Koichi Sasada + * @date Tue Nov 17 16:39:15 2020 + * @copyright Copyright (C) 2020 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ +#include "internal/dllexport.h" /* RUBY_EXTERN is here */ +#include "internal/fl_type.h" /* FL_TEST_RAW is here */ +#include "internal/special_consts.h" /* RB_SPECIAL_CONSTS_P is here */ +#include "internal/stdbool.h" /* bool is here */ +#include "internal/value.h" /* VALUE is here */ + +/** Type that defines a ractor-local storage. */ +struct rb_ractor_local_storage_type { + + /** + * A function to mark a ractor-local storage. + * + * @param[out] ptr A ractor-local storage. + * @post Ruby objects inside of `ptr` are marked. + */ + void (*mark)(void *ptr); + + /** + * A function to destruct a ractor-local storage. + * + * @param[out] ptr A ractor-local storage. + * @post `ptr` is not a valid pointer. + */ + void (*free)(void *ptr); + // TODO: update +}; + +/** (Opaque) struct that holds a ractor-local storage key. */ +typedef struct rb_ractor_local_key_struct *rb_ractor_local_key_t; + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * `Ractor` class. + * + * @ingroup object + */ +RUBY_EXTERN VALUE rb_cRactor; + +/** + * Queries the standard input of the current Ractor that is calling this + * function. + * + * @return An IO. + * @note This can be different from the process-global one. + */ +VALUE rb_ractor_stdin(void); + +/** + * Queries the standard output of the current Ractor that is calling this + * function. + * + * @return An IO. + * @note This can be different from the process-global one. + */ +VALUE rb_ractor_stdout(void); + +/** + * Queries the standard error of the current Ractor that is calling this + * function. + * + * @return An IO. + * @note This can be different from the process-global one. + */ +VALUE rb_ractor_stderr(void); + +/** + * Assigns an IO to the standard input of the Ractor that is calling this + * function. + * + * @param[in] io An IO. + * @post `io` is the standard input of the current ractor. + * @post In case the calling Ractor is the main Ractor, it also updates + * the process global ::rb_stdin. + */ +void rb_ractor_stdin_set(VALUE io); + +/** + * Assigns an IO to the standard output of the Ractor that is calling this + * function. + * + * @param[in] io An IO. + * @post `io` is the standard input of the current ractor. + * @post In case the calling Ractor is the main Ractor, it also updates + * the process global ::rb_stdout. + */ +void rb_ractor_stdout_set(VALUE io); + +/** + * Assigns an IO to the standard error of the Ractor that is calling this + * function. + * + * @param[in] io An IO. + * @post `io` is the standard input of the current ractor. + * @post In case the calling Ractor is the main Ractor, it also updates + * the process global ::rb_stderr. + */ +void rb_ractor_stderr_set(VALUE io); + +/** + * Issues a new key. + * + * @return A newly issued ractor-local storage key. Keys issued using this + * key can be associated to a Ruby object per Ractor. + */ +rb_ractor_local_key_t rb_ractor_local_storage_value_newkey(void); + +/** + * Queries the key. + * + * @param[in] key A ractor-local storage key to lookup. + * @retval RUBY_Qnil No such key. + * @retval otherwise A value corresponds to `key` in the current Ractor. + * @note This cannot distinguish between a nonexistent key and a key + * exists and corresponds to ::RUBY_Qnil. + */ +VALUE rb_ractor_local_storage_value(rb_ractor_local_key_t key); + +/** + * Queries the key. + * + * @param[in] key A ractor-local storage key to lookup. + * @param[out] val Return value buffer. + * @retval false `key` not found. + * @retval true `key` found. + * @post `val` is updated so that it has the value corresponds to `key` + * in the current Ractor. + */ +bool rb_ractor_local_storage_value_lookup(rb_ractor_local_key_t key, VALUE *val); + +/** + * Associates the passed value to the passed key. + * + * @param[in] key A ractor-local storage key. + * @param[in] val Arbitrary ruby object. + * @post `val` corresponds to `key` in the current Ractor. + */ +void rb_ractor_local_storage_value_set(rb_ractor_local_key_t key, VALUE val); + +/** + * A type of ractor-local storage that destructs itself using ::ruby_xfree. + * + * @internal + * + * Why it is visible from 3rd party extension libraries is not obvious to + * @shyouhei. + */ +RUBY_EXTERN const struct rb_ractor_local_storage_type rb_ractor_local_storage_type_free; + +/** @alias{rb_ractor_local_storage_type_free} */ +#define RB_RACTOR_LOCAL_STORAGE_TYPE_FREE (&rb_ractor_local_storage_type_free) + +/** + * Extended version of rb_ractor_local_storage_value_newkey(). It additionally + * takes the type of the issuing key. + * + * @param[in] type How the value associated with the issuing key should + * behave. + * @return A newly issued ractor-local storage key, of type `type`. + */ +rb_ractor_local_key_t rb_ractor_local_storage_ptr_newkey(const struct rb_ractor_local_storage_type *type); + +/** + * Identical to rb_ractor_local_storage_value() except the return type. + * + * @param[in] key A ractor-local storage key to lookup. + * @retval NULL No such key. + * @retval otherwise A value corresponds to `key` in the current Ractor. + */ +void *rb_ractor_local_storage_ptr(rb_ractor_local_key_t key); + +/** + * Identical to rb_ractor_local_storage_value_set() except the parameter type. + * + * @param[in] key A ractor-local storage key. + * @param[in] ptr A pointer that conforms `key`'s type. + * @post `ptr` corresponds to `key` in the current Ractor. + */ +void rb_ractor_local_storage_ptr_set(rb_ractor_local_key_t key, void *ptr); + +/** + * Destructively transforms the passed object so that multiple Ractors can + * share it. What is a shareable object and what is not is a nuanced concept, + * and @ko1 says the definition can still change. However extension library + * authors might interest to learn how to use #RUBY_TYPED_FROZEN_SHAREABLE. + * + * @param[out] obj Arbitrary ruby object to modify. + * @exception rb_eRactorError Ractors cannot share `obj` by nature. + * @return Passed `obj`. + * @post Multiple Ractors can share `obj`. + * + * @internal + * + * In case an exception is raised, `obj` remains in an intermediate state where + * some of its part is frozen and others are not. @shyouhei is not sure if it + * is either an intended behaviour, current implementation limitation, or + * simply a bug. Note also that there is no way to "melt" a frozen object. + */ +VALUE rb_ractor_make_shareable(VALUE obj); + +/** + * Identical to rb_ractor_make_shareable(), except it returns a (deep) copy of + * the passed one instead of modifying it in-place. + * + * @param[in] obj Arbitrary ruby object to duplicate. + * @exception rb_eRactorError Ractors cannot share `obj` by nature. + * @return A deep copy of `obj` which is sharable among Ractors. + */ +VALUE rb_ractor_make_shareable_copy(VALUE obj); + +RBIMPL_SYMBOL_EXPORT_END() + +/** + * Queries if the passed object has previously classified as shareable or not. + * This doesn't mean anything in practice... Objects can be shared later. + * Always use rb_ractor_shareable_p() instead. + * + * @param[in] obj Object in question. + * @retval RUBY_FL_SHAREABLE It once was shareable before. + * @retval 0 Otherwise. + */ +#define RB_OBJ_SHAREABLE_P(obj) FL_TEST_RAW((obj), RUBY_FL_SHAREABLE) + +/** + * Queries if multiple Ractors can share the passed object or not. Ractors run + * without protecting each other. Sharing an object among them is basically + * dangerous, disabled by default. However there are objects that are + * extremely carefully implemented to be Ractor-safe; for instance integers + * have such property. This function can classify that. + * + * @param[in] obj Arbitrary ruby object. + * @retval true `obj` is capable of shared across ractors. + * @retval false `obj` cannot travel across ractor boundaries. + */ +static inline bool +rb_ractor_shareable_p(VALUE obj) +{ + bool rb_ractor_shareable_p_continue(VALUE obj); + + if (RB_SPECIAL_CONST_P(obj)) { + return true; + } + else if (RB_OBJ_SHAREABLE_P(obj)) { + return true; + } + else { + return rb_ractor_shareable_p_continue(obj); + } +} + +#endif /* RUBY_RACTOR_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/random.h b/ThirdParty/include/ruby/3.2/mac/ruby/random.h new file mode 100644 index 0000000..39bdb6f --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/random.h @@ -0,0 +1,359 @@ +#ifndef RUBY_RANDOM_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_RANDOM_H 1 +/** + * @file + * @date Sat May 7 11:51:14 JST 2016 + * @copyright 2007-2020 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * + * This is a set of APIs to roll your own subclass of ::rb_cRandom. An + * illustrative example of such PRNG can be found at + * `ext/-test-/ramdom/loop.c`. + */ + +#include "ruby/ruby.h" + +/* + * version + * 0: before versioning; deprecated + * 1: added version, flags and init_32bit function + */ +#define RUBY_RANDOM_INTERFACE_VERSION_MAJOR 1 +#define RUBY_RANDOM_INTERFACE_VERSION_MINOR 0 + +#define RUBY_RANDOM_PASTE_VERSION_SUFFIX(x, y, z) x##_##y##_##z +#define RUBY_RANDOM_WITH_VERSION_SUFFIX(name, major, minor) \ + RUBY_RANDOM_PASTE_VERSION_SUFFIX(name, major, minor) +#define rb_random_data_type \ + RUBY_RANDOM_WITH_VERSION_SUFFIX(rb_random_data_type, \ + RUBY_RANDOM_INTERFACE_VERSION_MAJOR, \ + RUBY_RANDOM_INTERFACE_VERSION_MINOR) +#define RUBY_RANDOM_INTERFACE_VERSION_INITIALIZER \ + {RUBY_RANDOM_INTERFACE_VERSION_MAJOR, RUBY_RANDOM_INTERFACE_VERSION_MINOR} +#define RUBY_RANDOM_INTERFACE_VERSION_MAJOR_MAX 0xff +#define RUBY_RANDOM_INTERFACE_VERSION_MINOR_MAX 0xff + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Base components of the random interface. + * + * @internal + * + * Ideally this could be an empty class if we could assume C++, but in C a + * struct must have at least one field. + */ +struct rb_random_struct { + /** Seed, passed through e.g. `Random.new` */ + VALUE seed; +}; +typedef struct rb_random_struct rb_random_t; /**< @see ::rb_random_struct */ + +RBIMPL_ATTR_NONNULL(()) +/** + * This is the type of functions called when your random object is initialised. + * Passed buffer is the seed object basically. But in Ruby a number can be + * really big. This type of functions accept such big integers as a series of + * machine words. + * + * @param[out] rng Your random struct to fill in. + * @param[in] buf Seed, maybe converted from a bignum. + * @param[in] len Number of words of `buf`. + * @post `rng` is initialised using the passed seeds. + */ +typedef void rb_random_init_func(rb_random_t *rng, const uint32_t *buf, size_t len); + +RBIMPL_ATTR_NONNULL(()) +/** + * This is the type of functions called when your random object is initialised. + * Passed data is the seed integer. + * + * @param[out] rng Your random struct to fill in. + * @param[in] data Seed, single word. + * @post `rng` is initialised using the passed seeds. + */ +typedef void rb_random_init_int32_func(rb_random_t *rng, uint32_t data); + +RBIMPL_ATTR_NONNULL(()) +/** + * This is the type of functions called from your object's `#rand` method. + * + * @param[out] rng Your random struct to extract an integer from. + * @return A random number. + * @post `rng` is consumed somehow. + */ +typedef unsigned int rb_random_get_int32_func(rb_random_t *rng); + +RBIMPL_ATTR_NONNULL(()) +/** + * This is the type of functions called from your object's `#bytes` method. + * + * @param[out] rng Your random struct to extract an integer from. + * @param[out] buf Return buffer of at least `len` bytes length. + * @param[in] len Number of bytes of `buf`. + * @post `rng` is consumed somehow. + * @post `buf` is filled with random bytes. + */ +typedef void rb_random_get_bytes_func(rb_random_t *rng, void *buf, size_t len); + +RBIMPL_ATTR_NONNULL(()) +/** + * This is the type of functions called from your object's `#rand` method. + * + * @param[out] rng Your random struct to extract an integer from. + * @param[in] excl Pass nonzero value here to indicate you don't want 1.0. + * @return A random number of range 0.0 to 1.0. + * @post `rng` is consumed somehow. + */ +typedef double rb_random_get_real_func(rb_random_t *rng, int excl); + +/** PRNG algorithmic interface, analogous to Ruby level classes. */ +typedef struct { + /** Number of bits of seed numbers. */ + size_t default_seed_bits; + + /** + * Major/minor versions of this interface + */ + struct { + uint8_t major, minor; + } version; + + /** + * Reserved flags + */ + uint16_t flags; + + /** Function to initialize from uint32_t array. */ + rb_random_init_func *init; + + /** Function to initialize from single uint32_t. */ + rb_random_init_int32_func *init_int32; + + /** Function to obtain a random integer. */ + rb_random_get_int32_func *get_int32; + + /** + * Function to obtain a series of random bytes. If your PRNG have a native + * method to yield arbitrary number of bytes use that to implement this. + * But in case you lack such things, you can do so by using + * rb_rand_bytes_int32() + * + * ```CXX + * extern rb_random_get_int32_func your_get_int32_func; + * + * void + * your_get_byes_func(rb_random_t *rng, void *buf, size_t len) + * { + * rb_rand_bytes_int32(your_get_int32_func, rng, buf, len); + * } + * ``` + */ + rb_random_get_bytes_func *get_bytes; + + /** + * Function to obtain a random double. If your PRNG have a native method + * to yield a floating point random number use that to implement this. But + * in case you lack such things, you can do so by using + * rb_int_pair_to_real(). + * + * ```CXX + * extern rb_random_get_int32_func your_get_int32_func; + * + * void + * your_get_real_func(rb_random_t *rng, int excl) + * { + * auto a = your_get_int32_func(rng); + * auto b = your_get_int32_func(rng); + * return rb_int_pair_to_real(a, b, excl); + * } + * ``` + */ + rb_random_get_real_func *get_real; +} rb_random_interface_t; + +/** + * This utility macro defines 4 functions named prefix_init, prefix_init_int32, + * prefix_get_int32, prefix_get_bytes. + */ +#define RB_RANDOM_INTERFACE_DECLARE(prefix) \ + static void prefix##_init(rb_random_t *, const uint32_t *, size_t); \ + static void prefix##_init_int32(rb_random_t *, uint32_t); \ + static unsigned int prefix##_get_int32(rb_random_t *); \ + static void prefix##_get_bytes(rb_random_t *, void *, size_t) + +/** + * Identical to #RB_RANDOM_INTERFACE_DECLARE except it also declares + * prefix_get_real. + */ +#define RB_RANDOM_INTERFACE_DECLARE_WITH_REAL(prefix) \ + RB_RANDOM_INTERFACE_DECLARE(prefix); \ + static double prefix##_get_real(rb_random_t *, int) + +/** + * This utility macro expands to the names declared using + * #RB_RANDOM_INTERFACE_DECLARE. Expected to be used inside of a + * ::rb_random_interface_t initialiser: + * + * ```CXX + * RB_RANDOM_INTERFACE_DECLARE(foo); + * + * static inline constexpr rb_random_interface_t foo_interface = { + * 32768, // bits + * RB_RANDOM_INTERFACE_DEFINE(foo), + * }; + * ``` + */ +#define RB_RANDOM_INTERFACE_DEFINE(prefix) \ + RUBY_RANDOM_INTERFACE_VERSION_INITIALIZER, 0, \ + prefix##_init, \ + prefix##_init_int32, \ + prefix##_get_int32, \ + prefix##_get_bytes + +/** + * Identical to #RB_RANDOM_INTERFACE_DEFINE except it also defines + * prefix_get_real. + */ +#define RB_RANDOM_INTERFACE_DEFINE_WITH_REAL(prefix) \ + RB_RANDOM_INTERFACE_DEFINE(prefix), \ + prefix##_get_real + +#define RB_RANDOM_DEFINE_INIT_INT32_FUNC(prefix) \ + static void prefix##_init_int32(rb_random_t *rnd, uint32_t data) \ + { \ + prefix##_init(rnd, &data, 1); \ + } + +#if defined _WIN32 && !defined __CYGWIN__ +typedef rb_data_type_t rb_random_data_type_t; +# define RB_RANDOM_PARENT 0 +#else + +/** This is the type of ::rb_random_data_type. */ +typedef const rb_data_type_t rb_random_data_type_t; + +/** + * This utility macro can be used when you define your own PRNG type: + * + * ```CXX + * static inline constexpr rb_random_interface_t your_if = { + * 0, RB_RANDOM_INTERFACE_DEFINE(your), + * }; + * + * static inline constexpr rb_random_data_type_t your_prng_type = { + * "your PRNG", + * { rb_random_mark, }, + * RB_RANDOM_PARENT, // <<-- HERE + * &your_if, + * 0, + * } + * ``` + */ +# define RB_RANDOM_PARENT &rb_random_data_type +#endif + +/** + * This macro is expected to be called exactly once at the beginning of a + * program, possibly from inside of your `Init_Foo()` function. Depending on + * platforms #RB_RANDOM_PARENT can require a fixup. This routine does that + * when necessary. + */ +#define RB_RANDOM_DATA_INIT_PARENT(random_data) \ + rbimpl_random_data_init_parent(&random_data) + +/** + * This is the implementation of ::rb_data_type_struct::dmark for + * ::rb_random_data_type. In case your PRNG does not involve Ruby objects at + * all (which is quite likely), you can simply reuse it. + * + * @param[out] ptr Target to mark, which is a ::rb_random_t this case. + */ +void rb_random_mark(void *ptr); + +/** + * Initialises an allocated ::rb_random_t instance. Call it from your own + * initialiser appropriately. + * + * @param[out] rnd Your PRNG's base part. + * @post `rnd` is filled with an initial state. + */ +void rb_random_base_init(rb_random_t *rnd); + +/** + * Generates a 64 bit floating point number by concatenating two 32bit unsigned + * integers. + * + * @param[in] a Most significant 32 bits of the result. + * @param[in] b Least significant 32 bits of the result. + * @param[in] excl Whether the result should exclude 1.0 or not. + * @return A double, whose range is either `[0, 1)` or `[0, 1]`. + * @see ::rb_random_interface_t::get_real() + * + * @internal + * + * This in fact has nothing to do with PRNGs. + */ +double rb_int_pair_to_real(uint32_t a, uint32_t b, int excl); + +/** + * Repeatedly calls the passed function over and over again until the passed + * buffer is filled with random bytes. + * + * @param[in] func Generator function. + * @param[out] prng Passed as-is to `func`. + * @param[out] buff Return buffer. + * @param[in] size Number of words of `buff`. + * @post `buff` is filled with random bytes. + * @post `prng` is updated by `func`. + * @see ::rb_random_interface_t::get_bytes() + */ +void rb_rand_bytes_int32(rb_random_get_int32_func *func, rb_random_t *prng, void *buff, size_t size); + +/** + * The data that holds the backend type of ::rb_cRandom. Used as your PRNG's + * ::rb_data_type_struct::parent. + */ +RUBY_EXTERN const rb_data_type_t rb_random_data_type; + +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +/* :TODO: can this function be __attribute__((returns_nonnull)) or not? */ +/** + * Queries the interface of the passed random object. + * + * @param[in] obj An instance (of a subclass) of ::rb_cRandom. + * @return Its corresponding ::rb_random_interface_t interface. + */ +static inline const rb_random_interface_t * +rb_rand_if(VALUE obj) +{ + RBIMPL_ASSERT_OR_ASSUME(RTYPEDDATA_P(obj)); + const struct rb_data_type_struct *t = RTYPEDDATA_TYPE(obj); + const void *ret = t->data; + return RBIMPL_CAST((const rb_random_interface_t *)ret); +} + +RBIMPL_ATTR_NOALIAS() +/** + * @private + * + * This is an implementation detail of #RB_RANDOM_DATA_INIT_PARENT. People + * don't use it directly. + * + * @param[out] random_data Region to fill. + * @post ::rb_random_data_type is filled appropriately. + */ +static inline void +rbimpl_random_data_init_parent(rb_random_data_type_t *random_data) +{ +#if defined _WIN32 && !defined __CYGWIN__ + random_data->parent = &rb_random_data_type; +#endif +} + +#endif /* RUBY_RANDOM_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/re.h b/ThirdParty/include/ruby/3.2/mac/ruby/re.h new file mode 100644 index 0000000..3892d6e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/re.h @@ -0,0 +1,147 @@ +#ifndef RUBY_RE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_RE_H 1 +/** + * @file + * @author $Author$ + * @date Thu Sep 30 14:18:32 JST 1993 + * @copyright Copyright (C) 1993-2007 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ +#include "ruby/internal/config.h" + +#ifdef HAVE_SYS_TYPES_H +# include +#endif + +#include + +#include "ruby/regex.h" +#include "ruby/internal/core/rmatch.h" +#include "ruby/internal/dllexport.h" + +struct re_registers; /* Defined in onigmo.h */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Creates a new instance of ::rb_cRegexp. It can be seen as a specialised + * version of rb_reg_new_str() where it does not take options. + * + * @param[in] str Source code in String. + * @return Allocated new instance of ::rb_cRegexp. + */ +VALUE rb_reg_regcomp(VALUE str); + +/** + * Runs the passed regular expression over the passed string. Unlike + * rb_reg_search() this function also takes position and direction of the + * search, which make it possible for this function to run from in middle of + * the string. + * + * @param[in] re Regular expression to execute. + * @param[in] str Target string to search. + * @param[in] pos Offset in `str` to start searching, in bytes. + * @param[in] dir `pos`' direction; 0 means left-to-right, 1 for + * the opposite. + * @exception rb_eArgError `re` is broken. + * @exception rb_eRegexpError `re` is malformed. + * @retval -1 Match failed. + * @retval otherwise Offset of first such byte where match happened. + * @post `Regexp.last_match` is updated. + * @post `$&`, `$~`, etc., are updated. + * + * @internal + * + * Distinction between raising ::rb_eArgError and ::rb_eRegexpError is not + * obvious, at least to @shyouhei. + */ +long rb_reg_search(VALUE re, VALUE str, long pos, int dir); + +/** + * Substitution. This is basically the implementation of `String#sub`. Also + * `String#gsub` repeatedly calls this function. + * + * @param[in] repl Replacement string, e.g. `"\\1\\2"` + * @param[in] src Source string, to be replaced. + * @param[in] regs Matched data generated by applying `rexp` to `src`. + * @param[in] rexp Regular expression. + * @return A substituted string. + * + * @internal + * + * This function does not check for encoding compatibility. `String#sub!` + * etc. employ their own checker. + * + * `regs` should have been `const struct re_registers *` because it is read + * only. Kept as-is for compatibility. + */ +VALUE rb_reg_regsub(VALUE repl, VALUE src, struct re_registers *regs, VALUE rexp); + +/** + * Tell us if this is a wrong idea, but it seems this function has no usage at + * all. Just remains here for theoretical backwards compatibility. + * + * @param[in] re Regular expression to execute. + * @param[in] str Target string to search. + * @param[in] pos Offset in `str` to start searching, in bytes. + * @param[in] dir `pos`' direction; 0 means left-to-right, 1 for + * the opposite. + * @return Adjusted nearest offset to `pos` inside of `str`, where is a + * character boundary. + * + */ +long rb_reg_adjust_startpos(VALUE re, VALUE str, long pos, int dir); + +/** + * Escapes any characters that would have special meaning in a regular + * expression. + * + * @param[in] str Target string to escape. + * @return A copy of `str` whose contents are escaped. + */ +VALUE rb_reg_quote(VALUE str); + +/** + * Exercises various checks and preprocesses so that the given regular + * expression can be applied to the given string. The preprocess here includes + * (but not limited to) for instance encoding conversion. + * + * @param[in] re Target regular expression. + * @param[in] str What `re` is about to run on. + * @exception rb_eArgError `re` does not fit for `str`. + * @exception rb_eEncCompatError `re` and `str` are incompatible. + * @exception rb_eRegexpError `re` is malformed. + * @return A preprocessesed pattern buffer ready to be applied to `str`. + * @note The return value is manages by our GC. Don't free. + * + * @internal + * + * The return type, `regex_t *`, is defined in ``, _and_ + * _conflicts_ with POSIX's ``. We can no longer save the situation + * at this point. Just don't mix the two. + */ +regex_t *rb_reg_prepare_re(VALUE re, VALUE str); + +/** + * Duplicates a match data. This is roughly the same as `onig_region_copy()`, + * except it tries to GC when there is not enough memory. + * + * @param[out] dst Target registers to fill. + * @param[in] src Source registers to duplicate. + * @exception rb_eNoMemError Not enough memory. + * @retval 0 Successful + * @retval ONIGERR_MEMORY Not enough memory, even after GC (unlikely). + * @post `dst` has identical contents to `src`. + * + * @internal + * + * It seems this function is here for `ext/strscan` and nothing else. + */ +int rb_reg_region_copy(struct re_registers *dst, const struct re_registers *src); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_RE_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/regex.h b/ThirdParty/include/ruby/3.2/mac/ruby/regex.h new file mode 100644 index 0000000..5327817 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/regex.h @@ -0,0 +1,43 @@ +#ifndef ONIGURUMA_REGEX_H /*-*-C++-*-vi:se ft=cpp:*/ +#define ONIGURUMA_REGEX_H 1 +/** + * @author $Author$ + * @copyright Copyright (C) 1993-2007 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ +#if defined(__cplusplus) +extern "C" { +#if 0 +} /* satisfy cc-mode */ +#endif +#endif + +#ifdef RUBY +#include "ruby/oniguruma.h" +#else +#include "oniguruma.h" +#endif + +RUBY_SYMBOL_EXPORT_BEGIN + +#ifndef ONIG_RUBY_M17N + +ONIG_EXTERN OnigEncoding OnigEncDefaultCharEncoding; + +#define mbclen(p,e,enc) rb_enc_mbclen((p),(e),(enc)) + +#endif /* ifndef ONIG_RUBY_M17N */ + +RUBY_SYMBOL_EXPORT_END + +#if defined(__cplusplus) +#if 0 +{ /* satisfy cc-mode */ +#endif +} /* extern "C" { */ +#endif + +#endif /* ONIGURUMA_REGEX_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/ruby.h b/ThirdParty/include/ruby/3.2/mac/ruby/ruby.h new file mode 100644 index 0000000..444940c --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/ruby.h @@ -0,0 +1,312 @@ +#ifndef RUBY_RUBY_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_RUBY_H 1 +/** + * @file + * @author $Author$ + * @date Thu Jun 10 14:26:32 JST 1993 + * @copyright Copyright (C) 1993-2008 Yukihiro Matsumoto + * @copyright Copyright (C) 2000 Network Applied Communication Laboratory, Inc. + * @copyright Copyright (C) 2000 Information-technology Promotion Agency, Japan + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ +#include "ruby/internal/config.h" + +/* @shyouhei doesn't understand why we need at this very + * beginning of the entire circus. */ +#ifdef HAVE_INTRINSICS_H +# include +#endif + +#include + +#include "defines.h" +#include "ruby/internal/abi.h" +#include "ruby/internal/anyargs.h" +#include "ruby/internal/arithmetic.h" +#include "ruby/internal/core.h" +#include "ruby/internal/ctype.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/error.h" +#include "ruby/internal/eval.h" +#include "ruby/internal/event.h" +#include "ruby/internal/fl_type.h" +#include "ruby/internal/gc.h" +#include "ruby/internal/glob.h" +#include "ruby/internal/globals.h" +#include "ruby/internal/has/warning.h" +#include "ruby/internal/interpreter.h" +#include "ruby/internal/iterator.h" +#include "ruby/internal/memory.h" +#include "ruby/internal/method.h" +#include "ruby/internal/module.h" +#include "ruby/internal/newobj.h" +#include "ruby/internal/rgengc.h" +#include "ruby/internal/scan_args.h" +#include "ruby/internal/special_consts.h" +#include "ruby/internal/symbol.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" +#include "ruby/internal/variable.h" +#include "ruby/assert.h" +#include "ruby/backward/2/assume.h" +#include "ruby/backward/2/inttypes.h" +#include "ruby/backward/2/limits.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* Module#methods, #singleton_methods and so on return Symbols */ +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define USE_SYMBOL_AS_METHOD_NAME 1 + +/** + * Converts an object to a path. It first tries `#to_path` method if any, then + * falls back to `#to_str` method. + * + * @param[in] obj Arbitrary ruby object. + * @exception rb_eArgError `obj` contains a NUL byte. + * @exception rb_eTypeError `obj` is not path-ish. + * @exception rb_eEncCompatError No encoding conversion from `obj` to path. + * @return Converted path object. + */ +VALUE rb_get_path(VALUE obj); + +/** + * Ensures that the parameter object is a path. + * + * @param[in,out] v Arbitrary ruby object. + * @exception rb_eArgError `v` contains a NUL byte. + * @exception rb_eTypeError `v` is not path-ish. + * @exception rb_eEncCompatError `v` is not path-compatible. + * @post `v` is a path. + */ +#define FilePathValue(v) (RB_GC_GUARD(v) = rb_get_path(v)) + +/** + * @deprecated This function is an alias of rb_get_path() now. The part that + * did "no_checksafe" was deleted. It remains here because of no + * harm. + */ +VALUE rb_get_path_no_checksafe(VALUE); + +/** + * @deprecated This macro is an alias of #FilePathValue now. The part that did + * "String" was deleted. It remains here because of no harm. + */ +#define FilePathStringValue(v) ((v) = rb_get_path(v)) + +/** @cond INTERNAL_MACRO */ +#if defined(HAVE_BUILTIN___BUILTIN_CONSTANT_P) && defined(HAVE_STMT_AND_DECL_IN_EXPR) +# define rb_varargs_argc_check_runtime(argc, vargc) \ + (((argc) <= (vargc)) ? (argc) : \ + (rb_fatal("argc(%d) exceeds actual arguments(%d)", \ + argc, vargc), 0)) +# define rb_varargs_argc_valid_p(argc, vargc) \ + ((argc) == 0 ? (vargc) <= 1 : /* [ruby-core:85266] [Bug #14425] */ \ + (argc) == (vargc)) +# if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P) +# ifdef HAVE_ATTRIBUTE_ERRORFUNC +ERRORFUNC((" argument length doesn't match"), int rb_varargs_bad_length(int,int)); +# else +# define rb_varargs_bad_length(argc, vargc) \ + ((argc)/rb_varargs_argc_valid_p(argc, vargc)) +# endif +# define rb_varargs_argc_check(argc, vargc) \ + __builtin_choose_expr(__builtin_constant_p(argc), \ + (rb_varargs_argc_valid_p(argc, vargc) ? (argc) : \ + rb_varargs_bad_length(argc, vargc)), \ + rb_varargs_argc_check_runtime(argc, vargc)) +# else +# define rb_varargs_argc_check(argc, vargc) \ + rb_varargs_argc_check_runtime(argc, vargc) +# endif +#endif +/** @endcond */ + +/** + * Queries the name of the passed class. + * + * @param[in] klass An instance of a class. + * @return The name of `klass`. + * @note Return value is managed by our GC. Don't free. + */ +const char *rb_class2name(VALUE klass); + +/** + * Queries the name of the class of the passed object. + * + * @param[in] obj Arbitrary ruby object. + * @return The name of the class of `obj`. + * @note Return value is managed by our GC. Don't free. + */ +const char *rb_obj_classname(VALUE obj); + +/** + * Inspects an object. It first calls the argument's `#inspect` method, then + * feeds its result string into ::rb_stdout. + * + * This is identical to Ruby level `Kernel#p`, except it takes only one object. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +void rb_p(VALUE obj); + +/** + * This function is an optimised version of calling `#==`. It checks equality + * between two objects by first doing a fast identity check using using C's + * `==` (same as `BasicObject#equal?`). If that check fails, it calls `#==` + * dynamically. This optimisation actually affects semantics, because when + * `#==` returns false for the same object obj, `rb_equal(obj, obj)` would + * still return true. This happens for `Float::NAN`, where `Float::NAN == + * Float::NAN` is `false`, but `rb_equal(Float::NAN, Float::NAN)` is `true`. + * + * @param[in] lhs Comparison LHS. + * @param[in] rhs Comparison RHS. + * @retval RUBY_Qtrue They are the same. + * @retval RUBY_Qfalse They are different. + */ +VALUE rb_equal(VALUE lhs, VALUE rhs); + +/** + * Identical to rb_require_string(), except it takes C's string instead of + * Ruby's. + * + * @param[in] feature Name of a feature, e.g. `"json"`. + * @exception rb_eLoadError No such feature. + * @exception rb_eRuntimeError `$"` is frozen; unable to push. + * @retval RUBY_Qtrue The feature is loaded for the first time. + * @retval RUBY_Qfalse The feature has already been loaded. + * @post `$"` is updated. + */ +VALUE rb_require(const char *feature); + +#include "ruby/intern.h" + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define RUBY_VM 1 /* YARV */ + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define HAVE_NATIVETHREAD + +/** + * Queries if the thread which calls this function is a ruby's thread. + * "Ruby's" in this context is a thread created using one of our APIs like + * rb_thread_create(). There are distinctions between ruby's and other + * threads. For instance calling ruby methods are allowed only from inside of + * a ruby's thread. + * + * @retval 1 The current thread is a Ruby's thread. + * @retval 0 The current thread is a random thread from outside of Ruby. + */ +int ruby_native_thread_p(void); + +/** + * @private + * + * This macro is for internal use. Must be a mistake to place here. + */ +#define InitVM(ext) {void InitVM_##ext(void);InitVM_##ext();} + +RBIMPL_ATTR_NONNULL((3)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 4) +/** + * Our own locale-insensitive version of `snprintf(3)`. It can also be seen as + * a routine identical to rb_sprintf(), except it writes back to the passed + * buffer instead of allocating a new Ruby object. + * + * @param[out] str Return buffer + * @param[in] n Number of bytes of `str`. + * @param[in] fmt A `printf`-like format specifier. + * @param[in] ... Variadic number of contents to format. + * @return Number of bytes that would have been written to `str`, if `n` + * was large enough. Comparing this to `n` can give you insights + * that the buffer is too small or too big. Especially passing 0 + * to `n` gives you the exact number of bytes necessary to hold + * the result string without writing anything to anywhere. + * @post `str` holds up to `n-1` bytes of formatted contents (and the + * terminating NUL character.) + */ +int ruby_snprintf(char *str, size_t n, char const *fmt, ...); + +RBIMPL_ATTR_NONNULL((3)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 0) +/** + * Identical to ruby_snprintf(), except it takes a `va_list`. It can also be + * seen as a routine identical to rb_vsprintf(), except it writes back to the + * passed buffer instead of allocating a new Ruby object. + * + * @param[out] str Return buffer + * @param[in] n Number of bytes of `str`. + * @param[in] fmt A `printf`-like format specifier. + * @param[in] ap Contents to format. + * @return Number of bytes that would have been written to `str`, if `n` + * was large enough. Comparing this to `n` can give you insights + * that the buffer is too small or too big. Especially passing 0 + * to `n` gives you the exact number of bytes necessary to hold + * the result string without writing anything to anywhere. + * @post `str` holds up to `n-1` bytes of formatted contents (and the + * terminating NUL character.) + */ +int ruby_vsnprintf(char *str, size_t n, char const *fmt, va_list ap); + +/** @cond INTERNAL_MACRO */ +#if RBIMPL_HAS_WARNING("-Wgnu-zero-variadic-macro-arguments") +# /* Skip it; clang -pedantic doesn't like the following */ +#elif defined(__GNUC__) && defined(HAVE_VA_ARGS_MACRO) && defined(__OPTIMIZE__) +# define rb_yield_values(argc, ...) \ +__extension__({ \ + const int rb_yield_values_argc = (argc); \ + const VALUE rb_yield_values_args[] = {__VA_ARGS__}; \ + const int rb_yield_values_nargs = \ + (int)(sizeof(rb_yield_values_args) / sizeof(VALUE)); \ + rb_yield_values2( \ + rb_varargs_argc_check(rb_yield_values_argc, rb_yield_values_nargs), \ + rb_yield_values_nargs ? rb_yield_values_args : NULL); \ + }) + +# define rb_funcall(recv, mid, argc, ...) \ +__extension__({ \ + const int rb_funcall_argc = (argc); \ + const VALUE rb_funcall_args[] = {__VA_ARGS__}; \ + const int rb_funcall_nargs = \ + (int)(sizeof(rb_funcall_args) / sizeof(VALUE)); \ + rb_funcallv(recv, mid, \ + rb_varargs_argc_check(rb_funcall_argc, rb_funcall_nargs), \ + rb_funcall_nargs ? rb_funcall_args : NULL); \ + }) +#endif +/** @endcond */ + +#ifndef RUBY_DONT_SUBST +#include "ruby/subst.h" +#endif + +#if !defined RUBY_EXPORT && !defined RUBY_NO_OLD_COMPATIBILITY +# include "ruby/backward.h" +#endif + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_RUBY_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/st.h b/ThirdParty/include/ruby/3.2/mac/ruby/st.h new file mode 100644 index 0000000..1e4bb80 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/st.h @@ -0,0 +1,197 @@ +/* This is a public domain general purpose hash table package + originally written by Peter Moore @ UCB. + + The hash table data structures were redesigned and the package was + rewritten by Vladimir Makarov . */ + +#ifndef RUBY_ST_H +#define RUBY_ST_H 1 + +#if defined(__cplusplus) +extern "C" { +#if 0 +} /* satisfy cc-mode */ +#endif +#endif + +#include "ruby/defines.h" + +RUBY_SYMBOL_EXPORT_BEGIN + +#if SIZEOF_LONG == SIZEOF_VOIDP +typedef unsigned long st_data_t; +#elif SIZEOF_LONG_LONG == SIZEOF_VOIDP +typedef unsigned LONG_LONG st_data_t; +#else +# error ---->> st.c requires sizeof(void*) == sizeof(long) or sizeof(LONG_LONG) to be compiled. <<---- +#endif +#define ST_DATA_T_DEFINED + +#ifndef CHAR_BIT +# ifdef HAVE_LIMITS_H +# include +# else +# define CHAR_BIT 8 +# endif +#endif +#ifndef _ +# define _(args) args +#endif +#ifndef ANYARGS +# ifdef __cplusplus +# define ANYARGS ... +# else +# define ANYARGS +# endif +#endif + +typedef struct st_table st_table; + +typedef st_data_t st_index_t; + +/* Maximal value of unsigned integer type st_index_t. */ +#define MAX_ST_INDEX_VAL (~(st_index_t) 0) + +typedef int st_compare_func(st_data_t, st_data_t); +typedef st_index_t st_hash_func(st_data_t); + +typedef char st_check_for_sizeof_st_index_t[SIZEOF_VOIDP == (int)sizeof(st_index_t) ? 1 : -1]; +#define SIZEOF_ST_INDEX_T SIZEOF_VOIDP + +struct st_hash_type { + int (*compare)(st_data_t, st_data_t); /* st_compare_func* */ + st_index_t (*hash)(st_data_t); /* st_hash_func* */ +}; + +#define ST_INDEX_BITS (SIZEOF_ST_INDEX_T * CHAR_BIT) + +#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR) && defined(HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P) +# define ST_DATA_COMPATIBLE_P(type) \ + __builtin_choose_expr(__builtin_types_compatible_p(type, st_data_t), 1, 0) +#else +# define ST_DATA_COMPATIBLE_P(type) 0 +#endif + +typedef struct st_table_entry st_table_entry; + +struct st_table_entry; /* defined in st.c */ + +struct st_table { + /* Cached features of the table -- see st.c for more details. */ + unsigned char entry_power, bin_power, size_ind; + /* How many times the table was rebuilt. */ + unsigned int rebuilds_num; + const struct st_hash_type *type; + /* Number of entries currently in the table. */ + st_index_t num_entries; + /* Array of bins used for access by keys. */ + st_index_t *bins; + /* Start and bound index of entries in array entries. + entries_starts and entries_bound are in interval + [0,allocated_entries]. */ + st_index_t entries_start, entries_bound; + /* Array of size 2^entry_power. */ + st_table_entry *entries; +}; + +#define st_is_member(table,key) st_lookup((table),(key),(st_data_t *)0) + +enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK, ST_REPLACE}; + +st_table *rb_st_init_table(const struct st_hash_type *); +#define st_init_table rb_st_init_table +st_table *rb_st_init_table_with_size(const struct st_hash_type *, st_index_t); +#define st_init_table_with_size rb_st_init_table_with_size +st_table *rb_st_init_numtable(void); +#define st_init_numtable rb_st_init_numtable +st_table *rb_st_init_numtable_with_size(st_index_t); +#define st_init_numtable_with_size rb_st_init_numtable_with_size +st_table *rb_st_init_strtable(void); +#define st_init_strtable rb_st_init_strtable +st_table *rb_st_init_strtable_with_size(st_index_t); +#define st_init_strtable_with_size rb_st_init_strtable_with_size +st_table *rb_st_init_strcasetable(void); +#define st_init_strcasetable rb_st_init_strcasetable +st_table *rb_st_init_strcasetable_with_size(st_index_t); +#define st_init_strcasetable_with_size rb_st_init_strcasetable_with_size +int rb_st_delete(st_table *, st_data_t *, st_data_t *); /* returns 0:notfound 1:deleted */ +#define st_delete rb_st_delete +int rb_st_delete_safe(st_table *, st_data_t *, st_data_t *, st_data_t); +#define st_delete_safe rb_st_delete_safe +int rb_st_shift(st_table *, st_data_t *, st_data_t *); /* returns 0:notfound 1:deleted */ +#define st_shift rb_st_shift +int rb_st_insert(st_table *, st_data_t, st_data_t); +#define st_insert rb_st_insert +int rb_st_insert2(st_table *, st_data_t, st_data_t, st_data_t (*)(st_data_t)); +#define st_insert2 rb_st_insert2 +int rb_st_lookup(st_table *, st_data_t, st_data_t *); +#define st_lookup rb_st_lookup +int rb_st_get_key(st_table *, st_data_t, st_data_t *); +#define st_get_key rb_st_get_key +typedef int st_update_callback_func(st_data_t *key, st_data_t *value, st_data_t arg, int existing); +/* *key may be altered, but must equal to the old key, i.e., the + * results of hash() are same and compare() returns 0, otherwise the + * behavior is undefined */ +int rb_st_update(st_table *table, st_data_t key, st_update_callback_func *func, st_data_t arg); +#define st_update rb_st_update +typedef int st_foreach_callback_func(st_data_t, st_data_t, st_data_t); +typedef int st_foreach_check_callback_func(st_data_t, st_data_t, st_data_t, int); +int rb_st_foreach_with_replace(st_table *tab, st_foreach_check_callback_func *func, st_update_callback_func *replace, st_data_t arg); +#define st_foreach_with_replace rb_st_foreach_with_replace +int rb_st_foreach(st_table *, st_foreach_callback_func *, st_data_t); +#define st_foreach rb_st_foreach +int rb_st_foreach_check(st_table *, st_foreach_check_callback_func *, st_data_t, st_data_t); +#define st_foreach_check rb_st_foreach_check +st_index_t rb_st_keys(st_table *table, st_data_t *keys, st_index_t size); +#define st_keys rb_st_keys +st_index_t rb_st_keys_check(st_table *table, st_data_t *keys, st_index_t size, st_data_t never); +#define st_keys_check rb_st_keys_check +st_index_t rb_st_values(st_table *table, st_data_t *values, st_index_t size); +#define st_values rb_st_values +st_index_t rb_st_values_check(st_table *table, st_data_t *values, st_index_t size, st_data_t never); +#define st_values_check rb_st_values_check +void rb_st_add_direct(st_table *, st_data_t, st_data_t); +#define st_add_direct rb_st_add_direct +void rb_st_free_table(st_table *); +#define st_free_table rb_st_free_table +void rb_st_cleanup_safe(st_table *, st_data_t); +#define st_cleanup_safe rb_st_cleanup_safe +void rb_st_clear(st_table *); +#define st_clear rb_st_clear +st_table *rb_st_copy(st_table *); +#define st_copy rb_st_copy +CONSTFUNC(int rb_st_numcmp(st_data_t, st_data_t)); +#define st_numcmp rb_st_numcmp +CONSTFUNC(st_index_t rb_st_numhash(st_data_t)); +#define st_numhash rb_st_numhash +PUREFUNC(int rb_st_locale_insensitive_strcasecmp(const char *s1, const char *s2)); +#define st_locale_insensitive_strcasecmp rb_st_locale_insensitive_strcasecmp +PUREFUNC(int rb_st_locale_insensitive_strncasecmp(const char *s1, const char *s2, size_t n)); +#define st_locale_insensitive_strncasecmp rb_st_locale_insensitive_strncasecmp +#define st_strcasecmp rb_st_locale_insensitive_strcasecmp +#define st_strncasecmp rb_st_locale_insensitive_strncasecmp +PUREFUNC(size_t rb_st_memsize(const st_table *)); +#define st_memsize rb_st_memsize +PUREFUNC(st_index_t rb_st_hash(const void *ptr, size_t len, st_index_t h)); +#define st_hash rb_st_hash +CONSTFUNC(st_index_t rb_st_hash_uint32(st_index_t h, uint32_t i)); +#define st_hash_uint32 rb_st_hash_uint32 +CONSTFUNC(st_index_t rb_st_hash_uint(st_index_t h, st_index_t i)); +#define st_hash_uint rb_st_hash_uint +CONSTFUNC(st_index_t rb_st_hash_end(st_index_t h)); +#define st_hash_end rb_st_hash_end +CONSTFUNC(st_index_t rb_st_hash_start(st_index_t h)); +#define st_hash_start(h) ((st_index_t)(h)) + +void rb_hash_bulk_insert_into_st_table(long, const VALUE *, VALUE); + +RUBY_SYMBOL_EXPORT_END + +#if defined(__cplusplus) +#if 0 +{ /* satisfy cc-mode */ +#endif +} /* extern "C" { */ +#endif + +#endif /* RUBY_ST_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/subst.h b/ThirdParty/include/ruby/3.2/mac/ruby/subst.h new file mode 100644 index 0000000..d7b9a63 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/subst.h @@ -0,0 +1,26 @@ +#ifndef RUBY_SUBST_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_SUBST_H 1 +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ + +#undef snprintf +#undef vsnprintf +#define snprintf ruby_snprintf +#define vsnprintf ruby_vsnprintf + +#ifdef BROKEN_CLOSE +#undef getpeername +#define getpeername ruby_getpeername +#undef getsockname +#define getsockname ruby_getsockname +#undef shutdown +#define shutdown ruby_shutdown +#undef close +#define close ruby_close +#endif +#endif diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/thread.h b/ThirdParty/include/ruby/3.2/mac/ruby/thread.h new file mode 100644 index 0000000..0b5b1ca --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/thread.h @@ -0,0 +1,235 @@ +#ifndef RUBY_THREAD_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_THREAD_H 1 +/** + * @file + * @author $Author: matz $ + * @date Tue Jul 10 17:35:43 JST 2012 + * @copyright Copyright (C) 2007 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/intern/thread.h" /* rb_unblock_function_t */ +#include "ruby/internal/dllexport.h" + +/** + * @name Flags for rb_nogvl() + * + * @{ + */ + +/** + * Passing this flag to rb_nogvl() prevents it from checking interrupts. + * Interrupts can impact your program negatively. For instance consider + * following callback function: + * + * ```CXX + * static inline int fd; // set elsewhere. + * static inline auto callback(auto buf) { + * auto tmp = ruby_xmalloc(BUFSIZ); + * auto ret = ruby_xmalloc(sizeof(ssize_t)); // (a) + * auto n = read(fd, tmp, BUFSIZ); // (b) + * memcpy(buf, tmp, n); // (c) + * memcpy(ret, n, sizeof(n)); + * ruby_xfree(tmp); + * return ret; + * } + * ``` + * + * Here, if it gets interrupted at (a) or (b), `read(2)` is cancelled and this + * function leaks memory (which is not a good thing of course, but...). But if + * it gets interrupted at (c), where `read(2)` is already done, interruption is + * way more catastrophic because what was read gets lost. To reroute this kind + * of problem you should set this flag. And check interrupts elsewhere at your + * own risk. + */ +#define RB_NOGVL_INTR_FAIL (0x1) + +/** + * Passing this flag to rb_nogvl() indicates that the passed UBF is + * async-signal-safe. An UBF could be async safe, and that makes things + * simpler. However async unsafe UBFs are just okay. If unsure, you can + * safely leave it unspecified. + * + * @internal + * + * This makes sense only in case of POSIX threads. + */ +#define RB_NOGVL_UBF_ASYNC_SAFE (0x2) + +/** @} */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +RBIMPL_ATTR_NONNULL((1)) +/** + * (Re-)acquires the GVL. This manoeuvre makes it possible for an out-of-GVL + * routine to one-shot call a ruby method. + * + * What this function does: + * + * 1. Blocks until it acquires the GVL. + * 2. Calls the passed function. + * 3. Releases the GVL. + * 4. Returns what was returned form the passed function. + * + * @param[in] func What to call with GVL. + * @param[in,out] data1 Passed as-is to `func`. + * @return What was returned from `func`. + * @warning `func` must not return a Ruby object. If it did such return + * value would escape from GC's scope; would not be marked. + * @warning Global escapes from this function just yield whatever fatal + * undefined behaviours. You must make sure that `func` does + * not raise, by properly rescuing everything using + * e.g. rb_protect(). + * @warning You cannot convert a non-Ruby thread into a Ruby thread + * using this API. This function makes sense only from inside + * of a rb_thread_call_without_gvl()'s callback. + */ +void *rb_thread_call_with_gvl(void *(*func)(void *), void *data1); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Allows the passed function to run in parallel with other Ruby threads. + * + * What this function does: + * + * 1. Checks (and handles) pending interrupts. + * 2. Releases the GVL. (Others can run here in parallel...) + * 3. Calls the passed function. + * 4. Blocks until it re-acquires the GVL. + * 5. Checks interrupts that happened between 2 to 4. + * + * In case other threads interfaced with this thread using rb_thread_kill() + * etc., the passed UBF is additionally called. See ::rb_unblock_function_t + * for details. + * + * Unlike rb_thread_call_without_gvl2() this function also reacts to signals + * etc. + * + * @param[in] func A function to call without GVL. + * @param[in,out] data1 Passed as-is to `func`. + * @param[in] ubf An UBF to cancel `func`. + * @param[in,out] data2 Passed as-is to `ubf`. + * @return What `func` returned, or 0 in case `ubf` cancelled `func`. + * @warning You cannot use most of Ruby C APIs like calling methods or + * raising exceptions from any of the functions passed to it. + * If that is dead necessary use rb_thread_call_with_gvl() to + * re-acquire the GVL. + * @warning In short, this API is difficult. @ko1 recommends you to use + * other ways if any. We lack experiences to use this API. If + * you find any corner cases etc., please report it to the + * devs. + * @warning Releasing and re-acquiring the GVL are expensive operations. + * For a short-running `func`, it might be faster to just call + * `func` with blocking everything else. Be sure to benchmark + * your code to see if it is actually worth releasing the GVL. + */ +void *rb_thread_call_without_gvl(void *(*func)(void *), void *data1, + rb_unblock_function_t *ubf, void *data2); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Identical to rb_thread_call_without_gvl(), except it does not interface with + * signals etc. As described in #RB_NOGVL_INTR_FAIL, interrupts can hurt you. + * In case this function detects an interrupt, it returns immediately. You can + * record progress of your callback and check it after returning from this + * function. + * + * What this function does: + * + * 1. Checks for pending interrupts and if any, just returns. + * 2. Releases the GVL. (Others can run here in parallel...) + * 3. Calls the passed function. + * 4. Blocks until it re-acquires the GVL. + * + * @param[in] func A function to call without GVL. + * @param[in,out] data1 Passed as-is to `func`. + * @param[in] ubf An UBF to cancel `func`. + * @param[in,out] data2 Passed as-is to `ubf`. + * @return What `func` returned, or 0 in case `func` did not return. + */ +void *rb_thread_call_without_gvl2(void *(*func)(void *), void *data1, + rb_unblock_function_t *ubf, void *data2); + +/* + * XXX: unstable/unapproved - out-of-tree code should NOT not depend + * on this until it hits Ruby 2.6.1 + */ + +RBIMPL_ATTR_NONNULL((1)) +/** + * Identical to rb_thread_call_without_gvl(), except it additionally takes + * "flags" that change the behaviour. + * + * @param[in] func A function to call without GVL. + * @param[in,out] data1 Passed as-is to `func`. + * @param[in] ubf An UBF to cancel `func`. + * @param[in,out] data2 Passed as-is to `ubf`. + * @param[in] flags Flags. + * @return What `func` returned, or 0 in case `func` did not return. + */ +void *rb_nogvl(void *(*func)(void *), void *data1, + rb_unblock_function_t *ubf, void *data2, + int flags); + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define RUBY_CALL_WO_GVL_FLAG_SKIP_CHECK_INTS_AFTER 0x01 + +/** + * @private + * @deprecated It seems even in the old days it made no sense...? + */ +#define RUBY_CALL_WO_GVL_FLAG_SKIP_CHECK_INTS_ + +#define RUBY_INTERNAL_THREAD_EVENT_STARTED 1 << 0 /** thread started */ +#define RUBY_INTERNAL_THREAD_EVENT_READY 1 << 1 /** acquiring GVL */ +#define RUBY_INTERNAL_THREAD_EVENT_RESUMED 1 << 2 /** acquired GVL */ +#define RUBY_INTERNAL_THREAD_EVENT_SUSPENDED 1 << 3 /** released GVL */ +#define RUBY_INTERNAL_THREAD_EVENT_EXITED 1 << 4 /** thread terminated */ +#define RUBY_INTERNAL_THREAD_EVENT_MASK 0xff /** All Thread events */ + +typedef void rb_internal_thread_event_data_t; // for future extension. + +typedef void (*rb_internal_thread_event_callback)(rb_event_flag_t event, + const rb_internal_thread_event_data_t *event_data, + void *user_data); +typedef struct rb_internal_thread_event_hook rb_internal_thread_event_hook_t; + +/** + * Registers a thread event hook function. + * + * @param[in] func A callback. + * @param[in] events A set of events that `func` should run. + * @param[in] data Passed as-is to `func`. + * @return An opaque pointer to the hook, to unregister it later. + * @note This functionality is a noop on Windows. + * @warning This function MUST not be called from a thread event callback. + */ +rb_internal_thread_event_hook_t *rb_internal_thread_add_event_hook( + rb_internal_thread_event_callback func, rb_event_flag_t events, + void *data); + + +/** + * Unregister the passed hook. + * + * @param[in] hook. The hook to unregister. + * @return Wether the hook was found and unregistered. + * @note This functionality is a noop on Windows. + * @warning This function MUST not be called from a thread event callback. +*/ +bool rb_internal_thread_remove_event_hook( + rb_internal_thread_event_hook_t * hook); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_THREAD_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/thread_native.h b/ThirdParty/include/ruby/3.2/mac/ruby/thread_native.h new file mode 100644 index 0000000..c23b15e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/thread_native.h @@ -0,0 +1,205 @@ +#ifndef RUBY_THREAD_NATIVE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_THREAD_NATIVE_H 1 +/** + * @file + * @author $Author: ko1 $ + * @date Wed May 14 19:37:31 2014 + * @copyright Copyright (C) 2014 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * + * This file contains wrapper APIs for native thread primitives + * which Ruby interpreter uses. + * + * Now, we only support pthread and Windows threads. + * + * If you want to use Ruby's Mutex and so on to synchronize Ruby Threads, + * please use Mutex directly. + */ + +#if defined(_WIN32) +#include +typedef HANDLE rb_nativethread_id_t; + +typedef union rb_thread_lock_union { + HANDLE mutex; + CRITICAL_SECTION crit; +} rb_nativethread_lock_t; + +typedef struct rb_thread_cond_struct rb_nativethread_cond_t; + +#elif defined(HAVE_PTHREAD_H) + +#include +typedef pthread_t rb_nativethread_id_t; +typedef pthread_mutex_t rb_nativethread_lock_t; +typedef pthread_cond_t rb_nativethread_cond_t; + +#elif defined(__wasi__) // no-thread platforms + +typedef struct rb_nativethread_id_t *rb_nativethread_id_t; +typedef struct rb_nativethread_lock_t *rb_nativethread_lock_t; +typedef struct rb_nativethread_cond_t *rb_nativethread_cond_t; + +#elif defined(__DOXYGEN__) + +/** Opaque type that holds an ID of a native thread. */ +struct rb_nativethread_id_t; + +/** Opaque type that holds a lock. */ +struct rb_nativethread_lock_t; + +/** Opaque type that holds a condition variable. */ +struct rb_nativethread_cond_t; + +#else +#error "unsupported thread type" + +#endif + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Queries the ID of the native thread that is calling this function. + * + * @return The caller thread's native ID. + */ +rb_nativethread_id_t rb_nativethread_self(void); + +/** + * Fills the passed lock with an initial value. + * + * @param[out] lock A mutex to initialise. + * @post `lock` is updated to its initial state. + * + * @internal + * + * There is no data structure that analogous to pthread_once_t in ruby. It is + * pretty much tricky (if not impossible) to properly initialise a mutex + * exactly once. + */ +void rb_nativethread_lock_initialize(rb_nativethread_lock_t *lock); + +/** + * Destroys the passed mutex. + * + * @param[out] lock A mutex to kill. + * @post `lock` is no longer eligible for other functions. + * + * @internal + * + * It is an undefined behaviour (see `pthread_mutex_destroy(3posix)`) to + * destroy a locked mutex. So it has to be unlocked. But an unlocked mutex + * can of course be locked by another thread. That's the ultimate reason why + * we do mutex. There is an inevitable race condition here. 2017 edition of + * IEEE 1003.1 issue 7 says in its rationale that "care must be taken". Care? + * How? + * + * @shyouhei thinks that POSIX is broken by design. + */ +void rb_nativethread_lock_destroy(rb_nativethread_lock_t *lock); + +/** + * Blocks until the current thread obtains a lock. + * + * @param[out] lock A mutex to lock. + * @post `lock` is owned by the current native thread. + */ +void rb_nativethread_lock_lock(rb_nativethread_lock_t *lock); + +/** + * Releases a lock. + * + * @param[out] lock A mutex to unlock. + * @pre `lock` is owned by the current native thread. + * @post `lock` is not owned by the current native thread. + */ +void rb_nativethread_lock_unlock(rb_nativethread_lock_t *lock); + +/** @alias{rb_nativethread_lock_lock} */ +void rb_native_mutex_lock(rb_nativethread_lock_t *lock); + +/** + * Identical to rb_native_mutex_lock(), except it doesn't block in case + * rb_native_mutex_lock() would. + * + * @param[out] lock A mutex to lock. + * @retval 0 `lock` is successfully owned by the current thread. + * @retval EBUSY `lock` is owned by someone else. + */ +int rb_native_mutex_trylock(rb_nativethread_lock_t *lock); + +/** @alias{rb_nativethread_lock_unlock} */ +void rb_native_mutex_unlock(rb_nativethread_lock_t *lock); + +/** @alias{rb_nativethread_lock_initialize} */ +void rb_native_mutex_initialize(rb_nativethread_lock_t *lock); + +/** @alias{rb_nativethread_lock_destroy} */ +void rb_native_mutex_destroy(rb_nativethread_lock_t *lock); + +/** + * Signals a condition variable. + * + * @param[out] cond A condition variable to ping. + * @post More than one threads waiting for `cond` gets signalled. + * @note This function can spuriously wake multiple threads up. + * `pthread_cond_signal(3posix)` says it can even be "impossible + * to avoid the unblocking of more than one thread blocked on a + * condition variable". Just brace spurious wakeups. + */ +void rb_native_cond_signal(rb_nativethread_cond_t *cond); + +/** + * Signals a condition variable. + * + * @param[out] cond A condition variable to ping. + * @post All threads waiting for `cond` gets signalled. + */ +void rb_native_cond_broadcast(rb_nativethread_cond_t *cond); + +/** + * Waits for the passed condition variable to be signalled. + * + * @param[out] cond A condition variable to wait. + * @param[out] mutex A mutex. + * @pre `mutex` is owned by the current thread. + * @post `mutex` is owned by the current thread. + * @note This can wake up spuriously. + */ +void rb_native_cond_wait(rb_nativethread_cond_t *cond, rb_nativethread_lock_t *mutex); + +/** + * Identical to rb_native_cond_wait(), except it additionally takes timeout in + * msec resolution. Timeouts can be detected by catching exceptions. + * + * @param[out] cond A condition variable to wait. + * @param[out] mutex A mutex. + * @param[in] msec Timeout. + * @exception rb_eSystemCallError `Errno::ETIMEDOUT` for timeout. + * @pre `mutex` is owned by the current thread. + * @post `mutex` is owned by the current thread. + * @note This can wake up spuriously. + */ +void rb_native_cond_timedwait(rb_nativethread_cond_t *cond, rb_nativethread_lock_t *mutex, unsigned long msec); + +/** + * Fills the passed condition variable with an initial value. + * + * @param[out] cond A condition variable to initialise. + * @post `cond` is updated to its initial state. + */ +void rb_native_cond_initialize(rb_nativethread_cond_t *cond); + +/** + * Destroys the passed condition variable. + * + * @param[out] cond A condition variable to kill. + * @post `cond` is no longer eligible for other functions. + */ +void rb_native_cond_destroy(rb_nativethread_cond_t *cond); + +RBIMPL_SYMBOL_EXPORT_END() +#endif diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/util.h b/ThirdParty/include/ruby/3.2/mac/ruby/util.h new file mode 100644 index 0000000..e8727a3 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/util.h @@ -0,0 +1,228 @@ +#ifndef RUBY_UTIL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_UTIL_H 1 +/** + * @file + * @author $Author$ + * @date Thu Mar 9 11:55:53 JST 1995 + * @copyright Copyright (C) 1993-2007 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning DO NOT ADD RANDOM GARBAGES IN THIS FILE! Contents of this file + * reside here for historical reasons. Find a right place for your + * API! + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include /* size_t */ +#endif + +#ifdef HAVE_SYS_TYPES_H +# include /* ssize_t */ +#endif + +#include "ruby/internal/attr/noalias.h" +#include "ruby/internal/attr/nodiscard.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/restrict.h" +#include "ruby/internal/attr/returns_nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/defines.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** an approximation of ceil(n * log10(2)), up to 65536 at least */ +#define DECIMAL_SIZE_OF_BITS(n) (((n) * 3010 + 9998) / 9999) + +/** + * Character to number mapping like `'a'` -> `10`, `'b'` -> `11` etc. For + * punctuation etc., the value is -1. "36" terminology comes from the fact + * that this is the table behind `str.to_i(36)`. + */ +RUBY_EXTERN const signed char ruby_digit36_to_number_table[]; + +/** + * Characters that Ruby accepts as hexadecimal digits. This is `/\h/` expanded + * into an array. + */ +RUBY_EXTERN const char ruby_hexdigits[]; + +/** + * Scans the passed string, assuming the string is a textual representation of + * an integer. Stops when encountering something non-digit for the passed + * base. + * + * @note This does not understand minus sign. + * @note This does not understand e.g. `0x` prefix. + * @note It is a failure to pass `0` to `base`, unlike ruby_strtoul(). + * @param[in] str Target string of digits to interpret. + * @param[in] len Number of bytes of `str`, or -1 to detect `NUL`. + * @param[in] base Base, `2` to `36` inclusive. + * @param[out] retlen Return value buffer. + * @param[out] overflow Return value buffer. + * @return Interpreted numeric representation of `str`. + * @post `retlen` is the number of bytes scanned so far. + * @post `overflow` is set to true if the string represents something + * bigger than `ULONG_MAX`. Something meaningful still returns; + * which is the designed belabour of C's unsigned arithmetic. + */ +unsigned long ruby_scan_digits(const char *str, ssize_t len, int base, size_t *retlen, int *overflow); + +/** @old{ruby_scan_oct} */ +#define scan_oct(s,l,e) ((int)ruby_scan_oct((s),(l),(e))) + +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL(()) +/** + * Interprets the passed string as an octal unsigned integer. Stops when + * encounters something not understood. + * + * @param[in] str C string to scan. + * @param[in] len Length of `str`. + * @param[out] consumed Return value buffer. + * @return Parsed integer. + * @post `ret` is the number of characters read. + * + * @internal + * + * No consideration is made for integer overflows. As the return value is + * unsigned this function has fully defined behaviour, but you cannot know if + * there was an integer wrap-around or not. + */ +unsigned long ruby_scan_oct(const char *str, size_t len, size_t *consumed); + +/** @old{ruby_scan_hex} */ +#define scan_hex(s,l,e) ((int)ruby_scan_hex((s),(l),(e))) + +RBIMPL_ATTR_NONNULL(()) +/** + * Interprets the passed string a hexadecimal unsigned integer. Stops when + * encounters something not understood. + * + * @param[in] str C string to scan. + * @param[in] len Length of `str`. + * @param[out] ret Return value buffer. + * @return Parsed integer. + * @post `ret` is the number of characters read. + * + * @internal + * + * No consideration is made for integer overflows. As the return value is + * unsigned this function has fully defined behaviour, but you cannot know if + * there was an integer wrap-around or not. + */ +unsigned long ruby_scan_hex(const char *str, size_t len, size_t *ret); + +/** + * Reentrant implementation of quick sort. If your system provides something + * (like C11 qsort_s), this is a thin wrapper of that routine. Otherwise + * resorts to our own version. + */ +#ifdef HAVE_GNU_QSORT_R +# define ruby_qsort qsort_r +#else +void ruby_qsort(void *, const size_t, const size_t, + int (*)(const void *, const void *, void *), void *); +#endif + +RBIMPL_ATTR_NONNULL((1)) +/** + * Sets an environment variable. In case of POSIX this is a wrapper of + * `setenv(3)`. But there are systems which lack one. We try hard emulating. + * + * @param[in] key An environment variable. + * @param[in] val A value to be associated with `key`, or 0. + * @exception rb_eSystemCallError `setenv(3)` failed for some reason. + * @post Environment variable `key` is created if necessary. Its value + * is updated to be `val`. + */ +void ruby_setenv(const char *key, const char *val); + +RBIMPL_ATTR_NONNULL(()) +/** + * Deletes the passed environment variable, if any. + * + * @param[in] key An environment variable. + * @exception rb_eSystemCallError `unsetenv(3)` failed for some reason. + * @post Environment variable `key` does not exist. + */ +void ruby_unsetenv(const char *key); + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_NONNULL(()) +/** + * This is our own version of `strdup(3)` that uses ruby_xmalloc() instead of + * system malloc (benefits our GC). + * + * @param[in] str Target C string to duplicate. + * @return An allocated C string holding the identical contents. + * @note Return value must be discarded using ruby_xfree(). + */ +char *ruby_strdup(const char *str); + +#undef strdup +/** + * @alias{ruby_strdup} + * + * @internal + * + * @shyouhei doesn't think it is a wise idea. ruby_strdup()'s return value + * must be passed to ruby_xfree(), but this macro makes it almost impossible. + */ +#define strdup(s) ruby_strdup(s) + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +/** + * This is our own version of `getcwd(3)` that uses ruby_xmalloc() instead of + * system malloc (benefits our GC). + * + * @return An allocated C string holding the process working directory. + * @note Return value must be discarded using ruby_xfree(). + */ +char *ruby_getcwd(void); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Our own locale-insensitive version of `strtod(3)`. The conversion is done + * as if the current locale is set to the "C" locale, no matter actual runtime + * locale settings. + * + * @param[in] str Decimal or hexadecimal representation of a floating + * point number. + * @param[out] endptr NULL, or an arbitrary pointer (overwritten on return). + * @return Converted number. + * @post If `endptr` is not NULL, it is updated to point the first such + * byte where conversion failed. + * @note This function sets `errno` on failure. + * - `ERANGE`: Converted integer is out of range of `double`. + * @see William D. Clinger, "How to Read Floating Point Numbers + * Accurately" in Proc. ACM SIGPLAN '90, pp. 92-101. + * https://doi.org/10.1145/93542.93557 + */ +double ruby_strtod(const char *str, char **endptr); + +#undef strtod +/** @alias{ruby_strtod} */ +#define strtod(s,e) ruby_strtod((s),(e)) + +RBIMPL_ATTR_NONNULL((2)) +/** + * Scans the passed string, with calling the callback function every time it + * encounters a "word". A word here is a series of characters separated by + * either a space (of IEEE 1003.1 section 7.3.1.1), or a `','`. + * + * @param[in] str Target string to split into each words. + * @param[in] func Callback function. + * @param[in,out] argv Passed as-is to `func`. + */ +void ruby_each_words(const char *str, void (*func)(const char *word, int len, void *argv), void *argv); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_UTIL_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/version.h b/ThirdParty/include/ruby/3.2/mac/ruby/version.h new file mode 100644 index 0000000..18b3abc --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/version.h @@ -0,0 +1,159 @@ +#ifndef RUBY_VERSION_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_VERSION_H 1 +/** + * @file + * @author $Author$ + * @date Wed May 13 12:56:56 JST 2009 + * @copyright Copyright (C) 1993-2009 Yukihiro Matsumoto + * @copyright Copyright (C) 2000 Network Applied Communication Laboratory, Inc. + * @copyright Copyright (C) 2000 Information-technology Promotion Agency, Japan + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * + * This file contains only + * - never-changeable information, and + * - interfaces accessible from extension libraries. + * + * Never try to check RUBY_VERSION_CODE etc in extension libraries, + * check the features with mkmf.rb instead. + */ + +/** + * @name The origin. + * + * These information never change. Just written here to remember. + * + * @{ + */ + +/** Author of this project. */ +#define RUBY_AUTHOR "Yukihiro Matsumoto" + +/** Ruby's birth year. */ +#define RUBY_BIRTH_YEAR 1993 + +/** Ruby's birth month. */ +#define RUBY_BIRTH_MONTH 2 + +/** Ruby's birth day. */ +#define RUBY_BIRTH_DAY 24 + +/** @} */ + +/** + * @name The API version. + * + * API version is different from binary version. These numbers are for API + * stability. When you have distinct API versions x and y, you cannot expect + * codes targeted to x also works for y. + * + * However let us repeat here that it's a BAD idea to check + * #RUBY_API_VERSION_CODE form extension libraries. Different API versions are + * just different. There is no such thing like upper compatibility. + * + * @{ + */ + +/** + * Major version. This digit changes sometimes for various reasons, but that + * doesn't mean a total rewrite. Practically when it comes to API versioning, + * major and minor version changes are equally catastrophic. + */ +#define RUBY_API_VERSION_MAJOR 3 + +/** + * Minor version. As of writing this version changes annually. Greater + * version doesn't mean "better"; they just mean years passed. + */ +#define RUBY_API_VERSION_MINOR 2 + +/** + * Teeny version. This digit is kind of reserved these days. Kept 0 for the + * entire 2.x era. Waiting for future uses. + */ +#define RUBY_API_VERSION_TEENY 0 + +/** + * This macro is API versions encoded into a C integer. + * + * @note Use mkmf. + * @note Don't rely on it. + */ +#define RUBY_API_VERSION_CODE (RUBY_API_VERSION_MAJOR*10000+RUBY_API_VERSION_MINOR*100+RUBY_API_VERSION_TEENY) + +/** @} */ + +#ifdef RUBY_EXTERN +/* Internal note: this file could be included from verconf.mk _before_ + * generating config.h, on Windows. The #ifdef above is to trick such + * situation. */ +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * @name Interfaces from extension libraries. + * + * Before using these infos, think thrice whether they are really + * necessary or not, and if the answer was yes, think twice a week + * later again. + * + * @{ + */ + +/** API versions, in { major, minor, teeny } order. */ +RUBY_EXTERN const int ruby_api_version[3]; + +/** + * Stringised version. + * + * @note This is the runtime version, not the API version. For instance it + * was `"2.5.9"` when ::ruby_api_version was `{ 2, 5, 0 }`. + */ +RUBY_EXTERN const char ruby_version[]; + +/** Date of release, in a C string. */ +RUBY_EXTERN const char ruby_release_date[]; + +/** + * Target platform identifier, in a C string. + * + * @note Seasoned UNIX programmers should beware that this "platform + * identifier" is our invention; not always identical to so-called + * target triplets that GNU systems use. For instance on @shyouhei's + * machine, ::ruby_platform is `"x64_64-linux"` while its target triplet + * is `x86_64-pc-linux-gnu`. + * @note Note also that we support Windows. + */ +RUBY_EXTERN const char ruby_platform[]; + +/** + * This is a monotonic increasing integer that describes specific "patch" + * level. You can know the exact changeset your binary is running by this info + * (and ::ruby_version), unless this is -1. -1 means there is no release yet + * for the version; ruby is actively developed. 0 means the initial GA version. + */ +RUBY_EXTERN const int ruby_patchlevel; + +/** + * This is what `ruby -v` prints to the standard error. Something like: + * `"ruby 2.5.9p229 (2021-04-05 revision 67829) [x86_64-linux]"`. This doesn't + * include runtime options like a JIT being enabled. + */ +RUBY_EXTERN const char ruby_description[]; + +/** Copyright notice. */ +RUBY_EXTERN const char ruby_copyright[]; + +/** + * This is just `"ruby"` for us. But different implementations can have + * different strings here. + */ +RUBY_EXTERN const char ruby_engine[]; + +/** @} */ + +RBIMPL_SYMBOL_EXPORT_END() +#endif + +#endif diff --git a/ThirdParty/include/ruby/3.2/mac/ruby/vm.h b/ThirdParty/include/ruby/3.2/mac/ruby/vm.h new file mode 100644 index 0000000..3458c28 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/ruby/vm.h @@ -0,0 +1,54 @@ +#ifndef RUBY_VM_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_VM_H 1 +/** + * @file + * @author $Author$ + * @date Sat May 31 15:17:36 2008 + * @copyright Copyright (C) 2008 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * + * We planned to have multiple VMs run side-by-side. The API here was a + * preparation of that feature. The topic branch was eventually abandoned, and + * we now have Ractor. This file is kind of obsolescent. + */ +#include "ruby/internal/dllexport.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * The opaque struct to hold VM internals. Its fields are intentionally hidden + * from extension libraries because it changes drastically time to time. + */ +typedef struct rb_vm_struct ruby_vm_t; + +/** + * Destructs the passed VM. You don't have to call this API directly now, + * because there is no way to create one. There is only one VM at one time. + * ruby_stop() should just suffice. + */ +int ruby_vm_destruct(ruby_vm_t *vm); + +/** + * ruby_vm_at_exit registers a function _func_ to be invoked when a VM + * passed away. Functions registered this way runs in reverse order + * of registration, just like END {} block does. The difference is + * its timing to be triggered. ruby_vm_at_exit functions runs when a + * VM _passed_ _away_, while END {} blocks runs just _before_ a VM + * _is_ _passing_ _away_. + * + * You cannot register a function to another VM than where you are in. + * So where to register is intuitive, omitted. OTOH the argument + * _func_ cannot know which VM it is in because at the time of + * invocation, the VM has already died and there is no execution + * context. The VM itself is passed as the first argument to it. + * + * @param[in] func the function to register. + */ +void ruby_vm_at_exit(void(*func)(ruby_vm_t *)); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_VM_H */ diff --git a/ThirdParty/include/ruby/3.2/mac/x86_64-darwin/rb_mjit_min_header-3.2.2.h b/ThirdParty/include/ruby/3.2/mac/x86_64-darwin/rb_mjit_min_header-3.2.2.h new file mode 100644 index 0000000..d43bafb --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/x86_64-darwin/rb_mjit_min_header-3.2.2.h @@ -0,0 +1,25209 @@ +#ifdef __GNUC__ +# pragma GCC system_header +#endif + + + + +#define ALWAYS_INLINE(x) __attribute__ ((__always_inline__)) x + + + + + + + + + + +typedef __builtin_va_list va_list; +typedef __builtin_va_list __gnuc_va_list; + + + + +typedef signed char __int8_t; +typedef unsigned char __uint8_t; +typedef short __int16_t; +typedef unsigned short __uint16_t; +typedef int __int32_t; +typedef unsigned int __uint32_t; +typedef long long __int64_t; +typedef unsigned long long __uint64_t; +typedef long __darwin_intptr_t; +typedef unsigned int __darwin_natural_t; +typedef int __darwin_ct_rune_t; +typedef union { + char __mbstate8[128]; + long long _mbstateL; +} __mbstate_t; +typedef __mbstate_t __darwin_mbstate_t; +typedef long int __darwin_ptrdiff_t; +typedef long unsigned int __darwin_size_t; +typedef __builtin_va_list __darwin_va_list; +typedef int __darwin_wchar_t; +typedef __darwin_wchar_t __darwin_rune_t; +typedef int __darwin_wint_t; +typedef unsigned long __darwin_clock_t; +typedef __uint32_t __darwin_socklen_t; +typedef long __darwin_ssize_t; +typedef long __darwin_time_t; +typedef __int64_t __darwin_blkcnt_t; +typedef __int32_t __darwin_blksize_t; +typedef __int32_t __darwin_dev_t; +typedef unsigned int __darwin_fsblkcnt_t; +typedef unsigned int __darwin_fsfilcnt_t; +typedef __uint32_t __darwin_gid_t; +typedef __uint32_t __darwin_id_t; +typedef __uint64_t __darwin_ino64_t; +typedef __darwin_ino64_t __darwin_ino_t; +typedef __darwin_natural_t __darwin_mach_port_name_t; +typedef __darwin_mach_port_name_t __darwin_mach_port_t; +typedef __uint16_t __darwin_mode_t; +typedef __int64_t __darwin_off_t; +typedef __int32_t __darwin_pid_t; +typedef __uint32_t __darwin_sigset_t; +typedef __int32_t __darwin_suseconds_t; +typedef __uint32_t __darwin_uid_t; +typedef __uint32_t __darwin_useconds_t; +typedef unsigned char __darwin_uuid_t[16]; +typedef char __darwin_uuid_string_t[37]; +struct __darwin_pthread_handler_rec { + void (*__routine)(void *); + void *__arg; + struct __darwin_pthread_handler_rec *__next; +}; +struct _opaque_pthread_attr_t { + long __sig; + char __opaque[56]; +}; +struct _opaque_pthread_cond_t { + long __sig; + char __opaque[40]; +}; +struct _opaque_pthread_condattr_t { + long __sig; + char __opaque[8]; +}; +struct _opaque_pthread_mutex_t { + long __sig; + char __opaque[56]; +}; +struct _opaque_pthread_mutexattr_t { + long __sig; + char __opaque[8]; +}; +struct _opaque_pthread_once_t { + long __sig; + char __opaque[8]; +}; +struct _opaque_pthread_rwlock_t { + long __sig; + char __opaque[192]; +}; +struct _opaque_pthread_rwlockattr_t { + long __sig; + char __opaque[16]; +}; +struct _opaque_pthread_t { + long __sig; + struct __darwin_pthread_handler_rec *__cleanup_stack; + char __opaque[8176]; +}; +typedef struct _opaque_pthread_attr_t __darwin_pthread_attr_t; +typedef struct _opaque_pthread_cond_t __darwin_pthread_cond_t; +typedef struct _opaque_pthread_condattr_t __darwin_pthread_condattr_t; +typedef unsigned long __darwin_pthread_key_t; +typedef struct _opaque_pthread_mutex_t __darwin_pthread_mutex_t; +typedef struct _opaque_pthread_mutexattr_t __darwin_pthread_mutexattr_t; +typedef struct _opaque_pthread_once_t __darwin_pthread_once_t; +typedef struct _opaque_pthread_rwlock_t __darwin_pthread_rwlock_t; +typedef struct _opaque_pthread_rwlockattr_t __darwin_pthread_rwlockattr_t; +typedef struct _opaque_pthread_t *__darwin_pthread_t; +typedef int __darwin_nl_item; +typedef int __darwin_wctrans_t; +typedef __uint32_t __darwin_wctype_t; +typedef signed char int8_t; +typedef short int16_t; +typedef int int32_t; +typedef long long int64_t; + +typedef unsigned char u_int8_t; +typedef unsigned short u_int16_t; +typedef unsigned int u_int32_t; +typedef unsigned long long u_int64_t; +typedef int64_t register_t; + +typedef __darwin_intptr_t intptr_t; +typedef unsigned long uintptr_t; +typedef u_int64_t user_addr_t; +typedef u_int64_t user_size_t; +typedef int64_t user_ssize_t; +typedef int64_t user_long_t; +typedef u_int64_t user_ulong_t; +typedef int64_t user_time_t; +typedef int64_t user_off_t; +typedef u_int64_t syscall_arg_t; +typedef __darwin_va_list va_list; +typedef __darwin_size_t size_t; + +int renameat(int, const char *, int, const char *) __attribute__((availability(macosx,introduced=10.10))); +int renamex_np(const char *, const char *, unsigned int) __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))); +int renameatx_np(int, const char *, int, const char *, unsigned int) __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))); + +typedef __darwin_off_t fpos_t; +struct __sbuf { + unsigned char *_base; + int _size; +}; +struct __sFILEX; +typedef struct __sFILE { + unsigned char *_p; + int _r; + int _w; + short _flags; + short _file; + struct __sbuf _bf; + int _lbfsize; + void *_cookie; + int (* _Nullable _close)(void *); + int (* _Nullable _read) (void *, char *, int); + fpos_t (* _Nullable _seek) (void *, fpos_t, int); + int (* _Nullable _write)(void *, const char *, int); + struct __sbuf _ub; + struct __sFILEX *_extra; + int _ur; + unsigned char _ubuf[3]; + unsigned char _nbuf[1]; + struct __sbuf _lb; + int _blksize; + fpos_t _offset; +} FILE; +extern FILE *__stdinp; +extern FILE *__stdoutp; +extern FILE *__stderrp; +void clearerr(FILE *); +int fclose(FILE *); +int feof(FILE *); +int ferror(FILE *); +int fflush(FILE *); +int fgetc(FILE *); +int fgetpos(FILE * __restrict__, fpos_t *); +char *fgets(char * __restrict__, int, FILE *); +FILE *fopen(const char * __restrict__ __filename, const char * __restrict__ __mode) __asm("_" "fopen" "$DARWIN_EXTSN"); +int fprintf(FILE * __restrict__, const char * __restrict__, ...) __attribute__((__format__ (__printf__, 2, 3))); +int fputc(int, FILE *); +int fputs(const char * __restrict__, FILE * __restrict__) __asm("_" "fputs" ); +size_t fread(void * __restrict__ __ptr, size_t __size, size_t __nitems, FILE * __restrict__ __stream); +FILE *freopen(const char * __restrict__, const char * __restrict__, + FILE * __restrict__) __asm("_" "freopen" ); +int fscanf(FILE * __restrict__, const char * __restrict__, ...) __attribute__((__format__ (__scanf__, 2, 3))); +int fseek(FILE *, long, int); +int fsetpos(FILE *, const fpos_t *); +long ftell(FILE *); +size_t fwrite(const void * __restrict__ __ptr, size_t __size, size_t __nitems, FILE * __restrict__ __stream) __asm("_" "fwrite" ); +int getc(FILE *); +int getchar(void); +__attribute__((__deprecated__("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of gets(3), it is highly recommended that you use fgets(3) instead."))) +char *gets(char *); +void perror(const char *) __attribute__((__cold__)); +int printf(const char * __restrict__, ...) __attribute__((__format__ (__printf__, 1, 2))); +int putc(int, FILE *); +int putchar(int); +int puts(const char *); +int remove(const char *); +int rename (const char *__old, const char *__new); +void rewind(FILE *); +int scanf(const char * __restrict__, ...) __attribute__((__format__ (__scanf__, 1, 2))); +void setbuf(FILE * __restrict__, char * __restrict__); +int setvbuf(FILE * __restrict__, char * __restrict__, int, size_t); +__attribute__((__availability__(swift, unavailable, message="Use snprintf instead."))) +__attribute__((__deprecated__("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead."))) +int sprintf(char * __restrict__, const char * __restrict__, ...) __attribute__((__format__ (__printf__, 2, 3))); +int sscanf(const char * __restrict__, const char * __restrict__, ...) __attribute__((__format__ (__scanf__, 2, 3))); +FILE *tmpfile(void); +__attribute__((__availability__(swift, unavailable, message="Use mkstemp(3) instead."))) +__attribute__((__deprecated__("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of tmpnam(3), it is highly recommended that you use mkstemp(3) instead."))) +char *tmpnam(char *); +int ungetc(int, FILE *); +int vfprintf(FILE * __restrict__, const char * __restrict__, va_list) __attribute__((__format__ (__printf__, 2, 0))); +int vprintf(const char * __restrict__, va_list) __attribute__((__format__ (__printf__, 1, 0))); +__attribute__((__availability__(swift, unavailable, message="Use vsnprintf instead."))) +__attribute__((__deprecated__("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use vsnprintf(3) instead."))) +int vsprintf(char * __restrict__, const char * __restrict__, va_list) __attribute__((__format__ (__printf__, 2, 0))); +char *ctermid(char *); +FILE *fdopen(int, const char *) __asm("_" "fdopen" "$DARWIN_EXTSN"); +int fileno(FILE *); +int pclose(FILE *) __attribute__((__availability__(swift, unavailable, message="Use posix_spawn APIs or NSTask instead. (On iOS, process spawning is unavailable.)"))); +FILE *popen(const char *, const char *) __asm("_" "popen" "$DARWIN_EXTSN") __attribute__((__availability__(swift, unavailable, message="Use posix_spawn APIs or NSTask instead. (On iOS, process spawning is unavailable.)"))); +int __srget(FILE *); +int __svfscanf(FILE *, const char *, va_list) __attribute__((__format__ (__scanf__, 2, 0))); +int __swbuf(int, FILE *); +inline __attribute__ ((__always_inline__)) int __sputc(int _c, FILE *_p) { + if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n')) + return (*_p->_p++ = _c); + else + return (__swbuf(_c, _p)); +} +void flockfile(FILE *); +int ftrylockfile(FILE *); +void funlockfile(FILE *); +int getc_unlocked(FILE *); +int getchar_unlocked(void); +int putc_unlocked(int, FILE *); +int putchar_unlocked(int); +int getw(FILE *); +int putw(int, FILE *); +__attribute__((__availability__(swift, unavailable, message="Use mkstemp(3) instead."))) +__attribute__((__deprecated__("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of tempnam(3), it is highly recommended that you use mkstemp(3) instead."))) +char *tempnam(const char *__dir, const char *__prefix) __asm("_" "tempnam" ); +typedef __darwin_off_t off_t; +int fseeko(FILE * __stream, off_t __offset, int __whence); +off_t ftello(FILE * __stream); +int snprintf(char * __restrict__ __str, size_t __size, const char * __restrict__ __format, ...) __attribute__((__format__ (__printf__, 3, 4))); +int vfscanf(FILE * __restrict__ __stream, const char * __restrict__ __format, va_list) __attribute__((__format__ (__scanf__, 2, 0))); +int vscanf(const char * __restrict__ __format, va_list) __attribute__((__format__ (__scanf__, 1, 0))); +int vsnprintf(char * __restrict__ __str, size_t __size, const char * __restrict__ __format, va_list) __attribute__((__format__ (__printf__, 3, 0))); +int vsscanf(const char * __restrict__ __str, const char * __restrict__ __format, va_list) __attribute__((__format__ (__scanf__, 2, 0))); +typedef __darwin_ssize_t ssize_t; +int dprintf(int, const char * __restrict__, ...) __attribute__((__format__ (__printf__, 2, 3))) __attribute__((availability(macosx,introduced=10.7))); +int vdprintf(int, const char * __restrict__, va_list) __attribute__((__format__ (__printf__, 2, 0))) __attribute__((availability(macosx,introduced=10.7))); +ssize_t getdelim(char ** __restrict__ __linep, size_t * __restrict__ __linecapp, int __delimiter, FILE * __restrict__ __stream) __attribute__((availability(macosx,introduced=10.7))); +ssize_t getline(char ** __restrict__ __linep, size_t * __restrict__ __linecapp, FILE * __restrict__ __stream) __attribute__((availability(macosx,introduced=10.7))); +FILE *fmemopen(void * __restrict__ __buf, size_t __size, const char * __restrict__ __mode) __attribute__((availability(macos,introduced=10.13))) __attribute__((availability(ios,introduced=11.0))) __attribute__((availability(tvos,introduced=11.0))) __attribute__((availability(watchos,introduced=4.0))); +FILE *open_memstream(char **__bufp, size_t *__sizep) __attribute__((availability(macos,introduced=10.13))) __attribute__((availability(ios,introduced=11.0))) __attribute__((availability(tvos,introduced=11.0))) __attribute__((availability(watchos,introduced=4.0))); +extern const int sys_nerr; +extern const char *const sys_errlist[]; +int asprintf(char ** __restrict__, const char * __restrict__, ...) __attribute__((__format__ (__printf__, 2, 3))); +char *ctermid_r(char *); +char *fgetln(FILE *, size_t *); +const char *fmtcheck(const char *, const char *) __attribute__((format_arg(2))); +int fpurge(FILE *); +void setbuffer(FILE *, char *, int); +int setlinebuf(FILE *); +int vasprintf(char ** __restrict__, const char * __restrict__, va_list) __attribute__((__format__ (__printf__, 2, 0))); +FILE *funopen(const void *, + int (* _Nullable)(void *, char *, int), + int (* _Nullable)(void *, const char *, int), + fpos_t (* _Nullable)(void *, fpos_t, int), + int (* _Nullable)(void *)); +extern int __sprintf_chk (char * __restrict__, int, size_t, + const char * __restrict__, ...); +extern int __snprintf_chk (char * __restrict__, size_t, int, size_t, + const char * __restrict__, ...); +extern int __vsprintf_chk (char * __restrict__, int, size_t, + const char * __restrict__, va_list); +extern int __vsnprintf_chk (char * __restrict__, size_t, int, size_t, + const char * __restrict__, va_list); +static inline +__uint16_t +_OSSwapInt16( + __uint16_t _data + ) +{ + return (__uint16_t)((_data << 8) | (_data >> 8)); +} +static inline +__uint32_t +_OSSwapInt32( + __uint32_t _data + ) +{ + return __builtin_bswap32(_data); +} +static inline +__uint64_t +_OSSwapInt64( + __uint64_t _data + ) +{ + return __builtin_bswap64(_data); +} + +typedef unsigned char u_char; +typedef unsigned short u_short; +typedef unsigned int u_int; + +typedef unsigned long u_long; +typedef unsigned short ushort; +typedef unsigned int uint; +typedef u_int64_t u_quad_t; +typedef int64_t quad_t; +typedef quad_t * qaddr_t; +typedef char * caddr_t; + +typedef int32_t daddr_t; +typedef __darwin_dev_t dev_t; + +typedef u_int32_t fixpt_t; +typedef __darwin_blkcnt_t blkcnt_t; +typedef __darwin_blksize_t blksize_t; +typedef __darwin_gid_t gid_t; +typedef __uint32_t in_addr_t; +typedef __uint16_t in_port_t; +typedef __darwin_ino_t ino_t; +typedef __darwin_ino64_t ino64_t; +typedef __int32_t key_t; +typedef __darwin_mode_t mode_t; +typedef __uint16_t nlink_t; +typedef __darwin_id_t id_t; +typedef __darwin_pid_t pid_t; +typedef int32_t segsz_t; +typedef int32_t swblk_t; +typedef __darwin_uid_t uid_t; +typedef __darwin_clock_t clock_t; +typedef __darwin_time_t time_t; + +typedef __darwin_useconds_t useconds_t; +typedef __darwin_suseconds_t suseconds_t; +typedef __darwin_size_t rsize_t; +typedef int errno_t; +typedef struct fd_set { + __int32_t fds_bits[((((1024) % ((sizeof(__int32_t) * 8))) == 0) ? ((1024) / ((sizeof(__int32_t) * 8))) : (((1024) / ((sizeof(__int32_t) * 8))) + 1))]; +} fd_set; +int __darwin_check_fd_set_overflow(int, const void *, int) __attribute__((availability(macosx,introduced=11.0))) __attribute__((availability(ios,introduced=14.0))) __attribute__((availability(tvos,introduced=14.0))) __attribute__((availability(watchos,introduced=7.0))); +inline __attribute__ ((__always_inline__)) int +__darwin_check_fd_set(int _a, const void *_b) +{ + if ((uintptr_t)&__darwin_check_fd_set_overflow != (uintptr_t) 0) { + return __darwin_check_fd_set_overflow(_a, _b, 1); + } else { + return 1; + } +} +inline __attribute__ ((__always_inline__)) int +__darwin_fd_isset(int _fd, const struct fd_set *_p) +{ + if (__darwin_check_fd_set(_fd, (const void *) _p)) { + return _p->fds_bits[(unsigned long)_fd / (sizeof(__int32_t) * 8)] & ((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % (sizeof(__int32_t) * 8)))); + } + return 0; +} +inline __attribute__ ((__always_inline__)) void +__darwin_fd_set(int _fd, struct fd_set *const _p) +{ + if (__darwin_check_fd_set(_fd, (const void *) _p)) { + (_p->fds_bits[(unsigned long)_fd / (sizeof(__int32_t) * 8)] |= ((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % (sizeof(__int32_t) * 8))))); + } +} +inline __attribute__ ((__always_inline__)) void +__darwin_fd_clr(int _fd, struct fd_set *const _p) +{ + if (__darwin_check_fd_set(_fd, (const void *) _p)) { + (_p->fds_bits[(unsigned long)_fd / (sizeof(__int32_t) * 8)] &= ~((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % (sizeof(__int32_t) * 8))))); + } +} + +typedef __int32_t fd_mask; +typedef __darwin_pthread_attr_t pthread_attr_t; +typedef __darwin_pthread_cond_t pthread_cond_t; +typedef __darwin_pthread_condattr_t pthread_condattr_t; +typedef __darwin_pthread_mutex_t pthread_mutex_t; +typedef __darwin_pthread_mutexattr_t pthread_mutexattr_t; +typedef __darwin_pthread_once_t pthread_once_t; +typedef __darwin_pthread_rwlock_t pthread_rwlock_t; +typedef __darwin_pthread_rwlockattr_t pthread_rwlockattr_t; +typedef __darwin_pthread_t pthread_t; +typedef __darwin_pthread_key_t pthread_key_t; +typedef __darwin_fsblkcnt_t fsblkcnt_t; +typedef __darwin_fsfilcnt_t fsfilcnt_t; +struct timespec +{ + __darwin_time_t tv_sec; + long tv_nsec; +}; +struct ostat { + __uint16_t st_dev; + ino_t st_ino; + mode_t st_mode; + nlink_t st_nlink; + __uint16_t st_uid; + __uint16_t st_gid; + __uint16_t st_rdev; + __int32_t st_size; + struct timespec st_atimespec; + struct timespec st_mtimespec; + struct timespec st_ctimespec; + __int32_t st_blksize; + __int32_t st_blocks; + __uint32_t st_flags; + __uint32_t st_gen; +}; +struct stat { dev_t st_dev; mode_t st_mode; nlink_t st_nlink; __darwin_ino64_t st_ino; uid_t st_uid; gid_t st_gid; dev_t st_rdev; struct timespec st_atimespec; struct timespec st_mtimespec; struct timespec st_ctimespec; struct timespec st_birthtimespec; off_t st_size; blkcnt_t st_blocks; blksize_t st_blksize; __uint32_t st_flags; __uint32_t st_gen; __int32_t st_lspare; __int64_t st_qspare[2]; }; +struct stat64 { dev_t st_dev; mode_t st_mode; nlink_t st_nlink; __darwin_ino64_t st_ino; uid_t st_uid; gid_t st_gid; dev_t st_rdev; struct timespec st_atimespec; struct timespec st_mtimespec; struct timespec st_ctimespec; struct timespec st_birthtimespec; off_t st_size; blkcnt_t st_blocks; blksize_t st_blksize; __uint32_t st_flags; __uint32_t st_gen; __int32_t st_lspare; __int64_t st_qspare[2]; }; +int chmod(const char *, mode_t) __asm("_" "chmod" ); +int fchmod(int, mode_t) __asm("_" "fchmod" ); +int fstat(int, struct stat *) __asm("_" "fstat" "$INODE64"); +int lstat(const char *, struct stat *) __asm("_" "lstat" "$INODE64"); +int mkdir(const char *, mode_t); +int mkfifo(const char *, mode_t); +int stat(const char *, struct stat *) __asm("_" "stat" "$INODE64"); +int mknod(const char *, mode_t, dev_t); +mode_t umask(mode_t); +int fchmodat(int, const char *, mode_t, int) __attribute__((availability(macosx,introduced=10.10))); +int fstatat(int, const char *, struct stat *, int) __asm("_" "fstatat" "$INODE64") __attribute__((availability(macosx,introduced=10.10))); +int mkdirat(int, const char *, mode_t) __attribute__((availability(macosx,introduced=10.10))); +int mkfifoat(int, const char *, mode_t) __attribute__((availability(macos,introduced=13.0))) __attribute__((availability(ios,introduced=16.0))) __attribute__((availability(tvos,introduced=16.0))) __attribute__((availability(watchos,introduced=9.0))); +int mknodat(int, const char *, mode_t, dev_t) __attribute__((availability(macos,introduced=13.0))) __attribute__((availability(ios,introduced=16.0))) __attribute__((availability(tvos,introduced=16.0))) __attribute__((availability(watchos,introduced=9.0))); +int futimens(int __fd, const struct timespec __times[2]) __attribute__((availability(macosx,introduced=10.13))) __attribute__((availability(ios,introduced=11.0))) __attribute__((availability(tvos,introduced=11.0))) __attribute__((availability(watchos,introduced=4.0))); +int utimensat(int __fd, const char *__path, const struct timespec __times[2], + int __flag) __attribute__((availability(macosx,introduced=10.13))) __attribute__((availability(ios,introduced=11.0))) __attribute__((availability(tvos,introduced=11.0))) __attribute__((availability(watchos,introduced=4.0))); +struct _filesec; +typedef struct _filesec *filesec_t; + +int chflags(const char *, __uint32_t); +int chmodx_np(const char *, filesec_t); +int fchflags(int, __uint32_t); +int fchmodx_np(int, filesec_t); +int fstatx_np(int, struct stat *, filesec_t) __asm("_" "fstatx_np" "$INODE64"); +int lchflags(const char *, __uint32_t) __attribute__((availability(macosx,introduced=10.5))); +int lchmod(const char *, mode_t) __attribute__((availability(macosx,introduced=10.5))); +int lstatx_np(const char *, struct stat *, filesec_t) __asm("_" "lstatx_np" "$INODE64"); +int mkdirx_np(const char *, filesec_t); +int mkfifox_np(const char *, filesec_t); +int statx_np(const char *, struct stat *, filesec_t) __asm("_" "statx_np" "$INODE64"); +int umaskx_np(filesec_t) __attribute__((availability(macosx,introduced=10.4,deprecated=10.6))); +int fstatx64_np(int, struct stat64 *, filesec_t) __attribute__((availability(macosx,introduced=10.5,deprecated=10.6))); +int lstatx64_np(const char *, struct stat64 *, filesec_t) __attribute__((availability(macosx,introduced=10.5,deprecated=10.6))); +int statx64_np(const char *, struct stat64 *, filesec_t) __attribute__((availability(macosx,introduced=10.5,deprecated=10.6))); +int fstat64(int, struct stat64 *) __attribute__((availability(macosx,introduced=10.5,deprecated=10.6))); +int lstat64(const char *, struct stat64 *) __attribute__((availability(macosx,introduced=10.5,deprecated=10.6))); +int stat64(const char *, struct stat64 *) __attribute__((availability(macosx,introduced=10.5,deprecated=10.6))); +typedef enum { + P_ALL, + P_PID, + P_PGID +} idtype_t; +typedef int sig_atomic_t; + +struct __darwin_i386_thread_state +{ + unsigned int __eax; + unsigned int __ebx; + unsigned int __ecx; + unsigned int __edx; + unsigned int __edi; + unsigned int __esi; + unsigned int __ebp; + unsigned int __esp; + unsigned int __ss; + unsigned int __eflags; + unsigned int __eip; + unsigned int __cs; + unsigned int __ds; + unsigned int __es; + unsigned int __fs; + unsigned int __gs; +}; +struct __darwin_fp_control +{ + unsigned short __invalid :1, + __denorm :1, + __zdiv :1, + __ovrfl :1, + __undfl :1, + __precis :1, + :2, + __pc :2, + __rc :2, + :1, + :3; +}; +typedef struct __darwin_fp_control __darwin_fp_control_t; +struct __darwin_fp_status +{ + unsigned short __invalid :1, + __denorm :1, + __zdiv :1, + __ovrfl :1, + __undfl :1, + __precis :1, + __stkflt :1, + __errsumm :1, + __c0 :1, + __c1 :1, + __c2 :1, + __tos :3, + __c3 :1, + __busy :1; +}; +typedef struct __darwin_fp_status __darwin_fp_status_t; +struct __darwin_mmst_reg +{ + char __mmst_reg[10]; + char __mmst_rsrv[6]; +}; +struct __darwin_xmm_reg +{ + char __xmm_reg[16]; +}; +struct __darwin_ymm_reg +{ + char __ymm_reg[32]; +}; +struct __darwin_zmm_reg +{ + char __zmm_reg[64]; +}; +struct __darwin_opmask_reg +{ + char __opmask_reg[8]; +}; +struct __darwin_i386_float_state +{ + int __fpu_reserved[2]; + struct __darwin_fp_control __fpu_fcw; + struct __darwin_fp_status __fpu_fsw; + __uint8_t __fpu_ftw; + __uint8_t __fpu_rsrv1; + __uint16_t __fpu_fop; + __uint32_t __fpu_ip; + __uint16_t __fpu_cs; + __uint16_t __fpu_rsrv2; + __uint32_t __fpu_dp; + __uint16_t __fpu_ds; + __uint16_t __fpu_rsrv3; + __uint32_t __fpu_mxcsr; + __uint32_t __fpu_mxcsrmask; + struct __darwin_mmst_reg __fpu_stmm0; + struct __darwin_mmst_reg __fpu_stmm1; + struct __darwin_mmst_reg __fpu_stmm2; + struct __darwin_mmst_reg __fpu_stmm3; + struct __darwin_mmst_reg __fpu_stmm4; + struct __darwin_mmst_reg __fpu_stmm5; + struct __darwin_mmst_reg __fpu_stmm6; + struct __darwin_mmst_reg __fpu_stmm7; + struct __darwin_xmm_reg __fpu_xmm0; + struct __darwin_xmm_reg __fpu_xmm1; + struct __darwin_xmm_reg __fpu_xmm2; + struct __darwin_xmm_reg __fpu_xmm3; + struct __darwin_xmm_reg __fpu_xmm4; + struct __darwin_xmm_reg __fpu_xmm5; + struct __darwin_xmm_reg __fpu_xmm6; + struct __darwin_xmm_reg __fpu_xmm7; + char __fpu_rsrv4[14*16]; + int __fpu_reserved1; +}; +struct __darwin_i386_avx_state +{ + int __fpu_reserved[2]; + struct __darwin_fp_control __fpu_fcw; + struct __darwin_fp_status __fpu_fsw; + __uint8_t __fpu_ftw; + __uint8_t __fpu_rsrv1; + __uint16_t __fpu_fop; + __uint32_t __fpu_ip; + __uint16_t __fpu_cs; + __uint16_t __fpu_rsrv2; + __uint32_t __fpu_dp; + __uint16_t __fpu_ds; + __uint16_t __fpu_rsrv3; + __uint32_t __fpu_mxcsr; + __uint32_t __fpu_mxcsrmask; + struct __darwin_mmst_reg __fpu_stmm0; + struct __darwin_mmst_reg __fpu_stmm1; + struct __darwin_mmst_reg __fpu_stmm2; + struct __darwin_mmst_reg __fpu_stmm3; + struct __darwin_mmst_reg __fpu_stmm4; + struct __darwin_mmst_reg __fpu_stmm5; + struct __darwin_mmst_reg __fpu_stmm6; + struct __darwin_mmst_reg __fpu_stmm7; + struct __darwin_xmm_reg __fpu_xmm0; + struct __darwin_xmm_reg __fpu_xmm1; + struct __darwin_xmm_reg __fpu_xmm2; + struct __darwin_xmm_reg __fpu_xmm3; + struct __darwin_xmm_reg __fpu_xmm4; + struct __darwin_xmm_reg __fpu_xmm5; + struct __darwin_xmm_reg __fpu_xmm6; + struct __darwin_xmm_reg __fpu_xmm7; + char __fpu_rsrv4[14*16]; + int __fpu_reserved1; + char __avx_reserved1[64]; + struct __darwin_xmm_reg __fpu_ymmh0; + struct __darwin_xmm_reg __fpu_ymmh1; + struct __darwin_xmm_reg __fpu_ymmh2; + struct __darwin_xmm_reg __fpu_ymmh3; + struct __darwin_xmm_reg __fpu_ymmh4; + struct __darwin_xmm_reg __fpu_ymmh5; + struct __darwin_xmm_reg __fpu_ymmh6; + struct __darwin_xmm_reg __fpu_ymmh7; +}; +struct __darwin_i386_avx512_state +{ + int __fpu_reserved[2]; + struct __darwin_fp_control __fpu_fcw; + struct __darwin_fp_status __fpu_fsw; + __uint8_t __fpu_ftw; + __uint8_t __fpu_rsrv1; + __uint16_t __fpu_fop; + __uint32_t __fpu_ip; + __uint16_t __fpu_cs; + __uint16_t __fpu_rsrv2; + __uint32_t __fpu_dp; + __uint16_t __fpu_ds; + __uint16_t __fpu_rsrv3; + __uint32_t __fpu_mxcsr; + __uint32_t __fpu_mxcsrmask; + struct __darwin_mmst_reg __fpu_stmm0; + struct __darwin_mmst_reg __fpu_stmm1; + struct __darwin_mmst_reg __fpu_stmm2; + struct __darwin_mmst_reg __fpu_stmm3; + struct __darwin_mmst_reg __fpu_stmm4; + struct __darwin_mmst_reg __fpu_stmm5; + struct __darwin_mmst_reg __fpu_stmm6; + struct __darwin_mmst_reg __fpu_stmm7; + struct __darwin_xmm_reg __fpu_xmm0; + struct __darwin_xmm_reg __fpu_xmm1; + struct __darwin_xmm_reg __fpu_xmm2; + struct __darwin_xmm_reg __fpu_xmm3; + struct __darwin_xmm_reg __fpu_xmm4; + struct __darwin_xmm_reg __fpu_xmm5; + struct __darwin_xmm_reg __fpu_xmm6; + struct __darwin_xmm_reg __fpu_xmm7; + char __fpu_rsrv4[14*16]; + int __fpu_reserved1; + char __avx_reserved1[64]; + struct __darwin_xmm_reg __fpu_ymmh0; + struct __darwin_xmm_reg __fpu_ymmh1; + struct __darwin_xmm_reg __fpu_ymmh2; + struct __darwin_xmm_reg __fpu_ymmh3; + struct __darwin_xmm_reg __fpu_ymmh4; + struct __darwin_xmm_reg __fpu_ymmh5; + struct __darwin_xmm_reg __fpu_ymmh6; + struct __darwin_xmm_reg __fpu_ymmh7; + struct __darwin_opmask_reg __fpu_k0; + struct __darwin_opmask_reg __fpu_k1; + struct __darwin_opmask_reg __fpu_k2; + struct __darwin_opmask_reg __fpu_k3; + struct __darwin_opmask_reg __fpu_k4; + struct __darwin_opmask_reg __fpu_k5; + struct __darwin_opmask_reg __fpu_k6; + struct __darwin_opmask_reg __fpu_k7; + struct __darwin_ymm_reg __fpu_zmmh0; + struct __darwin_ymm_reg __fpu_zmmh1; + struct __darwin_ymm_reg __fpu_zmmh2; + struct __darwin_ymm_reg __fpu_zmmh3; + struct __darwin_ymm_reg __fpu_zmmh4; + struct __darwin_ymm_reg __fpu_zmmh5; + struct __darwin_ymm_reg __fpu_zmmh6; + struct __darwin_ymm_reg __fpu_zmmh7; +}; +struct __darwin_i386_exception_state +{ + __uint16_t __trapno; + __uint16_t __cpu; + __uint32_t __err; + __uint32_t __faultvaddr; +}; +struct __darwin_x86_debug_state32 +{ + unsigned int __dr0; + unsigned int __dr1; + unsigned int __dr2; + unsigned int __dr3; + unsigned int __dr4; + unsigned int __dr5; + unsigned int __dr6; + unsigned int __dr7; +}; +struct __x86_instruction_state +{ + int __insn_stream_valid_bytes; + int __insn_offset; + int __out_of_synch; + __uint8_t __insn_bytes[(2448 - 64 - 4)]; + __uint8_t __insn_cacheline[64]; +}; +struct __last_branch_record +{ + __uint64_t __from_ip; + __uint64_t __to_ip; + __uint32_t __mispredict : 1, + __tsx_abort : 1, + __in_tsx : 1, + __cycle_count: 16, + __reserved : 13; +}; +struct __last_branch_state +{ + int __lbr_count; + __uint32_t __lbr_supported_tsx : 1, + __lbr_supported_cycle_count : 1, + __reserved : 30; + struct __last_branch_record __lbrs[32]; +}; +struct __x86_pagein_state +{ + int __pagein_error; +}; +struct __darwin_x86_thread_state64 +{ + __uint64_t __rax; + __uint64_t __rbx; + __uint64_t __rcx; + __uint64_t __rdx; + __uint64_t __rdi; + __uint64_t __rsi; + __uint64_t __rbp; + __uint64_t __rsp; + __uint64_t __r8; + __uint64_t __r9; + __uint64_t __r10; + __uint64_t __r11; + __uint64_t __r12; + __uint64_t __r13; + __uint64_t __r14; + __uint64_t __r15; + __uint64_t __rip; + __uint64_t __rflags; + __uint64_t __cs; + __uint64_t __fs; + __uint64_t __gs; +}; +struct __darwin_x86_thread_full_state64 +{ + struct __darwin_x86_thread_state64 __ss64; + __uint64_t __ds; + __uint64_t __es; + __uint64_t __ss; + __uint64_t __gsbase; +}; +struct __darwin_x86_float_state64 +{ + int __fpu_reserved[2]; + struct __darwin_fp_control __fpu_fcw; + struct __darwin_fp_status __fpu_fsw; + __uint8_t __fpu_ftw; + __uint8_t __fpu_rsrv1; + __uint16_t __fpu_fop; + __uint32_t __fpu_ip; + __uint16_t __fpu_cs; + __uint16_t __fpu_rsrv2; + __uint32_t __fpu_dp; + __uint16_t __fpu_ds; + __uint16_t __fpu_rsrv3; + __uint32_t __fpu_mxcsr; + __uint32_t __fpu_mxcsrmask; + struct __darwin_mmst_reg __fpu_stmm0; + struct __darwin_mmst_reg __fpu_stmm1; + struct __darwin_mmst_reg __fpu_stmm2; + struct __darwin_mmst_reg __fpu_stmm3; + struct __darwin_mmst_reg __fpu_stmm4; + struct __darwin_mmst_reg __fpu_stmm5; + struct __darwin_mmst_reg __fpu_stmm6; + struct __darwin_mmst_reg __fpu_stmm7; + struct __darwin_xmm_reg __fpu_xmm0; + struct __darwin_xmm_reg __fpu_xmm1; + struct __darwin_xmm_reg __fpu_xmm2; + struct __darwin_xmm_reg __fpu_xmm3; + struct __darwin_xmm_reg __fpu_xmm4; + struct __darwin_xmm_reg __fpu_xmm5; + struct __darwin_xmm_reg __fpu_xmm6; + struct __darwin_xmm_reg __fpu_xmm7; + struct __darwin_xmm_reg __fpu_xmm8; + struct __darwin_xmm_reg __fpu_xmm9; + struct __darwin_xmm_reg __fpu_xmm10; + struct __darwin_xmm_reg __fpu_xmm11; + struct __darwin_xmm_reg __fpu_xmm12; + struct __darwin_xmm_reg __fpu_xmm13; + struct __darwin_xmm_reg __fpu_xmm14; + struct __darwin_xmm_reg __fpu_xmm15; + char __fpu_rsrv4[6*16]; + int __fpu_reserved1; +}; +struct __darwin_x86_avx_state64 +{ + int __fpu_reserved[2]; + struct __darwin_fp_control __fpu_fcw; + struct __darwin_fp_status __fpu_fsw; + __uint8_t __fpu_ftw; + __uint8_t __fpu_rsrv1; + __uint16_t __fpu_fop; + __uint32_t __fpu_ip; + __uint16_t __fpu_cs; + __uint16_t __fpu_rsrv2; + __uint32_t __fpu_dp; + __uint16_t __fpu_ds; + __uint16_t __fpu_rsrv3; + __uint32_t __fpu_mxcsr; + __uint32_t __fpu_mxcsrmask; + struct __darwin_mmst_reg __fpu_stmm0; + struct __darwin_mmst_reg __fpu_stmm1; + struct __darwin_mmst_reg __fpu_stmm2; + struct __darwin_mmst_reg __fpu_stmm3; + struct __darwin_mmst_reg __fpu_stmm4; + struct __darwin_mmst_reg __fpu_stmm5; + struct __darwin_mmst_reg __fpu_stmm6; + struct __darwin_mmst_reg __fpu_stmm7; + struct __darwin_xmm_reg __fpu_xmm0; + struct __darwin_xmm_reg __fpu_xmm1; + struct __darwin_xmm_reg __fpu_xmm2; + struct __darwin_xmm_reg __fpu_xmm3; + struct __darwin_xmm_reg __fpu_xmm4; + struct __darwin_xmm_reg __fpu_xmm5; + struct __darwin_xmm_reg __fpu_xmm6; + struct __darwin_xmm_reg __fpu_xmm7; + struct __darwin_xmm_reg __fpu_xmm8; + struct __darwin_xmm_reg __fpu_xmm9; + struct __darwin_xmm_reg __fpu_xmm10; + struct __darwin_xmm_reg __fpu_xmm11; + struct __darwin_xmm_reg __fpu_xmm12; + struct __darwin_xmm_reg __fpu_xmm13; + struct __darwin_xmm_reg __fpu_xmm14; + struct __darwin_xmm_reg __fpu_xmm15; + char __fpu_rsrv4[6*16]; + int __fpu_reserved1; + char __avx_reserved1[64]; + struct __darwin_xmm_reg __fpu_ymmh0; + struct __darwin_xmm_reg __fpu_ymmh1; + struct __darwin_xmm_reg __fpu_ymmh2; + struct __darwin_xmm_reg __fpu_ymmh3; + struct __darwin_xmm_reg __fpu_ymmh4; + struct __darwin_xmm_reg __fpu_ymmh5; + struct __darwin_xmm_reg __fpu_ymmh6; + struct __darwin_xmm_reg __fpu_ymmh7; + struct __darwin_xmm_reg __fpu_ymmh8; + struct __darwin_xmm_reg __fpu_ymmh9; + struct __darwin_xmm_reg __fpu_ymmh10; + struct __darwin_xmm_reg __fpu_ymmh11; + struct __darwin_xmm_reg __fpu_ymmh12; + struct __darwin_xmm_reg __fpu_ymmh13; + struct __darwin_xmm_reg __fpu_ymmh14; + struct __darwin_xmm_reg __fpu_ymmh15; +}; +struct __darwin_x86_avx512_state64 +{ + int __fpu_reserved[2]; + struct __darwin_fp_control __fpu_fcw; + struct __darwin_fp_status __fpu_fsw; + __uint8_t __fpu_ftw; + __uint8_t __fpu_rsrv1; + __uint16_t __fpu_fop; + __uint32_t __fpu_ip; + __uint16_t __fpu_cs; + __uint16_t __fpu_rsrv2; + __uint32_t __fpu_dp; + __uint16_t __fpu_ds; + __uint16_t __fpu_rsrv3; + __uint32_t __fpu_mxcsr; + __uint32_t __fpu_mxcsrmask; + struct __darwin_mmst_reg __fpu_stmm0; + struct __darwin_mmst_reg __fpu_stmm1; + struct __darwin_mmst_reg __fpu_stmm2; + struct __darwin_mmst_reg __fpu_stmm3; + struct __darwin_mmst_reg __fpu_stmm4; + struct __darwin_mmst_reg __fpu_stmm5; + struct __darwin_mmst_reg __fpu_stmm6; + struct __darwin_mmst_reg __fpu_stmm7; + struct __darwin_xmm_reg __fpu_xmm0; + struct __darwin_xmm_reg __fpu_xmm1; + struct __darwin_xmm_reg __fpu_xmm2; + struct __darwin_xmm_reg __fpu_xmm3; + struct __darwin_xmm_reg __fpu_xmm4; + struct __darwin_xmm_reg __fpu_xmm5; + struct __darwin_xmm_reg __fpu_xmm6; + struct __darwin_xmm_reg __fpu_xmm7; + struct __darwin_xmm_reg __fpu_xmm8; + struct __darwin_xmm_reg __fpu_xmm9; + struct __darwin_xmm_reg __fpu_xmm10; + struct __darwin_xmm_reg __fpu_xmm11; + struct __darwin_xmm_reg __fpu_xmm12; + struct __darwin_xmm_reg __fpu_xmm13; + struct __darwin_xmm_reg __fpu_xmm14; + struct __darwin_xmm_reg __fpu_xmm15; + char __fpu_rsrv4[6*16]; + int __fpu_reserved1; + char __avx_reserved1[64]; + struct __darwin_xmm_reg __fpu_ymmh0; + struct __darwin_xmm_reg __fpu_ymmh1; + struct __darwin_xmm_reg __fpu_ymmh2; + struct __darwin_xmm_reg __fpu_ymmh3; + struct __darwin_xmm_reg __fpu_ymmh4; + struct __darwin_xmm_reg __fpu_ymmh5; + struct __darwin_xmm_reg __fpu_ymmh6; + struct __darwin_xmm_reg __fpu_ymmh7; + struct __darwin_xmm_reg __fpu_ymmh8; + struct __darwin_xmm_reg __fpu_ymmh9; + struct __darwin_xmm_reg __fpu_ymmh10; + struct __darwin_xmm_reg __fpu_ymmh11; + struct __darwin_xmm_reg __fpu_ymmh12; + struct __darwin_xmm_reg __fpu_ymmh13; + struct __darwin_xmm_reg __fpu_ymmh14; + struct __darwin_xmm_reg __fpu_ymmh15; + struct __darwin_opmask_reg __fpu_k0; + struct __darwin_opmask_reg __fpu_k1; + struct __darwin_opmask_reg __fpu_k2; + struct __darwin_opmask_reg __fpu_k3; + struct __darwin_opmask_reg __fpu_k4; + struct __darwin_opmask_reg __fpu_k5; + struct __darwin_opmask_reg __fpu_k6; + struct __darwin_opmask_reg __fpu_k7; + struct __darwin_ymm_reg __fpu_zmmh0; + struct __darwin_ymm_reg __fpu_zmmh1; + struct __darwin_ymm_reg __fpu_zmmh2; + struct __darwin_ymm_reg __fpu_zmmh3; + struct __darwin_ymm_reg __fpu_zmmh4; + struct __darwin_ymm_reg __fpu_zmmh5; + struct __darwin_ymm_reg __fpu_zmmh6; + struct __darwin_ymm_reg __fpu_zmmh7; + struct __darwin_ymm_reg __fpu_zmmh8; + struct __darwin_ymm_reg __fpu_zmmh9; + struct __darwin_ymm_reg __fpu_zmmh10; + struct __darwin_ymm_reg __fpu_zmmh11; + struct __darwin_ymm_reg __fpu_zmmh12; + struct __darwin_ymm_reg __fpu_zmmh13; + struct __darwin_ymm_reg __fpu_zmmh14; + struct __darwin_ymm_reg __fpu_zmmh15; + struct __darwin_zmm_reg __fpu_zmm16; + struct __darwin_zmm_reg __fpu_zmm17; + struct __darwin_zmm_reg __fpu_zmm18; + struct __darwin_zmm_reg __fpu_zmm19; + struct __darwin_zmm_reg __fpu_zmm20; + struct __darwin_zmm_reg __fpu_zmm21; + struct __darwin_zmm_reg __fpu_zmm22; + struct __darwin_zmm_reg __fpu_zmm23; + struct __darwin_zmm_reg __fpu_zmm24; + struct __darwin_zmm_reg __fpu_zmm25; + struct __darwin_zmm_reg __fpu_zmm26; + struct __darwin_zmm_reg __fpu_zmm27; + struct __darwin_zmm_reg __fpu_zmm28; + struct __darwin_zmm_reg __fpu_zmm29; + struct __darwin_zmm_reg __fpu_zmm30; + struct __darwin_zmm_reg __fpu_zmm31; +}; +struct __darwin_x86_exception_state64 +{ + __uint16_t __trapno; + __uint16_t __cpu; + __uint32_t __err; + __uint64_t __faultvaddr; +}; +struct __darwin_x86_debug_state64 +{ + __uint64_t __dr0; + __uint64_t __dr1; + __uint64_t __dr2; + __uint64_t __dr3; + __uint64_t __dr4; + __uint64_t __dr5; + __uint64_t __dr6; + __uint64_t __dr7; +}; +struct __darwin_x86_cpmu_state64 +{ + __uint64_t __ctrs[16]; +}; +struct __darwin_mcontext32 +{ + struct __darwin_i386_exception_state __es; + struct __darwin_i386_thread_state __ss; + struct __darwin_i386_float_state __fs; +}; +struct __darwin_mcontext_avx32 +{ + struct __darwin_i386_exception_state __es; + struct __darwin_i386_thread_state __ss; + struct __darwin_i386_avx_state __fs; +}; +struct __darwin_mcontext_avx512_32 +{ + struct __darwin_i386_exception_state __es; + struct __darwin_i386_thread_state __ss; + struct __darwin_i386_avx512_state __fs; +}; +struct __darwin_mcontext64 +{ + struct __darwin_x86_exception_state64 __es; + struct __darwin_x86_thread_state64 __ss; + struct __darwin_x86_float_state64 __fs; +}; +struct __darwin_mcontext64_full +{ + struct __darwin_x86_exception_state64 __es; + struct __darwin_x86_thread_full_state64 __ss; + struct __darwin_x86_float_state64 __fs; +}; +struct __darwin_mcontext_avx64 +{ + struct __darwin_x86_exception_state64 __es; + struct __darwin_x86_thread_state64 __ss; + struct __darwin_x86_avx_state64 __fs; +}; +struct __darwin_mcontext_avx64_full +{ + struct __darwin_x86_exception_state64 __es; + struct __darwin_x86_thread_full_state64 __ss; + struct __darwin_x86_avx_state64 __fs; +}; +struct __darwin_mcontext_avx512_64 +{ + struct __darwin_x86_exception_state64 __es; + struct __darwin_x86_thread_state64 __ss; + struct __darwin_x86_avx512_state64 __fs; +}; +struct __darwin_mcontext_avx512_64_full +{ + struct __darwin_x86_exception_state64 __es; + struct __darwin_x86_thread_full_state64 __ss; + struct __darwin_x86_avx512_state64 __fs; +}; +typedef struct __darwin_mcontext64 *mcontext_t; +struct __darwin_sigaltstack +{ + void *ss_sp; + __darwin_size_t ss_size; + int ss_flags; +}; +typedef struct __darwin_sigaltstack stack_t; +struct __darwin_ucontext +{ + int uc_onstack; + __darwin_sigset_t uc_sigmask; + struct __darwin_sigaltstack uc_stack; + struct __darwin_ucontext *uc_link; + __darwin_size_t uc_mcsize; + struct __darwin_mcontext64 *uc_mcontext; + struct __darwin_mcontext64 __mcontext_data; +}; +typedef struct __darwin_ucontext ucontext_t; +typedef __darwin_sigset_t sigset_t; +union sigval { + int sival_int; + void *sival_ptr; +}; +struct sigevent { + int sigev_notify; + int sigev_signo; + union sigval sigev_value; + void (*sigev_notify_function)(union sigval); + pthread_attr_t *sigev_notify_attributes; +}; +typedef struct __siginfo { + int si_signo; + int si_errno; + int si_code; + pid_t si_pid; + uid_t si_uid; + int si_status; + void *si_addr; + union sigval si_value; + long si_band; + unsigned long __pad[7]; +} siginfo_t; +union __sigaction_u { + void (*__sa_handler)(int); + void (*__sa_sigaction)(int, struct __siginfo *, + void *); +}; +struct __sigaction { + union __sigaction_u __sigaction_u; + void (*sa_tramp)(void *, int, int, siginfo_t *, void *); + sigset_t sa_mask; + int sa_flags; +}; +struct sigaction { + union __sigaction_u __sigaction_u; + sigset_t sa_mask; + int sa_flags; +}; +typedef void (*sig_t)(int); +struct sigvec { + void (*sv_handler)(int); + int sv_mask; + int sv_flags; +}; +struct sigstack { + char *ss_sp; + int ss_onstack; +}; + void(*signal(int, void (*)(int)))(int); +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; +typedef unsigned long long uint64_t; +typedef int8_t int_least8_t; +typedef int16_t int_least16_t; +typedef int32_t int_least32_t; +typedef int64_t int_least64_t; +typedef uint8_t uint_least8_t; +typedef uint16_t uint_least16_t; +typedef uint32_t uint_least32_t; +typedef uint64_t uint_least64_t; +typedef int8_t int_fast8_t; +typedef int16_t int_fast16_t; +typedef int32_t int_fast32_t; +typedef int64_t int_fast64_t; +typedef uint8_t uint_fast8_t; +typedef uint16_t uint_fast16_t; +typedef uint32_t uint_fast32_t; +typedef uint64_t uint_fast64_t; +typedef long int intmax_t; +typedef long unsigned int uintmax_t; +struct timeval +{ + __darwin_time_t tv_sec; + __darwin_suseconds_t tv_usec; +}; +typedef __uint64_t rlim_t; +struct rusage { + struct timeval ru_utime; + struct timeval ru_stime; + long ru_maxrss; + long ru_ixrss; + long ru_idrss; + long ru_isrss; + long ru_minflt; + long ru_majflt; + long ru_nswap; + long ru_inblock; + long ru_oublock; + long ru_msgsnd; + long ru_msgrcv; + long ru_nsignals; + long ru_nvcsw; + long ru_nivcsw; +}; +typedef void *rusage_info_t; +struct rusage_info_v0 { + uint8_t ri_uuid[16]; + uint64_t ri_user_time; + uint64_t ri_system_time; + uint64_t ri_pkg_idle_wkups; + uint64_t ri_interrupt_wkups; + uint64_t ri_pageins; + uint64_t ri_wired_size; + uint64_t ri_resident_size; + uint64_t ri_phys_footprint; + uint64_t ri_proc_start_abstime; + uint64_t ri_proc_exit_abstime; +}; +struct rusage_info_v1 { + uint8_t ri_uuid[16]; + uint64_t ri_user_time; + uint64_t ri_system_time; + uint64_t ri_pkg_idle_wkups; + uint64_t ri_interrupt_wkups; + uint64_t ri_pageins; + uint64_t ri_wired_size; + uint64_t ri_resident_size; + uint64_t ri_phys_footprint; + uint64_t ri_proc_start_abstime; + uint64_t ri_proc_exit_abstime; + uint64_t ri_child_user_time; + uint64_t ri_child_system_time; + uint64_t ri_child_pkg_idle_wkups; + uint64_t ri_child_interrupt_wkups; + uint64_t ri_child_pageins; + uint64_t ri_child_elapsed_abstime; +}; +struct rusage_info_v2 { + uint8_t ri_uuid[16]; + uint64_t ri_user_time; + uint64_t ri_system_time; + uint64_t ri_pkg_idle_wkups; + uint64_t ri_interrupt_wkups; + uint64_t ri_pageins; + uint64_t ri_wired_size; + uint64_t ri_resident_size; + uint64_t ri_phys_footprint; + uint64_t ri_proc_start_abstime; + uint64_t ri_proc_exit_abstime; + uint64_t ri_child_user_time; + uint64_t ri_child_system_time; + uint64_t ri_child_pkg_idle_wkups; + uint64_t ri_child_interrupt_wkups; + uint64_t ri_child_pageins; + uint64_t ri_child_elapsed_abstime; + uint64_t ri_diskio_bytesread; + uint64_t ri_diskio_byteswritten; +}; +struct rusage_info_v3 { + uint8_t ri_uuid[16]; + uint64_t ri_user_time; + uint64_t ri_system_time; + uint64_t ri_pkg_idle_wkups; + uint64_t ri_interrupt_wkups; + uint64_t ri_pageins; + uint64_t ri_wired_size; + uint64_t ri_resident_size; + uint64_t ri_phys_footprint; + uint64_t ri_proc_start_abstime; + uint64_t ri_proc_exit_abstime; + uint64_t ri_child_user_time; + uint64_t ri_child_system_time; + uint64_t ri_child_pkg_idle_wkups; + uint64_t ri_child_interrupt_wkups; + uint64_t ri_child_pageins; + uint64_t ri_child_elapsed_abstime; + uint64_t ri_diskio_bytesread; + uint64_t ri_diskio_byteswritten; + uint64_t ri_cpu_time_qos_default; + uint64_t ri_cpu_time_qos_maintenance; + uint64_t ri_cpu_time_qos_background; + uint64_t ri_cpu_time_qos_utility; + uint64_t ri_cpu_time_qos_legacy; + uint64_t ri_cpu_time_qos_user_initiated; + uint64_t ri_cpu_time_qos_user_interactive; + uint64_t ri_billed_system_time; + uint64_t ri_serviced_system_time; +}; +struct rusage_info_v4 { + uint8_t ri_uuid[16]; + uint64_t ri_user_time; + uint64_t ri_system_time; + uint64_t ri_pkg_idle_wkups; + uint64_t ri_interrupt_wkups; + uint64_t ri_pageins; + uint64_t ri_wired_size; + uint64_t ri_resident_size; + uint64_t ri_phys_footprint; + uint64_t ri_proc_start_abstime; + uint64_t ri_proc_exit_abstime; + uint64_t ri_child_user_time; + uint64_t ri_child_system_time; + uint64_t ri_child_pkg_idle_wkups; + uint64_t ri_child_interrupt_wkups; + uint64_t ri_child_pageins; + uint64_t ri_child_elapsed_abstime; + uint64_t ri_diskio_bytesread; + uint64_t ri_diskio_byteswritten; + uint64_t ri_cpu_time_qos_default; + uint64_t ri_cpu_time_qos_maintenance; + uint64_t ri_cpu_time_qos_background; + uint64_t ri_cpu_time_qos_utility; + uint64_t ri_cpu_time_qos_legacy; + uint64_t ri_cpu_time_qos_user_initiated; + uint64_t ri_cpu_time_qos_user_interactive; + uint64_t ri_billed_system_time; + uint64_t ri_serviced_system_time; + uint64_t ri_logical_writes; + uint64_t ri_lifetime_max_phys_footprint; + uint64_t ri_instructions; + uint64_t ri_cycles; + uint64_t ri_billed_energy; + uint64_t ri_serviced_energy; + uint64_t ri_interval_max_phys_footprint; + uint64_t ri_runnable_time; +}; +struct rusage_info_v5 { + uint8_t ri_uuid[16]; + uint64_t ri_user_time; + uint64_t ri_system_time; + uint64_t ri_pkg_idle_wkups; + uint64_t ri_interrupt_wkups; + uint64_t ri_pageins; + uint64_t ri_wired_size; + uint64_t ri_resident_size; + uint64_t ri_phys_footprint; + uint64_t ri_proc_start_abstime; + uint64_t ri_proc_exit_abstime; + uint64_t ri_child_user_time; + uint64_t ri_child_system_time; + uint64_t ri_child_pkg_idle_wkups; + uint64_t ri_child_interrupt_wkups; + uint64_t ri_child_pageins; + uint64_t ri_child_elapsed_abstime; + uint64_t ri_diskio_bytesread; + uint64_t ri_diskio_byteswritten; + uint64_t ri_cpu_time_qos_default; + uint64_t ri_cpu_time_qos_maintenance; + uint64_t ri_cpu_time_qos_background; + uint64_t ri_cpu_time_qos_utility; + uint64_t ri_cpu_time_qos_legacy; + uint64_t ri_cpu_time_qos_user_initiated; + uint64_t ri_cpu_time_qos_user_interactive; + uint64_t ri_billed_system_time; + uint64_t ri_serviced_system_time; + uint64_t ri_logical_writes; + uint64_t ri_lifetime_max_phys_footprint; + uint64_t ri_instructions; + uint64_t ri_cycles; + uint64_t ri_billed_energy; + uint64_t ri_serviced_energy; + uint64_t ri_interval_max_phys_footprint; + uint64_t ri_runnable_time; + uint64_t ri_flags; +}; +struct rusage_info_v6 { + uint8_t ri_uuid[16]; + uint64_t ri_user_time; + uint64_t ri_system_time; + uint64_t ri_pkg_idle_wkups; + uint64_t ri_interrupt_wkups; + uint64_t ri_pageins; + uint64_t ri_wired_size; + uint64_t ri_resident_size; + uint64_t ri_phys_footprint; + uint64_t ri_proc_start_abstime; + uint64_t ri_proc_exit_abstime; + uint64_t ri_child_user_time; + uint64_t ri_child_system_time; + uint64_t ri_child_pkg_idle_wkups; + uint64_t ri_child_interrupt_wkups; + uint64_t ri_child_pageins; + uint64_t ri_child_elapsed_abstime; + uint64_t ri_diskio_bytesread; + uint64_t ri_diskio_byteswritten; + uint64_t ri_cpu_time_qos_default; + uint64_t ri_cpu_time_qos_maintenance; + uint64_t ri_cpu_time_qos_background; + uint64_t ri_cpu_time_qos_utility; + uint64_t ri_cpu_time_qos_legacy; + uint64_t ri_cpu_time_qos_user_initiated; + uint64_t ri_cpu_time_qos_user_interactive; + uint64_t ri_billed_system_time; + uint64_t ri_serviced_system_time; + uint64_t ri_logical_writes; + uint64_t ri_lifetime_max_phys_footprint; + uint64_t ri_instructions; + uint64_t ri_cycles; + uint64_t ri_billed_energy; + uint64_t ri_serviced_energy; + uint64_t ri_interval_max_phys_footprint; + uint64_t ri_runnable_time; + uint64_t ri_flags; + uint64_t ri_user_ptime; + uint64_t ri_system_ptime; + uint64_t ri_pinstructions; + uint64_t ri_pcycles; + uint64_t ri_energy_nj; + uint64_t ri_penergy_nj; + uint64_t ri_reserved[14]; +}; +typedef struct rusage_info_v6 rusage_info_current; +struct rlimit { + rlim_t rlim_cur; + rlim_t rlim_max; +}; +struct proc_rlimit_control_wakeupmon { + uint32_t wm_flags; + int32_t wm_rate; +}; +int getpriority(int, id_t); +int getiopolicy_np(int, int) __attribute__((availability(macosx,introduced=10.5))); +int getrlimit(int, struct rlimit *) __asm("_" "getrlimit" ); +int getrusage(int, struct rusage *); +int setpriority(int, id_t, int); +int setiopolicy_np(int, int, int) __attribute__((availability(macosx,introduced=10.5))); +int setrlimit(int, const struct rlimit *) __asm("_" "setrlimit" ); +union wait { + int w_status; + struct { + unsigned int w_Termsig:7, + w_Coredump:1, + w_Retcode:8, + w_Filler:16; + } w_T; + struct { + unsigned int w_Stopval:8, + w_Stopsig:8, + w_Filler:16; + } w_S; +}; +pid_t wait(int *) __asm("_" "wait" ); +pid_t waitpid(pid_t, int *, int) __asm("_" "waitpid" ); +int waitid(idtype_t, id_t, siginfo_t *, int) __asm("_" "waitid" ); +pid_t wait3(int *, int, struct rusage *); +pid_t wait4(pid_t, int *, int, struct rusage *); + +void *alloca(size_t); +typedef __darwin_ct_rune_t ct_rune_t; +typedef __darwin_rune_t rune_t; +typedef __darwin_wchar_t wchar_t; + +typedef struct { + int quot; + int rem; +} div_t; +typedef struct { + long quot; + long rem; +} ldiv_t; +typedef struct { + long long quot; + long long rem; +} lldiv_t; +extern int __mb_cur_max; +void *malloc(size_t __size) __attribute__((__warn_unused_result__)) __attribute__((alloc_size(1))); +void *calloc(size_t __count, size_t __size) __attribute__((__warn_unused_result__)) __attribute__((alloc_size(1,2))); +void free(void *); +void *realloc(void *__ptr, size_t __size) __attribute__((__warn_unused_result__)) __attribute__((alloc_size(2))); +void *valloc(size_t) __attribute__((alloc_size(1))); +void *aligned_alloc(size_t __alignment, size_t __size) __attribute__((__warn_unused_result__)) __attribute__((alloc_size(2))) __attribute__((availability(macosx,introduced=10.15))) __attribute__((availability(ios,introduced=13.0))) __attribute__((availability(tvos,introduced=13.0))) __attribute__((availability(watchos,introduced=6.0))); +int posix_memalign(void **__memptr, size_t __alignment, size_t __size) __attribute__((availability(macosx,introduced=10.6))); +void abort(void) __attribute__((__cold__)) __attribute__((__noreturn__)); +int abs(int) __attribute__((__const__)); +int atexit(void (* _Nonnull)(void)); +double atof(const char *); +int atoi(const char *); +long atol(const char *); +long long + atoll(const char *); +void *bsearch(const void *__key, const void *__base, size_t __nel, + size_t __width, int (* _Nonnull __compar)(const void *, const void *)); +div_t div(int, int) __attribute__((__const__)); +void exit(int) __attribute__((__noreturn__)); +char *getenv(const char *); +long labs(long) __attribute__((__const__)); +ldiv_t ldiv(long, long) __attribute__((__const__)); +long long + llabs(long long); +lldiv_t lldiv(long long, long long); +int mblen(const char *__s, size_t __n); +size_t mbstowcs(wchar_t * __restrict__ , const char * __restrict__, size_t); +int mbtowc(wchar_t * __restrict__, const char * __restrict__, size_t); +void qsort(void *__base, size_t __nel, size_t __width, + int (* _Nonnull __compar)(const void *, const void *)); +int rand(void) __attribute__((__availability__(swift, unavailable, message="Use arc4random instead."))); +void srand(unsigned) __attribute__((__availability__(swift, unavailable, message="Use arc4random instead."))); +double strtod(const char *, char **) __asm("_" "strtod" ); +float strtof(const char *, char **) __asm("_" "strtof" ); +long strtol(const char *__str, char **__endptr, int __base); +long double + strtold(const char *, char **); +long long + strtoll(const char *__str, char **__endptr, int __base); +unsigned long + strtoul(const char *__str, char **__endptr, int __base); +unsigned long long + strtoull(const char *__str, char **__endptr, int __base); +__attribute__((__availability__(swift, unavailable, message="Use posix_spawn APIs or NSTask instead. (On iOS, process spawning is unavailable.)"))) +__attribute__((availability(macos,introduced=10.0))) __attribute__((availability(ios,unavailable))) +__attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))) +int system(const char *) __asm("_" "system" ); +size_t wcstombs(char * __restrict__, const wchar_t * __restrict__, size_t); +int wctomb(char *, wchar_t); +void _Exit(int) __attribute__((__noreturn__)); +long a64l(const char *); +double drand48(void); +char *ecvt(double, int, int *__restrict__, int *__restrict__); +double erand48(unsigned short[3]); +char *fcvt(double, int, int *__restrict__, int *__restrict__); +char *gcvt(double, int, char *); +int getsubopt(char **, char * const *, char **); +int grantpt(int); +char *initstate(unsigned, char *, size_t); +long jrand48(unsigned short[3]) __attribute__((__availability__(swift, unavailable, message="Use arc4random instead."))); +char *l64a(long); +void lcong48(unsigned short[7]); +long lrand48(void) __attribute__((__availability__(swift, unavailable, message="Use arc4random instead."))); +__attribute__((__deprecated__("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of mktemp(3), it is highly recommended that you use mkstemp(3) instead."))) +char *mktemp(char *); +int mkstemp(char *); +long mrand48(void) __attribute__((__availability__(swift, unavailable, message="Use arc4random instead."))); +long nrand48(unsigned short[3]) __attribute__((__availability__(swift, unavailable, message="Use arc4random instead."))); +int posix_openpt(int); +char *ptsname(int); +int ptsname_r(int fildes, char *buffer, size_t buflen) __attribute__((availability(macos,introduced=10.13.4))) __attribute__((availability(ios,introduced=11.3))) __attribute__((availability(tvos,introduced=11.3))) __attribute__((availability(watchos,introduced=4.3))); +int putenv(char *) __asm("_" "putenv" ); +long random(void) __attribute__((__availability__(swift, unavailable, message="Use arc4random instead."))); +int rand_r(unsigned *) __attribute__((__availability__(swift, unavailable, message="Use arc4random instead."))); +char *realpath(const char * __restrict__, char * __restrict__) __asm("_" "realpath" "$DARWIN_EXTSN"); +unsigned short + *seed48(unsigned short[3]); +int setenv(const char * __name, const char * __value, int __overwrite) __asm("_" "setenv" ); +void setkey(const char *) __asm("_" "setkey" ); +char *setstate(const char *); +void srand48(long); +void srandom(unsigned); +int unlockpt(int); +int unsetenv(const char *) __asm("_" "unsetenv" ); +uint32_t arc4random(void); +void arc4random_addrandom(unsigned char * , int ) + __attribute__((availability(macosx,introduced=10.0))) __attribute__((availability(macosx,deprecated=10.12,message="use arc4random_stir"))) + __attribute__((availability(ios,introduced=2.0))) __attribute__((availability(ios,deprecated=10.0,message="use arc4random_stir"))) + __attribute__((availability(tvos,introduced=2.0))) __attribute__((availability(tvos,deprecated=10.0,message="use arc4random_stir"))) + __attribute__((availability(watchos,introduced=1.0))) __attribute__((availability(watchos,deprecated=3.0,message="use arc4random_stir"))); +void arc4random_buf(void * __buf, size_t __nbytes) __attribute__((availability(macosx,introduced=10.7))); +void arc4random_stir(void); +uint32_t + arc4random_uniform(uint32_t __upper_bound) __attribute__((availability(macosx,introduced=10.7))); +int atexit_b(void (^ _Nonnull)(void)) __attribute__((availability(macosx,introduced=10.6))); +void *bsearch_b(const void *__key, const void *__base, size_t __nel, + size_t __width, int (^ _Nonnull __compar)(const void *, const void *) __attribute__((__noescape__))) + __attribute__((availability(macosx,introduced=10.6))); +char *cgetcap(char *, const char *, int); +int cgetclose(void); +int cgetent(char **, char **, const char *); +int cgetfirst(char **, char **); +int cgetmatch(const char *, const char *); +int cgetnext(char **, char **); +int cgetnum(char *, const char *, long *); +int cgetset(const char *); +int cgetstr(char *, const char *, char **); +int cgetustr(char *, const char *, char **); +int daemon(int, int) __asm("_" "daemon" "$1050") __attribute__((availability(macosx,introduced=10.0,deprecated=10.5,message="Use posix_spawn APIs instead."))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +char *devname(dev_t, mode_t); +char *devname_r(dev_t, mode_t, char *buf, int len); +char *getbsize(int *, long *); +int getloadavg(double [], int); +const char + *getprogname(void); +void setprogname(const char *); +int heapsort(void *__base, size_t __nel, size_t __width, + int (* _Nonnull __compar)(const void *, const void *)); +int heapsort_b(void *__base, size_t __nel, size_t __width, + int (^ _Nonnull __compar)(const void *, const void *) __attribute__((__noescape__))) + __attribute__((availability(macosx,introduced=10.6))); +int mergesort(void *__base, size_t __nel, size_t __width, + int (* _Nonnull __compar)(const void *, const void *)); +int mergesort_b(void *__base, size_t __nel, size_t __width, + int (^ _Nonnull __compar)(const void *, const void *) __attribute__((__noescape__))) + __attribute__((availability(macosx,introduced=10.6))); +void psort(void *__base, size_t __nel, size_t __width, + int (* _Nonnull __compar)(const void *, const void *)) + __attribute__((availability(macosx,introduced=10.6))); +void psort_b(void *__base, size_t __nel, size_t __width, + int (^ _Nonnull __compar)(const void *, const void *) __attribute__((__noescape__))) + __attribute__((availability(macosx,introduced=10.6))); +void psort_r(void *__base, size_t __nel, size_t __width, void *, + int (* _Nonnull __compar)(void *, const void *, const void *)) + __attribute__((availability(macosx,introduced=10.6))); +void qsort_b(void *__base, size_t __nel, size_t __width, + int (^ _Nonnull __compar)(const void *, const void *) __attribute__((__noescape__))) + __attribute__((availability(macosx,introduced=10.6))); +void qsort_r(void *__base, size_t __nel, size_t __width, void *, + int (* _Nonnull __compar)(void *, const void *, const void *)); +int radixsort(const unsigned char **__base, int __nel, const unsigned char *__table, + unsigned __endbyte); +int rpmatch(const char *) + __attribute__((availability(macos,introduced=10.15))) __attribute__((availability(ios,introduced=13.0))) __attribute__((availability(tvos,introduced=13.0))) __attribute__((availability(watchos,introduced=6.0))); +int sradixsort(const unsigned char **__base, int __nel, const unsigned char *__table, + unsigned __endbyte); +void sranddev(void); +void srandomdev(void); +void *reallocf(void *__ptr, size_t __size) __attribute__((alloc_size(2))); +long long + strtonum(const char *__numstr, long long __minval, long long __maxval, const char **__errstrp) + __attribute__((availability(macos,introduced=11.0))) __attribute__((availability(ios,introduced=14.0))) __attribute__((availability(tvos,introduced=14.0))) __attribute__((availability(watchos,introduced=7.0))); +long long + strtoq(const char *__str, char **__endptr, int __base); +unsigned long long + strtouq(const char *__str, char **__endptr, int __base); +extern char *suboptarg; +typedef long int ptrdiff_t; +typedef long double max_align_t; + +void *memchr(const void *__s, int __c, size_t __n); +int memcmp(const void *__s1, const void *__s2, size_t __n); +void *memcpy(void *__dst, const void *__src, size_t __n); +void *memmove(void *__dst, const void *__src, size_t __len); +void *memset(void *__b, int __c, size_t __len); +char *strcat(char *__s1, const char *__s2); +char *strchr(const char *__s, int __c); +int strcmp(const char *__s1, const char *__s2); +int strcoll(const char *__s1, const char *__s2); +char *strcpy(char *__dst, const char *__src); +size_t strcspn(const char *__s, const char *__charset); +char *strerror(int __errnum) __asm("_" "strerror" ); +size_t strlen(const char *__s); +char *strncat(char *__s1, const char *__s2, size_t __n); +int strncmp(const char *__s1, const char *__s2, size_t __n); +char *strncpy(char *__dst, const char *__src, size_t __n); +char *strpbrk(const char *__s, const char *__charset); +char *strrchr(const char *__s, int __c); +size_t strspn(const char *__s, const char *__charset); +char *strstr(const char *__big, const char *__little); +char *strtok(char *__str, const char *__sep); +size_t strxfrm(char *__s1, const char *__s2, size_t __n); +char *strtok_r(char *__str, const char *__sep, char **__lasts); +int strerror_r(int __errnum, char *__strerrbuf, size_t __buflen); +char *strdup(const char *__s1); +void *memccpy(void *__dst, const void *__src, int __c, size_t __n); +char *stpcpy(char *__dst, const char *__src); +char *stpncpy(char *__dst, const char *__src, size_t __n) __attribute__((availability(macosx,introduced=10.7))); +char *strndup(const char *__s1, size_t __n) __attribute__((availability(macosx,introduced=10.7))); +size_t strnlen(const char *__s1, size_t __n) __attribute__((availability(macosx,introduced=10.7))); +char *strsignal(int __sig); +errno_t memset_s(void *__s, rsize_t __smax, int __c, rsize_t __n) __attribute__((availability(macosx,introduced=10.9))); +void *memmem(const void *__big, size_t __big_len, const void *__little, size_t __little_len) __attribute__((availability(macosx,introduced=10.7))); +void memset_pattern4(void *__b, const void *__pattern4, size_t __len) __attribute__((availability(macosx,introduced=10.5))); +void memset_pattern8(void *__b, const void *__pattern8, size_t __len) __attribute__((availability(macosx,introduced=10.5))); +void memset_pattern16(void *__b, const void *__pattern16, size_t __len) __attribute__((availability(macosx,introduced=10.5))); +char *strcasestr(const char *__big, const char *__little); +char *strnstr(const char *__big, const char *__little, size_t __len); +size_t strlcat(char *__dst, const char *__source, size_t __size); +size_t strlcpy(char *__dst, const char *__source, size_t __size); +void strmode(int __mode, char *__bp); +char *strsep(char **__stringp, const char *__delim); +void swab(const void * __restrict__, void * __restrict__, ssize_t); +__attribute__((availability(macosx,introduced=10.12.1))) __attribute__((availability(ios,introduced=10.1))) +__attribute__((availability(tvos,introduced=10.0.1))) __attribute__((availability(watchos,introduced=3.1))) +int timingsafe_bcmp(const void *__b1, const void *__b2, size_t __len); +__attribute__((availability(macosx,introduced=11.0))) __attribute__((availability(ios,introduced=14.0))) +__attribute__((availability(tvos,introduced=14.0))) __attribute__((availability(watchos,introduced=7.0))) +int strsignal_r(int __sig, char *__strsignalbuf, size_t __buflen); +int bcmp(const void *, const void *, size_t) ; +void bcopy(const void *, void *, size_t) ; +void bzero(void *, size_t) ; +char *index(const char *, int) ; +char *rindex(const char *, int) ; +int ffs(int); +int strcasecmp(const char *, const char *); +int strncasecmp(const char *, const char *, size_t); +int ffsl(long) __attribute__((availability(macosx,introduced=10.5))); +int ffsll(long long) __attribute__((availability(macosx,introduced=10.9))); +int fls(int) __attribute__((availability(macosx,introduced=10.5))); +int flsl(long) __attribute__((availability(macosx,introduced=10.5))); +int flsll(long long) __attribute__((availability(macosx,introduced=10.9))); +__attribute__((availability(macosx,introduced=10.4))) +extern intmax_t +imaxabs(intmax_t j); +typedef struct { + intmax_t quot; + intmax_t rem; +} imaxdiv_t; +__attribute__((availability(macosx,introduced=10.4))) +extern imaxdiv_t +imaxdiv(intmax_t __numer, intmax_t __denom); +__attribute__((availability(macosx,introduced=10.4))) +extern intmax_t +strtoimax(const char * __restrict__ __nptr, + char ** __restrict__ __endptr, + int __base); +__attribute__((availability(macosx,introduced=10.4))) +extern uintmax_t +strtoumax(const char * __restrict__ __nptr, + char ** __restrict__ __endptr, + int __base); +__attribute__((availability(macosx,introduced=10.4))) +extern intmax_t +wcstoimax(const wchar_t * __restrict__ __nptr, + wchar_t ** __restrict__ __endptr, + int __base); +__attribute__((availability(macosx,introduced=10.4))) +extern uintmax_t +wcstoumax(const wchar_t * __restrict__ __nptr, + wchar_t ** __restrict__ __endptr, + int __base); + +struct accessx_descriptor { + unsigned int ad_name_offset; + int ad_flags; + int ad_pad[2]; +}; +int getattrlistbulk(int, void *, void *, size_t, uint64_t) __attribute__((availability(macosx,introduced=10.10))); +int getattrlistat(int, const char *, void *, void *, size_t, unsigned long) __attribute__((availability(macosx,introduced=10.10))); +int setattrlistat(int, const char *, void *, void *, size_t, uint32_t) __attribute__((availability(macosx,introduced=10.13))) __attribute__((availability(ios,introduced=11.0))) __attribute__((availability(tvos,introduced=11.0))) __attribute__((availability(watchos,introduced=4.0))); +ssize_t freadlink(int, char * __restrict__, size_t) __attribute__((availability(macos,introduced=13.0))) __attribute__((availability(ios,introduced=16.0))) __attribute__((availability(tvos,introduced=16.0))) __attribute__((availability(watchos,introduced=9.0))); +int faccessat(int, const char *, int, int) __attribute__((availability(macosx,introduced=10.10))); +int fchownat(int, const char *, uid_t, gid_t, int) __attribute__((availability(macosx,introduced=10.10))); +int linkat(int, const char *, int, const char *, int) __attribute__((availability(macosx,introduced=10.10))); +ssize_t readlinkat(int, const char *, char *, size_t) __attribute__((availability(macosx,introduced=10.10))); +int symlinkat(const char *, int, const char *) __attribute__((availability(macosx,introduced=10.10))); +int unlinkat(int, const char *, int) __attribute__((availability(macosx,introduced=10.10))); +void _exit(int) __attribute__((__noreturn__)); +int access(const char *, int); +unsigned int + alarm(unsigned int); +int chdir(const char *); +int chown(const char *, uid_t, gid_t); +int close(int) __asm("_" "close" ); +int dup(int); +int dup2(int, int); +int execl(const char * __path, const char * __arg0, ...) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +int execle(const char * __path, const char * __arg0, ...) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +int execlp(const char * __file, const char * __arg0, ...) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +int execv(const char * __path, char * const * __argv) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +int execve(const char * __file, char * const * __argv, char * const * __envp) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +int execvp(const char * __file, char * const * __argv) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +pid_t fork(void) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +long fpathconf(int, int); +char *getcwd(char *, size_t); +gid_t getegid(void); +uid_t geteuid(void); +gid_t getgid(void); +int getgroups(int, gid_t []) __asm("_" "getgroups" "$DARWIN_EXTSN"); +char *getlogin(void); +pid_t getpgrp(void); +pid_t getpid(void); +pid_t getppid(void); +uid_t getuid(void); +int isatty(int); +int link(const char *, const char *); +off_t lseek(int, off_t, int); +long pathconf(const char *, int); +int pause(void) __asm("_" "pause" ); +int pipe(int [2]); +ssize_t read(int, void *, size_t) __asm("_" "read" ); +int rmdir(const char *); +int setgid(gid_t); +int setpgid(pid_t, pid_t); +pid_t setsid(void); +int setuid(uid_t); +unsigned int + sleep(unsigned int) __asm("_" "sleep" ); +long sysconf(int); +pid_t tcgetpgrp(int); +int tcsetpgrp(int, pid_t); +char *ttyname(int); +int ttyname_r(int, char *, size_t) __asm("_" "ttyname_r" ); +int unlink(const char *); +ssize_t write(int __fd, const void * __buf, size_t __nbyte) __asm("_" "write" ); +size_t confstr(int, char *, size_t) __asm("_" "confstr" ); +int getopt(int, char * const [], const char *) __asm("_" "getopt" ); +extern char *optarg; +extern int optind, opterr, optopt; +__attribute__((__deprecated__)) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))) +void *brk(const void *); +int chroot(const char *) ; +char *crypt(const char *, const char *); +void encrypt(char *, int) __asm("_" "encrypt" ); +int fchdir(int); +long gethostid(void); +pid_t getpgid(pid_t); +pid_t getsid(pid_t); +int getdtablesize(void) ; +int getpagesize(void) __attribute__((__const__)) ; +char *getpass(const char *) ; +char *getwd(char *) ; +int lchown(const char *, uid_t, gid_t) __asm("_" "lchown" ); +int lockf(int, int, off_t) __asm("_" "lockf" ); +int nice(int) __asm("_" "nice" ); +ssize_t pread(int __fd, void * __buf, size_t __nbyte, off_t __offset) __asm("_" "pread" ); +ssize_t pwrite(int __fd, const void * __buf, size_t __nbyte, off_t __offset) __asm("_" "pwrite" ); +__attribute__((__deprecated__)) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))) +void *sbrk(int); +pid_t setpgrp(void) __asm("_" "setpgrp" ); +int setregid(gid_t, gid_t) __asm("_" "setregid" ); +int setreuid(uid_t, uid_t) __asm("_" "setreuid" ); +void swab(const void * __restrict__, void * __restrict__, ssize_t); +void sync(void); +int truncate(const char *, off_t); +useconds_t ualarm(useconds_t, useconds_t); +int usleep(useconds_t) __asm("_" "usleep" ); +__attribute__((__deprecated__("Use posix_spawn or fork"))) +pid_t fork(void) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +int fsync(int) __asm("_" "fsync" ); +int ftruncate(int, off_t); +int getlogin_r(char *, size_t); +int fchown(int, uid_t, gid_t); +int gethostname(char *, size_t); +ssize_t readlink(const char * __restrict__, char * __restrict__, size_t); +int setegid(gid_t); +int seteuid(uid_t); +int symlink(const char *, const char *); +int pselect(int, fd_set * __restrict__, fd_set * __restrict__, + fd_set * __restrict__, const struct timespec * __restrict__, + const sigset_t * __restrict__) +__asm("_" "pselect" "$DARWIN_EXTSN" ) +; +int select(int, fd_set * __restrict__, fd_set * __restrict__, + fd_set * __restrict__, struct timeval * __restrict__) +__asm("_" "select" "$DARWIN_EXTSN" ) +; +typedef __darwin_uuid_t uuid_t; +void _Exit(int) __attribute__((__noreturn__)); +int accessx_np(const struct accessx_descriptor *, size_t, int *, uid_t); +int acct(const char *); +int add_profil(char *, size_t, unsigned long, unsigned int) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +void endusershell(void); +int execvP(const char * __file, const char * __searchpath, char * const * __argv) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +char *fflagstostr(unsigned long); +int getdomainname(char *, int); +int getgrouplist(const char *, int, int *, int *); +int gethostuuid(uuid_t, const struct timespec *) __attribute__((availability(macos,introduced=10.5))) __attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))); +mode_t getmode(const void *, mode_t); +int getpeereid(int, uid_t *, gid_t *); +int getsgroups_np(int *, uuid_t); +char *getusershell(void); +int getwgroups_np(int *, uuid_t); +int initgroups(const char *, int); +int issetugid(void); +char *mkdtemp(char *); +int mknod(const char *, mode_t, dev_t); +int mkpath_np(const char *path, mode_t omode) __attribute__((availability(macosx,introduced=10.8))); +int mkpathat_np(int dfd, const char *path, mode_t omode) + __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) + __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))); +int mkstemp(char *); +int mkstemps(char *, int); +char *mktemp(char *); +int mkostemp(char *path, int oflags) + __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) + __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))); +int mkostemps(char *path, int slen, int oflags) + __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) + __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))); +int mkstemp_dprotected_np(char *path, int dpclass, int dpflags) + __attribute__((availability(macosx,unavailable))) __attribute__((availability(ios,introduced=10.0))) + __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))); +char *mkdtempat_np(int dfd, char *path) + __attribute__((availability(macosx,introduced=10.13))) __attribute__((availability(ios,introduced=11.0))) + __attribute__((availability(tvos,introduced=11.0))) __attribute__((availability(watchos,introduced=4.0))); +int mkstempsat_np(int dfd, char *path, int slen) + __attribute__((availability(macosx,introduced=10.13))) __attribute__((availability(ios,introduced=11.0))) + __attribute__((availability(tvos,introduced=11.0))) __attribute__((availability(watchos,introduced=4.0))); +int mkostempsat_np(int dfd, char *path, int slen, int oflags) + __attribute__((availability(macosx,introduced=10.13))) __attribute__((availability(ios,introduced=11.0))) + __attribute__((availability(tvos,introduced=11.0))) __attribute__((availability(watchos,introduced=4.0))); +int nfssvc(int, void *); +int profil(char *, size_t, unsigned long, unsigned int); +__attribute__((__deprecated__("Use of per-thread security contexts is error-prone and discouraged."))) +int pthread_setugid_np(uid_t, gid_t); +int pthread_getugid_np( uid_t *, gid_t *); +int reboot(int); +int revoke(const char *); +__attribute__((__deprecated__)) int rcmd(char **, int, const char *, const char *, const char *, int *); +__attribute__((__deprecated__)) int rcmd_af(char **, int, const char *, const char *, const char *, int *, + int); +__attribute__((__deprecated__)) int rresvport(int *); +__attribute__((__deprecated__)) int rresvport_af(int *, int); +__attribute__((__deprecated__)) int iruserok(unsigned long, int, const char *, const char *); +__attribute__((__deprecated__)) int iruserok_sa(const void *, int, int, const char *, const char *); +__attribute__((__deprecated__)) int ruserok(const char *, int, const char *, const char *); +int setdomainname(const char *, int); +int setgroups(int, const gid_t *); +void sethostid(long); +int sethostname(const char *, int); +void setkey(const char *) __asm("_" "setkey" ); +int setlogin(const char *); +void *setmode(const char *) __asm("_" "setmode" ); +int setrgid(gid_t); +int setruid(uid_t); +int setsgroups_np(int, const uuid_t); +void setusershell(void); +int setwgroups_np(int, const uuid_t); +int strtofflags(char **, unsigned long *, unsigned long *); +int swapon(const char *); +int ttyslot(void); +int undelete(const char *); +int unwhiteout(const char *); +void *valloc(size_t); +__attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))) +__attribute__((availability(ios,deprecated=10.0,message="syscall(2) is unsupported; " "please switch to a supported interface. For SYS_kdebug_trace use kdebug_signpost()."))) +__attribute__((availability(macosx,deprecated=10.12,message="syscall(2) is unsupported; " "please switch to a supported interface. For SYS_kdebug_trace use kdebug_signpost()."))) +int syscall(int, ...); +extern char *suboptarg; +int getsubopt(char **, char * const *, char **); +int fgetattrlist(int,void*,void*,size_t,unsigned int) __attribute__((availability(macosx,introduced=10.6))); +int fsetattrlist(int,void*,void*,size_t,unsigned int) __attribute__((availability(macosx,introduced=10.6))); +int getattrlist(const char*,void*,void*,size_t,unsigned int) __asm("_" "getattrlist" ); +int setattrlist(const char*,void*,void*,size_t,unsigned int) __asm("_" "setattrlist" ); +int exchangedata(const char*,const char*,unsigned int) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +int getdirentriesattr(int,void*,void*,size_t,unsigned int*,unsigned int*,unsigned int*,unsigned int) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +struct fssearchblock; +struct searchstate; +int searchfs(const char *, struct fssearchblock *, unsigned long *, unsigned int, unsigned int, struct searchstate *) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +int fsctl(const char *,unsigned long,void*,unsigned int); +int ffsctl(int,unsigned long,void*,unsigned int) __attribute__((availability(macosx,introduced=10.6))); +int fsync_volume_np(int, int) __attribute__((availability(macosx,introduced=10.8))); +int sync_volume_np(const char *, int) __attribute__((availability(macosx,introduced=10.8))); +extern int optreset; + + + + + + + + + + + +__attribute__((__warn_unused_result__)) +__attribute__((__malloc__)) +__attribute__((__returns_nonnull__)) +__attribute__((__alloc_size__ (1))) +void *ruby_xmalloc(size_t size) +; +__attribute__((__warn_unused_result__)) +__attribute__((__malloc__)) +__attribute__((__returns_nonnull__)) +__attribute__((__alloc_size__ (1,2))) +void *ruby_xmalloc2(size_t nelems, size_t elemsiz) +; +__attribute__((__warn_unused_result__)) +__attribute__((__malloc__)) +__attribute__((__returns_nonnull__)) +__attribute__((__alloc_size__ (1,2))) +void *ruby_xcalloc(size_t nelems, size_t elemsiz) +; +__attribute__((__warn_unused_result__)) +__attribute__((__returns_nonnull__)) +__attribute__((__alloc_size__ (2))) +void *ruby_xrealloc(void *ptr, size_t newsiz) +; +__attribute__((__warn_unused_result__)) +__attribute__((__returns_nonnull__)) +__attribute__((__alloc_size__ (2,3))) +void *ruby_xrealloc2(void *ptr, size_t newelems, size_t newsiz) +; +void ruby_xfree(void *ptr) +; + + + + + + + + + +#define RBIMPL_ATTR_COLD_H +#define RBIMPL_ATTR_COLD() __attribute__((__cold__)) + + + + + + + + + + + + + +__declspec(noreturn) +__attribute__((__cold__)) +void rb_assert_failure(const char *file, int line, const char *name, const char *expr); + +#define COLDFUNC RBIMPL_ATTR_COLD() + + + + + + + + + + typedef float float_t; + typedef double double_t; +extern int __math_errhandling(void); +extern int __fpclassifyf(float); +extern int __fpclassifyd(double); +extern int __fpclassifyl(long double); +inline __attribute__ ((__always_inline__)) int __inline_isfinitef(float); +inline __attribute__ ((__always_inline__)) int __inline_isfinited(double); +inline __attribute__ ((__always_inline__)) int __inline_isfinitel(long double); +inline __attribute__ ((__always_inline__)) int __inline_isinff(float); +inline __attribute__ ((__always_inline__)) int __inline_isinfd(double); +inline __attribute__ ((__always_inline__)) int __inline_isinfl(long double); +inline __attribute__ ((__always_inline__)) int __inline_isnanf(float); +inline __attribute__ ((__always_inline__)) int __inline_isnand(double); +inline __attribute__ ((__always_inline__)) int __inline_isnanl(long double); +inline __attribute__ ((__always_inline__)) int __inline_isnormalf(float); +inline __attribute__ ((__always_inline__)) int __inline_isnormald(double); +inline __attribute__ ((__always_inline__)) int __inline_isnormall(long double); +inline __attribute__ ((__always_inline__)) int __inline_signbitf(float); +inline __attribute__ ((__always_inline__)) int __inline_signbitd(double); +inline __attribute__ ((__always_inline__)) int __inline_signbitl(long double); +inline __attribute__ ((__always_inline__)) int __inline_isfinitef(float __x) { + return __x == __x && __builtin_fabsf(__x) != __builtin_inff(); +} +inline __attribute__ ((__always_inline__)) int __inline_isfinited(double __x) { + return __x == __x && __builtin_fabs(__x) != __builtin_inf(); +} +inline __attribute__ ((__always_inline__)) int __inline_isfinitel(long double __x) { + return __x == __x && __builtin_fabsl(__x) != __builtin_infl(); +} +inline __attribute__ ((__always_inline__)) int __inline_isinff(float __x) { + return __builtin_fabsf(__x) == __builtin_inff(); +} +inline __attribute__ ((__always_inline__)) int __inline_isinfd(double __x) { + return __builtin_fabs(__x) == __builtin_inf(); +} +inline __attribute__ ((__always_inline__)) int __inline_isinfl(long double __x) { + return __builtin_fabsl(__x) == __builtin_infl(); +} +inline __attribute__ ((__always_inline__)) int __inline_isnanf(float __x) { + return __x != __x; +} +inline __attribute__ ((__always_inline__)) int __inline_isnand(double __x) { + return __x != __x; +} +inline __attribute__ ((__always_inline__)) int __inline_isnanl(long double __x) { + return __x != __x; +} +inline __attribute__ ((__always_inline__)) int __inline_signbitf(float __x) { + union { float __f; unsigned int __u; } __u; + __u.__f = __x; + return (int)(__u.__u >> 31); +} +inline __attribute__ ((__always_inline__)) int __inline_signbitd(double __x) { + union { double __f; unsigned long long __u; } __u; + __u.__f = __x; + return (int)(__u.__u >> 63); +} +inline __attribute__ ((__always_inline__)) int __inline_signbitl(long double __x) { + union { + long double __ld; + struct{ unsigned long long __m; unsigned short __sexp; } __p; + } __u; + __u.__ld = __x; + return (int)(__u.__p.__sexp >> 15); +} +inline __attribute__ ((__always_inline__)) int __inline_isnormalf(float __x) { + return __inline_isfinitef(__x) && __builtin_fabsf(__x) >= 1.17549435e-38F; +} +inline __attribute__ ((__always_inline__)) int __inline_isnormald(double __x) { + return __inline_isfinited(__x) && __builtin_fabs(__x) >= 2.2250738585072014e-308; +} +inline __attribute__ ((__always_inline__)) int __inline_isnormall(long double __x) { + return __inline_isfinitel(__x) && __builtin_fabsl(__x) >= 3.36210314311209350626e-4932L; +} +extern float acosf(float); +extern double acos(double); +extern long double acosl(long double); +extern float asinf(float); +extern double asin(double); +extern long double asinl(long double); +extern float atanf(float); +extern double atan(double); +extern long double atanl(long double); +extern float atan2f(float, float); +extern double atan2(double, double); +extern long double atan2l(long double, long double); +extern float cosf(float); +extern double cos(double); +extern long double cosl(long double); +extern float sinf(float); +extern double sin(double); +extern long double sinl(long double); +extern float tanf(float); +extern double tan(double); +extern long double tanl(long double); +extern float acoshf(float); +extern double acosh(double); +extern long double acoshl(long double); +extern float asinhf(float); +extern double asinh(double); +extern long double asinhl(long double); +extern float atanhf(float); +extern double atanh(double); +extern long double atanhl(long double); +extern float coshf(float); +extern double cosh(double); +extern long double coshl(long double); +extern float sinhf(float); +extern double sinh(double); +extern long double sinhl(long double); +extern float tanhf(float); +extern double tanh(double); +extern long double tanhl(long double); +extern float expf(float); +extern double exp(double); +extern long double expl(long double); +extern float exp2f(float); +extern double exp2(double); +extern long double exp2l(long double); +extern float expm1f(float); +extern double expm1(double); +extern long double expm1l(long double); +extern float logf(float); +extern double log(double); +extern long double logl(long double); +extern float log10f(float); +extern double log10(double); +extern long double log10l(long double); +extern float log2f(float); +extern double log2(double); +extern long double log2l(long double); +extern float log1pf(float); +extern double log1p(double); +extern long double log1pl(long double); +extern float logbf(float); +extern double logb(double); +extern long double logbl(long double); +extern float modff(float, float *); +extern double modf(double, double *); +extern long double modfl(long double, long double *); +extern float ldexpf(float, int); +extern double ldexp(double, int); +extern long double ldexpl(long double, int); +extern float frexpf(float, int *); +extern double frexp(double, int *); +extern long double frexpl(long double, int *); +extern int ilogbf(float); +extern int ilogb(double); +extern int ilogbl(long double); +extern float scalbnf(float, int); +extern double scalbn(double, int); +extern long double scalbnl(long double, int); +extern float scalblnf(float, long int); +extern double scalbln(double, long int); +extern long double scalblnl(long double, long int); +extern float fabsf(float); +extern double fabs(double); +extern long double fabsl(long double); +extern float cbrtf(float); +extern double cbrt(double); +extern long double cbrtl(long double); +extern float hypotf(float, float); +extern double hypot(double, double); +extern long double hypotl(long double, long double); +extern float powf(float, float); +extern double pow(double, double); +extern long double powl(long double, long double); +extern float sqrtf(float); +extern double sqrt(double); +extern long double sqrtl(long double); +extern float erff(float); +extern double erf(double); +extern long double erfl(long double); +extern float erfcf(float); +extern double erfc(double); +extern long double erfcl(long double); +extern float lgammaf(float); +extern double lgamma(double); +extern long double lgammal(long double); +extern float tgammaf(float); +extern double tgamma(double); +extern long double tgammal(long double); +extern float ceilf(float); +extern double ceil(double); +extern long double ceill(long double); +extern float floorf(float); +extern double floor(double); +extern long double floorl(long double); +extern float nearbyintf(float); +extern double nearbyint(double); +extern long double nearbyintl(long double); +extern float rintf(float); +extern double rint(double); +extern long double rintl(long double); +extern long int lrintf(float); +extern long int lrint(double); +extern long int lrintl(long double); +extern float roundf(float); +extern double round(double); +extern long double roundl(long double); +extern long int lroundf(float); +extern long int lround(double); +extern long int lroundl(long double); +extern long long int llrintf(float); +extern long long int llrint(double); +extern long long int llrintl(long double); +extern long long int llroundf(float); +extern long long int llround(double); +extern long long int llroundl(long double); +extern float truncf(float); +extern double trunc(double); +extern long double truncl(long double); +extern float fmodf(float, float); +extern double fmod(double, double); +extern long double fmodl(long double, long double); +extern float remainderf(float, float); +extern double remainder(double, double); +extern long double remainderl(long double, long double); +extern float remquof(float, float, int *); +extern double remquo(double, double, int *); +extern long double remquol(long double, long double, int *); +extern float copysignf(float, float); +extern double copysign(double, double); +extern long double copysignl(long double, long double); +extern float nanf(const char *); +extern double nan(const char *); +extern long double nanl(const char *); +extern float nextafterf(float, float); +extern double nextafter(double, double); +extern long double nextafterl(long double, long double); +extern double nexttoward(double, long double); +extern float nexttowardf(float, long double); +extern long double nexttowardl(long double, long double); +extern float fdimf(float, float); +extern double fdim(double, double); +extern long double fdiml(long double, long double); +extern float fmaxf(float, float); +extern double fmax(double, double); +extern long double fmaxl(long double, long double); +extern float fminf(float, float); +extern double fmin(double, double); +extern long double fminl(long double, long double); +extern float fmaf(float, float, float); +extern double fma(double, double, double); +extern long double fmal(long double, long double, long double); +extern float __inff(void) +__attribute__((availability(macos,introduced=10.0,deprecated=10.9,message="use `(float)INFINITY` instead"))) __attribute__((availability(ios,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +extern double __inf(void) +__attribute__((availability(macos,introduced=10.0,deprecated=10.9,message="use `INFINITY` instead"))) __attribute__((availability(ios,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +extern long double __infl(void) +__attribute__((availability(macos,introduced=10.0,deprecated=10.9,message="use `(long double)INFINITY` instead"))) __attribute__((availability(ios,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +extern float __nan(void) +__attribute__((availability(macos,introduced=10.0,deprecated=10.14,message="use `NAN` instead"))) __attribute__((availability(ios,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +extern float lgammaf_r(float, int *) __attribute__((availability(macos,introduced=10.6))) __attribute__((availability(ios,introduced=3.1))); +extern double lgamma_r(double, int *) __attribute__((availability(macos,introduced=10.6))) __attribute__((availability(ios,introduced=3.1))); +extern long double lgammal_r(long double, int *) __attribute__((availability(macos,introduced=10.6))) __attribute__((availability(ios,introduced=3.1))); +extern float __exp10f(float) __attribute__((availability(macos,introduced=10.9))) __attribute__((availability(ios,introduced=7.0))); +extern double __exp10(double) __attribute__((availability(macos,introduced=10.9))) __attribute__((availability(ios,introduced=7.0))); +inline __attribute__ ((__always_inline__)) void __sincosf(float __x, float *__sinp, float *__cosp); +inline __attribute__ ((__always_inline__)) void __sincos(double __x, double *__sinp, double *__cosp); +extern float __cospif(float) __attribute__((availability(macos,introduced=10.9))) __attribute__((availability(ios,introduced=7.0))); +extern double __cospi(double) __attribute__((availability(macos,introduced=10.9))) __attribute__((availability(ios,introduced=7.0))); +extern float __sinpif(float) __attribute__((availability(macos,introduced=10.9))) __attribute__((availability(ios,introduced=7.0))); +extern double __sinpi(double) __attribute__((availability(macos,introduced=10.9))) __attribute__((availability(ios,introduced=7.0))); +extern float __tanpif(float) __attribute__((availability(macos,introduced=10.9))) __attribute__((availability(ios,introduced=7.0))); +extern double __tanpi(double) __attribute__((availability(macos,introduced=10.9))) __attribute__((availability(ios,introduced=7.0))); +inline __attribute__ ((__always_inline__)) void __sincospif(float __x, float *__sinp, float *__cosp); +inline __attribute__ ((__always_inline__)) void __sincospi(double __x, double *__sinp, double *__cosp); +struct __float2 { float __sinval; float __cosval; }; +struct __double2 { double __sinval; double __cosval; }; +extern struct __float2 __sincosf_stret(float); +extern struct __double2 __sincos_stret(double); +extern struct __float2 __sincospif_stret(float); +extern struct __double2 __sincospi_stret(double); +inline __attribute__ ((__always_inline__)) void __sincosf(float __x, float *__sinp, float *__cosp) { + const struct __float2 __stret = __sincosf_stret(__x); + *__sinp = __stret.__sinval; *__cosp = __stret.__cosval; +} +inline __attribute__ ((__always_inline__)) void __sincos(double __x, double *__sinp, double *__cosp) { + const struct __double2 __stret = __sincos_stret(__x); + *__sinp = __stret.__sinval; *__cosp = __stret.__cosval; +} +inline __attribute__ ((__always_inline__)) void __sincospif(float __x, float *__sinp, float *__cosp) { + const struct __float2 __stret = __sincospif_stret(__x); + *__sinp = __stret.__sinval; *__cosp = __stret.__cosval; +} +inline __attribute__ ((__always_inline__)) void __sincospi(double __x, double *__sinp, double *__cosp) { + const struct __double2 __stret = __sincospi_stret(__x); + *__sinp = __stret.__sinval; *__cosp = __stret.__cosval; +} +extern double j0(double) __attribute__((availability(macos,introduced=10.0))) __attribute__((availability(ios,introduced=3.2))); +extern double j1(double) __attribute__((availability(macos,introduced=10.0))) __attribute__((availability(ios,introduced=3.2))); +extern double jn(int, double) __attribute__((availability(macos,introduced=10.0))) __attribute__((availability(ios,introduced=3.2))); +extern double y0(double) __attribute__((availability(macos,introduced=10.0))) __attribute__((availability(ios,introduced=3.2))); +extern double y1(double) __attribute__((availability(macos,introduced=10.0))) __attribute__((availability(ios,introduced=3.2))); +extern double yn(int, double) __attribute__((availability(macos,introduced=10.0))) __attribute__((availability(ios,introduced=3.2))); +extern double scalb(double, double); +extern int signgam; +extern long int rinttol(double) +__attribute__((availability(macos,introduced=10.0,deprecated=10.9,replacement="lrint"))) __attribute__((availability(ios,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +extern long int roundtol(double) +__attribute__((availability(macos,introduced=10.0,deprecated=10.9,replacement="lround"))) __attribute__((availability(ios,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +extern double drem(double, double) +__attribute__((availability(macos,introduced=10.0,deprecated=10.9,replacement="remainder"))) __attribute__((availability(ios,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +extern int finite(double) +__attribute__((availability(macos,introduced=10.0,deprecated=10.9,message="Use `isfinite((double)x)` instead."))) __attribute__((availability(ios,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +extern double gamma(double) +__attribute__((availability(macos,introduced=10.0,deprecated=10.9,replacement="tgamma"))) __attribute__((availability(ios,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +extern double significand(double) +__attribute__((availability(macos,introduced=10.0,deprecated=10.9,message="Use `2*frexp( )` or `scalbn(x, -ilogb(x))` instead."))) __attribute__((availability(ios,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +struct exception { + int type; + char *name; + double arg1; + double arg2; + double retval; +}; +struct tm { + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; + long tm_gmtoff; + char *tm_zone; +}; +extern char *tzname[]; +extern int getdate_err; +extern long timezone __asm("_" "timezone" ); +extern int daylight; +char *asctime(const struct tm *); +clock_t clock(void) __asm("_" "clock" ); +char *ctime(const time_t *); +double difftime(time_t, time_t); +struct tm *getdate(const char *); +struct tm *gmtime(const time_t *); +struct tm *localtime(const time_t *); +time_t mktime(struct tm *) __asm("_" "mktime" ); +size_t strftime(char * __restrict__, size_t, const char * __restrict__, const struct tm * __restrict__) __asm("_" "strftime" ); +char *strptime(const char * __restrict__, const char * __restrict__, struct tm * __restrict__) __asm("_" "strptime" ); +time_t time(time_t *); +void tzset(void); +char *asctime_r(const struct tm * __restrict__, char * __restrict__); +char *ctime_r(const time_t *, char *); +struct tm *gmtime_r(const time_t * __restrict__, struct tm * __restrict__); +struct tm *localtime_r(const time_t * __restrict__, struct tm * __restrict__); +time_t posix2time(time_t); +void tzsetwall(void); +time_t time2posix(time_t); +time_t timelocal(struct tm * const); +time_t timegm(struct tm * const); +int nanosleep(const struct timespec *__rqtp, struct timespec *__rmtp) __asm("_" "nanosleep" ); +typedef enum { +_CLOCK_REALTIME __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) = 0, +_CLOCK_MONOTONIC __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) = 6, +_CLOCK_MONOTONIC_RAW __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) = 4, +_CLOCK_MONOTONIC_RAW_APPROX __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) = 5, +_CLOCK_UPTIME_RAW __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) = 8, +_CLOCK_UPTIME_RAW_APPROX __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) = 9, +_CLOCK_PROCESS_CPUTIME_ID __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) = 12, +_CLOCK_THREAD_CPUTIME_ID __attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) = 16 +} clockid_t; +__attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) +int clock_getres(clockid_t __clock_id, struct timespec *__res); +__attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) +int clock_gettime(clockid_t __clock_id, struct timespec *__tp); +__attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,introduced=10.0))) __attribute__((availability(tvos,introduced=10.0))) __attribute__((availability(watchos,introduced=3.0))) +__uint64_t clock_gettime_nsec_np(clockid_t __clock_id); +__attribute__((availability(macosx,introduced=10.12))) __attribute__((availability(ios,unavailable))) +__attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) +int clock_settime(clockid_t __clock_id, const struct timespec *__tp); +__attribute__((availability(macosx,introduced=10.15))) __attribute__((availability(ios,introduced=13.0))) __attribute__((availability(tvos,introduced=13.0))) __attribute__((availability(watchos,introduced=6.0))) +int timespec_get(struct timespec *ts, int base); +struct timeval64 { + __int64_t tv_sec; + __int64_t tv_usec; +}; +struct itimerval { + struct timeval it_interval; + struct timeval it_value; +}; +struct timezone { + int tz_minuteswest; + int tz_dsttime; +}; +struct clockinfo { + int hz; + int tick; + int tickadj; + int stathz; + int profhz; +}; +int adjtime(const struct timeval *, struct timeval *); +int futimes(int, const struct timeval *); +int lutimes(const char *, const struct timeval *) __attribute__((availability(macosx,introduced=10.5))); +int settimeofday(const struct timeval *, const struct timezone *); +int getitimer(int, struct itimerval *); +int gettimeofday(struct timeval * __restrict__, void * __restrict__); +int setitimer(int, const struct itimerval * __restrict__, + struct itimerval * __restrict__); +int utimes(const char *, const struct timeval *); +extern int eaccess(const char*, int); +__attribute__((__format__(__printf__, 1, 2))) +extern void setproctitle(const char *fmt, ...); +extern void explicit_bzero(void *b, size_t len); + + + + + + + + + +typedef unsigned long VALUE; +typedef unsigned long ID; +__extension__ _Static_assert(4 == sizeof(int), "sizeof_int" ": " "SIZEOF_INT == sizeof(int)"); +__extension__ _Static_assert(8 == sizeof(long), "sizeof_long" ": " "SIZEOF_LONG == sizeof(long)"); +__extension__ _Static_assert(8 == sizeof( + long long +), "sizeof_long_long" ": " "SIZEOF_LONG_LONG == sizeof(LONG_LONG)"); +__extension__ _Static_assert(8 == sizeof(void *), "sizeof_voidp" ": " "SIZEOF_VOIDP == sizeof(void *)"); +VALUE rb_class_new(VALUE super); +VALUE rb_mod_init_copy(VALUE clone, VALUE orig); +void rb_check_inheritable(VALUE super); +VALUE rb_define_class_id(ID id, VALUE super); +VALUE rb_define_class_id_under(VALUE outer, ID id, VALUE super); +VALUE rb_module_new(void); +VALUE rb_refinement_new(void); +VALUE rb_define_module_id(ID id); +VALUE rb_define_module_id_under(VALUE outer, ID id); +VALUE rb_mod_included_modules(VALUE mod); +VALUE rb_mod_include_p(VALUE child, VALUE parent); +VALUE rb_mod_ancestors(VALUE mod); +VALUE rb_class_descendants(VALUE klass); +VALUE rb_class_subclasses(VALUE klass); +VALUE rb_class_attached_object(VALUE klass); +VALUE rb_class_instance_methods(int argc, const VALUE *argv, VALUE mod); +VALUE rb_class_public_instance_methods(int argc, const VALUE *argv, VALUE mod); +VALUE rb_class_protected_instance_methods(int argc, const VALUE *argv, VALUE mod); +VALUE rb_class_private_instance_methods(int argc, const VALUE *argv, VALUE mod); +VALUE rb_obj_singleton_methods(int argc, const VALUE *argv, VALUE obj); +void rb_define_method_id(VALUE klass, ID mid, VALUE (*func)(), int arity); +void rb_undef(VALUE mod, ID mid); +__attribute__((__nonnull__ ())) +void rb_define_protected_method(VALUE klass, const char *mid, VALUE (*func)(), int arity); +__attribute__((__nonnull__ ())) +void rb_define_private_method(VALUE klass, const char *mid, VALUE (*func)(), int arity); +__attribute__((__nonnull__ ())) +void rb_define_singleton_method(VALUE obj, const char *mid, VALUE(*func)(), int arity); +VALUE rb_singleton_class(VALUE obj); + +int rb_sourceline(void); +const char *rb_sourcefile(void); +int rb_frame_method_id_and_class(ID *idp, VALUE *klassp); +VALUE rb_check_funcall(VALUE recv, ID mid, int argc, const VALUE *argv); +VALUE rb_check_funcall_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat); +VALUE rb_eval_cmd_kw(VALUE cmd, VALUE arg, int kw_splat); +VALUE rb_apply(VALUE recv, ID mid, VALUE args); +VALUE rb_obj_instance_eval(int argc, const VALUE *argv, VALUE recv); +VALUE rb_obj_instance_exec(int argc, const VALUE *argv, VALUE recv); +VALUE rb_mod_module_eval(int argc, const VALUE *argv, VALUE mod); +VALUE rb_mod_module_exec(int argc, const VALUE *argv, VALUE mod); +typedef VALUE (*rb_alloc_func_t)(VALUE klass); +void rb_define_alloc_func(VALUE klass, rb_alloc_func_t func); +void rb_undef_alloc_func(VALUE klass); +rb_alloc_func_t rb_get_alloc_func(VALUE klass); +void rb_clear_constant_cache_for_id(ID id); +void rb_alias(VALUE klass, ID dst, ID src); +void rb_attr(VALUE klass, ID name, int need_reader, int need_writer, int honour_visibility); +__attribute__((__nonnull__ ())) +void rb_remove_method(VALUE klass, const char *name); +void rb_remove_method_id(VALUE klass, ID mid); +int rb_method_boundp(VALUE klass, ID id, int ex); +int rb_method_basic_definition_p(VALUE klass, ID mid); +int rb_obj_respond_to(VALUE obj, ID mid, int private_p); +int rb_respond_to(VALUE obj, ID mid); +__declspec(noreturn) +VALUE rb_f_notimplement(int argc, const VALUE *argv, VALUE obj, VALUE marker); +void rb_backtrace(void); +VALUE rb_make_backtrace(void); + +__attribute__((__nonnull__ ())) +void rb_define_method(VALUE klass, const char *mid, VALUE (*func)(), int arity); +__attribute__((__nonnull__ ())) +void rb_define_module_function(VALUE klass, const char *mid, VALUE (*func)(), int arity); +__attribute__((__nonnull__ ())) +void rb_define_global_function(const char *mid, VALUE (*func)(), int arity); +__attribute__((__nonnull__ ())) +void rb_undef_method(VALUE klass, const char *name); +__attribute__((__nonnull__ ())) +void rb_define_alias(VALUE klass, const char *dst, const char *src); +__attribute__((__nonnull__ ())) +void rb_define_attr(VALUE klass, const char *name, int read, int write); +__attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_notimpl(VALUE, const char *, VALUE(*)(int, const VALUE *, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_m3(VALUE, const char *, VALUE(*)(), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_m2(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_m1(VALUE, const char *, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_00(VALUE, const char *, VALUE(*)(VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_01(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_02(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_03(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_04(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_05(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_06(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_07(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_08(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_09(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_10(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_11(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_12(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_13(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_14(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_singleton_method"))) static void rb_define_singleton_method_15(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); +__attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_notimpl(VALUE, const char *, VALUE(*)(int, const VALUE *, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_m3(VALUE, const char *, VALUE(*)(), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_m2(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_m1(VALUE, const char *, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_00(VALUE, const char *, VALUE(*)(VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_01(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_02(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_03(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_04(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_05(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_06(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_07(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_08(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_09(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_10(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_11(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_12(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_13(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_14(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_protected_method"))) static void rb_define_protected_method_15(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); +__attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_notimpl(VALUE, const char *, VALUE(*)(int, const VALUE *, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_m3(VALUE, const char *, VALUE(*)(), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_m2(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_m1(VALUE, const char *, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_00(VALUE, const char *, VALUE(*)(VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_01(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_02(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_03(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_04(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_05(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_06(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_07(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_08(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_09(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_10(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_11(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_12(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_13(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_14(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_private_method"))) static void rb_define_private_method_15(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); +__attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_notimpl(VALUE, const char *, VALUE(*)(int, const VALUE *, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_m3(VALUE, const char *, VALUE(*)(), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_m2(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_m1(VALUE, const char *, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_00(VALUE, const char *, VALUE(*)(VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_01(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_02(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_03(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_04(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_05(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_06(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_07(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_08(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_09(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_10(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_11(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_12(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_13(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_14(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_module_function"))) static void rb_define_module_function_15(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); +__attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_notimpl(const char *, VALUE(*)(int, const VALUE *, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_m3(const char *, VALUE(*)(), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_m2(const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_m1(const char *, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_00(const char *, VALUE(*)(VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_01(const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_02(const char *, VALUE(*)(VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_03(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_04(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_05(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_06(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_07(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_08(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_09(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_10(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_11(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_12(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_13(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_14(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_global_function"))) static void rb_define_global_function_15(const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); +__attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_notimpl(VALUE, ID, VALUE(*)(int, const VALUE *, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_m3(VALUE, ID, VALUE(*)(), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_m2(VALUE, ID, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_m1(VALUE, ID, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_00(VALUE, ID, VALUE(*)(VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_01(VALUE, ID, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_02(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_03(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_04(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_05(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_06(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_07(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_08(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_09(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_10(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_11(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_12(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_13(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_14(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method_id"))) static void rb_define_method_id_15(VALUE, ID, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); +__attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_notimpl(VALUE, const char *, VALUE(*)(int, const VALUE *, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_m3(VALUE, const char *, VALUE(*)(), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_m2(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_m1(VALUE, const char *, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_00(VALUE, const char *, VALUE(*)(VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_01(VALUE, const char *, VALUE(*)(VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_02(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_03(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_04(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_05(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_06(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_07(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_08(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_09(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_10(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_11(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_12(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_13(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_14(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); __attribute__((__unused__)) __attribute__((__nonnull__ ())) __attribute__((__weakref__("rb_define_method"))) static void rb_define_method_15(VALUE, const char *, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); + + + + + +VALUE rb_int2big(intptr_t i); +VALUE rb_int2inum(intptr_t i); +VALUE rb_uint2big(uintptr_t i); +VALUE rb_uint2inum(uintptr_t i); + + + + + +enum +__attribute__((__enum_extensibility__(closed))) +ruby_special_consts { + RUBY_Qfalse = 0x00, + RUBY_Qnil = 0x04, + RUBY_Qtrue = 0x14, + RUBY_Qundef = 0x24, + RUBY_IMMEDIATE_MASK = 0x07, + RUBY_FIXNUM_FLAG = 0x01, + RUBY_FLONUM_MASK = 0x03, + RUBY_FLONUM_FLAG = 0x02, + RUBY_SYMBOL_FLAG = 0x0c, + RUBY_SPECIAL_SHIFT = 8 +}; +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline _Bool +RB_TEST(VALUE obj) +{ + return obj & ~RUBY_Qnil; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline _Bool +RB_NIL_P(VALUE obj) +{ + return obj == RUBY_Qnil; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline _Bool +RB_UNDEF_P(VALUE obj) +{ + return obj == RUBY_Qundef; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline _Bool +RB_NIL_OR_UNDEF_P(VALUE obj) +{ + const VALUE mask = ~(RUBY_Qundef ^ RUBY_Qnil); + const VALUE common_bits = RUBY_Qundef & RUBY_Qnil; + return (obj & mask) == common_bits; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline _Bool +RB_FIXNUM_P(VALUE obj) +{ + return obj & RUBY_FIXNUM_FLAG; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline _Bool +RB_STATIC_SYM_P(VALUE obj) +{ + const VALUE mask = ~((9223372036854775807L *2UL+1UL) << RUBY_SPECIAL_SHIFT); + return (obj & mask) == RUBY_SYMBOL_FLAG; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline _Bool +RB_FLONUM_P(VALUE obj) +{ + return (obj & RUBY_FLONUM_MASK) == RUBY_FLONUM_FLAG; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline _Bool +RB_IMMEDIATE_P(VALUE obj) +{ + return obj & RUBY_IMMEDIATE_MASK; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline _Bool +RB_SPECIAL_CONST_P(VALUE obj) +{ + return RB_IMMEDIATE_P(obj) || obj == RUBY_Qfalse; +} +__attribute__((__const__)) +static inline VALUE +rb_special_const_p(VALUE obj) +{ + return RB_SPECIAL_CONST_P(obj) * RUBY_Qtrue; +} +__declspec(noreturn) +__attribute__((__cold__)) +void rb_out_of_int(long num); +long rb_num2long(VALUE num); +unsigned long rb_num2ulong(VALUE num); +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline VALUE +RB_INT2FIX(long i) +{ + ((void)0); + const unsigned long j = i; + const unsigned long k = (j << 1) + RUBY_FIXNUM_FLAG; + const long l = k; + const long m = l; + const VALUE n = m; + ((void)0); + return n; +} +static inline int +rb_long2int_inline(long n) +{ + int i = ((int)n); + if (sizeof(long) <= sizeof(int)) { + __builtin_assume(i == n); + } + if (i != n) + rb_out_of_int(n); + return i; +} +__attribute__((__const__)) +static inline long +rbimpl_fix2long_by_idiv(VALUE x) +{ + ((void)0); + const long y = x - RUBY_FIXNUM_FLAG; + const long z = y / 2; + const long w = ((long)z); + ((void)0); + return w; +} +__attribute__((__const__)) +static inline long +rbimpl_fix2long_by_shift(VALUE x) +{ + ((void)0); + const long y = x; + const long z = y >> 1; + const long w = ((long)z); + ((void)0); + return w; +} +__attribute__((__const__)) +static inline _Bool +rbimpl_right_shift_is_arithmetic_p(void) +{ + return (-1 >> 1) == -1; +} +__attribute__((__const__)) +static inline long +rb_fix2long(VALUE x) +{ + if (rbimpl_right_shift_is_arithmetic_p()) { + return rbimpl_fix2long_by_shift(x); + } + else { + return rbimpl_fix2long_by_idiv(x); + } +} +__attribute__((__const__)) +static inline unsigned long +rb_fix2ulong(VALUE x) +{ + ((void)0); + return rb_fix2long(x); +} +static inline long +rb_num2long_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return rb_fix2long(x); + else + return rb_num2long(x); +} +static inline unsigned long +rb_num2ulong_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return rb_fix2ulong(x); + else + return rb_num2ulong(x); +} +static inline VALUE +rb_long2num_inline(long v) +{ + if ((((v) < (9223372036854775807L / 2) + 1) && ((v) >= ((-9223372036854775807L -1L) / 2)))) + return RB_INT2FIX(v); + else + return rb_int2big(v); +} +static inline VALUE +rb_ulong2num_inline(unsigned long v) +{ + if (((v) < (9223372036854775807L / 2) + 1)) + return RB_INT2FIX(v); + else + return rb_uint2big(v); +} +long rb_num2int(VALUE num); +long rb_fix2int(VALUE num); +unsigned long rb_num2uint(VALUE num); +unsigned long rb_fix2uint(VALUE num); +__attribute__((__artificial__)) +static inline int +RB_FIX2INT(VALUE x) +{ + long ret; + if (sizeof(int) < sizeof(long)) { + ret = rb_fix2int(x); + } + else { + ret = rb_fix2long(x); + } + return ((int)ret); +} +static inline int +rb_num2int_inline(VALUE x) +{ + long ret; + if (sizeof(int) == sizeof(long)) { + ret = rb_num2long_inline(x); + } + else if (RB_FIXNUM_P(x)) { + ret = rb_fix2int(x); + } + else { + ret = rb_num2int(x); + } + return ((int)ret); +} +__attribute__((__artificial__)) +static inline unsigned int +RB_NUM2UINT(VALUE x) +{ + unsigned long ret; + if (sizeof(int) < sizeof(long)) { + ret = rb_num2uint(x); + } + else { + ret = rb_num2ulong_inline(x); + } + return ((unsigned int)ret); +} +__attribute__((__artificial__)) +static inline unsigned int +RB_FIX2UINT(VALUE x) +{ + unsigned long ret; + if (sizeof(int) < sizeof(long)) { + ret = rb_fix2uint(x); + } + else { + ret = rb_fix2ulong(x); + } + return ((unsigned int)ret); +} +static inline VALUE +rb_int2num_inline(int v) +{ + if ((((v) < (9223372036854775807L / 2) + 1) && ((v) >= ((-9223372036854775807L -1L) / 2)))) + return RB_INT2FIX(v); + else + return rb_int2big(v); +} +static inline VALUE +rb_uint2num_inline(unsigned int v) +{ + if (((v) < (9223372036854775807L / 2) + 1)) + return RB_INT2FIX(v); + else + return rb_uint2big(v); +} + + + +enum ruby_rvalue_flags { + RVALUE_EMBED_LEN_MAX = 3 +}; +struct +__declspec(align(8)) +RBasic { + VALUE flags; + const VALUE klass; +}; +VALUE rb_obj_hide(VALUE obj); +VALUE rb_obj_reveal(VALUE obj, VALUE klass); +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline VALUE +RBASIC_CLASS(VALUE obj) +{ + ((void)0); + return ((struct RBasic *)(obj))->klass; +} + + + + + + +typedef enum { + RB_WARN_CATEGORY_NONE, + RB_WARN_CATEGORY_DEPRECATED, + RB_WARN_CATEGORY_EXPERIMENTAL, + RB_WARN_CATEGORY_ALL_BITS = 0x6 +} rb_warning_category_t; +enum rb_io_wait_readwrite {RB_IO_WAIT_READABLE, RB_IO_WAIT_WRITABLE}; +VALUE rb_errinfo(void); +void rb_set_errinfo(VALUE err); +__declspec(noreturn) +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 3))) +void rb_raise(VALUE exc, const char *fmt, ...); +__declspec(noreturn) +__attribute__((__nonnull__ (1))) +__attribute__((__format__(__printf__, 1, 2))) +void rb_fatal(const char *fmt, ...); +__attribute__((__cold__)) +__declspec(noreturn) +__attribute__((__nonnull__ (1))) +__attribute__((__format__(__printf__, 1, 2))) +void rb_bug(const char *fmt, ...); +__declspec(noreturn) +__attribute__((__nonnull__ ())) +void rb_bug_errno(const char *msg, int err); +__declspec(noreturn) +void rb_sys_fail(const char *msg); +__declspec(noreturn) +void rb_sys_fail_str(VALUE msg); +__declspec(noreturn) +__attribute__((__nonnull__ (2))) +void rb_mod_sys_fail(VALUE mod, const char *msg); +__declspec(noreturn) +void rb_mod_sys_fail_str(VALUE mod, VALUE msg); +__declspec(noreturn) +void rb_readwrite_sys_fail(enum rb_io_wait_readwrite waiting, const char *msg); +__declspec(noreturn) +void rb_iter_break(void); +__declspec(noreturn) +void rb_iter_break_value(VALUE val); +__declspec(noreturn) +void rb_exit(int status); +__declspec(noreturn) +void rb_notimplement(void); +VALUE rb_syserr_new(int err, const char * msg); +VALUE rb_syserr_new_str(int n, VALUE arg); +__declspec(noreturn) +void rb_syserr_fail(int err, const char *msg); +__declspec(noreturn) +void rb_syserr_fail_str(int err, VALUE msg); +__declspec(noreturn) +__attribute__((__nonnull__ ())) +void rb_mod_syserr_fail(VALUE mod, int err, const char *msg); +__declspec(noreturn) +void rb_mod_syserr_fail_str(VALUE mod, int err, VALUE msg); +__declspec(noreturn) +void rb_readwrite_syserr_fail(enum rb_io_wait_readwrite waiting, int err, const char *msg); +__attribute__((__cold__)) +__declspec(noreturn) +void rb_unexpected_type(VALUE self, int t); +VALUE *rb_ruby_verbose_ptr(void); +VALUE *rb_ruby_debug_ptr(void); +__attribute__((__nonnull__ (1))) +__attribute__((__format__(__printf__, 1, 2))) +void rb_warning(const char *fmt, ...); +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 3))) +void rb_category_warning(rb_warning_category_t cat, const char *fmt, ...); +__attribute__((__nonnull__ (1, 3))) +__attribute__((__format__(__printf__, 3, 4))) +void rb_compile_warning(const char *file, int line, const char *fmt, ...); +__attribute__((__nonnull__ (1))) +__attribute__((__format__(__printf__, 1, 2))) +void rb_sys_warning(const char *fmt, ...); +__attribute__((__cold__)) +__attribute__((__nonnull__ (1))) +__attribute__((__format__(__printf__, 1, 2))) +void rb_warn(const char *fmt, ...); +__attribute__((__cold__)) +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 3))) +void rb_category_warn(rb_warning_category_t cat, const char *fmt, ...); +__attribute__((__nonnull__ (1, 3))) +__attribute__((__format__(__printf__, 3, 4))) +void rb_compile_warn(const char *file, int line, const char *fmt, ...); +__attribute__((__nonnull__ (2, 4))) +__attribute__((__format__(__printf__, 4, 5))) +void rb_category_compile_warn(rb_warning_category_t cat, const char *file, int line, const char *fmt, ...); +enum +__attribute__((__enum_extensibility__(closed))) +ruby_value_type { + RUBY_T_NONE = 0x00, + RUBY_T_OBJECT = 0x01, + RUBY_T_CLASS = 0x02, + RUBY_T_MODULE = 0x03, + RUBY_T_FLOAT = 0x04, + RUBY_T_STRING = 0x05, + RUBY_T_REGEXP = 0x06, + RUBY_T_ARRAY = 0x07, + RUBY_T_HASH = 0x08, + RUBY_T_STRUCT = 0x09, + RUBY_T_BIGNUM = 0x0a, + RUBY_T_FILE = 0x0b, + RUBY_T_DATA = 0x0c, + RUBY_T_MATCH = 0x0d, + RUBY_T_COMPLEX = 0x0e, + RUBY_T_RATIONAL = 0x0f, + RUBY_T_NIL = 0x11, + RUBY_T_TRUE = 0x12, + RUBY_T_FALSE = 0x13, + RUBY_T_SYMBOL = 0x14, + RUBY_T_FIXNUM = 0x15, + RUBY_T_UNDEF = 0x16, + RUBY_T_IMEMO = 0x1a, + RUBY_T_NODE = 0x1b, + RUBY_T_ICLASS = 0x1c, + RUBY_T_ZOMBIE = 0x1d, + RUBY_T_MOVED = 0x1e, + RUBY_T_MASK = 0x1f +}; +__attribute__((__cold__)) +void rb_check_type(VALUE obj, int t); +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline enum ruby_value_type +RB_BUILTIN_TYPE(VALUE obj) +{ + ((void)0); + VALUE ret = ((struct RBasic *)(obj))->flags & RUBY_T_MASK; + return ((enum ruby_value_type)ret); +} +__attribute__((__pure__)) +static inline _Bool +rb_integer_type_p(VALUE obj) +{ + if (RB_FIXNUM_P(obj)) { + return 1; + } + else if (RB_SPECIAL_CONST_P(obj)) { + return 0; + } + else { + return RB_BUILTIN_TYPE(obj) == RUBY_T_BIGNUM; + } +} +__attribute__((__pure__)) +static inline enum ruby_value_type +rb_type(VALUE obj) +{ + if (! RB_SPECIAL_CONST_P(obj)) { + return RB_BUILTIN_TYPE(obj); + } + else if (obj == ((VALUE)RUBY_Qfalse)) { + return RUBY_T_FALSE; + } + else if (obj == ((VALUE)RUBY_Qnil)) { + return RUBY_T_NIL; + } + else if (obj == ((VALUE)RUBY_Qtrue)) { + return RUBY_T_TRUE; + } + else if (obj == ((VALUE)RUBY_Qundef)) { + return RUBY_T_UNDEF; + } + else if (RB_FIXNUM_P(obj)) { + return RUBY_T_FIXNUM; + } + else if (RB_STATIC_SYM_P(obj)) { + return RUBY_T_SYMBOL; + } + else { + __builtin_assume(RB_FLONUM_P(obj)); + return RUBY_T_FLOAT; + } +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_FLOAT_TYPE_P(VALUE obj) +{ + if (RB_FLONUM_P(obj)) { + return 1; + } + else if (RB_SPECIAL_CONST_P(obj)) { + return 0; + } + else { + return RB_BUILTIN_TYPE(obj) == RUBY_T_FLOAT; + } +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_DYNAMIC_SYM_P(VALUE obj) +{ + if (RB_SPECIAL_CONST_P(obj)) { + return 0; + } + else { + return RB_BUILTIN_TYPE(obj) == RUBY_T_SYMBOL; + } +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_SYMBOL_P(VALUE obj) +{ + return RB_STATIC_SYM_P(obj) || RB_DYNAMIC_SYM_P(obj); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +__attribute__((__always_inline__)) inline +static _Bool +rbimpl_RB_TYPE_P_fastpath(VALUE obj, enum ruby_value_type t) +{ + if (t == RUBY_T_TRUE) { + return obj == ((VALUE)RUBY_Qtrue); + } + else if (t == RUBY_T_FALSE) { + return obj == ((VALUE)RUBY_Qfalse); + } + else if (t == RUBY_T_NIL) { + return obj == ((VALUE)RUBY_Qnil); + } + else if (t == RUBY_T_UNDEF) { + return obj == ((VALUE)RUBY_Qundef); + } + else if (t == RUBY_T_FIXNUM) { + return RB_FIXNUM_P(obj); + } + else if (t == RUBY_T_SYMBOL) { + return RB_SYMBOL_P(obj); + } + else if (t == RUBY_T_FLOAT) { + return RB_FLOAT_TYPE_P(obj); + } + else if (RB_SPECIAL_CONST_P(obj)) { + return 0; + } + else if (t == RB_BUILTIN_TYPE(obj)) { + return 1; + } + else { + return 0; + } +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_TYPE_P(VALUE obj, enum ruby_value_type t) +{ + if (__builtin_constant_p(t)) { + return rbimpl_RB_TYPE_P_fastpath(obj, t); + } + else { + return t == rb_type(obj); + } +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool rbimpl_rtypeddata_p(VALUE obj); +__attribute__((__artificial__)) +static inline void +Check_Type(VALUE v, enum ruby_value_type t) +{ + if ((__builtin_expect(!!(! (__builtin_constant_p(t) ? rbimpl_RB_TYPE_P_fastpath((v), (t)) : (RB_TYPE_P)((v), (t)))), 0))) { + goto unexpected_type; + } + else if (t == RUBY_T_DATA && rbimpl_rtypeddata_p(v)) { + goto unexpected_type; + } + else { + return; + } + unexpected_type: + rb_unexpected_type(v, t); +} +enum ruby_fl_ushift { + RUBY_FL_USHIFT = 12 +}; +__extension__ +enum +__attribute__((__flag_enum__)) +ruby_fl_type { + RUBY_FL_WB_PROTECTED = (1<<5), + RUBY_FL_PROMOTED0 = (1<<5), + RUBY_FL_PROMOTED1 = (1<<6), + RUBY_FL_PROMOTED = RUBY_FL_PROMOTED0 | RUBY_FL_PROMOTED1, + RUBY_FL_FINALIZE = (1<<7), + RUBY_FL_TAINT + __attribute__((__deprecated__ ("taintedness turned out to be a wrong idea."))) + = (1<<8), + RUBY_FL_SHAREABLE = (1<<8), + RUBY_FL_UNTRUSTED + __attribute__((__deprecated__ ("trustedness turned out to be a wrong idea."))) + = (1<<8), + RUBY_FL_SEEN_OBJ_ID = (1<<9), + RUBY_FL_EXIVAR = (1<<10), + RUBY_FL_FREEZE = (1<<11), + RUBY_FL_USER0 = (1<<(RUBY_FL_USHIFT+0)), + RUBY_FL_USER1 = (1<<(RUBY_FL_USHIFT+1)), + RUBY_FL_USER2 = (1<<(RUBY_FL_USHIFT+2)), + RUBY_FL_USER3 = (1<<(RUBY_FL_USHIFT+3)), + RUBY_FL_USER4 = (1<<(RUBY_FL_USHIFT+4)), + RUBY_FL_USER5 = (1<<(RUBY_FL_USHIFT+5)), + RUBY_FL_USER6 = (1<<(RUBY_FL_USHIFT+6)), + RUBY_FL_USER7 = (1<<(RUBY_FL_USHIFT+7)), + RUBY_FL_USER8 = (1<<(RUBY_FL_USHIFT+8)), + RUBY_FL_USER9 = (1<<(RUBY_FL_USHIFT+9)), + RUBY_FL_USER10 = (1<<(RUBY_FL_USHIFT+10)), + RUBY_FL_USER11 = (1<<(RUBY_FL_USHIFT+11)), + RUBY_FL_USER12 = (1<<(RUBY_FL_USHIFT+12)), + RUBY_FL_USER13 = (1<<(RUBY_FL_USHIFT+13)), + RUBY_FL_USER14 = (1<<(RUBY_FL_USHIFT+14)), + RUBY_FL_USER15 = (1<<(RUBY_FL_USHIFT+15)), + RUBY_FL_USER16 = (1<<(RUBY_FL_USHIFT+16)), + RUBY_FL_USER17 = (1<<(RUBY_FL_USHIFT+17)), + RUBY_FL_USER18 = (1<<(RUBY_FL_USHIFT+18)), + RUBY_FL_USER19 = (1<<(RUBY_FL_USHIFT+19)), + RUBY_ELTS_SHARED = RUBY_FL_USER2, + RUBY_FL_SINGLETON = RUBY_FL_USER0, +}; +enum { + RUBY_FL_DUPPED + __attribute__((__deprecated__ ("It seems there is no actual usage of this enum."))) + = (int)RUBY_T_MASK | (int)RUBY_FL_EXIVAR +}; +void rb_freeze_singleton_class(VALUE klass); +__attribute__((__pure__)) +__attribute__((__artificial__)) +__attribute__((__always_inline__)) inline +static _Bool +RB_FL_ABLE(VALUE obj) +{ + if (RB_SPECIAL_CONST_P(obj)) { + return 0; + } + else if ((__builtin_constant_p(RUBY_T_NODE) ? rbimpl_RB_TYPE_P_fastpath((obj), (RUBY_T_NODE)) : (RB_TYPE_P)((obj), (RUBY_T_NODE)))) { + return 0; + } + else { + return 1; + } +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline VALUE +RB_FL_TEST_RAW(VALUE obj, VALUE flags) +{ + ((void)0); + return ((struct RBasic *)(obj))->flags & flags; +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline VALUE +RB_FL_TEST(VALUE obj, VALUE flags) +{ + if (RB_FL_ABLE(obj)) { + return RB_FL_TEST_RAW(obj, flags); + } + else { + return 0UL; + } +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_FL_ANY_RAW(VALUE obj, VALUE flags) +{ + return RB_FL_TEST_RAW(obj, flags); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_FL_ANY(VALUE obj, VALUE flags) +{ + return RB_FL_TEST(obj, flags); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_FL_ALL_RAW(VALUE obj, VALUE flags) +{ + return RB_FL_TEST_RAW(obj, flags) == flags; +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_FL_ALL(VALUE obj, VALUE flags) +{ + return RB_FL_TEST(obj, flags) == flags; +} +__declspec(noalias) +__attribute__((__artificial__)) +static inline void +rbimpl_fl_set_raw_raw(struct RBasic *obj, VALUE flags) +{ + obj->flags |= flags; +} +__attribute__((__artificial__)) +static inline void +RB_FL_SET_RAW(VALUE obj, VALUE flags) +{ + ((void)0); + rbimpl_fl_set_raw_raw(((struct RBasic *)(obj)), flags); +} +__attribute__((__artificial__)) +static inline void +RB_FL_SET(VALUE obj, VALUE flags) +{ + if (RB_FL_ABLE(obj)) { + RB_FL_SET_RAW(obj, flags); + } +} +__declspec(noalias) +__attribute__((__artificial__)) +static inline void +rbimpl_fl_unset_raw_raw(struct RBasic *obj, VALUE flags) +{ + obj->flags &= ~flags; +} +__attribute__((__artificial__)) +static inline void +RB_FL_UNSET_RAW(VALUE obj, VALUE flags) +{ + ((void)0); + rbimpl_fl_unset_raw_raw(((struct RBasic *)(obj)), flags); +} +__attribute__((__artificial__)) +static inline void +RB_FL_UNSET(VALUE obj, VALUE flags) +{ + if (RB_FL_ABLE(obj)) { + RB_FL_UNSET_RAW(obj, flags); + } +} +__declspec(noalias) +__attribute__((__artificial__)) +static inline void +rbimpl_fl_reverse_raw_raw(struct RBasic *obj, VALUE flags) +{ + obj->flags ^= flags; +} +__attribute__((__artificial__)) +static inline void +RB_FL_REVERSE_RAW(VALUE obj, VALUE flags) +{ + ((void)0); + rbimpl_fl_reverse_raw_raw(((struct RBasic *)(obj)), flags); +} +__attribute__((__artificial__)) +static inline void +RB_FL_REVERSE(VALUE obj, VALUE flags) +{ + if (RB_FL_ABLE(obj)) { + RB_FL_REVERSE_RAW(obj, flags); + } +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +__attribute__((__deprecated__ ("taintedness turned out to be a wrong idea."))) +static inline _Bool +RB_OBJ_TAINTABLE(VALUE obj) +{ + return 0; +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +__attribute__((__deprecated__ ("taintedness turned out to be a wrong idea."))) +static inline VALUE +RB_OBJ_TAINTED_RAW(VALUE obj) +{ + return 0; +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +__attribute__((__deprecated__ ("taintedness turned out to be a wrong idea."))) +static inline _Bool +RB_OBJ_TAINTED(VALUE obj) +{ + return 0; +} +__attribute__((__artificial__)) +__attribute__((__deprecated__ ("taintedness turned out to be a wrong idea."))) +static inline void +RB_OBJ_TAINT_RAW(VALUE obj) +{ + return; +} +__attribute__((__artificial__)) +__attribute__((__deprecated__ ("taintedness turned out to be a wrong idea."))) +static inline void +RB_OBJ_TAINT(VALUE obj) +{ + return; +} +__attribute__((__artificial__)) +__attribute__((__deprecated__ ("taintedness turned out to be a wrong idea."))) +static inline void +RB_OBJ_INFECT_RAW(VALUE dst, VALUE src) +{ + return; +} +__attribute__((__artificial__)) +__attribute__((__deprecated__ ("taintedness turned out to be a wrong idea."))) +static inline void +RB_OBJ_INFECT(VALUE dst, VALUE src) +{ + return; +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline VALUE +RB_OBJ_FROZEN_RAW(VALUE obj) +{ + return RB_FL_TEST_RAW(obj, RUBY_FL_FREEZE); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_OBJ_FROZEN(VALUE obj) +{ + if (! RB_FL_ABLE(obj)) { + return 1; + } + else { + return RB_OBJ_FROZEN_RAW(obj); + } +} +__attribute__((__artificial__)) +static inline void +RB_OBJ_FREEZE_RAW(VALUE obj) +{ + RB_FL_SET_RAW(obj, RUBY_FL_FREEZE); +} +void rb_obj_freeze_inline(VALUE obj); +enum ruby_rstring_flags { + RSTRING_NOEMBED = RUBY_FL_USER1, + RSTRING_FSTR = RUBY_FL_USER17 +}; +struct RString { + struct RBasic basic; + union { + struct { + long len; + char *ptr; + union { + long capa; + VALUE shared; + } aux; + } heap; + struct { + long len; + char ary[1]; + } embed; + } as; +}; +VALUE rb_str_to_str(VALUE obj); +VALUE rb_string_value(volatile VALUE *ptr); +char *rb_string_value_ptr(volatile VALUE *ptr); +char *rb_string_value_cstr(volatile VALUE *ptr); +VALUE rb_str_export(VALUE obj); +VALUE rb_str_export_locale(VALUE obj); +__attribute__((__error__ ("rb_check_safe_str() and Check_SafeStr() are obsolete; use StringValue() instead"))) +void rb_check_safe_str(VALUE); +void rb_debug_rstring_null_ptr(const char *func); +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline long +RSTRING_EMBED_LEN(VALUE str) +{ + ((void)0); + ((void)0); + long f = ((struct RString *)(str))->as.embed.len; + return f; +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline struct RString +rbimpl_rstring_getmem(VALUE str) +{ + ((void)0); + if (RB_FL_ANY_RAW(str, RSTRING_NOEMBED)) { + return *((struct RString *)(str)); + } + else { + struct RString retval; + retval.as.heap.len = RSTRING_EMBED_LEN(str); + retval.as.heap.ptr = ((struct RString *)(str))->as.embed.ary; + return retval; + } +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline long +RSTRING_LEN(VALUE str) +{ + return rbimpl_rstring_getmem(str).as.heap.len; +} +__attribute__((__artificial__)) +static inline char * +RSTRING_PTR(VALUE str) +{ + char *ptr = rbimpl_rstring_getmem(str).as.heap.ptr; + if ((__builtin_expect(!!(! ptr), 0))) { + rb_debug_rstring_null_ptr("RSTRING_PTR"); + } + return ptr; +} +__attribute__((__artificial__)) +static inline char * +RSTRING_END(VALUE str) +{ + struct RString buf = rbimpl_rstring_getmem(str); + if ((__builtin_expect(!!(! buf.as.heap.ptr), 0))) { + rb_debug_rstring_null_ptr("RSTRING_END"); + } + return &buf.as.heap.ptr[buf.as.heap.len]; +} +__attribute__((__artificial__)) +static inline int +RSTRING_LENINT(VALUE str) +{ + return rb_long2int_inline(RSTRING_LEN(str)); +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline VALUE +RB_CHR2FIX(unsigned char c) +{ + return RB_INT2FIX(c); +} +static inline char +rb_num2char_inline(VALUE x) +{ + if ((__builtin_constant_p(RUBY_T_STRING) ? rbimpl_RB_TYPE_P_fastpath((x), (RUBY_T_STRING)) : (RB_TYPE_P)((x), (RUBY_T_STRING))) && (RSTRING_LEN(x)>=1)) + return RSTRING_PTR(x)[0]; + else + return ((char)rb_num2int_inline(x)); +} + +double rb_num2dbl(VALUE num); +__attribute__((__pure__)) +double rb_float_value(VALUE num); +VALUE rb_float_new(double d); +VALUE rb_float_new_in_heap(double d); + + + +VALUE rb_ll2inum( + long long + num); +VALUE rb_ull2inum(unsigned + long long + num); + long long + rb_num2ll(VALUE num); +unsigned + long long + rb_num2ull(VALUE num); +static inline VALUE +rb_ll2num_inline( + long long + n) +{ + if ((((n) < (9223372036854775807L / 2) + 1) && ((n) >= ((-9223372036854775807L -1L) / 2)))) return RB_INT2FIX((long)n); + return rb_ll2inum(n); +} +static inline VALUE +rb_ull2num_inline(unsigned + long long + n) +{ + if (((n) < (9223372036854775807L / 2) + 1)) return RB_INT2FIX((long)n); + return rb_ull2inum(n); +} +static inline + long long +rb_num2ll_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return rb_fix2long(x); + else + return rb_num2ll(x); +} +static inline unsigned + long long +rb_num2ull_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return rb_fix2long(x); + else + return rb_num2ull(x); +} + + + + +short rb_num2short(VALUE num); +unsigned short rb_num2ushort(VALUE num); +short rb_fix2short(VALUE num); +unsigned short rb_fix2ushort(VALUE num); +static inline short +rb_num2short_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return rb_fix2short(x); + else + return rb_num2short(x); +} + + +typedef unsigned long st_data_t; +typedef struct st_table st_table; +typedef st_data_t st_index_t; +typedef int st_compare_func(st_data_t, st_data_t); +typedef st_index_t st_hash_func(st_data_t); +typedef char st_check_for_sizeof_st_index_t[8 == (int)sizeof(st_index_t) ? 1 : -1]; +struct st_hash_type { + int (*compare)(st_data_t, st_data_t); + st_index_t (*hash)(st_data_t); +}; +typedef struct st_table_entry st_table_entry; +struct st_table_entry; +struct st_table { + unsigned char entry_power, bin_power, size_ind; + unsigned int rebuilds_num; + const struct st_hash_type *type; + st_index_t num_entries; + st_index_t *bins; + st_index_t entries_start, entries_bound; + st_table_entry *entries; +}; +enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK, ST_REPLACE}; +st_table *rb_st_init_table(const struct st_hash_type *); +st_table *rb_st_init_table_with_size(const struct st_hash_type *, st_index_t); +st_table *rb_st_init_numtable(void); +st_table *rb_st_init_numtable_with_size(st_index_t); +st_table *rb_st_init_strtable(void); +st_table *rb_st_init_strtable_with_size(st_index_t); +st_table *rb_st_init_strcasetable(void); +st_table *rb_st_init_strcasetable_with_size(st_index_t); +int rb_st_delete(st_table *, st_data_t *, st_data_t *); +int rb_st_delete_safe(st_table *, st_data_t *, st_data_t *, st_data_t); +int rb_st_shift(st_table *, st_data_t *, st_data_t *); +int rb_st_insert(st_table *, st_data_t, st_data_t); +int rb_st_insert2(st_table *, st_data_t, st_data_t, st_data_t (*)(st_data_t)); +int rb_st_lookup(st_table *, st_data_t, st_data_t *); +int rb_st_get_key(st_table *, st_data_t, st_data_t *); +typedef int st_update_callback_func(st_data_t *key, st_data_t *value, st_data_t arg, int existing); +int rb_st_update(st_table *table, st_data_t key, st_update_callback_func *func, st_data_t arg); +typedef int st_foreach_callback_func(st_data_t, st_data_t, st_data_t); +typedef int st_foreach_check_callback_func(st_data_t, st_data_t, st_data_t, int); +int rb_st_foreach_with_replace(st_table *tab, st_foreach_check_callback_func *func, st_update_callback_func *replace, st_data_t arg); +int rb_st_foreach(st_table *, st_foreach_callback_func *, st_data_t); +int rb_st_foreach_check(st_table *, st_foreach_check_callback_func *, st_data_t, st_data_t); +st_index_t rb_st_keys(st_table *table, st_data_t *keys, st_index_t size); +st_index_t rb_st_keys_check(st_table *table, st_data_t *keys, st_index_t size, st_data_t never); +st_index_t rb_st_values(st_table *table, st_data_t *values, st_index_t size); +st_index_t rb_st_values_check(st_table *table, st_data_t *values, st_index_t size, st_data_t never); +void rb_st_add_direct(st_table *, st_data_t, st_data_t); +void rb_st_free_table(st_table *); +void rb_st_cleanup_safe(st_table *, st_data_t); +void rb_st_clear(st_table *); +st_table *rb_st_copy(st_table *); +__attribute__((__const__)) int rb_st_numcmp(st_data_t, st_data_t); +__attribute__((__const__)) st_index_t rb_st_numhash(st_data_t); +__attribute__((__pure__)) int rb_st_locale_insensitive_strcasecmp(const char *s1, const char *s2); +__attribute__((__pure__)) int rb_st_locale_insensitive_strncasecmp(const char *s1, const char *s2, size_t n); +__attribute__((__pure__)) size_t rb_st_memsize(const st_table *); +__attribute__((__pure__)) st_index_t rb_st_hash(const void *ptr, size_t len, st_index_t h); +__attribute__((__const__)) st_index_t rb_st_hash_uint32(st_index_t h, uint32_t i); +__attribute__((__const__)) st_index_t rb_st_hash_uint(st_index_t h, st_index_t i); +__attribute__((__const__)) st_index_t rb_st_hash_end(st_index_t h); +__attribute__((__const__)) st_index_t rb_st_hash_start(st_index_t h); +void rb_hash_bulk_insert_into_st_table(long, const VALUE *, VALUE); + +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline VALUE +RB_ST2FIX(st_data_t i) +{ + long x = i; + if (x >= 0) { + x &= (9223372036854775807L / 2); + } + else { + x |= ((-9223372036854775807L -1L) / 2); + } + ((void)0); + unsigned long y = ((unsigned long)x); + return RB_INT2FIX(y); +} + + + + +void rb_gc_writebarrier(VALUE old, VALUE young); +void rb_gc_writebarrier_unprotect(VALUE obj); +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_OBJ_PROMOTED_RAW(VALUE obj) +{ + ((void)0); + return RB_FL_ANY_RAW(obj, RUBY_FL_PROMOTED); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RB_OBJ_PROMOTED(VALUE obj) +{ + if (! RB_FL_ABLE(obj)) { + return 0; + } + else { + return RB_OBJ_PROMOTED_RAW(obj); + } +} +static inline VALUE +rb_obj_wb_unprotect( + VALUE x, + __attribute__((__unused__)) + const char *filename, + __attribute__((__unused__)) + int line) +{ + rb_gc_writebarrier_unprotect(x); + return x; +} +static inline VALUE +rb_obj_written( + VALUE a, + __attribute__((__unused__)) + VALUE oldv, + VALUE b, + __attribute__((__unused__)) + const char *filename, + __attribute__((__unused__)) + int line) +{ + if (!RB_SPECIAL_CONST_P(b)) { + rb_gc_writebarrier(a, b); + } + return a; +} +static inline VALUE +rb_obj_write( + VALUE a, VALUE *slot, VALUE b, + __attribute__((__unused__)) + const char *filename, + __attribute__((__unused__)) + int line) +{ + *slot = b; + rb_obj_written(a, ((VALUE)RUBY_Qundef) , b, filename, line); + return a; +} +enum ruby_rarray_flags { + RARRAY_EMBED_FLAG = RUBY_FL_USER1, + RARRAY_EMBED_LEN_MASK = RUBY_FL_USER9 | RUBY_FL_USER8 | RUBY_FL_USER7 | RUBY_FL_USER6 | + RUBY_FL_USER5 | RUBY_FL_USER4 | RUBY_FL_USER3 + , + RARRAY_TRANSIENT_FLAG = RUBY_FL_USER13 +}; +enum ruby_rarray_consts { + RARRAY_EMBED_LEN_SHIFT = RUBY_FL_USHIFT + 3 +}; +struct RArray { + struct RBasic basic; + union { + struct { + long len; + union { + long capa; + const + VALUE shared_root; + } aux; + const VALUE *ptr; + } heap; + const VALUE ary[1]; + } as; +}; +VALUE *rb_ary_ptr_use_start(VALUE ary); +void rb_ary_ptr_use_end(VALUE a); +void rb_ary_detransient(VALUE a); +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline long +RARRAY_EMBED_LEN(VALUE ary) +{ + ((void)0); + ((void)0); + VALUE f = ((struct RBasic *)(ary))->flags; + f &= RARRAY_EMBED_LEN_MASK; + f >>= RARRAY_EMBED_LEN_SHIFT; + return ((long)f); +} +__attribute__((__pure__)) +static inline long +rb_array_len(VALUE a) +{ + ((void)0); + if (RB_FL_ANY_RAW(a, RARRAY_EMBED_FLAG)) { + return RARRAY_EMBED_LEN(a); + } + else { + return ((struct RArray *)(a))->as.heap.len; + } +} +__attribute__((__artificial__)) +static inline int +RARRAY_LENINT(VALUE ary) +{ + return rb_long2int_inline(rb_array_len(ary)); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RARRAY_TRANSIENT_P(VALUE ary) +{ + ((void)0); + return RB_FL_ANY_RAW(ary, RARRAY_TRANSIENT_FLAG); +} +__attribute__((__pure__)) +static inline const VALUE * +rb_array_const_ptr_transient(VALUE a) +{ + ((void)0); + if (RB_FL_ANY_RAW(a, RARRAY_EMBED_FLAG)) { + return (((struct RArray *)(a))->as.ary); + } + else { + return (((struct RArray *)(a))->as.heap.ptr); + } +} +static inline const VALUE * +rb_array_const_ptr(VALUE a) +{ + ((void)0); + if (RARRAY_TRANSIENT_P(a)) { + rb_ary_detransient(a); + } + return rb_array_const_ptr_transient(a); +} +static inline VALUE * +rb_array_ptr_use_start(VALUE a, + __attribute__((__unused__)) + int allow_transient) +{ + ((void)0); + if (!allow_transient) { + if (RARRAY_TRANSIENT_P(a)) { + rb_ary_detransient(a); + } + } + return rb_ary_ptr_use_start(a); +} +static inline void +rb_array_ptr_use_end(VALUE a, + __attribute__((__unused__)) + int allow_transient) +{ + ((void)0); + rb_ary_ptr_use_end(a); +} +static inline VALUE * +RARRAY_PTR(VALUE ary) +{ + ((void)0); + VALUE tmp = (1 ? rb_obj_wb_unprotect(ary, "./include/ruby/internal/core/rarray.h", 550) : ary); + return ((VALUE *)rb_array_const_ptr(tmp)); +} +static inline void +RARRAY_ASET(VALUE ary, long i, VALUE v) +{ + do { ((void)0); const VALUE rbimpl_ary = (ary); VALUE *ptr = rb_array_ptr_use_start(rbimpl_ary, (1)); (rb_obj_write((VALUE)(ary), (VALUE *)(&ptr[i]), (VALUE)(v), "./include/ruby/internal/core/rarray.h", 569)); rb_array_ptr_use_end(rbimpl_ary, (1)); } while (0); +} + + +int rb_big_sign(VALUE num); +static inline _Bool +RBIGNUM_POSITIVE_P(VALUE b) +{ + ((void)0); + return rb_big_sign(b); +} +static inline _Bool +RBIGNUM_NEGATIVE_P(VALUE b) +{ + ((void)0); + return ! RBIGNUM_POSITIVE_P(b); +} + +enum ruby_rmodule_flags { + RMODULE_IS_REFINEMENT = RUBY_FL_USER3 +}; +struct RClass; +VALUE rb_class_get_superclass(VALUE klass); + +typedef void (*RUBY_DATA_FUNC)(void*); +struct RData { + struct RBasic basic; + RUBY_DATA_FUNC dmark; + RUBY_DATA_FUNC dfree; + void *data; +}; +VALUE rb_data_object_wrap(VALUE klass, void *datap, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree); +VALUE rb_data_object_zalloc(VALUE klass, size_t size, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree); +extern VALUE rb_cObject; +__attribute__((__warning__ ("untyped Data is unsafe; use TypedData instead"))) __attribute__((__deprecated__ ("by TypedData"))) +static inline VALUE +rb_data_object_wrap_warning(VALUE klass, void *ptr, RUBY_DATA_FUNC mark, RUBY_DATA_FUNC free) +{ + return rb_data_object_wrap(klass, ptr, mark, free); +} +static inline void * +rb_data_object_get(VALUE obj) +{ + Check_Type(obj, RUBY_T_DATA); + return ((struct RData *)(obj))->data; +} +__attribute__((__warning__ ("untyped Data is unsafe; use TypedData instead"))) __attribute__((__deprecated__ ("by TypedData"))) +static inline void * +rb_data_object_get_warning(VALUE obj) +{ + return rb_data_object_get(obj); +} +static inline VALUE +rb_data_object_make(VALUE klass, RUBY_DATA_FUNC mark_func, RUBY_DATA_FUNC free_func, void **datap, size_t size) +{ + VALUE result = rb_data_object_zalloc( (klass), (size), ((void (*)(void *))(mark_func)), ((void (*)(void *))(free_func))); (*datap) = ((void *)((struct RData *)(result))->data); ((void)(*datap)); + return result; +} +__attribute__((__deprecated__ ("by: rb_data_object_wrap"))) +static inline VALUE +rb_data_object_alloc(VALUE klass, void *data, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree) +{ + return rb_data_object_wrap(klass, data, dmark, dfree); +} + +struct rb_io_t; +struct RFile { + struct RBasic basic; + struct rb_io_t *fptr; +}; + +struct st_table; +size_t rb_hash_size_num(VALUE hash); +struct st_table *rb_hash_tbl(VALUE hash, const char *file, int line); +VALUE rb_hash_set_ifnone(VALUE hash, VALUE ifnone); + +enum ruby_robject_flags { + ROBJECT_EMBED = RUBY_FL_USER1 +}; +struct st_table; +struct RObject { + struct RBasic basic; + union { + struct { + VALUE *ivptr; + struct rb_id_table *iv_index_tbl; + } heap; + VALUE ary[1]; + } as; +}; +static const int32_t ROBJECT_OFFSET_AS_HEAP_IVPTR = __builtin_offsetof(struct RObject, as.heap.ivptr); +static const int32_t ROBJECT_OFFSET_AS_HEAP_IV_INDEX_TBL = __builtin_offsetof(struct RObject, as.heap.iv_index_tbl); +static const int32_t ROBJECT_OFFSET_AS_ARY = __builtin_offsetof(struct RObject, as.ary); +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline VALUE * +ROBJECT_IVPTR(VALUE obj) +{ + ((void)0); + struct RObject *const ptr = ((struct RObject *)(obj)); + if (RB_FL_ANY_RAW(obj, ROBJECT_EMBED)) { + return ptr->as.ary; + } + else { + return ptr->as.heap.ivptr; + } +} + +struct re_patter_buffer; +struct RRegexp { + struct RBasic basic; + struct re_pattern_buffer *ptr; + const VALUE src; + unsigned long usecnt; +}; +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline VALUE +RREGEXP_SRC(VALUE rexp) +{ + ((void)0); + VALUE ret = ((struct RRegexp *)(rexp))->src; + ((void)0); + return ret; +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline char * +RREGEXP_SRC_PTR(VALUE rexp) +{ + return RSTRING_PTR(RREGEXP_SRC(rexp)); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline long +RREGEXP_SRC_LEN(VALUE rexp) +{ + return RSTRING_LEN(RREGEXP_SRC(rexp)); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline char * +RREGEXP_SRC_END(VALUE rexp) +{ + return RSTRING_END(RREGEXP_SRC(rexp)); +} + + +VALUE rb_struct_size(VALUE st); +VALUE rb_struct_aref(VALUE st, VALUE k); +VALUE rb_struct_aset(VALUE st, VALUE k, VALUE v); +__attribute__((__artificial__)) +static inline long +RSTRUCT_LEN(VALUE st) +{ + ((void)0); + return rb_num2long_inline(rb_struct_size(st)); +} +__attribute__((__artificial__)) +static inline VALUE +RSTRUCT_SET(VALUE st, int k, VALUE v) +{ + ((void)0); + return rb_struct_aset(st, rb_int2num_inline(k), (v)); +} +__attribute__((__artificial__)) +static inline VALUE +RSTRUCT_GET(VALUE st, int k) +{ + ((void)0); + return rb_struct_aref(st, rb_int2num_inline(k)); +} + +enum +__attribute__((__flag_enum__)) +rbimpl_typeddata_flags { + RUBY_TYPED_FREE_IMMEDIATELY = 1, + RUBY_TYPED_FROZEN_SHAREABLE = RUBY_FL_SHAREABLE, + RUBY_TYPED_WB_PROTECTED = RUBY_FL_WB_PROTECTED, + RUBY_TYPED_PROMOTED1 = RUBY_FL_PROMOTED1 +}; +typedef struct rb_data_type_struct rb_data_type_t; +struct rb_data_type_struct { + const char *wrap_struct_name; + struct { + RUBY_DATA_FUNC dmark; + RUBY_DATA_FUNC dfree; + size_t (*dsize)(const void *); + RUBY_DATA_FUNC dcompact; + void *reserved[1]; + } function; + const rb_data_type_t *parent; + void *data; + VALUE flags; +}; +struct RTypedData { + struct RBasic basic; + const rb_data_type_t *type; + VALUE typed_flag; + void *data; +}; +__attribute__((__nonnull__ (3))) +VALUE rb_data_typed_object_wrap(VALUE klass, void *datap, const rb_data_type_t *type); +VALUE rb_data_typed_object_zalloc(VALUE klass, size_t size, const rb_data_type_t *type); +int rb_typeddata_inherited_p(const rb_data_type_t *child, const rb_data_type_t *parent); +int rb_typeddata_is_kind_of(VALUE obj, const rb_data_type_t *data_type); +void *rb_check_typeddata(VALUE obj, const rb_data_type_t *data_type); +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +rbimpl_rtypeddata_p(VALUE obj) +{ + return ((struct RTypedData *)(obj))->typed_flag == 1; +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline _Bool +RTYPEDDATA_P(VALUE obj) +{ + return rbimpl_rtypeddata_p(obj); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline const struct rb_data_type_struct * +RTYPEDDATA_TYPE(VALUE obj) +{ + return ((struct RTypedData *)(obj))->type; +} +static inline VALUE +rb_data_typed_object_make(VALUE klass, const rb_data_type_t *type, void **datap, size_t size) +{ + VALUE result = rb_data_typed_object_zalloc(klass, size, type); (*datap) = ((void *)(((struct RTypedData *)(result))->data)); ((void)(*datap)); + return result; +} +__attribute__((__deprecated__ ("by: rb_data_typed_object_wrap"))) +static inline VALUE +rb_data_typed_object_alloc(VALUE klass, void *datap, const rb_data_type_t *type) +{ + return rb_data_typed_object_wrap(klass, datap, type); +} + +typedef __darwin_wint_t wint_t; +typedef struct { + __darwin_rune_t __min; + __darwin_rune_t __max; + __darwin_rune_t __map; + __uint32_t *__types; +} _RuneEntry; +typedef struct { + int __nranges; + _RuneEntry *__ranges; +} _RuneRange; +typedef struct { + char __name[14]; + __uint32_t __mask; +} _RuneCharClass; +typedef struct { + char __magic[8]; + char __encoding[32]; + __darwin_rune_t (*__sgetrune)(const char *, __darwin_size_t, char const **); + int (*__sputrune)(__darwin_rune_t, char *, __darwin_size_t, char **); + __darwin_rune_t __invalid_rune; + __uint32_t __runetype[(1 <<8 )]; + __darwin_rune_t __maplower[(1 <<8 )]; + __darwin_rune_t __mapupper[(1 <<8 )]; + _RuneRange __runetype_ext; + _RuneRange __maplower_ext; + _RuneRange __mapupper_ext; + void *__variable; + int __variable_len; + int __ncharclasses; + _RuneCharClass *__charclasses; +} _RuneLocale; +extern _RuneLocale _DefaultRuneLocale; +extern _RuneLocale *_CurrentRuneLocale; + +unsigned long ___runetype(__darwin_ct_rune_t); +__darwin_ct_rune_t ___tolower(__darwin_ct_rune_t); +__darwin_ct_rune_t ___toupper(__darwin_ct_rune_t); +inline int +isascii(int _c) +{ + return ((_c & ~0x7F) == 0); +} +int __maskrune(__darwin_ct_rune_t, unsigned long); +inline int +__istype(__darwin_ct_rune_t _c, unsigned long _f) +{ + return (isascii(_c) ? !!(_DefaultRuneLocale.__runetype[_c] & _f) + : !!__maskrune(_c, _f)); +} +inline __darwin_ct_rune_t +__isctype(__darwin_ct_rune_t _c, unsigned long _f) +{ + return (_c < 0 || _c >= (1 <<8 )) ? 0 : + !!(_DefaultRuneLocale.__runetype[_c] & _f); +} +__darwin_ct_rune_t __toupper(__darwin_ct_rune_t); +__darwin_ct_rune_t __tolower(__darwin_ct_rune_t); +inline int +__wcwidth(__darwin_ct_rune_t _c) +{ + unsigned int _x; + if (_c == 0) + return (0); + _x = (unsigned int)__maskrune(_c, 0xe0000000L|0x00040000L); + if ((_x & 0xe0000000L) != 0) + return ((_x & 0xe0000000L) >> 30); + return ((_x & 0x00040000L) != 0 ? 1 : -1); +} +inline int +isalnum(int _c) +{ + return (__istype(_c, 0x00000100L|0x00000400L)); +} +inline int +isalpha(int _c) +{ + return (__istype(_c, 0x00000100L)); +} +inline int +isblank(int _c) +{ + return (__istype(_c, 0x00020000L)); +} +inline int +iscntrl(int _c) +{ + return (__istype(_c, 0x00000200L)); +} +inline int +isdigit(int _c) +{ + return (__isctype(_c, 0x00000400L)); +} +inline int +isgraph(int _c) +{ + return (__istype(_c, 0x00000800L)); +} +inline int +islower(int _c) +{ + return (__istype(_c, 0x00001000L)); +} +inline int +isprint(int _c) +{ + return (__istype(_c, 0x00040000L)); +} +inline int +ispunct(int _c) +{ + return (__istype(_c, 0x00002000L)); +} +inline int +isspace(int _c) +{ + return (__istype(_c, 0x00004000L)); +} +inline int +isupper(int _c) +{ + return (__istype(_c, 0x00008000L)); +} +inline int +isxdigit(int _c) +{ + return (__isctype(_c, 0x00010000L)); +} +inline int +toascii(int _c) +{ + return (_c & 0x7F); +} +inline int +tolower(int _c) +{ + return (__tolower(_c)); +} +inline int +toupper(int _c) +{ + return (__toupper(_c)); +} +inline int +digittoint(int _c) +{ + return (__maskrune(_c, 0x0F)); +} +inline int +ishexnumber(int _c) +{ + return (__istype(_c, 0x00010000L)); +} +inline int +isideogram(int _c) +{ + return (__istype(_c, 0x00080000L)); +} +inline int +isnumber(int _c) +{ + return (__istype(_c, 0x00000400L)); +} +inline int +isphonogram(int _c) +{ + return (__istype(_c, 0x00200000L)); +} +inline int +isrune(int _c) +{ + return (__istype(_c, 0xFFFFFFF0L)); +} +inline int +isspecial(int _c) +{ + return (__istype(_c, 0x00100000L)); +} +__attribute__((__nonnull__ ())) +int rb_st_locale_insensitive_strcasecmp(const char *s1, const char *s2); +__attribute__((__nonnull__ ())) +int rb_st_locale_insensitive_strncasecmp(const char *s1, const char *s2, size_t n); +__attribute__((__nonnull__ (1))) +unsigned long ruby_strtoul(const char *str, char **endptr, int base); +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isascii(int c) +{ + return '\0' <= c && c <= '\x7f'; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isupper(int c) +{ + return 'A' <= c && c <= 'Z'; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_islower(int c) +{ + return 'a' <= c && c <= 'z'; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isalpha(int c) +{ + return rb_isupper(c) || rb_islower(c); +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isdigit(int c) +{ + return '0' <= c && c <= '9'; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isalnum(int c) +{ + return rb_isalpha(c) || rb_isdigit(c); +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isxdigit(int c) +{ + return rb_isdigit(c) || ('A' <= c && c <= 'F') || ('a' <= c && c <= 'f'); +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isblank(int c) +{ + return c == ' ' || c == '\t'; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isspace(int c) +{ + return c == ' ' || ('\t' <= c && c <= '\r'); +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_iscntrl(int c) +{ + return ('\0' <= c && c < ' ') || c == '\x7f'; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isprint(int c) +{ + return ' ' <= c && c <= '\x7e'; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_ispunct(int c) +{ + return !rb_isalnum(c); +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_isgraph(int c) +{ + return '!' <= c && c <= '\x7e'; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_tolower(int c) +{ + return rb_isupper(c) ? (c|0x20) : c; +} +__attribute__((__const__)) +__attribute__((__artificial__)) +static inline int +rb_toupper(int c) +{ + return rb_islower(c) ? (c&0x5f) : c; +} + +__attribute__((__nonnull__ ())) +VALUE rb_eval_string(const char *str); +__attribute__((__nonnull__ (1))) +VALUE rb_eval_string_protect(const char *str, int *state); +__attribute__((__nonnull__ (1))) +VALUE rb_eval_string_wrap(const char *str, int *state); +VALUE rb_funcall(VALUE recv, ID mid, int n, ...); +VALUE rb_funcallv(VALUE recv, ID mid, int argc, const VALUE *argv); +VALUE rb_funcallv_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat); +VALUE rb_funcallv_public(VALUE recv, ID mid, int argc, const VALUE *argv); +VALUE rb_funcallv_public_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat); +VALUE rb_funcall_passing_block(VALUE recv, ID mid, int argc, const VALUE *argv); +VALUE rb_funcall_passing_block_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat); +VALUE rb_funcall_with_block(VALUE recv, ID mid, int argc, const VALUE *argv, VALUE procval); +VALUE rb_funcall_with_block_kw(VALUE recv, ID mid, int argc, const VALUE *argv, VALUE procval, int kw_splat); +VALUE rb_call_super(int argc, const VALUE *argv); +VALUE rb_call_super_kw(int argc, const VALUE *argv, int kw_splat); +VALUE rb_current_receiver(void); +__attribute__((__nonnull__ (2))) +int rb_get_kwargs(VALUE keyword_hash, const ID *table, int required, int optional, VALUE *values); +__attribute__((__nonnull__ ())) +VALUE rb_extract_keywords(VALUE *orighash); + +typedef uint32_t rb_event_flag_t; +typedef void (*rb_event_hook_func_t)(rb_event_flag_t evflag, VALUE data, VALUE self, ID mid, VALUE klass); +void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data); +int rb_remove_event_hook(rb_event_hook_func_t func); + + +void rb_gc_register_address(VALUE *valptr); +void rb_global_variable(VALUE *); +void rb_gc_unregister_address(VALUE *valptr); +void rb_gc_register_mark_object(VALUE object); + +typedef int ruby_glob_func(const char *path, VALUE arg, void *enc); +__attribute__((__nonnull__ ())) +void rb_glob(const char *pattern, void (*func)(const char *path, VALUE arg, void *enc), VALUE arg); +__attribute__((__nonnull__ ())) +int ruby_glob(const char *pattern, int flags, ruby_glob_func *func, VALUE arg); +__attribute__((__nonnull__ ())) +int ruby_brace_glob(const char *pattern, int flags, ruby_glob_func *func, VALUE arg); + +extern VALUE rb_mKernel; +extern VALUE rb_mComparable; +extern VALUE rb_mEnumerable; +extern VALUE rb_mErrno; +extern VALUE rb_mFileTest; +extern VALUE rb_mGC; +extern VALUE rb_mMath; +extern VALUE rb_mProcess; +extern VALUE rb_mWaitReadable; +extern VALUE rb_mWaitWritable; +extern VALUE rb_cBasicObject; +extern VALUE rb_cObject; +extern VALUE rb_cArray; +extern VALUE rb_cBinding; +extern VALUE rb_cClass; +extern VALUE rb_cDir; +extern VALUE rb_cEncoding; +extern VALUE rb_cEnumerator; +extern VALUE rb_cFalseClass; +extern VALUE rb_cFile; +extern VALUE rb_cComplex; +extern VALUE rb_cFloat; +extern VALUE rb_cHash; +extern VALUE rb_cIO; +extern VALUE rb_cInteger; +extern VALUE rb_cMatch; +extern VALUE rb_cMethod; +extern VALUE rb_cModule; +extern VALUE rb_cRefinement; +extern VALUE rb_cNameErrorMesg; +extern VALUE rb_cNilClass; +extern VALUE rb_cNumeric; +extern VALUE rb_cProc; +extern VALUE rb_cRandom; +extern VALUE rb_cRange; +extern VALUE rb_cRational; +extern VALUE rb_cRegexp; +extern VALUE rb_cStat; +extern VALUE rb_cString; +extern VALUE rb_cStruct; +extern VALUE rb_cSymbol; +extern VALUE rb_cThread; +extern VALUE rb_cTime; +extern VALUE rb_cTrueClass; +extern VALUE rb_cUnboundMethod; +extern VALUE rb_eException; +extern VALUE rb_eStandardError; +extern VALUE rb_eSystemExit; +extern VALUE rb_eInterrupt; +extern VALUE rb_eSignal; +extern VALUE rb_eFatal; +extern VALUE rb_eArgError; +extern VALUE rb_eEOFError; +extern VALUE rb_eIndexError; +extern VALUE rb_eStopIteration; +extern VALUE rb_eKeyError; +extern VALUE rb_eRangeError; +extern VALUE rb_eIOError; +extern VALUE rb_eRuntimeError; +extern VALUE rb_eFrozenError; +extern VALUE rb_eSecurityError; +extern VALUE rb_eSystemCallError; +extern VALUE rb_eThreadError; +extern VALUE rb_eTypeError; +extern VALUE rb_eZeroDivError; +extern VALUE rb_eNotImpError; +extern VALUE rb_eNoMemError; +extern VALUE rb_eNoMethodError; +extern VALUE rb_eFloatDomainError; +extern VALUE rb_eLocalJumpError; +extern VALUE rb_eSysStackError; +extern VALUE rb_eRegexpError; +extern VALUE rb_eEncodingError; +extern VALUE rb_eEncCompatError; +extern VALUE rb_eNoMatchingPatternError; +extern VALUE rb_eNoMatchingPatternKeyError; +extern VALUE rb_eScriptError; +extern VALUE rb_eNameError; +extern VALUE rb_eSyntaxError; +extern VALUE rb_eLoadError; +extern VALUE rb_eMathDomainError; +extern VALUE rb_stdin; +extern VALUE rb_stdout; +extern VALUE rb_stderr; +__attribute__((__pure__)) +static inline VALUE +rb_class_of(VALUE obj) +{ + if (! RB_SPECIAL_CONST_P(obj)) { + return RBASIC_CLASS(obj); + } + else if (obj == ((VALUE)RUBY_Qfalse)) { + return rb_cFalseClass; + } + else if (obj == ((VALUE)RUBY_Qnil)) { + return rb_cNilClass; + } + else if (obj == ((VALUE)RUBY_Qtrue)) { + return rb_cTrueClass; + } + else if (RB_FIXNUM_P(obj)) { + return rb_cInteger; + } + else if (RB_STATIC_SYM_P(obj)) { + return rb_cSymbol; + } + else if (RB_FLONUM_P(obj)) { + return rb_cFloat; + } + __builtin_unreachable(); +} + + +__attribute__((__nonnull__ ())) +void ruby_sysinit(int *argc, char ***argv); +void ruby_init(void); +void* ruby_options(int argc, char** argv); +int ruby_executable_node(void *n, int *status); +int ruby_run_node(void *n); +void ruby_show_version(void); +void ruby_show_copyright(void); +void ruby_init_stack(volatile VALUE *addr); +int ruby_setup(void); +int ruby_cleanup(int ex); +void ruby_finalize(void); +__declspec(noreturn) +void ruby_stop(int); +int ruby_stack_check(void); +size_t ruby_stack_length(VALUE **topnotch); +int ruby_exec_node(void *n); +void ruby_script(const char* name); +void ruby_set_script_name(VALUE name); +void ruby_prog_init(void); +void ruby_set_argv(int argc, char **argv); +void *ruby_process_options(int argc, char **argv); +void ruby_init_loadpath(void); +void ruby_incpush(const char *path); +void ruby_sig_finalize(void); + +typedef VALUE rb_block_call_func(VALUE yielded_arg, VALUE callback_arg, int argc, const VALUE *argv, VALUE blockarg); +typedef rb_block_call_func *rb_block_call_func_t; +VALUE rb_each(VALUE obj); +VALUE rb_yield(VALUE val); +VALUE rb_yield_values(int n, ...); +VALUE rb_yield_values2(int n, const VALUE *argv); +VALUE rb_yield_values_kw(int n, const VALUE *argv, int kw_splat); +VALUE rb_yield_splat(VALUE ary); +VALUE rb_yield_splat_kw(VALUE ary, int kw_splat); +VALUE rb_yield_block(VALUE yielded_arg, VALUE callback_arg, int argc, const VALUE *argv, VALUE blockarg); +int rb_keyword_given_p(void); +int rb_block_given_p(void); +void rb_need_block(void); +__attribute__((__deprecated__ ("by: rb_block_call since 1.9"))) +VALUE rb_iterate(VALUE (*func1)(VALUE), VALUE data1, rb_block_call_func_t proc, VALUE data2); +VALUE rb_block_call(VALUE obj, ID mid, int argc, const VALUE *argv, rb_block_call_func_t proc, VALUE data2); +VALUE rb_block_call_kw(VALUE obj, ID mid, int argc, const VALUE *argv, rb_block_call_func_t proc, VALUE data2, int kw_splat); +VALUE rb_rescue(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*r_proc)(VALUE, VALUE), VALUE data2); +VALUE rb_rescue2(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*r_proc)(VALUE, VALUE), VALUE data2, ...); +VALUE rb_vrescue2(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*r_proc)(VALUE, VALUE), VALUE data2, va_list ap); +VALUE rb_ensure(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*e_proc)(VALUE), VALUE data2); +VALUE rb_catch(const char *tag, rb_block_call_func_t func, VALUE data); +VALUE rb_catch_obj(VALUE tag, rb_block_call_func_t func, VALUE data); +__declspec(noreturn) +void rb_throw(const char *tag, VALUE val); +__declspec(noreturn) +void rb_throw_obj(VALUE tag, VALUE val); + +struct rbimpl_size_mul_overflow_tag { + _Bool left; + size_t right; +}; +__attribute__((__malloc__)) +__attribute__((__returns_nonnull__)) +__attribute__((__alloc_size__ (2))) +__attribute__((__nonnull__ ())) +void *rb_alloc_tmp_buffer(volatile VALUE *store, long len); +__attribute__((__malloc__)) +__attribute__((__returns_nonnull__)) +__attribute__((__alloc_size__ (2,3))) +__attribute__((__nonnull__ ())) +void *rb_alloc_tmp_buffer_with_count(volatile VALUE *store, size_t len,size_t count); +void rb_free_tmp_buffer(volatile VALUE *store); +__declspec(noreturn) +void ruby_malloc_size_overflow(size_t x, size_t y); +static inline int +rb_mul_size_overflow(size_t a, size_t b, size_t max, size_t *c) +{ + __extension__ unsigned __int128 da, db, c2; + da = a; + db = b; + c2 = da * db; + if (c2 > max) return 1; + *c = ((size_t)c2); + return 0; +} +__attribute__((__const__)) +static inline struct rbimpl_size_mul_overflow_tag +rbimpl_size_mul_overflow(size_t x, size_t y) +{ + struct rbimpl_size_mul_overflow_tag ret = { 0, 0, }; + ret.left = __builtin_mul_overflow(x, y, &ret.right); + return ret; +} +static inline size_t +rbimpl_size_mul_or_raise(size_t x, size_t y) +{ + struct rbimpl_size_mul_overflow_tag size = + rbimpl_size_mul_overflow(x, y); + if ((__builtin_expect(!!(! size.left), 1))) { + return size.right; + } + else { + ruby_malloc_size_overflow(x, y); + __builtin_unreachable(); + } +} +static inline void * +rb_alloc_tmp_buffer2(volatile VALUE *store, long count, size_t elsize) +{ + const size_t total_size = rbimpl_size_mul_or_raise(count, elsize); + const size_t cnt = (total_size + sizeof(VALUE) - 1) / sizeof(VALUE); + return rb_alloc_tmp_buffer_with_count(store, total_size, cnt); +} +__declspec(noalias) +__attribute__((__nonnull__ (1))) +__attribute__((__returns_nonnull__)) +static inline void * +ruby_nonempty_memcpy(void *dest, const void *src, size_t n) +{ + if (n) { + return __builtin___memcpy_chk (dest, src, n, __builtin_object_size (dest, 0)); + } + else { + return dest; + } +} + + +__attribute__((__nonnull__ ())) +VALUE rb_define_class(const char *name, VALUE super); +__attribute__((__nonnull__ ())) +VALUE rb_define_module(const char *name); +__attribute__((__nonnull__ ())) +VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super); +__attribute__((__nonnull__ ())) +VALUE rb_define_module_under(VALUE outer, const char *name); +void rb_include_module(VALUE klass, VALUE module); +void rb_extend_object(VALUE obj, VALUE mod); +void rb_prepend_module(VALUE klass, VALUE module); + +VALUE rb_newobj(void); +VALUE rb_newobj_of(VALUE klass, VALUE flags); +VALUE rb_obj_setup(VALUE obj, VALUE klass, VALUE type); +VALUE rb_obj_class(VALUE obj); +VALUE rb_singleton_class_clone(VALUE obj); +void rb_singleton_class_attached(VALUE klass, VALUE obj); +void rb_copy_generic_ivar(VALUE clone, VALUE obj); +__attribute__((__deprecated__ ("This is no longer how Object#clone works."))) +static inline void +rb_clone_setup(VALUE clone, VALUE obj) +{ + return; +} +__attribute__((__deprecated__ ("This is no longer how Object#dup works."))) +static inline void +rb_dup_setup(VALUE dup, VALUE obj) +{ + return; +} + + + + +__attribute__((__nonnull__ ())) +__declspec(noalias) +void rb_mem_clear(VALUE *buf, long len) + ; +VALUE rb_assoc_new(VALUE car, VALUE cdr); +VALUE rb_check_array_type(VALUE obj); +VALUE rb_ary_new(void); +VALUE rb_ary_new_capa(long capa); +VALUE rb_ary_new_from_args(long n, ...); +VALUE rb_ary_new_from_values(long n, const VALUE *elts); +VALUE rb_ary_hidden_new(long capa); +void rb_ary_free(VALUE ary); +void rb_ary_modify(VALUE ary); +VALUE rb_ary_freeze(VALUE obj); +__attribute__((__pure__)) +VALUE rb_ary_shared_with_p(VALUE lhs, VALUE rhs); +VALUE rb_ary_aref(int argc, const VALUE *argv, VALUE ary); +VALUE rb_ary_subseq(VALUE ary, long beg, long len); +void rb_ary_store(VALUE ary, long key, VALUE val); +VALUE rb_ary_dup(VALUE ary); +VALUE rb_ary_resurrect(VALUE ary); +VALUE rb_ary_to_ary(VALUE obj); +VALUE rb_ary_to_s(VALUE ary); +VALUE rb_ary_cat(VALUE ary, const VALUE *train, long len); +VALUE rb_ary_push(VALUE ary, VALUE elem); +VALUE rb_ary_pop(VALUE ary); +VALUE rb_ary_shift(VALUE ary); +VALUE rb_ary_unshift(VALUE ary, VALUE elem); +__attribute__((__pure__)) +VALUE rb_ary_entry(VALUE ary, long off); +VALUE rb_ary_each(VALUE ary); +VALUE rb_ary_join(VALUE ary, VALUE sep); +VALUE rb_ary_reverse(VALUE ary); +VALUE rb_ary_rotate(VALUE ary, long rot); +VALUE rb_ary_sort(VALUE ary); +VALUE rb_ary_sort_bang(VALUE ary); +VALUE rb_ary_delete(VALUE ary, VALUE elem); +VALUE rb_ary_delete_at(VALUE ary, long pos); +VALUE rb_ary_clear(VALUE ary); +VALUE rb_ary_plus(VALUE lhs, VALUE rhs); +VALUE rb_ary_concat(VALUE lhs, VALUE rhs); +VALUE rb_ary_assoc(VALUE alist, VALUE key); +VALUE rb_ary_rassoc(VALUE alist, VALUE key); +VALUE rb_ary_includes(VALUE ary, VALUE elem); +VALUE rb_ary_cmp(VALUE lhs, VALUE rhs); +VALUE rb_ary_replace(VALUE copy, VALUE orig); +VALUE rb_get_values_at(VALUE obj, long olen, int argc, const VALUE *argv, VALUE (*func)(VALUE obj, long oidx)); +VALUE rb_ary_resize(VALUE ary, long len); + +VALUE rb_exc_new(VALUE etype, const char *ptr, long len); +__attribute__((__nonnull__ ())) +VALUE rb_exc_new_cstr(VALUE etype, const char *str); +VALUE rb_exc_new_str(VALUE etype, VALUE str); +__declspec(noreturn) +__attribute__((__nonnull__ (1))) +__attribute__((__format__(__printf__, 1, 2))) +void rb_loaderror(const char *fmt, ...); +__declspec(noreturn) +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 3))) +void rb_loaderror_with_path(VALUE path, const char *fmt, ...); +__declspec(noreturn) +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 3))) +void rb_name_error(ID name, const char *fmt, ...); +__declspec(noreturn) +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 3))) +void rb_name_error_str(VALUE name, const char *fmt, ...); +__declspec(noreturn) +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 3))) +void rb_frozen_error_raise(VALUE recv, const char *fmt, ...); +__declspec(noreturn) +__attribute__((__nonnull__ ())) +void rb_invalid_str(const char *str, const char *type); +__declspec(noreturn) +__attribute__((__nonnull__ ())) +void rb_error_frozen(const char *what); +__declspec(noreturn) +void rb_error_frozen_object(VALUE what); +void rb_check_frozen(VALUE obj); +void rb_check_copyable(VALUE obj, VALUE orig); +__declspec(noreturn) +static void rb_error_arity(int argc, int min, int max); +static inline void +rb_check_frozen_inline(VALUE obj) +{ + if ((__builtin_expect(!!(RB_OBJ_FROZEN(obj)), 0))) { + rb_error_frozen_object(obj); + } +} +static inline int +rb_check_arity(int argc, int min, int max) +{ + if ((argc < min) || (max != (-1) && argc > max)) + rb_error_arity(argc, min, max); + return argc; +} + +__attribute__((__nonnull__ ())) +void rb_st_foreach_safe(struct st_table *st, st_foreach_callback_func *func, st_data_t arg); +VALUE rb_check_hash_type(VALUE obj); +__attribute__((__nonnull__ ())) +void rb_hash_foreach(VALUE hash, int (*func)(VALUE key, VALUE val, VALUE arg), VALUE arg); +VALUE rb_hash(VALUE obj); +VALUE rb_hash_new(void); +VALUE rb_hash_new_capa(long capa); +VALUE rb_hash_dup(VALUE hash); +VALUE rb_hash_freeze(VALUE obj); +VALUE rb_hash_aref(VALUE hash, VALUE key); +VALUE rb_hash_lookup(VALUE hash, VALUE key); +VALUE rb_hash_lookup2(VALUE hash, VALUE key, VALUE def); +VALUE rb_hash_fetch(VALUE hash, VALUE key); +VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val); +VALUE rb_hash_clear(VALUE hash); +VALUE rb_hash_delete_if(VALUE hash); +VALUE rb_hash_delete(VALUE hash, VALUE key); +void rb_hash_bulk_insert(long argc, const VALUE *argv, VALUE hash); +typedef VALUE rb_hash_update_func(VALUE newkey, VALUE oldkey, VALUE value); +VALUE rb_hash_update_by(VALUE hash1, VALUE hash2, rb_hash_update_func *func); +int rb_path_check(const char *path); +VALUE rb_env_clear(void); +VALUE rb_hash_size(VALUE hash); + +VALUE rb_block_proc(void); +VALUE rb_block_lambda(void); +VALUE rb_proc_new(rb_block_call_func_t func, VALUE callback_arg); +VALUE rb_obj_is_proc(VALUE recv); +VALUE rb_proc_call(VALUE recv, VALUE args); +VALUE rb_proc_call_kw(VALUE recv, VALUE args, int kw_splat); +VALUE rb_proc_call_with_block(VALUE recv, int argc, const VALUE *argv, VALUE proc); +VALUE rb_proc_call_with_block_kw(VALUE recv, int argc, const VALUE *argv, VALUE proc, int kw_splat); +int rb_proc_arity(VALUE recv); +VALUE rb_proc_lambda_p(VALUE recv); +VALUE rb_binding_new(void); +VALUE rb_obj_method(VALUE recv, VALUE mid); +VALUE rb_obj_is_method(VALUE recv); +VALUE rb_method_call(int argc, const VALUE *argv, VALUE recv); +VALUE rb_method_call_kw(int argc, const VALUE *argv, VALUE recv, int kw_splat); +VALUE rb_method_call_with_block(int argc, const VALUE *argv, VALUE recv, VALUE proc); +VALUE rb_method_call_with_block_kw(int argc, const VALUE *argv, VALUE recv, VALUE proc, int kw_splat); +int rb_mod_method_arity(VALUE mod, ID mid); +int rb_obj_method_arity(VALUE obj, ID mid); +__attribute__((__nonnull__ (1))) +VALUE rb_protect(VALUE (*func)(VALUE args), VALUE args, int *state); +__attribute__((__nonnull__ (2, 3))) +int rb_scan_args(int argc, const VALUE *argv, const char *fmt, ...); +__attribute__((__nonnull__ (3, 4))) +int rb_scan_args_kw(int kw_splat, int argc, const VALUE *argv, const char *fmt, ...); +__attribute__((__error__ ("bad scan arg format"))) +void rb_scan_args_bad_format(const char*); +__attribute__((__error__ ("variable argument length doesn't match"))) +void rb_scan_args_length_mismatch(const char*,int); +static inline _Bool +rb_scan_args_keyword_p(int kw_flag, VALUE last) +{ + switch (kw_flag) { + case 0: + return !! rb_keyword_given_p(); + case 1: + return 1; + case 3: + return (__builtin_constant_p(RUBY_T_HASH) ? rbimpl_RB_TYPE_P_fastpath((last), (RUBY_T_HASH)) : (RB_TYPE_P)((last), (RUBY_T_HASH))); + default: + return 0; + } +} +__attribute__((__always_inline__)) inline +static _Bool +rb_scan_args_lead_p(const char *fmt) +{ + return (((unsigned char)((fmt[0])-'0'))<10); +} +__attribute__((__always_inline__)) inline +static int +rb_scan_args_n_lead(const char *fmt) +{ + return (rb_scan_args_lead_p(fmt) ? fmt[0]-'0' : 0); +} +__attribute__((__always_inline__)) inline +static _Bool +rb_scan_args_opt_p(const char *fmt) +{ + return (rb_scan_args_lead_p(fmt) && (((unsigned char)((fmt[1])-'0'))<10)); +} +__attribute__((__always_inline__)) inline +static int +rb_scan_args_n_opt(const char *fmt) +{ + return (rb_scan_args_opt_p(fmt) ? fmt[1]-'0' : 0); +} +__attribute__((__always_inline__)) inline +static int +rb_scan_args_var_idx(const char *fmt) +{ + return (!rb_scan_args_lead_p(fmt) ? 0 : !(((unsigned char)((fmt[1])-'0'))<10) ? 1 : 2); +} +__attribute__((__always_inline__)) inline +static _Bool +rb_scan_args_f_var(const char *fmt) +{ + return (fmt[rb_scan_args_var_idx(fmt)]=='*'); +} +__attribute__((__always_inline__)) inline +static int +rb_scan_args_trail_idx(const char *fmt) +{ + const int idx = rb_scan_args_var_idx(fmt); + return idx+(fmt[idx]=='*'); +} +__attribute__((__always_inline__)) inline +static int +rb_scan_args_n_trail(const char *fmt) +{ + const int idx = rb_scan_args_trail_idx(fmt); + return ((((unsigned char)((fmt[idx])-'0'))<10) ? fmt[idx]-'0' : 0); +} +__attribute__((__always_inline__)) inline +static int +rb_scan_args_hash_idx(const char *fmt) +{ + const int idx = rb_scan_args_trail_idx(fmt); + return idx+(((unsigned char)((fmt[idx])-'0'))<10); +} +__attribute__((__always_inline__)) inline +static _Bool +rb_scan_args_f_hash(const char *fmt) +{ + return (fmt[rb_scan_args_hash_idx(fmt)]==':'); +} +__attribute__((__always_inline__)) inline +static int +rb_scan_args_block_idx(const char *fmt) +{ + const int idx = rb_scan_args_hash_idx(fmt); + return idx+(fmt[idx]==':'); +} +__attribute__((__always_inline__)) inline +static _Bool +rb_scan_args_f_block(const char *fmt) +{ + return (fmt[rb_scan_args_block_idx(fmt)]=='&'); +} +__attribute__((__always_inline__)) inline +static int +rb_scan_args_set(int kw_flag, int argc, const VALUE *argv, + int n_lead, int n_opt, int n_trail, + _Bool f_var, _Bool f_hash, _Bool f_block, + VALUE *vars[], const char *fmt __attribute__((__unused__)), int varc __attribute__((__unused__))) + __attribute__((__diagnose_if__((!(((unsigned char)(((fmt)[0])-'0'))<10) ? ((fmt)[0]!='*' ? (!(((unsigned char)(((fmt)[0])-'0'))<10) ? ((fmt)[0]!=':' ? ((fmt)[0]!='&' ? ((fmt)[0] ? -1 : (0)) : ((fmt)[(0)+1] ? -1 : ((0)+1))) : ((fmt)[(0)+1]!='&' ? ((fmt)[(0)+1] ? -1 : ((0)+1)) : ((fmt)[((0)+1)+1] ? -1 : (((0)+1)+1)))) : ((fmt)[(0)+1]!=':' ? ((fmt)[(0)+1]!='&' ? ((fmt)[(0)+1] ? -1 : ((0)+((fmt)[0]-'0'))) : ((fmt)[((0)+1)+1] ? -1 : (((0)+((fmt)[0]-'0'))+1))) : ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+((fmt)[0]-'0'))+1)) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+((fmt)[0]-'0'))+1)+1))))) : (!(((unsigned char)(((fmt)[(0)+1])-'0'))<10) ? ((fmt)[(0)+1]!=':' ? ((fmt)[(0)+1]!='&' ? ((fmt)[(0)+1] ? -1 : ((0)+1)) : ((fmt)[((0)+1)+1] ? -1 : (((0)+1)+1))) : ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+1)+1)) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+1)+1)+1)))) : ((fmt)[((0)+1)+1]!=':' ? ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+1)+((fmt)[(0)+1]-'0'))) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+1)+((fmt)[(0)+1]-'0'))+1))) : ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+1)+((fmt)[(0)+1]-'0'))+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+1)+((fmt)[(0)+1]-'0'))+1)+1)))))) : (!(((unsigned char)(((fmt)[(0)+1])-'0'))<10) ? ((fmt)[(0)+1]!='*' ? (!(((unsigned char)(((fmt)[(0)+1])-'0'))<10) ? ((fmt)[(0)+1]!=':' ? ((fmt)[(0)+1]!='&' ? ((fmt)[(0)+1] ? -1 : ((0)+(fmt)[0]-'0')) : ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+1))) : ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+1)) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+1)+1)))) : ((fmt)[((0)+1)+1]!=':' ? ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+((fmt)[(0)+1]-'0'))) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+((fmt)[(0)+1]-'0'))+1))) : ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+((fmt)[(0)+1]-'0'))+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+((fmt)[(0)+1]-'0'))+1)+1))))) : (!(((unsigned char)(((fmt)[((0)+1)+1])-'0'))<10) ? ((fmt)[((0)+1)+1]!=':' ? ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+1)) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+1)+1))) : ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+1)+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+1)+1)+1)))) : ((fmt)[(((0)+1)+1)+1]!=':' ? ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+1)+((fmt)[((0)+1)+1]-'0'))) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+1)+((fmt)[((0)+1)+1]-'0'))+1))) : ((fmt)[((((0)+1)+1)+1)+1]!='&' ? ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+1)+((fmt)[((0)+1)+1]-'0'))+1)) : ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+1)+((fmt)[((0)+1)+1]-'0'))+1)+1)))))) : ((fmt)[((0)+1)+1]!='*' ? (!(((unsigned char)(((fmt)[((0)+1)+1])-'0'))<10) ? ((fmt)[((0)+1)+1]!=':' ? ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1))) : ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+1)))) : ((fmt)[(((0)+1)+1)+1]!=':' ? ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+((fmt)[((0)+1)+1]-'0'))) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+((fmt)[((0)+1)+1]-'0'))+1))) : ((fmt)[((((0)+1)+1)+1)+1]!='&' ? ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+((fmt)[((0)+1)+1]-'0'))+1)) : ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+((fmt)[((0)+1)+1]-'0'))+1)+1))))) : (!(((unsigned char)(((fmt)[(((0)+1)+1)+1])-'0'))<10) ? ((fmt)[(((0)+1)+1)+1]!=':' ? ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+1))) : ((fmt)[((((0)+1)+1)+1)+1]!='&' ? ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+1)) : ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+1)+1)))) : ((fmt)[((((0)+1)+1)+1)+1]!=':' ? ((fmt)[((((0)+1)+1)+1)+1]!='&' ? ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+((fmt)[(((0)+1)+1)+1]-'0'))) : ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+((fmt)[(((0)+1)+1)+1]-'0'))+1))) : ((fmt)[(((((0)+1)+1)+1)+1)+1]!='&' ? ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+((fmt)[(((0)+1)+1)+1]-'0'))+1)) : ((fmt)[((((((0)+1)+1)+1)+1)+1)+1] ? -1 : (((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+((fmt)[(((0)+1)+1)+1]-'0'))+1)+1)))))))) < 0, "bad scan arg format", "error"))) + __attribute__((__diagnose_if__((!(((unsigned char)(((fmt)[0])-'0'))<10) ? ((fmt)[0]!='*' ? (!(((unsigned char)(((fmt)[0])-'0'))<10) ? ((fmt)[0]!=':' ? ((fmt)[0]!='&' ? ((fmt)[0] ? -1 : (0)) : ((fmt)[(0)+1] ? -1 : ((0)+1))) : ((fmt)[(0)+1]!='&' ? ((fmt)[(0)+1] ? -1 : ((0)+1)) : ((fmt)[((0)+1)+1] ? -1 : (((0)+1)+1)))) : ((fmt)[(0)+1]!=':' ? ((fmt)[(0)+1]!='&' ? ((fmt)[(0)+1] ? -1 : ((0)+((fmt)[0]-'0'))) : ((fmt)[((0)+1)+1] ? -1 : (((0)+((fmt)[0]-'0'))+1))) : ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+((fmt)[0]-'0'))+1)) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+((fmt)[0]-'0'))+1)+1))))) : (!(((unsigned char)(((fmt)[(0)+1])-'0'))<10) ? ((fmt)[(0)+1]!=':' ? ((fmt)[(0)+1]!='&' ? ((fmt)[(0)+1] ? -1 : ((0)+1)) : ((fmt)[((0)+1)+1] ? -1 : (((0)+1)+1))) : ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+1)+1)) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+1)+1)+1)))) : ((fmt)[((0)+1)+1]!=':' ? ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+1)+((fmt)[(0)+1]-'0'))) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+1)+((fmt)[(0)+1]-'0'))+1))) : ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+1)+((fmt)[(0)+1]-'0'))+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+1)+((fmt)[(0)+1]-'0'))+1)+1)))))) : (!(((unsigned char)(((fmt)[(0)+1])-'0'))<10) ? ((fmt)[(0)+1]!='*' ? (!(((unsigned char)(((fmt)[(0)+1])-'0'))<10) ? ((fmt)[(0)+1]!=':' ? ((fmt)[(0)+1]!='&' ? ((fmt)[(0)+1] ? -1 : ((0)+(fmt)[0]-'0')) : ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+1))) : ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+1)) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+1)+1)))) : ((fmt)[((0)+1)+1]!=':' ? ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+((fmt)[(0)+1]-'0'))) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+((fmt)[(0)+1]-'0'))+1))) : ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+((fmt)[(0)+1]-'0'))+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+((fmt)[(0)+1]-'0'))+1)+1))))) : (!(((unsigned char)(((fmt)[((0)+1)+1])-'0'))<10) ? ((fmt)[((0)+1)+1]!=':' ? ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+1)) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+1)+1))) : ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+1)+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+1)+1)+1)))) : ((fmt)[(((0)+1)+1)+1]!=':' ? ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+1)+((fmt)[((0)+1)+1]-'0'))) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+1)+((fmt)[((0)+1)+1]-'0'))+1))) : ((fmt)[((((0)+1)+1)+1)+1]!='&' ? ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+1)+((fmt)[((0)+1)+1]-'0'))+1)) : ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+1)+((fmt)[((0)+1)+1]-'0'))+1)+1)))))) : ((fmt)[((0)+1)+1]!='*' ? (!(((unsigned char)(((fmt)[((0)+1)+1])-'0'))<10) ? ((fmt)[((0)+1)+1]!=':' ? ((fmt)[((0)+1)+1]!='&' ? ((fmt)[((0)+1)+1] ? -1 : (((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')) : ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1))) : ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+1)))) : ((fmt)[(((0)+1)+1)+1]!=':' ? ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+((fmt)[((0)+1)+1]-'0'))) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+((fmt)[((0)+1)+1]-'0'))+1))) : ((fmt)[((((0)+1)+1)+1)+1]!='&' ? ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+((fmt)[((0)+1)+1]-'0'))+1)) : ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+((fmt)[((0)+1)+1]-'0'))+1)+1))))) : (!(((unsigned char)(((fmt)[(((0)+1)+1)+1])-'0'))<10) ? ((fmt)[(((0)+1)+1)+1]!=':' ? ((fmt)[(((0)+1)+1)+1]!='&' ? ((fmt)[(((0)+1)+1)+1] ? -1 : ((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)) : ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+1))) : ((fmt)[((((0)+1)+1)+1)+1]!='&' ? ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+1)) : ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+1)+1)))) : ((fmt)[((((0)+1)+1)+1)+1]!=':' ? ((fmt)[((((0)+1)+1)+1)+1]!='&' ? ((fmt)[((((0)+1)+1)+1)+1] ? -1 : (((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+((fmt)[(((0)+1)+1)+1]-'0'))) : ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+((fmt)[(((0)+1)+1)+1]-'0'))+1))) : ((fmt)[(((((0)+1)+1)+1)+1)+1]!='&' ? ((fmt)[(((((0)+1)+1)+1)+1)+1] ? -1 : ((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+((fmt)[(((0)+1)+1)+1]-'0'))+1)) : ((fmt)[((((((0)+1)+1)+1)+1)+1)+1] ? -1 : (((((((0)+(fmt)[0]-'0')+(fmt)[(0)+1]-'0')+1)+((fmt)[(((0)+1)+1)+1]-'0'))+1)+1)))))))) != varc, "variable argument length doesn't match", "error"))) +{ + int i, argi = 0, vari = 0; + VALUE *var, hash = ((VALUE)RUBY_Qnil); + const int n_mand = n_lead + n_trail; + if (f_hash && argc > 0) { + VALUE last = argv[argc - 1]; + if (rb_scan_args_keyword_p(kw_flag, last)) { + hash = rb_hash_dup(last); + argc--; + } + } + if (argc < n_mand) { + goto argc_error; + } + for (i = 0; i < n_lead; i++) { + var = vars[vari++]; + if (var) *var = argv[argi]; + argi++; + } + for (i = 0; i < n_opt; i++) { + var = vars[vari++]; + if (argi < argc - n_trail) { + if (var) *var = argv[argi]; + argi++; + } + else { + if (var) *var = ((VALUE)RUBY_Qnil); + } + } + if (f_var) { + int n_var = argc - argi - n_trail; + var = vars[vari++]; + if (0 < n_var) { + if (var) *var = rb_ary_new_from_values(n_var, &argv[argi]); + argi += n_var; + } + else { + if (var) *var = rb_ary_new(); + } + } + for (i = 0; i < n_trail; i++) { + var = vars[vari++]; + if (var) *var = argv[argi]; + argi++; + } + if (f_hash) { + var = vars[vari++]; + if (var) *var = hash; + } + if (f_block) { + var = vars[vari++]; + if (rb_block_given_p()) { + *var = rb_block_proc(); + } + else { + *var = ((VALUE)RUBY_Qnil); + } + } + if (argi == argc) { + return argc; + } + argc_error: + rb_error_arity(argc, n_mand, f_var ? (-1) : n_mand + n_opt); + __builtin_unreachable(); +} + + +ID rb_sym2id(VALUE obj); +VALUE rb_id2sym(ID id); +__attribute__((__nonnull__ ())) +ID rb_intern(const char *name); +ID rb_intern2(const char *name, long len); +ID rb_intern_str(VALUE str); +const char *rb_id2name(ID id); +__attribute__((__nonnull__ ())) +ID rb_check_id(volatile VALUE *namep); +ID rb_to_id(VALUE str); +VALUE rb_id2str(ID id); +VALUE rb_sym2str(VALUE id); +VALUE rb_to_symbol(VALUE name); +__attribute__((__nonnull__ ())) +VALUE rb_check_symbol(volatile VALUE *namep); +__attribute__((__pure__)) +__attribute__((__nonnull__ ())) +static inline ID +rb_intern_const(const char *str) +{ + size_t len = strlen(str); + return rb_intern2(str, ((long)len)); +} +__declspec(noalias) +__attribute__((__nonnull__ ())) +static inline ID +rbimpl_intern_const(ID *ptr, const char *str) +{ + while (! *ptr) { + *ptr = rb_intern_const(str); + } + return *ptr; +} + +typedef VALUE rb_gvar_getter_t(ID id, VALUE *data); +typedef void rb_gvar_setter_t(VALUE val, ID id, VALUE *data); +typedef void rb_gvar_marker_t(VALUE *var); +rb_gvar_getter_t rb_gvar_undef_getter; +rb_gvar_setter_t rb_gvar_undef_setter; +rb_gvar_marker_t rb_gvar_undef_marker; +rb_gvar_getter_t rb_gvar_val_getter; +rb_gvar_setter_t rb_gvar_val_setter; +rb_gvar_marker_t rb_gvar_val_marker; +rb_gvar_getter_t rb_gvar_var_getter; +rb_gvar_setter_t rb_gvar_var_setter; +rb_gvar_marker_t rb_gvar_var_marker; +__declspec(noreturn) +rb_gvar_setter_t rb_gvar_readonly_setter; +__attribute__((__nonnull__ ())) +void rb_define_variable(const char *name, VALUE *var); +__attribute__((__nonnull__ (1))) +void rb_define_virtual_variable(const char *name, rb_gvar_getter_t *getter, rb_gvar_setter_t *setter); +__attribute__((__nonnull__ (1))) +void rb_define_hooked_variable(const char *name, VALUE *var, rb_gvar_getter_t *getter, rb_gvar_setter_t *setter); +__attribute__((__nonnull__ ())) +void rb_define_readonly_variable(const char *name, const VALUE *var); +__attribute__((__nonnull__ ())) +void rb_define_const(VALUE klass, const char *name, VALUE val); +__attribute__((__nonnull__ ())) +void rb_define_global_const(const char *name, VALUE val); +__attribute__((__nonnull__ ())) +void rb_deprecate_constant(VALUE mod, const char *name); +__attribute__((__nonnull__ ())) +VALUE rb_gv_set(const char *name, VALUE val); +__attribute__((__nonnull__ ())) +VALUE rb_gv_get(const char *name); +__attribute__((__nonnull__ ())) +VALUE rb_iv_get(VALUE obj, const char *name); +__attribute__((__nonnull__ ())) +VALUE rb_iv_set(VALUE obj, const char *name, VALUE val); + +VALUE rb_get_path(VALUE obj); +VALUE rb_get_path_no_checksafe(VALUE); +__attribute__((__error__ (" argument length doesn't match"))) int rb_varargs_bad_length(int,int); +const char *rb_class2name(VALUE klass); +const char *rb_obj_classname(VALUE obj); +void rb_p(VALUE obj); +VALUE rb_equal(VALUE lhs, VALUE rhs); +VALUE rb_require(const char *feature); + + +VALUE rb_big_new(size_t len, int sign); +int rb_bigzero_p(VALUE x); +VALUE rb_big_clone(VALUE num); +void rb_big_2comp(VALUE num); +VALUE rb_big_norm(VALUE x); +void rb_big_resize(VALUE big, size_t len); +__attribute__((__nonnull__ ())) +VALUE rb_cstr_to_inum(const char *str, int base, int badcheck); +VALUE rb_str_to_inum(VALUE str, int base, int badcheck); +__attribute__((__nonnull__ ())) +VALUE rb_cstr2inum(const char *str, int base); +VALUE rb_str2inum(VALUE str, int base); +VALUE rb_big2str(VALUE x, int base); +long rb_big2long(VALUE x); +unsigned long rb_big2ulong(VALUE x); + long long + rb_big2ll(VALUE); +unsigned + long long + rb_big2ull(VALUE); +__attribute__((__nonnull__ ())) +void rb_big_pack(VALUE val, unsigned long *buf, long num_longs); +__attribute__((__nonnull__ ())) +VALUE rb_big_unpack(unsigned long *buf, long num_longs); +__attribute__((__nonnull__ ())) +int rb_uv_to_utf8(char buf[6], unsigned long uv); +VALUE rb_dbl2big(double d); +double rb_big2dbl(VALUE x); +VALUE rb_big_cmp(VALUE lhs, VALUE rhs); +VALUE rb_big_eq(VALUE lhs, VALUE rhs); +VALUE rb_big_eql(VALUE lhs, VALUE rhs); +VALUE rb_big_plus(VALUE x, VALUE y); +VALUE rb_big_minus(VALUE x, VALUE y); +VALUE rb_big_mul(VALUE x, VALUE y); +VALUE rb_big_div(VALUE x, VALUE y); +VALUE rb_big_idiv(VALUE x, VALUE y); +VALUE rb_big_modulo(VALUE x, VALUE y); +VALUE rb_big_divmod(VALUE x, VALUE y); +VALUE rb_big_pow(VALUE x, VALUE y); +VALUE rb_big_and(VALUE x, VALUE y); +VALUE rb_big_or(VALUE x, VALUE y); +VALUE rb_big_xor(VALUE x, VALUE y); +VALUE rb_big_lshift(VALUE x, VALUE y); +VALUE rb_big_rshift(VALUE x, VALUE y); +__attribute__((__nonnull__ ())) +int rb_integer_pack(VALUE val, void *words, size_t numwords, size_t wordsize, size_t nails, int flags); +__attribute__((__nonnull__ ())) +VALUE rb_integer_unpack(const void *words, size_t numwords, size_t wordsize, size_t nails, int flags); +size_t rb_absint_size(VALUE val, int *nlz_bits_ret); +size_t rb_absint_numwords(VALUE val, size_t word_numbits, size_t *nlz_bits_ret); +int rb_absint_singlebit_p(VALUE val); + + +int rb_cmpint(VALUE val, VALUE a, VALUE b); +__attribute__((__cold__)) +__declspec(noreturn) +void rb_cmperr(VALUE a, VALUE b); + +VALUE rb_complex_raw(VALUE real, VALUE imag); +VALUE rb_complex_new(VALUE real, VALUE imag); +VALUE rb_complex_new_polar(VALUE abs, VALUE arg); +__attribute__((__deprecated__ ("by: rb_complex_new_polar"))) +VALUE rb_complex_polar(VALUE abs, VALUE arg); +__attribute__((__pure__)) +VALUE rb_complex_real(VALUE z); +__attribute__((__pure__)) +VALUE rb_complex_imag(VALUE z); +VALUE rb_complex_plus(VALUE x, VALUE y); +VALUE rb_complex_minus(VALUE x, VALUE y); +VALUE rb_complex_mul(VALUE x, VALUE y); +VALUE rb_complex_div(VALUE x, VALUE y); +VALUE rb_complex_uminus(VALUE z); +VALUE rb_complex_conjugate(VALUE z); +VALUE rb_complex_abs(VALUE z); +VALUE rb_complex_arg(VALUE z); +VALUE rb_complex_pow(VALUE base, VALUE exp); +VALUE rb_dbl_complex_new(double real, double imag); +VALUE rb_Complex(VALUE real, VALUE imag); + +VALUE rb_fiber_new(rb_block_call_func_t func, VALUE callback_obj); +VALUE rb_fiber_new_storage(rb_block_call_func_t func, VALUE callback_obj, VALUE storage); +VALUE rb_fiber_current(void); +VALUE rb_fiber_alive_p(VALUE fiber); +VALUE rb_obj_is_fiber(VALUE obj); +VALUE rb_fiber_resume(VALUE fiber, int argc, const VALUE *argv); +VALUE rb_fiber_resume_kw(VALUE fiber, int argc, const VALUE *argv, int kw_splat); +VALUE rb_fiber_yield(int argc, const VALUE *argv); +VALUE rb_fiber_yield_kw(int argc, const VALUE *argv, int kw_splat); +VALUE rb_fiber_transfer(VALUE fiber, int argc, const VALUE *argv); +VALUE rb_fiber_transfer_kw(VALUE fiber, int argc, const VALUE *argv, int kw_splat); +VALUE rb_fiber_raise(VALUE fiber, int argc, const VALUE *argv); + +VALUE rb_dir_getwd(void); + +VALUE rb_enum_values_pack(int argc, const VALUE *argv); + + +__declspec(noreturn) +void rb_exc_raise(VALUE exc); +__declspec(noreturn) +void rb_exc_fatal(VALUE exc); +__declspec(noreturn) +VALUE rb_f_exit(int argc, const VALUE *argv); +__declspec(noreturn) +VALUE rb_f_abort(int argc, const VALUE *argv); +__declspec(noreturn) +void rb_interrupt(void); +ID rb_frame_this_func(void); +__declspec(noreturn) +void rb_jump_tag(int state); +void rb_obj_call_init(VALUE obj, int argc, const VALUE *argv); +void rb_obj_call_init_kw(VALUE, int, const VALUE*, int); +ID rb_frame_callee(void); +VALUE rb_make_exception(int argc, const VALUE *argv); +void rb_set_end_proc(void (*func)(VALUE arg), VALUE arg); +typedef VALUE rb_enumerator_size_func(VALUE recv, VALUE argv, VALUE eobj); +typedef struct { + VALUE begin; + VALUE end; + VALUE step; + int exclude_end; +} rb_arithmetic_sequence_components_t; +VALUE rb_enumeratorize(VALUE recv, VALUE meth, int argc, const VALUE *argv); +VALUE rb_enumeratorize_with_size(VALUE recv, VALUE meth, int argc, const VALUE *argv, rb_enumerator_size_func *func); +VALUE rb_enumeratorize_with_size_kw(VALUE recv, VALUE meth, int argc, const VALUE *argv, rb_enumerator_size_func *func, int kw_splat); +__attribute__((__nonnull__ ())) +int rb_arithmetic_sequence_extract(VALUE as, rb_arithmetic_sequence_components_t *buf); +__attribute__((__nonnull__ ())) +VALUE rb_arithmetic_sequence_beg_len_step(VALUE as, long *begp, long *lenp, long *stepp, long len, int err); + +__attribute__((__nonnull__ ())) +VALUE rb_file_s_expand_path(int argc, const VALUE *argv); +VALUE rb_file_expand_path(VALUE fname, VALUE dname); +__attribute__((__nonnull__ ())) +VALUE rb_file_s_absolute_path(int argc, const VALUE *argv); +VALUE rb_file_absolute_path(VALUE fname, VALUE dname); +VALUE rb_file_dirname(VALUE fname); +__attribute__((__nonnull__ ())) +int rb_find_file_ext(VALUE *feature, const char *const *exts); +VALUE rb_find_file(VALUE path); +VALUE rb_file_directory_p(VALUE _, VALUE path); +VALUE rb_str_encode_ospath(VALUE path); +__attribute__((__nonnull__ ())) +__attribute__((__pure__)) +int rb_is_absolute_path(const char *path); +off_t rb_file_size(VALUE file); + +__attribute__((__cold__)) +__declspec(noreturn) +void rb_memerror(void); +__attribute__((__pure__)) +int rb_during_gc(void); +__attribute__((__nonnull__ (1))) +void rb_gc_mark_locations(const VALUE *start, const VALUE *end); +void rb_mark_tbl(struct st_table *tbl); +void rb_mark_tbl_no_pin(struct st_table *tbl); +void rb_mark_set(struct st_table *tbl); +void rb_mark_hash(struct st_table *tbl); +void rb_gc_update_tbl_refs(st_table *ptr); +void rb_gc_mark_maybe(VALUE obj); +void rb_gc_mark(VALUE obj); +void rb_gc_mark_movable(VALUE obj); +VALUE rb_gc_location(VALUE obj); +__attribute__((__deprecated__ ("this is now a no-op function"))) +void rb_gc_force_recycle(VALUE obj); +void rb_gc(void); +void rb_gc_copy_finalizer(VALUE dst, VALUE src); +VALUE rb_gc_enable(void); +VALUE rb_gc_disable(void); +VALUE rb_gc_start(void); +VALUE rb_define_finalizer(VALUE obj, VALUE block); +VALUE rb_undefine_finalizer(VALUE obj); +size_t rb_gc_count(void); +size_t rb_gc_stat(VALUE key_or_buf); +VALUE rb_gc_latest_gc_info(VALUE key_or_buf); +void rb_gc_adjust_memory_usage(ssize_t diff); + + +extern VALUE rb_fs; +extern VALUE rb_output_fs; +extern VALUE rb_rs; +extern VALUE rb_default_rs; +extern VALUE rb_output_rs; +VALUE rb_io_write(VALUE io, VALUE str); +VALUE rb_io_gets(VALUE io); +VALUE rb_io_getbyte(VALUE io); +VALUE rb_io_ungetc(VALUE io, VALUE c); +VALUE rb_io_ungetbyte(VALUE io, VALUE b); +VALUE rb_io_close(VALUE io); +VALUE rb_io_flush(VALUE io); +VALUE rb_io_eof(VALUE io); +VALUE rb_io_binmode(VALUE io); +VALUE rb_io_ascii8bit_binmode(VALUE io); +VALUE rb_io_addstr(VALUE io, VALUE str); +VALUE rb_io_printf(int argc, const VALUE *argv, VALUE io); +VALUE rb_io_print(int argc, const VALUE *argv, VALUE io); +VALUE rb_io_puts(int argc, const VALUE *argv, VALUE io); +VALUE rb_io_fdopen(int fd, int flags, const char *path); +__attribute__((__nonnull__ ())) +VALUE rb_file_open(const char *fname, const char *fmode); +__attribute__((__nonnull__ ())) +VALUE rb_file_open_str(VALUE fname, const char *fmode); +VALUE rb_gets(void); +__attribute__((__nonnull__ ())) +void rb_write_error(const char *str); +void rb_write_error2(const char *str, long len); +void rb_close_before_exec(int lowfd, int maxhint, VALUE noclose_fds); +__attribute__((__nonnull__ ())) +int rb_pipe(int *pipes); +int rb_reserved_fd_p(int fd); +int rb_cloexec_open(const char *pathname, int flags, mode_t mode); +int rb_cloexec_dup(int oldfd); +int rb_cloexec_dup2(int oldfd, int newfd); +__attribute__((__nonnull__ ())) +int rb_cloexec_pipe(int fildes[2]); +int rb_cloexec_fcntl_dupfd(int fd, int minfd); +void rb_update_max_fd(int fd); +void rb_fd_fix_cloexec(int fd); + +void rb_load(VALUE path, int wrap); +void rb_load_protect(VALUE path, int wrap, int *state); +__attribute__((__nonnull__ ())) +int rb_provided(const char *feature); +__attribute__((__nonnull__ (1))) +int rb_feature_provided(const char *feature, const char **loading); +__attribute__((__nonnull__ ())) +void rb_provide(const char *feature); +VALUE rb_f_require(VALUE self, VALUE feature); +VALUE rb_require_string(VALUE feature); +void rb_ext_ractor_safe(_Bool flag); + +VALUE rb_marshal_dump(VALUE obj, VALUE port); +VALUE rb_marshal_load(VALUE port); +void rb_marshal_define_compat(VALUE newclass, VALUE oldclass, VALUE (*dumper)(VALUE), VALUE (*loader)(VALUE, VALUE)); + +__declspec(noreturn) +__attribute__((__cold__)) +void rb_num_zerodiv(void); +VALUE rb_num_coerce_bin(VALUE lhs, VALUE rhs, ID op); +VALUE rb_num_coerce_cmp(VALUE lhs, VALUE rhs, ID op); +VALUE rb_num_coerce_relop(VALUE lhs, VALUE rhs, ID op); +VALUE rb_num_coerce_bit(VALUE lhs, VALUE rhs, ID op); +VALUE rb_num2fix(VALUE val); +VALUE rb_fix2str(VALUE val, int base); +__attribute__((__const__)) +VALUE rb_dbl_cmp(double lhs, double rhs); +extern VALUE rb_int_positive_pow(long x, unsigned long y); + +VALUE rb_class_new_instance_pass_kw(int argc, const VALUE *argv, VALUE klass); +VALUE rb_class_new_instance(int argc, const VALUE *argv, VALUE klass); +VALUE rb_class_new_instance_kw(int argc, const VALUE *argv, VALUE klass, int kw_splat); +int rb_eql(VALUE lhs, VALUE rhs); +VALUE rb_any_to_s(VALUE obj); +VALUE rb_inspect(VALUE obj); +VALUE rb_obj_is_instance_of(VALUE obj, VALUE klass); +VALUE rb_obj_is_kind_of(VALUE obj, VALUE klass); +VALUE rb_obj_alloc(VALUE klass); +VALUE rb_obj_clone(VALUE obj); +VALUE rb_obj_dup(VALUE obj); +VALUE rb_obj_init_copy(VALUE src, VALUE dst); +VALUE rb_obj_freeze(VALUE obj); +__attribute__((__pure__)) +VALUE rb_obj_frozen_p(VALUE obj); +VALUE rb_obj_id(VALUE obj); +__attribute__((__const__)) +VALUE rb_memory_id(VALUE obj); +__attribute__((__pure__)) +VALUE rb_class_real(VALUE klass); +__attribute__((__pure__)) +VALUE rb_class_inherited_p(VALUE scion, VALUE ascendant); +__attribute__((__pure__)) +VALUE rb_class_superclass(VALUE klass); +__attribute__((__nonnull__ ())) +VALUE rb_convert_type(VALUE val, int type, const char *name, const char *mid); +__attribute__((__nonnull__ ())) +VALUE rb_check_convert_type(VALUE val, int type, const char *name, const char *mid); +__attribute__((__nonnull__ ())) +VALUE rb_check_to_integer(VALUE val, const char *mid); +VALUE rb_check_to_float(VALUE val); +VALUE rb_to_int(VALUE val); +VALUE rb_check_to_int(VALUE val); +VALUE rb_Integer(VALUE val); +VALUE rb_to_float(VALUE val); +VALUE rb_Float(VALUE val); +VALUE rb_String(VALUE val); +VALUE rb_Array(VALUE val); +VALUE rb_Hash(VALUE val); +__attribute__((__nonnull__ ())) +double rb_cstr_to_dbl(const char *str, int mode); +double rb_str_to_dbl(VALUE str, int mode); + +ID rb_id_attrset(ID id); +__attribute__((__const__)) +int rb_is_const_id(ID id); +__attribute__((__const__)) +int rb_is_global_id(ID id); +__attribute__((__const__)) +int rb_is_instance_id(ID id); +__attribute__((__const__)) +int rb_is_attrset_id(ID id); +__attribute__((__const__)) +int rb_is_class_id(ID id); +__attribute__((__const__)) +int rb_is_local_id(ID id); +__attribute__((__const__)) +int rb_is_junk_id(ID); +__attribute__((__nonnull__ ())) +int rb_symname_p(const char *str); +VALUE rb_backref_get(void); +void rb_backref_set(VALUE md); +VALUE rb_lastline_get(void); +void rb_lastline_set(VALUE str); +VALUE rb_sym_all_symbols(void); + + +void rb_last_status_set(int status, pid_t pid); +VALUE rb_last_status_get(void); +__attribute__((__nonnull__ ())) +int rb_proc_exec(const char *cmd); +__declspec(noreturn) +VALUE rb_f_exec(int argc, const VALUE *argv); +pid_t rb_waitpid(pid_t pid, int *status, int flags); +void rb_syswait(pid_t pid); +pid_t rb_spawn(int argc, const VALUE *argv); +pid_t rb_spawn_err(int argc, const VALUE *argv, char *errbuf, size_t buflen); +VALUE rb_proc_times(VALUE _); +VALUE rb_detach_process(pid_t pid); + +unsigned int rb_genrand_int32(void); +double rb_genrand_real(void); +void rb_reset_random_seed(void); +VALUE rb_random_bytes(VALUE rnd, long n); +unsigned int rb_random_int32(VALUE rnd); +double rb_random_real(VALUE rnd); +unsigned long rb_random_ulong_limited(VALUE rnd, unsigned long limit); +unsigned long rb_genrand_ulong_limited(unsigned long i); + +VALUE rb_range_new(VALUE beg, VALUE end, int excl); +__attribute__((__nonnull__ ())) +VALUE rb_range_beg_len(VALUE range, long *begp, long *lenp, long len, int err); +__attribute__((__nonnull__ ())) +int rb_range_values(VALUE range, VALUE *begp, VALUE *endp, int *exclp); + +VALUE rb_rational_raw(VALUE num, VALUE den); +VALUE rb_rational_new(VALUE num, VALUE den); +VALUE rb_Rational(VALUE num, VALUE den); +__attribute__((__pure__)) +VALUE rb_rational_num(VALUE rat); +__attribute__((__pure__)) +VALUE rb_rational_den(VALUE rat); +VALUE rb_flt_rationalize_with_prec(VALUE flt, VALUE prec); +VALUE rb_flt_rationalize(VALUE flt); + +int rb_memcicmp(const void *s1,const void *s2, long n); +void rb_match_busy(VALUE md); +VALUE rb_reg_nth_defined(int n, VALUE md); +VALUE rb_reg_nth_match(int n, VALUE md); +int rb_reg_backref_number(VALUE match, VALUE backref); +VALUE rb_reg_last_match(VALUE md); +VALUE rb_reg_match_pre(VALUE md); +VALUE rb_reg_match_post(VALUE md); +VALUE rb_reg_match_last(VALUE md); +VALUE rb_reg_new_str(VALUE src, int opts); +__attribute__((__nonnull__ ())) +VALUE rb_reg_new(const char *src, long len, int opts); +VALUE rb_reg_alloc(void); +VALUE rb_reg_init_str(VALUE re, VALUE s, int options); +VALUE rb_reg_match(VALUE re, VALUE str); +VALUE rb_reg_match2(VALUE re); +int rb_reg_options(VALUE re); + +extern VALUE rb_argv0; +VALUE rb_get_argv(void); +__attribute__((__nonnull__ ())) +void *rb_load_file(const char *file); +void *rb_load_file_str(VALUE file); + + +struct timeval; +typedef struct { + int maxfd; + fd_set *fdset; +} rb_fdset_t; +__attribute__((__nonnull__ ())) +void rb_fd_init(rb_fdset_t *f); +__attribute__((__nonnull__ ())) +void rb_fd_term(rb_fdset_t *f); +__attribute__((__nonnull__ ())) +void rb_fd_zero(rb_fdset_t *f); +__attribute__((__nonnull__ ())) +void rb_fd_set(int fd, rb_fdset_t *f); +__attribute__((__nonnull__ ())) +void rb_fd_clr(int fd, rb_fdset_t *f); +__attribute__((__nonnull__ ())) +__attribute__((__pure__)) +int rb_fd_isset(int fd, const rb_fdset_t *f); +void rb_fd_copy(rb_fdset_t *dst, const fd_set *src, int max); +void rb_fd_dup(rb_fdset_t *dst, const rb_fdset_t *src); +int rb_fd_select(int nfds, rb_fdset_t *rfds, rb_fdset_t *wfds, rb_fdset_t *efds, struct timeval *timeout); +__attribute__((__nonnull__ ())) +__attribute__((__pure__)) +static inline fd_set * +rb_fd_ptr(const rb_fdset_t *f) +{ + return f->fdset; +} +__attribute__((__nonnull__ ())) +__attribute__((__pure__)) +static inline int +rb_fd_max(const rb_fdset_t *f) +{ + return f->maxfd; +} +struct timeval; +int rb_thread_fd_select(int nfds, rb_fdset_t *rfds, rb_fdset_t *wfds, rb_fdset_t *efds, struct timeval *timeout); + +__attribute__((__nonnull__ ())) +VALUE rb_f_kill(int argc, const VALUE *argv); +void (*ruby_posix_signal(int, void (*)(int)))(int); +__attribute__((__pure__)) +const char *ruby_signal_name(int signo); +void ruby_default_signal(int sig); + +VALUE rb_f_sprintf(int argc, const VALUE *argv); +__attribute__((__nonnull__ (1))) +__attribute__((__format__(__printf__, 1, 2))) +VALUE rb_sprintf(const char *fmt, ...); +__attribute__((__nonnull__ (1))) +__attribute__((__format__(__printf__, 1, 0))) +VALUE rb_vsprintf(const char *fmt, va_list ap); +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 3))) +VALUE rb_str_catf(VALUE dst, const char *fmt, ...); +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 0))) +VALUE rb_str_vcatf(VALUE dst, const char *fmt, va_list ap); +VALUE rb_str_format(int argc, const VALUE *argv, VALUE fmt); + +VALUE rb_str_new(const char *ptr, long len); +VALUE rb_str_new_cstr(const char *ptr); +VALUE rb_str_new_shared(VALUE str); +VALUE rb_str_new_frozen(VALUE str); +VALUE rb_str_new_with_class(VALUE obj, const char *ptr, long len); +VALUE rb_external_str_new(const char *ptr, long len); +__attribute__((__nonnull__ ())) +VALUE rb_external_str_new_cstr(const char *ptr); +VALUE rb_locale_str_new(const char *ptr, long len); +__attribute__((__nonnull__ ())) +VALUE rb_locale_str_new_cstr(const char *ptr); +VALUE rb_filesystem_str_new(const char *ptr, long len); +__attribute__((__nonnull__ ())) +VALUE rb_filesystem_str_new_cstr(const char *ptr); +VALUE rb_str_buf_new(long capa); +__attribute__((__nonnull__ ())) +VALUE rb_str_buf_new_cstr(const char *ptr); +VALUE rb_str_tmp_new(long len); +VALUE rb_usascii_str_new(const char *ptr, long len); +VALUE rb_usascii_str_new_cstr(const char *ptr); +VALUE rb_utf8_str_new(const char *ptr, long len); +VALUE rb_utf8_str_new_cstr(const char *ptr); +VALUE rb_str_new_static(const char *ptr, long len); +VALUE rb_usascii_str_new_static(const char *ptr, long len); +VALUE rb_utf8_str_new_static(const char *ptr, long len); +VALUE rb_str_to_interned_str(VALUE str); +VALUE rb_interned_str(const char *ptr, long len); +__attribute__((__nonnull__ ())) +VALUE rb_interned_str_cstr(const char *ptr); +void rb_str_free(VALUE str); +void rb_str_shared_replace(VALUE dst, VALUE src); +VALUE rb_str_buf_append(VALUE dst, VALUE src); +VALUE rb_str_buf_cat(VALUE, const char*, long); +VALUE rb_str_buf_cat2(VALUE, const char*); +__attribute__((__nonnull__ ())) +VALUE rb_str_buf_cat_ascii(VALUE dst, const char *src); +VALUE rb_obj_as_string(VALUE obj); +VALUE rb_check_string_type(VALUE obj); +void rb_must_asciicompat(VALUE obj); +VALUE rb_str_dup(VALUE str); +VALUE rb_str_resurrect(VALUE str); +VALUE rb_str_locktmp(VALUE str); +VALUE rb_str_unlocktmp(VALUE str); +VALUE rb_str_dup_frozen(VALUE); +VALUE rb_str_plus(VALUE lhs, VALUE rhs); +VALUE rb_str_times(VALUE str, VALUE num); +long rb_str_sublen(VALUE str, long pos); +VALUE rb_str_substr(VALUE str, long beg, long len); +VALUE rb_str_subseq(VALUE str, long beg, long len); +char *rb_str_subpos(VALUE str, long beg, long *len); +void rb_str_modify(VALUE str); +void rb_str_modify_expand(VALUE str, long capa); +VALUE rb_str_freeze(VALUE str); +void rb_str_set_len(VALUE str, long len); +VALUE rb_str_resize(VALUE str, long len); +VALUE rb_str_cat(VALUE dst, const char *src, long srclen); +VALUE rb_str_cat_cstr(VALUE dst, const char *src); +VALUE rb_str_cat2(VALUE, const char*); +VALUE rb_str_append(VALUE dst, VALUE src); +VALUE rb_str_concat(VALUE dst, VALUE src); +st_index_t rb_memhash(const void *ptr, long len); +st_index_t rb_hash_start(st_index_t i); +st_index_t rb_str_hash(VALUE str); +int rb_str_hash_cmp(VALUE str1, VALUE str2); +int rb_str_comparable(VALUE str1, VALUE str2); +int rb_str_cmp(VALUE lhs, VALUE rhs); +VALUE rb_str_equal(VALUE str1, VALUE str2); +VALUE rb_str_drop_bytes(VALUE str, long len); +void rb_str_update(VALUE dst, long beg, long len, VALUE src); +VALUE rb_str_replace(VALUE dst, VALUE src); +VALUE rb_str_inspect(VALUE str); +VALUE rb_str_dump(VALUE str); +VALUE rb_str_split(VALUE str, const char *delim); +rb_gvar_setter_t rb_str_setter; +VALUE rb_str_intern(VALUE str); +VALUE rb_sym_to_s(VALUE sym); +long rb_str_strlen(VALUE str); +VALUE rb_str_length(VALUE); +long rb_str_offset(VALUE str, long pos); +__attribute__((__pure__)) +size_t rb_str_capacity(VALUE str); +VALUE rb_str_ellipsize(VALUE str, long len); +VALUE rb_str_scrub(VALUE str, VALUE repl); +VALUE rb_str_succ(VALUE orig); +__attribute__((__nonnull__ ())) +static inline long +rbimpl_strlen(const char *str) +{ + return ((long)strlen(str)); +} +__attribute__((__nonnull__ ())) +static inline VALUE +rbimpl_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_str_new_static(str, len); +} +__attribute__((__nonnull__ ())) +static inline VALUE +rbimpl_usascii_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_usascii_str_new_static(str, len); +} +__attribute__((__nonnull__ ())) +static inline VALUE +rbimpl_utf8_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_utf8_str_new_static(str, len); +} +__attribute__((__nonnull__ ())) +static inline VALUE +rbimpl_external_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_external_str_new(str, len); +} +__attribute__((__nonnull__ ())) +static inline VALUE +rbimpl_locale_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_locale_str_new(str, len); +} +__attribute__((__nonnull__ ())) +static inline VALUE +rbimpl_str_buf_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + VALUE buf = rb_str_buf_new(len); + return rb_str_buf_cat(buf, str, len); +} +__attribute__((__nonnull__ ())) +static inline VALUE +rbimpl_str_cat_cstr(VALUE buf, const char *str) +{ + long len = rbimpl_strlen(str); + return rb_str_cat(buf, str, len); +} +__attribute__((__nonnull__ ())) +static inline VALUE +rbimpl_exc_new_cstr(VALUE exc, const char *str) +{ + long len = rbimpl_strlen(str); + return rb_exc_new(exc, str, len); +} + +VALUE rb_struct_new(VALUE klass, ...); +VALUE rb_struct_define(const char *name, ...); +__attribute__((__nonnull__ (2))) +VALUE rb_struct_define_under(VALUE space, const char *name, ...); +VALUE rb_struct_alloc(VALUE klass, VALUE values); +VALUE rb_struct_initialize(VALUE self, VALUE values); +VALUE rb_struct_getmember(VALUE self, ID key); +VALUE rb_struct_s_members(VALUE klass); +VALUE rb_struct_members(VALUE self); +VALUE rb_struct_alloc_noinit(VALUE klass); +VALUE rb_struct_define_without_accessor(const char *name, VALUE super, rb_alloc_func_t func, ...); +__attribute__((__nonnull__ (2))) +VALUE rb_struct_define_without_accessor_under(VALUE outer, const char *class_name, VALUE super, rb_alloc_func_t alloc, ...); + +struct timeval; +void rb_thread_schedule(void); +int rb_thread_wait_fd(int fd); +int rb_thread_fd_writable(int fd); +void rb_thread_fd_close(int fd); +int rb_thread_alone(void); +void rb_thread_sleep(int sec); +void rb_thread_sleep_forever(void); +void rb_thread_sleep_deadly(void); +VALUE rb_thread_stop(void); +VALUE rb_thread_wakeup(VALUE thread); +VALUE rb_thread_wakeup_alive(VALUE thread); +VALUE rb_thread_run(VALUE thread); +VALUE rb_thread_kill(VALUE thread); +__attribute__((__nonnull__ (1))) +VALUE rb_thread_create(VALUE (*f)(void *g), void *g); +void rb_thread_wait_for(struct timeval time); +VALUE rb_thread_current(void); +VALUE rb_thread_main(void); +VALUE rb_thread_local_aref(VALUE thread, ID key); +VALUE rb_thread_local_aset(VALUE thread, ID key, VALUE val); +void rb_thread_atfork(void); +void rb_thread_atfork_before_exec(void); +VALUE rb_exec_recursive(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE h); +VALUE rb_exec_recursive_paired(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE p, VALUE h); +VALUE rb_exec_recursive_outer(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE h); +VALUE rb_exec_recursive_paired_outer(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE p, VALUE h); +typedef void rb_unblock_function_t(void *); +typedef VALUE rb_blocking_function_t(void *); +void rb_thread_check_ints(void); +int rb_thread_interrupted(VALUE thval); +VALUE rb_mutex_new(void); +VALUE rb_mutex_locked_p(VALUE mutex); +VALUE rb_mutex_trylock(VALUE mutex); +VALUE rb_mutex_lock(VALUE mutex); +VALUE rb_mutex_unlock(VALUE mutex); +VALUE rb_mutex_sleep(VALUE self, VALUE timeout); +VALUE rb_mutex_synchronize(VALUE mutex, VALUE (*func)(VALUE arg), VALUE arg); + +struct timespec; +struct timeval; +__attribute__((__nonnull__ ())) +void rb_timespec_now(struct timespec *ts); +VALUE rb_time_new(time_t sec, long usec); +VALUE rb_time_nano_new(time_t sec, long nsec); +__attribute__((__nonnull__ ())) +VALUE rb_time_timespec_new(const struct timespec *ts, int offset); +VALUE rb_time_num_new(VALUE timev, VALUE off); +struct timeval rb_time_interval(VALUE num); +struct timeval rb_time_timeval(VALUE time); +struct timespec rb_time_timespec(VALUE time); +struct timespec rb_time_timespec_interval(VALUE num); +VALUE rb_time_utc_offset(VALUE time); + +VALUE rb_mod_name(VALUE mod); +VALUE rb_class_path(VALUE mod); +VALUE rb_class_path_cached(VALUE mod); +__attribute__((__nonnull__ ())) +void rb_set_class_path(VALUE klass, VALUE space, const char *name); +void rb_set_class_path_string(VALUE klass, VALUE space, VALUE name); +VALUE rb_path_to_class(VALUE path); +__attribute__((__nonnull__ ())) +VALUE rb_path2class(const char *path); +VALUE rb_class_name(VALUE obj); +VALUE rb_autoload_load(VALUE space, ID name); +VALUE rb_autoload_p(VALUE space, ID name); +VALUE rb_f_trace_var(int argc, const VALUE *argv); +VALUE rb_f_untrace_var(int argc, const VALUE *argv); +VALUE rb_f_global_variables(void); +void rb_alias_variable(ID dst, ID src); +void rb_free_generic_ivar(VALUE obj); +VALUE rb_ivar_get(VALUE obj, ID name); +VALUE rb_ivar_set(VALUE obj, ID name, VALUE val); +VALUE rb_ivar_defined(VALUE obj, ID name); +void rb_ivar_foreach(VALUE obj, int (*func)(ID name, VALUE val, st_data_t arg), st_data_t arg); +st_index_t rb_ivar_count(VALUE obj); +VALUE rb_attr_get(VALUE obj, ID name); +VALUE rb_obj_instance_variables(VALUE obj); +VALUE rb_obj_remove_instance_variable(VALUE obj, VALUE name); +void *rb_mod_const_at(VALUE, void*); +void *rb_mod_const_of(VALUE, void*); +VALUE rb_const_list(void*); +VALUE rb_mod_constants(int argc, const VALUE *argv, VALUE recv); +VALUE rb_mod_remove_const(VALUE space, VALUE name); +int rb_const_defined(VALUE space, ID name); +int rb_const_defined_at(VALUE space, ID name); +int rb_const_defined_from(VALUE space, ID name); +VALUE rb_const_get(VALUE space, ID name); +VALUE rb_const_get_at(VALUE space, ID name); +VALUE rb_const_get_from(VALUE space, ID name); +void rb_const_set(VALUE space, ID name, VALUE val); +VALUE rb_const_remove(VALUE space, ID name); +VALUE rb_cvar_defined(VALUE klass, ID name); +void rb_cvar_set(VALUE klass, ID name, VALUE val); +VALUE rb_cvar_get(VALUE klass, ID name); +__attribute__((__nonnull__ ())) +VALUE rb_cvar_find(VALUE klass, ID name, VALUE *front); +__attribute__((__nonnull__ ())) +void rb_cv_set(VALUE klass, const char *name, VALUE val); +__attribute__((__nonnull__ ())) +VALUE rb_cv_get(VALUE klass, const char *name); +__attribute__((__nonnull__ ())) +void rb_define_class_variable(VALUE, const char*, VALUE); +VALUE rb_mod_class_variables(int argc, const VALUE *argv, VALUE recv); +VALUE rb_mod_remove_cvar(VALUE mod, VALUE name); +int ruby_native_thread_p(void); +__attribute__((__nonnull__ (3))) +__attribute__((__format__(__printf__, 3, 4))) +int ruby_snprintf(char *str, size_t n, char const *fmt, ...); +__attribute__((__nonnull__ (3))) +__attribute__((__format__(__printf__, 3, 0))) +int ruby_vsnprintf(char *str, size_t n, char const *fmt, va_list ap); + + +extern const char *const sys_signame[32]; +extern const char *const sys_siglist[32]; +int raise(int); +void (* _Nullable bsd_signal(int, void (* _Nullable)(int)))(int); +int kill(pid_t, int) __asm("_" "kill" ); +int killpg(pid_t, int) __asm("_" "killpg" ); +int pthread_kill(pthread_t, int); +int pthread_sigmask(int, const sigset_t *, sigset_t *) __asm("_" "pthread_sigmask" ); +int sigaction(int, const struct sigaction * __restrict__, + struct sigaction * __restrict__); +int sigaddset(sigset_t *, int); +int sigaltstack(const stack_t * __restrict__, stack_t * __restrict__) __asm("_" "sigaltstack" ) __attribute__((availability(watchos,unavailable))) __attribute__((availability(tvos,unavailable))); +int sigdelset(sigset_t *, int); +int sigemptyset(sigset_t *); +int sigfillset(sigset_t *); +int sighold(int); +int sigignore(int); +int siginterrupt(int, int); +int sigismember(const sigset_t *, int); +int sigpause(int) __asm("_" "sigpause" ); +int sigpending(sigset_t *); +int sigprocmask(int, const sigset_t * __restrict__, sigset_t * __restrict__); +int sigrelse(int); +void (* _Nullable sigset(int, void (* _Nullable)(int)))(int); +int sigsuspend(const sigset_t *) __asm("_" "sigsuspend" ); +int sigwait(const sigset_t * __restrict__, int * __restrict__) __asm("_" "sigwait" ); +void psignal(unsigned int, const char *); +int sigblock(int); +int sigsetmask(int); +int sigvec(int, struct sigvec *, struct sigvec *); +inline __attribute__ ((__always_inline__)) int +__sigbits(int __signo) +{ + return __signo > 32 ? 0 : (1 << (__signo - 1)); +} + +typedef int jmp_buf[((9 * 2) + 3 + 16)]; +typedef int sigjmp_buf[((9 * 2) + 3 + 16) + 1]; +extern int setjmp(jmp_buf); +extern void longjmp(jmp_buf, int) __attribute__((__noreturn__)); +int _setjmp(jmp_buf); +void _longjmp(jmp_buf, int) __attribute__((__noreturn__)); +int sigsetjmp(sigjmp_buf, int); +void siglongjmp(sigjmp_buf, int) __attribute__((__noreturn__)); +void longjmperror(void); +static inline char *container_of_or_null_(void *member_ptr, size_t offset) +{ + return member_ptr ? (char *)member_ptr - offset : ((void*)0); +} +struct ccan_list_node +{ + struct ccan_list_node *next, *prev; +}; +struct ccan_list_head +{ + struct ccan_list_node n; +}; +static inline void ccan_list_head_init(struct ccan_list_head *h) +{ + h->n.next = h->n.prev = &h->n; +} +static inline void ccan_list_node_init(struct ccan_list_node *n) +{ + n->next = n->prev = n; +} +static inline void ccan_list_add_after_(struct ccan_list_head *h, + struct ccan_list_node *p, + struct ccan_list_node *n, + const char *abortstr) +{ + n->next = p->next; + n->prev = p; + p->next->prev = n; + p->next = n; + (void)((void)abortstr, h); +} +static inline void ccan_list_add_(struct ccan_list_head *h, + struct ccan_list_node *n, + const char *abortstr) +{ + ccan_list_add_after_(h, &h->n, n, abortstr); +} +static inline void ccan_list_add_before_(struct ccan_list_head *h, + struct ccan_list_node *p, + struct ccan_list_node *n, + const char *abortstr) +{ + n->next = p; + n->prev = p->prev; + p->prev->next = n; + p->prev = n; + (void)((void)abortstr, h); +} +static inline void ccan_list_add_tail_(struct ccan_list_head *h, + struct ccan_list_node *n, + const char *abortstr) +{ + ccan_list_add_before_(h, &h->n, n, abortstr); +} +static inline int ccan_list_empty_(const struct ccan_list_head *h, const char* abortstr) +{ + (void)((void)abortstr, h); + return h->n.next == &h->n; +} +static inline _Bool ccan_list_empty_nocheck(const struct ccan_list_head *h) +{ + return h->n.next == &h->n; +} +static inline void ccan_list_del_(struct ccan_list_node *n, const char* abortstr) +{ + (void)((void)abortstr, n); + n->next->prev = n->prev; + n->prev->next = n->next; +} +static inline void ccan_list_del_init_(struct ccan_list_node *n, const char *abortstr) +{ + ccan_list_del_(n, abortstr); + ccan_list_node_init(n); +} +static inline void ccan_list_del_from(struct ccan_list_head *h, struct ccan_list_node *n) +{ + ((void)0); + ccan_list_del_(n, "./ccan/list/list.h" ":" "329"); +} +static inline void ccan_list_swap_(struct ccan_list_node *o, + struct ccan_list_node *n, + const char* abortstr) +{ + (void)((void)abortstr, o); + *n = *o; + n->next->prev = n; + n->prev->next = n; +} +static inline const void *ccan_list_top_(const struct ccan_list_head *h, size_t off) +{ + if (ccan_list_empty_(h, "./ccan/list/list.h" ":" "399")) + return ((void*)0); + return (const char *)h->n.next - off; +} +static inline const void *ccan_list_pop_(const struct ccan_list_head *h, size_t off) +{ + struct ccan_list_node *n; + if (ccan_list_empty_(h, "./ccan/list/list.h" ":" "425")) + return ((void*)0); + n = h->n.next; + ccan_list_del_(n, "./ccan/list/list.h" ":" "428"); + return (const char *)n - off; +} +static inline const void *ccan_list_tail_(const struct ccan_list_head *h, size_t off) +{ + if (ccan_list_empty_(h, "./ccan/list/list.h" ":" "451")) + return ((void*)0); + return (const char *)h->n.prev - off; +} +static inline void ccan_list_append_list_(struct ccan_list_head *to, + struct ccan_list_head *from, + const char *abortstr) +{ + struct ccan_list_node *from_tail = ((void)abortstr, from)->n.prev; + struct ccan_list_node *to_tail = ((void)abortstr, to)->n.prev; + to->n.prev = from_tail; + from_tail->next = &to->n; + to_tail->next = &from->n; + from->n.prev = to_tail; + ccan_list_del_(&from->n, "./ccan/list/list.h" ":" "600"); + ccan_list_head_init(from); +} +static inline void ccan_list_prepend_list_(struct ccan_list_head *to, + struct ccan_list_head *from, + const char *abortstr) +{ + struct ccan_list_node *from_tail = ((void)abortstr, from)->n.prev; + struct ccan_list_node *to_head = ((void)abortstr, to)->n.next; + to->n.next = &from->n; + from->n.prev = &to->n; + to_head->prev = from_tail; + from_tail->next = to_head; + ccan_list_del_(&from->n, "./ccan/list/list.h" ":" "632"); + ccan_list_head_init(from); +} +static inline void *ccan_list_node_to_off_(struct ccan_list_node *node, size_t off) +{ + return (void *)((char *)node - off); +} +static inline struct ccan_list_node *ccan_list_node_from_off_(void *ptr, size_t off) +{ + return (struct ccan_list_node *)((char *)ptr + off); +} +static inline void *ccan_list_entry_or_null(const struct ccan_list_head *h, + const struct ccan_list_node *n, + size_t off) +{ + if (n == &h->n) + return ((void*)0); + return (char *)n - off; +} +enum ruby_id_types { + RUBY_ID_STATIC_SYM = 0x01, + RUBY_ID_LOCAL = 0x00, + RUBY_ID_INSTANCE = (0x01<<1), + RUBY_ID_GLOBAL = (0x03<<1), + RUBY_ID_ATTRSET = (0x04<<1), + RUBY_ID_CONST = (0x05<<1), + RUBY_ID_CLASS = (0x06<<1), + RUBY_ID_JUNK = (0x07<<1), + RUBY_ID_INTERNAL = RUBY_ID_JUNK, + RUBY_ID_SCOPE_SHIFT = 4, + RUBY_ID_SCOPE_MASK = (~(~0U<<(RUBY_ID_SCOPE_SHIFT-1))<<1) +}; +enum ruby_method_ids { + idDot2 = 128, + idDot3 = 129, + idUPlus = 132, + idUMinus = 133, + idPow = 134, + idCmp = 135, + idPLUS = '+', + idMINUS = '-', + idMULT = '*', + idDIV = '/', + idMOD = '%', + idLTLT = 136, + idGTGT = 137, + idLT = '<', + idLE = 138, + idGT = '>', + idGE = 139, + idEq = 140, + idEqq = 141, + idNeq = 142, + idNot = '!', + idAnd = '&', + idOr = '|', + idBackquote = '`', + idEqTilde = 143, + idNeqTilde = 144, + idAREF = 145, + idASET = 146, + idCOLON2 = 147, + idANDOP = 148, + idOROP = 149, + idANDDOT = 150, + tPRESERVED_ID_BEGIN = 150, + idNilP, + idNULL, + idEmptyP, + idEqlP, + idRespond_to, + idRespond_to_missing, + idIFUNC, + idCFUNC, + id_core_set_method_alias, + id_core_set_variable_alias, + id_core_undef_method, + id_core_define_method, + id_core_define_singleton_method, + id_core_set_postexe, + id_core_hash_merge_ptr, + id_core_hash_merge_kwd, + id_core_raise, + id_core_sprintf, + id_debug_created_info, + tPRESERVED_ID_END, + tTOKEN_LOCAL_BEGIN = tPRESERVED_ID_END-1, + tMax, + tMin, + tFreeze, + tInspect, + tIntern, + tObject_id, + tConst_added, + tConst_missing, + tMethodMissing, + tMethod_added, + tSingleton_method_added, + tMethod_removed, + tSingleton_method_removed, + tMethod_undefined, + tSingleton_method_undefined, + tLength, + tSize, + tGets, + tSucc, + tEach, + tProc, + tLambda, + tSend, + t__send__, + t__attached__, + t__recursive_key__, + tInitialize, + tInitialize_copy, + tInitialize_clone, + tInitialize_dup, + tTo_int, + tTo_ary, + tTo_str, + tTo_sym, + tTo_hash, + tTo_proc, + tTo_io, + tTo_a, + tTo_s, + tTo_i, + tTo_f, + tTo_r, + tBt, + tBt_locations, + tCall, + tMesg, + tException, + tLocals, + tNOT, + tAND, + tOR, + tDiv, + tDivmod, + tFdiv, + tQuo, + tName, + tNil, + tPath, + tUScore, + tNUMPARAM_1, + tNUMPARAM_2, + tNUMPARAM_3, + tNUMPARAM_4, + tNUMPARAM_5, + tNUMPARAM_6, + tNUMPARAM_7, + tNUMPARAM_8, + tNUMPARAM_9, + tDefault, + tTOKEN_LOCAL_END, + tTOKEN_INSTANCE_BEGIN = tTOKEN_LOCAL_END-1, + tTOKEN_INSTANCE_END, + tTOKEN_GLOBAL_BEGIN = tTOKEN_INSTANCE_END-1, + tLASTLINE, + tBACKREF, + tERROR_INFO, + tTOKEN_GLOBAL_END, + tTOKEN_CONST_BEGIN = tTOKEN_GLOBAL_END-1, + tTOKEN_CONST_END, + tTOKEN_CLASS_BEGIN = tTOKEN_CONST_END-1, + tTOKEN_CLASS_END, + tTOKEN_ATTRSET_BEGIN = tTOKEN_CLASS_END-1, + tTOKEN_ATTRSET_END, + tNEXT_ID = tTOKEN_ATTRSET_END, + idMax = ((tMax<> RUBY_ID_SCOPE_SHIFT +}; + +void rb_obj_info_dump(VALUE obj); +void rb_obj_info_dump_loc(VALUE obj, const char *file, int line, const char *func); +void ruby_debug_breakpoint(void); +__attribute__((__format__(__printf__, (1), (2)))) void ruby_debug_printf(const char*, ...); + + +VALUE rb_ary_last(int, const VALUE *, VALUE); +void rb_ary_set_len(VALUE, long); +void rb_ary_delete_same(VALUE, VALUE); +VALUE rb_ary_hidden_new_fill(long capa); +VALUE rb_ary_at(VALUE, VALUE); +size_t rb_ary_memsize(VALUE); +VALUE rb_to_array_type(VALUE obj); +VALUE rb_to_array(VALUE obj); +void rb_ary_cancel_sharing(VALUE ary); +size_t rb_ary_size_as_embedded(VALUE ary); +void rb_ary_make_embedded(VALUE ary); +_Bool rb_ary_embeddable_p(VALUE ary); +VALUE rb_ary_diff(VALUE ary1, VALUE ary2); +static inline VALUE rb_ary_entry_internal(VALUE ary, long offset); +static inline _Bool ARY_PTR_USING_P(VALUE ary); +static inline void RARY_TRANSIENT_SET(VALUE ary); +static inline void RARY_TRANSIENT_UNSET(VALUE ary); +VALUE rb_ary_tmp_new_from_values(VALUE, long, const VALUE *); +VALUE rb_check_to_array(VALUE ary); +VALUE rb_ary_behead(VALUE, long); +VALUE rb_ary_aref1(VALUE ary, VALUE i); +struct rb_execution_context_struct; +VALUE rb_ec_ary_new_from_values(struct rb_execution_context_struct *ec, long n, const VALUE *elts); +static inline VALUE +rb_ary_entry_internal(VALUE ary, long offset) +{ + long len = rb_array_len(ary); + const VALUE *ptr = rb_array_const_ptr_transient(ary); + if (len == 0) return ((VALUE)RUBY_Qnil); + if (offset < 0) { + offset += len; + if (offset < 0) return ((VALUE)RUBY_Qnil); + } + else if (len <= offset) { + return ((VALUE)RUBY_Qnil); + } + return ptr[offset]; +} +static inline _Bool +ARY_PTR_USING_P(VALUE ary) +{ + return RB_FL_TEST_RAW(ary, ((VALUE)RUBY_FL_USER14)); +} +__attribute__((__unused__)) +static inline int +ary_should_not_be_shared_and_embedded(VALUE ary) +{ + return !RB_FL_ALL_RAW(ary, RUBY_ELTS_SHARED|RARRAY_EMBED_FLAG); +} +static inline _Bool +ARY_SHARED_P(VALUE ary) +{ + ((void)0); + ((void)0); + return RB_FL_TEST_RAW(ary, RUBY_ELTS_SHARED); +} +static inline _Bool +ARY_EMBED_P(VALUE ary) +{ + ((void)0); + ((void)0); + return RB_FL_TEST_RAW(ary, RARRAY_EMBED_FLAG); +} +static inline VALUE +ARY_SHARED_ROOT(VALUE ary) +{ + ((void)0); + return ((struct RArray *)(ary))->as.heap.aux.shared_root; +} +static inline _Bool +ARY_SHARED_ROOT_P(VALUE ary) +{ + ((void)0); + return RB_FL_TEST_RAW(ary, ((VALUE)RUBY_FL_USER12)); +} +static inline long +ARY_SHARED_ROOT_REFCNT(VALUE ary) +{ + ((void)0); + return ((struct RArray *)(ary))->as.heap.aux.capa; +} +static inline void +RARY_TRANSIENT_SET(VALUE ary) +{ + RB_FL_SET_RAW(ary, RARRAY_TRANSIENT_FLAG); +} +static inline void +RARY_TRANSIENT_UNSET(VALUE ary) +{ + RB_FL_UNSET_RAW(ary, RARRAY_TRANSIENT_FLAG); +} +__attribute__((__pure__)) +__attribute__((__artificial__)) +static inline VALUE +RARRAY_AREF(VALUE ary, long i) +{ + ((void)0); + return rb_array_const_ptr_transient(ary)[i]; +} + +enum ruby_basic_operators { + BOP_PLUS, + BOP_MINUS, + BOP_MULT, + BOP_DIV, + BOP_MOD, + BOP_EQ, + BOP_EQQ, + BOP_LT, + BOP_LE, + BOP_LTLT, + BOP_AREF, + BOP_ASET, + BOP_LENGTH, + BOP_SIZE, + BOP_EMPTY_P, + BOP_NIL_P, + BOP_SUCC, + BOP_GT, + BOP_GE, + BOP_NOT, + BOP_NEQ, + BOP_MATCH, + BOP_FREEZE, + BOP_UMINUS, + BOP_MAX, + BOP_MIN, + BOP_CALL, + BOP_AND, + BOP_OR, + BOP_CMP, + BOP_DEFAULT, + BOP_LAST_ +}; +extern short ruby_vm_redefined_flag[BOP_LAST_]; + +typedef unsigned + long long + rb_serial_t; + +struct rb_callable_method_entry_struct; +struct rb_method_definition_struct; +struct rb_execution_context_struct; +struct rb_control_frame_struct; +struct rb_callinfo; +enum method_missing_reason { + MISSING_NOENTRY = 0x00, + MISSING_PRIVATE = 0x01, + MISSING_PROTECTED = 0x02, + MISSING_FCALL = 0x04, + MISSING_VCALL = 0x08, + MISSING_SUPER = 0x10, + MISSING_MISSING = 0x20, + MISSING_NONE = 0x40 +};static inline +VALUE rb_vm_push_frame_fname(struct rb_execution_context_struct *ec, VALUE fname); +VALUE rb_obj_is_thread(VALUE obj); +void rb_vm_mark(void *ptr); +void rb_vm_each_stack_value(void *ptr, void (*cb)(VALUE, void*), void *ctx); +__attribute__((__pure__)) VALUE rb_vm_top_self(void); +const void **rb_vm_get_insns_address_table(void); +VALUE rb_source_location(int *pline); +const char *rb_source_location_cstr(int *pline); +static void rb_vm_pop_cfunc_frame(void); +int rb_vm_add_root_module(VALUE module); +void rb_vm_check_redefinition_by_prepend(VALUE klass); +int rb_vm_check_optimizable_mid(VALUE mid); +VALUE rb_yield_refine_block(VALUE refinement, VALUE refinements); +static VALUE ruby_vm_special_exception_copy(VALUE); +__attribute__((__pure__)) st_table *rb_vm_fstring_table(void); +VALUE rb_vm_exec(struct rb_execution_context_struct *, _Bool); +VALUE rb_current_realfilepath(void); +VALUE rb_check_block_call(VALUE, ID, int, const VALUE *, rb_block_call_func_t, VALUE); +typedef void rb_check_funcall_hook(int, VALUE, ID, int, const VALUE *, VALUE); +VALUE rb_check_funcall_with_hook(VALUE recv, ID mid, int argc, const VALUE *argv, + rb_check_funcall_hook *hook, VALUE arg); +VALUE rb_check_funcall_with_hook_kw(VALUE recv, ID mid, int argc, const VALUE *argv, + rb_check_funcall_hook *hook, VALUE arg, int kw_splat); +const char *rb_type_str(enum ruby_value_type type); +VALUE rb_check_funcall_default(VALUE, ID, int, const VALUE *, VALUE); +VALUE rb_check_funcall_basic_kw(VALUE, ID, VALUE, int, const VALUE*, int); +VALUE rb_yield_1(VALUE val); +VALUE rb_yield_force_blockarg(VALUE values); +VALUE rb_lambda_call(VALUE obj, ID mid, int argc, const VALUE *argv, + rb_block_call_func_t bl_proc, int min_argc, int max_argc, + VALUE data2); +void rb_check_stack_overflow(void); +VALUE rb_equal_opt(VALUE obj1, VALUE obj2); +VALUE rb_eql_opt(VALUE obj1, VALUE obj2); +struct rb_iseq_struct; +const struct rb_callcache *rb_vm_search_method_slowpath(const struct rb_callinfo *ci, VALUE klass); +struct rb_execution_context_struct; +int rb_ec_obj_respond_to(struct rb_execution_context_struct *ec, VALUE obj, ID id, int priv); +void rb_clear_constant_cache(void); +void rb_print_backtrace(void); +VALUE rb_vm_thread_backtrace(int argc, const VALUE *argv, VALUE thval); +VALUE rb_vm_thread_backtrace_locations(int argc, const VALUE *argv, VALUE thval); +VALUE rb_vm_backtrace(int argc, const VALUE * argv, struct rb_execution_context_struct * ec); +VALUE rb_vm_backtrace_locations(int argc, const VALUE * argv, struct rb_execution_context_struct * ec); +VALUE rb_make_backtrace(void); +void rb_backtrace_print_as_bugreport(void); +int rb_backtrace_p(VALUE obj); +VALUE rb_backtrace_to_str_ary(VALUE obj); +VALUE rb_backtrace_to_location_ary(VALUE obj); +void rb_backtrace_each(VALUE (*iter)(VALUE recv, VALUE str), VALUE output); +int rb_frame_info_p(VALUE obj); +int rb_get_node_id_from_frame_info(VALUE obj); +const struct rb_iseq_struct *rb_get_iseq_from_frame_info(VALUE obj); +VALUE rb_ec_backtrace_object(const struct rb_execution_context_struct *ec); +void rb_backtrace_use_iseq_first_lineno_for_last_location(VALUE self); + + + + + + + + +struct rb_execution_context_struct; +struct rb_objspace; + +typedef struct ractor_newobj_size_pool_cache { + struct RVALUE *freelist; + struct heap_page *using_page; +} rb_ractor_newobj_size_pool_cache_t; +typedef struct ractor_newobj_cache { + size_t incremental_mark_step_allocated_slots; + rb_ractor_newobj_size_pool_cache_t size_pool_caches[5]; +} rb_ractor_newobj_cache_t; +extern VALUE *ruby_initial_gc_stress_ptr; +extern int ruby_disable_gc; +__attribute__((__malloc__)) void *ruby_mimmalloc(size_t size); +void ruby_mimfree(void *ptr); +void rb_objspace_set_event_hook(const rb_event_flag_t event); +VALUE rb_objspace_gc_enable(struct rb_objspace *); +VALUE rb_objspace_gc_disable(struct rb_objspace *); +void ruby_gc_set_params(void); +void rb_copy_wb_protected_attribute(VALUE dest, VALUE obj); +__attribute__((__alloc_align__(1))) +__attribute__((__malloc__)) void *rb_aligned_malloc(size_t, size_t) __attribute__((__alloc_size__ (2))); +size_t rb_size_mul_or_raise(size_t, size_t, VALUE); +size_t rb_size_mul_add_or_raise(size_t, size_t, size_t, VALUE); +__attribute__((__malloc__)) void *rb_xmalloc_mul_add(size_t, size_t, size_t); +__attribute__((__malloc__)) void *rb_xcalloc_mul_add(size_t, size_t, size_t); +void *rb_xrealloc_mul_add(const void *, size_t, size_t, size_t); +__attribute__((__malloc__)) void *rb_xmalloc_mul_add_mul(size_t, size_t, size_t, size_t); +__attribute__((__malloc__)) void *rb_xcalloc_mul_add_mul(size_t, size_t, size_t, size_t); +static inline void *ruby_sized_xrealloc_inlined(void *ptr, size_t new_size, size_t old_size) __attribute__((__returns_nonnull__)) __attribute__((__alloc_size__ (2))); +static inline void *ruby_sized_xrealloc2_inlined(void *ptr, size_t new_count, size_t elemsiz, size_t old_count) __attribute__((__returns_nonnull__)) __attribute__((__alloc_size__ (2, 3))); +static inline void ruby_sized_xfree_inlined(void *ptr, size_t size); +VALUE rb_class_allocate_instance(VALUE klass); +void rb_gc_ractor_newobj_cache_clear(rb_ractor_newobj_cache_t *newobj_cache); +size_t rb_gc_obj_slot_size(VALUE obj); +_Bool rb_gc_size_allocatable_p(size_t size); +int rb_objspace_garbage_object_p(VALUE obj); +const char *rb_objspace_data_type_name(VALUE obj); +VALUE rb_wb_protected_newobj_of(VALUE, VALUE, size_t); +VALUE rb_wb_unprotected_newobj_of(VALUE, VALUE, size_t); +VALUE rb_ec_wb_protected_newobj_of(struct rb_execution_context_struct *ec, VALUE klass, VALUE flags, size_t); +size_t rb_obj_memsize_of(VALUE); +void rb_gc_verify_internal_consistency(void); +size_t rb_obj_gc_flags(VALUE, ID[], size_t); +void rb_gc_mark_values(long n, const VALUE *values); +void rb_gc_mark_vm_stack_values(long n, const VALUE *values); +void *ruby_sized_xrealloc(void *ptr, size_t new_size, size_t old_size) __attribute__((__returns_nonnull__)) __attribute__((__alloc_size__ (2))); +void *ruby_sized_xrealloc2(void *ptr, size_t new_count, size_t element_size, size_t old_count) __attribute__((__returns_nonnull__)) __attribute__((__alloc_size__ (2, 3))); +void ruby_sized_xfree(void *x, size_t size); +int rb_ec_stack_check(struct rb_execution_context_struct *ec); +void rb_gc_writebarrier_remember(VALUE obj); +const char *rb_obj_info(VALUE obj); +static inline void * +ruby_sized_xrealloc_inlined(void *ptr, size_t new_size, size_t old_size) +{ + return ruby_xrealloc(ptr, new_size); +} +static inline void * +ruby_sized_xrealloc2_inlined(void *ptr, size_t new_count, size_t elemsiz, size_t old_count) +{ + return ruby_xrealloc2(ptr, new_count, elemsiz); +} +static inline void +ruby_sized_xfree_inlined(void *ptr, size_t size) +{ + ruby_xfree(ptr); +} +enum imemo_type { + imemo_env = 0, + imemo_cref = 1, + imemo_svar = 2, + imemo_throw_data = 3, + imemo_ifunc = 4, + imemo_memo = 5, + imemo_ment = 6, + imemo_iseq = 7, + imemo_tmpbuf = 8, + imemo_ast = 9, + imemo_parser_strterm = 10, + imemo_callinfo = 11, + imemo_callcache = 12, + imemo_constcache = 13, +}; +struct vm_svar { + VALUE flags; + const VALUE cref_or_me; + const VALUE lastline; + const VALUE backref; + const VALUE others; +}; +struct vm_throw_data { + VALUE flags; + VALUE reserved; + const VALUE throw_obj; + const struct rb_control_frame_struct *catch_frame; + int throw_state; +}; +struct vm_ifunc_argc { + int min, max; +}; +struct vm_ifunc { + VALUE flags; + VALUE reserved; + rb_block_call_func_t func; + const void *data; + struct vm_ifunc_argc argc; +}; +struct rb_imemo_tmpbuf_struct { + VALUE flags; + VALUE reserved; + VALUE *ptr; + struct rb_imemo_tmpbuf_struct *next; + size_t cnt; +}; +struct MEMO { + VALUE flags; + VALUE reserved; + const VALUE v1; + const VALUE v2; + union { + long cnt; + long state; + const VALUE value; + void (*func)(void); + } u3; +}; +typedef struct rb_imemo_tmpbuf_struct rb_imemo_tmpbuf_t; +rb_imemo_tmpbuf_t *rb_imemo_tmpbuf_parser_heap(void *buf, rb_imemo_tmpbuf_t *old_heap, size_t cnt); +struct vm_ifunc *rb_vm_ifunc_new(rb_block_call_func_t func, const void *data, int min_argc, int max_argc); +void rb_strterm_mark(VALUE obj); +static inline enum imemo_type imemo_type(VALUE imemo); +static inline int imemo_type_p(VALUE imemo, enum imemo_type imemo_type); +static inline _Bool imemo_throw_data_p(VALUE imemo); +static inline struct vm_ifunc *rb_vm_ifunc_proc_new(rb_block_call_func_t func, const void *data); +static inline VALUE rb_imemo_tmpbuf_auto_free_pointer(void); +static inline void *RB_IMEMO_TMPBUF_PTR(VALUE v); +static inline void *rb_imemo_tmpbuf_set_ptr(VALUE v, void *ptr); +static inline VALUE rb_imemo_tmpbuf_auto_free_pointer_new_from_an_RString(VALUE str); +static inline void MEMO_V1_SET(struct MEMO *m, VALUE v); +static inline void MEMO_V2_SET(struct MEMO *m, VALUE v); +VALUE rb_imemo_new(enum imemo_type type, VALUE v1, VALUE v2, VALUE v3, VALUE v0); +const char *rb_imemo_name(enum imemo_type type); +static inline enum imemo_type +imemo_type(VALUE imemo) +{ + return (((struct RBasic *)(imemo))->flags >> ((VALUE)RUBY_FL_USHIFT)) & 0x0f; +} +static inline int +imemo_type_p(VALUE imemo, enum imemo_type imemo_type) +{ + if ((__builtin_expect(!!(!RB_SPECIAL_CONST_P(imemo)), 1))) { + const VALUE mask = (0x0f << ((VALUE)RUBY_FL_USHIFT)) | RUBY_T_MASK; + const VALUE expected_type = (imemo_type << ((VALUE)RUBY_FL_USHIFT)) | RUBY_T_IMEMO; + return expected_type == (((struct RBasic *)(imemo))->flags & mask); + } + else { + return 0; + } +} +static inline _Bool +imemo_throw_data_p(VALUE imemo) +{ + return (__builtin_constant_p(RUBY_T_IMEMO) ? rbimpl_RB_TYPE_P_fastpath((imemo), (RUBY_T_IMEMO)) : (RB_TYPE_P)((imemo), (RUBY_T_IMEMO))); +} +static inline struct vm_ifunc * +rb_vm_ifunc_proc_new(rb_block_call_func_t func, const void *data) +{ + return rb_vm_ifunc_new(func, data, 0, (-1)); +} +static inline VALUE +rb_imemo_tmpbuf_auto_free_pointer(void) +{ + return rb_imemo_new(imemo_tmpbuf, 0, 0, 0, 0); +} +static inline void * +RB_IMEMO_TMPBUF_PTR(VALUE v) +{ + const struct rb_imemo_tmpbuf_struct *p = (const void *)v; + return p->ptr; +} +static inline void * +rb_imemo_tmpbuf_set_ptr(VALUE v, void *ptr) +{ + return ((rb_imemo_tmpbuf_t *)v)->ptr = ptr; +} +static inline VALUE +rb_imemo_tmpbuf_auto_free_pointer_new_from_an_RString(VALUE str) +{ + const void *src; + VALUE imemo; + rb_imemo_tmpbuf_t *tmpbuf; + void *dst; + size_t len; + rb_string_value(&(str)); + imemo = rb_imemo_tmpbuf_auto_free_pointer(); + tmpbuf = (rb_imemo_tmpbuf_t *)imemo; + len = RSTRING_LEN(str); + src = RSTRING_PTR(str); + dst = ruby_xmalloc(len); + ruby_nonempty_memcpy(dst, src, len); + tmpbuf->ptr = dst; + return imemo; +} +static inline void +MEMO_V1_SET(struct MEMO *m, VALUE v) +{ + rb_obj_write((VALUE)(m), __extension__({ + ; + ; __typeof__((VALUE *)(&m->v1)) unaligned_member_access_result = ((VALUE *)(&m->v1)); + ; unaligned_member_access_result; }), (VALUE)(v), "./internal/imemo.h", 233); +} +static inline void +MEMO_V2_SET(struct MEMO *m, VALUE v) +{ + rb_obj_write((VALUE)(m), __extension__({ + ; + ; __typeof__((VALUE *)(&m->v2)) unaligned_member_access_result = ((VALUE *)(&m->v2)); + ; unaligned_member_access_result; }), (VALUE)(v), "./internal/imemo.h", 239); +} +typedef enum { + METHOD_VISI_UNDEF = 0x00, + METHOD_VISI_PUBLIC = 0x01, + METHOD_VISI_PRIVATE = 0x02, + METHOD_VISI_PROTECTED = 0x03, + METHOD_VISI_MASK = 0x03 +} rb_method_visibility_t; +typedef struct rb_scope_visi_struct { + rb_method_visibility_t method_visi : 3; + unsigned int module_func : 1; +} rb_scope_visibility_t; +typedef struct rb_cref_struct { + VALUE flags; + VALUE refinements; + VALUE klass_or_self; + struct rb_cref_struct * next; + const rb_scope_visibility_t scope_visi; +} rb_cref_t; +typedef struct rb_method_entry_struct { + VALUE flags; + VALUE defined_class; + struct rb_method_definition_struct * const def; + ID called_id; + VALUE owner; +} rb_method_entry_t; +typedef struct rb_callable_method_entry_struct { + VALUE flags; + const VALUE defined_class; + struct rb_method_definition_struct * const def; + ID called_id; + const VALUE owner; +} rb_callable_method_entry_t; +static inline void +METHOD_ENTRY_VISI_SET(rb_method_entry_t *me, rb_method_visibility_t visi) +{ + ((void)0); + me->flags = (me->flags & ~(((VALUE)RUBY_FL_USER4) | ((VALUE)RUBY_FL_USER5))) | (visi << ((((VALUE)RUBY_FL_USHIFT) + 4)+0)); +} +static inline void +METHOD_ENTRY_BASIC_SET(rb_method_entry_t *me, unsigned int basic) +{ + ((void)0); + me->flags = (me->flags & ~(((VALUE)RUBY_FL_USER6) )) | (basic << ((((VALUE)RUBY_FL_USHIFT) + 4)+2)); +} +static inline void +METHOD_ENTRY_FLAGS_SET(rb_method_entry_t *me, rb_method_visibility_t visi, unsigned int basic) +{ + ((void)0); + ((void)0); + me->flags = + (me->flags & ~(((VALUE)RUBY_FL_USER4)|((VALUE)RUBY_FL_USER5)|((VALUE)RUBY_FL_USER6))) | + ((visi << ((((VALUE)RUBY_FL_USHIFT) + 4)+0)) | (basic << ((((VALUE)RUBY_FL_USHIFT) + 4)+2))); +} +static inline void +METHOD_ENTRY_FLAGS_COPY(rb_method_entry_t *dst, const rb_method_entry_t *src) +{ + dst->flags = + (dst->flags & ~(((VALUE)RUBY_FL_USER4)|((VALUE)RUBY_FL_USER5)|((VALUE)RUBY_FL_USER6))) | + (src->flags & (((VALUE)RUBY_FL_USER4)|((VALUE)RUBY_FL_USER5)|((VALUE)RUBY_FL_USER6))); +} +typedef enum { + VM_METHOD_TYPE_ISEQ, + VM_METHOD_TYPE_CFUNC, + VM_METHOD_TYPE_ATTRSET, + VM_METHOD_TYPE_IVAR, + VM_METHOD_TYPE_BMETHOD, + VM_METHOD_TYPE_ZSUPER, + VM_METHOD_TYPE_ALIAS, + VM_METHOD_TYPE_UNDEF, + VM_METHOD_TYPE_NOTIMPLEMENTED, + VM_METHOD_TYPE_OPTIMIZED, + VM_METHOD_TYPE_MISSING, + VM_METHOD_TYPE_REFINED, +} rb_method_type_t; +__extension__ _Static_assert(VM_METHOD_TYPE_REFINED <= (1<<4), "VM_METHOD_TYPE_MINIMUM_BITS" ": " "VM_METHOD_TYPE_REFINED <= (1<beg_pos; + loc.end_pos = loc2->end_pos; + return loc; +} +typedef struct rb_ast_id_table { + int size; + ID ids[]; +} rb_ast_id_table_t; +typedef struct RNode { + VALUE flags; + union { + struct RNode *node; + ID id; + VALUE value; + rb_ast_id_table_t *tbl; + } u1; + union { + struct RNode *node; + ID id; + long argc; + VALUE value; + } u2; + union { + struct RNode *node; + ID id; + long state; + struct rb_args_info *args; + struct rb_ary_pattern_info *apinfo; + struct rb_fnd_pattern_info *fpinfo; + VALUE value; + } u3; + rb_code_location_t nd_loc; + int node_id; +} NODE; +VALUE rb_node_case_when_optimizable_literal(const NODE *const node); +typedef struct node_buffer_struct node_buffer_t; +typedef struct rb_ast_body_struct { + const NODE *root; + VALUE compile_option; + VALUE script_lines; +} rb_ast_body_t; +typedef struct rb_ast_struct { + VALUE flags; + node_buffer_t *node_buffer; + rb_ast_body_t body; +} rb_ast_t; +rb_ast_t *rb_ast_new(void); +void rb_ast_mark(rb_ast_t*); +void rb_ast_update_references(rb_ast_t*); +void rb_ast_dispose(rb_ast_t*); +void rb_ast_free(rb_ast_t*); +size_t rb_ast_memsize(const rb_ast_t*); +void rb_ast_add_mark_object(rb_ast_t*, VALUE); +void rb_ast_set_tokens(rb_ast_t*, VALUE); +VALUE rb_ast_tokens(rb_ast_t *ast); +NODE *rb_ast_newnode(rb_ast_t*, enum node_type type); +void rb_ast_delete_node(rb_ast_t*, NODE *n); +rb_ast_id_table_t *rb_ast_new_local_table(rb_ast_t*, int); +rb_ast_id_table_t *rb_ast_resize_latest_local_table(rb_ast_t*, int); +VALUE rb_parser_new(void); +VALUE rb_parser_end_seen_p(VALUE); +VALUE rb_parser_encoding(VALUE); +VALUE rb_parser_set_yydebug(VALUE, VALUE); +VALUE rb_parser_dump_tree(const NODE *node, int comment); +void rb_parser_set_options(VALUE, int, int, int, int); +rb_ast_t *rb_parser_compile_string(VALUE, const char*, VALUE, int); +rb_ast_t *rb_parser_compile_string_path(VALUE vparser, VALUE fname, VALUE src, int line); +rb_ast_t *rb_parser_compile_file_path(VALUE vparser, VALUE fname, VALUE input, int line); +rb_ast_t *rb_parser_compile_generic(VALUE vparser, VALUE (*lex_gets)(VALUE, int), VALUE fname, VALUE input, int line); +void rb_node_init(NODE *n, enum node_type type, VALUE a0, VALUE a1, VALUE a2); +const char *ruby_node_name(int node); +const struct kwtable *rb_reserved_word(const char *, unsigned int); +struct rb_args_info { + NODE *pre_init; + NODE *post_init; + int pre_args_num; + int post_args_num; + ID first_post_arg; + ID rest_arg; + ID block_arg; + NODE *kw_args; + NODE *kw_rest_arg; + NODE *opt_args; + unsigned int no_kwarg: 1; + unsigned int ruby2_keywords: 1; + unsigned int forwarding: 1; + VALUE imemo; +}; +struct rb_ary_pattern_info { + NODE *pre_args; + NODE *rest_arg; + NODE *post_args; +}; +struct rb_fnd_pattern_info { + NODE *pre_rest_arg; + NODE *args; + NODE *post_rest_arg; +}; +struct parser_params; +void *rb_parser_malloc(struct parser_params *, size_t); +void *rb_parser_realloc(struct parser_params *, void *, size_t); +void *rb_parser_calloc(struct parser_params *, size_t, size_t); +void rb_parser_free(struct parser_params *, void *); +__attribute__((__format__(__printf__, (2), (3)))) void rb_parser_printf(struct parser_params *parser, const char *fmt, ...); +void rb_ast_node_type_change(NODE *n, enum node_type type); +static inline VALUE +rb_node_set_type(NODE *n, enum node_type t) +{ + return (n)->flags=(((n)->flags&~(((VALUE)0x7f)<<8))|((((unsigned long)(t))<<8)&(((VALUE)0x7f)<<8))); +} +static inline _Bool +nd_type_p(const NODE *n, enum node_type t) +{ + return (enum node_type)((int) (((n)->flags & (((VALUE)0x7f)<<8))>>8)) == t; +} + +typedef unsigned int rb_atomic_t; +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline rb_atomic_t +rbimpl_atomic_fetch_add(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ + return __atomic_fetch_add(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_add(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ + __atomic_add_fetch(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_size_add(volatile size_t *ptr, size_t val) +{ + __atomic_add_fetch(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_inc(volatile rb_atomic_t *ptr) +{ + rbimpl_atomic_add(ptr, 1); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_size_inc(volatile size_t *ptr) +{ + rbimpl_atomic_size_add(ptr, 1); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline rb_atomic_t +rbimpl_atomic_fetch_sub(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ + return __atomic_fetch_sub(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_sub(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ + __atomic_sub_fetch(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_size_sub(volatile size_t *ptr, size_t val) +{ + __atomic_sub_fetch(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_dec(volatile rb_atomic_t *ptr) +{ + rbimpl_atomic_sub(ptr, 1); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_size_dec(volatile size_t *ptr) +{ + rbimpl_atomic_size_sub(ptr, 1); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_or(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ + __atomic_or_fetch(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline rb_atomic_t +rbimpl_atomic_exchange(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ + return __atomic_exchange_n(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline size_t +rbimpl_atomic_size_exchange(volatile size_t *ptr, size_t val) +{ + return __atomic_exchange_n(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void * +rbimpl_atomic_ptr_exchange(void *volatile *ptr, const void *val) +{ + __extension__ _Static_assert(sizeof *ptr == sizeof(size_t), "sizeof_voidp" ": " "sizeof *ptr == sizeof(size_t)"); + const size_t sval = ((size_t)val); + volatile size_t *const sptr = ((volatile size_t *)ptr); + const size_t sret = rbimpl_atomic_size_exchange(sptr, sval); + return ((void *)sret); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline VALUE +rbimpl_atomic_value_exchange(volatile VALUE *ptr, VALUE val) +{ + __extension__ _Static_assert(sizeof *ptr == sizeof(size_t), "sizeof_value" ": " "sizeof *ptr == sizeof(size_t)"); + const size_t sval = ((size_t)val); + volatile size_t *const sptr = ((volatile size_t *)ptr); + const size_t sret = rbimpl_atomic_size_exchange(sptr, sval); + return ((VALUE)sret); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void +rbimpl_atomic_set(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ + __atomic_store_n(ptr, val, 5); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline rb_atomic_t +rbimpl_atomic_cas(volatile rb_atomic_t *ptr, rb_atomic_t oldval, rb_atomic_t newval) +{ + __atomic_compare_exchange_n( + ptr, &oldval, newval, 0, 5, 5); + return oldval; +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline size_t +rbimpl_atomic_size_cas(volatile size_t *ptr, size_t oldval, size_t newval) +{ + __atomic_compare_exchange_n( + ptr, &oldval, newval, 0, 5, 5); + return oldval; +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline void * +rbimpl_atomic_ptr_cas(void **ptr, const void *oldval, const void *newval) +{ + __extension__ _Static_assert(sizeof *ptr == sizeof(size_t), "sizeof_voidp" ": " "sizeof *ptr == sizeof(size_t)"); + const size_t snew = ((size_t)newval); + const size_t sold = ((size_t)oldval); + volatile size_t *const sptr = ((volatile size_t *)ptr); + const size_t sret = rbimpl_atomic_size_cas(sptr, sold, snew); + return ((void *)sret); +} +__attribute__((__artificial__)) +__declspec(noalias) +__attribute__((__nonnull__ (1))) +static inline VALUE +rbimpl_atomic_value_cas(volatile VALUE *ptr, VALUE oldval, VALUE newval) +{ + __extension__ _Static_assert(sizeof *ptr == sizeof(size_t), "sizeof_value" ": " "sizeof *ptr == sizeof(size_t)"); + const size_t snew = ((size_t)newval); + const size_t sold = ((size_t)oldval); + volatile size_t *const sptr = ((volatile size_t *)ptr); + const size_t sret = rbimpl_atomic_size_cas(sptr, sold, snew); + return ((VALUE)sret); +} + + +typedef uint32_t attr_index_t; +typedef uint32_t shape_id_t; +struct rb_shape { + struct rb_id_table * edges; + ID edge_name; + attr_index_t next_iv_index; + uint32_t capacity; + uint8_t type; + uint8_t size_pool_index; + shape_id_t parent_id; +}; +typedef struct rb_shape rb_shape_t; +enum shape_type { + SHAPE_ROOT, + SHAPE_IVAR, + SHAPE_FROZEN, + SHAPE_CAPACITY_CHANGE, + SHAPE_INITIAL_CAPACITY, + SHAPE_T_OBJECT, + SHAPE_OBJ_TOO_COMPLEX, +}; +static inline shape_id_t +RBASIC_SHAPE_ID(VALUE obj) +{ + ((void)0); + return (shape_id_t)((((uintptr_t)1 << 32) - 1) & ((((struct RBasic *)(obj))->flags) >> ((8 * 8) - 32))); +} +static inline void +RBASIC_SET_SHAPE_ID(VALUE obj, shape_id_t shape_id) +{ + ((struct RBasic *)(obj))->flags &= (((VALUE)-1) >> 32); + ((struct RBasic *)(obj))->flags |= ((VALUE)(shape_id) << ((8 * 8) - 32)); +} +static inline shape_id_t +ROBJECT_SHAPE_ID(VALUE obj) +{ + ((void)0); + return RBASIC_SHAPE_ID(obj); +} +static inline void +ROBJECT_SET_SHAPE_ID(VALUE obj, shape_id_t shape_id) +{ + ((void)0); + RBASIC_SET_SHAPE_ID(obj, shape_id); +} +static inline shape_id_t +RCLASS_SHAPE_ID(VALUE obj) +{ + ((void)0); + return RBASIC_SHAPE_ID(obj); +} +_Bool rb_shape_root_shape_p(rb_shape_t* shape); +rb_shape_t * rb_shape_get_root_shape(void); +uint8_t rb_shape_id_num_bits(void); +int32_t rb_shape_id_offset(void); +rb_shape_t* rb_shape_get_shape_by_id_without_assertion(shape_id_t shape_id); +rb_shape_t * rb_shape_get_parent(rb_shape_t * shape); +rb_shape_t* rb_shape_get_shape_by_id(shape_id_t shape_id); +shape_id_t rb_shape_get_shape_id(VALUE obj); +rb_shape_t * rb_shape_get_next_iv_shape(rb_shape_t * shape, ID id); +_Bool rb_shape_get_iv_index(rb_shape_t * shape, ID id, attr_index_t * value); +_Bool rb_shape_obj_too_complex(VALUE obj); +void rb_shape_set_shape(VALUE obj, rb_shape_t* shape); +rb_shape_t* rb_shape_get_shape(VALUE obj); +int rb_shape_frozen_shape_p(rb_shape_t* shape); +void rb_shape_transition_shape_frozen(VALUE obj); +void rb_shape_transition_shape_remove_ivar(VALUE obj, ID id, rb_shape_t *shape, VALUE * removed); +rb_shape_t * rb_shape_transition_shape_capa(rb_shape_t * shape, uint32_t new_capacity); +rb_shape_t* rb_shape_get_next(rb_shape_t* shape, VALUE obj, ID id); +rb_shape_t * rb_shape_rebuild_shape(rb_shape_t * initial_shape, rb_shape_t * dest_shape); +static inline uint32_t +ROBJECT_IV_CAPACITY(VALUE obj) +{ + ((void)0); + ((void)0); + return rb_shape_get_shape_by_id(ROBJECT_SHAPE_ID(obj))->capacity; +} +static inline struct rb_id_table * +ROBJECT_IV_HASH(VALUE obj) +{ + ((void)0); + ((void)0); + return (struct rb_id_table *)((struct RObject *)(obj))->as.heap.ivptr; +} +static inline void +ROBJECT_SET_IV_HASH(VALUE obj, const struct rb_id_table *tbl) +{ + ((void)0); + ((void)0); + ((struct RObject *)(obj))->as.heap.ivptr = (VALUE *)tbl; +} +size_t rb_id_table_size(const struct rb_id_table *tbl); +static inline uint32_t +ROBJECT_IV_COUNT(VALUE obj) +{ + if (ROBJECT_SHAPE_ID(obj) == ((5 * 2) + 1)) { + return (uint32_t)rb_id_table_size(ROBJECT_IV_HASH(obj)); + } + else { + ((void)0); + ((void)0); + return rb_shape_get_shape_by_id(ROBJECT_SHAPE_ID(obj))->next_iv_index; + } +} +static inline uint32_t +RBASIC_IV_COUNT(VALUE obj) +{ + return rb_shape_get_shape_by_id(rb_shape_get_shape_id(obj))->next_iv_index; +} +static inline uint32_t +RCLASS_IV_COUNT(VALUE obj) +{ + ((void)0); + uint32_t ivc = rb_shape_get_shape_by_id(RCLASS_SHAPE_ID(obj))->next_iv_index; + return ivc; +} +rb_shape_t * rb_shape_alloc(ID edge_name, rb_shape_t * parent); +rb_shape_t * rb_shape_alloc_with_size_pool_index(ID edge_name, rb_shape_t * parent, uint8_t size_pool_index); +rb_shape_t * rb_shape_alloc_with_parent_id(ID edge_name, shape_id_t parent_id); +rb_shape_t *rb_shape_traverse_from_new_root(rb_shape_t *initial_shape, rb_shape_t *orig_shape); +_Bool rb_shape_set_shape_id(VALUE obj, shape_id_t shape_id); +VALUE rb_obj_debug_shape(VALUE self, VALUE obj); +VALUE rb_shape_flags_mask(void); +void rb_shape_set_too_complex(VALUE obj); +typedef void each_shape_callback(rb_shape_t * shape, void *data); +void rb_shape_each_shape(each_shape_callback callback, void *data); +size_t rb_shape_memsize(rb_shape_t *shape); +size_t rb_shape_edges_count(rb_shape_t *shape); +size_t rb_shape_depth(rb_shape_t *shape); +shape_id_t rb_shape_id(rb_shape_t * shape); + + +struct sched_param { int sched_priority; char __opaque[4]; }; +extern int sched_yield(void); +extern int sched_get_priority_min(int); +extern int sched_get_priority_max(int); +enum { QOS_CLASS_USER_INTERACTIVE __attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) = 0x21, QOS_CLASS_USER_INITIATED __attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) = 0x19, QOS_CLASS_DEFAULT __attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) = 0x15, QOS_CLASS_UTILITY __attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) = 0x11, QOS_CLASS_BACKGROUND __attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) = 0x09, QOS_CLASS_UNSPECIFIED __attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) = 0x00, }; typedef unsigned int qos_class_t; +__attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) +qos_class_t +qos_class_self(void); +__attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) +qos_class_t +qos_class_main(void); +__attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) +int +pthread_attr_set_qos_class_np(pthread_attr_t *__attr, + qos_class_t __qos_class, int __relative_priority); +__attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) +int +pthread_attr_get_qos_class_np(pthread_attr_t * __restrict__ __attr, + qos_class_t * _Nullable __restrict__ __qos_class, + int * _Nullable __restrict__ __relative_priority); +__attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) +int +pthread_set_qos_class_self_np(qos_class_t __qos_class, + int __relative_priority); +__attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) +int +pthread_get_qos_class_np(pthread_t __pthread, + qos_class_t * _Nullable __restrict__ __qos_class, + int * _Nullable __restrict__ __relative_priority); +typedef struct pthread_override_s* pthread_override_t; +__attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) +pthread_override_t +pthread_override_qos_class_start_np(pthread_t __pthread, + qos_class_t __qos_class, int __relative_priority); +__attribute__((availability(macos,introduced=10.10))) __attribute__((availability(ios,introduced=8.0))) +int +pthread_override_qos_class_end_np(pthread_override_t __override); +typedef __darwin_mach_port_t mach_port_t; +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_atfork(void (* _Nullable)(void), void (* _Nullable)(void), + void (* _Nullable)(void)); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_destroy(pthread_attr_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_getdetachstate(const pthread_attr_t *, int *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_getguardsize(const pthread_attr_t * __restrict__, size_t * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_getinheritsched(const pthread_attr_t * __restrict__, int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_getschedparam(const pthread_attr_t * __restrict__, + struct sched_param * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_getschedpolicy(const pthread_attr_t * __restrict__, int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_getscope(const pthread_attr_t * __restrict__, int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_getstack(const pthread_attr_t * __restrict__, + void * _Nullable * _Nonnull __restrict__, size_t * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_getstackaddr(const pthread_attr_t * __restrict__, + void * _Nullable * _Nonnull __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_getstacksize(const pthread_attr_t * __restrict__, size_t * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_init(pthread_attr_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_setdetachstate(pthread_attr_t *, int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_setguardsize(pthread_attr_t *, size_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_setinheritsched(pthread_attr_t *, int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_setschedparam(pthread_attr_t * __restrict__, + const struct sched_param * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_setschedpolicy(pthread_attr_t *, int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_setscope(pthread_attr_t *, int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_setstack(pthread_attr_t *, void *, size_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_setstackaddr(pthread_attr_t *, void *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_attr_setstacksize(pthread_attr_t *, size_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_cancel(pthread_t) __asm("_" "pthread_cancel" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_cond_broadcast(pthread_cond_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_cond_destroy(pthread_cond_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_cond_init( + pthread_cond_t * __restrict__, + const pthread_condattr_t * _Nullable __restrict__) + __asm("_" "pthread_cond_init" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_cond_signal(pthread_cond_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use an asynchronous wait instead of a synchronous wait" "\")"))) +int pthread_cond_timedwait( + pthread_cond_t * __restrict__, pthread_mutex_t * __restrict__, + const struct timespec * _Nullable __restrict__) + __asm("_" "pthread_cond_timedwait" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use an asynchronous wait instead of a synchronous wait" "\")"))) +int pthread_cond_wait(pthread_cond_t * __restrict__, + pthread_mutex_t * __restrict__) __asm("_" "pthread_cond_wait" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_condattr_destroy(pthread_condattr_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_condattr_init(pthread_condattr_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_condattr_getpshared(const pthread_condattr_t * __restrict__, + int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_condattr_setpshared(pthread_condattr_t *, int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_create(pthread_t _Nullable * _Nonnull __restrict__, + const pthread_attr_t * _Nullable __restrict__, + void * _Nullable (* _Nonnull)(void * _Nullable), + void * _Nullable __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_detach(pthread_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_equal(pthread_t _Nullable, pthread_t _Nullable); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Thread lifecycle is owned by Swift Concurrency runtime" "\")"))) +void pthread_exit(void * _Nullable) __attribute__((__noreturn__)); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_getconcurrency(void); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_getschedparam(pthread_t , int * _Nullable __restrict__, + struct sched_param * _Nullable __restrict__); +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use Task Local Values instead" "\")"))) +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +void* _Nullable pthread_getspecific(pthread_key_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use an asynchronous wait instead of a synchronous wait" "\")"))) +int pthread_join(pthread_t , void * _Nullable * _Nullable) + __asm("_" "pthread_join" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_key_create(pthread_key_t *, void (* _Nullable)(void *)); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_key_delete(pthread_key_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutex_destroy(pthread_mutex_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutex_getprioceiling(const pthread_mutex_t * __restrict__, + int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutex_init(pthread_mutex_t * __restrict__, + const pthread_mutexattr_t * _Nullable __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use OSAllocatedUnfairLock's withLock or NSLock for async-safe scoped locking" "\")"))) +int pthread_mutex_lock(pthread_mutex_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutex_setprioceiling(pthread_mutex_t * __restrict__, int, + int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use OSAllocatedUnfairLock's withLockIfAvailable or NSLock for async-safe scoped locking" "\")"))) +int pthread_mutex_trylock(pthread_mutex_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use OSAllocatedUnfairLock's withLock or NSLock for async-safe scoped locking" "\")"))) +int pthread_mutex_unlock(pthread_mutex_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_destroy(pthread_mutexattr_t *) __asm("_" "pthread_mutexattr_destroy" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t * __restrict__, + int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_getprotocol(const pthread_mutexattr_t * __restrict__, + int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_getpshared(const pthread_mutexattr_t * __restrict__, + int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_gettype(const pthread_mutexattr_t * __restrict__, + int * __restrict__); +__attribute__((availability(macos,introduced=10.13.4))) __attribute__((availability(ios,introduced=11.3))) __attribute__((availability(watchos,introduced=4.3))) __attribute__((availability(tvos,introduced=11.3))) +int pthread_mutexattr_getpolicy_np(const pthread_mutexattr_t * __restrict__, + int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_init(pthread_mutexattr_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_mutexattr_settype(pthread_mutexattr_t *, int); +__attribute__((availability(macos,introduced=10.7))) __attribute__((availability(ios,introduced=5.0))) +int pthread_mutexattr_setpolicy_np(pthread_mutexattr_t *, int); +__attribute__((availability(swift,unavailable,message="Use lazily initialized globals instead"))) +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_once(pthread_once_t *, void (* _Nonnull)(void)); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_rwlock_destroy(pthread_rwlock_t * ) __asm("_" "pthread_rwlock_destroy" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_rwlock_init(pthread_rwlock_t * __restrict__, + const pthread_rwlockattr_t * _Nullable __restrict__) + __asm("_" "pthread_rwlock_init" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use async-safe scoped locking instead" "\")"))) +int pthread_rwlock_rdlock(pthread_rwlock_t *) __asm("_" "pthread_rwlock_rdlock" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use async-safe scoped locking instead" "\")"))) +int pthread_rwlock_tryrdlock(pthread_rwlock_t *) __asm("_" "pthread_rwlock_tryrdlock" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use async-safe scoped locking instead" "\")"))) +int pthread_rwlock_trywrlock(pthread_rwlock_t *) __asm("_" "pthread_rwlock_trywrlock" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use async-safe scoped locking instead" "\")"))) +int pthread_rwlock_wrlock(pthread_rwlock_t *) __asm("_" "pthread_rwlock_wrlock" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use async-safe scoped locking instead" "\")"))) +int pthread_rwlock_unlock(pthread_rwlock_t *) __asm("_" "pthread_rwlock_unlock" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_rwlockattr_destroy(pthread_rwlockattr_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t * __restrict__, + int * __restrict__); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_rwlockattr_init(pthread_rwlockattr_t *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +pthread_t pthread_self(void); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use Task cancellation instead" "\")"))) +int pthread_setcancelstate(int , int * _Nullable) + __asm("_" "pthread_setcancelstate" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use Task cancellation instead" "\")"))) +int pthread_setcanceltype(int , int * _Nullable) + __asm("_" "pthread_setcanceltype" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_setconcurrency(int); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_setschedparam(pthread_t, int, const struct sched_param *); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use Task Local Values instead" "\")"))) +int pthread_setspecific(pthread_key_t , const void * _Nullable); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use Task cancellation instead" "\")"))) +void pthread_testcancel(void) __asm("_" "pthread_testcancel" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_is_threaded_np(void); +__attribute__((availability(macos,introduced=10.6))) __attribute__((availability(ios,introduced=3.2))) +int pthread_threadid_np(pthread_t _Nullable,__uint64_t* _Nullable); +__attribute__((availability(macos,introduced=10.6))) __attribute__((availability(ios,introduced=3.2))) +int pthread_getname_np(pthread_t,char*,size_t); +__attribute__((availability(macos,introduced=10.6))) __attribute__((availability(ios,introduced=3.2))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Thread lifecycle is owned by Swift Concurrency runtime" "\")"))) +int pthread_setname_np(const char*); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_main_np(void); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +mach_port_t pthread_mach_thread_np(pthread_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +size_t pthread_get_stacksize_np(pthread_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +void* pthread_get_stackaddr_np(pthread_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_cond_signal_thread_np(pthread_cond_t *, pthread_t _Nullable); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use an asynchronous wait instead of a synchronous wait" "\")"))) +int pthread_cond_timedwait_relative_np(pthread_cond_t *, pthread_mutex_t *, + const struct timespec * _Nullable); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_create_suspended_np( + pthread_t _Nullable * _Nonnull, const pthread_attr_t * _Nullable, + void * _Nullable (* _Nonnull)(void * _Nullable), void * _Nullable); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_kill(pthread_t, int); +__attribute__((availability(macos,introduced=10.5))) __attribute__((availability(ios,introduced=2.0))) +_Nullable pthread_t pthread_from_mach_thread_np(mach_port_t); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +int pthread_sigmask(int, const sigset_t * _Nullable, sigset_t * _Nullable) + __asm("_" "pthread_sigmask" ); +__attribute__((availability(macos,introduced=10.4))) __attribute__((availability(ios,introduced=2.0))) +__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" "Use Task.yield(), or await a condition instead of spinning" "\")"))) +void pthread_yield_np(void); +__attribute__((availability(macos,introduced=11.0))) +__attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(driverkit,unavailable))) +void pthread_jit_write_protect_np(int enabled); +__attribute__((availability(macos,introduced=11.0))) +__attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(driverkit,unavailable))) +int pthread_jit_write_protect_supported_np(void); +typedef int (*pthread_jit_write_callback_t)(void * _Nullable ctx); +__attribute__((availability(macos,introduced=11.4))) +__attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(driverkit,unavailable))) +__attribute__((availability(swift,unavailable,message="This interface cannot be safely used from Swift"))) +int pthread_jit_write_with_callback_np( + pthread_jit_write_callback_t _Nonnull callback, void * _Nullable ctx); +__attribute__((availability(macos,introduced=12.1))) +__attribute__((availability(ios,unavailable))) __attribute__((availability(tvos,unavailable))) __attribute__((availability(watchos,unavailable))) __attribute__((availability(driverkit,unavailable))) +void pthread_jit_write_freeze_callbacks_np(void); +__attribute__((availability(macos,introduced=11.0))) __attribute__((availability(ios,introduced=14.2))) __attribute__((availability(tvos,introduced=14.2))) __attribute__((availability(watchos,introduced=7.1))) +int +pthread_cpu_number_np(size_t *cpu_number_out); +typedef pthread_t rb_nativethread_id_t; +typedef pthread_mutex_t rb_nativethread_lock_t; +typedef pthread_cond_t rb_nativethread_cond_t; +rb_nativethread_id_t rb_nativethread_self(void); +void rb_nativethread_lock_initialize(rb_nativethread_lock_t *lock); +void rb_nativethread_lock_destroy(rb_nativethread_lock_t *lock); +void rb_nativethread_lock_lock(rb_nativethread_lock_t *lock); +void rb_nativethread_lock_unlock(rb_nativethread_lock_t *lock); +void rb_native_mutex_lock(rb_nativethread_lock_t *lock); +int rb_native_mutex_trylock(rb_nativethread_lock_t *lock); +void rb_native_mutex_unlock(rb_nativethread_lock_t *lock); +void rb_native_mutex_initialize(rb_nativethread_lock_t *lock); +void rb_native_mutex_destroy(rb_nativethread_lock_t *lock); +void rb_native_cond_signal(rb_nativethread_cond_t *cond); +void rb_native_cond_broadcast(rb_nativethread_cond_t *cond); +void rb_native_cond_wait(rb_nativethread_cond_t *cond, rb_nativethread_lock_t *mutex); +void rb_native_cond_timedwait(rb_nativethread_cond_t *cond, rb_nativethread_lock_t *mutex, unsigned long msec); +void rb_native_cond_initialize(rb_nativethread_cond_t *cond); +void rb_native_cond_destroy(rb_nativethread_cond_t *cond); +void *rb_allocate_sigaltstack(void); +void *rb_register_sigaltstack(void *); + +struct rb_thread_sched_item { + union { + struct ccan_list_node ubf; + struct ccan_list_node readyq; + } node; +}; +struct rb_native_thread { + int id; + rb_nativethread_id_t thread_id; + struct rb_thread_struct *running_thread; + struct + { + rb_nativethread_cond_t intr; + rb_nativethread_cond_t readyq; + } cond; + void *altstack; +}; +struct rb_thread_sched { + const struct rb_thread_struct *running; + rb_nativethread_lock_t lock; + struct ccan_list_head readyq; + const struct rb_thread_struct *timer; + int timer_err; + rb_nativethread_cond_t switch_cond; + rb_nativethread_cond_t switch_wait_cond; + int need_yield; + int wait_yield; +}; +struct rb_execution_context_struct *rb_current_ec(void); +void rb_current_ec_set(struct rb_execution_context_struct *); +void rb_vm_encoded_insn_data_table_init(void); +typedef unsigned long rb_num_t; +typedef signed long rb_snum_t; +enum ruby_tag_type { + RUBY_TAG_NONE = 0x0, + RUBY_TAG_RETURN = 0x1, + RUBY_TAG_BREAK = 0x2, + RUBY_TAG_NEXT = 0x3, + RUBY_TAG_RETRY = 0x4, + RUBY_TAG_REDO = 0x5, + RUBY_TAG_RAISE = 0x6, + RUBY_TAG_THROW = 0x7, + RUBY_TAG_FATAL = 0x8, + RUBY_TAG_MASK = 0xf +}; +enum ruby_vm_throw_flags { + VM_THROW_NO_ESCAPE_FLAG = 0x8000, + VM_THROW_STATE_MASK = 0xff +}; +struct rb_thread_struct; +struct rb_control_frame_struct; +typedef struct rb_compile_option_struct rb_compile_option_t; +union ic_serial_entry { + rb_serial_t raw; + VALUE data[2]; +}; +struct iseq_inline_constant_cache_entry { + VALUE flags; + VALUE value; + VALUE _unused1; + VALUE _unused2; + const rb_cref_t *ic_cref; +}; +__extension__ _Static_assert((__builtin_offsetof(struct iseq_inline_constant_cache_entry, ic_cref) + sizeof(const rb_cref_t *)) <= (sizeof(struct RBasic) + sizeof(VALUE[3])), "sizeof_iseq_inline_constant_cache_entry" ": " "(offsetof(struct iseq_inline_constant_cache_entry, ic_cref) + sizeof(const rb_cref_t *)) <= RVALUE_SIZE"); +struct iseq_inline_constant_cache { + struct iseq_inline_constant_cache_entry *entry; + const ID *segments; +}; +struct iseq_inline_iv_cache_entry { + uintptr_t value; + ID iv_set_name; +}; +struct iseq_inline_cvar_cache_entry { + struct rb_cvar_class_tbl_entry *entry; +}; +union iseq_inline_storage_entry { + struct { + struct rb_thread_struct *running_thread; + VALUE value; + } once; + struct iseq_inline_constant_cache ic_cache; + struct iseq_inline_iv_cache_entry iv_cache; +}; +struct rb_calling_info { + const struct rb_callinfo *ci; + const struct rb_callcache *cc; + VALUE block_handler; + VALUE recv; + int argc; + int kw_splat; +}; +struct rb_execution_context_struct; +typedef struct rb_iseq_location_struct { + VALUE pathobj; + VALUE base_label; + VALUE label; + int first_lineno; + int node_id; + rb_code_location_t code_location; +} rb_iseq_location_t; +static inline VALUE +pathobj_path(VALUE pathobj) +{ + if ((__builtin_constant_p(RUBY_T_STRING) ? rbimpl_RB_TYPE_P_fastpath((pathobj), (RUBY_T_STRING)) : (RB_TYPE_P)((pathobj), (RUBY_T_STRING)))) { + return pathobj; + } + else { + ((void)0); + return RARRAY_AREF(pathobj, 0); + } +} +static inline VALUE +pathobj_realpath(VALUE pathobj) +{ + if ((__builtin_constant_p(RUBY_T_STRING) ? rbimpl_RB_TYPE_P_fastpath((pathobj), (RUBY_T_STRING)) : (RB_TYPE_P)((pathobj), (RUBY_T_STRING)))) { + return pathobj; + } + else { + ((void)0); + return RARRAY_AREF(pathobj, 1); + } +} +struct rb_mjit_unit; +typedef uintptr_t iseq_bits_t; +enum rb_iseq_type { + ISEQ_TYPE_TOP, + ISEQ_TYPE_METHOD, + ISEQ_TYPE_BLOCK, + ISEQ_TYPE_CLASS, + ISEQ_TYPE_RESCUE, + ISEQ_TYPE_ENSURE, + ISEQ_TYPE_EVAL, + ISEQ_TYPE_MAIN, + ISEQ_TYPE_PLAIN +}; +struct rb_iseq_constant_body { + enum rb_iseq_type type; + unsigned int iseq_size; + VALUE *iseq_encoded; + struct { + struct { + unsigned int has_lead : 1; + unsigned int has_opt : 1; + unsigned int has_rest : 1; + unsigned int has_post : 1; + unsigned int has_kw : 1; + unsigned int has_kwrest : 1; + unsigned int has_block : 1; + unsigned int ambiguous_param0 : 1; + unsigned int accepts_no_kwarg : 1; + unsigned int ruby2_keywords: 1; + } flags; + unsigned int size; + int lead_num; + int opt_num; + int rest_start; + int post_start; + int post_num; + int block_start; + const VALUE *opt_table; + const struct rb_iseq_param_keyword { + int num; + int required_num; + int bits_start; + int rest_start; + const ID *table; + VALUE *default_values; + } *keyword; + } param; + rb_iseq_location_t location; + struct iseq_insn_info { + const struct iseq_insn_info_entry *body; + unsigned int *positions; + unsigned int size; + struct succ_index_table *succ_index_table; + } insns_info; + const ID *local_table; + struct iseq_catch_table *catch_table; + const struct rb_iseq_struct *parent_iseq; + struct rb_iseq_struct *local_iseq; + union iseq_inline_storage_entry *is_entries; + struct rb_call_data *call_data; + struct { + rb_snum_t flip_count; + VALUE script_lines; + VALUE coverage; + VALUE pc2branchindex; + VALUE *original_iseq; + } variable; + unsigned int local_table_size; + unsigned int ic_size; + unsigned int ise_size; + unsigned int ivc_size; + unsigned int icvarc_size; + unsigned int ci_size; + unsigned int stack_max; + _Bool catch_except_p; + _Bool builtin_inline_p; + union { + iseq_bits_t * list; + iseq_bits_t single; + } mark_bits; + struct rb_id_table *outer_variables; + const rb_iseq_t *mandatory_only_iseq; + VALUE (*jit_func)(struct rb_execution_context_struct *, struct rb_control_frame_struct *); + long unsigned total_calls; + struct rb_mjit_unit *mjit_unit; +}; +struct rb_iseq_struct { + VALUE flags; + VALUE wrapper; + struct rb_iseq_constant_body *body; + union { + struct iseq_compile_data *compile_data; + struct { + VALUE obj; + int index; + } loader; + struct { + struct rb_hook_list_struct *local_hooks; + rb_event_flag_t global_trace_events; + } exec; + } aux; +}; +static inline const rb_iseq_t * +rb_iseq_check(const rb_iseq_t *iseq) +{ + return iseq; +} +static inline const rb_iseq_t * +def_iseq_ptr(rb_method_definition_t *def) +{ + return rb_iseq_check(def->body.iseq.iseqptr); +} +enum ruby_special_exceptions { + ruby_error_reenter, + ruby_error_nomemory, + ruby_error_sysstack, + ruby_error_stackfatal, + ruby_error_stream_closed, + ruby_special_error_count +}; +struct rb_vm_struct; +typedef void rb_vm_at_exit_func(struct rb_vm_struct*); +typedef struct rb_at_exit_list { + rb_vm_at_exit_func *func; + struct rb_at_exit_list *next; +} rb_at_exit_list; +struct rb_objspace; +struct rb_objspace *rb_objspace_alloc(void); +void rb_objspace_free(struct rb_objspace *); +void rb_objspace_call_finalizer(struct rb_objspace *); +typedef struct rb_hook_list_struct { + struct rb_event_hook_struct *hooks; + rb_event_flag_t events; + unsigned int running; + _Bool need_clean; + _Bool is_local; +} rb_hook_list_t; +typedef const struct rb_builtin_function *RB_BUILTIN; +typedef struct rb_vm_struct { + VALUE self; + struct { + struct ccan_list_head set; + unsigned int cnt; + unsigned int blocking_cnt; + struct rb_ractor_struct *main_ractor; + struct rb_thread_struct *main_thread; + struct { + rb_nativethread_lock_t lock; + struct rb_ractor_struct *lock_owner; + unsigned int lock_rec; + _Bool barrier_waiting; + unsigned int barrier_cnt; + rb_nativethread_cond_t barrier_cond; + rb_nativethread_cond_t terminate_cond; + _Bool terminate_waiting; + } sync; + } ractor; + void *main_altstack; + rb_serial_t fork_gen; + rb_nativethread_lock_t waitpid_lock; + struct ccan_list_head waiting_pids; + struct ccan_list_head waiting_grps; + struct ccan_list_head waiting_fds; + volatile int ubf_async_safe; + unsigned int running: 1; + unsigned int thread_abort_on_exception: 1; + unsigned int thread_report_on_exception: 1; + unsigned int thread_ignore_deadlock: 1; + VALUE mark_object_ary; + const VALUE special_exceptions[ruby_special_error_count]; + rb_shape_t *shape_list; + rb_shape_t *root_shape; + shape_id_t next_shape_id; + VALUE top_self; + VALUE load_path; + VALUE load_path_snapshot; + VALUE load_path_check_cache; + VALUE expanded_load_path; + VALUE loaded_features; + VALUE loaded_features_snapshot; + VALUE loaded_features_realpaths; + VALUE loaded_features_realpath_map; + struct st_table *loaded_features_index; + struct st_table *loading_table; + struct st_table *static_ext_inits; + struct { + VALUE cmd[32]; + } trap_list; + struct st_table *ensure_rollback_table; + struct rb_postponed_job_struct *postponed_job_buffer; + rb_atomic_t postponed_job_index; + int src_encoding_index; + struct ccan_list_head workqueue; + rb_nativethread_lock_t workqueue_lock; + VALUE orig_progname, progname; + VALUE coverages, me2counter; + int coverage_mode; + st_table * defined_module_hash; + struct rb_objspace *objspace; + rb_at_exit_list *at_exit; + st_table *frozen_strings; + const struct rb_builtin_function *builtin_function_table; + int builtin_inline_index; + struct rb_id_table *negative_cme_table; + st_table *overloaded_cme_table; + struct rb_id_table *constant_cache; + const struct rb_callcache *global_cc_cache_table[1023]; + struct { + size_t thread_vm_stack_size; + size_t thread_machine_stack_size; + size_t fiber_vm_stack_size; + size_t fiber_machine_stack_size; + } default_params; +} rb_vm_t; +struct rb_captured_block { + VALUE self; + const VALUE *ep; + union { + const rb_iseq_t *iseq; + const struct vm_ifunc *ifunc; + VALUE val; + } code; +}; +enum rb_block_handler_type { + block_handler_type_iseq, + block_handler_type_ifunc, + block_handler_type_symbol, + block_handler_type_proc +}; +enum rb_block_type { + block_type_iseq, + block_type_ifunc, + block_type_symbol, + block_type_proc +}; +struct rb_block { + union { + struct rb_captured_block captured; + VALUE symbol; + VALUE proc; + } as; + enum rb_block_type type; +}; +typedef struct rb_control_frame_struct { + const VALUE *pc; + VALUE *sp; + const rb_iseq_t *iseq; + VALUE self; + const VALUE *ep; + const void *block_code; + VALUE *__bp__; + void *jit_return; +} rb_control_frame_t; +extern const rb_data_type_t ruby_threadptr_data_type; +static inline struct rb_thread_struct * +rb_thread_ptr(VALUE thval) +{ + return (struct rb_thread_struct *)rb_check_typeddata(thval, &ruby_threadptr_data_type); +} +enum rb_thread_status { + THREAD_RUNNABLE, + THREAD_STOPPED, + THREAD_STOPPED_FOREVER, + THREAD_KILLED +}; +typedef sigjmp_buf rb_jmpbuf_t; +struct rb_vm_tag { + VALUE tag; + VALUE retval; + rb_jmpbuf_t buf; + struct rb_vm_tag *prev; + enum ruby_tag_type state; + unsigned int lock_rec; +}; +__extension__ _Static_assert(__builtin_offsetof(struct rb_vm_tag, buf) > 0, "rb_vm_tag_buf_offset" ": " "offsetof(struct rb_vm_tag, buf) > 0"); +__extension__ _Static_assert(__builtin_offsetof(struct rb_vm_tag, buf) + sizeof(rb_jmpbuf_t) < sizeof(struct rb_vm_tag), "rb_vm_tag_buf_end" ": " "offsetof(struct rb_vm_tag, buf) + sizeof(rb_jmpbuf_t) < sizeof(struct rb_vm_tag)"); +struct rb_unblock_callback { + rb_unblock_function_t *func; + void *arg; +}; +struct rb_mutex_struct; +typedef struct rb_ensure_entry { + VALUE marker; + VALUE (*e_proc)(VALUE); + VALUE data2; +} rb_ensure_entry_t; +typedef struct rb_ensure_list { + struct rb_ensure_list *next; + struct rb_ensure_entry entry; +} rb_ensure_list_t; +typedef struct rb_fiber_struct rb_fiber_t; +struct rb_waiting_list { + struct rb_waiting_list *next; + struct rb_thread_struct *thread; + struct rb_fiber_struct *fiber; +}; +struct rb_execution_context_struct { + VALUE *vm_stack; + size_t vm_stack_size; + rb_control_frame_t *cfp; + struct rb_vm_tag *tag; + rb_atomic_t interrupt_flag; + rb_atomic_t interrupt_mask; + rb_fiber_t *fiber_ptr; + struct rb_thread_struct *thread_ptr; + struct rb_id_table *local_storage; + VALUE local_storage_recursive_hash; + VALUE local_storage_recursive_hash_for_trace; + VALUE storage; + const VALUE *root_lep; + VALUE root_svar; + rb_ensure_list_t *ensure_list; + struct rb_trace_arg_struct *trace_arg; + VALUE errinfo; + VALUE passed_block_handler; + uint8_t raised_flag; + enum method_missing_reason method_missing_reason : 8; + VALUE private_const_reference; + struct { + VALUE *stack_start; + VALUE *stack_end; + size_t stack_maxsize; + __declspec(align(8)) jmp_buf regs; + } machine; +}; +typedef struct rb_execution_context_struct rb_execution_context_t; +void rb_ec_set_vm_stack(rb_execution_context_t *ec, VALUE *stack, size_t size); +void rb_ec_initialize_vm_stack(rb_execution_context_t *ec, VALUE *stack, size_t size); +void rb_ec_clear_vm_stack(rb_execution_context_t *ec); +struct rb_ext_config { + _Bool ractor_safe; +}; +typedef struct rb_ractor_struct rb_ractor_t; +struct rb_native_thread; +typedef struct rb_thread_struct { + struct ccan_list_node lt_node; + VALUE self; + rb_ractor_t *ractor; + rb_vm_t *vm; + struct rb_native_thread *nt; + rb_execution_context_t *ec; + struct rb_thread_sched_item sched; + rb_atomic_t serial; + VALUE last_status; + struct rb_calling_info *calling; + VALUE top_self; + VALUE top_wrapper; + enum rb_thread_status status : 2; + unsigned int locking_native_thread : 1; + unsigned int to_kill : 1; + unsigned int abort_on_exception: 1; + unsigned int report_on_exception: 1; + unsigned int pending_interrupt_queue_checked: 1; + int8_t priority; + uint32_t running_time_us; + void *blocking_region_buffer; + VALUE thgroup; + VALUE value; + VALUE pending_interrupt_queue; + VALUE pending_interrupt_mask_stack; + rb_nativethread_lock_t interrupt_lock; + struct rb_unblock_callback unblock; + VALUE locking_mutex; + struct rb_mutex_struct *keeping_mutexes; + struct rb_waiting_list *join_list; + union { + struct { + VALUE proc; + VALUE args; + int kw_splat; + } proc; + struct { + VALUE (*func)(void *); + void *arg; + } func; + } invoke_arg; + enum thread_invoke_type { + thread_invoke_type_none = 0, + thread_invoke_type_proc, + thread_invoke_type_ractor_proc, + thread_invoke_type_func + } invoke_type; + VALUE stat_insn_usage; + rb_fiber_t *root_fiber; + VALUE scheduler; + unsigned int blocking; + VALUE name; + struct rb_ext_config ext_config; +} rb_thread_t; +static inline unsigned int +rb_th_serial(const rb_thread_t *th) +{ + return (unsigned int)th->serial; +} +typedef enum { + VM_DEFINECLASS_TYPE_CLASS = 0x00, + VM_DEFINECLASS_TYPE_SINGLETON_CLASS = 0x01, + VM_DEFINECLASS_TYPE_MODULE = 0x02, + VM_DEFINECLASS_TYPE_MASK = 0x07 +} rb_vm_defineclass_type_t; +rb_iseq_t *rb_iseq_new (const rb_ast_body_t *ast, VALUE name, VALUE path, VALUE realpath, const rb_iseq_t *parent, enum rb_iseq_type); +rb_iseq_t *rb_iseq_new_top (const rb_ast_body_t *ast, VALUE name, VALUE path, VALUE realpath, const rb_iseq_t *parent); +rb_iseq_t *rb_iseq_new_main (const rb_ast_body_t *ast, VALUE path, VALUE realpath, const rb_iseq_t *parent, int opt); +rb_iseq_t *rb_iseq_new_eval (const rb_ast_body_t *ast, VALUE name, VALUE path, VALUE realpath, int first_lineno, const rb_iseq_t *parent, int isolated_depth); +rb_iseq_t *rb_iseq_new_with_opt(const rb_ast_body_t *ast, VALUE name, VALUE path, VALUE realpath, int first_lineno, const rb_iseq_t *parent, int isolated_depth, + enum rb_iseq_type, const rb_compile_option_t*); +struct iseq_link_anchor; +struct rb_iseq_new_with_callback_callback_func { + VALUE flags; + VALUE reserved; + void (*func)(rb_iseq_t *, struct iseq_link_anchor *, const void *); + const void *data; +}; +static inline struct rb_iseq_new_with_callback_callback_func * +rb_iseq_new_with_callback_new_callback( + void (*func)(rb_iseq_t *, struct iseq_link_anchor *, const void *), const void *ptr) +{ + VALUE memo = rb_imemo_new(imemo_ifunc, (VALUE)func, (VALUE)ptr, ((VALUE)RUBY_Qundef), ((VALUE)RUBY_Qfalse)); + return (struct rb_iseq_new_with_callback_callback_func *)memo; +} +rb_iseq_t *rb_iseq_new_with_callback(const struct rb_iseq_new_with_callback_callback_func * ifunc, + VALUE name, VALUE path, VALUE realpath, int first_lineno, + const rb_iseq_t *parent, enum rb_iseq_type, const rb_compile_option_t*); +VALUE rb_iseq_disasm(const rb_iseq_t *iseq); +int rb_iseq_disasm_insn(VALUE str, const VALUE *iseqval, size_t pos, const rb_iseq_t *iseq, VALUE child); +attr_index_t rb_estimate_iv_count(VALUE klass, const rb_iseq_t * initialize_iseq); +VALUE rb_iseq_coverage(const rb_iseq_t *iseq); +extern VALUE rb_cISeq; +extern VALUE rb_cRubyVM; +extern VALUE rb_mRubyVMFrozenCore; +extern VALUE rb_block_param_proxy; +typedef struct { + const struct rb_block block; + unsigned int is_from_method: 1; + unsigned int is_lambda: 1; + unsigned int is_isolated: 1; +} rb_proc_t; +VALUE rb_proc_isolate(VALUE self); +VALUE rb_proc_isolate_bang(VALUE self); +VALUE rb_proc_ractor_make_shareable(VALUE self); +typedef struct { + VALUE flags; + rb_iseq_t *iseq; + const VALUE *ep; + const VALUE *env; + unsigned int env_size; +} rb_env_t; +extern const rb_data_type_t ruby_binding_data_type; +typedef struct { + const struct rb_block block; + const VALUE pathobj; + int first_lineno; +} rb_binding_t; +enum vm_check_match_type { + VM_CHECKMATCH_TYPE_WHEN = 1, + VM_CHECKMATCH_TYPE_CASE = 2, + VM_CHECKMATCH_TYPE_RESCUE = 3 +}; +enum vm_special_object_type { + VM_SPECIAL_OBJECT_VMCORE = 1, + VM_SPECIAL_OBJECT_CBASE, + VM_SPECIAL_OBJECT_CONST_BASE +}; +enum vm_svar_index { + VM_SVAR_LASTLINE = 0, + VM_SVAR_BACKREF = 1, + VM_SVAR_EXTRA_START = 2, + VM_SVAR_FLIPFLOP_START = 2 +}; +typedef struct iseq_inline_constant_cache *IC; +typedef struct iseq_inline_iv_cache_entry *IVC; +typedef struct iseq_inline_cvar_cache_entry *ICVARC; +typedef union iseq_inline_storage_entry *ISE; +typedef const struct rb_callinfo *CALL_INFO; +typedef const struct rb_callcache *CALL_CACHE; +typedef struct rb_call_data *CALL_DATA; +typedef VALUE CDHASH; +typedef rb_control_frame_t * + (*rb_insn_func_t)(rb_execution_context_t *, rb_control_frame_t *); +enum vm_frame_env_flags { + VM_FRAME_MAGIC_METHOD = 0x11110001, + VM_FRAME_MAGIC_BLOCK = 0x22220001, + VM_FRAME_MAGIC_CLASS = 0x33330001, + VM_FRAME_MAGIC_TOP = 0x44440001, + VM_FRAME_MAGIC_CFUNC = 0x55550001, + VM_FRAME_MAGIC_IFUNC = 0x66660001, + VM_FRAME_MAGIC_EVAL = 0x77770001, + VM_FRAME_MAGIC_RESCUE = 0x78880001, + VM_FRAME_MAGIC_DUMMY = 0x79990001, + VM_FRAME_MAGIC_MASK = 0x7fff0001, + VM_FRAME_FLAG_FINISH = 0x0020, + VM_FRAME_FLAG_BMETHOD = 0x0040, + VM_FRAME_FLAG_CFRAME = 0x0080, + VM_FRAME_FLAG_LAMBDA = 0x0100, + VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM = 0x0200, + VM_FRAME_FLAG_CFRAME_KW = 0x0400, + VM_FRAME_FLAG_PASSED = 0x0800, + VM_ENV_FLAG_LOCAL = 0x0002, + VM_ENV_FLAG_ESCAPED = 0x0004, + VM_ENV_FLAG_WB_REQUIRED = 0x0008, + VM_ENV_FLAG_ISOLATED = 0x0010, +}; +static inline void VM_FORCE_WRITE_SPECIAL_CONST(const VALUE *ptr, VALUE special_const_value); +static inline void +VM_ENV_FLAGS_SET(const VALUE *ep, VALUE flag) +{ + VALUE flags = ep[( 0)]; + ((void)0); + VM_FORCE_WRITE_SPECIAL_CONST(&ep[( 0)], flags | flag); +} +static inline void +VM_ENV_FLAGS_UNSET(const VALUE *ep, VALUE flag) +{ + VALUE flags = ep[( 0)]; + ((void)0); + VM_FORCE_WRITE_SPECIAL_CONST(&ep[( 0)], flags & ~flag); +} +static inline unsigned long +VM_ENV_FLAGS(const VALUE *ep, long flag) +{ + VALUE flags = ep[( 0)]; + ((void)0); + return flags & flag; +} +static inline unsigned long +VM_FRAME_TYPE(const rb_control_frame_t *cfp) +{ + return VM_ENV_FLAGS(cfp->ep, VM_FRAME_MAGIC_MASK); +} +static inline int +VM_FRAME_LAMBDA_P(const rb_control_frame_t *cfp) +{ + return VM_ENV_FLAGS(cfp->ep, VM_FRAME_FLAG_LAMBDA) != 0; +} +static inline int +VM_FRAME_CFRAME_KW_P(const rb_control_frame_t *cfp) +{ + return VM_ENV_FLAGS(cfp->ep, VM_FRAME_FLAG_CFRAME_KW) != 0; +} +static inline int +VM_FRAME_FINISHED_P(const rb_control_frame_t *cfp) +{ + return VM_ENV_FLAGS(cfp->ep, VM_FRAME_FLAG_FINISH) != 0; +} +static inline int +VM_FRAME_BMETHOD_P(const rb_control_frame_t *cfp) +{ + return VM_ENV_FLAGS(cfp->ep, VM_FRAME_FLAG_BMETHOD) != 0; +} +static inline int +rb_obj_is_iseq(VALUE iseq) +{ + return imemo_type_p(iseq, imemo_iseq); +} +static inline int +VM_FRAME_CFRAME_P(const rb_control_frame_t *cfp) +{ + int cframe_p = VM_ENV_FLAGS(cfp->ep, VM_FRAME_FLAG_CFRAME) != 0; + ((void)0); + return cframe_p; +} +static inline int +VM_FRAME_RUBYFRAME_P(const rb_control_frame_t *cfp) +{ + return !VM_FRAME_CFRAME_P(cfp); +} +static inline int +VM_ENV_LOCAL_P(const VALUE *ep) +{ + return VM_ENV_FLAGS(ep, VM_ENV_FLAG_LOCAL) ? 1 : 0; +} +static inline const VALUE * +VM_ENV_PREV_EP(const VALUE *ep) +{ + ((void)0); + return ((void *)(((ep[(-1)])) & ~0x03)); +} +static inline VALUE +VM_ENV_BLOCK_HANDLER(const VALUE *ep) +{ + ((void)0); + return ep[(-1)]; +} +static inline int +VM_ENV_ESCAPED_P(const VALUE *ep) +{ + ((void)0); + return VM_ENV_FLAGS(ep, VM_ENV_FLAG_ESCAPED) ? 1 : 0; +} +__attribute__((__nonnull__ (1))) +static inline VALUE +VM_ENV_ENVVAL(const VALUE *ep) +{ + VALUE envval = ep[( 1)]; + ((void)0); + ((void)0); + return envval; +} +__attribute__((__nonnull__ (1))) +static inline const rb_env_t * +VM_ENV_ENVVAL_PTR(const VALUE *ep) +{ + return (const rb_env_t *)VM_ENV_ENVVAL(ep); +} +static inline const rb_env_t * +vm_env_new(VALUE *env_ep, VALUE *env_body, unsigned int env_size, const rb_iseq_t *iseq) +{ + rb_env_t *env = (rb_env_t *)rb_imemo_new(imemo_env, (VALUE)env_ep, (VALUE)env_body, 0, (VALUE)iseq); + env->env_size = env_size; + env_ep[( 1)] = (VALUE)env; + return env; +} +static inline void +VM_FORCE_WRITE(const VALUE *ptr, VALUE v) +{ + *((VALUE *)ptr) = v; +} +static inline void +VM_FORCE_WRITE_SPECIAL_CONST(const VALUE *ptr, VALUE special_const_value) +{ + ((void)0); + VM_FORCE_WRITE(ptr, special_const_value); +} +static inline void +VM_STACK_ENV_WRITE(const VALUE *ep, int index, VALUE v) +{ + ((void)0); + VM_FORCE_WRITE(&ep[index], v); +}static inline +const VALUE *rb_vm_ep_local_ep(const VALUE *ep); +const VALUE *rb_vm_proc_local_ep(VALUE proc);static inline +void rb_vm_block_ep_update(VALUE obj, const struct rb_block *dst, const VALUE *ep); +void rb_vm_block_copy(VALUE obj, const struct rb_block *dst, const struct rb_block *src);static inline +VALUE rb_vm_frame_block_handler(const rb_control_frame_t *cfp); +static inline const rb_control_frame_t * +RUBY_VM_END_CONTROL_FRAME(const rb_execution_context_t *ec) +{ + return (rb_control_frame_t *)(ec->vm_stack + ec->vm_stack_size); +} +static inline int +RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(const rb_execution_context_t *ec, const rb_control_frame_t *cfp) +{ + return !((void *)(RUBY_VM_END_CONTROL_FRAME(ec)) > (void *)(cfp)); +} +static inline int +VM_BH_ISEQ_BLOCK_P(VALUE block_handler) +{ + if ((block_handler & 0x03) == 0x01) { + return 1; + } + else { + return 0; + } +} +static inline VALUE +VM_BH_FROM_ISEQ_BLOCK(const struct rb_captured_block *captured) +{ + VALUE block_handler = ((VALUE)(captured) | (0x01)); + ((void)0); + return block_handler; +} +static inline const struct rb_captured_block * +VM_BH_TO_ISEQ_BLOCK(VALUE block_handler) +{ + struct rb_captured_block *captured = ((void *)((block_handler) & ~0x03)); + ((void)0); + return captured; +} +static inline int +VM_BH_IFUNC_P(VALUE block_handler) +{ + if ((block_handler & 0x03) == 0x03) { + return 1; + } + else { + return 0; + } +} +static inline VALUE +VM_BH_FROM_IFUNC_BLOCK(const struct rb_captured_block *captured) +{ + VALUE block_handler = ((VALUE)(captured) | (0x03)); + ((void)0); + return block_handler; +} +static inline const struct rb_captured_block * +VM_BH_TO_IFUNC_BLOCK(VALUE block_handler) +{ + struct rb_captured_block *captured = ((void *)((block_handler) & ~0x03)); + ((void)0); + return captured; +} +static inline const struct rb_captured_block * +VM_BH_TO_CAPT_BLOCK(VALUE block_handler) +{ + struct rb_captured_block *captured = ((void *)((block_handler) & ~0x03)); + ((void)0); + return captured; +} +static inline enum rb_block_handler_type +vm_block_handler_type(VALUE block_handler) +{ + if (VM_BH_ISEQ_BLOCK_P(block_handler)) { + return block_handler_type_iseq; + } + else if (VM_BH_IFUNC_P(block_handler)) { + return block_handler_type_ifunc; + } + else if (RB_SYMBOL_P(block_handler)) { + return block_handler_type_symbol; + } + else { + ((void)0); + return block_handler_type_proc; + } +} +static inline void +vm_block_handler_verify(__attribute__ ((__unused__)) VALUE block_handler) +{ + ((void)0); +} +static inline int +vm_cfp_forwarded_bh_p(const rb_control_frame_t *cfp, VALUE block_handler) +{ + return ((VALUE) cfp->block_code) == block_handler; +} +static inline enum rb_block_type +vm_block_type(const struct rb_block *block) +{ + return block->type; +} +static inline void +vm_block_type_set(const struct rb_block *block, enum rb_block_type type) +{ + struct rb_block *mb = (struct rb_block *)block; + mb->type = type; +} +static inline const struct rb_block * +vm_proc_block(VALUE procval) +{ + ((void)0); + return &((rb_proc_t *)(((struct RTypedData *)(procval))->data))->block; +} +static inline const rb_iseq_t *vm_block_iseq(const struct rb_block *block); +static inline const VALUE *vm_block_ep(const struct rb_block *block); +static inline const rb_iseq_t * +vm_proc_iseq(VALUE procval) +{ + return vm_block_iseq(vm_proc_block(procval)); +} +static inline const VALUE * +vm_proc_ep(VALUE procval) +{ + return vm_block_ep(vm_proc_block(procval)); +} +static inline const rb_iseq_t * +vm_block_iseq(const struct rb_block *block) +{ + switch (vm_block_type(block)) { + case block_type_iseq: return rb_iseq_check(block->as.captured.code.iseq); + case block_type_proc: return vm_proc_iseq(block->as.proc); + case block_type_ifunc: + case block_type_symbol: return ((void*)0); + } + __builtin_unreachable(); + return ((void*)0); +} +static inline const VALUE * +vm_block_ep(const struct rb_block *block) +{ + switch (vm_block_type(block)) { + case block_type_iseq: + case block_type_ifunc: return block->as.captured.ep; + case block_type_proc: return vm_proc_ep(block->as.proc); + case block_type_symbol: return ((void*)0); + } + __builtin_unreachable(); + return ((void*)0); +} +static inline VALUE +vm_block_self(const struct rb_block *block) +{ + switch (vm_block_type(block)) { + case block_type_iseq: + case block_type_ifunc: + return block->as.captured.self; + case block_type_proc: + return vm_block_self(vm_proc_block(block->as.proc)); + case block_type_symbol: + return ((VALUE)RUBY_Qundef); + } + __builtin_unreachable(); + return ((VALUE)RUBY_Qundef); +} +static inline VALUE +VM_BH_TO_SYMBOL(VALUE block_handler) +{ + ((void)0); + return block_handler; +} +static inline VALUE +VM_BH_FROM_SYMBOL(VALUE symbol) +{ + ((void)0); + return symbol; +} +static inline VALUE +VM_BH_TO_PROC(VALUE block_handler) +{ + ((void)0); + return block_handler; +} +static inline VALUE +VM_BH_FROM_PROC(VALUE procval) +{ + ((void)0); + return procval; +} +VALUE rb_thread_alloc(VALUE klass); +VALUE rb_binding_alloc(VALUE klass); +VALUE rb_proc_alloc(VALUE klass); +VALUE rb_proc_dup(VALUE self); +extern void rb_vmdebug_stack_dump_raw(const rb_execution_context_t *ec, const rb_control_frame_t *cfp); +extern void rb_vmdebug_debug_print_pre(const rb_execution_context_t *ec, const rb_control_frame_t *cfp, const VALUE *_pc); +extern void rb_vmdebug_debug_print_post(const rb_execution_context_t *ec, const rb_control_frame_t *cfp +); +void rb_vm_bugreport(const void *); +typedef void (*ruby_sighandler_t)(int); +__attribute__((__format__(__printf__, 4, 5))) +__declspec(noreturn) void rb_bug_for_fatal_signal(ruby_sighandler_t default_sighandler, int sig, const void *, const char *fmt, ...); +VALUE rb_iseq_eval(const rb_iseq_t *iseq); +VALUE rb_iseq_eval_main(const rb_iseq_t *iseq); +VALUE rb_iseq_path(const rb_iseq_t *iseq); +VALUE rb_iseq_realpath(const rb_iseq_t *iseq); +VALUE rb_iseq_pathobj_new(VALUE path, VALUE realpath); +void rb_iseq_pathobj_set(const rb_iseq_t *iseq, VALUE path, VALUE realpath); +int rb_ec_frame_method_id_and_class(const rb_execution_context_t *ec, ID *idp, ID *called_idp, VALUE *klassp); +void rb_ec_setup_exception(const rb_execution_context_t *ec, VALUE mesg, VALUE cause); +VALUE rb_vm_invoke_proc(rb_execution_context_t *ec, rb_proc_t *proc, int argc, const VALUE *argv, int kw_splat, VALUE block_handler); +VALUE rb_vm_make_proc_lambda(const rb_execution_context_t *ec, const struct rb_captured_block *captured, VALUE klass, int8_t is_lambda); +static inline VALUE +rb_vm_make_proc(const rb_execution_context_t *ec, const struct rb_captured_block *captured, VALUE klass) +{ + return rb_vm_make_proc_lambda(ec, captured, klass, 0); +} +static inline VALUE +rb_vm_make_lambda(const rb_execution_context_t *ec, const struct rb_captured_block *captured, VALUE klass) +{ + return rb_vm_make_proc_lambda(ec, captured, klass, 1); +} +VALUE rb_vm_make_binding(const rb_execution_context_t *ec, const rb_control_frame_t *src_cfp); +VALUE rb_vm_env_local_variables(const rb_env_t *env); +const rb_env_t *rb_vm_env_prev_env(const rb_env_t *env); +const VALUE *rb_binding_add_dynavars(VALUE bindval, rb_binding_t *bind, int dyncount, const ID *dynvars); +void rb_vm_inc_const_missing_count(void); +VALUE rb_vm_call_kw(rb_execution_context_t *ec, VALUE recv, VALUE id, int argc, + const VALUE *argv, const rb_callable_method_entry_t *me, int kw_splat);static inline +void rb_vm_pop_frame_no_int(rb_execution_context_t *ec); +static void rb_vm_pop_frame(rb_execution_context_t *ec); +void rb_thread_start_timer_thread(void); +void rb_thread_stop_timer_thread(void); +void rb_thread_reset_timer_thread(void); +void rb_thread_wakeup_timer_thread(int); +static inline void +rb_vm_living_threads_init(rb_vm_t *vm) +{ + ccan_list_head_init(&vm->waiting_fds); + ccan_list_head_init(&vm->waiting_pids); + ccan_list_head_init(&vm->workqueue); + ccan_list_head_init(&vm->waiting_grps); + ccan_list_head_init(&vm->ractor.set); +} +typedef int rb_backtrace_iter_func(void *, VALUE, int, VALUE); +rb_control_frame_t *rb_vm_get_ruby_level_next_cfp(const rb_execution_context_t *ec, const rb_control_frame_t *cfp); +rb_control_frame_t *rb_vm_get_binding_creatable_next_cfp(const rb_execution_context_t *ec, const rb_control_frame_t *cfp); +int rb_vm_get_sourceline(const rb_control_frame_t *); +void rb_vm_stack_to_heap(rb_execution_context_t *ec); +void ruby_thread_init_stack(rb_thread_t *th); +rb_thread_t * ruby_thread_from_native(void); +int ruby_thread_set_native(rb_thread_t *th); +int rb_vm_control_frame_id_and_class(const rb_control_frame_t *cfp, ID *idp, ID *called_idp, VALUE *klassp); +void rb_vm_rewind_cfp(rb_execution_context_t *ec, rb_control_frame_t *cfp); +static VALUE rb_vm_bh_to_procval(const rb_execution_context_t *ec, VALUE block_handler); +void rb_vm_register_special_exception_str(enum ruby_special_exceptions sp, VALUE exception_class, VALUE mesg); +void rb_gc_mark_machine_stack(const rb_execution_context_t *ec);static inline +void rb_vm_rewrite_cref(rb_cref_t *node, VALUE old_klass, VALUE new_klass, rb_cref_t **new_cref_ptr); +static const rb_callable_method_entry_t *rb_vm_frame_method_entry(const rb_control_frame_t *cfp); +VALUE rb_catch_protect(VALUE t, rb_block_call_func *func, VALUE data, enum ruby_tag_type *stateptr); +rb_execution_context_t *rb_vm_main_ractor_ec(rb_vm_t *vm); +extern struct rb_ractor_struct *ruby_single_main_ractor; +extern rb_vm_t *ruby_current_vm_ptr; +extern rb_event_flag_t ruby_vm_event_flags; +extern rb_event_flag_t ruby_vm_event_enabled_global_flags; +extern unsigned int ruby_vm_event_local_num; +static inline rb_thread_t * +rb_ec_thread_ptr(const rb_execution_context_t *ec) +{ + return ec->thread_ptr; +} +static inline rb_ractor_t * +rb_ec_ractor_ptr(const rb_execution_context_t *ec) +{ + const rb_thread_t *th = rb_ec_thread_ptr(ec); + if (th) { + ((void)0); + return th->ractor; + } + else { + return ((void*)0); + } +} +static inline rb_vm_t * +rb_ec_vm_ptr(const rb_execution_context_t *ec) +{ + const rb_thread_t *th = rb_ec_thread_ptr(ec); + if (th) { + return th->vm; + } + else { + return ((void*)0); + } +} +static inline rb_execution_context_t * +rb_current_execution_context(_Bool expect_ec) +{ + rb_execution_context_t *ec = rb_current_ec(); + ((void)0); + return ec; +} +static inline rb_thread_t * +rb_current_thread(void) +{ + const rb_execution_context_t *ec = rb_current_execution_context(1); + return rb_ec_thread_ptr(ec); +} +static inline rb_ractor_t * +rb_current_ractor(void) +{ + if (ruby_single_main_ractor) { + return ruby_single_main_ractor; + } + else { + const rb_execution_context_t *ec = rb_current_execution_context(1); + return rb_ec_ractor_ptr(ec); + } +} +static inline rb_vm_t * +rb_current_vm(void) +{ + return ruby_current_vm_ptr; +} +void rb_ec_vm_lock_rec_release(const rb_execution_context_t *ec, + unsigned int recorded_lock_rec, + unsigned int current_lock_rec); +static inline unsigned int +rb_ec_vm_lock_rec(const rb_execution_context_t *ec) +{ + rb_vm_t *vm = rb_ec_vm_ptr(ec); + if (vm->ractor.sync.lock_owner != rb_ec_ractor_ptr(ec)) { + return 0; + } + else { + return vm->ractor.sync.lock_rec; + } +} +enum { + TIMER_INTERRUPT_MASK = 0x01, + PENDING_INTERRUPT_MASK = 0x02, + POSTPONED_JOB_INTERRUPT_MASK = 0x04, + TRAP_INTERRUPT_MASK = 0x08, + TERMINATE_INTERRUPT_MASK = 0x10, + VM_BARRIER_INTERRUPT_MASK = 0x20, +}; +static inline _Bool +RUBY_VM_INTERRUPTED_ANY(rb_execution_context_t *ec) +{ + return ec->interrupt_flag & ~(ec)->interrupt_mask; +} +VALUE rb_exc_set_backtrace(VALUE exc, VALUE bt); +int rb_signal_buff_size(void); +int rb_signal_exec(rb_thread_t *th, int sig); +void rb_threadptr_check_signal(rb_thread_t *mth); +void rb_threadptr_signal_raise(rb_thread_t *th, int sig); +void rb_threadptr_signal_exit(rb_thread_t *th); +int rb_threadptr_execute_interrupts(rb_thread_t *, int); +void rb_threadptr_interrupt(rb_thread_t *th); +void rb_threadptr_unlock_all_locking_mutexes(rb_thread_t *th); +void rb_threadptr_pending_interrupt_clear(rb_thread_t *th); +void rb_threadptr_pending_interrupt_enque(rb_thread_t *th, VALUE v); +VALUE rb_ec_get_errinfo(const rb_execution_context_t *ec); +void rb_ec_error_print(rb_execution_context_t * volatile ec, volatile VALUE errinfo); +void rb_execution_context_update(rb_execution_context_t *ec); +void rb_execution_context_mark(const rb_execution_context_t *ec); +void rb_fiber_close(rb_fiber_t *fib); +void Init_native_thread(rb_thread_t *th); +int rb_vm_check_ints_blocking(rb_execution_context_t *ec); +void rb_vm_cond_wait(rb_vm_t *vm, rb_nativethread_cond_t *cond); +void rb_vm_cond_timedwait(rb_vm_t *vm, rb_nativethread_cond_t *cond, unsigned long msec); +static inline void +rb_vm_check_ints(rb_execution_context_t *ec) +{ + ((void)0); + if ((__builtin_expect(!!(RUBY_VM_INTERRUPTED_ANY(ec)), 0))) { + rb_threadptr_execute_interrupts(rb_ec_thread_ptr(ec), 0); + } +} +struct rb_trace_arg_struct { + rb_event_flag_t event; + rb_execution_context_t *ec; + const rb_control_frame_t *cfp; + VALUE self; + ID id; + ID called_id; + VALUE klass; + VALUE data; + int klass_solved; + int lineno; + VALUE path; +}; +void rb_hook_list_mark(rb_hook_list_t *hooks); +void rb_hook_list_free(rb_hook_list_t *hooks); +void rb_hook_list_connect_tracepoint(VALUE target, rb_hook_list_t *list, VALUE tpval, unsigned int target_line); +void rb_hook_list_remove_tracepoint(rb_hook_list_t *list, VALUE tpval); +void rb_exec_event_hooks(struct rb_trace_arg_struct *trace_arg, rb_hook_list_t *hooks, int pop_p); +static inline void +rb_exec_event_hook_orig(rb_execution_context_t *ec, rb_hook_list_t *hooks, rb_event_flag_t flag, + VALUE self, ID id, ID called_id, VALUE klass, VALUE data, int pop_p) +{ + struct rb_trace_arg_struct trace_arg; + ((void)0); + trace_arg.event = flag; + trace_arg.ec = ec; + trace_arg.cfp = ec->cfp; + trace_arg.self = self; + trace_arg.id = id; + trace_arg.called_id = called_id; + trace_arg.klass = klass; + trace_arg.data = data; + trace_arg.path = ((VALUE)RUBY_Qundef); + trace_arg.klass_solved = 0; + rb_exec_event_hooks(&trace_arg, hooks, pop_p); +} +struct rb_ractor_pub { + VALUE self; + uint32_t id; + rb_hook_list_t hooks; +}; +static inline rb_hook_list_t * +rb_ec_ractor_hooks(const rb_execution_context_t *ec) +{ + struct rb_ractor_pub *cr_pub = (struct rb_ractor_pub *)rb_ec_ractor_ptr(ec); + return &cr_pub->hooks; +} +static inline void +rb_exec_event_hook_script_compiled(rb_execution_context_t *ec, const rb_iseq_t *iseq, VALUE eval_script) +{ + do { const rb_event_flag_t flag_arg_ = (0x2000); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, ec->cfp->self, 0, 0, 0, RB_NIL_P(eval_script) ? (VALUE)iseq : rb_ary_new_from_args(2, eval_script, (VALUE)iseq), 0); } } while (0); +} +void rb_vm_trap_exit(rb_vm_t *vm); +int rb_thread_check_trap_pending(void); +extern VALUE rb_get_coverages(void); +extern void rb_set_coverages(VALUE, int, VALUE); +extern void rb_clear_coverages(void); +extern void rb_reset_coverages(void); +extern void rb_resume_coverages(void); +extern void rb_suspend_coverages(void); +void rb_postponed_job_flush(rb_vm_t *vm); +extern VALUE rb_eRactorUnsafeError; +extern VALUE rb_eRactorIsolationError; + +static inline void +vm_passed_block_handler_set(rb_execution_context_t *ec, VALUE block_handler) +{ + vm_block_handler_verify(block_handler); + ec->passed_block_handler = block_handler; +} +static inline void +pass_passed_block_handler(rb_execution_context_t *ec) +{ + VALUE block_handler = rb_vm_frame_block_handler(ec->cfp); + vm_passed_block_handler_set(ec, block_handler); + VM_ENV_FLAGS_SET(ec->cfp->ep, VM_FRAME_FLAG_PASSED); +} +extern char ***_NSGetArgv(void); +extern int *_NSGetArgc(void); +extern char ***_NSGetEnviron(void); +extern char **_NSGetProgname(void); +extern struct mach_header_64 * + _NSGetMachExecuteHeader(void); +extern int * __error(void); +static inline void +rb_ec_vm_lock_rec_check(const rb_execution_context_t *ec, unsigned int recorded_lock_rec) +{ + unsigned int current_lock_rec = rb_ec_vm_lock_rec(ec); + if (current_lock_rec != recorded_lock_rec) { + rb_ec_vm_lock_rec_release(ec, recorded_lock_rec, current_lock_rec); + } +} +static inline int +rb_ec_tag_state(const rb_execution_context_t *ec) +{ + struct rb_vm_tag *tag = ec->tag; + enum ruby_tag_type state = tag->state; + tag->state = RUBY_TAG_NONE; + rb_ec_vm_lock_rec_check(ec, tag->lock_rec); + return state; +} +__declspec(noreturn) static inline void rb_ec_tag_jump(const rb_execution_context_t *ec, enum ruby_tag_type st); +static inline void +rb_ec_tag_jump(const rb_execution_context_t *ec, enum ruby_tag_type st) +{ + ec->tag->state = st; + siglongjmp(((ec->tag->buf)),(1)); +} +static inline int CREF_SINGLETON(const rb_cref_t *cref); +static inline VALUE +CREF_CLASS(const rb_cref_t *cref) +{ + if (CREF_SINGLETON(cref)) { + return rb_class_of(cref->klass_or_self); + } + else { + return cref->klass_or_self; + } +} +static inline VALUE +CREF_CLASS_FOR_DEFINITION(const rb_cref_t *cref) +{ + if (CREF_SINGLETON(cref)) { + return rb_singleton_class(cref->klass_or_self); + } + else { + return cref->klass_or_self; + } +} +static inline rb_cref_t * +CREF_NEXT(const rb_cref_t *cref) +{ + return cref->next; +} +static inline const rb_scope_visibility_t * +CREF_SCOPE_VISI(const rb_cref_t *cref) +{ + return &cref->scope_visi; +} +static inline VALUE +CREF_REFINEMENTS(const rb_cref_t *cref) +{ + return cref->refinements; +} +static inline void +CREF_REFINEMENTS_SET(rb_cref_t *cref, VALUE refs) +{ + rb_obj_write((VALUE)(cref), __extension__({ + ; + ; __typeof__((VALUE *)(&cref->refinements)) unaligned_member_access_result = ((VALUE *)(&cref->refinements)); + ; unaligned_member_access_result; }), (VALUE)(refs), "./eval_intern.h", 227); +} +static inline int +CREF_PUSHED_BY_EVAL(const rb_cref_t *cref) +{ + return cref->flags & ((VALUE)RUBY_FL_USER5); +} +static inline void +CREF_PUSHED_BY_EVAL_SET(rb_cref_t *cref) +{ + cref->flags |= ((VALUE)RUBY_FL_USER5); +} +static inline int +CREF_SINGLETON(const rb_cref_t *cref) +{ + return cref->flags & ((VALUE)RUBY_FL_USER7); +} +static inline void +CREF_SINGLETON_SET(rb_cref_t *cref) +{ + cref->flags |= ((VALUE)RUBY_FL_USER7); +} +static inline int +CREF_OMOD_SHARED(const rb_cref_t *cref) +{ + return cref->flags & ((VALUE)RUBY_FL_USER6); +} +static inline void +CREF_OMOD_SHARED_SET(rb_cref_t *cref) +{ + cref->flags |= ((VALUE)RUBY_FL_USER6); +} +static inline void +CREF_OMOD_SHARED_UNSET(rb_cref_t *cref) +{ + cref->flags &= ~((VALUE)RUBY_FL_USER6); +} +enum { + RAISED_EXCEPTION = 1, + RAISED_STACKOVERFLOW = 2, + RAISED_NOMEMORY = 4 +}; +int rb_ec_set_raised(rb_execution_context_t *ec); +int rb_ec_reset_raised(rb_execution_context_t *ec); +int rb_ec_stack_check(rb_execution_context_t *ec); +VALUE rb_f_eval(int argc, const VALUE *argv, VALUE self); +VALUE rb_make_exception(int argc, const VALUE *argv); +__declspec(noreturn) void rb_method_name_error(VALUE, VALUE); +__declspec(noreturn) void rb_fiber_start(rb_fiber_t*); +__declspec(noreturn) void rb_print_undef(VALUE, ID, rb_method_visibility_t); +__declspec(noreturn) void rb_print_undef_str(VALUE, VALUE); +__declspec(noreturn) void rb_print_inaccessible(VALUE, ID, rb_method_visibility_t); +__declspec(noreturn) void rb_vm_localjump_error(const char *,VALUE, int); +__declspec(noreturn) void rb_vm_jump_tag_but_local_jump(int); +VALUE rb_vm_make_jump_tag_but_local_jump(int state, VALUE val); +rb_cref_t *rb_vm_cref(void); +rb_cref_t *rb_vm_cref_replace_with_duplicated_cref(void); +VALUE rb_vm_call_cfunc(VALUE recv, VALUE (*func)(VALUE), VALUE arg, VALUE block_handler, VALUE filename); +void rb_vm_set_progname(VALUE filename); +VALUE rb_vm_cbase(void); +VALUE rb_ec_backtrace_object(const rb_execution_context_t *ec); +VALUE rb_ec_backtrace_str_ary(const rb_execution_context_t *ec, long lev, long n); +VALUE rb_ec_backtrace_location_ary(const rb_execution_context_t *ec, long lev, long n, _Bool skip_internal); +static inline char * +rb_char_next(const char *p) +{ + if (p) { + int len = mblen(p, 2147483647); + p += len > 0 ? len : 1; + } + return (char *)p; +} + +const char *rb_obj_info(VALUE obj); +const char *rb_raw_obj_info(char *const buff, const size_t buff_size, VALUE obj); +VALUE rb_gc_disable_no_rest(void); +struct rb_thread_struct; +size_t rb_size_pool_slot_size(unsigned char pool_id); +size_t rb_objspace_data_type_memsize(VALUE obj); +void rb_objspace_reachable_objects_from(VALUE obj, void (func)(VALUE, void *), void *data); +void rb_objspace_reachable_objects_from_root(void (func)(const char *category, VALUE, void *), void *data); +int rb_objspace_markable_object_p(VALUE obj); +int rb_objspace_internal_object_p(VALUE obj); +int rb_objspace_marked_object_p(VALUE obj); +void rb_objspace_each_objects( + int (*callback)(void *start, void *end, size_t stride, void *data), + void *data); +void rb_objspace_each_objects_without_setup( + int (*callback)(void *, void *, size_t, void *), + void *data); +size_t rb_gc_obj_slot_size(VALUE obj); + + +struct rb_iseq_struct; +int rb_dvar_defined(ID, const struct rb_iseq_struct *); +int rb_local_defined(ID, const struct rb_iseq_struct *); +const char *rb_insns_name(int i); +VALUE rb_insns_name_array(void); +int rb_iseq_cdhash_cmp(VALUE val, VALUE lit); +st_index_t rb_iseq_cdhash_hash(VALUE a); +int rb_vm_insn_addr2insn(const void *); +int rb_vm_insn_decode(const VALUE encoded); +extern _Bool ruby_vm_keep_script_lines; +rb_event_flag_t rb_iseq_event_flags(const struct rb_iseq_struct *iseq, size_t pos); + + +extern const int ruby_api_version[]; +typedef void (*rb_iseq_callback)(const rb_iseq_t *, void *); +extern const ID rb_iseq_shared_exc_local_tbl[]; +static inline rb_snum_t +ISEQ_FLIP_CNT_INCREMENT(const rb_iseq_t *iseq) +{ + rb_snum_t cnt = ((iseq)->body)->variable.flip_count; + ((iseq)->body)->variable.flip_count += 1; + return cnt; +} +static inline VALUE * +ISEQ_ORIGINAL_ISEQ(const rb_iseq_t *iseq) +{ + return ((iseq)->body)->variable.original_iseq; +} +static inline void +ISEQ_ORIGINAL_ISEQ_CLEAR(const rb_iseq_t *iseq) +{ + void *ptr = ((iseq)->body)->variable.original_iseq; + ((iseq)->body)->variable.original_iseq = ((void*)0); + if (ptr) { + ruby_xfree(ptr); + } +} +static inline VALUE * +ISEQ_ORIGINAL_ISEQ_ALLOC(const rb_iseq_t *iseq, long size) +{ + return ((iseq)->body)->variable.original_iseq = + ((VALUE *)ruby_xmalloc2((size), sizeof(VALUE))); +} +struct iseq_compile_data { + const VALUE err_info; + const VALUE catch_table_ary; + struct iseq_label_data *start_label; + struct iseq_label_data *end_label; + struct iseq_label_data *redo_label; + const rb_iseq_t *current_block; + struct iseq_compile_data_ensure_node_stack *ensure_node_stack; + struct { + struct iseq_compile_data_storage *storage_head; + struct iseq_compile_data_storage *storage_current; + } node; + struct { + struct iseq_compile_data_storage *storage_head; + struct iseq_compile_data_storage *storage_current; + } insn; + _Bool in_rescue; + int loopval_popped; + int last_line; + int label_no; + int node_level; + int isolated_depth; + unsigned int ci_index; + unsigned int ic_index; + const rb_compile_option_t *option; + struct rb_id_table *ivar_cache_table; + const struct rb_builtin_function *builtin_function_table; + const NODE *root_node; +}; +static inline struct iseq_compile_data * +ISEQ_COMPILE_DATA(const rb_iseq_t *iseq) +{ + if (iseq->flags & ((VALUE)RUBY_FL_USER6)) { + return iseq->aux.compile_data; + } + else { + return ((void*)0); + } +} +static inline void +ISEQ_COMPILE_DATA_ALLOC(rb_iseq_t *iseq) +{ + iseq->aux.compile_data = (((struct iseq_compile_data *)ruby_xcalloc((1), sizeof(struct iseq_compile_data)))); + iseq->flags |= ((VALUE)RUBY_FL_USER6); +} +static inline void +ISEQ_COMPILE_DATA_CLEAR(rb_iseq_t *iseq) +{ + iseq->flags &= ~((VALUE)RUBY_FL_USER6); + iseq->aux.compile_data = ((void*)0); +} +static inline rb_iseq_t * +iseq_imemo_alloc(void) +{ + return (rb_iseq_t *)rb_imemo_new(imemo_iseq, 0, 0, 0, 0); +} +VALUE rb_iseq_ibf_dump(const rb_iseq_t *iseq, VALUE opt); +void rb_ibf_load_iseq_complete(rb_iseq_t *iseq); +const rb_iseq_t *rb_iseq_ibf_load(VALUE str); +const rb_iseq_t *rb_iseq_ibf_load_bytes(const char *cstr, size_t); +VALUE rb_iseq_ibf_load_extra_data(VALUE str); +void rb_iseq_init_trace(rb_iseq_t *iseq); +int rb_iseq_add_local_tracepoint_recursively(const rb_iseq_t *iseq, rb_event_flag_t turnon_events, VALUE tpval, unsigned int target_line, _Bool target_bmethod); +int rb_iseq_remove_local_tracepoint_recursively(const rb_iseq_t *iseq, VALUE tpval); +const rb_iseq_t *rb_iseq_load_iseq(VALUE fname); +unsigned int *rb_iseq_insns_info_decode_positions(const struct rb_iseq_constant_body *body); +int rb_vm_insn_addr2opcode(const void *addr); +VALUE rb_iseq_compile_node(rb_iseq_t *iseq, const NODE *node); +VALUE rb_iseq_compile_callback(rb_iseq_t *iseq, const struct rb_iseq_new_with_callback_callback_func * ifunc); +VALUE *rb_iseq_original_iseq(const rb_iseq_t *iseq); +void rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE misc, + VALUE locals, VALUE args, + VALUE exception, VALUE body); +void rb_iseq_mark_insn_storage(struct iseq_compile_data_storage *arena); +VALUE rb_iseq_load(VALUE data, VALUE parent, VALUE opt); +VALUE rb_iseq_parameters(const rb_iseq_t *iseq, int is_proc); +unsigned int rb_iseq_line_no(const rb_iseq_t *iseq, size_t pos); +int rb_iseq_node_id(const rb_iseq_t *iseq, size_t pos); +void rb_iseq_trace_set(const rb_iseq_t *iseq, rb_event_flag_t turnon_events); +void rb_iseq_trace_set_all(rb_event_flag_t turnon_events); +void rb_iseq_insns_info_encode_positions(const rb_iseq_t *iseq); +struct rb_iseq_constant_body *rb_iseq_constant_body_alloc(void); +VALUE rb_iseqw_new(const rb_iseq_t *iseq); +const rb_iseq_t *rb_iseqw_to_iseq(VALUE iseqw); +VALUE rb_iseq_absolute_path(const rb_iseq_t *iseq); +int rb_iseq_from_eval_p(const rb_iseq_t *iseq); +VALUE rb_iseq_type(const rb_iseq_t *iseq); +VALUE rb_iseq_label(const rb_iseq_t *iseq); +VALUE rb_iseq_base_label(const rb_iseq_t *iseq); +VALUE rb_iseq_first_lineno(const rb_iseq_t *iseq); +VALUE rb_iseq_method_name(const rb_iseq_t *iseq); +void rb_iseq_code_location(const rb_iseq_t *iseq, int *first_lineno, int *first_column, int *last_lineno, int *last_column); +void rb_iseq_remove_coverage_all(void); +const rb_iseq_t *rb_method_iseq(VALUE body); +const rb_iseq_t *rb_proc_get_iseq(VALUE proc, int *is_proc); +struct rb_compile_option_struct { + unsigned int inline_const_cache: 1; + unsigned int peephole_optimization: 1; + unsigned int tailcall_optimization: 1; + unsigned int specialized_instruction: 1; + unsigned int operands_unification: 1; + unsigned int instructions_unification: 1; + unsigned int stack_caching: 1; + unsigned int frozen_string_literal: 1; + unsigned int debug_frozen_string_literal: 1; + unsigned int coverage_enabled: 1; + int debug_level; +}; +struct iseq_insn_info_entry { + int line_no; + int node_id; + rb_event_flag_t events; +}; +enum rb_catch_type { + CATCH_TYPE_RESCUE = __builtin_choose_expr( __builtin_constant_p(1), ((VALUE)(1)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(1)), + CATCH_TYPE_ENSURE = __builtin_choose_expr( __builtin_constant_p(2), ((VALUE)(2)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(2)), + CATCH_TYPE_RETRY = __builtin_choose_expr( __builtin_constant_p(3), ((VALUE)(3)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(3)), + CATCH_TYPE_BREAK = __builtin_choose_expr( __builtin_constant_p(4), ((VALUE)(4)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(4)), + CATCH_TYPE_REDO = __builtin_choose_expr( __builtin_constant_p(5), ((VALUE)(5)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(5)), + CATCH_TYPE_NEXT = __builtin_choose_expr( __builtin_constant_p(6), ((VALUE)(6)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(6)) +}; +struct iseq_catch_table_entry { + enum rb_catch_type type; + rb_iseq_t *iseq; + unsigned int start; + unsigned int end; + unsigned int cont; + unsigned int sp; +}; +struct iseq_catch_table { unsigned int size; struct iseq_catch_table_entry entries[];} __attribute__((packed)); +static inline int +iseq_catch_table_bytes(int n) +{ + enum { + catch_table_entry_size = sizeof(struct iseq_catch_table_entry), + catch_table_entries_max = (2147483647 - __builtin_offsetof(struct iseq_catch_table, entries)) / catch_table_entry_size + }; + if (n > catch_table_entries_max) rb_fatal("too large iseq_catch_table - %d", n); + return (int)(__builtin_offsetof(struct iseq_catch_table, entries) + + n * catch_table_entry_size); +} +struct iseq_compile_data_storage { + struct iseq_compile_data_storage *next; + unsigned int pos; + unsigned int size; + char buff[]; +}; +enum defined_type { + DEFINED_NOT_DEFINED, + DEFINED_NIL = 1, + DEFINED_IVAR, + DEFINED_LVAR, + DEFINED_GVAR, + DEFINED_CVAR, + DEFINED_CONST, + DEFINED_METHOD, + DEFINED_YIELD, + DEFINED_ZSUPER, + DEFINED_SELF, + DEFINED_TRUE, + DEFINED_FALSE, + DEFINED_ASGN, + DEFINED_EXPR, + DEFINED_REF, + DEFINED_FUNC, + DEFINED_CONST_FROM +}; +VALUE rb_iseq_defined_string(enum defined_type type); +VALUE rb_iseq_local_variables(const rb_iseq_t *iseq); + +struct rb_thread_struct; +struct rb_fiber_struct; +struct rb_execution_context_struct; +void rb_fiber_reset_root_local_storage(struct rb_thread_struct *); +void ruby_register_rollback_func_for_ensure(VALUE (*ensure_func)(VALUE), VALUE (*rollback_func)(VALUE)); +void rb_jit_cont_init(void); +void rb_jit_cont_each_iseq(rb_iseq_callback callback, void *data); +void rb_jit_cont_finish(void); +VALUE rb_fiber_inherit_storage(struct rb_execution_context_struct *ec, struct rb_fiber_struct *fiber); +VALUE rb_fiberptr_self(struct rb_fiber_struct *fiber); +unsigned int rb_fiberptr_blocking(struct rb_fiber_struct *fiber); +struct rb_execution_context_struct * rb_fiberptr_get_ec(struct rb_fiber_struct *fiber); + + + + +enum ruby_coderange_type { + RUBY_ENC_CODERANGE_UNKNOWN = 0, + RUBY_ENC_CODERANGE_7BIT = ((int)RUBY_FL_USER8), + RUBY_ENC_CODERANGE_VALID = ((int)RUBY_FL_USER9), + RUBY_ENC_CODERANGE_BROKEN = ((int)(RUBY_FL_USER8|RUBY_FL_USER9)), + RUBY_ENC_CODERANGE_MASK = (RUBY_ENC_CODERANGE_7BIT| + RUBY_ENC_CODERANGE_VALID| + RUBY_ENC_CODERANGE_BROKEN) +}; +__attribute__((__const__)) +static inline int +rb_enc_coderange_clean_p(int cr) +{ + return (cr ^ (cr >> 1)) & RUBY_ENC_CODERANGE_7BIT; +} +__attribute__((__const__)) +static inline _Bool +RB_ENC_CODERANGE_CLEAN_P(enum ruby_coderange_type cr) +{ + return rb_enc_coderange_clean_p(cr); +} +__attribute__((__pure__)) +static inline enum ruby_coderange_type +RB_ENC_CODERANGE(VALUE obj) +{ + VALUE ret = RB_FL_TEST_RAW(obj, RUBY_ENC_CODERANGE_MASK); + return ((enum ruby_coderange_type)ret); +} +__attribute__((__pure__)) +static inline _Bool +RB_ENC_CODERANGE_ASCIIONLY(VALUE obj) +{ + return RB_ENC_CODERANGE(obj) == RUBY_ENC_CODERANGE_7BIT; +} +static inline void +RB_ENC_CODERANGE_SET(VALUE obj, enum ruby_coderange_type cr) +{ + RB_FL_UNSET_RAW(obj, RUBY_ENC_CODERANGE_MASK); + RB_FL_SET_RAW(obj, cr); +} +static inline void +RB_ENC_CODERANGE_CLEAR(VALUE obj) +{ + RB_FL_UNSET_RAW(obj, RUBY_ENC_CODERANGE_MASK); +} +__attribute__((__const__)) +static inline enum ruby_coderange_type +RB_ENC_CODERANGE_AND(enum ruby_coderange_type a, enum ruby_coderange_type b) +{ + if (a == RUBY_ENC_CODERANGE_7BIT) { + return b; + } + else if (a != RUBY_ENC_CODERANGE_VALID) { + return RUBY_ENC_CODERANGE_UNKNOWN; + } + else if (b == RUBY_ENC_CODERANGE_7BIT) { + return RUBY_ENC_CODERANGE_VALID; + } + else { + return b; + } +} + + +typedef unsigned char OnigUChar; +typedef unsigned int OnigCodePoint; +typedef unsigned int OnigCtype; +typedef size_t OnigDistance; +typedef ptrdiff_t OnigPosition; +typedef unsigned int OnigCaseFoldType; +extern OnigCaseFoldType OnigDefaultCaseFoldFlag; +typedef struct { + int byte_len; + int code_len; + OnigCodePoint code[3]; +} OnigCaseFoldCodeItem; +typedef struct { + OnigCodePoint esc; + OnigCodePoint anychar; + OnigCodePoint anytime; + OnigCodePoint zero_or_one_time; + OnigCodePoint one_or_more_time; + OnigCodePoint anychar_anytime; +} OnigMetaCharTableType; +typedef int (*OnigApplyAllCaseFoldFunc)(OnigCodePoint from, OnigCodePoint* to, int to_len, void* arg); +typedef struct OnigEncodingTypeST { + int (*precise_mbc_enc_len)(const OnigUChar* p,const OnigUChar* e, const struct OnigEncodingTypeST* enc); + const char* name; + int max_enc_len; + int min_enc_len; + int (*is_mbc_newline)(const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc); + OnigCodePoint (*mbc_to_code)(const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc); + int (*code_to_mbclen)(OnigCodePoint code, const struct OnigEncodingTypeST* enc); + int (*code_to_mbc)(OnigCodePoint code, OnigUChar *buf, const struct OnigEncodingTypeST* enc); + int (*mbc_case_fold)(OnigCaseFoldType flag, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, const struct OnigEncodingTypeST* enc); + int (*apply_all_case_fold)(OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, const struct OnigEncodingTypeST* enc); + int (*get_case_fold_codes_by_str)(OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem acs[], const struct OnigEncodingTypeST* enc); + int (*property_name_to_ctype)(const struct OnigEncodingTypeST* enc, const OnigUChar* p, const OnigUChar* end); + int (*is_code_ctype)(OnigCodePoint code, OnigCtype ctype, const struct OnigEncodingTypeST* enc); + int (*get_ctype_code_range)(OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[], const struct OnigEncodingTypeST* enc); + OnigUChar* (*left_adjust_char_head)(const OnigUChar* start, const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc); + int (*is_allowed_reverse_match)(const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc); + int (*case_map)(OnigCaseFoldType* flagP, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, const struct OnigEncodingTypeST* enc); + int ruby_encoding_index; + unsigned int flags; +} OnigEncodingType; +typedef const OnigEncodingType* OnigEncoding; +extern const OnigEncodingType OnigEncodingASCII; +extern +int onigenc_ascii_only_case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, const struct OnigEncodingTypeST* enc); +extern +int onigenc_mbclen(const OnigUChar* p,const OnigUChar* e, const struct OnigEncodingTypeST* enc); +extern +OnigUChar* onigenc_step_back(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, int n); +extern +int onigenc_init(void); +extern +int onigenc_set_default_encoding(OnigEncoding enc); +extern +OnigEncoding onigenc_get_default_encoding(void); +extern +OnigUChar* onigenc_get_right_adjust_char_head_with_prev(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, const OnigUChar** prev); +extern +OnigUChar* onigenc_get_prev_char_head(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end); +extern +OnigUChar* onigenc_get_left_adjust_char_head(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end); +extern +OnigUChar* onigenc_get_right_adjust_char_head(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end); +extern +int onigenc_strlen(OnigEncoding enc, const OnigUChar* p, const OnigUChar* end); +extern +int onigenc_strlen_null(OnigEncoding enc, const OnigUChar* p); +extern +int onigenc_str_bytelen_null(OnigEncoding enc, const OnigUChar* p); +typedef unsigned int OnigOptionType; +typedef struct { + unsigned int op; + unsigned int op2; + unsigned int behavior; + OnigOptionType options; + OnigMetaCharTableType meta_char_table; +} OnigSyntaxType; +extern const OnigSyntaxType OnigSyntaxASIS; +extern const OnigSyntaxType OnigSyntaxPosixBasic; +extern const OnigSyntaxType OnigSyntaxPosixExtended; +extern const OnigSyntaxType OnigSyntaxEmacs; +extern const OnigSyntaxType OnigSyntaxGrep; +extern const OnigSyntaxType OnigSyntaxGnuRegex; +extern const OnigSyntaxType OnigSyntaxJava; +extern const OnigSyntaxType OnigSyntaxPerl58; +extern const OnigSyntaxType OnigSyntaxPerl58_NG; +extern const OnigSyntaxType OnigSyntaxPerl; +extern const OnigSyntaxType OnigSyntaxRuby; +extern const OnigSyntaxType OnigSyntaxPython; +extern const OnigSyntaxType* OnigDefaultSyntax; +struct re_registers { + int allocated; + int num_regs; + OnigPosition* beg; + OnigPosition* end; +}; +typedef struct re_registers OnigRegion; +typedef struct { + OnigEncoding enc; + OnigUChar* par; + OnigUChar* par_end; +} OnigErrorInfo; +typedef struct { + int lower; + int upper; + long base_num; + long inner_num; +} OnigRepeatRange; +typedef void (*OnigWarnFunc)(const char* s); +extern void onig_null_warn(const char* s); +typedef struct re_pattern_buffer { + unsigned char* p; + unsigned int used; + unsigned int alloc; + int num_mem; + int num_repeat; + int num_null_check; + int num_comb_exp_check; + int num_call; + unsigned int capture_history; + unsigned int bt_mem_start; + unsigned int bt_mem_end; + int stack_pop_level; + int repeat_range_alloc; + OnigOptionType options; + OnigRepeatRange* repeat_range; + OnigEncoding enc; + const OnigSyntaxType* syntax; + void* name_table; + OnigCaseFoldType case_fold_flag; + int optimize; + int threshold_len; + int anchor; + OnigDistance anchor_dmin; + OnigDistance anchor_dmax; + int sub_anchor; + unsigned char *exact; + unsigned char *exact_end; + unsigned char map[256]; + int *int_map; + int *int_map_backward; + OnigDistance dmin; + OnigDistance dmax; + uint64_t timelimit; + struct re_pattern_buffer* chain; +} OnigRegexType; +typedef OnigRegexType* OnigRegex; +typedef OnigRegexType regex_t; +typedef struct { + int num_of_elements; + OnigEncoding pattern_enc; + OnigEncoding target_enc; + const OnigSyntaxType* syntax; + OnigOptionType option; + OnigCaseFoldType case_fold_flag; +} OnigCompileInfo; +extern +int onig_initialize(OnigEncoding encodings[], int n); +extern +int onig_init(void); +extern +int onig_error_code_to_str(OnigUChar* s, OnigPosition err_code, ...); +extern +void onig_set_warn_func(OnigWarnFunc f); +extern +void onig_set_verb_warn_func(OnigWarnFunc f); +extern +int onig_new(OnigRegex*, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, const OnigSyntaxType* syntax, OnigErrorInfo* einfo); +extern +int onig_reg_init(OnigRegex reg, OnigOptionType option, OnigCaseFoldType case_fold_flag, OnigEncoding enc, const OnigSyntaxType* syntax); +extern +int onig_new_without_alloc(OnigRegex, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, const OnigSyntaxType* syntax, OnigErrorInfo* einfo); +extern +int onig_new_deluxe(OnigRegex* reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo); +extern +void onig_free(OnigRegex); +extern +void onig_free_body(OnigRegex); +extern +OnigPosition onig_scan(OnigRegex reg, const OnigUChar* str, const OnigUChar* end, OnigRegion* region, OnigOptionType option, int (*scan_callback)(OnigPosition, OnigPosition, OnigRegion*, void*), void* callback_arg); +extern +OnigPosition onig_search(OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option); +extern +OnigPosition onig_search_gpos(OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* global_pos, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option); +extern +OnigPosition onig_match(OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* at, OnigRegion* region, OnigOptionType option); +extern +int onig_check_linear_time(OnigRegex reg); +extern +OnigRegion* onig_region_new(void); +extern +void onig_region_init(OnigRegion* region); +extern +void onig_region_free(OnigRegion* region, int free_self); +extern +void onig_region_copy(OnigRegion* to, const OnigRegion* from); +extern +void onig_region_clear(OnigRegion* region); +extern +int onig_region_resize(OnigRegion* region, int n); +extern +int onig_region_set(OnigRegion* region, int at, int beg, int end); +extern +int onig_name_to_group_numbers(OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, int** nums); +extern +int onig_name_to_backref_number(OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, const OnigRegion *region); +extern +int onig_foreach_name(OnigRegex reg, int (*func)(const OnigUChar*, const OnigUChar*,int,int*,OnigRegex,void*), void* arg); +extern +int onig_number_of_names(const OnigRegexType *reg); +extern +int onig_number_of_captures(const OnigRegexType *reg); +extern +int onig_number_of_capture_histories(const OnigRegexType *reg); +extern +int onig_capture_tree_traverse(OnigRegion* region, int at, int(*callback_func)(int,OnigPosition,OnigPosition,int,int,void*), void* arg); +extern +int onig_noname_group_capture_is_active(const OnigRegexType *reg); +extern +OnigEncoding onig_get_encoding(const OnigRegexType *reg); +extern +OnigOptionType onig_get_options(const OnigRegexType *reg); +extern +OnigCaseFoldType onig_get_case_fold_flag(const OnigRegexType *reg); +extern +const OnigSyntaxType* onig_get_syntax(const OnigRegexType *reg); +extern +int onig_set_default_syntax(const OnigSyntaxType* syntax); +extern +void onig_copy_syntax(OnigSyntaxType* to, const OnigSyntaxType* from); +extern +unsigned int onig_get_syntax_op(const OnigSyntaxType* syntax); +extern +unsigned int onig_get_syntax_op2(const OnigSyntaxType* syntax); +extern +unsigned int onig_get_syntax_behavior(const OnigSyntaxType* syntax); +extern +OnigOptionType onig_get_syntax_options(const OnigSyntaxType* syntax); +extern +void onig_set_syntax_op(OnigSyntaxType* syntax, unsigned int op); +extern +void onig_set_syntax_op2(OnigSyntaxType* syntax, unsigned int op2); +extern +void onig_set_syntax_behavior(OnigSyntaxType* syntax, unsigned int behavior); +extern +void onig_set_syntax_options(OnigSyntaxType* syntax, OnigOptionType options); +extern +int onig_set_meta_char(OnigSyntaxType* syntax, unsigned int what, OnigCodePoint code); +extern +void onig_copy_encoding(OnigEncodingType *to, OnigEncoding from); +extern +OnigCaseFoldType onig_get_default_case_fold_flag(void); +extern +int onig_set_default_case_fold_flag(OnigCaseFoldType case_fold_flag); +extern +unsigned int onig_get_match_stack_limit_size(void); +extern +int onig_set_match_stack_limit_size(unsigned int size); +extern +unsigned int onig_get_parse_depth_limit(void); +extern +int onig_set_parse_depth_limit(unsigned int depth); +extern +int onig_end(void); +extern +const char* onig_version(void); +extern +const char* onig_copyright(void); + + +extern VALUE rb_cEncoding; +enum ruby_encoding_consts { + RUBY_ENCODING_INLINE_MAX = 127, + RUBY_ENCODING_SHIFT = (RUBY_FL_USHIFT+10), + RUBY_ENCODING_MASK = (RUBY_ENCODING_INLINE_MAX<> RUBY_ENCODING_SHIFT; + return ((int)ret); +} +typedef const OnigEncodingType rb_encoding; +__declspec(noalias) +int rb_char_to_option_kcode(int c, int *option, int *kcode); +int rb_enc_replicate(const char *name, rb_encoding *src); +int rb_define_dummy_encoding(const char *name); +__attribute__((__pure__)) +int rb_enc_dummy_p(rb_encoding *enc); +__attribute__((__pure__)) +int rb_enc_to_index(rb_encoding *enc); +int rb_enc_get_index(VALUE obj); +static inline int +RB_ENCODING_GET(VALUE obj) +{ + int encindex = RB_ENCODING_GET_INLINED(obj); + if (encindex == RUBY_ENCODING_INLINE_MAX) { + return rb_enc_get_index(obj); + } + else { + return encindex; + } +} +void rb_enc_set_index(VALUE obj, int encindex); +static inline void +RB_ENCODING_SET(VALUE obj, int encindex) +{ + rb_enc_set_index(obj, encindex); +} +static inline void +RB_ENCODING_CODERANGE_SET(VALUE obj, int encindex, enum ruby_coderange_type cr) +{ + RB_ENCODING_SET(obj, encindex); + RB_ENC_CODERANGE_SET(obj, cr); +} +__attribute__((__pure__)) +int rb_enc_capable(VALUE obj); +int rb_enc_find_index(const char *name); +int rb_enc_alias(const char *alias, const char *orig); +int rb_to_encoding_index(VALUE obj); +rb_encoding *rb_to_encoding(VALUE obj); +rb_encoding *rb_find_encoding(VALUE obj); +rb_encoding *rb_enc_get(VALUE obj); +rb_encoding *rb_enc_compatible(VALUE str1, VALUE str2); +rb_encoding *rb_enc_check(VALUE str1,VALUE str2); +VALUE rb_enc_associate_index(VALUE obj, int encindex); +VALUE rb_enc_associate(VALUE obj, rb_encoding *enc); +void rb_enc_copy(VALUE dst, VALUE src); +rb_encoding *rb_enc_from_index(int idx); +rb_encoding *rb_enc_find(const char *name); +static inline const char * +rb_enc_name(rb_encoding *enc) +{ + return enc->name; +} +static inline int +rb_enc_mbminlen(rb_encoding *enc) +{ + return enc->min_enc_len; +} +static inline int +rb_enc_mbmaxlen(rb_encoding *enc) +{ + return enc->max_enc_len; +} +int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc); +int rb_enc_fast_mbclen(const char *p, const char *e, rb_encoding *enc); +int rb_enc_precise_mbclen(const char *p, const char *e, rb_encoding *enc); +int rb_enc_ascget(const char *p, const char *e, int *len, rb_encoding *enc); +unsigned int rb_enc_codepoint_len(const char *p, const char *e, int *len, rb_encoding *enc); +static inline unsigned int +rb_enc_codepoint(const char *p, const char *e, rb_encoding *enc) +{ + return rb_enc_codepoint_len(p, e, 0, enc); +} +static inline OnigCodePoint +rb_enc_mbc_to_codepoint(const char *p, const char *e, rb_encoding *enc) +{ + const OnigUChar *up = ((const OnigUChar *)p); + const OnigUChar *ue = ((const OnigUChar *)e); + return (enc)->mbc_to_code((up),(ue),enc); +} +int rb_enc_codelen(int code, rb_encoding *enc); +static inline int +rb_enc_code_to_mbclen(int c, rb_encoding *enc) +{ + OnigCodePoint uc = ((OnigCodePoint)c); + return (enc)->code_to_mbclen(uc,enc); +} +static inline int +rb_enc_mbcput(unsigned int c, void *buf, rb_encoding *enc) +{ + OnigCodePoint uc = ((OnigCodePoint)c); + OnigUChar *ubuf = ((OnigUChar *)buf); + return (enc)->code_to_mbc(uc,ubuf,enc); +} +static inline char * +rb_enc_prev_char(const char *s, const char *p, const char *e, rb_encoding *enc) +{ + const OnigUChar *us = ((const OnigUChar *)s); + const OnigUChar *up = ((const OnigUChar *)p); + const OnigUChar *ue = ((const OnigUChar *)e); + OnigUChar *ur = onigenc_get_prev_char_head(enc, us, up, ue); + return ((char *)ur); +} +static inline char * +rb_enc_left_char_head(const char *s, const char *p, const char *e, rb_encoding *enc) +{ + const OnigUChar *us = ((const OnigUChar *)s); + const OnigUChar *up = ((const OnigUChar *)p); + const OnigUChar *ue = ((const OnigUChar *)e); + OnigUChar *ur = onigenc_get_left_adjust_char_head(enc, us, up, ue); + return ((char *)ur); +} +static inline char * +rb_enc_right_char_head(const char *s, const char *p, const char *e, rb_encoding *enc) +{ + const OnigUChar *us = ((const OnigUChar *)s); + const OnigUChar *up = ((const OnigUChar *)p); + const OnigUChar *ue = ((const OnigUChar *)e); + OnigUChar *ur = onigenc_get_right_adjust_char_head(enc, us, up, ue); + return ((char *)ur); +} +static inline char * +rb_enc_step_back(const char *s, const char *p, const char *e, int n, rb_encoding *enc) +{ + const OnigUChar *us = ((const OnigUChar *)s); + const OnigUChar *up = ((const OnigUChar *)p); + const OnigUChar *ue = ((const OnigUChar *)e); + const OnigUChar *ur = onigenc_step_back(enc, us, up, ue, n); + return ((char *)ur); +} +static inline int +rb_enc_asciicompat_inline(rb_encoding *enc) +{ + return rb_enc_mbminlen(enc)==1 && !rb_enc_dummy_p(enc); +} +static inline _Bool +rb_enc_asciicompat(rb_encoding *enc) +{ + if (rb_enc_mbminlen(enc) != 1) { + return 0; + } + else if (rb_enc_dummy_p(enc)) { + return 0; + } + else { + return 1; + } +} +static inline _Bool +rb_enc_str_asciicompat_p(VALUE str) +{ + rb_encoding *enc = rb_enc_get(str); + return rb_enc_asciicompat(enc); +} +VALUE rb_enc_from_encoding(rb_encoding *enc); +__attribute__((__pure__)) +int rb_enc_unicode_p(rb_encoding *enc); +__attribute__((__returns_nonnull__)) +rb_encoding *rb_ascii8bit_encoding(void); +__attribute__((__returns_nonnull__)) +rb_encoding *rb_utf8_encoding(void); +__attribute__((__returns_nonnull__)) +rb_encoding *rb_usascii_encoding(void); +rb_encoding *rb_locale_encoding(void); +rb_encoding *rb_filesystem_encoding(void); +rb_encoding *rb_default_external_encoding(void); +rb_encoding *rb_default_internal_encoding(void); +__attribute__((__const__)) +int rb_ascii8bit_encindex(void); +static inline _Bool +RB_ENCODING_IS_ASCII8BIT(VALUE obj) +{ + return RB_ENCODING_GET_INLINED(obj) == rb_ascii8bit_encindex(); +} +__attribute__((__const__)) +int rb_utf8_encindex(void); +__attribute__((__const__)) +int rb_usascii_encindex(void); +int rb_locale_encindex(void); +int rb_filesystem_encindex(void); +VALUE rb_enc_default_external(void); +VALUE rb_enc_default_internal(void); +void rb_enc_set_default_external(VALUE encoding); +void rb_enc_set_default_internal(VALUE encoding); +VALUE rb_locale_charmap(VALUE klass); +static inline _Bool +rb_enc_is_newline(const char *p, const char *e, rb_encoding *enc) +{ + OnigUChar *up = ((OnigUChar *)p); + OnigUChar *ue = ((OnigUChar *)e); + return (enc)->is_mbc_newline((up),(ue),enc); +} +static inline _Bool +rb_enc_isctype(OnigCodePoint c, OnigCtype t, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,t,enc); +} +static inline _Bool +rb_enc_isascii(OnigCodePoint c, rb_encoding *enc) +{ + return ((c) < 128); +} +static inline _Bool +rb_enc_isalpha(OnigCodePoint c, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,1,enc); +} +static inline _Bool +rb_enc_islower(OnigCodePoint c, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,6,enc); +} +static inline _Bool +rb_enc_isupper(OnigCodePoint c, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,10,enc); +} +static inline _Bool +rb_enc_iscntrl(OnigCodePoint c, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,3,enc); +} +static inline _Bool +rb_enc_ispunct(OnigCodePoint c, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,8,enc); +} +static inline _Bool +rb_enc_isalnum(OnigCodePoint c, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,13,enc); +} +static inline _Bool +rb_enc_isprint(OnigCodePoint c, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,7,enc); +} +static inline _Bool +rb_enc_isspace(OnigCodePoint c, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,9,enc); +} +static inline _Bool +rb_enc_isdigit(OnigCodePoint c, rb_encoding *enc) +{ + return (enc)->is_code_ctype(c,4,enc); +} +__attribute__((__const__)) +int rb_enc_toupper(int c, rb_encoding *enc); +__attribute__((__const__)) +int rb_enc_tolower(int c, rb_encoding *enc); + + +__attribute__((__nonnull__ ())) +char *rb_enc_path_next(const char *path, const char *end, rb_encoding *enc); +__attribute__((__nonnull__ ())) +char *rb_enc_path_skip_prefix(const char *path, const char *end, rb_encoding *enc); +__attribute__((__nonnull__ ())) +char *rb_enc_path_last_separator(const char *path, const char *end, rb_encoding *enc); +__attribute__((__nonnull__ ())) +char *rb_enc_path_end(const char *path, const char *end, rb_encoding *enc); +__attribute__((__nonnull__ (1, 4))) +const char *ruby_enc_find_basename(const char *name, long *baselen, long *alllen, rb_encoding *enc); +__attribute__((__nonnull__ (1, 3))) +const char *ruby_enc_find_extname(const char *name, long *len, rb_encoding *enc); + +VALUE rb_enc_reg_new(const char *ptr, long len, rb_encoding *enc, int opts); + +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 3))) +VALUE rb_enc_sprintf(rb_encoding *enc, const char *fmt, ...); +__attribute__((__nonnull__ (2))) +__attribute__((__format__(__printf__, 2, 0))) +VALUE rb_enc_vsprintf(rb_encoding *enc, const char *fmt, va_list ap); +__declspec(noreturn) +__attribute__((__nonnull__ (3))) +__attribute__((__format__(__printf__, 3, 4))) +void rb_enc_raise(rb_encoding *enc, VALUE exc, const char *fmt, ...); + +VALUE rb_enc_str_new(const char *ptr, long len, rb_encoding *enc); +__attribute__((__nonnull__ (1))) +VALUE rb_enc_str_new_cstr(const char *ptr, rb_encoding *enc); +VALUE rb_enc_str_new_static(const char *ptr, long len, rb_encoding *enc); +VALUE rb_enc_interned_str(const char *ptr, long len, rb_encoding *enc); +__attribute__((__nonnull__ (1))) +VALUE rb_enc_interned_str_cstr(const char *ptr, rb_encoding *enc); +long rb_enc_strlen(const char *head, const char *tail, rb_encoding *enc); +char *rb_enc_nth(const char *head, const char *tail, long nth, rb_encoding *enc); +VALUE rb_obj_encoding(VALUE obj); +VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc); +VALUE rb_enc_uint_chr(unsigned int code, rb_encoding *enc); +VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *enc); +VALUE rb_str_export_to_enc(VALUE obj, rb_encoding *enc); +VALUE rb_str_conv_enc(VALUE str, rb_encoding *from, rb_encoding *to); +VALUE rb_str_conv_enc_opts(VALUE str, rb_encoding *from, rb_encoding *to, int ecflags, VALUE ecopts); +int rb_enc_str_coderange(VALUE str); +long rb_str_coderange_scan_restartable(const char *str, const char *end, rb_encoding *enc, int *cr); +int rb_enc_str_asciionly_p(VALUE str); +__attribute__((__nonnull__ ())) +long rb_memsearch(const void *x, long m, const void *y, long n, rb_encoding *enc); +__attribute__((__nonnull__ ())) +static inline VALUE +rbimpl_enc_str_new_cstr(const char *str, rb_encoding *enc) +{ + long len = rbimpl_strlen(str); + return rb_enc_str_new_static(str, len, enc); +} + +ID rb_intern3(const char *name, long len, rb_encoding *enc); +__attribute__((__nonnull__ ())) +int rb_enc_symname_p(const char *str, rb_encoding *enc); +int rb_enc_symname2_p(const char *name, long len, rb_encoding *enc); +ID rb_check_id_cstr(const char *ptr, long len, rb_encoding *enc); +VALUE rb_check_symbol_cstr(const char *ptr, long len, rb_encoding *enc); + +typedef enum { + econv_invalid_byte_sequence, + econv_undefined_conversion, + econv_destination_buffer_full, + econv_source_buffer_empty, + econv_finished, + econv_after_output, + econv_incomplete_input +} rb_econv_result_t; +typedef struct rb_econv_t rb_econv_t; +VALUE rb_str_encode(VALUE str, VALUE to, int ecflags, VALUE ecopts); +int rb_econv_has_convpath_p(const char* from_encoding, const char* to_encoding); +int rb_econv_prepare_options(VALUE opthash, VALUE *ecopts, int ecflags); +int rb_econv_prepare_opts(VALUE opthash, VALUE *ecopts); +rb_econv_t *rb_econv_open(const char *source_encoding, const char *destination_encoding, int ecflags); +rb_econv_t *rb_econv_open_opts(const char *source_encoding, const char *destination_encoding, int ecflags, VALUE ecopts); +rb_econv_result_t rb_econv_convert(rb_econv_t *ec, + const unsigned char **source_buffer_ptr, const unsigned char *source_buffer_end, + unsigned char **destination_buffer_ptr, unsigned char *destination_buffer_end, + int flags); +void rb_econv_close(rb_econv_t *ec); +int rb_econv_set_replacement(rb_econv_t *ec, const unsigned char *str, size_t len, const char *encname); +int rb_econv_decorate_at_first(rb_econv_t *ec, const char *decorator_name); +int rb_econv_decorate_at_last(rb_econv_t *ec, const char *decorator_name); +VALUE rb_econv_open_exc(const char *senc, const char *denc, int ecflags); +int rb_econv_insert_output(rb_econv_t *ec, + const unsigned char *str, size_t len, const char *str_encoding); +const char *rb_econv_encoding_to_insert_output(rb_econv_t *ec); +void rb_econv_check_error(rb_econv_t *ec); +VALUE rb_econv_make_exception(rb_econv_t *ec); +int rb_econv_putbackable(rb_econv_t *ec); +void rb_econv_putback(rb_econv_t *ec, unsigned char *p, int n); +const char *rb_econv_asciicompat_encoding(const char *encname); +VALUE rb_econv_str_convert(rb_econv_t *ec, VALUE src, int flags); +VALUE rb_econv_substr_convert(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, int flags); +VALUE rb_econv_str_append(rb_econv_t *ec, VALUE src, VALUE dst, int flags); +VALUE rb_econv_substr_append(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, VALUE dst, int flags); +VALUE rb_econv_append(rb_econv_t *ec, const char *bytesrc, long bytesize, VALUE dst, int flags); +void rb_econv_binmode(rb_econv_t *ec); +enum ruby_econv_flag_type { + RUBY_ECONV_ERROR_HANDLER_MASK = 0x000000ff, + RUBY_ECONV_INVALID_MASK = 0x0000000f, + RUBY_ECONV_INVALID_REPLACE = 0x00000002, + RUBY_ECONV_UNDEF_MASK = 0x000000f0, + RUBY_ECONV_UNDEF_REPLACE = 0x00000020, + RUBY_ECONV_UNDEF_HEX_CHARREF = 0x00000030, + RUBY_ECONV_DECORATOR_MASK = 0x0001ff00, + RUBY_ECONV_NEWLINE_DECORATOR_MASK = 0x00007f00, + RUBY_ECONV_NEWLINE_DECORATOR_READ_MASK = 0x00000f00, + RUBY_ECONV_NEWLINE_DECORATOR_WRITE_MASK = 0x00007000, + RUBY_ECONV_UNIVERSAL_NEWLINE_DECORATOR = 0x00000100, + RUBY_ECONV_CRLF_NEWLINE_DECORATOR = 0x00001000, + RUBY_ECONV_CR_NEWLINE_DECORATOR = 0x00002000, + RUBY_ECONV_LF_NEWLINE_DECORATOR = 0x00004000, + RUBY_ECONV_XML_TEXT_DECORATOR = 0x00008000, + RUBY_ECONV_XML_ATTR_CONTENT_DECORATOR = 0x00010000, + RUBY_ECONV_STATEFUL_DECORATOR_MASK = 0x00f00000, + RUBY_ECONV_XML_ATTR_QUOTE_DECORATOR = 0x00100000, + RUBY_ECONV_DEFAULT_NEWLINE_DECORATOR = + 0, + RUBY_ECONV_PARTIAL_INPUT = 0x00020000, + RUBY_ECONV_AFTER_OUTPUT = 0x00040000, + RUBY_ECONV_FLAGS_PLACEHOLDER +}; +VALUE rb_fstring(VALUE); +VALUE rb_fstring_cstr(const char *str); +VALUE rb_fstring_enc_new(const char *ptr, long len, rb_encoding *enc); +int rb_str_buf_cat_escaped_char(VALUE result, unsigned int c, int unicode_p); +int rb_str_symname_p(VALUE); +VALUE rb_str_quote_unprintable(VALUE); +char *rb_str_fill_terminator(VALUE str, const int termlen); +void rb_str_change_terminator_length(VALUE str, const int oldtermlen, const int termlen); +VALUE rb_str_locktmp_ensure(VALUE str, VALUE (*func)(VALUE), VALUE arg); +VALUE rb_str_chomp_string(VALUE str, VALUE chomp); +VALUE rb_external_str_with_enc(VALUE str, rb_encoding *eenc); +VALUE rb_str_cat_conv_enc_opts(VALUE newstr, long ofs, const char *ptr, long len, + rb_encoding *from, int ecflags, VALUE ecopts); +VALUE rb_enc_str_scrub(rb_encoding *enc, VALUE str, VALUE repl); +VALUE rb_str_escape(VALUE str); +size_t rb_str_memsize(VALUE); +char *rb_str_to_cstr(VALUE str); +const char *ruby_escaped_char(int c); +void rb_str_make_independent(VALUE str); +int rb_enc_str_coderange_scan(VALUE str, rb_encoding *enc); +int rb_ascii8bit_appendable_encoding_index(rb_encoding *enc, unsigned int code); +VALUE rb_str_include(VALUE str, VALUE arg); +static inline _Bool STR_EMBED_P(VALUE str); +static inline _Bool STR_SHARED_P(VALUE str); +static inline VALUE QUOTE(VALUE v); +static inline VALUE QUOTE_ID(ID v); +static inline _Bool is_ascii_string(VALUE str); +static inline _Bool is_broken_string(VALUE str); +static inline VALUE rb_str_eql_internal(const VALUE str1, const VALUE str2); +VALUE rb_str_tmp_frozen_acquire(VALUE str); +void rb_str_tmp_frozen_release(VALUE str, VALUE tmp); +VALUE rb_setup_fake_str(struct RString *fake_str, const char *name, long len, rb_encoding *enc); +VALUE rb_str_upto_each(VALUE, VALUE, int, int (*each)(VALUE, VALUE), VALUE); +VALUE rb_str_upto_endless_each(VALUE, int (*each)(VALUE, VALUE), VALUE); +void rb_str_make_embedded(VALUE); +size_t rb_str_size_as_embedded(VALUE); +_Bool rb_str_reembeddable_p(VALUE); +void rb_str_update_shared_ary(VALUE str, VALUE old_root, VALUE new_root); +VALUE rb_fstring_new(const char *ptr, long len); +VALUE rb_obj_as_string_result(VALUE str, VALUE obj); +VALUE rb_str_opt_plus(VALUE x, VALUE y); +VALUE rb_str_concat_literals(size_t num, const VALUE *strary); +VALUE rb_str_eql(VALUE str1, VALUE str2); +VALUE rb_id_quote_unprintable(ID); +VALUE rb_sym_proc_call(ID mid, int argc, const VALUE *argv, int kw_splat, VALUE passed_proc); +struct rb_execution_context_struct; +VALUE rb_ec_str_resurrect(struct rb_execution_context_struct *ec, VALUE str); +static inline VALUE +QUOTE(VALUE v) +{ + return rb_str_quote_unprintable(v); +} +static inline VALUE +QUOTE_ID(ID i) +{ + return rb_id_quote_unprintable(i); +} +static inline _Bool +STR_EMBED_P(VALUE str) +{ + return ! RB_FL_TEST_RAW(str, ((VALUE)RUBY_FL_USER1)); +} +static inline _Bool +STR_SHARED_P(VALUE str) +{ + return RB_FL_ALL_RAW(str, ((VALUE)RUBY_FL_USER1) | ((VALUE)RUBY_FL_USER2)); +} +static inline _Bool +is_ascii_string(VALUE str) +{ + return rb_enc_str_coderange(str) == RUBY_ENC_CODERANGE_7BIT; +} +static inline _Bool +is_broken_string(VALUE str) +{ + return rb_enc_str_coderange(str) == RUBY_ENC_CODERANGE_BROKEN; +} +static inline VALUE +rb_str_eql_internal(const VALUE str1, const VALUE str2) +{ + const long len = RSTRING_LEN(str1); + const char *ptr1, *ptr2; + if (len != RSTRING_LEN(str2)) return ((VALUE)RUBY_Qfalse); + if (!rb_str_comparable(str1, str2)) return ((VALUE)RUBY_Qfalse); + if ((ptr1 = RSTRING_PTR(str1)) == (ptr2 = RSTRING_PTR(str2))) + return ((VALUE)RUBY_Qtrue); + if (memcmp(ptr1, ptr2, len) == 0) + return ((VALUE)RUBY_Qtrue); + return ((VALUE)RUBY_Qfalse); +} +extern long rb_backtrace_length_limit; +extern VALUE rb_eEAGAIN; +extern VALUE rb_eEWOULDBLOCK; +extern VALUE rb_eEINPROGRESS; +__attribute__((__format__(__printf__, 3, 0))) +void rb_report_bug_valist(VALUE file, int line, const char *fmt, va_list args); +__declspec(noreturn) void rb_async_bug_errno(const char *,int); +const char *rb_builtin_type_name(int t); +const char *rb_builtin_class_name(VALUE x); +__attribute__((__format__(__printf__, (1), (3)))) void rb_warn_deprecated(const char *fmt, const char *suggest, ...); +__attribute__((__format__(__printf__, (2), (4)))) void rb_warn_deprecated_to_remove(const char *removal, const char *fmt, const char *suggest, ...); +__attribute__((__format__(__printf__, 6, 0))) +VALUE rb_syntax_error_append(VALUE, VALUE, int, int, rb_encoding*, const char*, va_list); +__attribute__((__format__(__printf__, (2), (3)))) void rb_enc_warn(rb_encoding *enc, const char *fmt, ...); +__attribute__((__format__(__printf__, (2), (3)))) void rb_sys_enc_warning(rb_encoding *enc, const char *fmt, ...); +__attribute__((__format__(__printf__, (3), (4)))) void rb_syserr_enc_warning(int err, rb_encoding *enc, const char *fmt, ...); +rb_warning_category_t rb_warning_category_from_name(VALUE category); +_Bool rb_warning_category_enabled_p(rb_warning_category_t category); +VALUE rb_name_err_new(VALUE mesg, VALUE recv, VALUE method); +VALUE rb_nomethod_err_new(VALUE mesg, VALUE recv, VALUE method, VALUE args, int priv); +VALUE rb_key_err_new(VALUE mesg, VALUE recv, VALUE name); +__attribute__((__format__(__printf__, (1), (2)))) VALUE rb_warning_string(const char *fmt, ...); +__attribute__((__format__(__printf__, 2, 0))) +__declspec(noreturn) void rb_vraise(VALUE, const char *, va_list); +__declspec(noreturn) static inline void rb_raise_cstr(VALUE etype, const char *mesg); +__declspec(noreturn) static inline void rb_raise_cstr_i(VALUE etype, VALUE mesg); +__declspec(noreturn) static inline void rb_name_err_raise_str(VALUE mesg, VALUE recv, VALUE name); +__declspec(noreturn) static inline void rb_name_err_raise(const char *mesg, VALUE recv, VALUE name); +__declspec(noreturn) static inline void rb_key_err_raise(VALUE mesg, VALUE recv, VALUE name); +static inline void Check_Type(VALUE v, enum ruby_value_type t); +static inline _Bool rb_typeddata_is_instance_of_inline(VALUE obj, const rb_data_type_t *data_type); +int rb_bug_reporter_add(void (*func)(FILE *, void *), void *data); +__declspec(noreturn) void rb_sys_fail_path_in(const char *func_name, VALUE path); +__declspec(noreturn) void rb_syserr_fail_path_in(const char *func_name, int err, VALUE path); +VALUE rb_syserr_new_path_in(const char *func_name, int n, VALUE path); +static inline void +rb_raise_cstr_i(VALUE etype, VALUE mesg) +{ + VALUE exc = rb_exc_new_str(etype, mesg); + rb_exc_raise(exc); +} +static inline void +rb_raise_cstr(VALUE etype, const char *mesg) +{ + VALUE str = ((__builtin_constant_p(mesg) ? rbimpl_str_new_cstr : rb_str_new_cstr) (mesg)); + rb_raise_cstr_i(etype, str); +} +static inline void +rb_name_err_raise_str(VALUE mesg, VALUE recv, VALUE name) +{ + VALUE exc = rb_name_err_new(mesg, recv, name); + rb_exc_raise(exc); +} +static inline void +rb_name_err_raise(const char *mesg, VALUE recv, VALUE name) +{ + VALUE str = (__builtin_constant_p(mesg) ? rb_fstring_new((mesg), (long)strlen(mesg)) : (rb_fstring_cstr)(mesg)); + rb_name_err_raise_str(str, recv, name); +} +static inline void +rb_key_err_raise(VALUE mesg, VALUE recv, VALUE name) +{ + VALUE exc = rb_key_err_new(mesg, recv, name); + rb_exc_raise(exc); +} +static inline _Bool +rb_typeddata_is_instance_of_inline(VALUE obj, const rb_data_type_t *data_type) +{ + return (__builtin_constant_p(RUBY_T_DATA) ? rbimpl_RB_TYPE_P_fastpath((obj), (RUBY_T_DATA)) : (RB_TYPE_P)((obj), (RUBY_T_DATA))) && RTYPEDDATA_P(obj) && (RTYPEDDATA_TYPE(obj) == data_type); +} + +extern ID ruby_static_id_signo; +extern ID ruby_static_id_status; +VALUE rb_refinement_module_get_refined_class(VALUE module); +void rb_class_modify_check(VALUE); +__declspec(noreturn) VALUE rb_f_raise(int argc, VALUE *argv); +VALUE rb_get_backtrace(VALUE info); +void rb_call_end_proc(VALUE data); +void rb_mark_end_proc(void); + +void Init_class_hierarchy(void); +void Init_enc(void); +void Init_ext(void); +void Init_File(void); +void Init_heap(void); +int Init_enc_set_filesystem_encoding(void); +void Init_newline(void); +void Init_BareVM(void); +void Init_vm_objects(void); +void Init_vm_backtrace(void); +void Init_vm_eval(void);static inline +void Init_vm_stack_canary(void); +void Init_eval_method(void); +void rb_call_inits(void); + +VALUE rb_class_search_ancestor(VALUE klass, VALUE super); +__declspec(noreturn) void rb_undefined_alloc(VALUE klass); +double rb_num_to_dbl(VALUE val); +VALUE rb_obj_dig(int argc, VALUE *argv, VALUE self, VALUE notfound); +VALUE rb_immutable_obj_clone(int, VALUE *, VALUE); +VALUE rb_check_convert_type_with_id(VALUE,int,const char*,ID); +int rb_bool_expected(VALUE, const char *, int raise); +static inline void RBASIC_CLEAR_CLASS(VALUE obj); +static inline void RBASIC_SET_CLASS_RAW(VALUE obj, VALUE klass); +static inline void RBASIC_SET_CLASS(VALUE obj, VALUE klass); +int rb_opts_exception_p(VALUE opts, int default_value); +__attribute__((__const__)) VALUE rb_obj_equal(VALUE obj1, VALUE obj2); +__attribute__((__const__)) VALUE rb_obj_not(VALUE obj); +VALUE rb_obj_not_equal(VALUE obj1, VALUE obj2); +void rb_obj_copy_ivar(VALUE dest, VALUE obj); +VALUE rb_false(VALUE obj); +VALUE rb_convert_type_with_id(VALUE v, int t, const char* nam, ID mid); +VALUE rb_obj_size(VALUE self, VALUE args, VALUE obj); +VALUE rb_get_freeze_opt(int argc, VALUE *argv); +static inline void +RBASIC_SET_CLASS_RAW(VALUE obj, VALUE klass) +{ + const VALUE *ptr = &((struct RBasic *)(obj))->klass; + *(VALUE *)ptr = klass; +} +static inline void +RBASIC_CLEAR_CLASS(VALUE obj) +{ + RBASIC_SET_CLASS_RAW(obj, 0); +} +static inline void +RBASIC_SET_CLASS(VALUE obj, VALUE klass) +{ + VALUE oldv = RBASIC_CLASS(obj); + RBASIC_SET_CLASS_RAW(obj, klass); + (rb_obj_written((VALUE)(obj), (VALUE)(oldv), (VALUE)(klass), "./internal/object.h", 59)); +} + +struct rb_iseq_struct; +VALUE rb_parser_set_yydebug(VALUE, VALUE); +void *rb_parser_load_file(VALUE parser, VALUE name); +void rb_parser_keep_script_lines(VALUE vparser); +void rb_parser_error_tolerant(VALUE vparser); +void rb_parser_keep_tokens(VALUE vparser); +VALUE rb_parser_set_context(VALUE, const struct rb_iseq_struct *, int); + +struct rb_block; +struct rb_iseq_struct; +VALUE rb_proc_location(VALUE self); +st_index_t rb_hash_proc(st_index_t hash, VALUE proc); +int rb_block_pair_yield_optimizable(void); +int rb_block_arity(void); +int rb_block_min_max_arity(int *max); +VALUE rb_block_to_s(VALUE self, const struct rb_block *block, const char *additional_info); +VALUE rb_callable_receiver(VALUE); +VALUE rb_func_proc_new(rb_block_call_func_t func, VALUE val); +VALUE rb_func_lambda_new(rb_block_call_func_t func, VALUE val, int min_argc, int max_argc); +VALUE rb_iseq_location(const struct rb_iseq_struct *iseq); +VALUE rb_sym_to_proc(VALUE sym); + +VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline); +VALUE rb_reg_check_preprocess(VALUE); +long rb_reg_search0(VALUE, VALUE, long, int, int); +VALUE rb_reg_match_p(VALUE re, VALUE str, long pos); +_Bool rb_reg_start_with_p(VALUE re, VALUE str); +VALUE rb_reg_hash(VALUE re); +VALUE rb_reg_equal(VALUE re1, VALUE re2); +void rb_backref_set_string(VALUE string, long pos, long len); +void rb_match_unbusy(VALUE); +int rb_match_count(VALUE match); +int rb_match_nth_defined(int nth, VALUE match); +VALUE rb_reg_new_ary(VALUE ary, int options); + +VALUE rb_to_symbol_type(VALUE obj); +VALUE rb_sym_intern(const char *ptr, long len, rb_encoding *enc); +VALUE rb_sym_intern_ascii(const char *ptr, long len); +VALUE rb_sym_intern_ascii_cstr(const char *ptr); +int rb_is_const_name(VALUE name); +int rb_is_class_name(VALUE name); +int rb_is_instance_name(VALUE name); +int rb_is_local_name(VALUE name); +__attribute__((__pure__)) int rb_is_const_sym(VALUE sym); +__attribute__((__pure__)) int rb_is_attrset_sym(VALUE sym); +ID rb_make_internal_id(void); +ID rb_make_temporary_id(size_t n); +void rb_gc_free_dsymbol(VALUE); +int rb_static_id_valid_p(ID id); + +struct rb_thread_struct; +VALUE rb_obj_is_mutex(VALUE obj); +VALUE rb_suppress_tracing(VALUE (*func)(VALUE), VALUE arg); +void rb_thread_execute_interrupts(VALUE th); +VALUE rb_get_coverages(void); +int rb_get_coverage_mode(void); +VALUE rb_default_coverage(int); +VALUE rb_thread_shield_new(void); +_Bool rb_thread_shield_owned(VALUE self); +VALUE rb_thread_shield_wait(VALUE self); +VALUE rb_thread_shield_release(VALUE self); +VALUE rb_thread_shield_destroy(VALUE self); +int rb_thread_to_be_killed(VALUE thread); +void rb_mutex_allow_trap(VALUE self, int val); +VALUE rb_uninterruptible(VALUE (*b_proc)(VALUE), VALUE data); +VALUE rb_mutex_owned_p(VALUE self); +VALUE rb_exec_recursive_outer_mid(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE h, ID mid); +int rb_thread_wait_for_single_fd(int fd, int events, struct timeval * timeout); +VALUE rb_thread_io_blocking_region(rb_blocking_function_t *func, void *data1, int fd); +int ruby_thread_has_gvl_p(void); +int rb_threadptr_execute_interrupts(struct rb_thread_struct *th, int blocking_timing); + + +typedef struct { + int coverage_sandboxed; + intptr_t coverage_fd; + unsigned int coverage_max_block_size; +} __sanitizer_sandbox_arguments; +void __sanitizer_set_report_path(const char *path); +void __sanitizer_set_report_fd(void *fd); +const char *__sanitizer_get_report_path(); +void __sanitizer_sandbox_on_notify(__sanitizer_sandbox_arguments *args); +void __sanitizer_report_error_summary(const char *error_summary); +uint16_t __sanitizer_unaligned_load16(const void *p); +uint32_t __sanitizer_unaligned_load32(const void *p); +uint64_t __sanitizer_unaligned_load64(const void *p); +void __sanitizer_unaligned_store16(void *p, uint16_t x); +void __sanitizer_unaligned_store32(void *p, uint32_t x); +void __sanitizer_unaligned_store64(void *p, uint64_t x); +int __sanitizer_acquire_crash_state(); +void __sanitizer_annotate_contiguous_container(const void *beg, + const void *end, + const void *old_mid, + const void *new_mid); +int __sanitizer_verify_contiguous_container(const void *beg, const void *mid, + const void *end); +const void *__sanitizer_contiguous_container_find_bad_address(const void *beg, + const void *mid, + const void *end); +void __sanitizer_print_stack_trace(void); +void __sanitizer_symbolize_pc(void *pc, const char *fmt, char *out_buf, + size_t out_buf_size); +void __sanitizer_symbolize_global(void *data_ptr, const char *fmt, + char *out_buf, size_t out_buf_size); +void __sanitizer_set_death_callback(void (*callback)(void)); +void __sanitizer_weak_hook_memcmp(void *called_pc, const void *s1, + const void *s2, size_t n, int result); +void __sanitizer_weak_hook_strncmp(void *called_pc, const char *s1, + const char *s2, size_t n, int result); +void __sanitizer_weak_hook_strncasecmp(void *called_pc, const char *s1, + const char *s2, size_t n, int result); +void __sanitizer_weak_hook_strcmp(void *called_pc, const char *s1, + const char *s2, int result); +void __sanitizer_weak_hook_strcasecmp(void *called_pc, const char *s1, + const char *s2, int result); +void __sanitizer_weak_hook_strstr(void *called_pc, const char *s1, + const char *s2, char *result); +void __sanitizer_weak_hook_strcasestr(void *called_pc, const char *s1, + const char *s2, char *result); +void __sanitizer_weak_hook_memmem(void *called_pc, + const void *s1, size_t len1, + const void *s2, size_t len2, void *result); +void __sanitizer_print_memory_profile(size_t top_percent, + size_t max_number_of_contexts); +void __sanitizer_start_switch_fiber(void **fake_stack_save, + const void *bottom, size_t size); +void __sanitizer_finish_switch_fiber(void *fake_stack_save, + const void **bottom_old, + size_t *size_old); +int __sanitizer_get_module_and_offset_for_pc(void *pc, char *module_path, + size_t module_path_len, + void **pc_offset); +void __asan_poison_memory_region(void const volatile *addr, size_t size); +void __asan_unpoison_memory_region(void const volatile *addr, size_t size); +int __asan_address_is_poisoned(void const volatile *addr); +void *__asan_region_is_poisoned(void *beg, size_t size); +void __asan_describe_address(void *addr); +int __asan_report_present(void); +void *__asan_get_report_pc(void); +void *__asan_get_report_bp(void); +void *__asan_get_report_sp(void); +void *__asan_get_report_address(void); +int __asan_get_report_access_type(void); +size_t __asan_get_report_access_size(void); +const char *__asan_get_report_description(void); +const char *__asan_locate_address(void *addr, char *name, size_t name_size, + void **region_address, size_t *region_size); +size_t __asan_get_alloc_stack(void *addr, void **trace, size_t size, + int *thread_id); +size_t __asan_get_free_stack(void *addr, void **trace, size_t size, + int *thread_id); +void __asan_get_shadow_mapping(size_t *shadow_scale, size_t *shadow_offset); +void __asan_report_error(void *pc, void *bp, void *sp, + void *addr, int is_write, size_t access_size); +void __asan_set_death_callback(void (*callback)(void)); +void __asan_set_error_report_callback(void (*callback)(const char *)); +void __asan_on_error(void); +void __asan_print_accumulated_stats(void); +const char* __asan_default_options(void); +void *__asan_get_current_fake_stack(void); +void *__asan_addr_is_in_fake_stack(void *fake_stack, void *addr, void **beg, + void **end); +void __asan_handle_no_return(void); +int __asan_update_allocation_context(void* addr); + + + +struct rb_id_table; +enum rb_id_table_iterator_result { + ID_TABLE_CONTINUE = ST_CONTINUE, + ID_TABLE_STOP = ST_STOP, + ID_TABLE_DELETE = ST_DELETE, + ID_TABLE_REPLACE = ST_REPLACE, + ID_TABLE_ITERATOR_RESULT_END +}; +struct rb_id_table *rb_id_table_create(size_t size); +void rb_id_table_free(struct rb_id_table *tbl); +void rb_id_table_clear(struct rb_id_table *tbl); +size_t rb_id_table_memsize(const struct rb_id_table *tbl); +int rb_id_table_insert(struct rb_id_table *tbl, ID id, VALUE val); +int rb_id_table_lookup(struct rb_id_table *tbl, ID id, VALUE *valp); +int rb_id_table_delete(struct rb_id_table *tbl, ID id); +typedef enum rb_id_table_iterator_result rb_id_table_update_value_callback_func_t(VALUE *val, void *data, int existing); +typedef enum rb_id_table_iterator_result rb_id_table_foreach_func_t(ID id, VALUE val, void *data); +typedef enum rb_id_table_iterator_result rb_id_table_foreach_values_func_t(VALUE val, void *data); +void rb_id_table_foreach(struct rb_id_table *tbl, rb_id_table_foreach_func_t *func, void *data); +void rb_id_table_foreach_values(struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, void *data); +void rb_id_table_foreach_values_with_replace(struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, rb_id_table_update_value_callback_func_t *replace, void *data); +size_t rb_id_table_size(const struct rb_id_table *tbl); + +typedef enum { + CONST_DEPRECATED = 0x100, + CONST_VISIBILITY_MASK = 0xff, + CONST_PUBLIC = 0x00, + CONST_PRIVATE, + CONST_VISIBILITY_MAX +} rb_const_flag_t; +typedef struct rb_const_entry_struct { + rb_const_flag_t flag; + int line; + VALUE value; + VALUE file; +} rb_const_entry_t; +VALUE rb_mod_private_constant(int argc, const VALUE *argv, VALUE obj); +VALUE rb_mod_public_constant(int argc, const VALUE *argv, VALUE obj); +VALUE rb_mod_deprecate_constant(int argc, const VALUE *argv, VALUE obj); +void rb_free_const_table(struct rb_id_table *tbl); +VALUE rb_const_source_location(VALUE, ID); +int rb_autoloading_value(VALUE mod, ID id, VALUE *value, rb_const_flag_t *flag); +rb_const_entry_t *rb_const_lookup(VALUE klass, ID id); +VALUE rb_public_const_get_at(VALUE klass, ID id); +VALUE rb_public_const_get_from(VALUE klass, ID id); +int rb_public_const_defined_from(VALUE klass, ID id); +VALUE rb_const_source_location_at(VALUE, ID); +void rb_gc_mark_global_tbl(void); +void rb_gc_update_global_tbl(void); +size_t rb_generic_ivar_memsize(VALUE); +VALUE rb_search_class_path(VALUE); +VALUE rb_attr_delete(VALUE, ID); +void rb_autoload_str(VALUE mod, ID id, VALUE file); +VALUE rb_autoload_at_p(VALUE, ID, int); +__declspec(noreturn) VALUE rb_mod_const_missing(VALUE,VALUE); +rb_gvar_getter_t *rb_gvar_getter_function_of(ID); +rb_gvar_setter_t *rb_gvar_setter_function_of(ID); +void rb_gvar_readonly_setter(VALUE v, ID id, VALUE *_); +void rb_gvar_ractor_local(const char *name); +static inline _Bool ROBJ_TRANSIENT_P(VALUE obj); +static inline void ROBJ_TRANSIENT_SET(VALUE obj); +static inline void ROBJ_TRANSIENT_UNSET(VALUE obj); +struct gen_ivtbl; +int rb_gen_ivtbl_get(VALUE obj, ID id, struct gen_ivtbl **ivtbl); +int rb_obj_evacuate_ivs_to_hash_table(ID key, VALUE val, st_data_t arg); +void rb_mark_generic_ivar(VALUE); +void rb_mv_generic_ivar(VALUE src, VALUE dst); +VALUE rb_const_missing(VALUE klass, VALUE name); +int rb_class_ivar_set(VALUE klass, ID vid, VALUE value); +void rb_iv_tbl_copy(VALUE dst, VALUE src); +VALUE rb_ivar_lookup(VALUE obj, ID id, VALUE undef); +VALUE rb_gvar_get(ID); +VALUE rb_gvar_set(ID, VALUE); +VALUE rb_gvar_defined(ID); +void rb_const_warn_if_deprecated(const rb_const_entry_t *, VALUE, ID); +rb_shape_t * rb_grow_iv_list(VALUE obj); +void rb_ensure_iv_list_size(VALUE obj, uint32_t len, uint32_t newsize); +struct gen_ivtbl *rb_ensure_generic_iv_list_size(VALUE obj, rb_shape_t *shape, uint32_t newsize); +attr_index_t rb_obj_ivar_set(VALUE obj, ID id, VALUE val); +static inline _Bool +ROBJ_TRANSIENT_P(VALUE obj) +{ + return RB_FL_TEST_RAW(obj, ((VALUE)RUBY_FL_USER2)); +} +static inline void +ROBJ_TRANSIENT_SET(VALUE obj) +{ + RB_FL_SET_RAW(obj, ((VALUE)RUBY_FL_USER2)); +} +static inline void +ROBJ_TRANSIENT_UNSET(VALUE obj) +{ + RB_FL_UNSET_RAW(obj, ((VALUE)RUBY_FL_USER2)); +} + + + +enum rb_mjit_func_state { + MJIT_FUNC_NOT_COMPILED = 0, + MJIT_FUNC_COMPILING = 1, + MJIT_FUNC_FAILED = 2, +}; +struct mjit_options { + _Bool on; + _Bool save_temps; + _Bool warnings; + _Bool debug; + char* debug_flags; + _Bool wait; + unsigned int call_threshold; + int verbose; + int max_cache_size; + _Bool pause; + _Bool custom; +}; +struct rb_mjit_compile_info { + _Bool disable_ivar_cache; + _Bool disable_exivar_cache; + _Bool disable_send_cache; + _Bool disable_inlining; + _Bool disable_const_cache; +}; +typedef VALUE (*jit_func_t)(rb_execution_context_t *, rb_control_frame_t *); +extern struct mjit_options mjit_opts; +extern _Bool mjit_call_p; +extern void rb_mjit_add_iseq_to_process(const rb_iseq_t *iseq); +extern struct rb_mjit_compile_info* rb_mjit_iseq_compile_info(const struct rb_iseq_constant_body *body); +extern void rb_mjit_recompile_send(const rb_iseq_t *iseq); +extern void rb_mjit_recompile_ivar(const rb_iseq_t *iseq); +extern void rb_mjit_recompile_exivar(const rb_iseq_t *iseq); +extern void rb_mjit_recompile_inlining(const rb_iseq_t *iseq); +extern void rb_mjit_recompile_const(const rb_iseq_t *iseq); +extern void mjit_cancel_all(const char *reason); +extern _Bool mjit_compile(FILE *f, const rb_iseq_t *iseq, const char *funcname, int id); +extern void mjit_init(const struct mjit_options *opts); +extern void mjit_free_iseq(const rb_iseq_t *iseq); +extern void mjit_update_references(const rb_iseq_t *iseq); +extern void mjit_mark(void); +extern void mjit_mark_cc_entries(const struct rb_iseq_constant_body *const body); +extern void mjit_notify_waitpid(int exit_code); +extern void rb_mjit_bop_redefined(int redefined_flag, enum ruby_basic_operators bop); +extern void rb_mjit_cme_invalidate(rb_callable_method_entry_t *cme); +extern void rb_mjit_before_ractor_spawn(void); +extern void rb_mjit_constant_state_changed(ID id); +extern void rb_mjit_constant_ic_update(const rb_iseq_t *const iseq, IC ic, unsigned insn_idx); +extern void rb_mjit_tracing_invalidate_all(rb_event_flag_t new_iseq_events); +void mjit_child_after_fork(void); +VALUE mjit_pause(_Bool wait_p); +VALUE mjit_resume(void); +void mjit_finish(_Bool close_handle_p); + +static inline _Bool rb_yjit_enabled_p(void) { return 0; } +static inline unsigned rb_yjit_call_threshold(void) { return (2147483647 *2U +1U); } +static inline void rb_yjit_invalidate_all_method_lookup_assumptions(void) {} +static inline void rb_yjit_cme_invalidate(rb_callable_method_entry_t *cme) {} +static inline void rb_yjit_collect_vm_usage_insn(int insn) {} +static inline void rb_yjit_collect_binding_alloc(void) {} +static inline void rb_yjit_collect_binding_set(void) {} +static inline _Bool rb_yjit_compile_iseq(const rb_iseq_t *iseq, rb_execution_context_t *ec) { return 0; } +static inline void rb_yjit_init(void) {} +static inline void rb_yjit_bop_redefined(int redefined_flag, enum ruby_basic_operators bop) {} +static inline void rb_yjit_constant_state_changed(ID id) {} +static inline void rb_yjit_iseq_mark(void *payload) {} +static inline void rb_yjit_iseq_update_references(void *payload) {} +static inline void rb_yjit_iseq_free(void *payload) {} +static inline void rb_yjit_before_ractor_spawn(void) {} +static inline void rb_yjit_constant_ic_update(const rb_iseq_t *const iseq, IC ic, unsigned insn_idx) {} +static inline void rb_yjit_tracing_invalidate_all(void) {} + + +typedef struct rb_vm_struct ruby_vm_t; +int ruby_vm_destruct(ruby_vm_t *vm); +void ruby_vm_at_exit(void(*func)(ruby_vm_t *)); + + +enum rb_debug_counter_type { +RB_DEBUG_COUNTER_mc_inline_hit, +RB_DEBUG_COUNTER_mc_inline_miss_klass, +RB_DEBUG_COUNTER_mc_inline_miss_invalidated, +RB_DEBUG_COUNTER_mc_inline_miss_empty, +RB_DEBUG_COUNTER_mc_inline_miss_same_cc, +RB_DEBUG_COUNTER_mc_inline_miss_same_cme, +RB_DEBUG_COUNTER_mc_inline_miss_same_def, +RB_DEBUG_COUNTER_mc_inline_miss_diff, +RB_DEBUG_COUNTER_cvar_write_inline_hit, +RB_DEBUG_COUNTER_cvar_read_inline_hit, +RB_DEBUG_COUNTER_cvar_inline_miss, +RB_DEBUG_COUNTER_cvar_class_invalidate, +RB_DEBUG_COUNTER_cvar_include_invalidate, +RB_DEBUG_COUNTER_mc_cme_complement, +RB_DEBUG_COUNTER_mc_cme_complement_hit, +RB_DEBUG_COUNTER_mc_search, +RB_DEBUG_COUNTER_mc_search_notfound, +RB_DEBUG_COUNTER_mc_search_super, +RB_DEBUG_COUNTER_ci_packed, +RB_DEBUG_COUNTER_ci_kw, +RB_DEBUG_COUNTER_ci_nokw, +RB_DEBUG_COUNTER_ci_runtime, +RB_DEBUG_COUNTER_cc_new, +RB_DEBUG_COUNTER_cc_temp, +RB_DEBUG_COUNTER_cc_found_in_ccs, +RB_DEBUG_COUNTER_cc_not_found_in_ccs, +RB_DEBUG_COUNTER_cc_ent_invalidate, +RB_DEBUG_COUNTER_cc_cme_invalidate, +RB_DEBUG_COUNTER_cc_invalidate_leaf, +RB_DEBUG_COUNTER_cc_invalidate_leaf_ccs, +RB_DEBUG_COUNTER_cc_invalidate_leaf_callable, +RB_DEBUG_COUNTER_cc_invalidate_tree, +RB_DEBUG_COUNTER_cc_invalidate_tree_cme, +RB_DEBUG_COUNTER_cc_invalidate_tree_callable, +RB_DEBUG_COUNTER_cc_invalidate_negative, +RB_DEBUG_COUNTER_ccs_free, +RB_DEBUG_COUNTER_ccs_maxlen, +RB_DEBUG_COUNTER_ccs_found, +RB_DEBUG_COUNTER_ccs_not_found, +RB_DEBUG_COUNTER_call0_public, +RB_DEBUG_COUNTER_call0_other, +RB_DEBUG_COUNTER_gccct_hit, +RB_DEBUG_COUNTER_gccct_miss, +RB_DEBUG_COUNTER_gccct_null, +RB_DEBUG_COUNTER_iseq_num, +RB_DEBUG_COUNTER_iseq_cd_num, +RB_DEBUG_COUNTER_ccf_general, +RB_DEBUG_COUNTER_ccf_iseq_setup, +RB_DEBUG_COUNTER_ccf_iseq_setup_0start, +RB_DEBUG_COUNTER_ccf_iseq_setup_tailcall_0start, +RB_DEBUG_COUNTER_ccf_iseq_fix, +RB_DEBUG_COUNTER_ccf_iseq_opt, +RB_DEBUG_COUNTER_ccf_iseq_kw1, +RB_DEBUG_COUNTER_ccf_iseq_kw2, +RB_DEBUG_COUNTER_ccf_cfunc, +RB_DEBUG_COUNTER_ccf_cfunc_with_frame, +RB_DEBUG_COUNTER_ccf_ivar, +RB_DEBUG_COUNTER_ccf_attrset, +RB_DEBUG_COUNTER_ccf_method_missing, +RB_DEBUG_COUNTER_ccf_zsuper, +RB_DEBUG_COUNTER_ccf_bmethod, +RB_DEBUG_COUNTER_ccf_opt_send, +RB_DEBUG_COUNTER_ccf_opt_call, +RB_DEBUG_COUNTER_ccf_opt_block_call, +RB_DEBUG_COUNTER_ccf_opt_struct_aref, +RB_DEBUG_COUNTER_ccf_opt_struct_aset, +RB_DEBUG_COUNTER_ccf_super_method, +RB_DEBUG_COUNTER_frame_push, +RB_DEBUG_COUNTER_frame_push_method, +RB_DEBUG_COUNTER_frame_push_block, +RB_DEBUG_COUNTER_frame_push_class, +RB_DEBUG_COUNTER_frame_push_top, +RB_DEBUG_COUNTER_frame_push_cfunc, +RB_DEBUG_COUNTER_frame_push_ifunc, +RB_DEBUG_COUNTER_frame_push_eval, +RB_DEBUG_COUNTER_frame_push_rescue, +RB_DEBUG_COUNTER_frame_push_dummy, +RB_DEBUG_COUNTER_frame_R2R, +RB_DEBUG_COUNTER_frame_R2C, +RB_DEBUG_COUNTER_frame_C2C, +RB_DEBUG_COUNTER_frame_C2R, +RB_DEBUG_COUNTER_ivar_get_ic_hit, +RB_DEBUG_COUNTER_ivar_get_ic_miss, +RB_DEBUG_COUNTER_ivar_get_ic_miss_noobject, +RB_DEBUG_COUNTER_ivar_set_ic_hit, +RB_DEBUG_COUNTER_ivar_set_ic_miss, +RB_DEBUG_COUNTER_ivar_set_ic_miss_iv_hit, +RB_DEBUG_COUNTER_ivar_set_ic_miss_noobject, +RB_DEBUG_COUNTER_ivar_get_base, +RB_DEBUG_COUNTER_ivar_set_base, +RB_DEBUG_COUNTER_ivar_get_ic_miss_set, +RB_DEBUG_COUNTER_ivar_get_cc_miss_set, +RB_DEBUG_COUNTER_ivar_get_ic_miss_unset, +RB_DEBUG_COUNTER_ivar_get_cc_miss_unset, +RB_DEBUG_COUNTER_lvar_get, +RB_DEBUG_COUNTER_lvar_get_dynamic, +RB_DEBUG_COUNTER_lvar_set, +RB_DEBUG_COUNTER_lvar_set_dynamic, +RB_DEBUG_COUNTER_lvar_set_slowpath, +RB_DEBUG_COUNTER_gc_count, +RB_DEBUG_COUNTER_gc_minor_newobj, +RB_DEBUG_COUNTER_gc_minor_malloc, +RB_DEBUG_COUNTER_gc_minor_method, +RB_DEBUG_COUNTER_gc_minor_capi, +RB_DEBUG_COUNTER_gc_minor_stress, +RB_DEBUG_COUNTER_gc_major_nofree, +RB_DEBUG_COUNTER_gc_major_oldgen, +RB_DEBUG_COUNTER_gc_major_shady, +RB_DEBUG_COUNTER_gc_major_force, +RB_DEBUG_COUNTER_gc_major_oldmalloc, +RB_DEBUG_COUNTER_gc_enter_start, +RB_DEBUG_COUNTER_gc_enter_mark_continue, +RB_DEBUG_COUNTER_gc_enter_sweep_continue, +RB_DEBUG_COUNTER_gc_enter_rest, +RB_DEBUG_COUNTER_gc_enter_finalizer, +RB_DEBUG_COUNTER_gc_isptr_trial, +RB_DEBUG_COUNTER_gc_isptr_range, +RB_DEBUG_COUNTER_gc_isptr_align, +RB_DEBUG_COUNTER_gc_isptr_maybe, +RB_DEBUG_COUNTER_obj_newobj, +RB_DEBUG_COUNTER_obj_newobj_slowpath, +RB_DEBUG_COUNTER_obj_newobj_wb_unprotected, +RB_DEBUG_COUNTER_obj_free, +RB_DEBUG_COUNTER_obj_promote, +RB_DEBUG_COUNTER_obj_wb_unprotect, +RB_DEBUG_COUNTER_obj_obj_embed, +RB_DEBUG_COUNTER_obj_obj_transient, +RB_DEBUG_COUNTER_obj_obj_ptr, +RB_DEBUG_COUNTER_obj_obj_too_complex, +RB_DEBUG_COUNTER_obj_str_ptr, +RB_DEBUG_COUNTER_obj_str_embed, +RB_DEBUG_COUNTER_obj_str_shared, +RB_DEBUG_COUNTER_obj_str_nofree, +RB_DEBUG_COUNTER_obj_str_fstr, +RB_DEBUG_COUNTER_obj_ary_embed, +RB_DEBUG_COUNTER_obj_ary_transient, +RB_DEBUG_COUNTER_obj_ary_ptr, +RB_DEBUG_COUNTER_obj_ary_extracapa, +RB_DEBUG_COUNTER_obj_ary_shared_create, +RB_DEBUG_COUNTER_obj_ary_shared, +RB_DEBUG_COUNTER_obj_ary_shared_root_occupied, +RB_DEBUG_COUNTER_obj_hash_empty, +RB_DEBUG_COUNTER_obj_hash_1, +RB_DEBUG_COUNTER_obj_hash_2, +RB_DEBUG_COUNTER_obj_hash_3, +RB_DEBUG_COUNTER_obj_hash_4, +RB_DEBUG_COUNTER_obj_hash_5_8, +RB_DEBUG_COUNTER_obj_hash_g8, +RB_DEBUG_COUNTER_obj_hash_null, +RB_DEBUG_COUNTER_obj_hash_ar, +RB_DEBUG_COUNTER_obj_hash_st, +RB_DEBUG_COUNTER_obj_hash_transient, +RB_DEBUG_COUNTER_obj_hash_force_convert, +RB_DEBUG_COUNTER_obj_struct_embed, +RB_DEBUG_COUNTER_obj_struct_transient, +RB_DEBUG_COUNTER_obj_struct_ptr, +RB_DEBUG_COUNTER_obj_data_empty, +RB_DEBUG_COUNTER_obj_data_xfree, +RB_DEBUG_COUNTER_obj_data_imm_free, +RB_DEBUG_COUNTER_obj_data_zombie, +RB_DEBUG_COUNTER_obj_match_under4, +RB_DEBUG_COUNTER_obj_match_ge4, +RB_DEBUG_COUNTER_obj_match_ge8, +RB_DEBUG_COUNTER_obj_match_ptr, +RB_DEBUG_COUNTER_obj_iclass_ptr, +RB_DEBUG_COUNTER_obj_class_ptr, +RB_DEBUG_COUNTER_obj_module_ptr, +RB_DEBUG_COUNTER_obj_bignum_ptr, +RB_DEBUG_COUNTER_obj_bignum_embed, +RB_DEBUG_COUNTER_obj_float, +RB_DEBUG_COUNTER_obj_complex, +RB_DEBUG_COUNTER_obj_rational, +RB_DEBUG_COUNTER_obj_regexp_ptr, +RB_DEBUG_COUNTER_obj_file_ptr, +RB_DEBUG_COUNTER_obj_symbol, +RB_DEBUG_COUNTER_obj_imemo_ment, +RB_DEBUG_COUNTER_obj_imemo_iseq, +RB_DEBUG_COUNTER_obj_imemo_env, +RB_DEBUG_COUNTER_obj_imemo_tmpbuf, +RB_DEBUG_COUNTER_obj_imemo_ast, +RB_DEBUG_COUNTER_obj_imemo_cref, +RB_DEBUG_COUNTER_obj_imemo_svar, +RB_DEBUG_COUNTER_obj_imemo_throw_data, +RB_DEBUG_COUNTER_obj_imemo_ifunc, +RB_DEBUG_COUNTER_obj_imemo_memo, +RB_DEBUG_COUNTER_obj_imemo_parser_strterm, +RB_DEBUG_COUNTER_obj_imemo_callinfo, +RB_DEBUG_COUNTER_obj_imemo_callcache, +RB_DEBUG_COUNTER_obj_imemo_constcache, +RB_DEBUG_COUNTER_artable_hint_hit, +RB_DEBUG_COUNTER_artable_hint_miss, +RB_DEBUG_COUNTER_artable_hint_notfound, +RB_DEBUG_COUNTER_heap_xmalloc, +RB_DEBUG_COUNTER_heap_xrealloc, +RB_DEBUG_COUNTER_heap_xfree, +RB_DEBUG_COUNTER_theap_alloc, +RB_DEBUG_COUNTER_theap_alloc_fail, +RB_DEBUG_COUNTER_theap_evacuate, +RB_DEBUG_COUNTER_vm_sync_lock, +RB_DEBUG_COUNTER_vm_sync_lock_enter, +RB_DEBUG_COUNTER_vm_sync_lock_enter_nb, +RB_DEBUG_COUNTER_vm_sync_lock_enter_cr, +RB_DEBUG_COUNTER_vm_sync_barrier, + RB_DEBUG_COUNTER_MAX +}; +void rb_debug_counter_show_results(const char *msg); +size_t ruby_debug_counter_get(const char **names_ptr, size_t *counters_ptr); +void ruby_debug_counter_reset(void); +void ruby_debug_counter_show_at_exit(int enable); + +struct rb_subclass_entry { + VALUE klass; + struct rb_subclass_entry *next; + struct rb_subclass_entry *prev; +}; +struct rb_cvar_class_tbl_entry { + uint32_t index; + rb_serial_t global_cvar_state; + VALUE class_value; +}; +struct rb_classext_struct { + VALUE *iv_ptr; + struct rb_id_table *const_tbl; + struct rb_id_table *callable_m_tbl; + struct rb_id_table *cc_tbl; + struct rb_id_table *cvc_tbl; + size_t superclass_depth; + VALUE *superclasses; + struct rb_subclass_entry *subclasses; + struct rb_subclass_entry *subclass_entry; + struct rb_subclass_entry *module_subclass_entry; + const VALUE origin_; + const VALUE refined_class; + rb_alloc_func_t allocator; + const VALUE includer; + uint32_t max_iv_count; + uint32_t variation_count; +}; +struct RClass { + struct RBasic basic; + VALUE super; + struct rb_id_table *m_tbl; +}; +typedef struct rb_subclass_entry rb_subclass_entry_t; +typedef struct rb_classext_struct rb_classext_t; +void rb_class_subclass_add(VALUE super, VALUE klass); +void rb_class_remove_from_super_subclasses(VALUE); +void rb_class_update_superclasses(VALUE); +size_t rb_class_superclasses_memsize(VALUE); +void rb_class_remove_subclass_head(VALUE); +int rb_singleton_class_internal_p(VALUE sklass); +VALUE rb_class_boot(VALUE); +VALUE rb_class_s_alloc(VALUE klass); +VALUE rb_module_s_alloc(VALUE klass); +void rb_module_set_initialized(VALUE module); +void rb_module_check_initializable(VALUE module); +VALUE rb_make_metaclass(VALUE, VALUE); +VALUE rb_include_class_new(VALUE, VALUE); +void rb_class_foreach_subclass(VALUE klass, void (*f)(VALUE, VALUE), VALUE); +void rb_class_detach_subclasses(VALUE); +void rb_class_detach_module_subclasses(VALUE); +void rb_class_remove_from_module_subclasses(VALUE); +VALUE rb_obj_methods(int argc, const VALUE *argv, VALUE obj); +VALUE rb_obj_protected_methods(int argc, const VALUE *argv, VALUE obj); +VALUE rb_obj_private_methods(int argc, const VALUE *argv, VALUE obj); +VALUE rb_obj_public_methods(int argc, const VALUE *argv, VALUE obj); +VALUE rb_class_undefined_instance_methods(VALUE mod); +VALUE rb_special_singleton_class(VALUE); +VALUE rb_singleton_class_clone_and_attach(VALUE obj, VALUE attach); +VALUE rb_singleton_class_get(VALUE obj); +void rb_undef_methods_from(VALUE klass, VALUE super); +static inline void RCLASS_SET_ORIGIN(VALUE klass, VALUE origin); +static inline void RICLASS_SET_ORIGIN_SHARED_MTBL(VALUE iclass); +static inline VALUE RCLASS_SUPER(VALUE klass); +static inline VALUE RCLASS_SET_SUPER(VALUE klass, VALUE super); +static inline void RCLASS_SET_INCLUDER(VALUE iclass, VALUE klass); +VALUE rb_class_inherited(VALUE, VALUE); +VALUE rb_keyword_error_new(const char *, VALUE); +static inline void +RCLASS_SET_ORIGIN(VALUE klass, VALUE origin) +{ + rb_obj_write((VALUE)(klass), __extension__({ + ; + ; __typeof__((VALUE *)(&(((rb_classext_t *)((char *)(klass) + sizeof(struct RClass)))->origin_))) unaligned_member_access_result = ((VALUE *)(&(((rb_classext_t *)((char *)(klass) + sizeof(struct RClass)))->origin_))); + ; unaligned_member_access_result; }), (VALUE)(origin), "./internal/class.h", 142); + if (klass != origin) RB_FL_SET(origin, ((VALUE)RUBY_FL_USER0)); +} +static inline void +RICLASS_SET_ORIGIN_SHARED_MTBL(VALUE iclass) +{ + RB_FL_SET(iclass, ((VALUE)RUBY_FL_USER3)); +} +static inline _Bool +RICLASS_OWNS_M_TBL_P(VALUE iclass) +{ + return RB_FL_TEST_RAW(iclass, ((VALUE)RUBY_FL_USER0) | ((VALUE)RUBY_FL_USER3)) == ((VALUE)RUBY_FL_USER0); +} +static inline void +RCLASS_SET_INCLUDER(VALUE iclass, VALUE klass) +{ + rb_obj_write((VALUE)(iclass), __extension__({ + ; + ; __typeof__((VALUE *)(&(((rb_classext_t *)((char *)(iclass) + sizeof(struct RClass)))->includer))) unaligned_member_access_result = ((VALUE *)(&(((rb_classext_t *)((char *)(iclass) + sizeof(struct RClass)))->includer))); + ; unaligned_member_access_result; }), (VALUE)(klass), "./internal/class.h", 161); +} +static inline VALUE +RCLASS_SUPER(VALUE klass) +{ + return ((struct RClass *)(klass))->super; +} +static inline VALUE +RCLASS_SET_SUPER(VALUE klass, VALUE super) +{ + if (super) { + rb_class_remove_from_super_subclasses(klass); + rb_class_subclass_add(super, klass); + } + rb_obj_write((VALUE)(klass), __extension__({ + ; + ; __typeof__((VALUE *)(&((struct RClass *)(klass))->super)) unaligned_member_access_result = ((VALUE *)(&((struct RClass *)(klass))->super)); + ; unaligned_member_access_result; }), (VALUE)(super), "./internal/class.h", 177); + rb_class_update_superclasses(klass); + return super; +} +enum vm_call_flag_bits { + VM_CALL_ARGS_SPLAT_bit, + VM_CALL_ARGS_BLOCKARG_bit, + VM_CALL_FCALL_bit, + VM_CALL_VCALL_bit, + VM_CALL_ARGS_SIMPLE_bit, + VM_CALL_BLOCKISEQ_bit, + VM_CALL_KWARG_bit, + VM_CALL_KW_SPLAT_bit, + VM_CALL_TAILCALL_bit, + VM_CALL_SUPER_bit, + VM_CALL_ZSUPER_bit, + VM_CALL_OPT_SEND_bit, + VM_CALL_KW_SPLAT_MUT_bit, + VM_CALL__END +}; +struct rb_callinfo_kwarg { + int keyword_len; + VALUE keywords[]; +}; +static inline size_t +rb_callinfo_kwarg_bytes(int keyword_len) +{ + return rb_size_mul_add_or_raise( + keyword_len, + sizeof(VALUE), + sizeof(struct rb_callinfo_kwarg), + rb_eRuntimeError); +} +struct rb_callinfo { + VALUE flags; + const struct rb_callinfo_kwarg *kwarg; + VALUE mid; + VALUE flag; + VALUE argc; +}; +static inline _Bool +vm_ci_packed_p(const struct rb_callinfo *ci) +{ + if ((__builtin_expect(!!(((VALUE)ci) & 0x01), 1))) { + return 1; + } + else { + ((void)0); + return 0; + } +} +static inline _Bool +vm_ci_p(const struct rb_callinfo *ci) +{ + if (vm_ci_packed_p(ci) || imemo_type_p((VALUE)ci, imemo_callinfo)) { + return 1; + } + else { + return 0; + } +} +static inline ID +vm_ci_mid(const struct rb_callinfo *ci) +{ + if (vm_ci_packed_p(ci)) { + return (((VALUE)ci) >> (1 + 15 + 16)) & ((((VALUE)1)<<32) - 1); + } + else { + return (ID)ci->mid; + } +} +static inline unsigned int +vm_ci_flag(const struct rb_callinfo *ci) +{ + if (vm_ci_packed_p(ci)) { + return (unsigned int)((((VALUE)ci) >> (1 + 15)) & ((((VALUE)1)<<16) - 1)); + } + else { + return (unsigned int)ci->flag; + } +} +static inline unsigned int +vm_ci_argc(const struct rb_callinfo *ci) +{ + if (vm_ci_packed_p(ci)) { + return (unsigned int)((((VALUE)ci) >> (1)) & ((((VALUE)1)<<15) - 1)); + } + else { + return (unsigned int)ci->argc; + } +} +static inline const struct rb_callinfo_kwarg * +vm_ci_kwarg(const struct rb_callinfo *ci) +{ + if (vm_ci_packed_p(ci)) { + return ((void*)0); + } + else { + return ci->kwarg; + } +} +static inline void +vm_ci_dump(const struct rb_callinfo *ci) +{ + if (vm_ci_packed_p(ci)) { + ruby_debug_printf("packed_ci ID:%s flag:%x argc:%u\n", + rb_id2name(vm_ci_mid(ci)), vm_ci_flag(ci), vm_ci_argc(ci)); + } + else { + rb_obj_info_dump_loc((VALUE)(ci), "./vm_callinfo.h", 177, __func__); + } +} +static inline const struct rb_callinfo * +vm_ci_new_(ID mid, unsigned int flag, unsigned int argc, const struct rb_callinfo_kwarg *kwarg, const char *file, int line) +{ + if ((((mid ) & ~((((VALUE)1)<<32) - 1)) ? 0 : ((flag) & ~((((VALUE)1)<<16) - 1)) ? 0 : ((argc) & ~((((VALUE)1)<<15) - 1)) ? 0 : (kwarg) ? 0 : 1)) { + ((void)0); + return ((const struct rb_callinfo *) ((((VALUE)(mid )) << (1 + 15 + 16)) | (((VALUE)(flag)) << (1 + 15)) | (((VALUE)(argc)) << (1)) | RUBY_FIXNUM_FLAG)); + } + const _Bool debug = 0; + if (debug) ruby_debug_printf("%s:%d ", file, line); + const struct rb_callinfo *ci = (const struct rb_callinfo *) + rb_imemo_new(imemo_callinfo, + (VALUE)mid, + (VALUE)flag, + (VALUE)argc, + (VALUE)kwarg); + if (debug) rb_obj_info_dump_loc((VALUE)(ci), "./vm_callinfo.h", 218, __func__); + if (kwarg) { + ((void)0); + } + else { + ((void)0); + } + ((void)0); + ((void)0); + return ci; +} +static inline const struct rb_callinfo * +vm_ci_new_runtime_(ID mid, unsigned int flag, unsigned int argc, const struct rb_callinfo_kwarg *kwarg, const char *file, int line) +{ + ((void)0); + return vm_ci_new_(mid, flag, argc, kwarg, file, line); +} +static inline _Bool +vm_ci_markable(const struct rb_callinfo *ci) +{ + if (! ci) { + return 0; + } + else if (vm_ci_packed_p(ci)) { + return 1; + } + else { + ((void)0); + return ! RB_FL_ANY_RAW((VALUE)ci, ((VALUE)RUBY_FL_USER4)); + } +} +typedef VALUE (*vm_call_handler)( + struct rb_execution_context_struct *ec, + struct rb_control_frame_struct *cfp, + struct rb_calling_info *calling); +struct rb_callcache { + const VALUE flags; + const VALUE klass; + const struct rb_callable_method_entry_struct * const cme_; + const vm_call_handler call_; + union { + struct { + uintptr_t value; + } attr; + const enum method_missing_reason method_missing_reason; + VALUE v; + } aux_; +}; +extern const struct rb_callcache *rb_vm_empty_cc(void); +extern const struct rb_callcache *rb_vm_empty_cc_for_super(void); +static inline void vm_cc_attr_index_set(const struct rb_callcache *cc, attr_index_t index, shape_id_t dest_shape_id); +static inline void +vm_cc_attr_index_initialize(const struct rb_callcache *cc, shape_id_t shape_id) +{ + vm_cc_attr_index_set(cc, (attr_index_t)-1, shape_id); +} +static inline const struct rb_callcache * +vm_cc_new(VALUE klass, + const struct rb_callable_method_entry_struct *cme, + vm_call_handler call) +{ + const struct rb_callcache *cc = (const struct rb_callcache *)rb_imemo_new(imemo_callcache, (VALUE)cme, (VALUE)call, 0, klass); + vm_cc_attr_index_initialize(cc, (((uintptr_t)1 << 32) - 1)); + ((void)0); + return cc; +} +static inline _Bool +vm_cc_class_check(const struct rb_callcache *cc, VALUE klass) +{ + ((void)0); + ((void)0); + return cc->klass == klass; +} +static inline int +vm_cc_markable(const struct rb_callcache *cc) +{ + ((void)0); + return RB_FL_TEST_RAW((VALUE)cc, ((VALUE)RUBY_FL_FREEZE)) == 0; +} +static inline const struct rb_callable_method_entry_struct * +vm_cc_cme(const struct rb_callcache *cc) +{ + ((void)0); + ((void)0); + return cc->cme_; +} +static inline vm_call_handler +vm_cc_call(const struct rb_callcache *cc) +{ + ((void)0); + ((void)0); + return cc->call_; +} +static inline attr_index_t +vm_cc_attr_index(const struct rb_callcache *cc) +{ + ((void)0); + return (attr_index_t)((cc->aux_.attr.value & (((VALUE)-1) >> 32)) - 1); +} +static inline shape_id_t +vm_cc_attr_index_dest_shape_id(const struct rb_callcache *cc) +{ + ((void)0); + return cc->aux_.attr.value >> ((8 * 8) - 32); +} +static inline void +vm_cc_atomic_shape_and_index(const struct rb_callcache *cc, shape_id_t * shape_id, attr_index_t * index) +{ + uintptr_t cache_value = cc->aux_.attr.value; + *shape_id = (shape_id_t)(cache_value >> ((8 * 8) - 32)); + *index = (attr_index_t)(cache_value & (((VALUE)-1) >> 32)) - 1; + return; +} +static inline void +vm_ic_atomic_shape_and_index(const struct iseq_inline_iv_cache_entry *ic, shape_id_t * shape_id, attr_index_t * index) +{ + uintptr_t cache_value = ic->value; + *shape_id = (shape_id_t)(cache_value >> ((8 * 8) - 32)); + *index = (attr_index_t)(cache_value & (((VALUE)-1) >> 32)) - 1; + return; +} +static inline shape_id_t +vm_ic_attr_index_dest_shape_id(const struct iseq_inline_iv_cache_entry *ic) +{ + return (shape_id_t)(ic->value >> ((8 * 8) - 32)); +} +static inline unsigned int +vm_cc_cmethod_missing_reason(const struct rb_callcache *cc) +{ + ((void)0); + return cc->aux_.method_missing_reason; +} +static inline _Bool +vm_cc_invalidated_p(const struct rb_callcache *cc) +{ + if (cc->klass && !((vm_cc_cme(cc))->flags & ((VALUE)RUBY_FL_USER9))) { + return 0; + } + else { + return 1; + } +} +static inline _Bool +vm_cc_valid_p(const struct rb_callcache *cc, const rb_callable_method_entry_t *cc_cme, VALUE klass) +{ + ((void)0); + if (cc->klass == klass && !((cc_cme)->flags & ((VALUE)RUBY_FL_USER9))) { + return 1; + } + else { + return 0; + } +} +static inline void +vm_cc_call_set(const struct rb_callcache *cc, vm_call_handler call) +{ + ((void)0); + ((void)0); + *(vm_call_handler *)&cc->call_ = call; +} +static inline void +vm_cc_attr_index_set(const struct rb_callcache *cc, attr_index_t index, shape_id_t dest_shape_id) +{ + uintptr_t *attr_value = (uintptr_t *)&cc->aux_.attr.value; + if (!vm_cc_markable(cc)) { + *attr_value = (uintptr_t)(((uintptr_t)1 << 32) - 1) << ((8 * 8) - 32); + return; + } + ((void)0); + ((void)0); + *attr_value = (attr_index_t)(index + 1) | ((uintptr_t)(dest_shape_id) << ((8 * 8) - 32)); +} +static inline void +vm_ic_attr_index_set(const rb_iseq_t *iseq, const struct iseq_inline_iv_cache_entry *ic, attr_index_t index, shape_id_t dest_shape_id) +{ + *(uintptr_t *)&ic->value = ((uintptr_t)dest_shape_id << ((8 * 8) - 32)) | (attr_index_t)(index + 1); +} +static inline void +vm_ic_attr_index_initialize(const struct iseq_inline_iv_cache_entry *ic, shape_id_t shape_id) +{ + *(uintptr_t *)&ic->value = (uintptr_t)shape_id << ((8 * 8) - 32); +} +static inline void +vm_cc_method_missing_reason_set(const struct rb_callcache *cc, enum method_missing_reason reason) +{ + ((void)0); + ((void)0); + *(enum method_missing_reason *)&cc->aux_.method_missing_reason = reason; +} +static inline void +vm_cc_invalidate(const struct rb_callcache *cc) +{ + ((void)0); + ((void)0); + ((void)0); + *(VALUE *)&cc->klass = 0; + ((void)0); +} +struct rb_call_data { + const struct rb_callinfo *ci; + const struct rb_callcache *cc; +}; +struct rb_class_cc_entries { + int capa; + int len; + const struct rb_callable_method_entry_struct *cme; + struct rb_class_cc_entries_entry { + const struct rb_callinfo *ci; + const struct rb_callcache *cc; + } *entries; +}; +void rb_vm_ccs_free(struct rb_class_cc_entries *ccs); + +struct RNode; +VALUE ruby_debug_print_value(int level, int debug_level, const char *header, VALUE v); +ID ruby_debug_print_id(int level, int debug_level, const char *header, ID id); +struct RNode *ruby_debug_print_node(int level, int debug_level, const char *header, const struct RNode *node); +int ruby_debug_print_indent(int level, int debug_level, int indent_level); +void ruby_debug_gc_check_func(void); +void ruby_set_debug_option(const char *str); +extern enum ruby_debug_log_mode { + ruby_debug_log_disabled = 0x00, + ruby_debug_log_memory = 0x01, + ruby_debug_log_stderr = 0x02, + ruby_debug_log_file = 0x04, +} ruby_debug_log_mode; +__attribute__((__format__(__printf__, 4, 5))) +void ruby_debug_log(const char *file, int line, const char *func_name, const char *fmt, ...); +void ruby_debug_log_print(unsigned int n); +_Bool ruby_debug_log_filter(const char *func_name, const char *file_name); + +typedef long OFFSET; +typedef unsigned long lindex_t; +typedef VALUE GENTRY; +typedef rb_iseq_t *ISEQ; + +extern VALUE ruby_vm_const_missing_count; +extern rb_serial_t ruby_vm_constant_cache_invalidations; +extern rb_serial_t ruby_vm_constant_cache_misses; +extern rb_serial_t ruby_vm_global_cvar_state; +static inline void +CC_SET_FASTPATH(const struct rb_callcache *cc, vm_call_handler func, _Bool enabled) +{ + if ((__builtin_expect(!!(enabled), 1))) { + vm_cc_call_set(cc, func); + } +} +static inline struct vm_throw_data * +THROW_DATA_NEW(VALUE val, const rb_control_frame_t *cf, int st) +{ + struct vm_throw_data *obj = (struct vm_throw_data *)rb_imemo_new(imemo_throw_data, val, (VALUE)cf, 0, 0); + obj->throw_state = st; + return obj; +} +static inline VALUE +THROW_DATA_VAL(const struct vm_throw_data *obj) +{ + ((void)0); + return obj->throw_obj; +} +static inline const rb_control_frame_t * +THROW_DATA_CATCH_FRAME(const struct vm_throw_data *obj) +{ + ((void)0); + return obj->catch_frame; +} +static inline int +THROW_DATA_STATE(const struct vm_throw_data *obj) +{ + ((void)0); + return obj->throw_state; +} +static inline int +THROW_DATA_CONSUMED_P(const struct vm_throw_data *obj) +{ + ((void)0); + return obj->flags & ((VALUE)RUBY_FL_USER4); +} +static inline void +THROW_DATA_CATCH_FRAME_SET(struct vm_throw_data *obj, const rb_control_frame_t *cfp) +{ + ((void)0); + obj->catch_frame = cfp; +} +static inline void +THROW_DATA_STATE_SET(struct vm_throw_data *obj, int st) +{ + ((void)0); + obj->throw_state = st; +} +static inline void +THROW_DATA_CONSUMED_SET(struct vm_throw_data *obj) +{ + if (imemo_throw_data_p((VALUE)obj) && + THROW_DATA_STATE(obj) == RUBY_TAG_BREAK) { + obj->flags |= ((VALUE)RUBY_FL_USER4); + } +} +static inline _Bool +vm_call_cacheable(const struct rb_callinfo *ci, const struct rb_callcache *cc) +{ + return (vm_ci_flag(ci) & (0x01 << VM_CALL_FCALL_bit)) || + (rb_method_visibility_t)(((vm_cc_cme(cc))->flags & (((VALUE)RUBY_FL_USER4) | ((VALUE)RUBY_FL_USER5))) >> ((((VALUE)RUBY_FL_USHIFT) + 4)+0)) != METHOD_VISI_PROTECTED; +} +static inline _Bool +vm_call_iseq_optimizable_p(const struct rb_callinfo *ci, const struct rb_callcache *cc) +{ + return !(vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_SPLAT_bit)) && !(vm_ci_flag(ci) & (0x01 << VM_CALL_KWARG_bit)) && vm_call_cacheable(ci, cc); +} + + +struct rb_ractor_local_storage_type { + void (*mark)(void *ptr); + void (*free)(void *ptr); +}; +typedef struct rb_ractor_local_key_struct *rb_ractor_local_key_t; +extern VALUE rb_cRactor; +VALUE rb_ractor_stdin(void); +VALUE rb_ractor_stdout(void); +VALUE rb_ractor_stderr(void); +void rb_ractor_stdin_set(VALUE io); +void rb_ractor_stdout_set(VALUE io); +void rb_ractor_stderr_set(VALUE io); +rb_ractor_local_key_t rb_ractor_local_storage_value_newkey(void); +VALUE rb_ractor_local_storage_value(rb_ractor_local_key_t key); +_Bool rb_ractor_local_storage_value_lookup(rb_ractor_local_key_t key, VALUE *val); +void rb_ractor_local_storage_value_set(rb_ractor_local_key_t key, VALUE val); +extern const struct rb_ractor_local_storage_type rb_ractor_local_storage_type_free; +rb_ractor_local_key_t rb_ractor_local_storage_ptr_newkey(const struct rb_ractor_local_storage_type *type); +void *rb_ractor_local_storage_ptr(rb_ractor_local_key_t key); +void rb_ractor_local_storage_ptr_set(rb_ractor_local_key_t key, void *ptr); +VALUE rb_ractor_make_shareable(VALUE obj); +VALUE rb_ractor_make_shareable_copy(VALUE obj); +static inline _Bool +rb_ractor_shareable_p(VALUE obj) +{ + _Bool rb_ractor_shareable_p_continue(VALUE obj); + if (RB_SPECIAL_CONST_P(obj)) { + return 1; + } + else if (RB_FL_TEST_RAW((obj), RUBY_FL_SHAREABLE)) { + return 1; + } + else { + return rb_ractor_shareable_p_continue(obj); + } +} +enum rb_ractor_basket_type { + basket_type_none, + basket_type_ref, + basket_type_copy, + basket_type_move, + basket_type_will, + basket_type_deleted, + basket_type_reserved, +}; +struct rb_ractor_basket { + _Bool exception; + enum rb_ractor_basket_type type; + VALUE v; + VALUE sender; +}; +struct rb_ractor_queue { + struct rb_ractor_basket *baskets; + int start; + int cnt; + int size; + unsigned int serial; + unsigned int reserved_cnt; +}; +struct rb_ractor_waiting_list { + int cnt; + int size; + rb_ractor_t **ractors; +}; +enum rb_ractor_wait_status { + wait_none = 0x00, + wait_receiving = 0x01, + wait_taking = 0x02, + wait_yielding = 0x04, + wait_moving = 0x08, +}; +enum rb_ractor_wakeup_status { + wakeup_none, + wakeup_by_send, + wakeup_by_yield, + wakeup_by_take, + wakeup_by_close, + wakeup_by_interrupt, + wakeup_by_retry, +}; +struct rb_ractor_sync { + rb_nativethread_lock_t lock; + rb_nativethread_cond_t cond; + struct rb_ractor_queue incoming_queue; + struct rb_ractor_waiting_list taking_ractors; + _Bool incoming_port_closed; + _Bool outgoing_port_closed; + struct ractor_wait { + enum rb_ractor_wait_status status; + enum rb_ractor_wakeup_status wakeup_status; + struct rb_ractor_basket yielded_basket; + struct rb_ractor_basket taken_basket; + } wait; +}; +enum ractor_status { + ractor_created, + ractor_running, + ractor_blocking, + ractor_terminated, +}; +struct rb_ractor_struct { + struct rb_ractor_pub pub; + struct rb_ractor_sync sync; + VALUE receiving_mutex; + _Bool yield_atexit; + rb_nativethread_cond_t barrier_wait_cond; + struct { + struct ccan_list_head set; + unsigned int cnt; + unsigned int blocking_cnt; + unsigned int sleeper; + struct rb_thread_sched sched; + rb_execution_context_t *running_ec; + rb_thread_t *main; + } threads; + VALUE thgroup_default; + VALUE name; + VALUE loc; + enum ractor_status status_; + struct ccan_list_node vmlr_node; + st_table *local_storage; + struct rb_id_table *idkey_local_storage; + VALUE r_stdin; + VALUE r_stdout; + VALUE r_stderr; + VALUE verbose; + VALUE debug; + rb_ractor_newobj_cache_t newobj_cache; + struct gc_mark_func_data_struct { + void *data; + void (*mark_func)(VALUE v, void *data); + } *mfd; +}; +static inline VALUE +rb_ractor_self(const rb_ractor_t *r) +{ + return r->pub.self; +} +rb_ractor_t *rb_ractor_main_alloc(void); +void rb_ractor_main_setup(rb_vm_t *vm, rb_ractor_t *main_ractor, rb_thread_t *main_thread); +void rb_ractor_atexit(rb_execution_context_t *ec, VALUE result); +void rb_ractor_atexit_exception(rb_execution_context_t *ec); +void rb_ractor_teardown(rb_execution_context_t *ec); +void rb_ractor_receive_parameters(rb_execution_context_t *ec, rb_ractor_t *g, int len, VALUE *ptr); +void rb_ractor_send_parameters(rb_execution_context_t *ec, rb_ractor_t *g, VALUE args); +VALUE rb_thread_create_ractor(rb_ractor_t *g, VALUE args, VALUE proc); +int rb_ractor_living_thread_num(const rb_ractor_t *); +VALUE rb_ractor_thread_list(rb_ractor_t *r); +_Bool rb_ractor_p(VALUE rv); +void rb_ractor_living_threads_init(rb_ractor_t *r); +void rb_ractor_living_threads_insert(rb_ractor_t *r, rb_thread_t *th); +void rb_ractor_living_threads_remove(rb_ractor_t *r, rb_thread_t *th); +void rb_ractor_blocking_threads_inc(rb_ractor_t *r, const char *file, int line); +void rb_ractor_blocking_threads_dec(rb_ractor_t *r, const char *file, int line); +void rb_ractor_vm_barrier_interrupt_running_thread(rb_ractor_t *r); +void rb_ractor_terminate_interrupt_main_thread(rb_ractor_t *r); +void rb_ractor_terminate_all(void); +_Bool rb_ractor_main_p_(void); +void rb_ractor_finish_marking(void); +void rb_ractor_atfork(rb_vm_t *vm, rb_thread_t *th); +VALUE rb_ractor_ensure_shareable(VALUE obj, VALUE name); +_Bool rb_ractor_shareable_p_continue(VALUE obj); +void rb_ractor_local_storage_delkey(rb_ractor_local_key_t key); +static inline _Bool +rb_ractor_main_p(void) +{ + if (ruby_single_main_ractor) { + return 1; + } + else { + return rb_ractor_main_p_(); + } +} +static inline _Bool +rb_ractor_status_p(rb_ractor_t *r, enum ractor_status status) +{ + return r->status_ == status; +} +static inline void +rb_ractor_sleeper_threads_inc(rb_ractor_t *r) +{ + r->threads.sleeper++; +} +static inline void +rb_ractor_sleeper_threads_dec(rb_ractor_t *r) +{ + r->threads.sleeper--; +} +static inline void +rb_ractor_sleeper_threads_clear(rb_ractor_t *r) +{ + r->threads.sleeper = 0; +} +static inline int +rb_ractor_sleeper_thread_num(rb_ractor_t *r) +{ + return r->threads.sleeper; +} +static inline void +rb_ractor_thread_switch(rb_ractor_t *cr, rb_thread_t *th) +{ + if (cr->threads.running_ec != th->ec) { + if (0) { + ruby_debug_printf("rb_ractor_thread_switch ec:%p->%p\n", + (void *)cr->threads.running_ec, (void *)th->ec); + } + } + else { + return; + } + if (cr->threads.running_ec != th->ec) { + th->running_time_us = 0; + } + cr->threads.running_ec = th->ec; + ((void)0); +} +static inline void +rb_ractor_set_current_ec_(rb_ractor_t *cr, rb_execution_context_t *ec, const char *file, int line) +{ + rb_current_ec_set(ec); + ; + ((void)0); + cr->threads.running_ec = ec; +} +void rb_vm_ractor_blocking_cnt_inc(rb_vm_t *vm, rb_ractor_t *cr, const char *file, int line); +void rb_vm_ractor_blocking_cnt_dec(rb_vm_t *vm, rb_ractor_t *cr, const char *file, int line); +static inline uint32_t +rb_ractor_id(const rb_ractor_t *r) +{ + return r->pub.id; +} + +_Bool rb_vm_locked_p(void); +void rb_vm_lock_body(void); +void rb_vm_unlock_body(void); +struct rb_ractor_struct; +void rb_vm_lock_enter_body_cr(struct rb_ractor_struct *cr, unsigned int *lev ); +void rb_vm_lock_enter_body_nb(unsigned int *lev ); +void rb_vm_lock_enter_body(unsigned int *lev ); +void rb_vm_lock_leave_body(unsigned int *lev ); +void rb_vm_barrier(void); +extern struct rb_ractor_struct *ruby_single_main_ractor; +static inline _Bool +rb_multi_ractor_p(void) +{ + if ((__builtin_expect(!!(ruby_single_main_ractor), 1))) { + ((void)0); + return 0; + } + else { + return 1; + } +} +static inline void +rb_vm_lock(const char *file, int line) +{ + ((void)0); + if (rb_multi_ractor_p()) { + rb_vm_lock_body(); + } +} +static inline void +rb_vm_unlock(const char *file, int line) +{ + if (rb_multi_ractor_p()) { + rb_vm_unlock_body(); + } +} +static inline void +rb_vm_lock_enter(unsigned int *lev, const char *file, int line) +{ + ((void)0); + if (rb_multi_ractor_p()) { + rb_vm_lock_enter_body(lev ); + } +} +static inline void +rb_vm_lock_enter_nb(unsigned int *lev, const char *file, int line) +{ + ((void)0); + if (rb_multi_ractor_p()) { + rb_vm_lock_enter_body_nb(lev ); + } +} +static inline void +rb_vm_lock_leave(unsigned int *lev, const char *file, int line) +{ + if (rb_multi_ractor_p()) { + rb_vm_lock_leave_body(lev ); + } +} +static inline void +rb_vm_lock_enter_cr(struct rb_ractor_struct *cr, unsigned int *levp, const char *file, int line) +{ + ((void)0); + rb_vm_lock_enter_body_cr(cr, levp ); +} +static inline void +rb_vm_lock_leave_cr(struct rb_ractor_struct *cr, unsigned int *levp, const char *file, int line) +{ + rb_vm_lock_leave_body(levp ); +} + + +struct rb_builtin_function { + const void * const func_ptr; + const int argc; + const int index; + const char * const name; + void (*compiler)(VALUE, long, unsigned, _Bool); +}; +void rb_load_with_builtin_functions(const char *feature_name, const struct rb_builtin_function *table); +typedef VALUE (*rb_builtin_arity0_function_type)(rb_execution_context_t *ec, VALUE self); +typedef VALUE (*rb_builtin_arity1_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE); +typedef VALUE (*rb_builtin_arity2_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE); +typedef VALUE (*rb_builtin_arity3_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity4_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity5_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity6_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity7_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity8_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity9_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity10_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity11_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity12_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity13_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity14_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +typedef VALUE (*rb_builtin_arity15_function_type)(rb_execution_context_t *ec, VALUE self, + VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); +static inline void rb_builtin_function_check_arity0(rb_builtin_arity0_function_type f){} +static inline void rb_builtin_function_check_arity1(rb_builtin_arity1_function_type f){} +static inline void rb_builtin_function_check_arity2(rb_builtin_arity2_function_type f){} +static inline void rb_builtin_function_check_arity3(rb_builtin_arity3_function_type f){} +static inline void rb_builtin_function_check_arity4(rb_builtin_arity4_function_type f){} +static inline void rb_builtin_function_check_arity5(rb_builtin_arity5_function_type f){} +static inline void rb_builtin_function_check_arity6(rb_builtin_arity6_function_type f){} +static inline void rb_builtin_function_check_arity7(rb_builtin_arity7_function_type f){} +static inline void rb_builtin_function_check_arity8(rb_builtin_arity8_function_type f){} +static inline void rb_builtin_function_check_arity9(rb_builtin_arity9_function_type f){} +static inline void rb_builtin_function_check_arity10(rb_builtin_arity10_function_type f){} +static inline void rb_builtin_function_check_arity11(rb_builtin_arity11_function_type f){} +static inline void rb_builtin_function_check_arity12(rb_builtin_arity12_function_type f){} +static inline void rb_builtin_function_check_arity13(rb_builtin_arity13_function_type f){} +static inline void rb_builtin_function_check_arity14(rb_builtin_arity14_function_type f){} +static inline void rb_builtin_function_check_arity15(rb_builtin_arity15_function_type f){}static inline +__attribute__((__pure__)) VALUE rb_vm_lvar_exposed(rb_execution_context_t *ec, int index);static inline +VALUE rb_vm_lvar_exposed(rb_execution_context_t *ec, int index); +__attribute__((__pure__)) static inline VALUE rb_vm_lvar(rb_execution_context_t *ec, int index); +static inline VALUE +rb_vm_lvar(rb_execution_context_t *ec, int index) +{ + return ec->cfp->ep[index]; +} +struct builtin_binary { + const char *feature; + const unsigned char *bin; + size_t bin_size; +}; + + +struct ruby_dtrace_method_hook_args { + const char *classname; + const char *methodname; + const char *filename; + int line_no; + volatile VALUE klass; + volatile VALUE name; +}; +__declspec(noinline) int rb_dtrace_setup(rb_execution_context_t *, VALUE, ID, struct ruby_dtrace_method_hook_args *); +VALUE rb_str_concat_literals(size_t, const VALUE*); +__attribute__ ((__visibility__("default"))) extern +VALUE rb_vm_exec(rb_execution_context_t *, _Bool); +extern const char *const rb_debug_counter_names[]; +__attribute__((__pure__)) static inline const VALUE *VM_EP_LEP(const VALUE *); +static inline const VALUE * +VM_EP_LEP(const VALUE *ep) +{ + while (!VM_ENV_LOCAL_P(ep)) { + ep = VM_ENV_PREV_EP(ep); + } + return ep; +} +static inline const rb_control_frame_t * +rb_vm_search_cf_from_ep(const rb_execution_context_t *ec, const rb_control_frame_t *cfp, const VALUE * const ep) +{ + if (!ep) { + return ((void*)0); + } + else { + const rb_control_frame_t * const eocfp = RUBY_VM_END_CONTROL_FRAME(ec); + while (cfp < eocfp) { + if (cfp->ep == ep) { + return cfp; + } + cfp = ((cfp)+1); + } + return ((void*)0); + } +}static inline +const VALUE * +rb_vm_ep_local_ep(const VALUE *ep) +{ + return VM_EP_LEP(ep); +} +__attribute__((__pure__)) static inline const VALUE *VM_CF_LEP(const rb_control_frame_t * const cfp); +static inline const VALUE * +VM_CF_LEP(const rb_control_frame_t * const cfp) +{ + return VM_EP_LEP(cfp->ep); +} +static inline const VALUE * +VM_CF_PREV_EP(const rb_control_frame_t * const cfp) +{ + return VM_ENV_PREV_EP(cfp->ep); +} +__attribute__((__pure__)) static inline VALUE VM_CF_BLOCK_HANDLER(const rb_control_frame_t * const cfp); +static inline VALUE +VM_CF_BLOCK_HANDLER(const rb_control_frame_t * const cfp) +{ + const VALUE *ep = VM_CF_LEP(cfp); + return VM_ENV_BLOCK_HANDLER(ep); +}static inline +int +rb_vm_cframe_keyword_p(const rb_control_frame_t *cfp) +{ + return VM_FRAME_CFRAME_KW_P(cfp); +}static inline +VALUE +rb_vm_frame_block_handler(const rb_control_frame_t *cfp) +{ + return VM_CF_BLOCK_HANDLER(cfp); +} +static struct rb_captured_block * +VM_CFP_TO_CAPTURED_BLOCK(const rb_control_frame_t *cfp) +{ + ((void)0); + return (struct rb_captured_block *)&cfp->self; +} +static rb_control_frame_t * +VM_CAPTURED_BLOCK_TO_CFP(const struct rb_captured_block *captured) +{ + rb_control_frame_t *cfp = ((rb_control_frame_t *)((VALUE *)(captured) - 3)); + ((void)0); + ((void)0); + return cfp; +} +static int +VM_BH_FROM_CFP_P(VALUE block_handler, const rb_control_frame_t *cfp) +{ + const struct rb_captured_block *captured = VM_CFP_TO_CAPTURED_BLOCK(cfp); + return ((void *)((block_handler) & ~0x03)) == captured; +} +static VALUE +vm_passed_block_handler(rb_execution_context_t *ec) +{ + VALUE block_handler = ec->passed_block_handler; + ec->passed_block_handler = 0; + vm_block_handler_verify(block_handler); + return block_handler; +} +static rb_cref_t * +vm_cref_new0(VALUE klass, rb_method_visibility_t visi, int module_func, rb_cref_t *prev_cref, int pushed_by_eval, int use_prev_prev, int singleton) +{ + VALUE refinements = ((VALUE)RUBY_Qnil); + int omod_shared = 0; + rb_cref_t *cref; + union { + rb_scope_visibility_t visi; + VALUE value; + } scope_visi; + scope_visi.visi.method_visi = visi; + scope_visi.visi.module_func = module_func; + if (prev_cref != ((void*)0) && prev_cref != (void *)1 ) { + refinements = CREF_REFINEMENTS(prev_cref); + if (!RB_NIL_P(refinements)) { + omod_shared = 1; + CREF_OMOD_SHARED_SET(prev_cref); + } + } + ((void)0); + cref = (rb_cref_t *)rb_imemo_new(imemo_cref, klass, (VALUE)(use_prev_prev ? CREF_NEXT(prev_cref) : prev_cref), scope_visi.value, refinements); + if (pushed_by_eval) CREF_PUSHED_BY_EVAL_SET(cref); + if (omod_shared) CREF_OMOD_SHARED_SET(cref); + if (singleton) CREF_SINGLETON_SET(cref); + return cref; +} +static rb_cref_t * +vm_cref_new(VALUE klass, rb_method_visibility_t visi, int module_func, rb_cref_t *prev_cref, int pushed_by_eval, int singleton) +{ + return vm_cref_new0(klass, visi, module_func, prev_cref, pushed_by_eval, 0, singleton); +} +static rb_cref_t * +vm_cref_new_use_prev(VALUE klass, rb_method_visibility_t visi, int module_func, rb_cref_t *prev_cref, int pushed_by_eval) +{ + return vm_cref_new0(klass, visi, module_func, prev_cref, pushed_by_eval, 1, 0); +} +static int +ref_delete_symkey(VALUE key, VALUE value, VALUE unused) +{ + return RB_SYMBOL_P(key) ? ST_DELETE : ST_CONTINUE; +} +static rb_cref_t * +vm_cref_dup(const rb_cref_t *cref) +{ + const rb_scope_visibility_t *visi = CREF_SCOPE_VISI(cref); + rb_cref_t *next_cref = CREF_NEXT(cref), *new_cref; + int pushed_by_eval = CREF_PUSHED_BY_EVAL(cref); + int singleton = CREF_SINGLETON(cref); + new_cref = vm_cref_new(cref->klass_or_self, visi->method_visi, visi->module_func, next_cref, pushed_by_eval, singleton); + if (!RB_NIL_P(CREF_REFINEMENTS(cref))) { + VALUE ref = rb_hash_dup(CREF_REFINEMENTS(cref)); + rb_hash_foreach(ref, ref_delete_symkey, ((VALUE)RUBY_Qnil)); + CREF_REFINEMENTS_SET(new_cref, ref); + CREF_OMOD_SHARED_UNSET(new_cref); + } + return new_cref; +}static inline +rb_cref_t * +rb_vm_cref_dup_without_refinements(const rb_cref_t *cref) +{ + const rb_scope_visibility_t *visi = CREF_SCOPE_VISI(cref); + rb_cref_t *next_cref = CREF_NEXT(cref), *new_cref; + int pushed_by_eval = CREF_PUSHED_BY_EVAL(cref); + int singleton = CREF_SINGLETON(cref); + new_cref = vm_cref_new(cref->klass_or_self, visi->method_visi, visi->module_func, next_cref, pushed_by_eval, singleton); + if (!RB_NIL_P(CREF_REFINEMENTS(cref))) { + CREF_REFINEMENTS_SET(new_cref, ((VALUE)RUBY_Qnil)); + CREF_OMOD_SHARED_UNSET(new_cref); + } + return new_cref; +} +static rb_cref_t * +vm_cref_new_toplevel(rb_execution_context_t *ec) +{ + rb_cref_t *cref = vm_cref_new(rb_cObject, METHOD_VISI_PRIVATE , 0, ((void*)0), 0, 0); + VALUE top_wrapper = rb_ec_thread_ptr(ec)->top_wrapper; + if (top_wrapper) { + cref = vm_cref_new(top_wrapper, METHOD_VISI_PRIVATE, 0, cref, 0, 0); + } + return cref; +}static inline +rb_cref_t * +rb_vm_cref_new_toplevel(void) +{ + return vm_cref_new_toplevel(rb_current_execution_context(1)); +} +static void +vm_cref_dump(const char *mesg, const rb_cref_t *cref) +{ + ruby_debug_printf("vm_cref_dump: %s (%p)\n", mesg, (void *)cref); + while (cref) { + ruby_debug_printf("= cref| klass: %s\n", RSTRING_PTR(rb_class_path(CREF_CLASS(cref)))); + cref = CREF_NEXT(cref); + } +}static inline +void +rb_vm_block_ep_update(VALUE obj, const struct rb_block *dst, const VALUE *ep) +{ + *((const VALUE **)&dst->as.captured.ep) = ep; + (rb_obj_written((VALUE)(obj), (VALUE)(((VALUE)RUBY_Qundef)), (VALUE)(VM_ENV_ENVVAL(ep)), "./vm.c", 360)); +} +static void +vm_bind_update_env(VALUE bindval, rb_binding_t *bind, VALUE envval) +{ + const rb_env_t *env = (rb_env_t *)envval; + rb_obj_write((VALUE)(bindval), __extension__({ + ; + ; __typeof__((VALUE *)(&bind->block.as.captured.code.iseq)) unaligned_member_access_result = ((VALUE *)(&bind->block.as.captured.code.iseq)); + ; unaligned_member_access_result; }), (VALUE)(env->iseq), "./vm.c", 367); + rb_vm_block_ep_update(bindval, &bind->block, env->ep); +} +static VALUE vm_make_env_object(const rb_execution_context_t *ec, rb_control_frame_t *cfp); +extern VALUE rb_vm_invoke_bmethod(rb_execution_context_t *ec, rb_proc_t *proc, VALUE self, + int argc, const VALUE *argv, int kw_splat, VALUE block_handler, + const rb_callable_method_entry_t *me); +static VALUE vm_invoke_proc(rb_execution_context_t *ec, rb_proc_t *proc, VALUE self, int argc, const VALUE *argv, int kw_splat, VALUE block_handler); +__declspec(noinline) static __attribute__((__cold__)) VALUE mjit_check_iseq(rb_execution_context_t *ec, const rb_iseq_t *iseq, struct rb_iseq_constant_body *body); +static VALUE +mjit_check_iseq(rb_execution_context_t *ec, const rb_iseq_t *iseq, struct rb_iseq_constant_body *body) +{ + uintptr_t mjit_state = (uintptr_t)(body->jit_func); + __builtin_assume(((uintptr_t)(mjit_state) <= (uintptr_t)MJIT_FUNC_FAILED)); + switch ((enum rb_mjit_func_state)mjit_state) { + case MJIT_FUNC_NOT_COMPILED: + if (body->total_calls == mjit_opts.call_threshold) { + rb_mjit_add_iseq_to_process(iseq); + if ((__builtin_expect(!!(mjit_opts.wait && !((uintptr_t)(body->jit_func) <= (uintptr_t)MJIT_FUNC_FAILED)), 0))) { + return body->jit_func(ec, ec->cfp); + } + } + break; + case MJIT_FUNC_COMPILING: + case MJIT_FUNC_FAILED: + break; + } + return ((VALUE)RUBY_Qundef); +} +static inline VALUE +jit_exec(rb_execution_context_t *ec) +{ + const rb_iseq_t *iseq = ec->cfp->iseq; + struct rb_iseq_constant_body *body = ((iseq)->body); + _Bool yjit_enabled = rb_yjit_enabled_p(); + if (yjit_enabled || mjit_call_p) { + body->total_calls++; + } + else { + return ((VALUE)RUBY_Qundef); + } + jit_func_t func; + if (yjit_enabled) { + if (body->total_calls == rb_yjit_call_threshold()) { + if (!rb_yjit_compile_iseq(iseq, ec)) { + return ((VALUE)RUBY_Qundef); + } + } + if ((func = body->jit_func) == 0) { + return ((VALUE)RUBY_Qundef); + } + } + else if ((__builtin_expect(!!(((uintptr_t)(func = body->jit_func) <= (uintptr_t)MJIT_FUNC_FAILED)), 0))) { + return mjit_check_iseq(ec, iseq, body); + } + return func(ec, ec->cfp); +} + +VALUE rb_invcmp(VALUE, VALUE); + +struct ar_table_struct; +typedef unsigned char ar_hint_t; +enum ruby_rhash_flags { + RHASH_PASS_AS_KEYWORDS = ((VALUE)RUBY_FL_USER1), + RHASH_PROC_DEFAULT = ((VALUE)RUBY_FL_USER2), + RHASH_ST_TABLE_FLAG = ((VALUE)RUBY_FL_USER3), + RHASH_AR_TABLE_SIZE_MASK = (((VALUE)RUBY_FL_USER4)|((VALUE)RUBY_FL_USER5)|((VALUE)RUBY_FL_USER6)|((VALUE)RUBY_FL_USER7)), + RHASH_AR_TABLE_SIZE_SHIFT = (((VALUE)RUBY_FL_USHIFT)+4), + RHASH_AR_TABLE_BOUND_MASK = (((VALUE)RUBY_FL_USER8)|((VALUE)RUBY_FL_USER9)|((VALUE)RUBY_FL_USER10)|((VALUE)RUBY_FL_USER11)), + RHASH_AR_TABLE_BOUND_SHIFT = (((VALUE)RUBY_FL_USHIFT)+8), + RHASH_TRANSIENT_FLAG = ((VALUE)RUBY_FL_USER12), + RHASH_LEV_SHIFT = (((VALUE)RUBY_FL_USHIFT) + 13), + RHASH_LEV_MAX = 127, +}; +struct RHash { + struct RBasic basic; + union { + st_table *st; + struct ar_table_struct *ar; + } as; + const VALUE ifnone; + union { + ar_hint_t ary[8]; + VALUE word; + } ar_hint; +}; +void rb_hash_st_table_set(VALUE hash, st_table *st); +VALUE rb_hash_default_value(VALUE hash, VALUE key); +VALUE rb_hash_set_default_proc(VALUE hash, VALUE proc); +long rb_dbl_long_hash(double d); +st_table *rb_init_identtable(void); +VALUE rb_to_hash_type(VALUE obj); +VALUE rb_hash_key_str(VALUE); +VALUE rb_hash_values(VALUE hash); +VALUE rb_hash_rehash(VALUE hash); +int rb_hash_add_new_element(VALUE hash, VALUE key, VALUE val); +VALUE rb_hash_set_pair(VALUE hash, VALUE pair); +int rb_hash_stlike_delete(VALUE hash, st_data_t *pkey, st_data_t *pval); +int rb_hash_stlike_foreach_with_replace(VALUE hash, st_foreach_check_callback_func *func, st_update_callback_func *replace, st_data_t arg); +int rb_hash_stlike_update(VALUE hash, st_data_t key, st_update_callback_func *func, st_data_t arg); +extern st_table *rb_hash_st_table(VALUE hash); +VALUE rb_ident_hash_new_with_size(st_index_t size); +static inline unsigned RHASH_AR_TABLE_SIZE_RAW(VALUE h); +static inline VALUE RHASH_IFNONE(VALUE h); +static inline size_t RHASH_SIZE(VALUE h); +static inline _Bool RHASH_EMPTY_P(VALUE h); +static inline _Bool RHASH_AR_TABLE_P(VALUE h); +static inline _Bool RHASH_ST_TABLE_P(VALUE h); +static inline struct ar_table_struct *RHASH_AR_TABLE(VALUE h); +static inline st_table *RHASH_ST_TABLE(VALUE h); +static inline size_t RHASH_ST_SIZE(VALUE h); +static inline void RHASH_ST_CLEAR(VALUE h); +static inline _Bool RHASH_TRANSIENT_P(VALUE h); +static inline void RHASH_SET_TRANSIENT_FLAG(VALUE h); +static inline void RHASH_UNSET_TRANSIENT_FLAG(VALUE h); +VALUE rb_hash_delete_entry(VALUE hash, VALUE key); +VALUE rb_ident_hash_new(void); +int rb_hash_stlike_foreach(VALUE hash, st_foreach_callback_func *func, st_data_t arg); +VALUE rb_hash_new_with_size(st_index_t size); +VALUE rb_hash_resurrect(VALUE hash); +int rb_hash_stlike_lookup(VALUE hash, st_data_t key, st_data_t *pval); +VALUE rb_hash_keys(VALUE hash); +VALUE rb_hash_has_key(VALUE hash, VALUE key); +VALUE rb_hash_compare_by_id_p(VALUE hash); +st_table *rb_hash_tbl_raw(VALUE hash, const char *file, int line); +VALUE rb_hash_compare_by_id(VALUE hash); +static inline _Bool +RHASH_AR_TABLE_P(VALUE h) +{ + return ! RB_FL_TEST_RAW(h, RHASH_ST_TABLE_FLAG); +} +static inline struct ar_table_struct * +RHASH_AR_TABLE(VALUE h) +{ + return ((struct RHash *)(h))->as.ar; +} +static inline st_table * +RHASH_ST_TABLE(VALUE h) +{ + return ((struct RHash *)(h))->as.st; +} +static inline VALUE +RHASH_IFNONE(VALUE h) +{ + return ((struct RHash *)(h))->ifnone; +} +static inline size_t +RHASH_SIZE(VALUE h) +{ + if (RHASH_AR_TABLE_P(h)) { + return RHASH_AR_TABLE_SIZE_RAW(h); + } + else { + return RHASH_ST_SIZE(h); + } +} +static inline _Bool +RHASH_EMPTY_P(VALUE h) +{ + return RHASH_SIZE(h) == 0; +} +static inline _Bool +RHASH_ST_TABLE_P(VALUE h) +{ + return ! RHASH_AR_TABLE_P(h); +} +static inline size_t +RHASH_ST_SIZE(VALUE h) +{ + return RHASH_ST_TABLE(h)->num_entries; +} +static inline void +RHASH_ST_CLEAR(VALUE h) +{ + RB_FL_UNSET_RAW(h, RHASH_ST_TABLE_FLAG); + ((struct RHash *)(h))->as.ar = ((void*)0); +} +static inline unsigned +RHASH_AR_TABLE_SIZE_RAW(VALUE h) +{ + VALUE ret = RB_FL_TEST_RAW(h, RHASH_AR_TABLE_SIZE_MASK); + ret >>= RHASH_AR_TABLE_SIZE_SHIFT; + return (unsigned)ret; +} +static inline _Bool +RHASH_TRANSIENT_P(VALUE h) +{ + return RB_FL_TEST_RAW(h, RHASH_TRANSIENT_FLAG); +} +static inline void +RHASH_SET_TRANSIENT_FLAG(VALUE h) +{ + RB_FL_SET_RAW(h, RHASH_TRANSIENT_FLAG); +} +static inline void +RHASH_UNSET_TRANSIENT_FLAG(VALUE h) +{ + RB_FL_UNSET_RAW(h, RHASH_TRANSIENT_FLAG); +} + + +enum rb_int_parse_flags { + RB_INT_PARSE_SIGN = 0x01, + RB_INT_PARSE_UNDERSCORE = 0x02, + RB_INT_PARSE_PREFIX = 0x04, + RB_INT_PARSE_ALL = 0x07, + RB_INT_PARSE_DEFAULT = 0x07, +}; +struct RBignum { + struct RBasic basic; + union { + struct { + size_t len; + unsigned int *digits; + } heap; + unsigned int ary[(8*3/4)]; + } as; +}; +extern const char ruby_digitmap[]; +double rb_big_fdiv_double(VALUE x, VALUE y); +VALUE rb_big_uminus(VALUE x); +VALUE rb_big_hash(VALUE); +VALUE rb_big_odd_p(VALUE); +VALUE rb_big_even_p(VALUE); +size_t rb_big_size(VALUE); +VALUE rb_integer_float_cmp(VALUE x, VALUE y); +VALUE rb_integer_float_eq(VALUE x, VALUE y); +VALUE rb_str_convert_to_inum(VALUE str, int base, int badcheck, int raise_exception); +VALUE rb_big_comp(VALUE x); +VALUE rb_big_aref(VALUE x, VALUE y); +VALUE rb_big_abs(VALUE x); +VALUE rb_big_size_m(VALUE big); +VALUE rb_big_bit_length(VALUE big); +VALUE rb_big_remainder(VALUE x, VALUE y); +VALUE rb_big_gt(VALUE x, VALUE y); +VALUE rb_big_ge(VALUE x, VALUE y); +VALUE rb_big_lt(VALUE x, VALUE y); +VALUE rb_big_le(VALUE x, VALUE y); +VALUE rb_int_powm(int const argc, VALUE * const argv, VALUE const num); +VALUE rb_big_isqrt(VALUE n); +static inline _Bool BIGNUM_SIGN(VALUE b); +static inline _Bool BIGNUM_POSITIVE_P(VALUE b); +static inline _Bool BIGNUM_NEGATIVE_P(VALUE b); +static inline void BIGNUM_SET_SIGN(VALUE b, _Bool sign); +static inline void BIGNUM_NEGATE(VALUE b); +static inline size_t BIGNUM_LEN(VALUE b); +static inline unsigned int *BIGNUM_DIGITS(VALUE b); +static inline int BIGNUM_LENINT(VALUE b); +static inline _Bool BIGNUM_EMBED_P(VALUE b); +VALUE rb_big_mul_normal(VALUE x, VALUE y); +VALUE rb_big_mul_balance(VALUE x, VALUE y); +VALUE rb_big_mul_karatsuba(VALUE x, VALUE y); +VALUE rb_big_mul_toom3(VALUE x, VALUE y); +VALUE rb_big_sq_fast(VALUE x); +VALUE rb_big_divrem_normal(VALUE x, VALUE y); +VALUE rb_big2str_poweroftwo(VALUE x, int base); +VALUE rb_big2str_generic(VALUE x, int base); +VALUE rb_str2big_poweroftwo(VALUE arg, int base, int badcheck); +VALUE rb_str2big_normal(VALUE arg, int base, int badcheck); +VALUE rb_str2big_karatsuba(VALUE arg, int base, int badcheck); +VALUE rb_int_parse_cstr(const char *str, ssize_t len, char **endp, size_t *ndigits, int base, int flags); +VALUE rb_int128t2big(__int128 n); +static inline _Bool +BIGNUM_SIGN(VALUE b) +{ + return RB_FL_TEST_RAW(b, ((VALUE)RUBY_FL_USER1)); +} +static inline _Bool +BIGNUM_POSITIVE_P(VALUE b) +{ + return BIGNUM_SIGN(b); +} +static inline _Bool +BIGNUM_NEGATIVE_P(VALUE b) +{ + return ! BIGNUM_POSITIVE_P(b); +} +static inline void +BIGNUM_SET_SIGN(VALUE b, _Bool sign) +{ + if (sign) { + RB_FL_SET_RAW(b, ((VALUE)RUBY_FL_USER1)); + } + else { + RB_FL_UNSET_RAW(b, ((VALUE)RUBY_FL_USER1)); + } +} +static inline void +BIGNUM_NEGATE(VALUE b) +{ + RB_FL_REVERSE_RAW(b, ((VALUE)RUBY_FL_USER1)); +} +static inline size_t +BIGNUM_LEN(VALUE b) +{ + if (! BIGNUM_EMBED_P(b)) { + return ((struct RBignum *)(b))->as.heap.len; + } + else { + size_t ret = ((struct RBasic *)(b))->flags; + ret &= (~(~(VALUE)0U << 3) << (((VALUE)RUBY_FL_USHIFT)+3)); + ret >>= (((VALUE)RUBY_FL_USHIFT)+3); + return ret; + } +} +static inline int +BIGNUM_LENINT(VALUE b) +{ + return rb_long2int_inline(BIGNUM_LEN(b)); +} +static inline unsigned int * +BIGNUM_DIGITS(VALUE b) +{ + if (BIGNUM_EMBED_P(b)) { + return ((struct RBignum *)(b))->as.ary; + } + else { + return ((struct RBignum *)(b))->as.heap.digits; + } +} +static inline _Bool +BIGNUM_EMBED_P(VALUE b) +{ + return RB_FL_TEST_RAW(b, ((VALUE)((VALUE)RUBY_FL_USER2))); +} + +static inline uint16_t ruby_swap16(uint16_t); +static inline uint32_t ruby_swap32(uint32_t); +static inline uint64_t ruby_swap64(uint64_t); +static inline unsigned nlz_int(unsigned x); +static inline unsigned nlz_long(unsigned long x); +static inline unsigned nlz_long_long(unsigned long long x); +static inline unsigned nlz_intptr(uintptr_t x); +static inline unsigned nlz_int32(uint32_t x); +static inline unsigned nlz_int64(uint64_t x); +static inline unsigned nlz_int128(unsigned __int128 x); +static inline unsigned rb_popcount32(uint32_t x); +static inline unsigned rb_popcount64(uint64_t x); +static inline unsigned rb_popcount_intptr(uintptr_t x); +static inline int ntz_int32(uint32_t x); +static inline int ntz_int64(uint64_t x); +static inline int ntz_intptr(uintptr_t x); +static inline VALUE RUBY_BIT_ROTL(VALUE, int); +static inline VALUE RUBY_BIT_ROTR(VALUE, int); +static inline uint16_t +ruby_swap16(uint16_t x) +{ + return __builtin_bswap16(x); +} +static inline uint32_t +ruby_swap32(uint32_t x) +{ + return __builtin_bswap32(x); +} +static inline uint64_t +ruby_swap64(uint64_t x) +{ + return __builtin_bswap64(x); +} +static inline unsigned int +nlz_int32(uint32_t x) +{ + __extension__ _Static_assert(sizeof(int) * 8 == 32, "sizeof_int" ": " "sizeof(int) * CHAR_BIT == 32"); + return x ? (unsigned int)__builtin_clz(x) : 32; +} +static inline unsigned int +nlz_int64(uint64_t x) +{ + if (x == 0) { + return 64; + } + else if (sizeof(long) * 8 == 64) { + return (unsigned int)__builtin_clzl((unsigned long)x); + } + else if (sizeof(long long) * 8 == 64) { + return (unsigned int)__builtin_clzll((unsigned long long)x); + } + else { + __builtin_unreachable(); + } +} +static inline unsigned int +nlz_int128(unsigned __int128 x) +{ + uint64_t y = (uint64_t)(x >> 64); + if (x == 0) { + return 128; + } + else if (y == 0) { + return (unsigned int)nlz_int64(x) + 64; + } + else { + return (unsigned int)nlz_int64(y); + } +} +static inline unsigned int +nlz_int(unsigned int x) +{ + if (sizeof(unsigned int) * 8 == 32) { + return nlz_int32((uint32_t)x); + } + else if (sizeof(unsigned int) * 8 == 64) { + return nlz_int64((uint64_t)x); + } + else { + __builtin_unreachable(); + } +} +static inline unsigned int +nlz_long(unsigned long x) +{ + if (sizeof(unsigned long) * 8 == 32) { + return nlz_int32((uint32_t)x); + } + else if (sizeof(unsigned long) * 8 == 64) { + return nlz_int64((uint64_t)x); + } + else { + __builtin_unreachable(); + } +} +static inline unsigned int +nlz_long_long(unsigned long long x) +{ + if (sizeof(unsigned long long) * 8 == 64) { + return nlz_int64((uint64_t)x); + } + else if (sizeof(unsigned long long) * 8 == 128) { + return nlz_int128((unsigned __int128)x); + } + else { + __builtin_unreachable(); + } +} +static inline unsigned int +nlz_intptr(uintptr_t x) +{ + if (sizeof(uintptr_t) == sizeof(unsigned int)) { + return nlz_int((unsigned int)x); + } + if (sizeof(uintptr_t) == sizeof(unsigned long)) { + return nlz_long((unsigned long)x); + } + if (sizeof(uintptr_t) == sizeof(unsigned long long)) { + return nlz_long_long((unsigned long long)x); + } + else { + __builtin_unreachable(); + } +} +static inline unsigned int +rb_popcount32(uint32_t x) +{ + __extension__ _Static_assert(sizeof(int) * 8 >= 32, "sizeof_int" ": " "sizeof(int) * CHAR_BIT >= 32"); + return (unsigned int)__builtin_popcount(x); +} +static inline unsigned int +rb_popcount64(uint64_t x) +{ + if (sizeof(long) * 8 == 64) { + return (unsigned int)__builtin_popcountl((unsigned long)x); + } + else if (sizeof(long long) * 8 == 64) { + return (unsigned int)__builtin_popcountll((unsigned long long)x); + } + else { + __builtin_unreachable(); + } +} +static inline unsigned int +rb_popcount_intptr(uintptr_t x) +{ + if (sizeof(uintptr_t) * 8 == 64) { + return rb_popcount64((uint64_t)x); + } + else if (sizeof(uintptr_t) * 8 == 32) { + return rb_popcount32((uint32_t)x); + } + else { + __builtin_unreachable(); + } +} +static inline int +ntz_int32(uint32_t x) +{ + __extension__ _Static_assert(sizeof(int) * 8 == 32, "sizeof_int" ": " "sizeof(int) * CHAR_BIT == 32"); + return x ? (unsigned)__builtin_ctz(x) : 32; +} +static inline int +ntz_int64(uint64_t x) +{ + if (x == 0) { + return 64; + } + else if (sizeof(long) * 8 == 64) { + return (unsigned)__builtin_ctzl((unsigned long)x); + } + else if (sizeof(long long) * 8 == 64) { + return (unsigned)__builtin_ctzll((unsigned long long)x); + } + else { + __builtin_unreachable(); + } +} +static inline int +ntz_intptr(uintptr_t x) +{ + if (sizeof(uintptr_t) * 8 == 64) { + return ntz_int64((uint64_t)x); + } + else if (sizeof(uintptr_t) * 8 == 32) { + return ntz_int32((uint32_t)x); + } + else { + __builtin_unreachable(); + } +} +static inline VALUE +RUBY_BIT_ROTL(VALUE v, int n) +{ + return __builtin_rotateleft64(v, n); +} +static inline VALUE +RUBY_BIT_ROTR(VALUE v, int n) +{ + return __builtin_rotateright64(v, n); +} + +VALUE rb_int128t2big(__int128 n); +static inline long rb_overflowed_fix_to_int(long x); +static inline VALUE rb_fix_plus_fix(VALUE x, VALUE y); +static inline VALUE rb_fix_minus_fix(VALUE x, VALUE y); +static inline VALUE rb_fix_mul_fix(VALUE x, VALUE y); +static inline void rb_fix_divmod_fix(VALUE x, VALUE y, VALUE *divp, VALUE *modp); +static inline VALUE rb_fix_div_fix(VALUE x, VALUE y); +static inline VALUE rb_fix_mod_fix(VALUE x, VALUE y); +static inline _Bool FIXNUM_POSITIVE_P(VALUE num); +static inline _Bool FIXNUM_NEGATIVE_P(VALUE num); +static inline _Bool FIXNUM_ZERO_P(VALUE num); +static inline long +rb_overflowed_fix_to_int(long x) +{ + return (long)((unsigned long)(x >> 1) ^ (1LU << (8 * 8 - 1))); +} +static inline VALUE +rb_fix_plus_fix(VALUE x, VALUE y) +{ + long lz; + if (__builtin_add_overflow((long)x, (long)y-1, &lz)) { + return rb_int2big(rb_overflowed_fix_to_int(lz)); + } + else { + return (VALUE)lz; + } +} +static inline VALUE +rb_fix_minus_fix(VALUE x, VALUE y) +{ + long lz; + if (__builtin_sub_overflow((long)x, (long)y-1, &lz)) { + return rb_int2big(rb_overflowed_fix_to_int(lz)); + } + else { + return (VALUE)lz; + } +} +static inline VALUE +rb_fix_mul_fix(VALUE x, VALUE y) +{ + long lx = rb_fix2long(x); + long ly = rb_fix2long(y); + return (((((__int128)lx * (__int128)ly) < (9223372036854775807L / 2) + 1) && (((__int128)lx * (__int128)ly) >= ((-9223372036854775807L -1L) / 2))) ? RB_INT2FIX((__int128)lx * (__int128)ly) : rb_int128t2big((__int128)lx * (__int128)ly)); +} +static inline void +rb_fix_divmod_fix(VALUE a, VALUE b, VALUE *divp, VALUE *modp) +{ + long x = rb_fix2long(a); + long y = rb_fix2long(b); + long div, mod; + if (x == ((-9223372036854775807L -1L) / 2) && y == -1) { + if (divp) *divp = rb_long2num_inline(-((-9223372036854775807L -1L) / 2)); + if (modp) *modp = RB_INT2FIX(0); + return; + } + div = x / y; + mod = x % y; + if (y > 0 ? mod < 0 : mod > 0) { + mod += y; + div -= 1; + } + if (divp) *divp = RB_INT2FIX(div); + if (modp) *modp = RB_INT2FIX(mod); +} +static inline VALUE +rb_fix_div_fix(VALUE x, VALUE y) +{ + VALUE div; + rb_fix_divmod_fix(x, y, &div, ((void*)0)); + return div; +} +static inline VALUE +rb_fix_mod_fix(VALUE x, VALUE y) +{ + VALUE mod; + rb_fix_divmod_fix(x, y, ((void*)0), &mod); + return mod; +} +static inline _Bool +FIXNUM_POSITIVE_P(VALUE num) +{ + return (long)num > (long)__builtin_choose_expr( __builtin_constant_p(0), ((VALUE)(0)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(0)); +} +static inline _Bool +FIXNUM_NEGATIVE_P(VALUE num) +{ + return (long)num < 0; +} +static inline _Bool +FIXNUM_ZERO_P(VALUE num) +{ + return num == __builtin_choose_expr( __builtin_constant_p(0), ((VALUE)(0)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(0)); +} +enum ruby_num_rounding_mode { + RUBY_NUM_ROUND_HALF_UP, + RUBY_NUM_ROUND_HALF_EVEN, + RUBY_NUM_ROUND_HALF_DOWN, + RUBY_NUM_ROUND_DEFAULT = RUBY_NUM_ROUND_HALF_UP, +}; +typedef double rb_float_value_type; +struct RFloat { + struct RBasic basic; + rb_float_value_type float_value; +}; +int rb_num_to_uint(VALUE val, unsigned int *ret); +VALUE ruby_num_interval_step_size(VALUE from, VALUE to, VALUE step, int excl); +double ruby_float_step_size(double beg, double end, double unit, int excl); +int ruby_float_step(VALUE from, VALUE to, VALUE step, int excl, int allow_endless); +int rb_num_negative_p(VALUE); +VALUE rb_int_succ(VALUE num); +VALUE rb_float_uminus(VALUE num); +VALUE rb_int_plus(VALUE x, VALUE y); +VALUE rb_float_plus(VALUE x, VALUE y); +VALUE rb_int_minus(VALUE x, VALUE y); +VALUE rb_float_minus(VALUE x, VALUE y); +VALUE rb_int_mul(VALUE x, VALUE y); +VALUE rb_float_mul(VALUE x, VALUE y); +VALUE rb_float_div(VALUE x, VALUE y); +VALUE rb_int_idiv(VALUE x, VALUE y); +VALUE rb_int_modulo(VALUE x, VALUE y); +VALUE rb_int2str(VALUE num, int base); +VALUE rb_fix_plus(VALUE x, VALUE y); +VALUE rb_int_gt(VALUE x, VALUE y); +VALUE rb_float_gt(VALUE x, VALUE y); +VALUE rb_int_ge(VALUE x, VALUE y); +enum ruby_num_rounding_mode rb_num_get_rounding_option(VALUE opts); +double rb_int_fdiv_double(VALUE x, VALUE y); +VALUE rb_int_pow(VALUE x, VALUE y); +VALUE rb_float_pow(VALUE x, VALUE y); +VALUE rb_int_cmp(VALUE x, VALUE y); +VALUE rb_int_equal(VALUE x, VALUE y); +VALUE rb_int_divmod(VALUE x, VALUE y); +VALUE rb_int_and(VALUE x, VALUE y); +VALUE rb_int_lshift(VALUE x, VALUE y); +VALUE rb_int_div(VALUE x, VALUE y); +int rb_int_positive_p(VALUE num); +int rb_int_negative_p(VALUE num); +VALUE rb_check_integer_type(VALUE); +VALUE rb_num_pow(VALUE x, VALUE y); +VALUE rb_float_ceil(VALUE num, int ndigits); +VALUE rb_float_floor(VALUE x, int ndigits); +VALUE rb_float_abs(VALUE flt); +static inline VALUE rb_num_compare_with_zero(VALUE num, ID mid); +static inline int rb_num_positive_int_p(VALUE num); +static inline int rb_num_negative_int_p(VALUE num); +static inline double rb_float_flonum_value(VALUE v); +static inline double rb_float_noflonum_value(VALUE v); +static inline double rb_float_value_inline(VALUE v); +static inline VALUE rb_float_new_inline(double d); +static inline _Bool INT_POSITIVE_P(VALUE num); +static inline _Bool INT_NEGATIVE_P(VALUE num); +static inline _Bool FLOAT_ZERO_P(VALUE num); +VALUE rb_flo_div_flo(VALUE x, VALUE y); +double ruby_float_mod(double x, double y); +VALUE rb_float_equal(VALUE x, VALUE y); +int rb_float_cmp(VALUE x, VALUE y); +VALUE rb_float_eql(VALUE x, VALUE y); +VALUE rb_fix_aref(VALUE fix, VALUE idx); +VALUE rb_int_zero_p(VALUE num); +VALUE rb_int_even_p(VALUE num); +VALUE rb_int_odd_p(VALUE num); +VALUE rb_int_abs(VALUE num); +VALUE rb_int_bit_length(VALUE num); +VALUE rb_int_uminus(VALUE num); +VALUE rb_int_comp(VALUE num); +static inline _Bool +INT_POSITIVE_P(VALUE num) +{ + if (RB_FIXNUM_P(num)) { + return FIXNUM_POSITIVE_P(num); + } + else { + return BIGNUM_POSITIVE_P(num); + } +} +static inline _Bool +INT_NEGATIVE_P(VALUE num) +{ + if (RB_FIXNUM_P(num)) { + return FIXNUM_NEGATIVE_P(num); + } + else { + return BIGNUM_NEGATIVE_P(num); + } +} +static inline _Bool +FLOAT_ZERO_P(VALUE num) +{ + return rb_float_value_inline(num) == 0.0; +} +static inline VALUE +rb_num_compare_with_zero(VALUE num, ID mid) +{ + VALUE zero = __builtin_choose_expr( __builtin_constant_p(0), ((VALUE)(0)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(0)); + VALUE r = rb_check_funcall(num, mid, 1, &zero); + if (r == ((VALUE)RUBY_Qundef)) { + rb_cmperr(num, zero); + } + return r; +} +static inline int +rb_num_positive_int_p(VALUE num) +{ + const ID mid = '>'; + if (RB_FIXNUM_P(num)) { + if (rb_method_basic_definition_p(rb_cInteger, mid)) + return FIXNUM_POSITIVE_P(num); + } + else if ((__builtin_constant_p(RUBY_T_BIGNUM) ? rbimpl_RB_TYPE_P_fastpath((num), (RUBY_T_BIGNUM)) : (RB_TYPE_P)((num), (RUBY_T_BIGNUM)))) { + if (rb_method_basic_definition_p(rb_cInteger, mid)) + return BIGNUM_POSITIVE_P(num); + } + return RB_TEST(rb_num_compare_with_zero(num, mid)); +} +static inline int +rb_num_negative_int_p(VALUE num) +{ + const ID mid = '<'; + if (RB_FIXNUM_P(num)) { + if (rb_method_basic_definition_p(rb_cInteger, mid)) + return FIXNUM_NEGATIVE_P(num); + } + else if ((__builtin_constant_p(RUBY_T_BIGNUM) ? rbimpl_RB_TYPE_P_fastpath((num), (RUBY_T_BIGNUM)) : (RB_TYPE_P)((num), (RUBY_T_BIGNUM)))) { + if (rb_method_basic_definition_p(rb_cInteger, mid)) + return BIGNUM_NEGATIVE_P(num); + } + return RB_TEST(rb_num_compare_with_zero(num, mid)); +} +static inline double +rb_float_flonum_value(VALUE v) +{ + if (v != (VALUE)0x8000000000000002) { + union { + double d; + VALUE v; + } t; + VALUE b63 = (v >> 63); + t.v = RUBY_BIT_ROTR((2 - b63) | (v & ~(VALUE)0x03), 3); + return t.d; + } + return 0.0; +} +static inline double +rb_float_noflonum_value(VALUE v) +{ + return ((struct RFloat *)(v))->float_value; +} +static inline double +rb_float_value_inline(VALUE v) +{ + if (RB_FLONUM_P(v)) { + return rb_float_flonum_value(v); + } + return rb_float_noflonum_value(v); +} +static inline VALUE +rb_float_new_inline(double d) +{ + union { + double d; + VALUE v; + } t; + int bits; + t.d = d; + bits = (int)((VALUE)(t.v >> 60) & 0x7); + if (t.v != 0x3000000000000000 && + !((bits-3) & ~0x01)) { + return (RUBY_BIT_ROTL(t.v, 3) & ~(VALUE)0x01) | 0x02; + } + else if (t.v == (VALUE)0) { + return 0x8000000000000002; + } + return rb_float_new_in_heap(d); +} + + +int ruby_fill_random_bytes(void *, size_t, int); + + +enum { + RSTRUCT_EMBED_LEN_MAX = RVALUE_EMBED_LEN_MAX, + RSTRUCT_EMBED_LEN_MASK = (RUBY_FL_USER2|RUBY_FL_USER1), + RSTRUCT_EMBED_LEN_SHIFT = (RUBY_FL_USHIFT+1), + RSTRUCT_TRANSIENT_FLAG = ((VALUE)RUBY_FL_USER3), +}; +struct RStruct { + struct RBasic basic; + union { + struct { + long len; + const VALUE *ptr; + } heap; + const VALUE ary[RSTRUCT_EMBED_LEN_MAX]; + } as; +}; +VALUE rb_struct_init_copy(VALUE copy, VALUE s); +VALUE rb_struct_lookup(VALUE s, VALUE idx); +VALUE rb_struct_s_keyword_init(VALUE klass); +static inline const VALUE *rb_struct_const_heap_ptr(VALUE st); +static inline _Bool RSTRUCT_TRANSIENT_P(VALUE st); +static inline void RSTRUCT_TRANSIENT_SET(VALUE st); +static inline void RSTRUCT_TRANSIENT_UNSET(VALUE st); +static inline long RSTRUCT_EMBED_LEN(VALUE st); +static inline long internal_RSTRUCT_LEN(VALUE st); +static inline int RSTRUCT_LENINT(VALUE st); +static inline const VALUE *RSTRUCT_CONST_PTR(VALUE st); +static inline void internal_RSTRUCT_SET(VALUE st, long k, VALUE v); +static inline VALUE internal_RSTRUCT_GET(VALUE st, long k); +static inline _Bool +RSTRUCT_TRANSIENT_P(VALUE st) +{ + return RB_FL_TEST_RAW(st, RSTRUCT_TRANSIENT_FLAG); +} +static inline void +RSTRUCT_TRANSIENT_SET(VALUE st) +{ + RB_FL_SET_RAW(st, RSTRUCT_TRANSIENT_FLAG); +} +static inline void +RSTRUCT_TRANSIENT_UNSET(VALUE st) +{ + RB_FL_UNSET_RAW(st, RSTRUCT_TRANSIENT_FLAG); +} +static inline long +RSTRUCT_EMBED_LEN(VALUE st) +{ + long ret = RB_FL_TEST_RAW(st, RSTRUCT_EMBED_LEN_MASK); + ret >>= RSTRUCT_EMBED_LEN_SHIFT; + return ret; +} +static inline long +internal_RSTRUCT_LEN(VALUE st) +{ + if (RB_FL_TEST_RAW(st, RSTRUCT_EMBED_LEN_MASK)) { + return RSTRUCT_EMBED_LEN(st); + } + else { + return ((struct RStruct *)(st))->as.heap.len; + } +} +static inline int +RSTRUCT_LENINT(VALUE st) +{ + return rb_long2int_inline(internal_RSTRUCT_LEN(st)); +} +static inline const VALUE * +RSTRUCT_CONST_PTR(VALUE st) +{ + const struct RStruct *p = ((struct RStruct *)(st)); + if (RB_FL_TEST_RAW(st, RSTRUCT_EMBED_LEN_MASK)) { + return p->as.ary; + } + else { + return p->as.heap.ptr; + } +} +static inline void +internal_RSTRUCT_SET(VALUE st, long k, VALUE v) +{ + rb_obj_write((VALUE)(st), __extension__({ + ; + ; __typeof__((VALUE *)(&RSTRUCT_CONST_PTR(st)[k])) unaligned_member_access_result = ((VALUE *)(&RSTRUCT_CONST_PTR(st)[k])); + ; unaligned_member_access_result; }), (VALUE)(v), "./internal/struct.h", 137); +} +static inline VALUE +internal_RSTRUCT_GET(VALUE st, long k) +{ + return RSTRUCT_CONST_PTR(st)[k]; +} +static inline const VALUE * +rb_struct_const_heap_ptr(VALUE st) +{ + return ((struct RStruct *)(st))->as.heap.ptr; +} + +struct gen_ivtbl { + uint32_t numiv; + VALUE ivptr[]; +}; +int rb_ivar_generic_ivtbl_lookup(VALUE obj, struct gen_ivtbl **); +enum ruby_vminsn_type { + YARVINSN_nop, + YARVINSN_getlocal, + YARVINSN_setlocal, + YARVINSN_getblockparam, + YARVINSN_setblockparam, + YARVINSN_getblockparamproxy, + YARVINSN_getspecial, + YARVINSN_setspecial, + YARVINSN_getinstancevariable, + YARVINSN_setinstancevariable, + YARVINSN_getclassvariable, + YARVINSN_setclassvariable, + YARVINSN_opt_getconstant_path, + YARVINSN_getconstant, + YARVINSN_setconstant, + YARVINSN_getglobal, + YARVINSN_setglobal, + YARVINSN_putnil, + YARVINSN_putself, + YARVINSN_putobject, + YARVINSN_putspecialobject, + YARVINSN_putstring, + YARVINSN_concatstrings, + YARVINSN_anytostring, + YARVINSN_toregexp, + YARVINSN_intern, + YARVINSN_newarray, + YARVINSN_newarraykwsplat, + YARVINSN_duparray, + YARVINSN_duphash, + YARVINSN_expandarray, + YARVINSN_concatarray, + YARVINSN_splatarray, + YARVINSN_newhash, + YARVINSN_newrange, + YARVINSN_pop, + YARVINSN_dup, + YARVINSN_dupn, + YARVINSN_swap, + YARVINSN_opt_reverse, + YARVINSN_topn, + YARVINSN_setn, + YARVINSN_adjuststack, + YARVINSN_defined, + YARVINSN_checkmatch, + YARVINSN_checkkeyword, + YARVINSN_checktype, + YARVINSN_defineclass, + YARVINSN_definemethod, + YARVINSN_definesmethod, + YARVINSN_send, + YARVINSN_opt_send_without_block, + YARVINSN_objtostring, + YARVINSN_opt_str_freeze, + YARVINSN_opt_nil_p, + YARVINSN_opt_str_uminus, + YARVINSN_opt_newarray_max, + YARVINSN_opt_newarray_min, + YARVINSN_invokesuper, + YARVINSN_invokeblock, + YARVINSN_leave, + YARVINSN_throw, + YARVINSN_jump, + YARVINSN_branchif, + YARVINSN_branchunless, + YARVINSN_branchnil, + YARVINSN_once, + YARVINSN_opt_case_dispatch, + YARVINSN_opt_plus, + YARVINSN_opt_minus, + YARVINSN_opt_mult, + YARVINSN_opt_div, + YARVINSN_opt_mod, + YARVINSN_opt_eq, + YARVINSN_opt_neq, + YARVINSN_opt_lt, + YARVINSN_opt_le, + YARVINSN_opt_gt, + YARVINSN_opt_ge, + YARVINSN_opt_ltlt, + YARVINSN_opt_and, + YARVINSN_opt_or, + YARVINSN_opt_aref, + YARVINSN_opt_aset, + YARVINSN_opt_aset_with, + YARVINSN_opt_aref_with, + YARVINSN_opt_length, + YARVINSN_opt_size, + YARVINSN_opt_empty_p, + YARVINSN_opt_succ, + YARVINSN_opt_not, + YARVINSN_opt_regexpmatch2, + YARVINSN_invokebuiltin, + YARVINSN_opt_invokebuiltin_delegate, + YARVINSN_opt_invokebuiltin_delegate_leave, + YARVINSN_getlocal_WC_0, + YARVINSN_getlocal_WC_1, + YARVINSN_setlocal_WC_0, + YARVINSN_setlocal_WC_1, + YARVINSN_putobject_INT2FIX_0_, + YARVINSN_putobject_INT2FIX_1_, + YARVINSN_trace_nop, + YARVINSN_trace_getlocal, + YARVINSN_trace_setlocal, + YARVINSN_trace_getblockparam, + YARVINSN_trace_setblockparam, + YARVINSN_trace_getblockparamproxy, + YARVINSN_trace_getspecial, + YARVINSN_trace_setspecial, + YARVINSN_trace_getinstancevariable, + YARVINSN_trace_setinstancevariable, + YARVINSN_trace_getclassvariable, + YARVINSN_trace_setclassvariable, + YARVINSN_trace_opt_getconstant_path, + YARVINSN_trace_getconstant, + YARVINSN_trace_setconstant, + YARVINSN_trace_getglobal, + YARVINSN_trace_setglobal, + YARVINSN_trace_putnil, + YARVINSN_trace_putself, + YARVINSN_trace_putobject, + YARVINSN_trace_putspecialobject, + YARVINSN_trace_putstring, + YARVINSN_trace_concatstrings, + YARVINSN_trace_anytostring, + YARVINSN_trace_toregexp, + YARVINSN_trace_intern, + YARVINSN_trace_newarray, + YARVINSN_trace_newarraykwsplat, + YARVINSN_trace_duparray, + YARVINSN_trace_duphash, + YARVINSN_trace_expandarray, + YARVINSN_trace_concatarray, + YARVINSN_trace_splatarray, + YARVINSN_trace_newhash, + YARVINSN_trace_newrange, + YARVINSN_trace_pop, + YARVINSN_trace_dup, + YARVINSN_trace_dupn, + YARVINSN_trace_swap, + YARVINSN_trace_opt_reverse, + YARVINSN_trace_topn, + YARVINSN_trace_setn, + YARVINSN_trace_adjuststack, + YARVINSN_trace_defined, + YARVINSN_trace_checkmatch, + YARVINSN_trace_checkkeyword, + YARVINSN_trace_checktype, + YARVINSN_trace_defineclass, + YARVINSN_trace_definemethod, + YARVINSN_trace_definesmethod, + YARVINSN_trace_send, + YARVINSN_trace_opt_send_without_block, + YARVINSN_trace_objtostring, + YARVINSN_trace_opt_str_freeze, + YARVINSN_trace_opt_nil_p, + YARVINSN_trace_opt_str_uminus, + YARVINSN_trace_opt_newarray_max, + YARVINSN_trace_opt_newarray_min, + YARVINSN_trace_invokesuper, + YARVINSN_trace_invokeblock, + YARVINSN_trace_leave, + YARVINSN_trace_throw, + YARVINSN_trace_jump, + YARVINSN_trace_branchif, + YARVINSN_trace_branchunless, + YARVINSN_trace_branchnil, + YARVINSN_trace_once, + YARVINSN_trace_opt_case_dispatch, + YARVINSN_trace_opt_plus, + YARVINSN_trace_opt_minus, + YARVINSN_trace_opt_mult, + YARVINSN_trace_opt_div, + YARVINSN_trace_opt_mod, + YARVINSN_trace_opt_eq, + YARVINSN_trace_opt_neq, + YARVINSN_trace_opt_lt, + YARVINSN_trace_opt_le, + YARVINSN_trace_opt_gt, + YARVINSN_trace_opt_ge, + YARVINSN_trace_opt_ltlt, + YARVINSN_trace_opt_and, + YARVINSN_trace_opt_or, + YARVINSN_trace_opt_aref, + YARVINSN_trace_opt_aset, + YARVINSN_trace_opt_aset_with, + YARVINSN_trace_opt_aref_with, + YARVINSN_trace_opt_length, + YARVINSN_trace_opt_size, + YARVINSN_trace_opt_empty_p, + YARVINSN_trace_opt_succ, + YARVINSN_trace_opt_not, + YARVINSN_trace_opt_regexpmatch2, + YARVINSN_trace_invokebuiltin, + YARVINSN_trace_opt_invokebuiltin_delegate, + YARVINSN_trace_opt_invokebuiltin_delegate_leave, + YARVINSN_trace_getlocal_WC_0, + YARVINSN_trace_getlocal_WC_1, + YARVINSN_trace_setlocal_WC_0, + YARVINSN_trace_setlocal_WC_1, + YARVINSN_trace_putobject_INT2FIX_0_, + YARVINSN_trace_putobject_INT2FIX_1_, + VM_INSTRUCTION_SIZE +}; +extern rb_method_definition_t *rb_method_definition_create(rb_method_type_t type, ID mid); +extern void rb_method_definition_set(const rb_method_entry_t *me, rb_method_definition_t *def, void *opts); +extern int rb_method_definition_eq(const rb_method_definition_t *d1, const rb_method_definition_t *d2); +extern VALUE rb_make_no_method_exception(VALUE exc, VALUE format, VALUE obj, + int argc, const VALUE *argv, int priv); +static rb_control_frame_t *vm_get_ruby_level_caller_cfp(const rb_execution_context_t *ec, const rb_control_frame_t *cfp); +static VALUE +ruby_vm_special_exception_copy(VALUE exc) +{ + VALUE e = rb_obj_alloc(rb_class_real(RBASIC_CLASS(exc))); + rb_obj_copy_ivar(e, exc); + return e; +} +__declspec(noreturn) static void ec_stack_overflow(rb_execution_context_t *ec, int); +static void +ec_stack_overflow(rb_execution_context_t *ec, int setup) +{ + VALUE mesg = rb_ec_vm_ptr(ec)->special_exceptions[ruby_error_sysstack]; + ec->raised_flag = RAISED_STACKOVERFLOW; + if (setup) { + VALUE at = rb_ec_backtrace_object(ec); + mesg = ruby_vm_special_exception_copy(mesg); + rb_ivar_set(mesg, idBt, at); + rb_ivar_set(mesg, idBt_locations, at); + } + ec->errinfo = mesg; + rb_ec_tag_jump(ec, RUBY_TAG_RAISE); +} +__declspec(noreturn) static void vm_stackoverflow(void); +__declspec(noinline) static __attribute__((__cold__)) void vm_stackoverflow(void); +static void +vm_stackoverflow(void) +{ + ec_stack_overflow(rb_current_execution_context(1), 1); +} +__declspec(noreturn) static void rb_ec_stack_overflow(rb_execution_context_t *ec, int crit); +static void +rb_ec_stack_overflow(rb_execution_context_t *ec, int crit) +{ + if (rb_during_gc()) { + rb_bug("system stack overflow during GC. Faulty native extension?"); + } + if (crit) { + ec->raised_flag = RAISED_STACKOVERFLOW; + ec->errinfo = rb_ec_vm_ptr(ec)->special_exceptions[ruby_error_stackfatal]; + rb_ec_tag_jump(ec, RUBY_TAG_RAISE); + } + ec_stack_overflow(ec, 1); +} +__extension__ _Static_assert((-2) == -2, "VM_ENV_DATA_INDEX_ME_CREF" ": " "VM_ENV_DATA_INDEX_ME_CREF == -2"); +__extension__ _Static_assert((-1) == -1, "VM_ENV_DATA_INDEX_SPECVAL" ": " "VM_ENV_DATA_INDEX_SPECVAL == -1"); +__extension__ _Static_assert(( 0) == -0, "VM_ENV_DATA_INDEX_FLAGS" ": " "VM_ENV_DATA_INDEX_FLAGS == -0"); +static void +vm_push_frame(rb_execution_context_t *ec, + const rb_iseq_t *iseq, + VALUE type, + VALUE self, + VALUE specval, + VALUE cref_or_me, + const VALUE *pc, + VALUE *sp, + int local_size, + int stack_max) +{ + rb_control_frame_t *const cfp = ((ec->cfp)-1); + ; + ((void)0); + do { __extension__ _Static_assert(sizeof(*(sp)) == sizeof(VALUE), "sizeof_sp" ": " "sizeof(*(sp)) == sizeof(VALUE)"); __extension__ _Static_assert(sizeof(*(cfp)) == sizeof(rb_control_frame_t), "sizeof_cfp" ": " "sizeof(*(cfp)) == sizeof(rb_control_frame_t)"); const struct rb_control_frame_struct *bound = (void *)&(sp)[(local_size + stack_max)]; if ((__builtin_expect(!!((cfp) <= &bound[1]), 0))) { vm_stackoverflow(); } } while (0); + ; + for (int i=0; i < local_size; i++) { + *sp++ = ((VALUE)RUBY_Qnil); + } + *sp++ = cref_or_me; + *sp++ = specval ; + *sp++ = type; + *cfp = (const struct rb_control_frame_struct) { + .pc = pc, + .sp = sp, + .iseq = iseq, + .self = self, + .ep = sp - 1, + .block_code = ((void*)0), + .__bp__ = sp, + .jit_return = ((void*)0) + }; + ec->cfp = cfp; + if (0 == 2) { + rb_vmdebug_stack_dump_raw(rb_current_execution_context(1), rb_current_execution_context(1)->cfp); + } + ; +}static inline +void +rb_vm_pop_frame_no_int(rb_execution_context_t *ec) +{ + rb_control_frame_t *cfp = ec->cfp; + if ((((0) > 0) ? (0) : 0) >= 4) rb_gc_verify_internal_consistency(); + if (0 == 2) rb_vmdebug_stack_dump_raw(rb_current_execution_context(1), rb_current_execution_context(1)->cfp); + ec->cfp = ((cfp)+1); +} +static inline int +vm_pop_frame(rb_execution_context_t *ec, rb_control_frame_t *cfp, const VALUE *ep) +{ + VALUE flags = ep[( 0)]; + if ((((0) > 0) ? (0) : 0) >= 4) rb_gc_verify_internal_consistency(); + if (0 == 2) rb_vmdebug_stack_dump_raw(rb_current_execution_context(1), rb_current_execution_context(1)->cfp); + rb_vm_check_ints(ec); + ec->cfp = ((cfp)+1); + return flags & VM_FRAME_FLAG_FINISH; +} +static void +rb_vm_pop_frame(rb_execution_context_t *ec) +{ + vm_pop_frame(ec, ec->cfp, ec->cfp->ep); +}static inline +VALUE +rb_vm_push_frame_fname(rb_execution_context_t *ec, VALUE fname) +{ + VALUE tmpbuf = rb_imemo_tmpbuf_auto_free_pointer(); + void *ptr = ruby_xcalloc(sizeof(struct rb_iseq_constant_body) + sizeof(struct rb_iseq_struct), 1); + rb_imemo_tmpbuf_set_ptr(tmpbuf, ptr); + struct rb_iseq_struct *dmy_iseq = (struct rb_iseq_struct *)ptr; + struct rb_iseq_constant_body *dmy_body = (struct rb_iseq_constant_body *)&dmy_iseq[1]; + dmy_iseq->body = dmy_body; + dmy_body->type = ISEQ_TYPE_TOP; + dmy_body->location.pathobj = fname; + vm_push_frame(ec, + dmy_iseq, + VM_FRAME_MAGIC_DUMMY | VM_ENV_FLAG_LOCAL | VM_FRAME_FLAG_FINISH, + ec->cfp->self, + 0, + ((VALUE)RUBY_Qfalse), + ((void*)0), + ec->cfp->sp, + 0, + 0); + return tmpbuf; +} +static inline VALUE +rb_arity_error_new(int argc, int min, int max) +{ + VALUE err_mess = rb_sprintf("wrong number of arguments (given %d, expected %d", argc, min); + if (min == max) { + } + else if (max == (-1)) { + ((__builtin_constant_p("+") ? rbimpl_str_cat_cstr : rb_str_cat_cstr) ((err_mess), ("+"))); + } + else { + rb_str_catf(err_mess, "..%d", max); + } + ((__builtin_constant_p(")") ? rbimpl_str_cat_cstr : rb_str_cat_cstr) ((err_mess), (")"))); + return rb_exc_new_str(rb_eArgError, err_mess); +} +static void +rb_error_arity(int argc, int min, int max) +{ + rb_exc_raise(rb_arity_error_new(argc, min, max)); +} +__declspec(noinline) static void vm_env_write_slowpath(const VALUE *ep, int index, VALUE v); +static void +vm_env_write_slowpath(const VALUE *ep, int index, VALUE v) +{ + rb_gc_writebarrier_remember(VM_ENV_ENVVAL(ep)); + VM_FORCE_WRITE(&ep[index], v); + VM_ENV_FLAGS_UNSET(ep, VM_ENV_FLAG_WB_REQUIRED); + ((void)0); +} +static inline void +vm_env_write(const VALUE *ep, int index, VALUE v) +{ + VALUE flags = ep[( 0)]; + if ((__builtin_expect(!!((flags & VM_ENV_FLAG_WB_REQUIRED) == 0), 1))) { + VM_STACK_ENV_WRITE(ep, index, v); + } + else { + vm_env_write_slowpath(ep, index, v); + } +} +static VALUE +rb_vm_bh_to_procval(const rb_execution_context_t *ec, VALUE block_handler) +{ + if (block_handler == 0) { + return ((VALUE)RUBY_Qnil); + } + else { + switch (vm_block_handler_type(block_handler)) { + case block_handler_type_iseq: + case block_handler_type_ifunc: + return rb_vm_make_proc(ec, VM_BH_TO_CAPT_BLOCK(block_handler), rb_cProc); + case block_handler_type_symbol: + return rb_sym_to_proc(VM_BH_TO_SYMBOL(block_handler)); + case block_handler_type_proc: + return VM_BH_TO_PROC(block_handler); + default: + __builtin_unreachable(); + } + } +} +static inline struct vm_svar * +lep_svar(const rb_execution_context_t *ec, const VALUE *lep) +{ + VALUE svar; + if (lep && (ec == ((void*)0) || ec->root_lep != lep)) { + svar = lep[(-2)]; + } + else { + svar = ec->root_svar; + } + ((void)0); + return (struct vm_svar *)svar; +} +static inline void +lep_svar_write(const rb_execution_context_t *ec, const VALUE *lep, const struct vm_svar *svar) +{ + ((void)0); + if (lep && (ec == ((void*)0) || ec->root_lep != lep)) { + vm_env_write(lep, (-2), (VALUE)svar); + } + else { + rb_obj_write((VALUE)(rb_ec_thread_ptr(ec)->self), __extension__({ + ; + ; __typeof__((VALUE *)(&ec->root_svar)) unaligned_member_access_result = ((VALUE *)(&ec->root_svar)); + ; unaligned_member_access_result; }), (VALUE)(svar), "./vm_insnhelper.c", 586); + } +} +static VALUE +lep_svar_get(const rb_execution_context_t *ec, const VALUE *lep, rb_num_t key) +{ + const struct vm_svar *svar = lep_svar(ec, lep); + if ((VALUE)svar == ((VALUE)RUBY_Qfalse) || imemo_type((VALUE)svar) != imemo_svar) return ((VALUE)RUBY_Qnil); + switch (key) { + case VM_SVAR_LASTLINE: + return svar->lastline; + case VM_SVAR_BACKREF: + return svar->backref; + default: { + const VALUE ary = svar->others; + if (RB_NIL_P(ary)) { + return ((VALUE)RUBY_Qnil); + } + else { + return rb_ary_entry(ary, key - VM_SVAR_EXTRA_START); + } + } + } +} +static struct vm_svar * +svar_new(VALUE obj) +{ + return (struct vm_svar *)rb_imemo_new(imemo_svar, ((VALUE)RUBY_Qnil), ((VALUE)RUBY_Qnil), ((VALUE)RUBY_Qnil), obj); +} +static void +lep_svar_set(const rb_execution_context_t *ec, const VALUE *lep, rb_num_t key, VALUE val) +{ + struct vm_svar *svar = lep_svar(ec, lep); + if ((VALUE)svar == ((VALUE)RUBY_Qfalse) || imemo_type((VALUE)svar) != imemo_svar) { + lep_svar_write(ec, lep, svar = svar_new((VALUE)svar)); + } + switch (key) { + case VM_SVAR_LASTLINE: + rb_obj_write((VALUE)(svar), __extension__({ + ; + ; __typeof__((VALUE *)(&svar->lastline)) unaligned_member_access_result = ((VALUE *)(&svar->lastline)); + ; unaligned_member_access_result; }), (VALUE)(val), "./vm_insnhelper.c", 632); + return; + case VM_SVAR_BACKREF: + rb_obj_write((VALUE)(svar), __extension__({ + ; + ; __typeof__((VALUE *)(&svar->backref)) unaligned_member_access_result = ((VALUE *)(&svar->backref)); + ; unaligned_member_access_result; }), (VALUE)(val), "./vm_insnhelper.c", 635); + return; + default: { + VALUE ary = svar->others; + if (RB_NIL_P(ary)) { + rb_obj_write((VALUE)(svar), __extension__({ + ; + ; __typeof__((VALUE *)(&svar->others)) unaligned_member_access_result = ((VALUE *)(&svar->others)); + ; unaligned_member_access_result; }), (VALUE)(ary = rb_ary_new()), "./vm_insnhelper.c", 641); + } + rb_ary_store(ary, key - VM_SVAR_EXTRA_START, val); + } + } +} +static inline VALUE +vm_getspecial(const rb_execution_context_t *ec, const VALUE *lep, rb_num_t key, rb_num_t type) +{ + VALUE val; + if (type == 0) { + val = lep_svar_get(ec, lep, key); + } + else { + VALUE backref = lep_svar_get(ec, lep, VM_SVAR_BACKREF); + if (type & 0x01) { + switch (type >> 1) { + case '&': + val = rb_reg_last_match(backref); + break; + case '`': + val = rb_reg_match_pre(backref); + break; + case '\'': + val = rb_reg_match_post(backref); + break; + case '+': + val = rb_reg_match_last(backref); + break; + default: + rb_bug("unexpected back-ref"); + } + } + else { + val = rb_reg_nth_match((int)(type >> 1), backref); + } + } + return val; +} +__attribute__((__pure__)) static rb_callable_method_entry_t *check_method_entry(VALUE obj, int can_be_svar); +static rb_callable_method_entry_t * +check_method_entry(VALUE obj, int can_be_svar) +{ + if (obj == ((VALUE)RUBY_Qfalse)) return ((void*)0); + switch (imemo_type(obj)) { + case imemo_ment: + return (rb_callable_method_entry_t *)obj; + case imemo_cref: + return ((void*)0); + case imemo_svar: + if (can_be_svar) { + return check_method_entry(((struct vm_svar *)obj)->cref_or_me, 0); + } + default: + return ((void*)0); + } +} +static const rb_callable_method_entry_t * +rb_vm_frame_method_entry(const rb_control_frame_t *cfp) +{ + const VALUE *ep = cfp->ep; + rb_callable_method_entry_t *me; + while (!VM_ENV_LOCAL_P(ep)) { + if ((me = check_method_entry(ep[(-2)], 0)) != ((void*)0)) return me; + ep = VM_ENV_PREV_EP(ep); + } + return check_method_entry(ep[(-2)], 1); +} +static const rb_iseq_t * +method_entry_iseqptr(const rb_callable_method_entry_t *me) +{ + switch (me->def->type) { + case VM_METHOD_TYPE_ISEQ: + return me->def->body.iseq.iseqptr; + default: + return ((void*)0); + } +} +static rb_cref_t * +method_entry_cref(const rb_callable_method_entry_t *me) +{ + switch (me->def->type) { + case VM_METHOD_TYPE_ISEQ: + return me->def->body.iseq.cref; + default: + return ((void*)0); + } +} +__attribute__((__pure__)) static rb_cref_t *check_cref(VALUE, int); +static rb_cref_t * +check_cref(VALUE obj, int can_be_svar) +{ + if (obj == ((VALUE)RUBY_Qfalse)) return ((void*)0); + switch (imemo_type(obj)) { + case imemo_ment: + return method_entry_cref((rb_callable_method_entry_t *)obj); + case imemo_cref: + return (rb_cref_t *)obj; + case imemo_svar: + if (can_be_svar) { + return check_cref(((struct vm_svar *)obj)->cref_or_me, 0); + } + default: + return ((void*)0); + } +} +static inline rb_cref_t * +vm_env_cref(const VALUE *ep) +{ + rb_cref_t *cref; + while (!VM_ENV_LOCAL_P(ep)) { + if ((cref = check_cref(ep[(-2)], 0)) != ((void*)0)) return cref; + ep = VM_ENV_PREV_EP(ep); + } + return check_cref(ep[(-2)], 1); +} +static int +is_cref(const VALUE v, int can_be_svar) +{ + if ((__builtin_constant_p(RUBY_T_IMEMO) ? rbimpl_RB_TYPE_P_fastpath((v), (RUBY_T_IMEMO)) : (RB_TYPE_P)((v), (RUBY_T_IMEMO)))) { + switch (imemo_type(v)) { + case imemo_cref: + return 1; + case imemo_svar: + if (can_be_svar) return is_cref(((struct vm_svar *)v)->cref_or_me, 0); + default: + break; + } + } + return 0; +} +static int +vm_env_cref_by_cref(const VALUE *ep) +{ + while (!VM_ENV_LOCAL_P(ep)) { + if (is_cref(ep[(-2)], 0)) return 1; + ep = VM_ENV_PREV_EP(ep); + } + return is_cref(ep[(-2)], 1); +} +static rb_cref_t * +cref_replace_with_duplicated_cref_each_frame(const VALUE *vptr, int can_be_svar, VALUE parent) +{ + const VALUE v = *vptr; + rb_cref_t *cref, *new_cref; + if ((__builtin_constant_p(RUBY_T_IMEMO) ? rbimpl_RB_TYPE_P_fastpath((v), (RUBY_T_IMEMO)) : (RB_TYPE_P)((v), (RUBY_T_IMEMO)))) { + switch (imemo_type(v)) { + case imemo_cref: + cref = (rb_cref_t *)v; + new_cref = vm_cref_dup(cref); + if (parent) { + rb_obj_write((VALUE)(parent), __extension__({ + ; + ; __typeof__((VALUE *)(vptr)) unaligned_member_access_result = ((VALUE *)(vptr)); + ; unaligned_member_access_result; }), (VALUE)(new_cref), "./vm_insnhelper.c", 827); + } + else { + VM_FORCE_WRITE(vptr, (VALUE)new_cref); + } + return (rb_cref_t *)new_cref; + case imemo_svar: + if (can_be_svar) { + return cref_replace_with_duplicated_cref_each_frame(&((struct vm_svar *)v)->cref_or_me, 0, v); + } + case imemo_ment: + rb_bug("cref_replace_with_duplicated_cref_each_frame: unreachable"); + default: + break; + } + } + return ((void*)0); +} +static rb_cref_t * +vm_cref_replace_with_duplicated_cref(const VALUE *ep) +{ + if (vm_env_cref_by_cref(ep)) { + rb_cref_t *cref; + VALUE envval; + while (!VM_ENV_LOCAL_P(ep)) { + envval = VM_ENV_ESCAPED_P(ep) ? VM_ENV_ENVVAL(ep) : ((VALUE)RUBY_Qfalse); + if ((cref = cref_replace_with_duplicated_cref_each_frame(&ep[(-2)], 0, envval)) != ((void*)0)) { + return cref; + } + ep = VM_ENV_PREV_EP(ep); + } + envval = VM_ENV_ESCAPED_P(ep) ? VM_ENV_ENVVAL(ep) : ((VALUE)RUBY_Qfalse); + return cref_replace_with_duplicated_cref_each_frame(&ep[(-2)], 1, envval); + } + else { + rb_bug("vm_cref_dup: unreachable"); + } +} +static rb_cref_t * +vm_get_cref(const VALUE *ep) +{ + rb_cref_t *cref = vm_env_cref(ep); + if (cref != ((void*)0)) { + return cref; + } + else { + rb_bug("vm_get_cref: unreachable"); + } +}static inline +rb_cref_t * +rb_vm_get_cref(const VALUE *ep) +{ + return vm_get_cref(ep); +} +static rb_cref_t * +vm_ec_cref(const rb_execution_context_t *ec) +{ + const rb_control_frame_t *cfp = rb_vm_get_ruby_level_next_cfp(ec, ec->cfp); + if (cfp == ((void*)0)) { + return ((void*)0); + } + return vm_get_cref(cfp->ep); +} +static const rb_cref_t * +vm_get_const_key_cref(const VALUE *ep) +{ + const rb_cref_t *cref = vm_get_cref(ep); + const rb_cref_t *key_cref = cref; + while (cref) { + if (RB_FL_TEST(CREF_CLASS(cref), ((VALUE)RUBY_FL_SINGLETON)) || + RB_FL_TEST(CREF_CLASS(cref), ((VALUE)RUBY_FL_USER1))) { + return key_cref; + } + cref = CREF_NEXT(cref); + } + return ((void*)0); +}static inline +void +rb_vm_rewrite_cref(rb_cref_t *cref, VALUE old_klass, VALUE new_klass, rb_cref_t **new_cref_ptr) +{ + rb_cref_t *new_cref; + while (cref) { + if (CREF_CLASS(cref) == old_klass) { + new_cref = vm_cref_new_use_prev(new_klass, METHOD_VISI_UNDEF, 0, cref, 0); + *new_cref_ptr = new_cref; + return; + } + new_cref = vm_cref_new_use_prev(CREF_CLASS(cref), METHOD_VISI_UNDEF, 0, cref, 0); + cref = CREF_NEXT(cref); + *new_cref_ptr = new_cref; + new_cref_ptr = &new_cref->next; + } + *new_cref_ptr = ((void*)0); +} +static rb_cref_t * +vm_cref_push(const rb_execution_context_t *ec, VALUE klass, const VALUE *ep, int pushed_by_eval, int singleton) +{ + rb_cref_t *prev_cref = ((void*)0); + if (ep) { + prev_cref = vm_env_cref(ep); + } + else { + rb_control_frame_t *cfp = vm_get_ruby_level_caller_cfp(ec, ec->cfp); + if (cfp) { + prev_cref = vm_env_cref(cfp->ep); + } + } + return vm_cref_new(klass, METHOD_VISI_PUBLIC, 0, prev_cref, pushed_by_eval, singleton); +} +static inline VALUE +vm_get_cbase(const VALUE *ep) +{ + const rb_cref_t *cref = vm_get_cref(ep); + return CREF_CLASS_FOR_DEFINITION(cref); +} +static inline VALUE +vm_get_const_base(const VALUE *ep) +{ + const rb_cref_t *cref = vm_get_cref(ep); + while (cref) { + if (!CREF_PUSHED_BY_EVAL(cref)) { + return CREF_CLASS_FOR_DEFINITION(cref); + } + cref = CREF_NEXT(cref); + } + return ((VALUE)RUBY_Qundef); +} +static inline void +vm_check_if_namespace(VALUE klass) +{ + if (!(__builtin_constant_p(RUBY_T_CLASS) ? rbimpl_RB_TYPE_P_fastpath((klass), (RUBY_T_CLASS)) : (RB_TYPE_P)((klass), (RUBY_T_CLASS))) && !(__builtin_constant_p(RUBY_T_MODULE) ? rbimpl_RB_TYPE_P_fastpath((klass), (RUBY_T_MODULE)) : (RB_TYPE_P)((klass), (RUBY_T_MODULE)))) { + rb_raise(rb_eTypeError, "%+""l""i" "\v"" is not a class/module", klass); + } +} +static inline void +vm_ensure_not_refinement_module(VALUE self) +{ + if ((__builtin_constant_p(RUBY_T_MODULE) ? rbimpl_RB_TYPE_P_fastpath((self), (RUBY_T_MODULE)) : (RB_TYPE_P)((self), (RUBY_T_MODULE))) && RB_FL_TEST(self, RMODULE_IS_REFINEMENT)) { + rb_warn("not defined at the refinement, but at the outer class/module"); + } +} +static inline VALUE +vm_get_iclass(const rb_control_frame_t *cfp, VALUE klass) +{ + return klass; +} +static inline VALUE +vm_get_ev_const(rb_execution_context_t *ec, VALUE orig_klass, ID id, _Bool allow_nil, int is_defined) +{ + void rb_const_warn_if_deprecated(const rb_const_entry_t *ce, VALUE klass, ID id); + VALUE val; + if (RB_NIL_P(orig_klass) && allow_nil) { + const rb_cref_t *root_cref = vm_get_cref(ec->cfp->ep); + const rb_cref_t *cref; + VALUE klass = ((VALUE)RUBY_Qnil); + while (root_cref && CREF_PUSHED_BY_EVAL(root_cref)) { + root_cref = CREF_NEXT(root_cref); + } + cref = root_cref; + while (cref && CREF_NEXT(cref)) { + if (CREF_PUSHED_BY_EVAL(cref)) { + klass = ((VALUE)RUBY_Qnil); + } + else { + klass = CREF_CLASS(cref); + } + cref = CREF_NEXT(cref); + if (!RB_NIL_P(klass)) { + VALUE av, am = 0; + rb_const_entry_t *ce; + search_continue: + if ((ce = rb_const_lookup(klass, id))) { + rb_const_warn_if_deprecated(ce, klass, id); + val = ce->value; + if (RB_UNDEF_P(val)) { + if (am == klass) break; + am = klass; + if (is_defined) return 1; + if (rb_autoloading_value(klass, id, &av, ((void*)0))) return av; + rb_autoload_load(klass, id); + goto search_continue; + } + else { + if (is_defined) { + return 1; + } + else { + if ((__builtin_expect(!!(!rb_ractor_main_p()), 0))) { + if (!rb_ractor_shareable_p(val)) { + rb_raise(rb_eRactorIsolationError, + "can not access non-shareable objects in constant %""l""i" "\v""::%s by non-main ractor.", rb_class_path(klass), rb_id2name(id)); + } + } + return val; + } + } + } + } + } + if (root_cref && !RB_NIL_P(CREF_CLASS(root_cref))) { + klass = vm_get_iclass(ec->cfp, CREF_CLASS(root_cref)); + } + else { + klass = rb_class_of(ec->cfp->self); + } + if (is_defined) { + return rb_const_defined(klass, id); + } + else { + return rb_const_get(klass, id); + } + } + else { + vm_check_if_namespace(orig_klass); + if (is_defined) { + return rb_public_const_defined_from(orig_klass, id); + } + else { + return rb_public_const_get_from(orig_klass, id); + } + } +}static inline +VALUE +rb_vm_get_ev_const(rb_execution_context_t *ec, VALUE orig_klass, ID id, VALUE allow_nil) +{ + return vm_get_ev_const(ec, orig_klass, id, allow_nil == ((VALUE)RUBY_Qtrue), 0); +} +static inline VALUE +vm_get_ev_const_chain(rb_execution_context_t *ec, const ID *segments) +{ + VALUE val = ((VALUE)RUBY_Qnil); + int idx = 0; + int allow_nil = 1; + if (segments[0] == idNULL) { + val = rb_cObject; + idx++; + allow_nil = 0; + } + while (segments[idx]) { + ID id = segments[idx++]; + val = vm_get_ev_const(ec, val, id, allow_nil, 0); + allow_nil = 0; + } + return val; +} +static inline VALUE +vm_get_cvar_base(const rb_cref_t *cref, const rb_control_frame_t *cfp, int top_level_raise) +{ + VALUE klass; + if (!cref) { + rb_bug("vm_get_cvar_base: no cref"); + } + while (CREF_NEXT(cref) && + (RB_NIL_P(CREF_CLASS(cref)) || RB_FL_TEST(CREF_CLASS(cref), ((VALUE)RUBY_FL_SINGLETON)) || + CREF_PUSHED_BY_EVAL(cref) || CREF_SINGLETON(cref))) { + cref = CREF_NEXT(cref); + } + if (top_level_raise && !CREF_NEXT(cref)) { + rb_raise(rb_eRuntimeError, "class variable access from toplevel"); + } + klass = vm_get_iclass(cfp, CREF_CLASS(cref)); + if (RB_NIL_P(klass)) { + rb_raise(rb_eTypeError, "no class variables available"); + } + return klass; +} +__attribute__ ((__always_inline__)) static void fill_ivar_cache(const rb_iseq_t *iseq, IVC ic, const struct rb_callcache *cc, int is_attr, attr_index_t index, shape_id_t shape_id); +static inline void +fill_ivar_cache(const rb_iseq_t *iseq, IVC ic, const struct rb_callcache *cc, int is_attr, attr_index_t index, shape_id_t shape_id) +{ + if (is_attr) { + vm_cc_attr_index_set(cc, index, shape_id); + } + else { + vm_ic_attr_index_set(iseq, ic, index, shape_id); + } +} +__attribute__ ((__always_inline__)) static VALUE vm_getivar(VALUE, ID, const rb_iseq_t *, IVC, const struct rb_callcache *, int); +static inline VALUE +vm_getivar(VALUE obj, ID id, const rb_iseq_t *iseq, IVC ic, const struct rb_callcache *cc, int is_attr) +{ + VALUE val = ((VALUE)RUBY_Qundef); + shape_id_t shape_id; + VALUE * ivar_list; + if (RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qnil); + } + shape_id = RBASIC_SHAPE_ID(obj); + switch (RB_BUILTIN_TYPE(obj)) { + case RUBY_T_OBJECT: + ivar_list = ROBJECT_IVPTR(obj); + ((void)0); + break; + case RUBY_T_CLASS: + case RUBY_T_MODULE: + { + if ((__builtin_expect(!!(!rb_ractor_main_p()), 0))) { + goto general_path; + } + ivar_list = (((rb_classext_t *)((char *)(obj) + sizeof(struct RClass)))->iv_ptr); + break; + } + default: + if (RB_FL_TEST_RAW(obj, ((VALUE)RUBY_FL_EXIVAR))) { + struct gen_ivtbl *ivtbl; + rb_gen_ivtbl_get(obj, id, &ivtbl); + ivar_list = ivtbl->ivptr; + } + else { + return ((VALUE)RUBY_Qnil); + } + } + shape_id_t cached_id; + attr_index_t index; + if (is_attr) { + vm_cc_atomic_shape_and_index(cc, &cached_id, &index); + } + else { + vm_ic_atomic_shape_and_index(ic, &cached_id, &index); + } + if ((__builtin_expect(!!(cached_id == shape_id), 1))) { + ((void)0); + if (index == (attr_index_t)-1) { + return ((VALUE)RUBY_Qnil); + } + val = ivar_list[index]; + ((void)0); + } + else { + rb_shape_t *shape = rb_shape_get_shape_by_id(shape_id); + if (shape_id == ((5 * 2) + 1)) { + if (!rb_id_table_lookup(ROBJECT_IV_HASH(obj), id, &val)) { + val = ((VALUE)RUBY_Qnil); + } + } + else { + if (rb_shape_get_iv_index(shape, id, &index)) { + fill_ivar_cache(iseq, ic, cc, is_attr, index, shape_id); + val = ivar_list[index]; + ((void)0); + } + else { + if (is_attr) { + vm_cc_attr_index_initialize(cc, shape_id); + } + else { + vm_ic_attr_index_initialize(ic, shape_id); + } + val = ((VALUE)RUBY_Qnil); + } + } + } + ((void)0); + return val; +general_path: + ((void)0); + if (is_attr) { + return rb_attr_get(obj, id); + } + else { + return rb_ivar_get(obj, id); + } +} +static void +populate_cache(attr_index_t index, shape_id_t next_shape_id, ID id, const rb_iseq_t *iseq, IVC ic, const struct rb_callcache *cc, _Bool is_attr) +{ + ((void)0); + if (is_attr) { + vm_cc_attr_index_set(cc, index, next_shape_id); + } + else { + vm_ic_attr_index_set(iseq, ic, index, next_shape_id); + } +} +__attribute__ ((__always_inline__)) static VALUE vm_setivar_slowpath(VALUE obj, ID id, VALUE val, const rb_iseq_t *iseq, IVC ic, const struct rb_callcache *cc, int is_attr); +__declspec(noinline) static VALUE vm_setivar_slowpath_ivar(VALUE obj, ID id, VALUE val, const rb_iseq_t *iseq, IVC ic); +__declspec(noinline) static VALUE vm_setivar_slowpath_attr(VALUE obj, ID id, VALUE val, const struct rb_callcache *cc); +static VALUE +vm_setivar_slowpath(VALUE obj, ID id, VALUE val, const rb_iseq_t *iseq, IVC ic, const struct rb_callcache *cc, int is_attr) +{ + switch (RB_BUILTIN_TYPE(obj)) { + case RUBY_T_OBJECT: + { + do { VALUE frozen_obj = (obj); if ((__builtin_expect(!!(RB_OBJ_FROZEN(frozen_obj)), 0))) { rb_error_frozen_object(frozen_obj); } } while (0); + attr_index_t index = rb_obj_ivar_set(obj, id, val); + shape_id_t next_shape_id = ROBJECT_SHAPE_ID(obj); + if (next_shape_id != ((5 * 2) + 1)) { + populate_cache(index, next_shape_id, id, iseq, ic, cc, is_attr); + } + ((void)0); + return val; + } + case RUBY_T_CLASS: + case RUBY_T_MODULE: + break; + default: + { + rb_ivar_set(obj, id, val); + shape_id_t next_shape_id = rb_shape_get_shape_id(obj); + rb_shape_t *next_shape = rb_shape_get_shape_by_id(next_shape_id); + attr_index_t index; + if (rb_shape_get_iv_index(next_shape, id, &index)) { + if (index >= (attr_index_t)(-1)) { + rb_raise(rb_eArgError, "too many instance variables"); + } + populate_cache(index, next_shape_id, id, iseq, ic, cc, is_attr); + } + else { + rb_bug("didn't find the id\n"); + } + return val; + } + } + ((void)0); + return rb_ivar_set(obj, id, val); +} +static VALUE +vm_setivar_slowpath_ivar(VALUE obj, ID id, VALUE val, const rb_iseq_t *iseq, IVC ic) +{ + return vm_setivar_slowpath(obj, id, val, iseq, ic, ((void*)0), 0); +} +static VALUE +vm_setivar_slowpath_attr(VALUE obj, ID id, VALUE val, const struct rb_callcache *cc) +{ + return vm_setivar_slowpath(obj, id, val, ((void*)0), ((void*)0), cc, 1); +} +__declspec(noinline) static VALUE vm_setivar_default(VALUE obj, ID id, VALUE val, shape_id_t dest_shape_id, attr_index_t index); +static VALUE +vm_setivar_default(VALUE obj, ID id, VALUE val, shape_id_t dest_shape_id, attr_index_t index) +{ + shape_id_t shape_id = RBASIC_SHAPE_ID(obj); + struct gen_ivtbl *ivtbl = 0; + if (shape_id == dest_shape_id) { + ((void)0); + rb_gen_ivtbl_get(obj, 0, &ivtbl); + } + else if (dest_shape_id != (((uintptr_t)1 << 32) - 1)) { + rb_shape_t * dest_shape = rb_shape_get_shape_by_id(dest_shape_id); + shape_id_t source_shape_id = dest_shape->parent_id; + if (shape_id == source_shape_id && dest_shape->edge_name == id && dest_shape->type == SHAPE_IVAR) { + ivtbl = rb_ensure_generic_iv_list_size(obj, dest_shape, index + 1); + RBASIC_SET_SHAPE_ID(obj, dest_shape_id); + } + else { + return ((VALUE)RUBY_Qundef); + } + } + else { + return ((VALUE)RUBY_Qundef); + } + VALUE *ptr = ivtbl->ivptr; + rb_obj_write((VALUE)(obj), __extension__({ + ; + ; __typeof__((VALUE *)(&ptr[index])) unaligned_member_access_result = ((VALUE *)(&ptr[index])); + ; unaligned_member_access_result; }), (VALUE)(val), "./vm_insnhelper.c", 1423); + ((void)0); + return val; +} +static inline VALUE +vm_setivar(VALUE obj, ID id, VALUE val, shape_id_t dest_shape_id, attr_index_t index) +{ + switch (RB_BUILTIN_TYPE(obj)) { + case RUBY_T_OBJECT: + { + ((void)0); + shape_id_t shape_id = ROBJECT_SHAPE_ID(obj); + ((void)0); + if ((__builtin_expect(!!(shape_id == dest_shape_id), 1))) { + ((void)0); + ((void)0); + } + else if (dest_shape_id != (((uintptr_t)1 << 32) - 1)) { + rb_shape_t *dest_shape = rb_shape_get_shape_by_id(dest_shape_id); + shape_id_t source_shape_id = dest_shape->parent_id; + if (shape_id == source_shape_id && dest_shape->edge_name == id) { + ((void)0); + ROBJECT_SET_SHAPE_ID(obj, dest_shape_id); + ((void)0); + ((void)0); + } + else { + break; + } + } + else { + break; + } + VALUE *ptr = ROBJECT_IVPTR(obj); + ((void)0); + rb_obj_write((VALUE)(obj), __extension__({ + ; + ; __typeof__((VALUE *)(&ptr[index])) unaligned_member_access_result = ((VALUE *)(&ptr[index])); + ; unaligned_member_access_result; }), (VALUE)(val), "./vm_insnhelper.c", 1469); + ((void)0); + return val; + } + break; + case RUBY_T_CLASS: + case RUBY_T_MODULE: + ((void)0); + default: + break; + } + return ((VALUE)RUBY_Qundef); +} +static VALUE +update_classvariable_cache(const rb_iseq_t *iseq, VALUE klass, ID id, ICVARC ic) +{ + VALUE defined_class = 0; + VALUE cvar_value = rb_cvar_find(klass, id, &defined_class); + if ((__builtin_constant_p(RUBY_T_ICLASS) ? rbimpl_RB_TYPE_P_fastpath((defined_class), (RUBY_T_ICLASS)) : (RB_TYPE_P)((defined_class), (RUBY_T_ICLASS)))) { + defined_class = ((struct RBasic *)(defined_class))->klass; + } + struct rb_id_table *rb_cvc_tbl = (((rb_classext_t *)((char *)(defined_class) + sizeof(struct RClass)))->cvc_tbl); + if (!rb_cvc_tbl) { + rb_bug("the cvc table should be set"); + } + VALUE ent_data; + if (!rb_id_table_lookup(rb_cvc_tbl, id, &ent_data)) { + rb_bug("should have cvar cache entry"); + } + struct rb_cvar_class_tbl_entry *ent = (void *)ent_data; + ent->global_cvar_state = (ruby_vm_global_cvar_state); + ic->entry = ent; + (rb_obj_written((VALUE)(iseq), (VALUE)(((VALUE)RUBY_Qundef)), (VALUE)(ent->class_value), "./vm_insnhelper.c", 1510)); + return cvar_value; +} +static inline VALUE +vm_getclassvariable(const rb_iseq_t *iseq, const rb_control_frame_t *reg_cfp, ID id, ICVARC ic) +{ + const rb_cref_t *cref; + if (ic->entry && ic->entry->global_cvar_state == (ruby_vm_global_cvar_state) && (__builtin_expect(!!(rb_ractor_main_p()), 1))) { + ((void)0); + VALUE v = rb_ivar_lookup(ic->entry->class_value, id, ((VALUE)RUBY_Qundef)); + ((void)0); + return v; + } + cref = vm_get_cref(((((reg_cfp)->ep)))); + VALUE klass = vm_get_cvar_base(cref, reg_cfp, 1); + return update_classvariable_cache(iseq, klass, id, ic); +}static inline +VALUE +rb_vm_getclassvariable(const rb_iseq_t *iseq, const rb_control_frame_t *cfp, ID id, ICVARC ic) +{ + return vm_getclassvariable(iseq, cfp, id, ic); +} +static inline void +vm_setclassvariable(const rb_iseq_t *iseq, const rb_control_frame_t *reg_cfp, ID id, VALUE val, ICVARC ic) +{ + const rb_cref_t *cref; + if (ic->entry && ic->entry->global_cvar_state == (ruby_vm_global_cvar_state)) { + ((void)0); + rb_class_ivar_set(ic->entry->class_value, id, val); + return; + } + cref = vm_get_cref(((((reg_cfp)->ep)))); + VALUE klass = vm_get_cvar_base(cref, reg_cfp, 1); + rb_cvar_set(klass, id, val); + update_classvariable_cache(iseq, klass, id, ic); +}static inline +void +rb_vm_setclassvariable(const rb_iseq_t *iseq, const rb_control_frame_t *cfp, ID id, VALUE val, ICVARC ic) +{ + vm_setclassvariable(iseq, cfp, id, val, ic); +} +static inline VALUE +vm_getinstancevariable(const rb_iseq_t *iseq, VALUE obj, ID id, IVC ic) +{ + return vm_getivar(obj, id, iseq, ic, ((void*)0), 0); +} +static inline void +vm_setinstancevariable(const rb_iseq_t *iseq, VALUE obj, ID id, VALUE val, IVC ic) +{ + if (RB_SPECIAL_CONST_P(obj)) { + rb_error_frozen_object(obj); + return; + } + shape_id_t dest_shape_id; + attr_index_t index; + vm_ic_atomic_shape_and_index(ic, &dest_shape_id, &index); + if ((__builtin_expect(!!(RB_UNDEF_P(vm_setivar(obj, id, val, dest_shape_id, index))), 0))) { + switch (RB_BUILTIN_TYPE(obj)) { + case RUBY_T_OBJECT: + case RUBY_T_CLASS: + case RUBY_T_MODULE: + break; + default: + if (!RB_UNDEF_P(vm_setivar_default(obj, id, val, dest_shape_id, index))) { + return; + } + } + vm_setivar_slowpath_ivar(obj, id, val, iseq, ic); + } +}static inline +void +rb_vm_setinstancevariable(const rb_iseq_t *iseq, VALUE obj, ID id, VALUE val, IVC ic) +{ + vm_setinstancevariable(iseq, obj, id, val, ic); +} +static VALUE +vm_throw_continue(const rb_execution_context_t *ec, VALUE err) +{ + if (RB_FIXNUM_P(err)) { + ec->tag->state = RB_FIX2INT(err); + } + else if (RB_SYMBOL_P(err)) { + ec->tag->state = RUBY_TAG_THROW; + } + else if (imemo_throw_data_p((VALUE)err)) { + ec->tag->state = THROW_DATA_STATE((struct vm_throw_data *)err); + } + else { + ec->tag->state = RUBY_TAG_RAISE; + } + return err; +} +static VALUE +vm_throw_start(const rb_execution_context_t *ec, rb_control_frame_t *const reg_cfp, enum ruby_tag_type state, + const int flag, const VALUE throwobj) +{ + const rb_control_frame_t *escape_cfp = ((void*)0); + const rb_control_frame_t * const eocfp = RUBY_VM_END_CONTROL_FRAME(ec); + if (flag != 0) { + } + else if (state == RUBY_TAG_BREAK) { + int is_orphan = 1; + const VALUE *ep = ((((reg_cfp)->ep))); + const rb_iseq_t *base_iseq = ((((reg_cfp)))->iseq); + escape_cfp = reg_cfp; + while (((base_iseq)->body)->type != ISEQ_TYPE_BLOCK) { + if (((escape_cfp->iseq)->body)->type == ISEQ_TYPE_CLASS) { + escape_cfp = ((escape_cfp)+1); + ep = escape_cfp->ep; + base_iseq = escape_cfp->iseq; + } + else { + ep = VM_ENV_PREV_EP(ep); + base_iseq = ((base_iseq)->body)->parent_iseq; + escape_cfp = rb_vm_search_cf_from_ep(ec, escape_cfp, ep); + ((void)0); + } + } + if (VM_FRAME_LAMBDA_P(escape_cfp)) { + is_orphan = 0; + state = RUBY_TAG_RETURN; + } + else { + ep = VM_ENV_PREV_EP(ep); + while (escape_cfp < eocfp) { + if (escape_cfp->ep == ep) { + const rb_iseq_t *const iseq = escape_cfp->iseq; + const VALUE epc = escape_cfp->pc - ((iseq)->body)->iseq_encoded; + const struct iseq_catch_table *const ct = ((iseq)->body)->catch_table; + unsigned int i; + if (!ct) break; + for (i=0; i < ct->size; i++) { + const struct iseq_catch_table_entry *const entry = + __extension__({ + ; + ; __typeof__(&(ct)->entries[i]) unaligned_member_access_result = (&(ct)->entries[i]); + ; unaligned_member_access_result; }); + if (entry->type == CATCH_TYPE_BREAK && + entry->iseq == base_iseq && + entry->start < epc && entry->end >= epc) { + if (entry->cont == epc) { + is_orphan = 0; + } + break; + } + } + break; + } + escape_cfp = ((escape_cfp)+1); + } + } + if (is_orphan) { + rb_vm_localjump_error("break from proc-closure", throwobj, RUBY_TAG_BREAK); + } + } + else if (state == RUBY_TAG_RETRY) { + const VALUE *ep = VM_ENV_PREV_EP(((((reg_cfp)->ep)))); + escape_cfp = rb_vm_search_cf_from_ep(ec, reg_cfp, ep); + } + else if (state == RUBY_TAG_RETURN) { + const VALUE *current_ep = ((((reg_cfp)->ep))); + const VALUE *target_ep = ((void*)0), *target_lep, *ep = current_ep; + int in_class_frame = 0; + int toplevel = 1; + escape_cfp = reg_cfp; + while (!VM_ENV_LOCAL_P(ep)) { + if (VM_ENV_FLAGS(ep, VM_FRAME_FLAG_LAMBDA) && target_ep == ((void*)0)) { + target_ep = ep; + } + ep = VM_ENV_PREV_EP(ep); + } + target_lep = ep; + while (escape_cfp < eocfp) { + const VALUE *lep = VM_CF_LEP(escape_cfp); + if (!target_lep) { + target_lep = lep; + } + if (lep == target_lep && + VM_FRAME_RUBYFRAME_P(escape_cfp) && + ((escape_cfp->iseq)->body)->type == ISEQ_TYPE_CLASS) { + in_class_frame = 1; + target_lep = 0; + } + if (lep == target_lep) { + if (VM_FRAME_LAMBDA_P(escape_cfp)) { + toplevel = 0; + if (in_class_frame) { + goto valid_return; + } + else { + const VALUE *tep = current_ep; + while (target_lep != tep) { + if (escape_cfp->ep == tep) { + if (tep == target_ep) { + goto valid_return; + } + else { + goto unexpected_return; + } + } + tep = VM_ENV_PREV_EP(tep); + } + } + } + else if (VM_FRAME_RUBYFRAME_P(escape_cfp)) { + switch (((escape_cfp->iseq)->body)->type) { + case ISEQ_TYPE_TOP: + case ISEQ_TYPE_MAIN: + if (toplevel) { + if (in_class_frame) goto unexpected_return; + if (target_ep == ((void*)0)) { + goto valid_return; + } + else { + goto unexpected_return; + } + } + break; + case ISEQ_TYPE_EVAL: + case ISEQ_TYPE_CLASS: + toplevel = 0; + break; + default: + break; + } + } + } + if (escape_cfp->ep == target_lep && ((escape_cfp->iseq)->body)->type == ISEQ_TYPE_METHOD) { + if (target_ep == ((void*)0)) { + goto valid_return; + } + else { + goto unexpected_return; + } + } + escape_cfp = ((escape_cfp)+1); + } + unexpected_return:; + rb_vm_localjump_error("unexpected return", throwobj, RUBY_TAG_RETURN); + valid_return:; + } + else { + rb_bug("isns(throw): unsupported throw type"); + } + ec->tag->state = state; + return (VALUE)THROW_DATA_NEW(throwobj, escape_cfp, state); +} +static VALUE +vm_throw(const rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + rb_num_t throw_state, VALUE throwobj) +{ + const int state = (int)(throw_state & VM_THROW_STATE_MASK); + const int flag = (int)(throw_state & VM_THROW_NO_ESCAPE_FLAG); + if (state != 0) { + return vm_throw_start(ec, reg_cfp, state, flag, throwobj); + } + else { + return vm_throw_continue(ec, throwobj); + } +} +static inline void +vm_expandarray(VALUE *sp, VALUE ary, rb_num_t num, int flag) +{ + int is_splat = flag & 0x01; + rb_num_t space_size = num + is_splat; + VALUE *base = sp - 1; + const VALUE *ptr; + rb_num_t len; + const VALUE obj = ary; + if (!(__builtin_constant_p(RUBY_T_ARRAY) ? rbimpl_RB_TYPE_P_fastpath((ary), (RUBY_T_ARRAY)) : (RB_TYPE_P)((ary), (RUBY_T_ARRAY))) && RB_NIL_P(ary = rb_check_array_type(ary))) { + ary = obj; + ptr = &ary; + len = 1; + } + else { + ptr = rb_array_const_ptr_transient(ary); + len = (rb_num_t)rb_array_len(ary); + } + if (space_size == 0) { + } + else if (flag & 0x02) { + rb_num_t i = 0, j; + if (len < num) { + for (i=0; i len) { + *bptr = rb_ary_new(); + } + else { + *bptr = rb_ary_new_from_values(len - num, ptr + num); + } + } + } + (*__extension__ ({ volatile VALUE *rb_gc_guarded_ptr = &(ary); __asm__("" : : "m"(rb_gc_guarded_ptr)); rb_gc_guarded_ptr; })); +} +static VALUE vm_call_general(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling); +static VALUE vm_mtbl_dump(VALUE klass, ID target_mid); +static struct rb_class_cc_entries * +vm_ccs_create(VALUE klass, const rb_callable_method_entry_t *cme) +{ + struct rb_class_cc_entries *ccs = ((struct rb_class_cc_entries *)ruby_xmalloc(sizeof(struct rb_class_cc_entries))); + ccs->capa = 0; + ccs->len = 0; + rb_obj_write((VALUE)(klass), __extension__({ + ; + ; __typeof__((VALUE *)(&ccs->cme)) unaligned_member_access_result = ((VALUE *)(&ccs->cme)); + ; unaligned_member_access_result; }), (VALUE)(cme), "./vm_insnhelper.c", 1898); + (((rb_callable_method_entry_t *)cme)->flags |= ((VALUE)RUBY_FL_USER8)); + ccs->entries = ((void*)0); + return ccs; +} +static void +vm_ccs_push(VALUE klass, struct rb_class_cc_entries *ccs, const struct rb_callinfo *ci, const struct rb_callcache *cc) +{ + if (! vm_cc_markable(cc)) { + return; + } + else if (! vm_ci_markable(ci)) { + return; + } + if ((__builtin_expect(!!(ccs->len == ccs->capa), 0))) { + if (ccs->capa == 0) { + ccs->capa = 1; + ccs->entries = ((struct rb_class_cc_entries_entry *)ruby_xmalloc2((ccs->capa), sizeof(struct rb_class_cc_entries_entry))); + } + else { + ccs->capa *= 2; + ((ccs->entries) = ((struct rb_class_cc_entries_entry *)ruby_xrealloc2((void *)(ccs->entries), (ccs->capa), sizeof(struct rb_class_cc_entries_entry)))); + } + } + ((void)0); + const int pos = ccs->len++; + rb_obj_write((VALUE)(klass), __extension__({ + ; + ; __typeof__((VALUE *)(&ccs->entries[pos].ci)) unaligned_member_access_result = ((VALUE *)(&ccs->entries[pos].ci)); + ; unaligned_member_access_result; }), (VALUE)(ci), "./vm_insnhelper.c", 1927); + rb_obj_write((VALUE)(klass), __extension__({ + ; + ; __typeof__((VALUE *)(&ccs->entries[pos].cc)) unaligned_member_access_result = ((VALUE *)(&ccs->entries[pos].cc)); + ; unaligned_member_access_result; }), (VALUE)(cc), "./vm_insnhelper.c", 1928); + if (0) { + } +} +static const struct rb_callcache * +vm_search_method_slowpath0(VALUE cd_owner, struct rb_call_data *cd, VALUE klass) +{ + const struct rb_callcache *cc = rb_vm_search_method_slowpath(cd->ci, klass); + cd->cc = cc; + const struct rb_callcache *empty_cc = + rb_vm_empty_cc(); + if (cd_owner && cc != empty_cc) (rb_obj_written((VALUE)(cd_owner), (VALUE)(((VALUE)RUBY_Qundef)), (VALUE)(cc), "./vm_insnhelper.c", 2110)); + ((void)0); + return cc; +} +static const struct rb_callcache * +vm_search_method_fastpath(VALUE cd_owner, struct rb_call_data *cd, VALUE klass) +{ + const struct rb_callcache *cc = cd->cc; + if ((__builtin_expect(!!(vm_cc_class_check(cc, klass)), 1))) { + if ((__builtin_expect(!!(!((vm_cc_cme(cc))->flags & ((VALUE)RUBY_FL_USER9))), 1))) { + ((void)0); + ((void)0); + ((void)0); + return cc; + } + ((void)0); + } + else { + ((void)0); + } + return vm_search_method_slowpath0(cd_owner, cd, klass); +} +static const struct rb_callcache * +vm_search_method(VALUE cd_owner, struct rb_call_data *cd, VALUE recv) +{ + VALUE klass = rb_class_of(recv); + ((void)0); + ((void)0); + return vm_search_method_fastpath(cd_owner, cd, klass); +} +typedef union { + VALUE (*anyargs)(); + VALUE (*f00)(VALUE); + VALUE (*f01)(VALUE, VALUE); + VALUE (*f02)(VALUE, VALUE, VALUE); + VALUE (*f03)(VALUE, VALUE, VALUE, VALUE); + VALUE (*f04)(VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f05)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f06)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f07)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f08)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f09)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f10)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f11)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f12)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f13)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f14)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*f15)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); + VALUE (*fm1)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE); +} __attribute__((__transparent_union__)) cfunc_type; +static inline int +check_cfunc(const rb_callable_method_entry_t *me, cfunc_type func) +{ + if (! me) { + return 0; + } + else { + ((void)0); + ((void)0); + ((void)0); + if (me->def->type != VM_METHOD_TYPE_CFUNC) { + return 0; + } + else { + return me->def->body.cfunc.func == func.anyargs; + } + } +} +static inline int +vm_method_cfunc_is(const rb_iseq_t *iseq, CALL_DATA cd, VALUE recv, cfunc_type func) +{ + ((void)0); + const struct rb_callcache *cc = vm_search_method((VALUE)iseq, cd, recv); + return check_cfunc(vm_cc_cme(cc), func); +} +static inline _Bool +FIXNUM_2_P(VALUE a, VALUE b) +{ + long x = a; + long y = b; + long z = x & y & 1; + return z == 1; +} +static inline _Bool +FLONUM_2_P(VALUE a, VALUE b) +{ + long x = a; + long y = b; + long z = ((x ^ 2) | (y ^ 2)) & 3; + return !z; +} +static VALUE +opt_equality_specialized(VALUE recv, VALUE obj) +{ + if (FIXNUM_2_P(recv, obj) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_EQ)]&((1 << 0))) == 0), 1)))) { + goto compare_by_identity; + } + else if (FLONUM_2_P(recv, obj) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_EQ)]&((1 << 1))) == 0), 1)))) { + goto compare_by_identity; + } + else if (RB_STATIC_SYM_P(recv) && RB_STATIC_SYM_P(obj) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_EQ)]&((1 << 6))) == 0), 1)))) { + goto compare_by_identity; + } + else if (RB_SPECIAL_CONST_P(recv)) { + } + else if (RBASIC_CLASS(recv) == rb_cFloat && RB_FLOAT_TYPE_P(obj) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_EQ)]&((1 << 1))) == 0), 1)))) { + double a = rb_float_value_inline(recv); + double b = rb_float_value_inline(obj); + return ((a == b) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else if (RBASIC_CLASS(recv) == rb_cString && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_EQ)]&((1 << 2))) == 0), 1)))) { + if (recv == obj) { + return ((VALUE)RUBY_Qtrue); + } + else if ((__builtin_constant_p(RUBY_T_STRING) ? rbimpl_RB_TYPE_P_fastpath((obj), (RUBY_T_STRING)) : (RB_TYPE_P)((obj), (RUBY_T_STRING)))) { + return rb_str_eql_internal(obj, recv); + } + } + return ((VALUE)RUBY_Qundef); + compare_by_identity: + return ((recv == obj) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); +} +static VALUE +opt_equality(const rb_iseq_t *cd_owner, VALUE recv, VALUE obj, CALL_DATA cd) +{ + ((void)0); + VALUE val = opt_equality_specialized(recv, obj); + if (!RB_UNDEF_P(val)) return val; + if (!vm_method_cfunc_is(cd_owner, cd, recv, rb_obj_equal)) { + return ((VALUE)RUBY_Qundef); + } + else { + return ((recv == obj) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } +} +extern VALUE rb_vm_call0(rb_execution_context_t *ec, VALUE, ID, int, const VALUE*, const rb_callable_method_entry_t *, int kw_splat); +extern VALUE rb_vm_call_with_refinements(rb_execution_context_t *, VALUE, ID, int, const VALUE *, int); +static VALUE +check_match(rb_execution_context_t *ec, VALUE pattern, VALUE target, enum vm_check_match_type type) +{ + switch (type) { + case VM_CHECKMATCH_TYPE_WHEN: + return pattern; + case VM_CHECKMATCH_TYPE_RESCUE: + if (!rb_obj_is_kind_of(pattern, rb_cModule)) { + rb_raise(rb_eTypeError, "class or module required for rescue clause"); + } + case VM_CHECKMATCH_TYPE_CASE: { + return rb_vm_call_with_refinements(ec, pattern, idEqq, 1, &target, 0); + } + default: + rb_bug("check_match: unreachable"); + } +} +static inline VALUE +double_cmp_lt(double a, double b) +{ + ; + return ((a < b) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); +} +static inline VALUE +double_cmp_le(double a, double b) +{ + ; + return ((a <= b) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); +} +static inline VALUE +double_cmp_gt(double a, double b) +{ + ; + return ((a > b) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); +} +static inline VALUE +double_cmp_ge(double a, double b) +{ + ; + return ((a >= b) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); +} +static inline VALUE * +vm_base_ptr(const rb_control_frame_t *cfp) +{ + return cfp->__bp__; +} +__declspec(noreturn) static void raise_argument_error(rb_execution_context_t *ec, const rb_iseq_t *iseq, const VALUE exc); +__declspec(noreturn) static void argument_arity_error(rb_execution_context_t *ec, const rb_iseq_t *iseq, const int miss_argc, const int min_argc, const int max_argc); +__declspec(noreturn) static void argument_kw_error(rb_execution_context_t *ec, const rb_iseq_t *iseq, const char *error, const VALUE keys); +VALUE rb_keyword_error_new(const char *error, VALUE keys); +static VALUE method_missing(rb_execution_context_t *ec, VALUE obj, ID id, int argc, const VALUE *argv, + enum method_missing_reason call_status, int kw_splat); +__attribute__ ((__visibility__("default"))) extern +const rb_callable_method_entry_t *rb_resolve_refined_method_callable(VALUE refinements, const rb_callable_method_entry_t *me); +struct args_info { + VALUE *argv; + int argc; + int rest_index; + int rest_dupped; + const struct rb_callinfo_kwarg *kw_arg; + VALUE *kw_argv; + VALUE rest; +}; +enum arg_setup_type { + arg_setup_method, + arg_setup_block +}; +static inline void +arg_rest_dup(struct args_info *args) +{ + if (!args->rest_dupped) { + args->rest = rb_ary_dup(args->rest); + args->rest_dupped = 1; + } +} +static inline int +args_argc(struct args_info *args) +{ + if (args->rest == ((VALUE)RUBY_Qfalse)) { + return args->argc; + } + else { + return args->argc + RARRAY_LENINT(args->rest) - args->rest_index; + } +} +static inline void +args_extend(struct args_info *args, const int min_argc) +{ + int i; + if (args->rest) { + arg_rest_dup(args); + ((void)0); + for (i=args->argc + RARRAY_LENINT(args->rest); irest, ((VALUE)RUBY_Qnil)); + } + } + else { + for (i=args->argc; iargv[args->argc++] = ((VALUE)RUBY_Qnil); + } + } +} +static inline void +args_reduce(struct args_info *args, int over_argc) +{ + if (args->rest) { + const long len = rb_array_len(args->rest); + if (len > over_argc) { + arg_rest_dup(args); + rb_ary_resize(args->rest, len - over_argc); + return; + } + else { + args->rest = ((VALUE)RUBY_Qfalse); + over_argc -= len; + } + } + ((void)0); + args->argc -= over_argc; +} +static inline int +args_check_block_arg0(struct args_info *args) +{ + VALUE ary = ((VALUE)RUBY_Qnil); + if (args->rest && rb_array_len(args->rest) == 1) { + VALUE arg0 = RARRAY_AREF(args->rest, 0); + ary = rb_check_array_type(arg0); + } + else if (args->argc == 1) { + VALUE arg0 = args->argv[0]; + ary = rb_check_array_type(arg0); + args->argv[0] = arg0; + } + if (!RB_NIL_P(ary)) { + args->rest = ary; + args->rest_index = 0; + args->argc = 0; + return 1; + } + return 0; +} +static inline void +args_copy(struct args_info *args) +{ + if (args->rest != ((VALUE)RUBY_Qfalse)) { + int argc = args->argc; + args->argc = 0; + arg_rest_dup(args); + while (args->rest_index > 0 && argc > 0) { + RARRAY_ASET(args->rest, --args->rest_index, args->argv[--argc]); + } + while (argc > 0) { + rb_ary_unshift(args->rest, args->argv[--argc]); + } + } + else if (args->argc > 0) { + args->rest = rb_ary_new_from_values(args->argc, args->argv); + args->rest_index = 0; + args->rest_dupped = 1; + args->argc = 0; + } +} +static inline const VALUE * +args_rest_argv(struct args_info *args) +{ + return rb_array_const_ptr_transient(args->rest) + args->rest_index; +} +static inline VALUE +args_rest_array(struct args_info *args) +{ + VALUE ary; + if (args->rest) { + ary = rb_ary_behead(args->rest, args->rest_index); + args->rest_index = 0; + args->rest = 0; + } + else { + ary = rb_ary_new(); + } + return ary; +} +static int +args_kw_argv_to_hash(struct args_info *args) +{ + const struct rb_callinfo_kwarg *kw_arg = args->kw_arg; + const VALUE *const passed_keywords = kw_arg->keywords; + const int kw_len = kw_arg->keyword_len; + VALUE h = rb_hash_new_with_size(kw_len); + const int kw_start = args->argc - kw_len; + const VALUE * const kw_argv = args->argv + kw_start; + int i; + args->argc = kw_start + 1; + for (i=0; iargv[args->argc - 1] = h; + return args->argc; +} +static inline void +args_setup_lead_parameters(struct args_info *args, int argc, VALUE *locals) +{ + if (args->argc >= argc) { + args->argc -= argc; + args->argv += argc; + } + else { + int i, j; + const VALUE *argv = args_rest_argv(args); + for (i=args->argc, j=0; irest_index += argc - args->argc; + args->argc = 0; + } +} +static inline void +args_setup_post_parameters(struct args_info *args, int argc, VALUE *locals) +{ + long len; + len = rb_array_len(args->rest); + ruby_nonempty_memcpy((locals), (rb_array_const_ptr_transient(args->rest) + len - argc), rbimpl_size_mul_or_raise(sizeof(VALUE), (argc))); + rb_ary_resize(args->rest, len - argc); +} +static inline int +args_setup_opt_parameters(struct args_info *args, int opt_max, VALUE *locals) +{ + int i; + if (args->argc >= opt_max) { + args->argc -= opt_max; + args->argv += opt_max; + i = opt_max; + } + else { + int j; + i = args->argc; + args->argc = 0; + if (args->rest) { + int len = RARRAY_LENINT(args->rest); + const VALUE *argv = rb_array_const_ptr_transient(args->rest); + for (; irest_index < len; i++, args->rest_index++) { + locals[i] = argv[args->rest_index]; + } + } + for (j=i; jbody)->param.keyword->table; + const int req_key_num = ((iseq)->body)->param.keyword->required_num; + const int key_num = ((iseq)->body)->param.keyword->num; + const VALUE * const default_values = ((iseq)->body)->param.keyword->default_values; + VALUE missing = 0; + int i, di, found = 0; + int unspecified_bits = 0; + VALUE unspecified_bits_value = ((VALUE)RUBY_Qnil); + for (i=0; ibody)->param.flags.has_kwrest) { + const int rest_hash_index = key_num + 1; + locals[rest_hash_index] = make_rest_kw_hash(passed_keywords, passed_keyword_len, passed_values); + } + else { + if (found != passed_keyword_len) { + VALUE keys = make_unknown_kw_hash(passed_keywords, passed_keyword_len, passed_values); + argument_kw_error(ec, iseq, "unknown", keys); + } + } + if (RB_NIL_P(unspecified_bits_value)) { + unspecified_bits_value = __builtin_choose_expr( __builtin_constant_p(unspecified_bits), ((VALUE)(unspecified_bits)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(unspecified_bits)); + } + locals[key_num] = unspecified_bits_value; +} +static inline void +args_setup_kw_rest_parameter(VALUE keyword_hash, VALUE *locals, int kw_flag) +{ + if (RB_NIL_P(keyword_hash)) { + keyword_hash = rb_hash_new(); + } + else if (!(kw_flag & (0x01 << VM_CALL_KW_SPLAT_MUT_bit))) { + keyword_hash = rb_hash_dup(keyword_hash); + } + locals[0] = keyword_hash; +} +static inline void +args_setup_block_parameter(const rb_execution_context_t *ec, struct rb_calling_info *calling, VALUE *locals) +{ + VALUE block_handler = calling->block_handler; + *locals = rb_vm_bh_to_procval(ec, block_handler); +} +struct fill_values_arg { + VALUE *keys; + VALUE *vals; + int argc; +}; +static int +fill_keys_values(st_data_t key, st_data_t val, st_data_t ptr) +{ + struct fill_values_arg *arg = (struct fill_values_arg *)ptr; + int i = arg->argc++; + arg->keys[i] = (VALUE)key; + arg->vals[i] = (VALUE)val; + return ST_CONTINUE; +} +static inline int +ignore_keyword_hash_p(VALUE keyword_hash, const rb_iseq_t * const iseq, unsigned int * kw_flag, VALUE * converted_keyword_hash) +{ + if (!(__builtin_constant_p(RUBY_T_HASH) ? rbimpl_RB_TYPE_P_fastpath((keyword_hash), (RUBY_T_HASH)) : (RB_TYPE_P)((keyword_hash), (RUBY_T_HASH)))) { + keyword_hash = rb_to_hash_type(keyword_hash); + } + if (!(*kw_flag & (0x01 << VM_CALL_KW_SPLAT_MUT_bit)) && + (((iseq)->body)->param.flags.has_kwrest || + ((iseq)->body)->param.flags.ruby2_keywords)) { + *kw_flag |= (0x01 << VM_CALL_KW_SPLAT_MUT_bit); + keyword_hash = rb_hash_dup(keyword_hash); + } + *converted_keyword_hash = keyword_hash; + return !(((iseq)->body)->param.flags.has_kw) && + !(((iseq)->body)->param.flags.has_kwrest) && + RHASH_EMPTY_P(keyword_hash); +} +COLDFUNC static int +setup_parameters_complex(rb_execution_context_t * const ec, const rb_iseq_t * const iseq, + struct rb_calling_info *const calling, + const struct rb_callinfo *ci, + VALUE * const locals, const enum arg_setup_type arg_setup_type) { + const int min_argc = ((iseq)->body)->param.lead_num + ((iseq)->body)->param.post_num; + const int max_argc = (((iseq)->body)->param.flags.has_rest == 0) ? min_argc + ((iseq)->body)->param.opt_num : (-1); + int given_argc; + unsigned int kw_flag = vm_ci_flag(ci) & ((0x01 << VM_CALL_KWARG_bit) | (0x01 << VM_CALL_KW_SPLAT_bit) | (0x01 << VM_CALL_KW_SPLAT_MUT_bit)); + int opt_pc = 0, allow_autosplat = !kw_flag; + struct args_info args_body, *args; + VALUE keyword_hash = ((VALUE)RUBY_Qnil); + VALUE * const orig_sp = ec->cfp->sp; + unsigned int i; + VALUE flag_keyword_hash = 0; + VALUE splat_flagged_keyword_hash = 0; + VALUE converted_keyword_hash = 0; + VALUE rest_last = 0; + ; + for (i=calling->argc; i<((iseq)->body)->param.size; i++) { + locals[i] = ((VALUE)RUBY_Qnil); + } + ec->cfp->sp = &locals[i]; + args = &args_body; + given_argc = args->argc = calling->argc; + args->argv = locals; + args->rest_dupped = 0; + if (kw_flag & (0x01 << VM_CALL_KWARG_bit)) { + args->kw_arg = vm_ci_kwarg(ci); + if (((iseq)->body)->param.flags.has_kw) { + int kw_len = args->kw_arg->keyword_len; + args->kw_argv = ((VALUE *)__builtin_alloca(rbimpl_size_mul_or_raise(sizeof(VALUE), (kw_len)))); + args->argc -= kw_len; + given_argc -= kw_len; + ruby_nonempty_memcpy((args->kw_argv), (locals + args->argc), rbimpl_size_mul_or_raise(sizeof(VALUE), (kw_len))); + } + else { + args->kw_argv = ((void*)0); + given_argc = args_kw_argv_to_hash(args); + kw_flag |= (0x01 << VM_CALL_KW_SPLAT_bit) | (0x01 << VM_CALL_KW_SPLAT_MUT_bit); + } + } + else { + args->kw_arg = ((void*)0); + args->kw_argv = ((void*)0); + } + if (vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_SPLAT_bit)) { + int len; + args->rest = locals[--args->argc]; + args->rest_index = 0; + len = RARRAY_LENINT(args->rest); + given_argc += len - 1; + rest_last = RARRAY_AREF(args->rest, len - 1); + if (!kw_flag && len > 0) { + if ((__builtin_constant_p(RUBY_T_HASH) ? rbimpl_RB_TYPE_P_fastpath((rest_last), (RUBY_T_HASH)) : (RB_TYPE_P)((rest_last), (RUBY_T_HASH))) && + (((struct RHash *)rest_last)->basic.flags & RHASH_PASS_AS_KEYWORDS)) { + splat_flagged_keyword_hash = rest_last; + rest_last = rb_hash_dup(rest_last); + kw_flag |= (0x01 << VM_CALL_KW_SPLAT_bit) | (0x01 << VM_CALL_KW_SPLAT_MUT_bit); + } + else { + rest_last = 0; + } + } + if (kw_flag & (0x01 << VM_CALL_KW_SPLAT_bit)) { + if (ignore_keyword_hash_p(rest_last, iseq, &kw_flag, &converted_keyword_hash)) { + arg_rest_dup(args); + rb_ary_pop(args->rest); + given_argc--; + kw_flag &= ~((0x01 << VM_CALL_KW_SPLAT_bit) | (0x01 << VM_CALL_KW_SPLAT_MUT_bit)); + } + else { + if (rest_last != converted_keyword_hash) { + rest_last = converted_keyword_hash; + arg_rest_dup(args); + RARRAY_ASET(args->rest, len - 1, rest_last); + } + if (((iseq)->body)->param.flags.ruby2_keywords && rest_last) { + flag_keyword_hash = rest_last; + } + else if (((iseq)->body)->param.flags.has_kw || ((iseq)->body)->param.flags.has_kwrest) { + arg_rest_dup(args); + rb_ary_pop(args->rest); + given_argc--; + keyword_hash = rest_last; + } + } + } + } + else { + if (kw_flag & (0x01 << VM_CALL_KW_SPLAT_bit)) { + VALUE last_arg = args->argv[args->argc-1]; + if (ignore_keyword_hash_p(last_arg, iseq, &kw_flag, &converted_keyword_hash)) { + args->argc--; + given_argc--; + kw_flag &= ~((0x01 << VM_CALL_KW_SPLAT_bit) | (0x01 << VM_CALL_KW_SPLAT_MUT_bit)); + } + else { + if (last_arg != converted_keyword_hash) { + last_arg = converted_keyword_hash; + args->argv[args->argc-1] = last_arg; + } + if (((iseq)->body)->param.flags.ruby2_keywords) { + flag_keyword_hash = last_arg; + } + else if (((iseq)->body)->param.flags.has_kw || ((iseq)->body)->param.flags.has_kwrest) { + args->argc--; + given_argc--; + keyword_hash = last_arg; + } + } + } + args->rest = ((VALUE)RUBY_Qfalse); + } + if (flag_keyword_hash && (__builtin_constant_p(RUBY_T_HASH) ? rbimpl_RB_TYPE_P_fastpath((flag_keyword_hash), (RUBY_T_HASH)) : (RB_TYPE_P)((flag_keyword_hash), (RUBY_T_HASH)))) { + ((struct RHash *)flag_keyword_hash)->basic.flags |= RHASH_PASS_AS_KEYWORDS; + } + if (kw_flag && ((iseq)->body)->param.flags.accepts_no_kwarg) { + rb_raise(rb_eArgError, "no keywords accepted"); + } + switch (arg_setup_type) { + case arg_setup_method: + break; + case arg_setup_block: + if (given_argc == (RB_NIL_P(keyword_hash) ? 1 : 2) && + allow_autosplat && + (min_argc > 0 || ((iseq)->body)->param.opt_num > 1) && + !((iseq)->body)->param.flags.ambiguous_param0 && + !((((iseq)->body)->param.flags.has_kw || + ((iseq)->body)->param.flags.has_kwrest) + && max_argc == 1) && + args_check_block_arg0(args)) { + given_argc = RARRAY_LENINT(args->rest); + } + break; + } + if (given_argc < min_argc) { + if (arg_setup_type == arg_setup_block) { + do { __extension__ _Static_assert(sizeof(*((ec->cfp)->sp)) == sizeof(VALUE), "sizeof_sp" ": " "sizeof(*((ec->cfp)->sp)) == sizeof(VALUE)"); __extension__ _Static_assert(sizeof(*((ec->cfp))) == sizeof(rb_control_frame_t), "sizeof_cfp" ": " "sizeof(*((ec->cfp))) == sizeof(rb_control_frame_t)"); const struct rb_control_frame_struct *bound = (void *)&((ec->cfp)->sp)[((min_argc))]; if ((__builtin_expect(!!(((ec->cfp)) <= &bound[1]), 0))) { vm_stackoverflow(); } } while (0); + given_argc = min_argc; + args_extend(args, min_argc); + } + else { + argument_arity_error(ec, iseq, given_argc, min_argc, max_argc); + } + } + if (given_argc > max_argc && max_argc != (-1)) { + if (arg_setup_type == arg_setup_block) { + args_reduce(args, given_argc - max_argc); + given_argc = max_argc; + } + else { + argument_arity_error(ec, iseq, given_argc, min_argc, max_argc); + } + } + if (((iseq)->body)->param.flags.has_lead) { + args_setup_lead_parameters(args, ((iseq)->body)->param.lead_num, locals + 0); + } + if (((iseq)->body)->param.flags.has_rest || ((iseq)->body)->param.flags.has_post){ + args_copy(args); + } + if (((iseq)->body)->param.flags.has_post) { + args_setup_post_parameters(args, ((iseq)->body)->param.post_num, locals + ((iseq)->body)->param.post_start); + } + if (((iseq)->body)->param.flags.has_opt) { + int opt = args_setup_opt_parameters(args, ((iseq)->body)->param.opt_num, locals + ((iseq)->body)->param.lead_num); + opt_pc = (int)((iseq)->body)->param.opt_table[opt]; + } + if (((iseq)->body)->param.flags.has_rest) { + args_setup_rest_parameter(args, locals + ((iseq)->body)->param.rest_start); + VALUE ary = *(locals + ((iseq)->body)->param.rest_start); + VALUE index = rb_array_len(ary) - 1; + if (splat_flagged_keyword_hash && + !((iseq)->body)->param.flags.ruby2_keywords && + !((iseq)->body)->param.flags.has_kw && + !((iseq)->body)->param.flags.has_kwrest && + RARRAY_AREF(ary, index) == splat_flagged_keyword_hash) { + ((struct RHash *)rest_last)->basic.flags &= ~RHASH_PASS_AS_KEYWORDS; + RARRAY_ASET(ary, index, rest_last); + } + } + if (((iseq)->body)->param.flags.has_kw) { + VALUE * const klocals = locals + ((iseq)->body)->param.keyword->bits_start - ((iseq)->body)->param.keyword->num; + if (args->kw_argv != ((void*)0)) { + const struct rb_callinfo_kwarg *kw_arg = args->kw_arg; + args_setup_kw_parameters(ec, iseq, args->kw_argv, kw_arg->keyword_len, kw_arg->keywords, klocals); + } + else if (!RB_NIL_P(keyword_hash)) { + int kw_len = rb_long2int_inline(RHASH_SIZE(keyword_hash)); + struct fill_values_arg arg; + arg.keys = args->kw_argv = ((VALUE *)__builtin_alloca(rbimpl_size_mul_or_raise(sizeof(VALUE), (kw_len * 2)))); + arg.vals = arg.keys + kw_len; + arg.argc = 0; + rb_hash_foreach(keyword_hash, fill_keys_values, (VALUE)&arg); + ((void)0); + args_setup_kw_parameters(ec, iseq, arg.vals, kw_len, arg.keys, klocals); + } + else { + ((void)0); + args_setup_kw_parameters(ec, iseq, ((void*)0), 0, ((void*)0), klocals); + } + } + else if (((iseq)->body)->param.flags.has_kwrest) { + args_setup_kw_rest_parameter(keyword_hash, locals + ((iseq)->body)->param.keyword->rest_start, kw_flag); + } + else if (!RB_NIL_P(keyword_hash) && RHASH_SIZE(keyword_hash) > 0 && arg_setup_type == arg_setup_method) { + argument_kw_error(ec, iseq, "unknown", rb_hash_keys(keyword_hash)); + } + if (((iseq)->body)->param.flags.has_block) { + if (((iseq)->body)->local_iseq == iseq) { + } + else { + args_setup_block_parameter(ec, calling, locals + ((iseq)->body)->param.block_start); + } + } + ec->cfp->sp = orig_sp; + return opt_pc; +} +static void +raise_argument_error(rb_execution_context_t *ec, const rb_iseq_t *iseq, const VALUE exc) +{ + VALUE at; + if (iseq) { + vm_push_frame(ec, iseq, VM_FRAME_MAGIC_DUMMY | VM_ENV_FLAG_LOCAL, ((VALUE)RUBY_Qnil) , + 0 , ((VALUE)RUBY_Qfalse) , + ((iseq)->body)->iseq_encoded, + ec->cfp->sp, 0, 0 ); + at = rb_ec_backtrace_object(ec); + rb_backtrace_use_iseq_first_lineno_for_last_location(at); + rb_vm_pop_frame(ec); + } + else { + at = rb_ec_backtrace_object(ec); + } + rb_ivar_set(exc, idBt_locations, at); + rb_exc_set_backtrace(exc, at); + rb_exc_raise(exc); +} +static void +argument_arity_error(rb_execution_context_t *ec, const rb_iseq_t *iseq, const int miss_argc, const int min_argc, const int max_argc) +{ + VALUE exc = rb_arity_error_new(miss_argc, min_argc, max_argc); + if (((iseq)->body)->param.flags.has_kw) { + const struct rb_iseq_param_keyword *const kw = ((iseq)->body)->param.keyword; + const ID *keywords = kw->table; + int req_key_num = kw->required_num; + if (req_key_num > 0) { + static const char required[] = "; required keywords"; + VALUE mesg = rb_attr_get(exc, idMesg); + rb_str_resize(mesg, RSTRING_LEN(mesg)-1); + rb_str_cat(mesg, required, sizeof(required) - 1 - (req_key_num == 1)); + ((__builtin_constant_p(":") ? rbimpl_str_cat_cstr : rb_str_cat_cstr) ((mesg), (":"))); + do { + ((__builtin_constant_p(" ") ? rbimpl_str_cat_cstr : rb_str_cat_cstr) ((mesg), (" "))); + rb_str_append(mesg, rb_id2str(*keywords++)); + ((__builtin_constant_p(",") ? rbimpl_str_cat_cstr : rb_str_cat_cstr) ((mesg), (","))); + } while (--req_key_num); + RSTRING_PTR(mesg)[RSTRING_LEN(mesg)-1] = ')'; + } + } + raise_argument_error(ec, iseq, exc); +} +static void +argument_kw_error(rb_execution_context_t *ec, const rb_iseq_t *iseq, const char *error, const VALUE keys) +{ + raise_argument_error(ec, iseq, rb_keyword_error_new(error, keys)); +} +static inline void +vm_caller_setup_arg_splat(rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + int argc = calling->argc; + VALUE *argv = cfp->sp - argc; + VALUE ary = argv[argc-1]; + ; + cfp->sp--; + if (!RB_NIL_P(ary)) { + const VALUE *ptr = rb_array_const_ptr_transient(ary); + long len = rb_array_len(ary), i; + do { __extension__ _Static_assert(sizeof(*((cfp)->sp)) == sizeof(VALUE), "sizeof_sp" ": " "sizeof(*((cfp)->sp)) == sizeof(VALUE)"); __extension__ _Static_assert(sizeof(*((cfp))) == sizeof(rb_control_frame_t), "sizeof_cfp" ": " "sizeof(*((cfp))) == sizeof(rb_control_frame_t)"); const struct rb_control_frame_struct *bound = (void *)&((cfp)->sp)[((len))]; if ((__builtin_expect(!!(((cfp)) <= &bound[1]), 0))) { vm_stackoverflow(); } } while (0); + for (i = 0; i < len; i++) { + *cfp->sp++ = ptr[i]; + } + calling->argc += i - 1; + } +} +static inline void +vm_caller_setup_arg_kw(rb_control_frame_t *cfp, struct rb_calling_info *calling, const struct rb_callinfo *ci) +{ + const VALUE *const passed_keywords = vm_ci_kwarg(ci)->keywords; + const int kw_len = vm_ci_kwarg(ci)->keyword_len; + const VALUE h = rb_hash_new_with_size(kw_len); + VALUE *sp = cfp->sp; + int i; + for (i=0; isp -= kw_len - 1; + calling->argc -= kw_len - 1; + calling->kw_splat = 1; +} +static VALUE +vm_to_proc(VALUE proc) +{ + if ((__builtin_expect(!!(!rb_obj_is_proc(proc)), 0))) { + VALUE b; + const rb_callable_method_entry_t *me = + rb_callable_method_entry_with_refinements(rb_class_of(proc), idTo_proc, ((void*)0)); + if (me) { + b = rb_vm_call0(rb_current_execution_context(1), proc, idTo_proc, 0, ((void*)0), me, 0); + } + else { + b = rb_check_convert_type_with_id(proc, RUBY_T_DATA, "Proc", idTo_proc); + } + if (RB_NIL_P(b) || !rb_obj_is_proc(b)) { + rb_raise(rb_eTypeError, + "wrong argument type %s (expected Proc)", + rb_obj_classname(proc)); + } + return b; + } + else { + return proc; + } +} +static VALUE +refine_sym_proc_call(VALUE yielded_arg, VALUE callback_arg, int argc, const VALUE *argv, VALUE blockarg) +{ + VALUE obj; + ID mid; + const rb_callable_method_entry_t *me = 0; + rb_execution_context_t *ec; + const VALUE symbol = RARRAY_AREF(callback_arg, 0); + const VALUE refinements = RARRAY_AREF(callback_arg, 1); + int kw_splat = rb_keyword_given_p(); + VALUE klass; + if (argc-- < 1) { + rb_raise(rb_eArgError, "no receiver given"); + } + obj = *argv++; + mid = rb_sym2id(symbol); + for (klass = rb_class_of(obj); klass; klass = RCLASS_SUPER(klass)) { + me = rb_callable_method_entry(klass, mid); + if (me) { + me = rb_resolve_refined_method_callable(refinements, me); + if (me) break; + } + } + ec = rb_current_execution_context(1); + if (!RB_NIL_P(blockarg)) { + vm_passed_block_handler_set(ec, blockarg); + } + if (!me) { + return method_missing(ec, obj, mid, argc, argv, MISSING_NOENTRY, kw_splat); + } + return rb_vm_call0(ec, obj, mid, argc, argv, me, kw_splat); +} +static VALUE +vm_caller_setup_arg_block(const rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + const struct rb_callinfo *ci, const rb_iseq_t *blockiseq, const int is_super) +{ + if (vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_BLOCKARG_bit)) { + VALUE block_code = *(--reg_cfp->sp); + if (RB_NIL_P(block_code)) { + return 0; + } + else if (block_code == rb_block_param_proxy) { + ((void)0); + VALUE handler = VM_CF_BLOCK_HANDLER(reg_cfp); + reg_cfp->block_code = (const void *) handler; + return handler; + } + else if (RB_SYMBOL_P(block_code) && rb_method_basic_definition_p(rb_cSymbol, idTo_proc)) { + const rb_cref_t *cref = vm_env_cref(reg_cfp->ep); + if (cref && !RB_NIL_P(cref->refinements)) { + VALUE ref = cref->refinements; + VALUE func = rb_hash_lookup(ref, block_code); + if (RB_NIL_P(func)) { + VALUE callback_arg = rb_ary_hidden_new(2); + rb_ary_push(callback_arg, block_code); + rb_ary_push(callback_arg, ref); + RB_OBJ_FREEZE_RAW(callback_arg); + func = rb_func_lambda_new(refine_sym_proc_call, callback_arg, 1, (-1)); + rb_hash_aset(ref, block_code, func); + } + block_code = func; + } + return block_code; + } + else { + return vm_to_proc(block_code); + } + } + else if (blockiseq != ((void*)0)) { + struct rb_captured_block *captured = VM_CFP_TO_CAPTURED_BLOCK(reg_cfp); + captured->code.iseq = blockiseq; + return VM_BH_FROM_ISEQ_BLOCK(captured); + } + else { + if (is_super) { + return ((VM_EP_LEP(((((reg_cfp)->ep)))))[(-1)]); + } + else { + return 0; + } + } +} + +static inline VALUE vm_call_iseq_setup_2(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, int opt_pc, int param_size, int local_size); +__attribute__ ((__always_inline__)) static VALUE vm_call_iseq_setup_normal(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, const rb_callable_method_entry_t *me, int opt_pc, int param_size, int local_size); +static inline VALUE vm_call_iseq_setup_tailcall(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, int opt_pc); +static VALUE vm_call_super_method(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling); +static VALUE vm_call_method_nome(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling); +static VALUE vm_call_method_each_type(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling); +static inline VALUE vm_call_method(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling); +static vm_call_handler vm_call_iseq_setup_func(const struct rb_callinfo *ci, const int param_size, const int local_size); +static VALUE +vm_call_iseq_setup_tailcall_0start(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_tailcall(ec, cfp, calling, 0); +} +static VALUE +vm_call_iseq_setup_normal_0start(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + const struct rb_callcache *cc = calling->cc; + const rb_iseq_t *iseq = def_iseq_ptr(vm_cc_cme(cc)->def); + int param = ((iseq)->body)->param.size; + int local = ((iseq)->body)->local_table_size; + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(cc), 0, param, local); +} +static _Bool +rb_simple_iseq_p(const rb_iseq_t *iseq) +{ + return ((iseq)->body)->param.flags.has_opt == 0 && + ((iseq)->body)->param.flags.has_rest == 0 && + ((iseq)->body)->param.flags.has_post == 0 && + ((iseq)->body)->param.flags.has_kw == 0 && + ((iseq)->body)->param.flags.has_kwrest == 0 && + ((iseq)->body)->param.flags.accepts_no_kwarg == 0 && + ((iseq)->body)->param.flags.has_block == 0; +}static inline +__attribute__ ((__visibility__("default"))) _Bool +rb_iseq_only_optparam_p(const rb_iseq_t *iseq) +{ + return ((iseq)->body)->param.flags.has_opt == 1 && + ((iseq)->body)->param.flags.has_rest == 0 && + ((iseq)->body)->param.flags.has_post == 0 && + ((iseq)->body)->param.flags.has_kw == 0 && + ((iseq)->body)->param.flags.has_kwrest == 0 && + ((iseq)->body)->param.flags.accepts_no_kwarg == 0 && + ((iseq)->body)->param.flags.has_block == 0; +}static inline +__attribute__ ((__visibility__("default"))) _Bool +rb_iseq_only_kwparam_p(const rb_iseq_t *iseq) +{ + return ((iseq)->body)->param.flags.has_opt == 0 && + ((iseq)->body)->param.flags.has_rest == 0 && + ((iseq)->body)->param.flags.has_post == 0 && + ((iseq)->body)->param.flags.has_kw == 1 && + ((iseq)->body)->param.flags.has_kwrest == 0 && + ((iseq)->body)->param.flags.has_block == 0; +} +static _Bool +rb_splat_or_kwargs_p(const struct rb_callinfo *__restrict__ ci) +{ + return (vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_SPLAT_bit)) || (vm_ci_flag(ci) & ((0x01 << VM_CALL_KWARG_bit) | (0x01 << VM_CALL_KW_SPLAT_bit))); +} +static inline void +CALLER_SETUP_ARG(struct rb_control_frame_struct *__restrict__ cfp, + struct rb_calling_info *__restrict__ calling, + const struct rb_callinfo *__restrict__ ci) +{ + if ((__builtin_expect(!!((vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_SPLAT_bit))), 0))) { + VALUE final_hash; + vm_caller_setup_arg_splat(cfp, calling); + if (!(vm_ci_flag(ci) & ((0x01 << VM_CALL_KWARG_bit) | (0x01 << VM_CALL_KW_SPLAT_bit))) && + calling->argc > 0 && + (__builtin_constant_p(RUBY_T_HASH) ? rbimpl_RB_TYPE_P_fastpath(((final_hash = *(cfp->sp - 1))), (RUBY_T_HASH)) : (RB_TYPE_P)(((final_hash = *(cfp->sp - 1))), (RUBY_T_HASH))) && + (((struct RHash *)final_hash)->basic.flags & RHASH_PASS_AS_KEYWORDS)) { + *(cfp->sp - 1) = rb_hash_dup(final_hash); + calling->kw_splat = 1; + } + } + if ((__builtin_expect(!!((vm_ci_flag(ci) & ((0x01 << VM_CALL_KWARG_bit) | (0x01 << VM_CALL_KW_SPLAT_bit)))), 0))) { + if ((vm_ci_flag(ci) & (0x01 << VM_CALL_KWARG_bit))) { + vm_caller_setup_arg_kw(cfp, calling, ci); + } + else { + VALUE keyword_hash = cfp->sp[-1]; + if (!(__builtin_constant_p(RUBY_T_HASH) ? rbimpl_RB_TYPE_P_fastpath((keyword_hash), (RUBY_T_HASH)) : (RB_TYPE_P)((keyword_hash), (RUBY_T_HASH)))) { + cfp->sp[-1] = rb_hash_dup(rb_to_hash_type(keyword_hash)); + } + else if (!(vm_ci_flag(ci) & (0x01 << VM_CALL_KW_SPLAT_MUT_bit))) { + cfp->sp[-1] = rb_hash_dup(keyword_hash); + } + } + } +} +static inline void +CALLER_REMOVE_EMPTY_KW_SPLAT(struct rb_control_frame_struct *__restrict__ cfp, + struct rb_calling_info *__restrict__ calling, + const struct rb_callinfo *__restrict__ ci) +{ + if ((__builtin_expect(!!(calling->kw_splat), 0))) { + if (RHASH_EMPTY_P(cfp->sp[-1])) { + cfp->sp--; + calling->argc--; + calling->kw_splat = 0; + } + } +} +static VALUE +vm_call_iseq_setup_normal_opt_start(rb_execution_context_t *ec, rb_control_frame_t *cfp, + struct rb_calling_info *calling) +{ + const struct rb_callcache *cc = calling->cc; + const rb_iseq_t *iseq = def_iseq_ptr(vm_cc_cme(cc)->def); + const int lead_num = ((iseq)->body)->param.lead_num; + const int opt = calling->argc - lead_num; + const int opt_num = ((iseq)->body)->param.opt_num; + const int opt_pc = (int)((iseq)->body)->param.opt_table[opt]; + const int param = ((iseq)->body)->param.size; + const int local = ((iseq)->body)->local_table_size; + const int delta = opt_num - opt; + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(cc), opt_pc, param - delta, local); +} +static VALUE +vm_call_iseq_setup_tailcall_opt_start(rb_execution_context_t *ec, rb_control_frame_t *cfp, + struct rb_calling_info *calling) +{ + const struct rb_callcache *cc = calling->cc; + const rb_iseq_t *iseq = def_iseq_ptr(vm_cc_cme(cc)->def); + const int lead_num = ((iseq)->body)->param.lead_num; + const int opt = calling->argc - lead_num; + const int opt_pc = (int)((iseq)->body)->param.opt_table[opt]; + ((void)0); + return vm_call_iseq_setup_tailcall(ec, cfp, calling, opt_pc); +} +static void +args_setup_kw_parameters(rb_execution_context_t *const ec, const rb_iseq_t *const iseq, + VALUE *const passed_values, const int passed_keyword_len, const VALUE *const passed_keywords, + VALUE *const locals); +static VALUE +vm_call_iseq_setup_kwparm_kwarg(rb_execution_context_t *ec, rb_control_frame_t *cfp, + struct rb_calling_info *calling) +{ + const struct rb_callinfo *ci = calling->ci; + const struct rb_callcache *cc = calling->cc; + ((void)0); + ((void)0); + const rb_iseq_t *iseq = def_iseq_ptr(vm_cc_cme(cc)->def); + const struct rb_iseq_param_keyword *kw_param = ((iseq)->body)->param.keyword; + const struct rb_callinfo_kwarg *kw_arg = vm_ci_kwarg(ci); + const int ci_kw_len = kw_arg->keyword_len; + const VALUE * const ci_keywords = kw_arg->keywords; + VALUE *argv = cfp->sp - calling->argc; + VALUE *const klocals = argv + kw_param->bits_start - kw_param->num; + const int lead_num = ((iseq)->body)->param.lead_num; + VALUE * const ci_kws = ((VALUE *)__builtin_alloca(rbimpl_size_mul_or_raise(sizeof(VALUE), (ci_kw_len)))); + ruby_nonempty_memcpy((ci_kws), (argv + lead_num), rbimpl_size_mul_or_raise(sizeof(VALUE), (ci_kw_len))); + args_setup_kw_parameters(ec, iseq, ci_kws, ci_kw_len, ci_keywords, klocals); + int param = ((iseq)->body)->param.size; + int local = ((iseq)->body)->local_table_size; + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(cc), 0, param, local); +} +static VALUE +vm_call_iseq_setup_kwparm_nokwarg(rb_execution_context_t *ec, rb_control_frame_t *cfp, + struct rb_calling_info *calling) +{ + const struct rb_callinfo *__attribute__ ((__unused__)) ci = calling->ci; + const struct rb_callcache *cc = calling->cc; + ((void)0); + ((void)0); + const rb_iseq_t *iseq = def_iseq_ptr(vm_cc_cme(cc)->def); + const struct rb_iseq_param_keyword *kw_param = ((iseq)->body)->param.keyword; + VALUE * const argv = cfp->sp - calling->argc; + VALUE * const klocals = argv + kw_param->bits_start - kw_param->num; + int i; + for (i=0; inum; i++) { + klocals[i] = kw_param->default_values[i]; + } + klocals[i] = __builtin_choose_expr( __builtin_constant_p(0), ((VALUE)(0)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(0)); + int param = ((iseq)->body)->param.size; + int local = ((iseq)->body)->local_table_size; + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(cc), 0, param, local); +} +static inline int +vm_callee_setup_arg(rb_execution_context_t *ec, struct rb_calling_info *calling, + const rb_iseq_t *iseq, VALUE *argv, int param_size, int local_size) +{ + const struct rb_callinfo *ci = calling->ci; + const struct rb_callcache *cc = calling->cc; + _Bool cacheable_ci = vm_ci_markable(ci); + if ((__builtin_expect(!!(!(vm_ci_flag(ci) & (0x01 << VM_CALL_KW_SPLAT_bit))), 1))) { + if ((__builtin_expect(!!(rb_simple_iseq_p(iseq)), 1))) { + rb_control_frame_t *cfp = ec->cfp; + CALLER_SETUP_ARG(cfp, calling, ci); + CALLER_REMOVE_EMPTY_KW_SPLAT(cfp, calling, ci); + if (calling->argc != ((iseq)->body)->param.lead_num) { + argument_arity_error(ec, iseq, calling->argc, ((iseq)->body)->param.lead_num, ((iseq)->body)->param.lead_num); + } + ((void)0); + ((void)0); + CC_SET_FASTPATH(cc, vm_call_iseq_setup_func(ci, param_size, local_size), cacheable_ci && vm_call_iseq_optimizable_p(ci, cc)); + return 0; + } + else if (rb_iseq_only_optparam_p(iseq)) { + rb_control_frame_t *cfp = ec->cfp; + CALLER_SETUP_ARG(cfp, calling, ci); + CALLER_REMOVE_EMPTY_KW_SPLAT(cfp, calling, ci); + const int lead_num = ((iseq)->body)->param.lead_num; + const int opt_num = ((iseq)->body)->param.opt_num; + const int argc = calling->argc; + const int opt = argc - lead_num; + if (opt < 0 || opt > opt_num) { + argument_arity_error(ec, iseq, argc, lead_num, lead_num + opt_num); + } + if ((__builtin_expect(!!(!(vm_ci_flag(ci) & (0x01 << VM_CALL_TAILCALL_bit))), 1))) { + CC_SET_FASTPATH(cc, vm_call_iseq_setup_normal_opt_start, + !(vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_SPLAT_bit)) && !(vm_ci_flag(ci) & (0x01 << VM_CALL_KWARG_bit)) && + cacheable_ci && vm_call_cacheable(ci, cc)); + } + else { + CC_SET_FASTPATH(cc, vm_call_iseq_setup_tailcall_opt_start, + !(vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_SPLAT_bit)) && !(vm_ci_flag(ci) & (0x01 << VM_CALL_KWARG_bit)) && + cacheable_ci && vm_call_cacheable(ci, cc)); + } + ((void)0); + for (int i=argc; ibody)->param.opt_table[opt]; + } + else if (rb_iseq_only_kwparam_p(iseq) && !(vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_SPLAT_bit))) { + const int lead_num = ((iseq)->body)->param.lead_num; + const int argc = calling->argc; + const struct rb_iseq_param_keyword *kw_param = ((iseq)->body)->param.keyword; + if (vm_ci_flag(ci) & (0x01 << VM_CALL_KWARG_bit)) { + const struct rb_callinfo_kwarg *kw_arg = vm_ci_kwarg(ci); + if (argc - kw_arg->keyword_len == lead_num) { + const int ci_kw_len = kw_arg->keyword_len; + const VALUE * const ci_keywords = kw_arg->keywords; + VALUE * const ci_kws = ((VALUE *)__builtin_alloca(rbimpl_size_mul_or_raise(sizeof(VALUE), (ci_kw_len)))); + ruby_nonempty_memcpy((ci_kws), (argv + lead_num), rbimpl_size_mul_or_raise(sizeof(VALUE), (ci_kw_len))); + VALUE *const klocals = argv + kw_param->bits_start - kw_param->num; + args_setup_kw_parameters(ec, iseq, ci_kws, ci_kw_len, ci_keywords, klocals); + CC_SET_FASTPATH(cc, vm_call_iseq_setup_kwparm_kwarg, + cacheable_ci && vm_call_cacheable(ci, cc)); + return 0; + } + } + else if (argc == lead_num) { + VALUE *const klocals = argv + kw_param->bits_start - kw_param->num; + args_setup_kw_parameters(ec, iseq, ((void*)0), 0, ((void*)0), klocals); + if (klocals[kw_param->num] == __builtin_choose_expr( __builtin_constant_p(0), ((VALUE)(0)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(0))) { + CC_SET_FASTPATH(cc, vm_call_iseq_setup_kwparm_nokwarg, + cacheable_ci && vm_call_cacheable(ci, cc)); + } + return 0; + } + } + } + return setup_parameters_complex(ec, iseq, calling, ci, argv, arg_setup_method); +} +COLDFUNC static VALUE +vm_call_iseq_setup(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) { + ((void)0); + const struct rb_callcache *cc = calling->cc; + const rb_iseq_t *iseq = def_iseq_ptr(vm_cc_cme(cc)->def); + const int param_size = ((iseq)->body)->param.size; + const int local_size = ((iseq)->body)->local_table_size; + const int opt_pc = vm_callee_setup_arg(ec, calling, def_iseq_ptr(vm_cc_cme(cc)->def), cfp->sp - calling->argc, param_size, local_size); + return vm_call_iseq_setup_2(ec, cfp, calling, opt_pc, param_size, local_size); +} +COLDFUNC static VALUE +vm_call_iseq_setup_2(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, + int opt_pc, int param_size, int local_size) { + const struct rb_callinfo *ci = calling->ci; + const struct rb_callcache *cc = calling->cc; + if ((__builtin_expect(!!(!(vm_ci_flag(ci) & (0x01 << VM_CALL_TAILCALL_bit))), 1))) { + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(cc), opt_pc, param_size, local_size); + } + else { + return vm_call_iseq_setup_tailcall(ec, cfp, calling, opt_pc); + } +} +static inline VALUE +vm_call_iseq_setup_normal(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, const rb_callable_method_entry_t *me, + int opt_pc, int param_size, int local_size) +{ + const rb_iseq_t *iseq = def_iseq_ptr(me->def); + VALUE *argv = cfp->sp - calling->argc; + VALUE *sp = argv + param_size; + cfp->sp = argv - 1 ; + vm_push_frame(ec, iseq, VM_FRAME_MAGIC_METHOD | VM_ENV_FLAG_LOCAL, calling->recv, + calling->block_handler, (VALUE)me, + ((iseq)->body)->iseq_encoded + opt_pc, sp, + local_size - param_size, + ((iseq)->body)->stack_max); + return ((VALUE)RUBY_Qundef); +} +COLDFUNC static VALUE +vm_call_iseq_setup_tailcall(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, int opt_pc) { + const struct rb_callcache *cc = calling->cc; + unsigned int i; + VALUE *argv = cfp->sp - calling->argc; + const rb_callable_method_entry_t *me = vm_cc_cme(cc); + const rb_iseq_t *iseq = def_iseq_ptr(me->def); + VALUE *src_argv = argv; + VALUE *sp_orig, *sp; + VALUE finish_flag = VM_FRAME_FINISHED_P(cfp) ? VM_FRAME_FLAG_FINISH : 0; + if (VM_BH_FROM_CFP_P(calling->block_handler, cfp)) { + struct rb_captured_block *dst_captured = VM_CFP_TO_CAPTURED_BLOCK(((cfp)+1)); + const struct rb_captured_block *src_captured = VM_BH_TO_CAPT_BLOCK(calling->block_handler); + dst_captured->code.val = src_captured->code.val; + if (VM_BH_ISEQ_BLOCK_P(calling->block_handler)) { + calling->block_handler = VM_BH_FROM_ISEQ_BLOCK(dst_captured); + } + else { + calling->block_handler = VM_BH_FROM_IFUNC_BLOCK(dst_captured); + } + } + vm_pop_frame(ec, cfp, cfp->ep); + cfp = ec->cfp; + sp_orig = sp = cfp->sp; + sp[0] = calling->recv; + sp++; + for (i=0; i < ((iseq)->body)->param.size; i++) { + *sp++ = src_argv[i]; + } + vm_push_frame(ec, iseq, VM_FRAME_MAGIC_METHOD | VM_ENV_FLAG_LOCAL | finish_flag, + calling->recv, calling->block_handler, (VALUE)me, + ((iseq)->body)->iseq_encoded + opt_pc, sp, + ((iseq)->body)->local_table_size - ((iseq)->body)->param.size, + ((iseq)->body)->stack_max); + cfp->sp = sp_orig; + return ((VALUE)RUBY_Qundef); +} +static void +ractor_unsafe_check(void) +{ + if (!rb_ractor_main_p()) { + rb_raise(rb_eRactorUnsafeError, "ractor unsafe method called from not main ractor"); + } +} +static VALUE +call_cfunc_m2(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE) = (VALUE(*)(VALUE, VALUE))func; + return (*f)(recv, rb_ary_new_from_values(argc, argv)); +} +static VALUE +call_cfunc_m1(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(int, const VALUE *, VALUE) = (VALUE(*)(int, const VALUE *, VALUE))func; + return (*f)(argc, argv, recv); +} +static VALUE +call_cfunc_0(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE) = (VALUE(*)(VALUE))func; + return (*f)(recv); +} +static VALUE +call_cfunc_1(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE) = (VALUE(*)(VALUE, VALUE))func; + return (*f)(recv, argv[0]); +} +static VALUE +call_cfunc_2(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1]); +} +static VALUE +call_cfunc_3(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2]); +} +static VALUE +call_cfunc_4(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3]); +} +static VALUE +call_cfunc_5(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4]); +} +static VALUE +call_cfunc_6(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]); +} +static VALUE +call_cfunc_7(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6]); +} +static VALUE +call_cfunc_8(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7]); +} +static VALUE +call_cfunc_9(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8]); +} +static VALUE +call_cfunc_10(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9]); +} +static VALUE +call_cfunc_11(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10]); +} +static VALUE +call_cfunc_12(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11]); +} +static VALUE +call_cfunc_13(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12]); +} +static VALUE +call_cfunc_14(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12], argv[13]); +} +static VALUE +call_cfunc_15(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + ractor_unsafe_check(); + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12], argv[13], argv[14]); +} +static VALUE +ractor_safe_call_cfunc_m2(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE) = (VALUE(*)(VALUE, VALUE))func; + return (*f)(recv, rb_ary_new_from_values(argc, argv)); +} +static VALUE +ractor_safe_call_cfunc_m1(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(int, const VALUE *, VALUE) = (VALUE(*)(int, const VALUE *, VALUE))func; + return (*f)(argc, argv, recv); +} +static VALUE +ractor_safe_call_cfunc_0(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE) = (VALUE(*)(VALUE))func; + return (*f)(recv); +} +static VALUE +ractor_safe_call_cfunc_1(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE) = (VALUE(*)(VALUE, VALUE))func; + return (*f)(recv, argv[0]); +} +static VALUE +ractor_safe_call_cfunc_2(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1]); +} +static VALUE +ractor_safe_call_cfunc_3(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2]); +} +static VALUE +ractor_safe_call_cfunc_4(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3]); +} +static VALUE +ractor_safe_call_cfunc_5(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4]); +} +static VALUE +ractor_safe_call_cfunc_6(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]); +} +static VALUE +ractor_safe_call_cfunc_7(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6]); +} +static VALUE +ractor_safe_call_cfunc_8(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7]); +} +static VALUE +ractor_safe_call_cfunc_9(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8]); +} +static VALUE +ractor_safe_call_cfunc_10(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9]); +} +static VALUE +ractor_safe_call_cfunc_11(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10]); +} +static VALUE +ractor_safe_call_cfunc_12(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11]); +} +static VALUE +ractor_safe_call_cfunc_13(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12]); +} +static VALUE +ractor_safe_call_cfunc_14(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12], argv[13]); +} +static VALUE +ractor_safe_call_cfunc_15(VALUE recv, int argc, const VALUE *argv, VALUE (*func)()) +{ + VALUE(*f)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE) = (VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE))func; + return (*f)(recv, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12], argv[13], argv[14]); +} +static inline int +vm_cfp_consistent_p(rb_execution_context_t *ec, const rb_control_frame_t *reg_cfp) +{ + const int ov_flags = RAISED_STACKOVERFLOW; + if ((__builtin_expect(!!(reg_cfp == ec->cfp + 1), 1))) return 1; + if ((((ec)->raised_flag & (ov_flags)) != 0)) { + ((ec)->raised_flag &= ~(ov_flags)); + return 1; + } + return 0; +} +static inline +const rb_method_cfunc_t * +vm_method_cfunc_entry(const rb_callable_method_entry_t *me) +{ + return __extension__({ + ; + ; __typeof__(&(me->def)->body.cfunc) unaligned_member_access_result = (&(me->def)->body.cfunc); + ; unaligned_member_access_result; }); +} +static VALUE +vm_call_cfunc_with_frame(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + ((void)0); + const struct rb_callinfo *ci = calling->ci; + const struct rb_callcache *cc = calling->cc; + VALUE val; + const rb_callable_method_entry_t *me = vm_cc_cme(cc); + const rb_method_cfunc_t *cfunc = vm_method_cfunc_entry(me); + int len = cfunc->argc; + VALUE recv = calling->recv; + VALUE block_handler = calling->block_handler; + VALUE frame_type = VM_FRAME_MAGIC_CFUNC | VM_FRAME_FLAG_CFRAME | VM_ENV_FLAG_LOCAL; + int argc = calling->argc; + int orig_argc = argc; + if ((__builtin_expect(!!(calling->kw_splat), 0))) { + frame_type |= VM_FRAME_FLAG_CFRAME_KW; + } + do { if ((__builtin_expect(!!(0), 0))) { struct ruby_dtrace_method_hook_args args; if (rb_dtrace_setup(ec, me->owner, me->def->original_id, &args)) { do {} while (0); } } } while (0); + do { const rb_event_flag_t flag_arg_ = (0x0020); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, recv, me->def->original_id, vm_ci_mid(ci), me->owner, ((VALUE)RUBY_Qundef), 0); } } while (0); + vm_push_frame(ec, ((void*)0), frame_type, recv, + block_handler, (VALUE)me, + 0, ec->cfp->sp, 0, 0); + if (len >= 0) rb_check_arity(argc, len, len); + reg_cfp->sp -= orig_argc + 1; + val = (*cfunc->invoker)(recv, argc, reg_cfp->sp + 1, cfunc->func); + ((__builtin_expect(!!(vm_cfp_consistent_p(ec, reg_cfp)), 1)) ? (void)0 : rb_bug("vm_call_cfunc" ": cfp consistency error (%p, %p)", (void *)reg_cfp, (void *)(ec->cfp+1))); + rb_vm_pop_frame(ec); + do { const rb_event_flag_t flag_arg_ = (0x0040); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, recv, me->def->original_id, vm_ci_mid(ci), me->owner, val, 0); } } while (0); + do { if ((__builtin_expect(!!(0), 0))) { struct ruby_dtrace_method_hook_args args; if (rb_dtrace_setup(ec, me->owner, me->def->original_id, &args)) { do {} while (0); } } } while (0); + return val; +} +static VALUE +vm_call_cfunc(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + const struct rb_callinfo *ci = calling->ci; + ((void)0); + CALLER_SETUP_ARG(reg_cfp, calling, ci); + CALLER_REMOVE_EMPTY_KW_SPLAT(reg_cfp, calling, ci); + CC_SET_FASTPATH(calling->cc, vm_call_cfunc_with_frame, !rb_splat_or_kwargs_p(ci) && !calling->kw_splat); + return vm_call_cfunc_with_frame(ec, reg_cfp, calling); +} +static VALUE +vm_call_ivar(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + const struct rb_callcache *cc = calling->cc; + ((void)0); + cfp->sp -= 1; + VALUE ivar = vm_getivar(calling->recv, vm_cc_cme(cc)->def->body.attr.id, ((void*)0), ((void*)0), cc, 1); + return ivar; +} +static VALUE +vm_call_attrset_direct(rb_execution_context_t *ec, rb_control_frame_t *cfp, const struct rb_callcache *cc, VALUE obj) +{ + ((void)0); + VALUE val = *(cfp->sp - 1); + cfp->sp -= 2; + attr_index_t index = vm_cc_attr_index(cc); + shape_id_t dest_shape_id = vm_cc_attr_index_dest_shape_id(cc); + ID id = vm_cc_cme(cc)->def->body.attr.id; + do { VALUE frozen_obj = (obj); if ((__builtin_expect(!!(RB_OBJ_FROZEN(frozen_obj)), 0))) { rb_error_frozen_object(frozen_obj); } } while (0); + VALUE res = vm_setivar(obj, id, val, dest_shape_id, index); + if (RB_UNDEF_P(res)) { + switch (RB_BUILTIN_TYPE(obj)) { + case RUBY_T_OBJECT: + case RUBY_T_CLASS: + case RUBY_T_MODULE: + break; + default: + { + res = vm_setivar_default(obj, id, val, dest_shape_id, index); + if (!RB_UNDEF_P(res)) { + return res; + } + } + } + res = vm_setivar_slowpath_attr(obj, id, val, cc); + } + return res; +} +static VALUE +vm_call_attrset(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + return vm_call_attrset_direct(ec, cfp, calling->cc, calling->recv); +}static inline +_Bool +rb_vm_call_ivar_attrset_p(const vm_call_handler ch) +{ + return (ch == vm_call_ivar || ch == vm_call_attrset); +} +static inline VALUE +vm_call_bmethod_body(rb_execution_context_t *ec, struct rb_calling_info *calling, const VALUE *argv) +{ + rb_proc_t *proc; + VALUE val; + const struct rb_callcache *cc = calling->cc; + const rb_callable_method_entry_t *cme = vm_cc_cme(cc); + VALUE procv = cme->def->body.bmethod.proc; + if (!RB_FL_TEST_RAW((procv), RUBY_FL_SHAREABLE) && + cme->def->body.bmethod.defined_ractor != rb_ractor_self(rb_ec_ractor_ptr(ec))) { + rb_raise(rb_eRuntimeError, "defined with an un-shareable Proc in a different Ractor"); + } + (((proc)) = (rb_proc_t*)((struct RData *)(((procv))))->data); + val = rb_vm_invoke_bmethod(ec, proc, calling->recv, calling->argc, argv, calling->kw_splat, calling->block_handler, vm_cc_cme(cc)); + return val; +} +static VALUE +vm_call_bmethod(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + VALUE *argv; + int argc; + const struct rb_callinfo *ci = calling->ci; + CALLER_SETUP_ARG(cfp, calling, ci); + argc = calling->argc; + argv = ((VALUE *)__builtin_alloca(rbimpl_size_mul_or_raise(sizeof(VALUE), (argc)))); + ruby_nonempty_memcpy((argv), (cfp->sp - argc), rbimpl_size_mul_or_raise(sizeof(VALUE), (argc))); + cfp->sp += - argc - 1; + return vm_call_bmethod_body(ec, calling, argv); +}static inline +__attribute__ ((__visibility__("default"))) VALUE +rb_find_defined_class_by_owner(VALUE current_class, VALUE target_owner) +{ + VALUE klass = current_class; + if ((__builtin_constant_p(RUBY_T_ICLASS) ? rbimpl_RB_TYPE_P_fastpath((klass), (RUBY_T_ICLASS)) : (RB_TYPE_P)((klass), (RUBY_T_ICLASS))) && RB_FL_TEST(klass, ((VALUE)RUBY_FL_USER0)) && + (__builtin_constant_p(RUBY_T_CLASS) ? rbimpl_RB_TYPE_P_fastpath((RBASIC_CLASS(klass)), (RUBY_T_CLASS)) : (RB_TYPE_P)((RBASIC_CLASS(klass)), (RUBY_T_CLASS)))) { + klass = RBASIC_CLASS(klass); + } + while (RB_TEST(klass)) { + VALUE owner = (__builtin_constant_p(RUBY_T_ICLASS) ? rbimpl_RB_TYPE_P_fastpath((klass), (RUBY_T_ICLASS)) : (RB_TYPE_P)((klass), (RUBY_T_ICLASS))) ? RBASIC_CLASS(klass) : klass; + if (owner == target_owner) { + return klass; + } + klass = RCLASS_SUPER(klass); + } + return current_class; +} +static const rb_callable_method_entry_t * +aliased_callable_method_entry(const rb_callable_method_entry_t *me) +{ + const rb_method_entry_t *orig_me = me->def->body.alias.original_me; + const rb_callable_method_entry_t *cme; + if (orig_me->defined_class == 0) { + VALUE defined_class = rb_find_defined_class_by_owner(me->defined_class, orig_me->owner); + ((void)0); + cme = rb_method_entry_complement_defined_class(orig_me, me->called_id, defined_class); + if (me->def->alias_count + me->def->complemented_count == 0) { + rb_obj_write((VALUE)(me), __extension__({ + ; + ; __typeof__((VALUE *)(&me->def->body.alias.original_me)) unaligned_member_access_result = ((VALUE *)(&me->def->body.alias.original_me)); + ; unaligned_member_access_result; }), (VALUE)(cme), "./vm_insnhelper.c", 3417); + } + else { + rb_method_definition_t *def = + rb_method_definition_create(VM_METHOD_TYPE_ALIAS, me->def->original_id); + rb_method_definition_set((rb_method_entry_t *)me, def, (void *)cme); + } + } + else { + cme = (const rb_callable_method_entry_t *)orig_me; + } + ((void)0); + return cme; +}static inline +const rb_callable_method_entry_t * +rb_aliased_callable_method_entry(const rb_callable_method_entry_t *me) +{ + return aliased_callable_method_entry(me); +} +static VALUE +vm_call_alias(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + calling->cc = &(struct rb_callcache) { .flags = RUBY_T_IMEMO | (imemo_callcache << ((VALUE)RUBY_FL_USHIFT)) | ((VALUE)RUBY_FL_FREEZE) | ((VALUE)RUBY_FL_EXIVAR), .klass = ((VALUE)RUBY_Qundef), .cme_ = aliased_callable_method_entry(vm_cc_cme(calling->cc)), .call_ = vm_call_general, .aux_ = {{0}}, }; + return vm_call_method_each_type(ec, cfp, calling); +} +static enum method_missing_reason +ci_missing_reason(const struct rb_callinfo *ci) +{ + enum method_missing_reason stat = MISSING_NOENTRY; + if (vm_ci_flag(ci) & (0x01 << VM_CALL_VCALL_bit)) stat |= MISSING_VCALL; + if (vm_ci_flag(ci) & (0x01 << VM_CALL_FCALL_bit)) stat |= MISSING_FCALL; + if (vm_ci_flag(ci) & (0x01 << VM_CALL_SUPER_bit)) stat |= MISSING_SUPER; + return stat; +} +static VALUE vm_call_method_missing(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling); +static VALUE +vm_call_symbol(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + struct rb_calling_info *calling, const struct rb_callinfo *ci, VALUE symbol, int flags) +{ + __builtin_assume(calling->argc >= 0); + enum method_missing_reason missing_reason = MISSING_NOENTRY; + int argc = calling->argc; + VALUE recv = calling->recv; + VALUE klass = rb_class_of(recv); + ID mid = rb_check_id(&symbol); + flags |= (0x01 << VM_CALL_OPT_SEND_bit) | (calling->kw_splat ? (0x01 << VM_CALL_KW_SPLAT_bit) : 0); + if ((__builtin_expect(!!(! mid), 0))) { + mid = idMethodMissing; + missing_reason = ci_missing_reason(ci); + ec->method_missing_reason = missing_reason; + int i = argc; + do { __extension__ _Static_assert(sizeof(*((reg_cfp)->sp)) == sizeof(VALUE), "sizeof_sp" ": " "sizeof(*((reg_cfp)->sp)) == sizeof(VALUE)"); __extension__ _Static_assert(sizeof(*((reg_cfp))) == sizeof(rb_control_frame_t), "sizeof_cfp" ": " "sizeof(*((reg_cfp))) == sizeof(rb_control_frame_t)"); const struct rb_control_frame_struct *bound = (void *)&((reg_cfp)->sp)[((1))]; if ((__builtin_expect(!!(((reg_cfp)) <= &bound[1]), 0))) { vm_stackoverflow(); } } while (0); + (((reg_cfp)->sp) += (((1)))); + __builtin___memmove_chk ((&(*(((((reg_cfp)->sp)))-(i - 1)-1))), (&(*(((((reg_cfp)->sp)))-(i)-1))), rbimpl_size_mul_or_raise(sizeof(VALUE), (i)), __builtin_object_size ((&(*(((((reg_cfp)->sp)))-(i - 1)-1))), 0)); + argc = ++calling->argc; + if (rb_method_basic_definition_p(klass, idMethodMissing)) { + (*(((((reg_cfp)->sp)))-(i)-1)) = symbol; + int priv = vm_ci_flag(ci) & ((0x01 << VM_CALL_FCALL_bit) | (0x01 << VM_CALL_VCALL_bit)); + const VALUE *argv = (((((reg_cfp)->sp)))-(argc)); + VALUE exc = rb_make_no_method_exception( + rb_eNoMethodError, 0, recv, argc, argv, priv); + rb_exc_raise(exc); + } + else { + (*(((((reg_cfp)->sp)))-(i)-1)) = rb_str_intern(symbol); + } + } + calling->ci = &(struct rb_callinfo) { .flags = RUBY_T_IMEMO | (imemo_callinfo << ((VALUE)RUBY_FL_USHIFT)) | ((VALUE)RUBY_FL_USER4), .mid = mid, .flag = flags, .argc = argc, .kwarg = vm_ci_kwarg(ci), }; + calling->cc = &(struct rb_callcache) { .flags = RUBY_T_IMEMO | (imemo_callcache << ((VALUE)RUBY_FL_USHIFT)) | ((VALUE)RUBY_FL_FREEZE) | ((VALUE)RUBY_FL_EXIVAR), .klass = klass, .cme_ = rb_callable_method_entry_with_refinements(klass, mid, ((void*)0)), .call_ = vm_call_general, .aux_ = { .method_missing_reason = missing_reason }, }; + if (flags & (0x01 << VM_CALL_FCALL_bit)) { + return vm_call_method(ec, reg_cfp, calling); + } + const struct rb_callcache *cc = calling->cc; + ((void)0); + if (vm_cc_cme(cc) != ((void*)0)) { + switch ((rb_method_visibility_t)(((vm_cc_cme(cc))->flags & (((VALUE)RUBY_FL_USER4) | ((VALUE)RUBY_FL_USER5))) >> ((((VALUE)RUBY_FL_USHIFT) + 4)+0))) { + case METHOD_VISI_PUBLIC: + return vm_call_method_each_type(ec, reg_cfp, calling); + case METHOD_VISI_PRIVATE: + vm_cc_method_missing_reason_set(cc, MISSING_PRIVATE); + break; + case METHOD_VISI_PROTECTED: + vm_cc_method_missing_reason_set(cc, MISSING_PROTECTED); + break; + default: + __builtin_unreachable(); + } + return vm_call_method_missing(ec, reg_cfp, calling); + } + return vm_call_method_nome(ec, reg_cfp, calling); +} +static VALUE +vm_call_opt_send(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + ((void)0); + int i; + VALUE sym; + CALLER_SETUP_ARG(reg_cfp, calling, calling->ci); + i = calling->argc - 1; + if (calling->argc == 0) { + rb_raise(rb_eArgError, "no method name given"); + } + else { + sym = (*(((((reg_cfp)->sp)))-(i)-1)); + if (i > 0) { + __builtin___memmove_chk ((&(*(((((reg_cfp)->sp)))-(i)-1))), (&(*(((((reg_cfp)->sp)))-(i-1)-1))), rbimpl_size_mul_or_raise(sizeof(VALUE), (i)), __builtin_object_size ((&(*(((((reg_cfp)->sp)))-(i)-1))), 0)); + } + calling->argc -= 1; + (((reg_cfp)->sp) -= (((1)))); + return vm_call_symbol(ec, reg_cfp, calling, calling->ci, sym, (0x01 << VM_CALL_FCALL_bit)); + } +} +static VALUE +vm_call_method_missing_body(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling, + const struct rb_callinfo *orig_ci, enum method_missing_reason reason) +{ + ((void)0); + VALUE *argv = (((((reg_cfp)->sp)))-(calling->argc)); + unsigned int argc; + CALLER_SETUP_ARG(reg_cfp, calling, orig_ci); + argc = calling->argc + 1; + unsigned int flag = (0x01 << VM_CALL_FCALL_bit) | (0x01 << VM_CALL_OPT_SEND_bit) | (calling->kw_splat ? (0x01 << VM_CALL_KW_SPLAT_bit) : 0); + calling->argc = argc; + do { __extension__ _Static_assert(sizeof(*((reg_cfp)->sp)) == sizeof(VALUE), "sizeof_sp" ": " "sizeof(*((reg_cfp)->sp)) == sizeof(VALUE)"); __extension__ _Static_assert(sizeof(*((reg_cfp))) == sizeof(rb_control_frame_t), "sizeof_cfp" ": " "sizeof(*((reg_cfp))) == sizeof(rb_control_frame_t)"); const struct rb_control_frame_struct *bound = (void *)&((reg_cfp)->sp)[((1))]; if ((__builtin_expect(!!(((reg_cfp)) <= &bound[1]), 0))) { vm_stackoverflow(); } } while (0); + ; + if (argc > 1) { + __builtin___memmove_chk ((argv+1), (argv), rbimpl_size_mul_or_raise(sizeof(VALUE), (argc-1)), __builtin_object_size ((argv+1), 0)); + } + argv[0] = rb_id2sym(vm_ci_mid(orig_ci)); + (((reg_cfp)->sp) += (((1)))); + ec->method_missing_reason = reason; + calling->ci = &(struct rb_callinfo) { .flags = RUBY_T_IMEMO | (imemo_callinfo << ((VALUE)RUBY_FL_USHIFT)) | ((VALUE)RUBY_FL_USER4), .mid = idMethodMissing, .flag = flag, .argc = argc, .kwarg = vm_ci_kwarg(orig_ci), }; + calling->cc = &(struct rb_callcache) { .flags = RUBY_T_IMEMO | (imemo_callcache << ((VALUE)RUBY_FL_USHIFT)) | ((VALUE)RUBY_FL_FREEZE) | ((VALUE)RUBY_FL_EXIVAR), .klass = ((VALUE)RUBY_Qundef), .cme_ = rb_callable_method_entry_without_refinements(rb_class_of(calling->recv), idMethodMissing, ((void*)0)), .call_ = vm_call_general, .aux_ = {{ 0 }}, }; + return vm_call_method(ec, reg_cfp, calling); +} +static VALUE +vm_call_method_missing(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + return vm_call_method_missing_body(ec, reg_cfp, calling, calling->ci, vm_cc_cmethod_missing_reason(calling->cc)); +} +static const rb_callable_method_entry_t *refined_method_callable_without_refinement(const rb_callable_method_entry_t *me); +static VALUE +vm_call_zsuper(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, VALUE klass) +{ + klass = RCLASS_SUPER(klass); + const rb_callable_method_entry_t *cme = klass ? rb_callable_method_entry(klass, vm_ci_mid(calling->ci)) : ((void*)0); + if (cme == ((void*)0)) { + return vm_call_method_nome(ec, cfp, calling); + } + if (cme->def->type == VM_METHOD_TYPE_REFINED && + cme->def->body.refined.orig_me) { + cme = refined_method_callable_without_refinement(cme); + } + calling->cc = &(struct rb_callcache) { .flags = RUBY_T_IMEMO | (imemo_callcache << ((VALUE)RUBY_FL_USHIFT)) | ((VALUE)RUBY_FL_FREEZE) | ((VALUE)RUBY_FL_EXIVAR), .klass = ((VALUE)RUBY_Qundef), .cme_ = cme, .call_ = vm_call_general, .aux_ = {{ 0 }}, }; + return vm_call_method_each_type(ec, cfp, calling); +} +static inline VALUE +find_refinement(VALUE refinements, VALUE klass) +{ + if (RB_NIL_P(refinements)) { + return ((VALUE)RUBY_Qnil); + } + return rb_hash_lookup(refinements, klass); +} +__attribute__((__pure__)) static rb_control_frame_t * current_method_entry(const rb_execution_context_t *ec, rb_control_frame_t *cfp); +static rb_control_frame_t * +current_method_entry(const rb_execution_context_t *ec, rb_control_frame_t *cfp) +{ + rb_control_frame_t *top_cfp = cfp; + if (cfp->iseq && ((cfp->iseq)->body)->type == ISEQ_TYPE_BLOCK) { + const rb_iseq_t *local_iseq = ((cfp->iseq)->body)->local_iseq; + do { + cfp = ((cfp)+1); + if (RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(ec, cfp)) { + return top_cfp; + } + } while (cfp->iseq != local_iseq); + } + return cfp; +} +static const rb_callable_method_entry_t * +refined_method_callable_without_refinement(const rb_callable_method_entry_t *me) +{ + const rb_method_entry_t *orig_me = me->def->body.refined.orig_me; + const rb_callable_method_entry_t *cme; + if (orig_me->defined_class == 0) { + cme = ((void*)0); + rb_notimplement(); + } + else { + cme = (const rb_callable_method_entry_t *)orig_me; + } + ((void)0); + if ((!(cme) || !(cme)->def || (cme)->def->type == VM_METHOD_TYPE_UNDEF)) { + cme = ((void*)0); + } + return cme; +} +static const rb_callable_method_entry_t * +search_refined_method(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ID mid = vm_ci_mid(calling->ci); + const rb_cref_t *cref = vm_get_cref(cfp->ep); + const struct rb_callcache * const cc = calling->cc; + const rb_callable_method_entry_t *cme = vm_cc_cme(cc); + for (; cref; cref = CREF_NEXT(cref)) { + const VALUE refinement = find_refinement(CREF_REFINEMENTS(cref), vm_cc_cme(cc)->owner); + if (RB_NIL_P(refinement)) continue; + const rb_callable_method_entry_t *const ref_me = + rb_callable_method_entry(refinement, mid); + if (ref_me) { + if (vm_cc_call(cc) == vm_call_super_method) { + const rb_control_frame_t *top_cfp = current_method_entry(ec, cfp); + const rb_callable_method_entry_t *top_me = rb_vm_frame_method_entry(top_cfp); + if (top_me && rb_method_definition_eq(ref_me->def, top_me->def)) { + continue; + } + } + if (cme->def->type != VM_METHOD_TYPE_REFINED || + cme->def != ref_me->def) { + cme = ref_me; + } + if (ref_me->def->type != VM_METHOD_TYPE_REFINED) { + return cme; + } + } + else { + return ((void*)0); + } + } + if (vm_cc_cme(cc)->def->body.refined.orig_me) { + return refined_method_callable_without_refinement(vm_cc_cme(cc)); + } + else { + VALUE klass = RCLASS_SUPER(vm_cc_cme(cc)->defined_class); + const rb_callable_method_entry_t *cme = klass ? rb_callable_method_entry(klass, mid) : ((void*)0); + return cme; + } +} +static VALUE +vm_call_refined(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + struct rb_callcache *ref_cc = &(struct rb_callcache) { .flags = RUBY_T_IMEMO | (imemo_callcache << ((VALUE)RUBY_FL_USHIFT)) | ((VALUE)RUBY_FL_FREEZE) | ((VALUE)RUBY_FL_EXIVAR), .klass = ((VALUE)RUBY_Qundef), .cme_ = search_refined_method(ec, cfp, calling), .call_ = vm_call_general, .aux_ = {{ 0 }}, }; + if (vm_cc_cme(ref_cc)) { + calling->cc= ref_cc; + return vm_call_method(ec, cfp, calling); + } + else { + return vm_call_method_nome(ec, cfp, calling); + } +} +static inline VALUE vm_invoke_block(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling, const struct rb_callinfo *ci, _Bool is_lambda, VALUE block_handler); +__declspec(noinline) static VALUE vm_invoke_block_opt_call(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling, const struct rb_callinfo *ci, VALUE block_handler); +static VALUE +vm_invoke_block_opt_call(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + struct rb_calling_info *calling, const struct rb_callinfo *ci, VALUE block_handler) +{ + int argc = calling->argc; + if (argc > 0) __builtin___memmove_chk ((&(*(((((reg_cfp)->sp)))-(argc)-1))), (&(*(((((reg_cfp)->sp)))-(argc-1)-1))), rbimpl_size_mul_or_raise(sizeof(VALUE), (argc)), __builtin_object_size ((&(*(((((reg_cfp)->sp)))-(argc)-1))), 0)); + (((reg_cfp)->sp) -= (((1)))); + return vm_invoke_block(ec, reg_cfp, calling, ci, 0, block_handler); +} +static VALUE +vm_call_opt_call(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + ((void)0); + const struct rb_callinfo *ci = calling->ci; + VALUE procval = calling->recv; + return vm_invoke_block_opt_call(ec, reg_cfp, calling, ci, VM_BH_FROM_PROC(procval)); +} +static VALUE +vm_call_opt_block_call(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + ((void)0); + VALUE block_handler = VM_ENV_BLOCK_HANDLER(VM_CF_LEP(reg_cfp)); + const struct rb_callinfo *ci = calling->ci; + if (((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_CALL)]&((1 << 12))) == 0), 1)))) { + return vm_invoke_block_opt_call(ec, reg_cfp, calling, ci, block_handler); + } + else { + calling->recv = rb_vm_bh_to_procval(ec, block_handler); + calling->cc = rb_vm_search_method_slowpath(ci, rb_class_of(calling->recv)); + return vm_call_general(ec, reg_cfp, calling); + } +} +static VALUE +vm_call_opt_struct_aref0(rb_execution_context_t *ec, struct rb_calling_info *calling) +{ + VALUE recv = calling->recv; + ((void)0); + ((void)0); + ((void)0); + const unsigned int off = vm_cc_cme(calling->cc)->def->body.optimized.index; + return internal_RSTRUCT_GET(recv, off); +} +static VALUE +vm_call_opt_struct_aref(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + ((void)0); + VALUE ret = vm_call_opt_struct_aref0(ec, calling); + reg_cfp->sp -= 1; + return ret; +} +static VALUE +vm_call_opt_struct_aset0(rb_execution_context_t *ec, struct rb_calling_info *calling, VALUE val) +{ + VALUE recv = calling->recv; + ((void)0); + ((void)0); + ((void)0); + rb_check_frozen_inline(recv); + const unsigned int off = vm_cc_cme(calling->cc)->def->body.optimized.index; + internal_RSTRUCT_SET(recv, off, val); + return val; +} +static VALUE +vm_call_opt_struct_aset(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + ((void)0); + VALUE ret = vm_call_opt_struct_aset0(ec, calling, *(reg_cfp->sp - 1)); + reg_cfp->sp -= 2; + return ret; +} +__declspec(noinline) static VALUE vm_call_optimized(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, const struct rb_callinfo *ci, const struct rb_callcache *cc); +static VALUE +vm_call_optimized(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, + const struct rb_callinfo *ci, const struct rb_callcache *cc) +{ + switch (vm_cc_cme(cc)->def->body.optimized.type) { + case OPTIMIZED_METHOD_TYPE_SEND: + CC_SET_FASTPATH(cc, vm_call_opt_send, 1); + return vm_call_opt_send(ec, cfp, calling); + case OPTIMIZED_METHOD_TYPE_CALL: + CC_SET_FASTPATH(cc, vm_call_opt_call, 1); + return vm_call_opt_call(ec, cfp, calling); + case OPTIMIZED_METHOD_TYPE_BLOCK_CALL: + CC_SET_FASTPATH(cc, vm_call_opt_block_call, 1); + return vm_call_opt_block_call(ec, cfp, calling); + case OPTIMIZED_METHOD_TYPE_STRUCT_AREF: + CALLER_SETUP_ARG(cfp, calling, ci); + CALLER_REMOVE_EMPTY_KW_SPLAT(cfp, calling, ci); + rb_check_arity(calling->argc, 0, 0); + CC_SET_FASTPATH(cc, vm_call_opt_struct_aref, (vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_SIMPLE_bit))); + return vm_call_opt_struct_aref(ec, cfp, calling); + case OPTIMIZED_METHOD_TYPE_STRUCT_ASET: + CALLER_SETUP_ARG(cfp, calling, ci); + CALLER_REMOVE_EMPTY_KW_SPLAT(cfp, calling, ci); + rb_check_arity(calling->argc, 1, 1); + CC_SET_FASTPATH(cc, vm_call_opt_struct_aset, (vm_ci_flag(ci) & (0x01 << VM_CALL_ARGS_SIMPLE_bit))); + return vm_call_opt_struct_aset(ec, cfp, calling); + default: + rb_bug("vm_call_method: unsupported optimized method type (%d)", vm_cc_cme(cc)->def->body.optimized.type); + } +} +COLDFUNC static VALUE +vm_call_method_each_type(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) { + const struct rb_callinfo *ci = calling->ci; + const struct rb_callcache *cc = calling->cc; + const rb_callable_method_entry_t *cme = vm_cc_cme(cc); + VALUE v; + switch (cme->def->type) { + case VM_METHOD_TYPE_ISEQ: + CC_SET_FASTPATH(cc, vm_call_iseq_setup, 1); + return vm_call_iseq_setup(ec, cfp, calling); + case VM_METHOD_TYPE_NOTIMPLEMENTED: + case VM_METHOD_TYPE_CFUNC: + CC_SET_FASTPATH(cc, vm_call_cfunc, 1); + return vm_call_cfunc(ec, cfp, calling); + case VM_METHOD_TYPE_ATTRSET: + CALLER_SETUP_ARG(cfp, calling, ci); + CALLER_REMOVE_EMPTY_KW_SPLAT(cfp, calling, ci); + rb_check_arity(calling->argc, 1, 1); + const unsigned int aset_mask = ((0x01 << VM_CALL_ARGS_SPLAT_bit) | (0x01 << VM_CALL_KW_SPLAT_bit) | (0x01 << VM_CALL_KWARG_bit)); + if (vm_cc_markable(cc)) { + vm_cc_attr_index_initialize(cc, (((uintptr_t)1 << 32) - 1)); + if ((__builtin_expect(!!(ruby_vm_event_flags & (0x0020 | 0x0040)), 0))) { do { const rb_event_flag_t flag_arg_ = (0x0020); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, calling->recv, vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, ((VALUE)RUBY_Qundef), 0); } } while (0); v = vm_call_attrset_direct(ec, cfp, cc, calling->recv); do { const rb_event_flag_t flag_arg_ = (0x0040); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, calling->recv, vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, (v), 0); } } while (0); } else { CC_SET_FASTPATH(cc, vm_call_attrset, !(vm_ci_flag(ci) & aset_mask)); v = vm_call_attrset_direct(ec, cfp, cc, calling->recv); }; + } + else { + cc = &((struct rb_callcache) { + .flags = RUBY_T_IMEMO | + (imemo_callcache << ((VALUE)RUBY_FL_USHIFT)) | + ((VALUE)RUBY_FL_FREEZE) | + ((VALUE)(((uintptr_t)1 << 32) - 1) << ((8 * 8) - 32)) | + ((VALUE)RUBY_FL_EXIVAR), + .klass = cc->klass, + .cme_ = cc->cme_, + .call_ = cc->call_, + .aux_ = { + .attr = { + .value = (((uintptr_t)1 << 32) - 1) << ((8 * 8) - 32), + } + }, + }); + if ((__builtin_expect(!!(ruby_vm_event_flags & (0x0020 | 0x0040)), 0))) { do { const rb_event_flag_t flag_arg_ = (0x0020); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, calling->recv, vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, ((VALUE)RUBY_Qundef), 0); } } while (0); v = vm_call_attrset_direct(ec, cfp, cc, calling->recv); do { const rb_event_flag_t flag_arg_ = (0x0040); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, calling->recv, vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, (v), 0); } } while (0); } else { CC_SET_FASTPATH(cc, vm_call_attrset, !(vm_ci_flag(ci) & aset_mask)); v = vm_call_attrset_direct(ec, cfp, cc, calling->recv); }; + } + return v; + case VM_METHOD_TYPE_IVAR: + CALLER_SETUP_ARG(cfp, calling, ci); + CALLER_REMOVE_EMPTY_KW_SPLAT(cfp, calling, ci); + rb_check_arity(calling->argc, 0, 0); + vm_cc_attr_index_initialize(cc, (((uintptr_t)1 << 32) - 1)); + const unsigned int ivar_mask = ((0x01 << VM_CALL_ARGS_SPLAT_bit) | (0x01 << VM_CALL_KW_SPLAT_bit)); + if ((__builtin_expect(!!(ruby_vm_event_flags & (0x0020 | 0x0040)), 0))) { do { const rb_event_flag_t flag_arg_ = (0x0020); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, calling->recv, vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, ((VALUE)RUBY_Qundef), 0); } } while (0); v = vm_call_ivar(ec, cfp, calling); do { const rb_event_flag_t flag_arg_ = (0x0040); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, calling->recv, vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, (v), 0); } } while (0); } else { CC_SET_FASTPATH(cc, vm_call_ivar, !(vm_ci_flag(ci) & ivar_mask)); v = vm_call_ivar(ec, cfp, calling); }; + return v; + case VM_METHOD_TYPE_MISSING: + vm_cc_method_missing_reason_set(cc, 0); + CC_SET_FASTPATH(cc, vm_call_method_missing, 1); + return vm_call_method_missing(ec, cfp, calling); + case VM_METHOD_TYPE_BMETHOD: + CC_SET_FASTPATH(cc, vm_call_bmethod, 1); + return vm_call_bmethod(ec, cfp, calling); + case VM_METHOD_TYPE_ALIAS: + CC_SET_FASTPATH(cc, vm_call_alias, 1); + return vm_call_alias(ec, cfp, calling); + case VM_METHOD_TYPE_OPTIMIZED: + return vm_call_optimized(ec, cfp, calling, ci, cc); + case VM_METHOD_TYPE_UNDEF: + break; + case VM_METHOD_TYPE_ZSUPER: + return vm_call_zsuper(ec, cfp, calling, (((rb_classext_t *)((char *)(vm_cc_cme(cc)->defined_class) + sizeof(struct RClass)))->origin_)); + case VM_METHOD_TYPE_REFINED: + return vm_call_refined(ec, cfp, calling); + } + rb_bug("vm_call_method: unsupported method type (%d)", vm_cc_cme(cc)->def->type); +} +__declspec(noreturn) static void vm_raise_method_missing(rb_execution_context_t *ec, int argc, const VALUE *argv, VALUE obj, int call_status); +static VALUE +vm_call_method_nome(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + const struct rb_callinfo *ci = calling->ci; + const int stat = ci_missing_reason(ci); + if (vm_ci_mid(ci) == idMethodMissing) { + rb_control_frame_t *reg_cfp = cfp; + VALUE *argv = (((((reg_cfp)->sp)))-(calling->argc)); + vm_raise_method_missing(ec, calling->argc, argv, calling->recv, stat); + } + else { + return vm_call_method_missing_body(ec, cfp, calling, ci, stat); + } +} +static VALUE +vm_defined_class_for_protected_call(const rb_callable_method_entry_t *me) +{ + VALUE defined_class = me->defined_class; + VALUE refined_class = (((rb_classext_t *)((char *)(defined_class) + sizeof(struct RClass)))->refined_class); + return RB_NIL_P(refined_class) ? defined_class : refined_class; +} +static inline VALUE +vm_call_method(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + const struct rb_callinfo *ci = calling->ci; + const struct rb_callcache *cc = calling->cc; + ((void)0); + if (vm_cc_cme(cc) != ((void*)0)) { + switch ((rb_method_visibility_t)(((vm_cc_cme(cc))->flags & (((VALUE)RUBY_FL_USER4) | ((VALUE)RUBY_FL_USER5))) >> ((((VALUE)RUBY_FL_USHIFT) + 4)+0))) { + case METHOD_VISI_PUBLIC: + return vm_call_method_each_type(ec, cfp, calling); + case METHOD_VISI_PRIVATE: + if (!(vm_ci_flag(ci) & (0x01 << VM_CALL_FCALL_bit))) { + enum method_missing_reason stat = MISSING_PRIVATE; + if (vm_ci_flag(ci) & (0x01 << VM_CALL_VCALL_bit)) stat |= MISSING_VCALL; + vm_cc_method_missing_reason_set(cc, stat); + CC_SET_FASTPATH(cc, vm_call_method_missing, 1); + return vm_call_method_missing(ec, cfp, calling); + } + return vm_call_method_each_type(ec, cfp, calling); + case METHOD_VISI_PROTECTED: + if (!(vm_ci_flag(ci) & ((0x01 << VM_CALL_OPT_SEND_bit) | (0x01 << VM_CALL_FCALL_bit)))) { + VALUE defined_class = vm_defined_class_for_protected_call(vm_cc_cme(cc)); + if (!rb_obj_is_kind_of(cfp->self, defined_class)) { + vm_cc_method_missing_reason_set(cc, MISSING_PROTECTED); + return vm_call_method_missing(ec, cfp, calling); + } + else { + ((void)0); + struct rb_callcache cc_on_stack = *cc; + RB_FL_SET_RAW((VALUE)&cc_on_stack, ((VALUE)RUBY_FL_FREEZE)); + calling->cc = &cc_on_stack; + return vm_call_method_each_type(ec, cfp, calling); + } + } + return vm_call_method_each_type(ec, cfp, calling); + default: + rb_bug("unreachable"); + } + } + else { + return vm_call_method_nome(ec, cfp, calling); + } +} +static VALUE +vm_call_general(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_method(ec, reg_cfp, calling); +}static inline +void +rb_vm_cc_general(const struct rb_callcache *cc) +{ + ((void)0); + ((void)0); + *(vm_call_handler *)&cc->call_ = vm_call_general; +} +static VALUE +vm_call_super_method(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling) +{ + ((void)0); + if (ec == ((void*)0)) rb_bug("unreachable"); + ((void)0); + return vm_call_method(ec, reg_cfp, calling); +} +static inline VALUE +vm_search_normal_superclass(VALUE klass) +{ + if (RB_BUILTIN_TYPE(klass) == RUBY_T_ICLASS && + (__builtin_constant_p(RUBY_T_MODULE) ? rbimpl_RB_TYPE_P_fastpath((((struct RBasic *)(klass))->klass), (RUBY_T_MODULE)) : (RB_TYPE_P)((((struct RBasic *)(klass))->klass), (RUBY_T_MODULE))) && + RB_FL_TEST_RAW(((struct RBasic *)(klass))->klass, RMODULE_IS_REFINEMENT)) { + klass = ((struct RBasic *)(klass))->klass; + } + klass = (((rb_classext_t *)((char *)(klass) + sizeof(struct RClass)))->origin_); + return RCLASS_SUPER(klass); +} +__declspec(noreturn) static void vm_super_outside(void); +static void +vm_super_outside(void) +{ + rb_raise(rb_eNoMethodError, "super called outside of method"); +} +static const struct rb_callcache * +empty_cc_for_super(void) +{ + return rb_vm_empty_cc_for_super(); +} +static const struct rb_callcache * +vm_search_super_method(const rb_control_frame_t *reg_cfp, struct rb_call_data *cd, VALUE recv) +{ + VALUE current_defined_class; + const rb_callable_method_entry_t *me = rb_vm_frame_method_entry(reg_cfp); + if (!me) { + vm_super_outside(); + } + current_defined_class = vm_defined_class_for_protected_call(me); + if (RB_BUILTIN_TYPE(current_defined_class) != RUBY_T_MODULE && + reg_cfp->iseq != method_entry_iseqptr(me) && + !rb_obj_is_kind_of(recv, current_defined_class)) { + VALUE m = (__builtin_constant_p(RUBY_T_ICLASS) ? rbimpl_RB_TYPE_P_fastpath((current_defined_class), (RUBY_T_ICLASS)) : (RB_TYPE_P)((current_defined_class), (RUBY_T_ICLASS))) ? + (((rb_classext_t *)((char *)(current_defined_class) + sizeof(struct RClass)))->includer) : current_defined_class; + if (m) { + rb_raise(rb_eTypeError, + "self has wrong type to call super in this context: " + "%""l""i" "\v"" (expected %""l""i" "\v"")", + rb_obj_class(recv), m); + } + } + if (me->def->type == VM_METHOD_TYPE_BMETHOD && (vm_ci_flag(cd->ci) & (0x01 << VM_CALL_ZSUPER_bit))) { + rb_raise(rb_eRuntimeError, + "implicit argument passing of super from method defined" + " by define_method() is not supported." + " Specify all arguments explicitly."); + } + ID mid = me->def->original_id; + cd->ci = vm_ci_new_runtime_(mid, vm_ci_flag(cd->ci), vm_ci_argc(cd->ci), vm_ci_kwarg(cd->ci), "./vm_insnhelper.c", 4186); + (rb_obj_written((VALUE)(reg_cfp->iseq), (VALUE)(((VALUE)RUBY_Qundef)), (VALUE)(cd->ci), "./vm_insnhelper.c", 4188)); + const struct rb_callcache *cc; + VALUE klass = vm_search_normal_superclass(me->defined_class); + if (!klass) { + cc = vm_cc_new(klass, ((void*)0), vm_call_method_missing); + rb_obj_write((VALUE)(reg_cfp->iseq), __extension__({ + ; + ; __typeof__((VALUE *)(&cd->cc)) unaligned_member_access_result = ((VALUE *)(&cd->cc)); + ; unaligned_member_access_result; }), (VALUE)(cc), "./vm_insnhelper.c", 4197); + } + else { + cc = vm_search_method_fastpath((VALUE)reg_cfp->iseq, cd, klass); + const rb_callable_method_entry_t *cached_cme = vm_cc_cme(cc); + if (cached_cme == ((void*)0)) { + cd->cc = empty_cc_for_super(); + } + else if (cached_cme->called_id != mid) { + const rb_callable_method_entry_t *cme = rb_callable_method_entry(klass, mid); + if (cme) { + cc = vm_cc_new(klass, cme, vm_call_super_method); + rb_obj_write((VALUE)(reg_cfp->iseq), __extension__({ + ; + ; __typeof__((VALUE *)(&cd->cc)) unaligned_member_access_result = ((VALUE *)(&cd->cc)); + ; unaligned_member_access_result; }), (VALUE)(cc), "./vm_insnhelper.c", 4212); + } + else { + cd->cc = cc = empty_cc_for_super(); + } + } + else { + switch (cached_cme->def->type) { + case VM_METHOD_TYPE_REFINED: + case VM_METHOD_TYPE_ATTRSET: + case VM_METHOD_TYPE_IVAR: + vm_cc_call_set(cc, vm_call_super_method); + break; + default: + break; + } + } + } + ((void)0); + return cc; +} +static inline int +block_proc_is_lambda(const VALUE procval) +{ + rb_proc_t *proc; + if (procval) { + (((proc)) = (rb_proc_t*)((struct RData *)(((procval))))->data); + return proc->is_lambda; + } + else { + return 0; + } +} +static VALUE +vm_yield_with_cfunc(rb_execution_context_t *ec, + const struct rb_captured_block *captured, + VALUE self, int argc, const VALUE *argv, int kw_splat, VALUE block_handler, + const rb_callable_method_entry_t *me) +{ + int is_lambda = 0; + VALUE val, arg, blockarg; + int frame_flag; + const struct vm_ifunc *ifunc = captured->code.ifunc; + if (is_lambda) { + arg = rb_ary_new_from_values(argc, argv); + } + else if (argc == 0) { + arg = ((VALUE)RUBY_Qnil); + } + else { + arg = argv[0]; + } + blockarg = rb_vm_bh_to_procval(ec, block_handler); + frame_flag = VM_FRAME_MAGIC_IFUNC | VM_FRAME_FLAG_CFRAME | (me ? VM_FRAME_FLAG_BMETHOD : 0); + if (kw_splat) { + frame_flag |= VM_FRAME_FLAG_CFRAME_KW; + } + vm_push_frame(ec, (const rb_iseq_t *)captured->code.ifunc, + frame_flag, + self, + ((VALUE)((captured->ep)) | (0x01)), + (VALUE)me, + 0, ec->cfp->sp, 0, 0); + val = (*ifunc->func)(arg, (VALUE)ifunc->data, argc, argv, blockarg); + rb_vm_pop_frame(ec); + return val; +} +static VALUE +vm_yield_with_symbol(rb_execution_context_t *ec, VALUE symbol, int argc, const VALUE *argv, int kw_splat, VALUE block_handler) +{ + return rb_sym_proc_call(rb_sym2id(symbol), argc, argv, kw_splat, rb_vm_bh_to_procval(ec, block_handler)); +} +static inline int +vm_callee_setup_block_arg_arg0_splat(rb_control_frame_t *cfp, const rb_iseq_t *iseq, VALUE *argv, VALUE ary) +{ + int i; + long len = rb_array_len(ary); + do { __extension__ _Static_assert(sizeof(*((cfp)->sp)) == sizeof(VALUE), "sizeof_sp" ": " "sizeof(*((cfp)->sp)) == sizeof(VALUE)"); __extension__ _Static_assert(sizeof(*((cfp))) == sizeof(rb_control_frame_t), "sizeof_cfp" ": " "sizeof(*((cfp))) == sizeof(rb_control_frame_t)"); const struct rb_control_frame_struct *bound = (void *)&((cfp)->sp)[((((iseq)->body)->param.lead_num))]; if ((__builtin_expect(!!(((cfp)) <= &bound[1]), 0))) { vm_stackoverflow(); } } while (0); + for (i=0; ibody)->param.lead_num; i++) { + argv[i] = RARRAY_AREF(ary, i); + } + return i; +} +static inline VALUE +vm_callee_setup_block_arg_arg0_check(VALUE *argv) +{ + VALUE ary, arg0 = argv[0]; + ary = rb_check_array_type(arg0); + ((void)0); + return ary; +} +static int +vm_callee_setup_block_arg(rb_execution_context_t *ec, struct rb_calling_info *calling, const struct rb_callinfo *ci, const rb_iseq_t *iseq, VALUE *argv, const enum arg_setup_type arg_setup_type) +{ + if (rb_simple_iseq_p(iseq)) { + rb_control_frame_t *cfp = ec->cfp; + VALUE arg0; + CALLER_SETUP_ARG(cfp, calling, ci); + CALLER_REMOVE_EMPTY_KW_SPLAT(cfp, calling, ci); + if (arg_setup_type == arg_setup_block && + calling->argc == 1 && + ((iseq)->body)->param.flags.has_lead && + !((iseq)->body)->param.flags.ambiguous_param0 && + !RB_NIL_P(arg0 = vm_callee_setup_block_arg_arg0_check(argv))) { + calling->argc = vm_callee_setup_block_arg_arg0_splat(cfp, iseq, argv, arg0); + } + if (calling->argc != ((iseq)->body)->param.lead_num) { + if (arg_setup_type == arg_setup_block) { + if (calling->argc < ((iseq)->body)->param.lead_num) { + int i; + do { __extension__ _Static_assert(sizeof(*((cfp)->sp)) == sizeof(VALUE), "sizeof_sp" ": " "sizeof(*((cfp)->sp)) == sizeof(VALUE)"); __extension__ _Static_assert(sizeof(*((cfp))) == sizeof(rb_control_frame_t), "sizeof_cfp" ": " "sizeof(*((cfp))) == sizeof(rb_control_frame_t)"); const struct rb_control_frame_struct *bound = (void *)&((cfp)->sp)[((((iseq)->body)->param.lead_num))]; if ((__builtin_expect(!!(((cfp)) <= &bound[1]), 0))) { vm_stackoverflow(); } } while (0); + for (i=calling->argc; i<((iseq)->body)->param.lead_num; i++) argv[i] = ((VALUE)RUBY_Qnil); + calling->argc = ((iseq)->body)->param.lead_num; + } + else if (calling->argc > ((iseq)->body)->param.lead_num) { + calling->argc = ((iseq)->body)->param.lead_num; + } + } + else { + argument_arity_error(ec, iseq, calling->argc, ((iseq)->body)->param.lead_num, ((iseq)->body)->param.lead_num); + } + } + return 0; + } + else { + return setup_parameters_complex(ec, iseq, calling, ci, argv, arg_setup_type); + } +} +static int +vm_yield_setup_args(rb_execution_context_t *ec, const rb_iseq_t *iseq, const int argc, VALUE *argv, int kw_splat, VALUE block_handler, enum arg_setup_type arg_setup_type) +{ + struct rb_calling_info calling_entry, *calling; + calling = &calling_entry; + calling->argc = argc; + calling->block_handler = block_handler; + calling->kw_splat = kw_splat; + calling->recv = ((VALUE)RUBY_Qundef); + struct rb_callinfo dummy_ci = (struct rb_callinfo) { .flags = RUBY_T_IMEMO | (imemo_callinfo << ((VALUE)RUBY_FL_USHIFT)) | ((VALUE)RUBY_FL_USER4), .mid = 0, .flag = (kw_splat ? (0x01 << VM_CALL_KW_SPLAT_bit) : 0), .argc = 0, .kwarg = 0, }; + return vm_callee_setup_block_arg(ec, calling, &dummy_ci, iseq, argv, arg_setup_type); +} +static VALUE +vm_invoke_iseq_block(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + struct rb_calling_info *calling, const struct rb_callinfo *ci, + _Bool is_lambda, VALUE block_handler) +{ + const struct rb_captured_block *captured = VM_BH_TO_ISEQ_BLOCK(block_handler); + const rb_iseq_t *iseq = rb_iseq_check(captured->code.iseq); + const int arg_size = ((iseq)->body)->param.size; + VALUE * const rsp = ((((reg_cfp)->sp))) - calling->argc; + int opt_pc = vm_callee_setup_block_arg(ec, calling, ci, iseq, rsp, is_lambda ? arg_setup_method : arg_setup_block); + (((reg_cfp)->sp) = (((rsp)))); + vm_push_frame(ec, iseq, + VM_FRAME_MAGIC_BLOCK | (is_lambda ? VM_FRAME_FLAG_LAMBDA : 0), + captured->self, + ((VALUE)((captured->ep)) | (0x01)), 0, + ((iseq)->body)->iseq_encoded + opt_pc, + rsp + arg_size, + ((iseq)->body)->local_table_size - arg_size, ((iseq)->body)->stack_max); + return ((VALUE)RUBY_Qundef); +} +static VALUE +vm_invoke_symbol_block(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + struct rb_calling_info *calling, const struct rb_callinfo *ci, + __attribute__ ((__unused__)) _Bool is_lambda, VALUE block_handler) +{ + if (calling->argc < 1) { + rb_raise(rb_eArgError, "no receiver given"); + } + else { + VALUE symbol = VM_BH_TO_SYMBOL(block_handler); + CALLER_SETUP_ARG(reg_cfp, calling, ci); + calling->recv = (*(((((reg_cfp)->sp)))-(--calling->argc)-1)); + return vm_call_symbol(ec, reg_cfp, calling, ci, symbol, 0); + } +} +static VALUE +vm_invoke_ifunc_block(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + struct rb_calling_info *calling, const struct rb_callinfo *ci, + __attribute__ ((__unused__)) _Bool is_lambda, VALUE block_handler) +{ + VALUE val; + int argc; + const struct rb_captured_block *captured = VM_BH_TO_IFUNC_BLOCK(block_handler); + CALLER_SETUP_ARG(ec->cfp, calling, ci); + CALLER_REMOVE_EMPTY_KW_SPLAT(ec->cfp, calling, ci); + argc = calling->argc; + val = vm_yield_with_cfunc(ec, captured, captured->self, argc, (((((reg_cfp)->sp)))-(argc)), calling->kw_splat, calling->block_handler, ((void*)0)); + ((((reg_cfp)->sp) -= (((argc))))); + return val; +} +static VALUE +vm_proc_to_block_handler(VALUE procval) +{ + const struct rb_block *block = vm_proc_block(procval); + switch (vm_block_type(block)) { + case block_type_iseq: + return VM_BH_FROM_ISEQ_BLOCK(&block->as.captured); + case block_type_ifunc: + return VM_BH_FROM_IFUNC_BLOCK(&block->as.captured); + case block_type_symbol: + return VM_BH_FROM_SYMBOL(block->as.symbol); + case block_type_proc: + return VM_BH_FROM_PROC(block->as.proc); + } + __builtin_unreachable(); + return ((VALUE)RUBY_Qundef); +} +static VALUE +vm_invoke_proc_block(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + struct rb_calling_info *calling, const struct rb_callinfo *ci, + _Bool is_lambda, VALUE block_handler) +{ + while (vm_block_handler_type(block_handler) == block_handler_type_proc) { + VALUE proc = VM_BH_TO_PROC(block_handler); + is_lambda = block_proc_is_lambda(proc); + block_handler = vm_proc_to_block_handler(proc); + } + return vm_invoke_block(ec, reg_cfp, calling, ci, is_lambda, block_handler); +} +static inline VALUE +vm_invoke_block(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + struct rb_calling_info *calling, const struct rb_callinfo *ci, + _Bool is_lambda, VALUE block_handler) +{ + VALUE (*func)(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, + struct rb_calling_info *calling, const struct rb_callinfo *ci, + _Bool is_lambda, VALUE block_handler); + switch (vm_block_handler_type(block_handler)) { + case block_handler_type_iseq: func = vm_invoke_iseq_block; break; + case block_handler_type_ifunc: func = vm_invoke_ifunc_block; break; + case block_handler_type_proc: func = vm_invoke_proc_block; break; + case block_handler_type_symbol: func = vm_invoke_symbol_block; break; + default: rb_bug("vm_invoke_block: unreachable"); + } + return func(ec, reg_cfp, calling, ci, is_lambda, block_handler); +} +static VALUE +vm_make_proc_with_iseq(const rb_iseq_t *blockiseq) +{ + const rb_execution_context_t *ec = rb_current_execution_context(1); + const rb_control_frame_t *cfp = rb_vm_get_ruby_level_next_cfp(ec, ec->cfp); + struct rb_captured_block *captured; + if (cfp == 0) { + rb_bug("vm_make_proc_with_iseq: unreachable"); + } + captured = VM_CFP_TO_CAPTURED_BLOCK(cfp); + captured->code.iseq = blockiseq; + return rb_vm_make_proc(ec, captured, rb_cProc); +} +static VALUE +vm_once_exec(VALUE iseq) +{ + VALUE proc = vm_make_proc_with_iseq((rb_iseq_t *)iseq); + return rb_proc_call_with_block(proc, 0, 0, ((VALUE)RUBY_Qnil)); +} +static VALUE +vm_once_clear(VALUE data) +{ + union iseq_inline_storage_entry *is = (union iseq_inline_storage_entry *)data; + is->once.running_thread = ((void*)0); + return ((VALUE)RUBY_Qnil); +} +static _Bool +check_respond_to_missing(VALUE obj, VALUE v) +{ + VALUE args[2]; + VALUE r; + args[0] = obj; args[1] = ((VALUE)RUBY_Qfalse); + r = rb_check_funcall(v, idRespond_to_missing, 2, args); + if (!RB_UNDEF_P(r) && RB_TEST(r)) { + return 1; + } + else { + return 0; + } +} +static _Bool +vm_defined(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, rb_num_t op_type, VALUE obj, VALUE v) +{ + VALUE klass; + enum defined_type type = (enum defined_type)op_type; + switch (type) { + case DEFINED_IVAR: + return rb_ivar_defined((((((reg_cfp)))->self)), rb_sym2id(obj)); + break; + case DEFINED_GVAR: + return rb_gvar_defined(rb_sym2id(obj)); + break; + case DEFINED_CVAR: { + const rb_cref_t *cref = vm_get_cref(((((reg_cfp)->ep)))); + klass = vm_get_cvar_base(cref, (((reg_cfp))), 0); + return rb_cvar_defined(klass, rb_sym2id(obj)); + break; + } + case DEFINED_CONST: + case DEFINED_CONST_FROM: { + _Bool allow_nil = type == DEFINED_CONST; + klass = v; + return vm_get_ev_const(ec, klass, rb_sym2id(obj), allow_nil, 1); + break; + } + case DEFINED_FUNC: + klass = rb_class_of(v); + return rb_ec_obj_respond_to(ec, v, rb_sym2id(obj), 1); + break; + case DEFINED_METHOD:{ + VALUE klass = rb_class_of(v); + const rb_method_entry_t *me = rb_method_entry_with_refinements(klass, rb_sym2id(obj), ((void*)0)); + if (me) { + switch ((rb_method_visibility_t)(((me)->flags & (((VALUE)RUBY_FL_USER4) | ((VALUE)RUBY_FL_USER5))) >> ((((VALUE)RUBY_FL_USHIFT) + 4)+0))) { + case METHOD_VISI_PRIVATE: + break; + case METHOD_VISI_PROTECTED: + if (!rb_obj_is_kind_of((((((reg_cfp)))->self)), rb_class_real(me->defined_class))) { + break; + } + case METHOD_VISI_PUBLIC: + return 1; + break; + default: + rb_bug("vm_defined: unreachable: %u", (unsigned int)(rb_method_visibility_t)(((me)->flags & (((VALUE)RUBY_FL_USER4) | ((VALUE)RUBY_FL_USER5))) >> ((((VALUE)RUBY_FL_USHIFT) + 4)+0))); + } + } + else { + return check_respond_to_missing(obj, v); + } + break; + } + case DEFINED_YIELD: + if (((VM_EP_LEP(((((reg_cfp)->ep)))))[(-1)]) != 0) { + return 1; + } + break; + case DEFINED_ZSUPER: + { + const rb_callable_method_entry_t *me = rb_vm_frame_method_entry((((reg_cfp)))); + if (me) { + VALUE klass = vm_search_normal_superclass(me->defined_class); + ID id = me->def->original_id; + return rb_method_boundp(klass, id, 0); + } + } + break; + case DEFINED_REF:{ + return vm_getspecial(ec, (VM_EP_LEP(((((reg_cfp)->ep))))), ((VALUE)RUBY_Qfalse), RB_FIX2INT(obj)) != ((VALUE)RUBY_Qnil); + break; + } + default: + rb_bug("unimplemented defined? type (VM)"); + break; + } + return 0; +}static inline +_Bool +rb_vm_defined(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, rb_num_t op_type, VALUE obj, VALUE v) +{ + return vm_defined(ec, reg_cfp, op_type, obj, v); +} +static const VALUE * +vm_get_ep(const VALUE *const reg_ep, rb_num_t lv) +{ + rb_num_t i; + const VALUE *ep = reg_ep; + for (i = 0; i < lv; i++) { + ep = ((VALUE *)((ep)[(-1)] & ~0x03)); + } + return ep; +} +static VALUE +vm_get_special_object(const VALUE *const reg_ep, + enum vm_special_object_type type) +{ + switch (type) { + case VM_SPECIAL_OBJECT_VMCORE: + return rb_mRubyVMFrozenCore; + case VM_SPECIAL_OBJECT_CBASE: + return vm_get_cbase(reg_ep); + case VM_SPECIAL_OBJECT_CONST_BASE: + return vm_get_const_base(reg_ep); + default: + rb_bug("putspecialobject insn: unknown value_type %d", type); + } +} +static VALUE +vm_concat_array(VALUE ary1, VALUE ary2st) +{ + const VALUE ary2 = ary2st; + VALUE tmp1 = rb_check_to_array(ary1); + VALUE tmp2 = rb_check_to_array(ary2); + if (RB_NIL_P(tmp1)) { + tmp1 = rb_ary_new_from_args(1, ary1); + } + if (RB_NIL_P(tmp2)) { + tmp2 = rb_ary_new_from_args(1, ary2); + } + if (tmp1 == ary1) { + tmp1 = rb_ary_dup(ary1); + } + return rb_ary_concat(tmp1, tmp2); +}static inline +VALUE +rb_vm_concat_array(VALUE ary1, VALUE ary2st) +{ + return vm_concat_array(ary1, ary2st); +} +static VALUE +vm_splat_array(VALUE flag, VALUE ary) +{ + VALUE tmp = rb_check_to_array(ary); + if (RB_NIL_P(tmp)) { + return rb_ary_new_from_args(1, ary); + } + else if (RB_TEST(flag)) { + return rb_ary_dup(tmp); + } + else { + return tmp; + } +}static inline +VALUE +rb_vm_splat_array(VALUE flag, VALUE ary) +{ + return vm_splat_array(flag, ary); +} +static VALUE +vm_check_match(rb_execution_context_t *ec, VALUE target, VALUE pattern, rb_num_t flag) +{ + enum vm_check_match_type type = ((int)flag) & 0x03; + if (flag & 0x04) { + long i; + const long n = rb_array_len(pattern); + for (i = 0; i < n; i++) { + VALUE v = RARRAY_AREF(pattern, i); + VALUE c = check_match(ec, v, target, type); + if (RB_TEST(c)) { + return c; + } + } + return ((VALUE)RUBY_Qfalse); + } + else { + return check_match(ec, pattern, target, type); + } +} +static VALUE +vm_check_keyword(lindex_t bits, lindex_t idx, const VALUE *ep) +{ + const VALUE kw_bits = *(ep - bits); + if (RB_FIXNUM_P(kw_bits)) { + unsigned int b = (unsigned int)rb_fix2ulong(kw_bits); + if ((idx < (32-1)) && (b & (0x01 << idx))) + return ((VALUE)RUBY_Qfalse); + } + else { + ((void)0); + if (rb_hash_has_key(kw_bits, __builtin_choose_expr( __builtin_constant_p(idx), ((VALUE)(idx)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(idx)))) return ((VALUE)RUBY_Qfalse); + } + return ((VALUE)RUBY_Qtrue); +} +static void +vm_dtrace(rb_event_flag_t flag, rb_execution_context_t *ec) +{ + if (0 || + 0 || + 0 || + 0) { + switch (flag) { + case 0x0008: + do { if ((__builtin_expect(!!(0), 0))) { struct ruby_dtrace_method_hook_args args; if (rb_dtrace_setup(ec, 0, 0, &args)) { do {} while (0); } } } while (0); + return; + case 0x0020: + do { if ((__builtin_expect(!!(0), 0))) { struct ruby_dtrace_method_hook_args args; if (rb_dtrace_setup(ec, 0, 0, &args)) { do {} while (0); } } } while (0); + return; + case 0x0010: + do { if ((__builtin_expect(!!(0), 0))) { struct ruby_dtrace_method_hook_args args; if (rb_dtrace_setup(ec, 0, 0, &args)) { do {} while (0); } } } while (0); + return; + case 0x0040: + do { if ((__builtin_expect(!!(0), 0))) { struct ruby_dtrace_method_hook_args args; if (rb_dtrace_setup(ec, 0, 0, &args)) { do {} while (0); } } } while (0); + return; + } + } +} +static VALUE +vm_const_get_under(ID id, rb_num_t flags, VALUE cbase) +{ + if (!rb_const_defined_at(cbase, id)) { + return 0; + } + else if (((flags) & 0x08)) { + return rb_public_const_get_at(cbase, id); + } + else { + return rb_const_get_at(cbase, id); + } +} +static VALUE +vm_check_if_class(ID id, rb_num_t flags, VALUE super, VALUE klass) +{ + if (!(__builtin_constant_p(RUBY_T_CLASS) ? rbimpl_RB_TYPE_P_fastpath((klass), (RUBY_T_CLASS)) : (RB_TYPE_P)((klass), (RUBY_T_CLASS)))) { + return 0; + } + else if (((flags) & 0x10)) { + VALUE tmp = rb_class_real(RCLASS_SUPER(klass)); + if (tmp != super) { + rb_raise(rb_eTypeError, + "superclass mismatch for class %""l""i" "\v""", + rb_id2str(id)); + } + else { + return klass; + } + } + else { + return klass; + } +} +static VALUE +vm_check_if_module(ID id, VALUE mod) +{ + if (!(__builtin_constant_p(RUBY_T_MODULE) ? rbimpl_RB_TYPE_P_fastpath((mod), (RUBY_T_MODULE)) : (RB_TYPE_P)((mod), (RUBY_T_MODULE)))) { + return 0; + } + else { + return mod; + } +} +static VALUE +declare_under(ID id, VALUE cbase, VALUE c) +{ + rb_set_class_path_string(c, cbase, rb_id2str(id)); + rb_const_set(cbase, id, c); + return c; +} +static VALUE +vm_declare_class(ID id, rb_num_t flags, VALUE cbase, VALUE super) +{ + VALUE s = ((flags) & 0x10) ? super : rb_cObject; + VALUE c = declare_under(id, cbase, rb_define_class_id(id, s)); + rb_define_alloc_func(c, rb_get_alloc_func(c)); + rb_class_inherited(s, c); + return c; +} +static VALUE +vm_declare_module(ID id, VALUE cbase) +{ + return declare_under(id, cbase, rb_module_new()); +} +__declspec(noreturn) static void unmatched_redefinition(const char *type, VALUE cbase, ID id, VALUE old); +static void +unmatched_redefinition(const char *type, VALUE cbase, ID id, VALUE old) +{ + VALUE name = rb_id2str(id); + VALUE message = rb_sprintf("%""l""i" "\v"" is not a %s", + name, type); + VALUE location = rb_const_source_location_at(cbase, id); + if (!RB_NIL_P(location)) { + rb_str_catf(message, "\n%""l""i" "\v"":%""l""i" "\v"":" + " previous definition of %""l""i" "\v"" was here", + rb_ary_entry(location, 0), rb_ary_entry(location, 1), name); + } + rb_exc_raise(rb_exc_new_str(rb_eTypeError, message)); +} +static VALUE +vm_define_class(ID id, rb_num_t flags, VALUE cbase, VALUE super) +{ + VALUE klass; + if (((flags) & 0x10) && !(__builtin_constant_p(RUBY_T_CLASS) ? rbimpl_RB_TYPE_P_fastpath((super), (RUBY_T_CLASS)) : (RB_TYPE_P)((super), (RUBY_T_CLASS)))) { + rb_raise(rb_eTypeError, + "superclass must be an instance of Class (given an instance of %""l""i" "\v"")", + rb_obj_class(super)); + } + vm_check_if_namespace(cbase); + rb_autoload_load(cbase, id); + if ((klass = vm_const_get_under(id, flags, cbase)) != 0) { + if (!vm_check_if_class(id, flags, super, klass)) + unmatched_redefinition("class", cbase, id, klass); + return klass; + } + else { + return vm_declare_class(id, flags, cbase, super); + } +} +static VALUE +vm_define_module(ID id, rb_num_t flags, VALUE cbase) +{ + VALUE mod; + vm_check_if_namespace(cbase); + if ((mod = vm_const_get_under(id, flags, cbase)) != 0) { + if (!vm_check_if_module(id, mod)) + unmatched_redefinition("module", cbase, id, mod); + return mod; + } + else { + return vm_declare_module(id, cbase); + } +} +static VALUE +vm_find_or_create_class_by_id(ID id, + rb_num_t flags, + VALUE cbase, + VALUE super) +{ + rb_vm_defineclass_type_t type = ((rb_vm_defineclass_type_t)(flags) & VM_DEFINECLASS_TYPE_MASK); + switch (type) { + case VM_DEFINECLASS_TYPE_CLASS: + return vm_define_class(id, flags, cbase, super); + case VM_DEFINECLASS_TYPE_SINGLETON_CLASS: + return rb_singleton_class(cbase); + case VM_DEFINECLASS_TYPE_MODULE: + return vm_define_module(id, flags, cbase); + default: + rb_bug("unknown defineclass type: %d", (int)type); + } +} +static rb_method_visibility_t +vm_scope_visibility_get(const rb_execution_context_t *ec) +{ + const rb_control_frame_t *cfp = rb_vm_get_ruby_level_next_cfp(ec, ec->cfp); + if (!vm_env_cref_by_cref(cfp->ep)) { + return METHOD_VISI_PUBLIC; + } + else { + return CREF_SCOPE_VISI(vm_ec_cref(ec))->method_visi; + } +} +static int +vm_scope_module_func_check(const rb_execution_context_t *ec) +{ + const rb_control_frame_t *cfp = rb_vm_get_ruby_level_next_cfp(ec, ec->cfp); + if (!vm_env_cref_by_cref(cfp->ep)) { + return 0; + } + else { + return CREF_SCOPE_VISI(vm_ec_cref(ec))->module_func; + } +} +static void +vm_define_method(const rb_execution_context_t *ec, VALUE obj, ID id, VALUE iseqval, int is_singleton) +{ + VALUE klass; + rb_method_visibility_t visi; + rb_cref_t *cref = vm_ec_cref(ec); + if (is_singleton) { + klass = rb_singleton_class(obj); + visi = METHOD_VISI_PUBLIC; + } + else { + klass = CREF_CLASS_FOR_DEFINITION(cref); + visi = vm_scope_visibility_get(ec); + } + if (RB_NIL_P(klass)) { + rb_raise(rb_eTypeError, "no class/module to add method"); + } + rb_add_method_iseq(klass, id, (const rb_iseq_t *)iseqval, cref, visi); + if (id == (__builtin_constant_p("initialize") ? __extension__ ({ static ID rbimpl_id; rbimpl_intern_const(&rbimpl_id, ("initialize")); }) : (rb_intern)("initialize")) && klass != rb_cObject && (__builtin_constant_p(RUBY_T_CLASS) ? rbimpl_RB_TYPE_P_fastpath((klass), (RUBY_T_CLASS)) : (RB_TYPE_P)((klass), (RUBY_T_CLASS))) && (rb_get_alloc_func(klass) == rb_class_allocate_instance)) { + ((rb_classext_t *)((char *)(klass) + sizeof(struct RClass)))->max_iv_count = rb_estimate_iv_count(klass, (const rb_iseq_t *)iseqval); + } + if (!is_singleton && vm_scope_module_func_check(ec)) { + klass = rb_singleton_class(klass); + rb_add_method_iseq(klass, id, (const rb_iseq_t *)iseqval, cref, METHOD_VISI_PUBLIC); + } +} +static VALUE +vm_invokeblock_i(struct rb_execution_context_struct *ec, + struct rb_control_frame_struct *reg_cfp, + struct rb_calling_info *calling) +{ + const struct rb_callinfo *ci = calling->ci; + VALUE block_handler = VM_CF_BLOCK_HANDLER((((reg_cfp)))); + if (block_handler == 0) { + rb_vm_localjump_error("no block given (yield)", ((VALUE)RUBY_Qnil), 0); + } + else { + return vm_invoke_block(ec, (((reg_cfp))), calling, ci, 0, block_handler); + } +} +static const struct rb_callcache * +vm_search_method_wrap(const struct rb_control_frame_struct *reg_cfp, struct rb_call_data *cd, VALUE recv) +{ + return vm_search_method((VALUE)reg_cfp->iseq, cd, recv); +} +static const struct rb_callcache * +vm_search_invokeblock(const struct rb_control_frame_struct *reg_cfp, struct rb_call_data *cd, VALUE recv) +{ + static const struct rb_callcache cc = { + .flags = RUBY_T_IMEMO | (imemo_callcache << ((VALUE)RUBY_FL_USHIFT)) | ((VALUE)RUBY_FL_FREEZE), + .klass = 0, + .cme_ = 0, + .call_ = vm_invokeblock_i, + .aux_ = {0}, + }; + return &cc; +} +static +VALUE +vm_sendish( + struct rb_execution_context_struct *ec, + struct rb_control_frame_struct *reg_cfp, + struct rb_call_data *cd, + VALUE block_handler, + const struct rb_callcache *(*method_explorer)(const struct rb_control_frame_struct *cfp, struct rb_call_data *cd, VALUE recv) +) { + VALUE val = ((VALUE)RUBY_Qundef); + const struct rb_callinfo *ci = cd->ci; + const struct rb_callcache *cc; + int argc = vm_ci_argc(ci); + VALUE recv = (*(((((reg_cfp)->sp)))-(argc)-1)); + struct rb_calling_info calling = { + .block_handler = block_handler, + .kw_splat = (vm_ci_flag(ci) & (0x01 << VM_CALL_KW_SPLAT_bit)) > 0, + .recv = recv, + .argc = argc, + .ci = ci, + }; + calling.cc = cc = method_explorer((((reg_cfp))), cd, recv); + val = vm_cc_call(cc)(ec, (((reg_cfp))), &calling); + if (!RB_UNDEF_P(val)) { + return val; + } + else { + do { (reg_cfp) = ec->cfp; } while (0); + } + if (((((((reg_cfp)))->iseq))->body)->catch_except_p) { + VM_ENV_FLAGS_SET(((((reg_cfp)->ep))), VM_FRAME_FLAG_FINISH); + return rb_vm_exec(ec, 1); + } + else if (RB_UNDEF_P(val = jit_exec(ec))) { + VM_ENV_FLAGS_SET(((((reg_cfp)->ep))), VM_FRAME_FLAG_FINISH); + return rb_vm_exec(ec, 0); + } + else { + return val; + } +} +VALUE rb_nil_to_s(VALUE); +VALUE rb_true_to_s(VALUE); +VALUE rb_false_to_s(VALUE); +VALUE rb_int_to_s(int argc, VALUE *argv, VALUE x); +VALUE rb_fix_to_s(VALUE); +VALUE rb_mod_to_s(VALUE); +VALUE rb_mod_name(VALUE); +static VALUE +vm_objtostring(const rb_iseq_t *iseq, VALUE recv, CALL_DATA cd) +{ + int type = ((int)rb_type(recv)); + if (type == RUBY_T_STRING) { + return recv; + } + const struct rb_callcache *cc = vm_search_method((VALUE)iseq, cd, recv); + switch (type) { + case RUBY_T_SYMBOL: + if (check_cfunc(vm_cc_cme(cc), rb_sym_to_s)) { + return rb_sym2str(recv); + } + break; + case RUBY_T_MODULE: + case RUBY_T_CLASS: + if (check_cfunc(vm_cc_cme(cc), rb_mod_to_s)) { + VALUE val = rb_mod_name(recv); + if (RB_NIL_P(val)) { + val = rb_mod_to_s(recv); + } + return val; + } + break; + case RUBY_T_NIL: + if (check_cfunc(vm_cc_cme(cc), rb_nil_to_s)) { + return rb_nil_to_s(recv); + } + break; + case RUBY_T_TRUE: + if (check_cfunc(vm_cc_cme(cc), rb_true_to_s)) { + return rb_true_to_s(recv); + } + break; + case RUBY_T_FALSE: + if (check_cfunc(vm_cc_cme(cc), rb_false_to_s)) { + return rb_false_to_s(recv); + } + break; + case RUBY_T_FIXNUM: + if (check_cfunc(vm_cc_cme(cc), rb_int_to_s)) { + return rb_fix_to_s(recv); + } + break; + } + return ((VALUE)RUBY_Qundef); +} +static VALUE +vm_opt_str_freeze(VALUE str, int bop, ID id) +{ + if (((__builtin_expect(!!((ruby_vm_redefined_flag[(bop)]&((1 << 2))) == 0), 1)))) { + return str; + } + else { + return ((VALUE)RUBY_Qundef); + } +} +static VALUE +vm_opt_newarray_max(rb_execution_context_t *ec, rb_num_t num, const VALUE *ptr) +{ + if (((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MAX)]&((1 << 3))) == 0), 1)))) { + if (num == 0) { + return ((VALUE)RUBY_Qnil); + } + else { + VALUE result = *ptr; + rb_snum_t i = num - 1; + while (i-- > 0) { + const VALUE v = *++ptr; + if (((RB_FIXNUM_P(v) && RB_FIXNUM_P(result) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_CMP)]&((1 << 0))) == 0), 1)))) ? (((long)v > (long)result) ? 1 : ((long)v < (long)result) ? -1 : 0) : (((__builtin_constant_p(RUBY_T_STRING) ? rbimpl_RB_TYPE_P_fastpath(((v)), (RUBY_T_STRING)) : (RB_TYPE_P)(((v)), (RUBY_T_STRING))) && rb_class_of(v) == rb_cString) && ((__builtin_constant_p(RUBY_T_STRING) ? rbimpl_RB_TYPE_P_fastpath(((result)), (RUBY_T_STRING)) : (RB_TYPE_P)(((result)), (RUBY_T_STRING))) && rb_class_of(result) == rb_cString) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_CMP)]&((1 << 2))) == 0), 1)))) ? rb_str_cmp(v, result) : (RB_FLOAT_TYPE_P(v) && RB_FLOAT_TYPE_P(result) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_CMP)]&((1 << 1))) == 0), 1)))) ? rb_float_cmp(v, result) : rb_cmpint(rb_funcallv(v, idCmp, 1, &result), v, result)) > 0) { + result = v; + } + } + return result; + } + } + else { + return rb_vm_call_with_refinements(ec, rb_ary_new_from_values(num, ptr), idMax, 0, ((void*)0), 0); + } +}static inline +VALUE +rb_vm_opt_newarray_max(rb_execution_context_t *ec, rb_num_t num, const VALUE *ptr) +{ + return vm_opt_newarray_max(ec, num, ptr); +} +static VALUE +vm_opt_newarray_min(rb_execution_context_t *ec, rb_num_t num, const VALUE *ptr) +{ + if (((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MIN)]&((1 << 3))) == 0), 1)))) { + if (num == 0) { + return ((VALUE)RUBY_Qnil); + } + else { + VALUE result = *ptr; + rb_snum_t i = num - 1; + while (i-- > 0) { + const VALUE v = *++ptr; + if (((RB_FIXNUM_P(v) && RB_FIXNUM_P(result) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_CMP)]&((1 << 0))) == 0), 1)))) ? (((long)v > (long)result) ? 1 : ((long)v < (long)result) ? -1 : 0) : (((__builtin_constant_p(RUBY_T_STRING) ? rbimpl_RB_TYPE_P_fastpath(((v)), (RUBY_T_STRING)) : (RB_TYPE_P)(((v)), (RUBY_T_STRING))) && rb_class_of(v) == rb_cString) && ((__builtin_constant_p(RUBY_T_STRING) ? rbimpl_RB_TYPE_P_fastpath(((result)), (RUBY_T_STRING)) : (RB_TYPE_P)(((result)), (RUBY_T_STRING))) && rb_class_of(result) == rb_cString) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_CMP)]&((1 << 2))) == 0), 1)))) ? rb_str_cmp(v, result) : (RB_FLOAT_TYPE_P(v) && RB_FLOAT_TYPE_P(result) && ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_CMP)]&((1 << 1))) == 0), 1)))) ? rb_float_cmp(v, result) : rb_cmpint(rb_funcallv(v, idCmp, 1, &result), v, result)) < 0) { + result = v; + } + } + return result; + } + } + else { + return rb_vm_call_with_refinements(ec, rb_ary_new_from_values(num, ptr), idMin, 0, ((void*)0), 0); + } +}static inline +VALUE +rb_vm_opt_newarray_min(rb_execution_context_t *ec, rb_num_t num, const VALUE *ptr) +{ + return vm_opt_newarray_min(ec, num, ptr); +} +static void +vm_track_constant_cache(ID id, void *ic) +{ + struct rb_id_table *const_cache = rb_current_vm()->constant_cache; + VALUE lookup_result; + st_table *ics; + if (rb_id_table_lookup(const_cache, id, &lookup_result)) { + ics = (st_table *)lookup_result; + } + else { + ics = rb_st_init_numtable(); + rb_id_table_insert(const_cache, id, (VALUE)ics); + } + rb_st_insert(ics, (st_data_t) ic, (st_data_t) ((VALUE)RUBY_Qtrue)); +} +static void +vm_ic_track_const_chain(rb_control_frame_t *cfp, IC ic, const ID *segments) +{ + { unsigned int _lev; rb_vm_lock_enter(&_lev, "./vm_insnhelper.c", 5291);; + for (int i = 0; segments[i]; i++) { + ID id = segments[i]; + if (id == idNULL) continue; + vm_track_constant_cache(id, ic); + } + rb_vm_lock_leave(&_lev, "./vm_insnhelper.c", 5299); }; +} +static inline _Bool +vm_inlined_ic_hit_p(VALUE flags, VALUE value, const rb_cref_t *ic_cref, const VALUE *reg_ep) +{ + if ((flags & ((VALUE)RUBY_FL_USER4)) || rb_ractor_main_p()) { + ((void)0); + return (ic_cref == ((void*)0) || + ic_cref == vm_get_cref(reg_ep)); + } + return 0; +} +static _Bool +vm_ic_hit_p(const struct iseq_inline_constant_cache_entry *ice, const VALUE *reg_ep) +{ + ((void)0); + return vm_inlined_ic_hit_p(ice->flags, ice->value, ice->ic_cref, reg_ep); +}static inline +_Bool +rb_vm_ic_hit_p(IC ic, const VALUE *reg_ep) +{ + return ic->entry && vm_ic_hit_p(ic->entry, reg_ep); +} +COLDFUNC static void +vm_ic_update(const rb_iseq_t *iseq, IC ic, VALUE val, const VALUE *reg_ep, const VALUE *pc) { + if (ruby_vm_const_missing_count > 0) { + ruby_vm_const_missing_count = 0; + ic->entry = ((void*)0); + return; + } + struct iseq_inline_constant_cache_entry *ice = (struct iseq_inline_constant_cache_entry *)rb_imemo_new(imemo_constcache, 0, 0, 0, 0); + rb_obj_write((VALUE)(ice), __extension__({ + ; + ; __typeof__((VALUE *)(&ice->value)) unaligned_member_access_result = ((VALUE *)(&ice->value)); + ; unaligned_member_access_result; }), (VALUE)(val), "./vm_insnhelper.c", 5339); + ice->ic_cref = vm_get_const_key_cref(reg_ep); + if (rb_ractor_shareable_p(val)) ice->flags |= ((VALUE)RUBY_FL_USER4); + rb_obj_write((VALUE)(iseq), __extension__({ + ; + ; __typeof__((VALUE *)(&ic->entry)) unaligned_member_access_result = ((VALUE *)(&ic->entry)); + ; unaligned_member_access_result; }), (VALUE)(ice), "./vm_insnhelper.c", 5342); + ((void)0); + unsigned pos = (unsigned)(pc - ((iseq)->body)->iseq_encoded); + rb_yjit_constant_ic_update(iseq, ic, pos); + rb_mjit_constant_ic_update(iseq, ic, pos); +} +static VALUE +vm_once_dispatch(rb_execution_context_t *ec, ISEQ iseq, ISE is) +{ + rb_thread_t *th = rb_ec_thread_ptr(ec); + rb_thread_t *const RUNNING_THREAD_ONCE_DONE = (rb_thread_t *)(0x1); + again: + if (is->once.running_thread == RUNNING_THREAD_ONCE_DONE) { + return is->once.value; + } + else if (is->once.running_thread == ((void*)0)) { + VALUE val; + is->once.running_thread = th; + val = rb_ensure(vm_once_exec, (VALUE)iseq, vm_once_clear, (VALUE)is); + rb_obj_write((VALUE)(ec->cfp->iseq), __extension__({ + ; + ; __typeof__((VALUE *)(&is->once.value)) unaligned_member_access_result = ((VALUE *)(&is->once.value)); + ; unaligned_member_access_result; }), (VALUE)(val), "./vm_insnhelper.c", 5364); + is->once.running_thread = RUNNING_THREAD_ONCE_DONE; + return val; + } + else if (is->once.running_thread == th) { + return vm_once_exec((VALUE)iseq); + } + else { + rb_vm_check_ints(ec); + rb_thread_schedule(); + goto again; + } +} +static OFFSET +vm_case_dispatch(CDHASH hash, OFFSET else_offset, VALUE key) +{ + switch (__extension__({ VALUE arg_obj = (key); RB_SPECIAL_CONST_P(arg_obj) ? -1 : (int)RB_BUILTIN_TYPE(arg_obj); })) { + case -1: + case RUBY_T_FLOAT: + case RUBY_T_SYMBOL: + case RUBY_T_BIGNUM: + case RUBY_T_STRING: + if (((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_EQQ)]&((1 << 6) | (1 << 0) | (1 << 1) | (1 << 9) | (1 << 10) | (1 << 11) | (1 << 2))) == 0), 1)))) { + st_data_t val; + if (RB_FLOAT_TYPE_P(key)) { + double kval = rb_float_value_inline(key); + if (!( sizeof(kval) == sizeof(float) ? __inline_isinff((float)(kval)) : sizeof(kval) == sizeof(double) ? __inline_isinfd((double)(kval)) : __inline_isinfl((long double)(kval))) && modf(kval, &kval) == 0.0) { + key = (((kval) < (9223372036854775807L / 2) + 1) && ((kval) >= ((-9223372036854775807L -1L) / 2))) ? RB_INT2FIX((long)kval) : rb_dbl2big(kval); + } + } + if (rb_hash_stlike_lookup(hash, key, &val)) { + return rb_fix2long((VALUE)val); + } + else { + return else_offset; + } + } + } + return 0; +} +__declspec(noreturn) static void vm_stack_consistency_error(const rb_execution_context_t *ec, const rb_control_frame_t *, const VALUE *); +static void +vm_stack_consistency_error(const rb_execution_context_t *ec, + const rb_control_frame_t *cfp, + const VALUE *bp) +{ + const ptrdiff_t nsp = ((cfp->sp) - (ec)->vm_stack); + const ptrdiff_t nbp = ((bp) - (ec)->vm_stack); + static const char stack_consistency_error[] = + "Stack consistency error (sp: %""t""d"", bp: %""t""d"")"; + rb_bug(stack_consistency_error, nsp, nbp); +} +ALWAYS_INLINE(static inline VALUE +vm_opt_plus(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_plus(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_PLUS)]&((1 << 0))) == 0), 1)))) { + return rb_fix_plus_fix(recv, obj); + } + else if (FLONUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_PLUS)]&((1 << 1))) == 0), 1)))) { + return rb_float_new_inline(rb_float_value_inline(recv) + rb_float_value_inline(obj)); + } + else if (RB_SPECIAL_CONST_P(recv) || RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cFloat && + RBASIC_CLASS(obj) == rb_cFloat && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_PLUS)]&((1 << 1))) == 0), 1)))) { + return rb_float_new_inline(rb_float_value_inline(recv) + rb_float_value_inline(obj)); + } + else if (RBASIC_CLASS(recv) == rb_cString && + RBASIC_CLASS(obj) == rb_cString && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_PLUS)]&((1 << 2))) == 0), 1)))) { + return rb_str_opt_plus(recv, obj); + } + else if (RBASIC_CLASS(recv) == rb_cArray && + RBASIC_CLASS(obj) == rb_cArray && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_PLUS)]&((1 << 3))) == 0), 1)))) { + return rb_ary_plus(recv, obj); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_minus(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_minus(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MINUS)]&((1 << 0))) == 0), 1)))) { + return rb_fix_minus_fix(recv, obj); + } + else if (FLONUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MINUS)]&((1 << 1))) == 0), 1)))) { + return rb_float_new_inline(rb_float_value_inline(recv) - rb_float_value_inline(obj)); + } + else if (RB_SPECIAL_CONST_P(recv) || RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cFloat && + RBASIC_CLASS(obj) == rb_cFloat && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MINUS)]&((1 << 1))) == 0), 1)))) { + return rb_float_new_inline(rb_float_value_inline(recv) - rb_float_value_inline(obj)); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_mult(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_mult(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MULT)]&((1 << 0))) == 0), 1)))) { + return rb_fix_mul_fix(recv, obj); + } + else if (FLONUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MULT)]&((1 << 1))) == 0), 1)))) { + return rb_float_new_inline(rb_float_value_inline(recv) * rb_float_value_inline(obj)); + } + else if (RB_SPECIAL_CONST_P(recv) || RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cFloat && + RBASIC_CLASS(obj) == rb_cFloat && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MULT)]&((1 << 1))) == 0), 1)))) { + return rb_float_new_inline(rb_float_value_inline(recv) * rb_float_value_inline(obj)); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_div(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_div(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_DIV)]&((1 << 0))) == 0), 1)))) { + return (rb_fix2long(obj) == 0) ? ((VALUE)RUBY_Qundef) : rb_fix_div_fix(recv, obj); + } + else if (FLONUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_DIV)]&((1 << 1))) == 0), 1)))) { + return rb_flo_div_flo(recv, obj); + } + else if (RB_SPECIAL_CONST_P(recv) || RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cFloat && + RBASIC_CLASS(obj) == rb_cFloat && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_DIV)]&((1 << 1))) == 0), 1)))) { + return rb_flo_div_flo(recv, obj); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_mod(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_mod(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MOD)]&((1 << 0))) == 0), 1)))) { + return (rb_fix2long(obj) == 0) ? ((VALUE)RUBY_Qundef) : rb_fix_mod_fix(recv, obj); + } + else if (FLONUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MOD)]&((1 << 1))) == 0), 1)))) { + return rb_float_new_inline(ruby_float_mod(rb_float_value_inline(recv), rb_float_value_inline(obj))); + } + else if (RB_SPECIAL_CONST_P(recv) || RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cFloat && + RBASIC_CLASS(obj) == rb_cFloat && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MOD)]&((1 << 1))) == 0), 1)))) { + return rb_float_new_inline(ruby_float_mod(rb_float_value_inline(recv), rb_float_value_inline(obj))); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_neq(const rb_iseq_t *iseq, CALL_DATA cd, CALL_DATA cd_eq, VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_neq(const rb_iseq_t *iseq, CALL_DATA cd, CALL_DATA cd_eq, VALUE recv, VALUE obj) { + if (vm_method_cfunc_is(iseq, cd, recv, rb_obj_not_equal)) { + VALUE val = opt_equality(iseq, recv, obj, cd_eq); + if (!RB_UNDEF_P(val)) { + return ((!RB_TEST(val)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + } + return ((VALUE)RUBY_Qundef); +} +ALWAYS_INLINE(static inline VALUE +vm_opt_lt(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_lt(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_LT)]&((1 << 0))) == 0), 1)))) { + return (((long)recv < (long)obj) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else if (FLONUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_LT)]&((1 << 1))) == 0), 1)))) { + return ((rb_float_value_inline(recv) < rb_float_value_inline(obj)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else if (RB_SPECIAL_CONST_P(recv) || RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cFloat && + RBASIC_CLASS(obj) == rb_cFloat && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_LT)]&((1 << 1))) == 0), 1)))) { + ; + return ((rb_float_value_inline(recv) < rb_float_value_inline(obj)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_le(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_le(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_LE)]&((1 << 0))) == 0), 1)))) { + return (((long)recv <= (long)obj) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else if (FLONUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_LE)]&((1 << 1))) == 0), 1)))) { + return ((rb_float_value_inline(recv) <= rb_float_value_inline(obj)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else if (RB_SPECIAL_CONST_P(recv) || RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cFloat && + RBASIC_CLASS(obj) == rb_cFloat && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_LE)]&((1 << 1))) == 0), 1)))) { + ; + return ((rb_float_value_inline(recv) <= rb_float_value_inline(obj)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_gt(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_gt(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_GT)]&((1 << 0))) == 0), 1)))) { + return (((long)recv > (long)obj) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else if (FLONUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_GT)]&((1 << 1))) == 0), 1)))) { + return ((rb_float_value_inline(recv) > rb_float_value_inline(obj)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else if (RB_SPECIAL_CONST_P(recv) || RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cFloat && + RBASIC_CLASS(obj) == rb_cFloat && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_GT)]&((1 << 1))) == 0), 1)))) { + ; + return ((rb_float_value_inline(recv) > rb_float_value_inline(obj)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_ge(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_ge(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_GE)]&((1 << 0))) == 0), 1)))) { + return (((long)recv >= (long)obj) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else if (FLONUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_GE)]&((1 << 1))) == 0), 1)))) { + return ((rb_float_value_inline(recv) >= rb_float_value_inline(obj)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else if (RB_SPECIAL_CONST_P(recv) || RB_SPECIAL_CONST_P(obj)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cFloat && + RBASIC_CLASS(obj) == rb_cFloat && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_GE)]&((1 << 1))) == 0), 1)))) { + ; + return ((rb_float_value_inline(recv) >= rb_float_value_inline(obj)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_ltlt(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_ltlt(VALUE recv, VALUE obj) { + if (RB_SPECIAL_CONST_P(recv)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cString && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_LTLT)]&((1 << 2))) == 0), 1)))) { + if ((__builtin_expect(!!((__builtin_constant_p(RUBY_T_STRING) ? rbimpl_RB_TYPE_P_fastpath((obj), (RUBY_T_STRING)) : (RB_TYPE_P)((obj), (RUBY_T_STRING)))), 1))) { + return rb_str_buf_append(recv, obj); + } + else { + return rb_str_concat(recv, obj); + } + } + else if (RBASIC_CLASS(recv) == rb_cArray && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_LTLT)]&((1 << 3))) == 0), 1)))) { + return rb_ary_push(recv, obj); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_and(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_and(VALUE recv, VALUE obj) { + VALUE ret = ((long) recv) & ((long) obj); + if (RB_FIXNUM_P(ret) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_AND)]&((1 << 0))) == 0), 1)))) { + return ret; + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_or(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_or(VALUE recv, VALUE obj) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_OR)]&((1 << 0))) == 0), 1)))) { + return recv | obj; + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_aref(VALUE recv, VALUE obj)); +static inline VALUE +vm_opt_aref(VALUE recv, VALUE obj) { + if (RB_SPECIAL_CONST_P(recv)) { + if (FIXNUM_2_P(recv, obj) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_AREF)]&((1 << 0))) == 0), 1)))) { + return rb_fix_aref(recv, obj); + } + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cArray && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_AREF)]&((1 << 3))) == 0), 1)))) { + if (RB_FIXNUM_P(obj)) { + return rb_ary_entry_internal(recv, rb_fix2long(obj)); + } + else { + return rb_ary_aref1(recv, obj); + } + } + else if (RBASIC_CLASS(recv) == rb_cHash && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_AREF)]&((1 << 4))) == 0), 1)))) { + return rb_hash_aref(recv, obj); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_aset(VALUE recv, VALUE obj, VALUE set)); +static inline VALUE +vm_opt_aset(VALUE recv, VALUE obj, VALUE set) { + if (RB_SPECIAL_CONST_P(recv)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cArray && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_ASET)]&((1 << 3))) == 0), 1))) && + RB_FIXNUM_P(obj)) { + rb_ary_store(recv, rb_fix2long(obj), set); + return set; + } + else if (RBASIC_CLASS(recv) == rb_cHash && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_ASET)]&((1 << 4))) == 0), 1)))) { + rb_hash_aset(recv, obj, set); + return set; + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_aref_with(VALUE recv, VALUE key)); +static inline VALUE +vm_opt_aref_with(VALUE recv, VALUE key) { + if (!RB_SPECIAL_CONST_P(recv) && RBASIC_CLASS(recv) == rb_cHash && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_AREF)]&((1 << 4))) == 0), 1))) && + rb_hash_compare_by_id_p(recv) == ((VALUE)RUBY_Qfalse) && + !RB_FL_TEST(recv, RHASH_PROC_DEFAULT)) { + return rb_hash_aref(recv, key); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_aset_with(VALUE recv, VALUE key, VALUE val)); +static inline VALUE +vm_opt_aset_with(VALUE recv, VALUE key, VALUE val) { + if (!RB_SPECIAL_CONST_P(recv) && RBASIC_CLASS(recv) == rb_cHash && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_ASET)]&((1 << 4))) == 0), 1))) && + rb_hash_compare_by_id_p(recv) == ((VALUE)RUBY_Qfalse)) { + return rb_hash_aset(recv, key, val); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +static VALUE +vm_opt_length(VALUE recv, int bop) +{ + if (RB_SPECIAL_CONST_P(recv)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cString && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(bop)]&((1 << 2))) == 0), 1)))) { + if (bop == BOP_EMPTY_P) { + return rb_long2num_inline(RSTRING_LEN(recv)); + } + else { + return rb_str_length(recv); + } + } + else if (RBASIC_CLASS(recv) == rb_cArray && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(bop)]&((1 << 3))) == 0), 1)))) { + return rb_long2num_inline(rb_array_len(recv)); + } + else if (RBASIC_CLASS(recv) == rb_cHash && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(bop)]&((1 << 4))) == 0), 1)))) { + return __builtin_choose_expr( __builtin_constant_p(RHASH_SIZE(recv)), ((VALUE)(RHASH_SIZE(recv))) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(RHASH_SIZE(recv))); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +static VALUE +vm_opt_empty_p(VALUE recv) +{ + switch (vm_opt_length(recv, BOP_EMPTY_P)) { + case ((VALUE)RUBY_Qundef): return ((VALUE)RUBY_Qundef); + case __builtin_choose_expr( __builtin_constant_p(0), ((VALUE)(0)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(0)): return ((VALUE)RUBY_Qtrue); + default: return ((VALUE)RUBY_Qfalse); + } +} +VALUE rb_false(VALUE obj); +static VALUE +vm_opt_nil_p(const rb_iseq_t *iseq, CALL_DATA cd, VALUE recv) +{ + if (RB_NIL_P(recv) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_NIL_P)]&((1 << 9))) == 0), 1)))) { + return ((VALUE)RUBY_Qtrue); + } + else if (vm_method_cfunc_is(iseq, cd, recv, rb_false)) { + return ((VALUE)RUBY_Qfalse); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +static VALUE +fix_succ(VALUE x) +{ + switch (x) { + case ~0UL: + return __builtin_choose_expr( __builtin_constant_p(0), ((VALUE)(0)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(0)); + case ((~0UL)>>(int)(1)): + return rb_uint2big(1UL << (8 * 8 - 2)); + default: + return x + 2; + } +} +static VALUE +vm_opt_succ(VALUE recv) +{ + if (RB_FIXNUM_P(recv) && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_SUCC)]&((1 << 0))) == 0), 1)))) { + return fix_succ(recv); + } + else if (RB_SPECIAL_CONST_P(recv)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cString && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_SUCC)]&((1 << 2))) == 0), 1)))) { + return rb_str_succ(recv); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +ALWAYS_INLINE(static inline VALUE +vm_opt_not(const rb_iseq_t *iseq, CALL_DATA cd, VALUE recv)); +static inline VALUE +vm_opt_not(const rb_iseq_t *iseq, CALL_DATA cd, VALUE recv) { + if (vm_method_cfunc_is(iseq, cd, recv, rb_obj_not)) { + return ((!RB_TEST(recv)) ? ((VALUE)RUBY_Qtrue) : ((VALUE)RUBY_Qfalse)); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +static VALUE +vm_opt_regexpmatch2(VALUE recv, VALUE obj) +{ + if (RB_SPECIAL_CONST_P(recv)) { + return ((VALUE)RUBY_Qundef); + } + else if (RBASIC_CLASS(recv) == rb_cString && + rb_class_of(obj) == rb_cRegexp && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MATCH)]&((1 << 2))) == 0), 1)))) { + return rb_reg_match(obj, recv); + } + else if (RBASIC_CLASS(recv) == rb_cRegexp && + ((__builtin_expect(!!((ruby_vm_redefined_flag[(BOP_MATCH)]&((1 << 8))) == 0), 1)))) { + return rb_reg_match(recv, obj); + } + else { + return ((VALUE)RUBY_Qundef); + } +} +rb_event_flag_t rb_iseq_event_flags(const rb_iseq_t *iseq, size_t pos); +__declspec(noinline) static void vm_trace(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp); +static inline void +vm_trace_hook(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, const VALUE *pc, + rb_event_flag_t pc_events, rb_event_flag_t target_event, + rb_hook_list_t *global_hooks, rb_hook_list_t *const *local_hooks_ptr, VALUE val) +{ + rb_event_flag_t event = pc_events & target_event; + VALUE self = (((((reg_cfp)))->self)); + ((void)0); + if (event & global_hooks->events) { + reg_cfp->pc++; + vm_dtrace(event, ec); + rb_exec_event_hook_orig(ec, global_hooks, event, self, 0, 0, 0 , val, 0); + reg_cfp->pc--; + } + rb_hook_list_t *local_hooks = *local_hooks_ptr; + if (local_hooks != ((void*)0)) { + if (event & local_hooks->events) { + reg_cfp->pc++; + rb_exec_event_hook_orig(ec, local_hooks, event, self, 0, 0, 0 , val, 0); + reg_cfp->pc--; + } + } +}static inline +_Bool +rb_vm_opt_cfunc_p(CALL_CACHE cc, int insn) +{ + switch (insn) { + case YARVINSN_opt_eq: + return check_cfunc(vm_cc_cme(cc), rb_obj_equal); + case YARVINSN_opt_nil_p: + return check_cfunc(vm_cc_cme(cc), rb_false); + case YARVINSN_opt_not: + return check_cfunc(vm_cc_cme(cc), rb_obj_not); + default: + return 0; + } +} +static void +vm_trace(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp) +{ + const VALUE *pc = reg_cfp->pc; + rb_event_flag_t enabled_flags = ruby_vm_event_flags & (0x0001 | 0x0002 | 0x0004 | 0x0008 | 0x0010| 0x0020| 0x0040| 0x0100| 0x0200| 0x010000| 0x020000); + rb_event_flag_t global_events = enabled_flags; + if (enabled_flags == 0 && ruby_vm_event_local_num == 0) { + return; + } + else { + const rb_iseq_t *iseq = reg_cfp->iseq; + VALUE iseq_val = (VALUE)iseq; + size_t pos = pc - ((iseq)->body)->iseq_encoded; + rb_event_flag_t pc_events = rb_iseq_event_flags(iseq, pos); + rb_hook_list_t *local_hooks = iseq->aux.exec.local_hooks; + rb_hook_list_t *const *local_hooks_ptr = &iseq->aux.exec.local_hooks; + rb_event_flag_t iseq_local_events = local_hooks != ((void*)0) ? local_hooks->events : 0; + rb_hook_list_t *bmethod_local_hooks = ((void*)0); + rb_hook_list_t **bmethod_local_hooks_ptr = ((void*)0); + rb_event_flag_t bmethod_local_events = 0; + const _Bool bmethod_frame = VM_FRAME_BMETHOD_P(reg_cfp); + enabled_flags |= iseq_local_events; + ((void)0); + if (bmethod_frame) { + const rb_callable_method_entry_t *me = rb_vm_frame_method_entry(reg_cfp); + ((void)0); + bmethod_local_hooks = me->def->body.bmethod.hooks; + bmethod_local_hooks_ptr = &me->def->body.bmethod.hooks; + if (bmethod_local_hooks) { + bmethod_local_events = bmethod_local_hooks->events; + } + } + if ((pc_events & enabled_flags) == 0 && !bmethod_frame) { + return; + } + else if (ec->trace_arg != ((void*)0)) { + return; + } + else { + rb_hook_list_t *global_hooks = rb_ec_ractor_hooks(ec); + rb_event_flag_t bmethod_events = global_events | bmethod_local_events; + if (0) { + ruby_debug_printf("vm_trace>>%4d (%4x) - %s:%d %s\n", + (int)pos, + (int)pc_events, + RSTRING_PTR(rb_iseq_path(iseq)), + (int)rb_iseq_line_no(iseq, pos), + RSTRING_PTR(rb_iseq_label(iseq))); + } + ((void)0); + ((void)0); + if ((pc_events & 0x0100) && bmethod_frame && (bmethod_events & 0x0008)) { + vm_trace_hook(ec, reg_cfp, pc, 0x0008, 0x0008, global_hooks, bmethod_local_hooks_ptr, ((VALUE)RUBY_Qundef)); + } + do { if ((pc_events & (0x0002 | 0x0008 | 0x0100)) & enabled_flags) { vm_trace_hook(ec, reg_cfp, pc, pc_events, (0x0002 | 0x0008 | 0x0100), global_hooks, local_hooks_ptr, (((VALUE)RUBY_Qundef))); } } while (0); + do { if ((pc_events & (0x0001)) & enabled_flags) { vm_trace_hook(ec, reg_cfp, pc, pc_events, (0x0001), global_hooks, local_hooks_ptr, (((VALUE)RUBY_Qundef))); } } while (0); + do { if ((pc_events & (0x010000)) & enabled_flags) { vm_trace_hook(ec, reg_cfp, pc, pc_events, (0x010000), global_hooks, local_hooks_ptr, (((VALUE)RUBY_Qundef))); } } while (0); + do { if ((pc_events & (0x020000)) & enabled_flags) { vm_trace_hook(ec, reg_cfp, pc, pc_events, (0x020000), global_hooks, local_hooks_ptr, (((VALUE)RUBY_Qundef))); } } while (0); + do { if ((pc_events & (0x0004 | 0x0010 | 0x0200)) & enabled_flags) { vm_trace_hook(ec, reg_cfp, pc, pc_events, (0x0004 | 0x0010 | 0x0200), global_hooks, local_hooks_ptr, ((*(((((reg_cfp)->sp)))-(0)-1)))); } } while (0); + if ((pc_events & 0x0200) && bmethod_frame && (bmethod_events & 0x0010)) { + vm_trace_hook(ec, reg_cfp, pc, 0x0010, 0x0010, global_hooks, bmethod_local_hooks_ptr, (*(((((reg_cfp)->sp)))-(0)-1))); + } + (*__extension__ ({ volatile VALUE *rb_gc_guarded_ptr = &(iseq_val); __asm__("" : : "m"(rb_gc_guarded_ptr)); rb_gc_guarded_ptr; })); + } + } +}static inline +void Init_vm_stack_canary(void) { } +static VALUE +builtin_invoker0(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr0_t)(rb_execution_context_t *ec, VALUE self); + return (*(rb_invoke_funcptr0_t)funcptr)(ec, self); +} +static VALUE +builtin_invoker1(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr1_t)(rb_execution_context_t *ec, VALUE self, VALUE v1); + return (*(rb_invoke_funcptr1_t)funcptr)(ec, self, argv[0]); +} +static VALUE +builtin_invoker2(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr2_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2); + return (*(rb_invoke_funcptr2_t)funcptr)(ec, self, argv[0], argv[1]); +} +static VALUE +builtin_invoker3(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr3_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3); + return (*(rb_invoke_funcptr3_t)funcptr)(ec, self, argv[0], argv[1], argv[2]); +} +static VALUE +builtin_invoker4(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr4_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4); + return (*(rb_invoke_funcptr4_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3]); +} +static VALUE +builtin_invoker5(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr5_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5); + return (*(rb_invoke_funcptr5_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4]); +} +static VALUE +builtin_invoker6(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr6_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6); + return (*(rb_invoke_funcptr6_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]); +} +static VALUE +builtin_invoker7(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr7_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6, VALUE v7); + return (*(rb_invoke_funcptr7_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6]); +} +static VALUE +builtin_invoker8(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr8_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6, VALUE v7, VALUE v8); + return (*(rb_invoke_funcptr8_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7]); +} +static VALUE +builtin_invoker9(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr9_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6, VALUE v7, VALUE v8, VALUE v9); + return (*(rb_invoke_funcptr9_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8]); +} +static VALUE +builtin_invoker10(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr10_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6, VALUE v7, VALUE v8, VALUE v9, VALUE v10); + return (*(rb_invoke_funcptr10_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9]); +} +static VALUE +builtin_invoker11(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr11_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6, VALUE v7, VALUE v8, VALUE v9, VALUE v10, VALUE v11); + return (*(rb_invoke_funcptr11_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10]); +} +static VALUE +builtin_invoker12(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr12_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6, VALUE v7, VALUE v8, VALUE v9, VALUE v10, VALUE v11, VALUE v12); + return (*(rb_invoke_funcptr12_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11]); +} +static VALUE +builtin_invoker13(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr13_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6, VALUE v7, VALUE v8, VALUE v9, VALUE v10, VALUE v11, VALUE v12, VALUE v13); + return (*(rb_invoke_funcptr13_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12]); +} +static VALUE +builtin_invoker14(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr14_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6, VALUE v7, VALUE v8, VALUE v9, VALUE v10, VALUE v11, VALUE v12, VALUE v13, VALUE v14); + return (*(rb_invoke_funcptr14_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12], argv[13]); +} +static VALUE +builtin_invoker15(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) +{ + typedef VALUE (*rb_invoke_funcptr15_t)(rb_execution_context_t *ec, VALUE self, VALUE v1, VALUE v2, VALUE v3, VALUE v4, VALUE v5, VALUE v6, VALUE v7, VALUE v8, VALUE v9, VALUE v10, VALUE v11, VALUE v12, VALUE v13, VALUE v14, VALUE v15); + return (*(rb_invoke_funcptr15_t)funcptr)(ec, self, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12], argv[13], argv[14]); +} +typedef VALUE (*builtin_invoker)(rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr); +static builtin_invoker +lookup_builtin_invoker(int argc) +{ + static const builtin_invoker invokers[] = { + builtin_invoker0, + builtin_invoker1, + builtin_invoker2, + builtin_invoker3, + builtin_invoker4, + builtin_invoker5, + builtin_invoker6, + builtin_invoker7, + builtin_invoker8, + builtin_invoker9, + builtin_invoker10, + builtin_invoker11, + builtin_invoker12, + builtin_invoker13, + builtin_invoker14, + builtin_invoker15, + }; + return invokers[argc]; +} +static inline VALUE +invoke_bf(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, const struct rb_builtin_function* bf, const VALUE *argv) +{ + const _Bool canary_p = ((reg_cfp->iseq)->body)->builtin_inline_p; + if (canary_p) {} else {}; + VALUE ret = (*lookup_builtin_invoker(bf->argc))(ec, reg_cfp->self, argv, (rb_insn_func_t)bf->func_ptr); + if (canary_p) {(void)(YARVINSN_invokebuiltin);}; + return ret; +} +static VALUE +vm_invoke_builtin(rb_execution_context_t *ec, rb_control_frame_t *cfp, const struct rb_builtin_function* bf, const VALUE *argv) +{ + return invoke_bf(ec, cfp, bf, argv); +} +static VALUE +vm_invoke_builtin_delegate(rb_execution_context_t *ec, rb_control_frame_t *cfp, const struct rb_builtin_function *bf, unsigned int start_index) +{ + if (0) { + fputs("vm_invoke_builtin_delegate: passing -> ", __stderrp); + for (int i=0; iargc; i++) { + ruby_debug_printf(":%s ", rb_id2name(((cfp->iseq)->body)->local_table[i+start_index])); + } + ruby_debug_printf("\n" "%s %s(%d):%p\n", __func__, bf->name, bf->argc, bf->func_ptr); + } + if (bf->argc == 0) { + return invoke_bf(ec, cfp, bf, ((void*)0)); + } + else { + const VALUE *argv = cfp->ep - ((cfp->iseq)->body)->local_table_size - ( 3) + 1 + start_index; + return invoke_bf(ec, cfp, bf, argv); + } +}static inline +VALUE +rb_vm_lvar_exposed(rb_execution_context_t *ec, int index) +{ + const rb_control_frame_t *cfp = ec->cfp; + return cfp->ep[index]; +} +struct local_var_list { + VALUE tbl; +}; +static inline VALUE method_missing(rb_execution_context_t *ec, VALUE obj, ID id, int argc, const VALUE *argv, enum method_missing_reason call_status, int kw_splat); +static inline VALUE vm_yield_with_cref(rb_execution_context_t *ec, int argc, const VALUE *argv, int kw_splat, const rb_cref_t *cref, int is_lambda); +static inline VALUE vm_yield(rb_execution_context_t *ec, int argc, const VALUE *argv, int kw_splat); +static inline VALUE vm_yield_with_block(rb_execution_context_t *ec, int argc, const VALUE *argv, VALUE block_handler, int kw_splat); +static inline VALUE vm_yield_force_blockarg(rb_execution_context_t *ec, VALUE args); +VALUE rb_vm_exec(rb_execution_context_t *ec, _Bool jit_enable_p); +static void vm_set_eval_stack(rb_execution_context_t * th, const rb_iseq_t *iseq, const rb_cref_t *cref, const struct rb_block *base_block); +static int vm_collect_local_variables_in_heap(const VALUE *dfp, const struct local_var_list *vars); +static VALUE rb_eUncaughtThrow; +static ID id_result, id_tag, id_value; +typedef enum call_type { + CALL_PUBLIC, + CALL_FCALL, + CALL_VCALL, + CALL_PUBLIC_KW, + CALL_FCALL_KW, + CALL_TYPE_MAX +} call_type; +static VALUE send_internal(int argc, const VALUE *argv, VALUE recv, call_type scope); +static VALUE vm_call0_body(rb_execution_context_t* ec, struct rb_calling_info *calling, const VALUE *argv); +static inline void +stack_check(rb_execution_context_t *ec) +{ + if (!(((ec)->raised_flag & (RAISED_STACKOVERFLOW)) != 0) && + rb_ec_stack_check(ec)) { + ((ec)->raised_flag |= (RAISED_STACKOVERFLOW)); + rb_ec_stack_overflow(ec, 0); + } +} +static void +raise_method_missing(rb_execution_context_t *ec, int argc, const VALUE *argv, VALUE obj, + enum method_missing_reason last_call_status) +{ + VALUE exc = rb_eNoMethodError; + VALUE format = 0; + if ((__builtin_expect(!!(argc == 0), 0))) { + rb_raise(rb_eArgError, "no method name given"); + } + else if ((__builtin_expect(!!(!RB_SYMBOL_P(argv[0])), 0))) { + const VALUE e = rb_eArgError; + rb_raise(e, "method name must be a Symbol but %""l""i" "\v"" is given", + rb_obj_class(argv[0])); + } + stack_check(ec); + if (last_call_status & MISSING_PRIVATE) { + format = rb_fstring_new(("private method `%s' called for %s%s%s"), (sizeof("private method `%s' called for %s%s%s" "") - 1)); + } + else if (last_call_status & MISSING_PROTECTED) { + format = rb_fstring_new(("protected method `%s' called for %s%s%s"), (sizeof("protected method `%s' called for %s%s%s" "") - 1)); + } + else if (last_call_status & MISSING_VCALL) { + format = rb_fstring_new(("undefined local variable or method `%s' for %s%s%s"), (sizeof("undefined local variable or method `%s' for %s%s%s" "") - 1)); + exc = rb_eNameError; + } + else if (last_call_status & MISSING_SUPER) { + format = rb_fstring_new(("super: no superclass method `%s' for %s%s%s"), (sizeof("super: no superclass method `%s' for %s%s%s" "") - 1)); + } + { + exc = rb_make_no_method_exception(exc, format, obj, argc, argv, + last_call_status & (MISSING_FCALL|MISSING_VCALL)); + if (!(last_call_status & MISSING_MISSING)) { + rb_vm_pop_cfunc_frame(); + } + rb_exc_raise(exc); + } +} +static void +vm_raise_method_missing(rb_execution_context_t *ec, int argc, const VALUE *argv, + VALUE obj, int call_status) +{ + vm_passed_block_handler_set(ec, 0); + raise_method_missing(ec, argc, argv, obj, call_status | MISSING_MISSING); +} +static inline VALUE +method_missing(rb_execution_context_t *ec, VALUE obj, ID id, int argc, const VALUE *argv, enum method_missing_reason call_status, int kw_splat) +{ + VALUE *nargv, result, work, klass; + VALUE block_handler = vm_passed_block_handler(ec); + const rb_callable_method_entry_t *me; + ec->method_missing_reason = call_status; + if (id == idMethodMissing) { + goto missing; + } + nargv = ((VALUE *) (((size_t)(argc + 1) < 1024 / sizeof(VALUE)) ? ((work) = 0, __builtin_alloca((argc + 1) * sizeof(VALUE))) : rb_alloc_tmp_buffer2(&(work), (argc + 1), sizeof(VALUE)))); + nargv[0] = rb_id2sym(id); + ruby_nonempty_memcpy((nargv + 1), (argv), rbimpl_size_mul_or_raise(sizeof(VALUE), (argc))); + ++argc; + argv = nargv; + klass = rb_class_of(obj); + if (!klass) goto missing; + me = rb_callable_method_entry(klass, idMethodMissing); + if (!me || (int) (((me)->flags & (((VALUE)RUBY_FL_USER6) )) >> ((((VALUE)RUBY_FL_USHIFT) + 4)+2))) goto missing; + vm_passed_block_handler_set(ec, block_handler); + result = rb_vm_call_kw(ec, obj, idMethodMissing, argc, argv, me, kw_splat); + if (work) rb_free_tmp_buffer(&(work)); + return result; + missing: + raise_method_missing(ec, argc, argv, obj, call_status | MISSING_MISSING); + __builtin_unreachable(); +} +static rb_control_frame_t * +vm_get_ruby_level_caller_cfp(const rb_execution_context_t *ec, const rb_control_frame_t *cfp) +{ + if (VM_FRAME_RUBYFRAME_P(cfp)) { + return (rb_control_frame_t *)cfp; + } + cfp = ((cfp)+1); + while (!RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(ec, cfp)) { + if (VM_FRAME_RUBYFRAME_P(cfp)) { + return (rb_control_frame_t *)cfp; + } + if (VM_ENV_FLAGS(cfp->ep, VM_FRAME_FLAG_PASSED) == 0) { + break; + } + cfp = ((cfp)+1); + } + return 0; +} +static void +rb_vm_pop_cfunc_frame(void) +{ + rb_execution_context_t *ec = rb_current_execution_context(1); + rb_control_frame_t *cfp = ec->cfp; + const rb_callable_method_entry_t *me = rb_vm_frame_method_entry(cfp); + do { const rb_event_flag_t flag_arg_ = (0x0040); rb_hook_list_t *hooks_arg_ = (rb_ec_ractor_hooks(ec)); if ((__builtin_expect(!!((hooks_arg_)->events & (flag_arg_)), 0))) { rb_exec_event_hook_orig(ec, hooks_arg_, flag_arg_, cfp->self, me->def->original_id, me->called_id, me->owner, ((VALUE)RUBY_Qnil), 0); } } while (0); + do { if ((__builtin_expect(!!(0), 0))) { struct ruby_dtrace_method_hook_args args; if (rb_dtrace_setup(ec, me->owner, me->def->original_id, &args)) { do {} while (0); } } } while (0); + vm_pop_frame(ec, cfp, cfp->ep); +} +static VALUE +vm_call_iseq_setup_normal_0start_0params_0locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 0, 0); +} +static VALUE +vm_call_iseq_setup_normal_0start_0params_1locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 0, 1); +} +static VALUE +vm_call_iseq_setup_normal_0start_0params_2locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 0, 2); +} +static VALUE +vm_call_iseq_setup_normal_0start_0params_3locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 0, 3); +} +static VALUE +vm_call_iseq_setup_normal_0start_0params_4locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 0, 4); +} +static VALUE +vm_call_iseq_setup_normal_0start_0params_5locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 0, 5); +} +static VALUE +vm_call_iseq_setup_normal_0start_1params_0locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 1, 0); +} +static VALUE +vm_call_iseq_setup_normal_0start_1params_1locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 1, 1); +} +static VALUE +vm_call_iseq_setup_normal_0start_1params_2locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 1, 2); +} +static VALUE +vm_call_iseq_setup_normal_0start_1params_3locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 1, 3); +} +static VALUE +vm_call_iseq_setup_normal_0start_1params_4locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 1, 4); +} +static VALUE +vm_call_iseq_setup_normal_0start_1params_5locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 1, 5); +} +static VALUE +vm_call_iseq_setup_normal_0start_2params_0locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 2, 0); +} +static VALUE +vm_call_iseq_setup_normal_0start_2params_1locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 2, 1); +} +static VALUE +vm_call_iseq_setup_normal_0start_2params_2locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 2, 2); +} +static VALUE +vm_call_iseq_setup_normal_0start_2params_3locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 2, 3); +} +static VALUE +vm_call_iseq_setup_normal_0start_2params_4locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 2, 4); +} +static VALUE +vm_call_iseq_setup_normal_0start_2params_5locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 2, 5); +} +static VALUE +vm_call_iseq_setup_normal_0start_3params_0locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 3, 0); +} +static VALUE +vm_call_iseq_setup_normal_0start_3params_1locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 3, 1); +} +static VALUE +vm_call_iseq_setup_normal_0start_3params_2locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 3, 2); +} +static VALUE +vm_call_iseq_setup_normal_0start_3params_3locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 3, 3); +} +static VALUE +vm_call_iseq_setup_normal_0start_3params_4locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 3, 4); +} +static VALUE +vm_call_iseq_setup_normal_0start_3params_5locals(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling) +{ + ((void)0); + return vm_call_iseq_setup_normal(ec, cfp, calling, vm_cc_cme(calling->cc), 0, 3, 5); +} +static const vm_call_handler vm_call_iseq_handlers[][6] = { + { + vm_call_iseq_setup_normal_0start_0params_0locals, + vm_call_iseq_setup_normal_0start_0params_1locals, + vm_call_iseq_setup_normal_0start_0params_2locals, + vm_call_iseq_setup_normal_0start_0params_3locals, + vm_call_iseq_setup_normal_0start_0params_4locals, + vm_call_iseq_setup_normal_0start_0params_5locals, + }, + { + vm_call_iseq_setup_normal_0start_1params_0locals, + vm_call_iseq_setup_normal_0start_1params_1locals, + vm_call_iseq_setup_normal_0start_1params_2locals, + vm_call_iseq_setup_normal_0start_1params_3locals, + vm_call_iseq_setup_normal_0start_1params_4locals, + vm_call_iseq_setup_normal_0start_1params_5locals, + }, + { + vm_call_iseq_setup_normal_0start_2params_0locals, + vm_call_iseq_setup_normal_0start_2params_1locals, + vm_call_iseq_setup_normal_0start_2params_2locals, + vm_call_iseq_setup_normal_0start_2params_3locals, + vm_call_iseq_setup_normal_0start_2params_4locals, + vm_call_iseq_setup_normal_0start_2params_5locals, + }, + { + vm_call_iseq_setup_normal_0start_3params_0locals, + vm_call_iseq_setup_normal_0start_3params_1locals, + vm_call_iseq_setup_normal_0start_3params_2locals, + vm_call_iseq_setup_normal_0start_3params_3locals, + vm_call_iseq_setup_normal_0start_3params_4locals, + vm_call_iseq_setup_normal_0start_3params_5locals, + }, +}; +static inline vm_call_handler +vm_call_iseq_setup_func(const struct rb_callinfo *ci, const int param_size, const int local_size) +{ + if ((__builtin_expect(!!(vm_ci_flag(ci) & (0x01 << VM_CALL_TAILCALL_bit)), 0))) { + return &vm_call_iseq_setup_tailcall_0start; + } + else if (0) { + return &vm_call_iseq_setup_normal_0start; + } + else if (param_size <= 3 && local_size <= 5) { + ((void)0); + return vm_call_iseq_handlers[param_size][local_size]; + } + else { + return &vm_call_iseq_setup_normal_0start; + } +} + +#define MJIT_HEADER 1 +#undef _FORTIFY_SOURCE +#define _FORTIFY_SOURCE 2 +#define RUBY_EXPORT 1 +#define _XOPEN_SOURCE 1 +#define _DARWIN_C_SOURCE 1 +#define _DARWIN_UNLIMITED_SELECT 1 +#define _REENTRANT 1 +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define vm_exec rb_vm_exec +#define RUBY_EVAL_INTERN_H +#define RUBY_RUBY_H 1 +#define RBIMPL_CONFIG_H +#define INCLUDE_RUBY_CONFIG_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRING_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_SYS_STAT_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_UNISTD_H 1 +#define HAVE_WCHAR_H 1 +#define STDC_HEADERS 1 +#define _ALL_SOURCE 1 +#define _DARWIN_C_SOURCE 1 +#define _GNU_SOURCE 1 +#define _HPUX_ALT_XOPEN_SOCKET_API 1 +#define _NETBSD_SOURCE 1 +#define _OPENBSD_SOURCE 1 +#define _POSIX_PTHREAD_SEMANTICS 1 +#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 +#define __STDC_WANT_IEC_60559_BFP_EXT__ 1 +#define __STDC_WANT_IEC_60559_DFP_EXT__ 1 +#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 +#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 +#define __STDC_WANT_LIB_EXT2__ 1 +#define __STDC_WANT_MATH_SPEC_FUNCS__ 1 +#define _TANDEM_SOURCE 1 +#define __EXTENSIONS__ 1 +#define RUBY_SYMBOL_EXPORT_BEGIN _Pragma("GCC visibility push(default)") +#define RUBY_SYMBOL_EXPORT_END _Pragma("GCC visibility pop") +#define HAVE_STMT_AND_DECL_IN_EXPR 1 +#define HAVE_PTHREAD_H 1 +#define _REENTRANT 1 +#define _THREAD_SAFE 1 +#define HAVE_LIBPTHREAD 1 +#define THREAD_IMPL_H "thread_pthread.h" +#define THREAD_IMPL_SRC "thread_pthread.c" +#define BROKEN_CRYPT 1 +#define HAVE_CRT_EXTERNS_H 1 +#define HAVE_LIBDL 1 +#define HAVE_DIRENT_H 1 +#define HAVE__BOOL 1 +#define HAVE_STDBOOL_H 1 +#define HAVE_SYS_WAIT_H 1 +#define HAVE_COPYFILE_H 1 +#define HAVE_GRP_H 1 +#define HAVE_FCNTL_H 1 +#define HAVE_FLOAT_H 1 +#define HAVE_LANGINFO_H 1 +#define HAVE_LIMITS_H 1 +#define HAVE_LOCALE_H 1 +#define HAVE_MALLOC_MALLOC_H 1 +#define HAVE_PWD_H 1 +#define HAVE_SANITIZER_ASAN_INTERFACE_H 1 +#define HAVE_SANITIZER_MSAN_INTERFACE_H 1 +#define HAVE_STDALIGN_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_SYS_ATTR_H 1 +#define HAVE_SYS_FCNTL_H 1 +#define HAVE_SYS_FILE_H 1 +#define HAVE_SYS_IOCTL_H 1 +#define HAVE_SYS_PARAM_H 1 +#define HAVE_SYS_RANDOM_H 1 +#define HAVE_SYS_RESOURCE_H 1 +#define HAVE_SYS_SELECT_H 1 +#define HAVE_SYS_SOCKET_H 1 +#define HAVE_SYS_TIME_H 1 +#define HAVE_SYS_TIMES_H 1 +#define HAVE_SYS_UIO_H 1 +#define HAVE_TIME_H 1 +#define HAVE_UCONTEXT_H 1 +#define HAVE_UTIME_H 1 +#define HAVE_X86INTRIN_H 1 +#define HAVE_X86INTRIN_H 1 +#define HAVE_TYPEOF 1 +#define restrict __restrict__ +#define HAVE_LONG_LONG 1 +#define HAVE_OFF_T 1 +#define SIZEOF_INT 4 +#define SIZEOF_SHORT 2 +#define SIZEOF_LONG 8 +#define SIZEOF_LONG_LONG 8 +#define SIZEOF___INT64 0 +#define SIZEOF___INT128 16 +#define SIZEOF_OFF_T 8 +#define SIZEOF_VOIDP 8 +#define SIZEOF_FLOAT 4 +#define SIZEOF_DOUBLE 8 +#define SIZEOF_TIME_T 8 +#define SIZEOF_CLOCK_T 8 +#define PACKED_STRUCT(x) x __attribute__((packed)) +#define USE_UNALIGNED_MEMBER_ACCESS 1 +#define PRI_LL_PREFIX "ll" +#define HAVE_PID_T 1 +#define rb_pid_t pid_t +#define SIGNEDNESS_OF_PID_T -1 +#define PIDT2NUM(v) INT2NUM(v) +#define NUM2PIDT(v) NUM2INT(v) +#define PRI_PIDT_PREFIX PRI_INT_PREFIX +#define HAVE_UID_T 1 +#define rb_uid_t uid_t +#define SIGNEDNESS_OF_UID_T +1 +#define UIDT2NUM(v) UINT2NUM(v) +#define NUM2UIDT(v) NUM2UINT(v) +#define PRI_UIDT_PREFIX PRI_INT_PREFIX +#define HAVE_GID_T 1 +#define rb_gid_t gid_t +#define SIGNEDNESS_OF_GID_T +1 +#define GIDT2NUM(v) UINT2NUM(v) +#define NUM2GIDT(v) NUM2UINT(v) +#define PRI_GIDT_PREFIX PRI_INT_PREFIX +#define HAVE_TIME_T 1 +#define rb_time_t time_t +#define SIGNEDNESS_OF_TIME_T -1 +#define TIMET2NUM(v) LONG2NUM(v) +#define NUM2TIMET(v) NUM2LONG(v) +#define PRI_TIMET_PREFIX PRI_LONG_PREFIX +#define HAVE_DEV_T 1 +#define rb_dev_t dev_t +#define SIGNEDNESS_OF_DEV_T -1 +#define DEVT2NUM(v) INT2NUM(v) +#define NUM2DEVT(v) NUM2INT(v) +#define PRI_DEVT_PREFIX PRI_INT_PREFIX +#define HAVE_MODE_T 1 +#define rb_mode_t mode_t +#define SIGNEDNESS_OF_MODE_T +1 +#define MODET2NUM(v) USHORT2NUM(v) +#define NUM2MODET(v) NUM2USHORT(v) +#define PRI_MODET_PREFIX PRI_SHORT_PREFIX +#define HAVE_RLIM_T 1 +#define rb_rlim_t rlim_t +#define SIGNEDNESS_OF_RLIM_T +1 +#define RLIM2NUM(v) ULL2NUM(v) +#define NUM2RLIM(v) NUM2ULL(v) +#define PRI_RLIM_PREFIX PRI_LL_PREFIX +#define HAVE_OFF_T 1 +#define rb_off_t off_t +#define SIGNEDNESS_OF_OFF_T -1 +#define OFFT2NUM(v) LL2NUM(v) +#define NUM2OFFT(v) NUM2LL(v) +#define PRI_OFFT_PREFIX PRI_LL_PREFIX +#define HAVE_CLOCKID_T 1 +#define rb_clockid_t clockid_t +#define SIGNEDNESS_OF_CLOCKID_T +1 +#define CLOCKID2NUM(v) UINT2NUM(v) +#define NUM2CLOCKID(v) NUM2UINT(v) +#define PRI_CLOCKID_PREFIX PRI_INT_PREFIX +#define HAVE_VA_ARGS_MACRO 1 +#define HAVE__ALIGNOF 1 +#define CONSTFUNC(x) __attribute__ ((__const__)) x +#define PUREFUNC(x) __attribute__ ((__pure__)) x +#define NORETURN(x) __attribute__ ((__noreturn__)) x +#define DEPRECATED(x) __attribute__ ((__deprecated__)) x +#define DEPRECATED_BY(n,x) __attribute__ ((__deprecated__("by "#n))) x +#define NOINLINE(x) __attribute__ ((__noinline__)) x +#define NO_SANITIZE(san,x) __attribute__ ((__no_sanitize__(san))) x +#define NO_SANITIZE_ADDRESS(x) __attribute__ ((__no_sanitize_address__)) x +#define NO_ADDRESS_SAFETY_ANALYSIS(x) __attribute__ ((__no_address_safety_analysis__)) x +#define WARN_UNUSED_RESULT(x) __attribute__ ((__warn_unused_result__)) x +#define MAYBE_UNUSED(x) __attribute__ ((__unused__)) x +#define ERRORFUNC(mesg,x) __attribute__ ((__error__ mesg)) x +#define WARNINGFUNC(mesg,x) __attribute__ ((__warning__ mesg)) x +#define WEAK(x) __attribute__ ((__weak__)) x +#define HAVE_FUNC_WEAK 1 +#define RUBY_CXX_DEPRECATED(msg) __attribute__((__deprecated__(msg))) +#define HAVE_NULLPTR 1 +#define FUNC_CDECL(x) __attribute__ ((__cdecl__)) x +#define HAVE_GCC_ATOMIC_BUILTINS 1 +#define HAVE_GCC_SYNC_BUILTINS 1 +#define HAVE___BUILTIN_UNREACHABLE 1 +#define RUBY_FUNC_EXPORTED __attribute__ ((__visibility__("default"))) extern +#define RUBY_FUNC_NONNULL(n,x) __attribute__ ((__nonnull__(n))) x +#define RUBY_FUNCTION_NAME_STRING __func__ +#define ENUM_OVER_INT 1 +#define HAVE_DECL_SYS_NERR 1 +#define HAVE_DECL_GETENV 1 +#define SIZEOF_SIZE_T 8 +#define SIZEOF_PTRDIFF_T 8 +#define SIZEOF_DEV_T 4 +#define PRI_SIZE_PREFIX "z" +#define PRI_PTRDIFF_PREFIX "t" +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 +#define HAVE_STRUCT_STAT_ST_RDEV 1 +#define SIZEOF_STRUCT_STAT_ST_SIZE SIZEOF_OFF_T +#define SIZEOF_STRUCT_STAT_ST_BLOCKS SIZEOF_OFF_T +#define SIZEOF_STRUCT_STAT_ST_INO SIZEOF_LONG +#define SIZEOF_STRUCT_STAT_ST_DEV SIZEOF_DEV_T +#define SIZEOF_STRUCT_STAT_ST_RDEV SIZEOF_DEV_T +#define HAVE_STRUCT_STAT_ST_ATIMESPEC 1 +#define HAVE_STRUCT_STAT_ST_MTIMESPEC 1 +#define HAVE_STRUCT_STAT_ST_CTIMESPEC 1 +#define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC 1 +#define HAVE_STRUCT_TIMEVAL 1 +#define SIZEOF_STRUCT_TIMEVAL_TV_SEC SIZEOF_TIME_T +#define HAVE_STRUCT_TIMESPEC 1 +#define HAVE_STRUCT_TIMEZONE 1 +#define HAVE_RB_FD_INIT 1 +#define HAVE_INT8_T 1 +#define SIZEOF_INT8_T 1 +#define HAVE_UINT8_T 1 +#define SIZEOF_UINT8_T 1 +#define HAVE_INT16_T 1 +#define SIZEOF_INT16_T 2 +#define HAVE_UINT16_T 1 +#define SIZEOF_UINT16_T 2 +#define HAVE_INT32_T 1 +#define SIZEOF_INT32_T 4 +#define HAVE_UINT32_T 1 +#define SIZEOF_UINT32_T 4 +#define HAVE_INT64_T 1 +#define SIZEOF_INT64_T 8 +#define HAVE_UINT64_T 1 +#define SIZEOF_UINT64_T 8 +#define HAVE_INT128_T 1 +#define int128_t __int128 +#define SIZEOF_INT128_T SIZEOF___INT128 +#define HAVE_UINT128_T 1 +#define uint128_t unsigned __int128 +#define SIZEOF_UINT128_T SIZEOF___INT128 +#define HAVE_INTPTR_T 1 +#define SIZEOF_INTPTR_T 8 +#define HAVE_UINTPTR_T 1 +#define SIZEOF_UINTPTR_T 8 +#define PRI_PTR_PREFIX "l" +#define HAVE_SSIZE_T 1 +#define SIZEOF_SSIZE_T 8 +#define PRI_64_PREFIX "ll" +#define GETGROUPS_T gid_t +#define HAVE_ALLOCA_H 1 +#define HAVE_ALLOCA 1 +#define HAVE_DUP 1 +#define HAVE_DUP2 1 +#define HAVE_ACOSH 1 +#define HAVE_CBRT 1 +#define HAVE_CRYPT 1 +#define HAVE_ERF 1 +#define HAVE_FFS 1 +#define HAVE_FLOCK 1 +#define HAVE_HYPOT 1 +#define HAVE_LGAMMA_R 1 +#define HAVE_MEMMOVE 1 +#define HAVE_NAN 1 +#define HAVE_NEXTAFTER 1 +#define HAVE_STRCHR 1 +#define HAVE_STRERROR 1 +#define HAVE_STRLCAT 1 +#define HAVE_STRLCPY 1 +#define HAVE_STRSTR 1 +#define HAVE_TGAMMA 1 +#define HAVE_ISFINITE 1 +#define SPT_TYPE SPT_REUSEARGV +#define HAVE_SIGNBIT 1 +#define HAVE_FORK 1 +#define vfork fork +#define HAVE_WORKING_FORK 1 +#define HAVE__LONGJMP 1 +#define HAVE_ARC4RANDOM_BUF 1 +#define HAVE_ATAN2L 1 +#define HAVE_ATAN2F 1 +#define HAVE_CHMOD 1 +#define HAVE_CHOWN 1 +#define HAVE_CHROOT 1 +#define HAVE_CLOCK_GETTIME 1 +#define HAVE_COSH 1 +#define HAVE_DIRFD 1 +#define HAVE_DLOPEN 1 +#define HAVE_DLADDR 1 +#define HAVE_ENDGRENT 1 +#define HAVE_EXECL 1 +#define HAVE_EXECLE 1 +#define HAVE_EXECV 1 +#define HAVE_EXECVE 1 +#define HAVE_FCOPYFILE 1 +#define HAVE_FCHMOD 1 +#define HAVE_FCHOWN 1 +#define HAVE_FCNTL 1 +#define HAVE_FDOPENDIR 1 +#define HAVE_FGETATTRLIST 1 +#define HAVE_FMOD 1 +#define HAVE_FSTATAT 1 +#define HAVE_FSYNC 1 +#define HAVE_FTRUNCATE 1 +#define HAVE_GETATTRLIST 1 +#define HAVE_GETCWD 1 +#define HAVE_GETEGID 1 +#define HAVE_GETENTROPY 1 +#define HAVE_GETEUID 1 +#define HAVE_GETGID 1 +#define HAVE_GETGRNAM 1 +#define HAVE_GETGRNAM_R 1 +#define HAVE_GETGROUPS 1 +#define HAVE_GETLOGIN 1 +#define HAVE_GETLOGIN_R 1 +#define HAVE_GETPGID 1 +#define HAVE_GETPGRP 1 +#define HAVE_GETPPID 1 +#define HAVE_GETPRIORITY 1 +#define HAVE_GETPWNAM 1 +#define HAVE_GETPWNAM_R 1 +#define HAVE_GETPWUID 1 +#define HAVE_GETPWUID_R 1 +#define HAVE_GETRLIMIT 1 +#define HAVE_GETSID 1 +#define HAVE_GETTIMEOFDAY 1 +#define HAVE_GETUID 1 +#define HAVE_GMTIME_R 1 +#define HAVE_GRANTPT 1 +#define HAVE_INITGROUPS 1 +#define HAVE_IOCTL 1 +#define HAVE_ISSETUGID 1 +#define HAVE_KILL 1 +#define HAVE_KILLPG 1 +#define HAVE_LCHMOD 1 +#define HAVE_LCHOWN 1 +#define HAVE_LINK 1 +#define HAVE_LLABS 1 +#define HAVE_LOCKF 1 +#define HAVE_LOG2 1 +#define HAVE_LSTAT 1 +#define HAVE_LUTIMES 1 +#define HAVE_MALLOC_SIZE 1 +#define HAVE_MBLEN 1 +#define HAVE_MEMSET_S 1 +#define HAVE_WRITEV 1 +#define HAVE_MEMMEM 1 +#define HAVE_MKFIFO 1 +#define HAVE_MKNOD 1 +#define HAVE_MKTIME 1 +#define HAVE_MMAP 1 +#define HAVE_OPENAT 1 +#define HAVE_PCLOSE 1 +#define HAVE_PIPE 1 +#define HAVE_POLL 1 +#define HAVE_POPEN 1 +#define HAVE_POSIX_MADVISE 1 +#define HAVE_POSIX_MEMALIGN 1 +#define HAVE_PREAD 1 +#define HAVE_PWRITE 1 +#define HAVE_QSORT_R 1 +#define HAVE_READLINK 1 +#define HAVE_REALPATH 1 +#define HAVE_ROUND 1 +#define HAVE_SEEKDIR 1 +#define HAVE_SENDFILE 1 +#define HAVE_SETEGID 1 +#define HAVE_SETENV 1 +#define HAVE_SETEUID 1 +#define HAVE_SETGID 1 +#define HAVE_SETGROUPS 1 +#define HAVE_SETPGID 1 +#define HAVE_SETPGRP 1 +#define HAVE_SETREGID 1 +#define HAVE_SETREUID 1 +#define HAVE_SETRGID 1 +#define HAVE_SETRLIMIT 1 +#define HAVE_SETRUID 1 +#define HAVE_SETSID 1 +#define HAVE_SETUID 1 +#define HAVE_SHUTDOWN 1 +#define HAVE_SIGACTION 1 +#define HAVE_SIGALTSTACK 1 +#define HAVE_SIGPROCMASK 1 +#define HAVE_SINH 1 +#define HAVE_SYMLINK 1 +#define HAVE_SYSCONF 1 +#define HAVE_SYSTEM 1 +#define HAVE_TANH 1 +#define HAVE_TELLDIR 1 +#define HAVE_TIMEGM 1 +#define HAVE_TIMES 1 +#define HAVE_TRUNCATE 1 +#define HAVE_TZSET 1 +#define HAVE_UMASK 1 +#define HAVE_UNSETENV 1 +#define HAVE_UTIMENSAT 1 +#define HAVE_UTIMES 1 +#define HAVE_WAIT4 1 +#define HAVE_WAITPID 1 +#define HAVE___COSPI 1 +#define HAVE___SINPI 1 +#define __STDC_WANT_LIB_EXT1__ 1 +#define HAVE_BUILTIN___BUILTIN_ALLOCA_WITH_ALIGN 1 +#define HAVE_BUILTIN___BUILTIN_ASSUME_ALIGNED 1 +#define HAVE_BUILTIN___BUILTIN_BSWAP16 1 +#define HAVE_BUILTIN___BUILTIN_BSWAP32 1 +#define HAVE_BUILTIN___BUILTIN_BSWAP64 1 +#define HAVE_BUILTIN___BUILTIN_POPCOUNT 1 +#define HAVE_BUILTIN___BUILTIN_POPCOUNTLL 1 +#define HAVE_BUILTIN___BUILTIN_CLZ 1 +#define HAVE_BUILTIN___BUILTIN_CLZL 1 +#define HAVE_BUILTIN___BUILTIN_CLZLL 1 +#define HAVE_BUILTIN___BUILTIN_CTZ 1 +#define HAVE_BUILTIN___BUILTIN_CTZLL 1 +#define HAVE_BUILTIN___BUILTIN_ADD_OVERFLOW 1 +#define HAVE_BUILTIN___BUILTIN_SUB_OVERFLOW 1 +#define HAVE_BUILTIN___BUILTIN_MUL_OVERFLOW 1 +#define HAVE_BUILTIN___BUILTIN_CONSTANT_P 1 +#define HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR 1 +#define HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P 1 +#define HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P 1 +#define HAVE_BUILTIN___BUILTIN_TRAP 1 +#define HAVE_BUILTIN___BUILTIN_EXPECT 1 +#define HAVE_BSD_QSORT_R 1 +#define ATAN2_INF_C99 1 +#define HAVE_CLOCK_GETRES 1 +#define HAVE_STRUCT_TM_TM_ZONE 1 +#define HAVE_TM_ZONE 1 +#define HAVE_STRUCT_TM_TM_GMTOFF 1 +#define HAVE_DAYLIGHT 1 +#define NEGATIVE_TIME_T 1 +#define POSIX_SIGNAL 1 +#define HAVE_SIG_T 1 +#define RSHIFT(x,y) ((x)>>(int)(y)) +#define HAVE__SC_CLK_TCK 1 +#define STACK_GROW_DIRECTION -1 +#define COROUTINE_H "coroutine/amd64/Context.h" +#define HAVE_SCHED_YIELD 1 +#define HAVE_PTHREAD_ATTR_SETINHERITSCHED 1 +#define HAVE_PTHREAD_ATTR_GETSTACK 1 +#define HAVE_PTHREAD_ATTR_GETGUARDSIZE 1 +#define HAVE_PTHREAD_GET_STACKADDR_NP 1 +#define HAVE_PTHREAD_GET_STACKSIZE_NP 1 +#define HAVE_PTHREAD_SETNAME_NP 1 +#define HAVE_PTHREAD_SIGMASK 1 +#define SET_CURRENT_THREAD_NAME(name) pthread_setname_np(name) +#define DEFINE_MCONTEXT_PTR(mc,uc) mcontext_t mc = (uc)->uc_mcontext +#define HAVE_SYS_USER_H 1 +#define HAVE_CONST_PAGE_SIZE 1 +#define IOCTL_REQ_TYPE unsigned long +#define NUM2IOCTLREQ(num) NUM2ULONG(num) +#define HAVE_MACH_O_LOADER_H 1 +#define EXTSTATIC 1 +#define HAVE_LIBPROC_H 1 +#define HAVE_EXECINFO_H 1 +#define HAVE_LIBUNWIND_H 1 +#define HAVE_MACH_TASK_H 1 +#define HAVE_MACH_MACH_INIT_H 1 +#define HAVE_MACH_MACH_PORT_H 1 +#define HAVE_MACH_TASK_EXCEPTION_PORTS 1 +#define HAVE_BACKTRACE 1 +#define BROKEN_BACKTRACE 1 +#define DLEXT_MAXLEN 7 +#define DLEXT ".bundle" +#define LIBDIR_BASENAME "lib" +#define HAVE__SETJMP 1 +#define HAVE_SIGSETJMP 1 +#define RUBY_SETJMP(env) sigsetjmp((env),0) +#define RUBY_LONGJMP(env,val) siglongjmp((env),val) +#define RUBY_JMP_BUF sigjmp_buf +#define USE_MJIT 1 +#define USE_YJIT 0 +#define LOAD_RELATIVE 1 +#define RUBY_PLATFORM "x86_64-darwin21" +#define RBIMPL_COMPILER_SINCE_H +#define RBIMPL_COMPILER_IS_H +#define RBIMPL_COMPILER_IS(cc) RBIMPL_COMPILER_IS_ ## cc +#define RBIMPL_COMPILER_IS_APPLE_H +#define RBIMPL_COMPILER_IS_Apple 1 +#define RBIMPL_COMPILER_VERSION_MAJOR __clang_major__ +#define RBIMPL_COMPILER_VERSION_MINOR __clang_minor__ +#define RBIMPL_COMPILER_VERSION_PATCH __clang_patchlevel__ +#define RBIMPL_COMPILER_IS_CLANG_H +#define RBIMPL_COMPILER_IS_Clang 0 +#define RBIMPL_COMPILER_IS_GCC_H +#define RBIMPL_COMPILER_IS_INTEL_H +#define RBIMPL_COMPILER_IS_Intel 0 +#define RBIMPL_COMPILER_IS_GCC 0 +#define RBIMPL_COMPILER_IS_MSVC_H +#define RBIMPL_COMPILER_IS_MSVC 0 +#define RBIMPL_COMPILER_IS_SUNPRO_H +#define RBIMPL_COMPILER_IS_SunPro 0 +#define RBIMPL_COMPILER_SINCE(cc,x,y,z) (RBIMPL_COMPILER_IS(cc) && ((RBIMPL_COMPILER_VERSION_MAJOR > (x)) || ((RBIMPL_COMPILER_VERSION_MAJOR == (x)) && ((RBIMPL_COMPILER_VERSION_MINOR > (y)) || ((RBIMPL_COMPILER_VERSION_MINOR == (y)) && (RBIMPL_COMPILER_VERSION_PATCH >= (z))))))) +#define RBIMPL_COMPILER_BEFORE(cc,x,y,z) (RBIMPL_COMPILER_IS(cc) && ((RBIMPL_COMPILER_VERSION_MAJOR < (x)) || ((RBIMPL_COMPILER_VERSION_MAJOR == (x)) && ((RBIMPL_COMPILER_VERSION_MINOR < (y)) || ((RBIMPL_COMPILER_VERSION_MINOR == (y)) && (RBIMPL_COMPILER_VERSION_PATCH < (z))))))) +#undef HAVE_PROTOTYPES +#define HAVE_PROTOTYPES 1 +#undef HAVE_STDARG_PROTOTYPES +#define HAVE_STDARG_PROTOTYPES 1 +#undef TOKEN_PASTE +#define TOKEN_PASTE(x,y) x##y +#define STRINGIZE(expr) STRINGIZE0(expr) +#define STRINGIZE0(expr) #expr +#define UNALIGNED_WORD_ACCESS 1 +#define RBIMPL_TEST3(q,w,e,...) e +#define RBIMPL_TEST2(...) RBIMPL_TEST3(__VA_OPT__(,),1,0,0) +#define RBIMPL_TEST1() RBIMPL_TEST2("ruby") +#define HAVE___VA_OPT__ +#undef RBIMPL_TEST1 +#undef RBIMPL_TEST2 +#undef RBIMPL_TEST3 +#define USE_RVARGC 1 +#define __STDARG_H +#define _VA_LIST +#define va_start(ap,param) __builtin_va_start(ap, param) +#define va_end(ap) __builtin_va_end(ap) +#define va_arg(ap,type) __builtin_va_arg(ap, type) +#define __va_copy(d,s) __builtin_va_copy(d,s) +#define va_copy(dest,src) __builtin_va_copy(dest, src) +#define __GNUC_VA_LIST 1 +#define RUBY_DEFINES_H 1 +#define _STDIO_H_ +#define __STDIO_H_ +#define _CDEFS_H_ +#define __BEGIN_DECLS +#define __END_DECLS +#define __P(protos) protos +#define __CONCAT(x,y) x ## y +#define __STRING(x) #x +#define __const const +#define __signed signed +#define __volatile volatile +#define __dead2 __attribute__((__noreturn__)) +#define __pure2 __attribute__((__const__)) +#define __stateful_pure __attribute__((__pure__)) +#define __unused __attribute__((__unused__)) +#define __used __attribute__((__used__)) +#define __cold __attribute__((__cold__)) +#define __returns_nonnull __attribute((returns_nonnull)) +#define __exported __attribute__((__visibility__("default"))) +#define __exported_push _Pragma("GCC visibility push(default)") +#define __exported_pop _Pragma("GCC visibility pop") +#define __deprecated __attribute__((__deprecated__)) +#define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg))) +#define __deprecated_enum_msg(_msg) __deprecated_msg(_msg) +#define __kpi_deprecated(_msg) +#define __unavailable __attribute__((__unavailable__)) +#define __kpi_unavailable +#define __kpi_deprecated_arm64_macos_unavailable +#define __dead +#define __pure +#define __restrict restrict +#define __disable_tail_calls __attribute__((__disable_tail_calls__)) +#define __not_tail_called __attribute__((__not_tail_called__)) +#define __result_use_check __attribute__((__warn_unused_result__)) +#define __swift_unavailable(_msg) __attribute__((__availability__(swift, unavailable, message=_msg))) +#define __abortlike __dead2 __cold __not_tail_called +#define __header_inline inline +#define __header_always_inline __header_inline __attribute__ ((__always_inline__)) +#define __unreachable_ok_push _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wunreachable-code\"") +#define __unreachable_ok_pop _Pragma("clang diagnostic pop") +#define __printflike(fmtarg,firstvararg) __attribute__((__format__ (__printf__, fmtarg, firstvararg))) +#define __printf0like(fmtarg,firstvararg) __attribute__((__format__ (__printf0__, fmtarg, firstvararg))) +#define __scanflike(fmtarg,firstvararg) __attribute__((__format__ (__scanf__, fmtarg, firstvararg))) +#define __osloglike(fmtarg,firstvararg) __attribute__((__format__ (__os_log__, fmtarg, firstvararg))) +#define __IDSTRING(name,string) static const char name[] __used = string +#define __COPYRIGHT(s) __IDSTRING(copyright,s) +#define __RCSID(s) __IDSTRING(rcsid,s) +#define __SCCSID(s) __IDSTRING(sccsid,s) +#define __PROJECT_VERSION(s) __IDSTRING(project_version,s) +#define __FBSDID(s) +#define __DECONST(type,var) __CAST_AWAY_QUALIFIER(var, const, type) +#define __DEVOLATILE(type,var) __CAST_AWAY_QUALIFIER(var, volatile, type) +#define __DEQUALIFY(type,var) __CAST_AWAY_QUALIFIER(var, const volatile, type) +#define __alloc_size(...) __attribute__((alloc_size(__VA_ARGS__))) +#define __DARWIN_ONLY_64_BIT_INO_T 0 +#define __DARWIN_ONLY_UNIX_CONFORMANCE 1 +#define __DARWIN_ONLY_VERS_1050 0 +#define __DARWIN_UNIX03 1 +#define __DARWIN_64_BIT_INO_T 1 +#define __DARWIN_VERS_1050 1 +#define __DARWIN_NON_CANCELABLE 0 +#define __DARWIN_SUF_UNIX03 +#define __DARWIN_SUF_64_BIT_INO_T "$INODE64" +#define __DARWIN_SUF_1050 "$1050" +#define __DARWIN_SUF_NON_CANCELABLE +#define __DARWIN_SUF_EXTSN "$DARWIN_EXTSN" +#define __DARWIN_ALIAS(sym) __asm("_" __STRING(sym) __DARWIN_SUF_UNIX03) +#define __DARWIN_ALIAS_C(sym) __asm("_" __STRING(sym) __DARWIN_SUF_NON_CANCELABLE __DARWIN_SUF_UNIX03) +#define __DARWIN_ALIAS_I(sym) __asm("_" __STRING(sym) __DARWIN_SUF_64_BIT_INO_T __DARWIN_SUF_UNIX03) +#define __DARWIN_NOCANCEL(sym) __asm("_" __STRING(sym) __DARWIN_SUF_NON_CANCELABLE) +#define __DARWIN_INODE64(sym) __asm("_" __STRING(sym) __DARWIN_SUF_64_BIT_INO_T) +#define __DARWIN_1050(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050) +#define __DARWIN_1050ALIAS(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_UNIX03) +#define __DARWIN_1050ALIAS_C(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_NON_CANCELABLE __DARWIN_SUF_UNIX03) +#define __DARWIN_1050ALIAS_I(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_64_BIT_INO_T __DARWIN_SUF_UNIX03) +#define __DARWIN_1050INODE64(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_64_BIT_INO_T) +#define __DARWIN_EXTSN(sym) __asm("_" __STRING(sym) __DARWIN_SUF_EXTSN) +#define __DARWIN_EXTSN_C(sym) __asm("_" __STRING(sym) __DARWIN_SUF_EXTSN __DARWIN_SUF_NON_CANCELABLE) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_4(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_4(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_4(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_4(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_5(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_6(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_7(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_5(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_4(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_0(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_1(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_2(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_3(x) +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_4(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_0(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_1(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_2(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_3(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_4(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_5(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_6(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_7(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_8(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_9(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10_2(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10_3(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_2(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_3(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_4(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_1(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_2(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_4(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_1(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_2(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_4(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_1(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_4(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_5(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_6(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15(x) x +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15_1(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15_4(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_16(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_11_0(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_11_1(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_11_3(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_12_0(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_12_1(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_12_2(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_12_3(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_13_0(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_13_1(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_13_2(x) +#define __DARWIN_ALIAS_STARTING_MAC___MAC_13_3(x) +#define __DARWIN_ALIAS_STARTING(_mac,_iphone,x) __DARWIN_ALIAS_STARTING_MAC_##_mac(x) +#define ___POSIX_C_DEPRECATED_STARTING_198808L +#define ___POSIX_C_DEPRECATED_STARTING_199009L +#define ___POSIX_C_DEPRECATED_STARTING_199209L +#define ___POSIX_C_DEPRECATED_STARTING_199309L +#define ___POSIX_C_DEPRECATED_STARTING_199506L +#define ___POSIX_C_DEPRECATED_STARTING_200112L +#define ___POSIX_C_DEPRECATED_STARTING_200809L +#define __POSIX_C_DEPRECATED(ver) ___POSIX_C_DEPRECATED_STARTING_##ver +#define __DARWIN_C_ANSI 010000L +#define __DARWIN_C_FULL 900000L +#define __DARWIN_C_LEVEL __DARWIN_C_FULL +#define __DARWIN_NO_LONG_LONG 0 +#define _DARWIN_FEATURE_64_BIT_INODE 1 +#define _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE 1 +#define _DARWIN_FEATURE_UNIX_CONFORMANCE 3 +#define __CAST_AWAY_QUALIFIER(variable,qualifier,type) _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wcast-qual\"") _Pragma("GCC diagnostic ignored \"-Wcast-align\"") _Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"") ((type)(variable)) _Pragma("GCC diagnostic pop") +#define __XNU_PRIVATE_EXTERN __attribute__((visibility("hidden"))) +#define __has_ptrcheck 0 +#define __single +#define __unsafe_indexable +#define __counted_by(N) +#define __sized_by(N) +#define __ended_by(E) +#define __terminated_by(T) +#define __null_terminated +#define __ptrcheck_abi_assume_single() +#define __ptrcheck_abi_assume_unsafe_indexable() +#define __unsafe_forge_bidi_indexable(T,P,S) ((T)(P)) +#define __unsafe_forge_single(T,P) ((T)(P)) +#define __terminated_by_to_indexable(P) (P) +#define __unsafe_terminated_by_to_indexable(P) (P) +#define __null_terminated_to_indexable(P) (P) +#define __unsafe_null_terminated_to_indexable(P) (P) +#define __unsafe_terminated_by_from_indexable(T,P,...) (P) +#define __unsafe_null_terminated_from_indexable(P,...) (P) +#define __array_decay_dicards_count_in_parameters +#define __unsafe_late_const +#define __ASSUME_PTR_ABI_SINGLE_BEGIN __ptrcheck_abi_assume_single() +#define __ASSUME_PTR_ABI_SINGLE_END __ptrcheck_abi_assume_unsafe_indexable() +#define __header_indexable +#define __header_bidi_indexable +#define __compiler_barrier() __asm__ __volatile__("" ::: "memory") +#define __enum_open __attribute__((__enum_extensibility__(open))) +#define __enum_closed __attribute__((__enum_extensibility__(closed))) +#define __enum_options __attribute__((__flag_enum__)) +#define __enum_decl(_name,_type,...) typedef enum : _type __VA_ARGS__ __enum_open _name +#define __enum_closed_decl(_name,_type,...) typedef enum : _type __VA_ARGS__ __enum_closed _name +#define __options_decl(_name,_type,...) typedef enum : _type __VA_ARGS__ __enum_open __enum_options _name +#define __options_closed_decl(_name,_type,...) typedef enum : _type __VA_ARGS__ __enum_closed __enum_options _name +#define __kernel_ptr_semantics +#define __kernel_data_semantics +#define __kernel_dual_semantics +#define __AVAILABILITY__ +#define __API_TO_BE_DEPRECATED 100000 +#define __API_TO_BE_DEPRECATED_MACOS 100000 +#define __API_TO_BE_DEPRECATED_IOS 100000 +#define __API_TO_BE_DEPRECATED_TVOS 100000 +#define __API_TO_BE_DEPRECATED_WATCHOS 100000 +#define __API_TO_BE_DEPRECATED_MACCATALYST 100000 +#define __API_TO_BE_DEPRECATED_DRIVERKIT 100000 +#define __AVAILABILITY_VERSIONS__ +#define __MAC_10_0 1000 +#define __MAC_10_1 1010 +#define __MAC_10_2 1020 +#define __MAC_10_3 1030 +#define __MAC_10_4 1040 +#define __MAC_10_5 1050 +#define __MAC_10_6 1060 +#define __MAC_10_7 1070 +#define __MAC_10_8 1080 +#define __MAC_10_9 1090 +#define __MAC_10_10 101000 +#define __MAC_10_10_2 101002 +#define __MAC_10_10_3 101003 +#define __MAC_10_11 101100 +#define __MAC_10_11_2 101102 +#define __MAC_10_11_3 101103 +#define __MAC_10_11_4 101104 +#define __MAC_10_12 101200 +#define __MAC_10_12_1 101201 +#define __MAC_10_12_2 101202 +#define __MAC_10_12_4 101204 +#define __MAC_10_13 101300 +#define __MAC_10_13_1 101301 +#define __MAC_10_13_2 101302 +#define __MAC_10_13_4 101304 +#define __MAC_10_14 101400 +#define __MAC_10_14_1 101401 +#define __MAC_10_14_4 101404 +#define __MAC_10_14_6 101406 +#define __MAC_10_15 101500 +#define __MAC_10_15_1 101501 +#define __MAC_10_15_4 101504 +#define __MAC_10_16 101600 +#define __MAC_11_0 110000 +#define __MAC_11_1 110100 +#define __MAC_11_3 110300 +#define __MAC_11_4 110400 +#define __MAC_11_5 110500 +#define __MAC_11_6 110600 +#define __MAC_12_0 120000 +#define __MAC_12_1 120100 +#define __MAC_12_2 120200 +#define __MAC_12_3 120300 +#define __MAC_13_0 130000 +#define __MAC_13_1 130100 +#define __MAC_13_2 130200 +#define __MAC_13_3 130300 +#define __IPHONE_2_0 20000 +#define __IPHONE_2_1 20100 +#define __IPHONE_2_2 20200 +#define __IPHONE_3_0 30000 +#define __IPHONE_3_1 30100 +#define __IPHONE_3_2 30200 +#define __IPHONE_4_0 40000 +#define __IPHONE_4_1 40100 +#define __IPHONE_4_2 40200 +#define __IPHONE_4_3 40300 +#define __IPHONE_5_0 50000 +#define __IPHONE_5_1 50100 +#define __IPHONE_6_0 60000 +#define __IPHONE_6_1 60100 +#define __IPHONE_7_0 70000 +#define __IPHONE_7_1 70100 +#define __IPHONE_8_0 80000 +#define __IPHONE_8_1 80100 +#define __IPHONE_8_2 80200 +#define __IPHONE_8_3 80300 +#define __IPHONE_8_4 80400 +#define __IPHONE_9_0 90000 +#define __IPHONE_9_1 90100 +#define __IPHONE_9_2 90200 +#define __IPHONE_9_3 90300 +#define __IPHONE_10_0 100000 +#define __IPHONE_10_1 100100 +#define __IPHONE_10_2 100200 +#define __IPHONE_10_3 100300 +#define __IPHONE_11_0 110000 +#define __IPHONE_11_1 110100 +#define __IPHONE_11_2 110200 +#define __IPHONE_11_3 110300 +#define __IPHONE_11_4 110400 +#define __IPHONE_12_0 120000 +#define __IPHONE_12_1 120100 +#define __IPHONE_12_2 120200 +#define __IPHONE_12_3 120300 +#define __IPHONE_12_4 120400 +#define __IPHONE_13_0 130000 +#define __IPHONE_13_1 130100 +#define __IPHONE_13_2 130200 +#define __IPHONE_13_3 130300 +#define __IPHONE_13_4 130400 +#define __IPHONE_13_5 130500 +#define __IPHONE_13_6 130600 +#define __IPHONE_13_7 130700 +#define __IPHONE_14_0 140000 +#define __IPHONE_14_1 140100 +#define __IPHONE_14_2 140200 +#define __IPHONE_14_3 140300 +#define __IPHONE_14_5 140500 +#define __IPHONE_14_6 140600 +#define __IPHONE_14_7 140700 +#define __IPHONE_14_8 140800 +#define __IPHONE_15_0 150000 +#define __IPHONE_15_1 150100 +#define __IPHONE_15_2 150200 +#define __IPHONE_15_3 150300 +#define __IPHONE_15_4 150400 +#define __IPHONE_16_0 160000 +#define __IPHONE_16_1 160100 +#define __IPHONE_16_2 160200 +#define __IPHONE_16_3 160300 +#define __IPHONE_16_4 160400 +#define __TVOS_9_0 90000 +#define __TVOS_9_1 90100 +#define __TVOS_9_2 90200 +#define __TVOS_10_0 100000 +#define __TVOS_10_0_1 100001 +#define __TVOS_10_1 100100 +#define __TVOS_10_2 100200 +#define __TVOS_11_0 110000 +#define __TVOS_11_1 110100 +#define __TVOS_11_2 110200 +#define __TVOS_11_3 110300 +#define __TVOS_11_4 110400 +#define __TVOS_12_0 120000 +#define __TVOS_12_1 120100 +#define __TVOS_12_2 120200 +#define __TVOS_12_3 120300 +#define __TVOS_12_4 120400 +#define __TVOS_13_0 130000 +#define __TVOS_13_2 130200 +#define __TVOS_13_3 130300 +#define __TVOS_13_4 130400 +#define __TVOS_14_0 140000 +#define __TVOS_14_1 140100 +#define __TVOS_14_2 140200 +#define __TVOS_14_3 140300 +#define __TVOS_14_5 140500 +#define __TVOS_14_6 140600 +#define __TVOS_14_7 140700 +#define __TVOS_15_0 150000 +#define __TVOS_15_1 150100 +#define __TVOS_15_2 150200 +#define __TVOS_15_3 150300 +#define __TVOS_15_4 150400 +#define __TVOS_16_0 160000 +#define __TVOS_16_1 160100 +#define __TVOS_16_2 160200 +#define __TVOS_16_3 160300 +#define __TVOS_16_4 160400 +#define __WATCHOS_1_0 10000 +#define __WATCHOS_2_0 20000 +#define __WATCHOS_2_1 20100 +#define __WATCHOS_2_2 20200 +#define __WATCHOS_3_0 30000 +#define __WATCHOS_3_1 30100 +#define __WATCHOS_3_1_1 30101 +#define __WATCHOS_3_2 30200 +#define __WATCHOS_4_0 40000 +#define __WATCHOS_4_1 40100 +#define __WATCHOS_4_2 40200 +#define __WATCHOS_4_3 40300 +#define __WATCHOS_5_0 50000 +#define __WATCHOS_5_1 50100 +#define __WATCHOS_5_2 50200 +#define __WATCHOS_5_3 50300 +#define __WATCHOS_6_0 60000 +#define __WATCHOS_6_1 60100 +#define __WATCHOS_6_2 60200 +#define __WATCHOS_7_0 70000 +#define __WATCHOS_7_1 70100 +#define __WATCHOS_7_2 70200 +#define __WATCHOS_7_3 70300 +#define __WATCHOS_7_4 70400 +#define __WATCHOS_7_5 70500 +#define __WATCHOS_7_6 70600 +#define __WATCHOS_8_0 80000 +#define __WATCHOS_8_1 80100 +#define __WATCHOS_8_3 80300 +#define __WATCHOS_8_4 80400 +#define __WATCHOS_8_5 80500 +#define __WATCHOS_9_0 90000 +#define __WATCHOS_9_1 90100 +#define __WATCHOS_9_2 90200 +#define __WATCHOS_9_3 90300 +#define __WATCHOS_9_4 90400 +#define MAC_OS_X_VERSION_10_0 1000 +#define MAC_OS_X_VERSION_10_1 1010 +#define MAC_OS_X_VERSION_10_2 1020 +#define MAC_OS_X_VERSION_10_3 1030 +#define MAC_OS_X_VERSION_10_4 1040 +#define MAC_OS_X_VERSION_10_5 1050 +#define MAC_OS_X_VERSION_10_6 1060 +#define MAC_OS_X_VERSION_10_7 1070 +#define MAC_OS_X_VERSION_10_8 1080 +#define MAC_OS_X_VERSION_10_9 1090 +#define MAC_OS_X_VERSION_10_10 101000 +#define MAC_OS_X_VERSION_10_10_2 101002 +#define MAC_OS_X_VERSION_10_10_3 101003 +#define MAC_OS_X_VERSION_10_11 101100 +#define MAC_OS_X_VERSION_10_11_2 101102 +#define MAC_OS_X_VERSION_10_11_3 101103 +#define MAC_OS_X_VERSION_10_11_4 101104 +#define MAC_OS_X_VERSION_10_12 101200 +#define MAC_OS_X_VERSION_10_12_1 101201 +#define MAC_OS_X_VERSION_10_12_2 101202 +#define MAC_OS_X_VERSION_10_12_4 101204 +#define MAC_OS_X_VERSION_10_13 101300 +#define MAC_OS_X_VERSION_10_13_1 101301 +#define MAC_OS_X_VERSION_10_13_2 101302 +#define MAC_OS_X_VERSION_10_13_4 101304 +#define MAC_OS_X_VERSION_10_14 101400 +#define MAC_OS_X_VERSION_10_14_1 101401 +#define MAC_OS_X_VERSION_10_14_4 101404 +#define MAC_OS_X_VERSION_10_14_6 101406 +#define MAC_OS_X_VERSION_10_15 101500 +#define MAC_OS_X_VERSION_10_15_1 101501 +#define MAC_OS_X_VERSION_10_16 101600 +#define MAC_OS_VERSION_11_0 110000 +#define MAC_OS_VERSION_12_0 120000 +#define MAC_OS_VERSION_13_0 130000 +#define __DRIVERKIT_19_0 190000 +#define __DRIVERKIT_20_0 200000 +#define __DRIVERKIT_21_0 210000 +#define __AVAILABILITY_INTERNAL__ +#define __MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ +#define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_13_3 +#define __AVAILABILITY_INTERNAL_DEPRECATED __attribute__((deprecated)) +#define __AVAILABILITY_INTERNAL_DEPRECATED_MSG(_msg) __attribute__((deprecated(_msg))) +#define __AVAILABILITY_INTERNAL_UNAVAILABLE __attribute__((unavailable)) +#define __AVAILABILITY_INTERNAL_WEAK_IMPORT __attribute__((weak_import)) +#define __AVAILABILITY_INTERNAL_REGULAR +#define __ENABLE_LEGACY_MAC_AVAILABILITY 1 +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.1,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.1,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.1,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.1,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_2 __attribute__((availability(macosx,introduced=10.1,deprecated=10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_3 __attribute__((availability(macosx,introduced=10.1,deprecated=10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_4 __attribute__((availability(macosx,introduced=10.1,deprecated=10.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_5 __attribute__((availability(macosx,introduced=10.1,deprecated=10.5))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_5_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.5,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_6 __attribute__((availability(macosx,introduced=10.1,deprecated=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_6_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.6,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_7 __attribute__((availability(macosx,introduced=10.1,deprecated=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_7_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.7,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_8 __attribute__((availability(macosx,introduced=10.1,deprecated=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_8_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.8,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.1,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.1,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_2 __attribute__((availability(macosx,introduced=10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.2,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.2,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.2,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.2,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_13 __attribute__((availability(macosx,introduced=10.2,deprecated=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_2 __attribute__((availability(macosx,introduced=10.2,deprecated=10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_3 __attribute__((availability(macosx,introduced=10.2,deprecated=10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_4 __attribute__((availability(macosx,introduced=10.2,deprecated=10.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_5 __attribute__((availability(macosx,introduced=10.2,deprecated=10.5))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_5_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.5,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_6 __attribute__((availability(macosx,introduced=10.2,deprecated=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_6_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.6,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_7 __attribute__((availability(macosx,introduced=10.2,deprecated=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_7_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.7,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_8 __attribute__((availability(macosx,introduced=10.2,deprecated=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_8_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.8,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.2,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.2,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_3 __attribute__((availability(macosx,introduced=10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.3,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.3,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.3,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.3,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_13 __attribute__((availability(macosx,introduced=10.3,deprecated=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_3 __attribute__((availability(macosx,introduced=10.3,deprecated=10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_4 __attribute__((availability(macosx,introduced=10.3,deprecated=10.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_5 __attribute__((availability(macosx,introduced=10.3,deprecated=10.5))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_5_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.5,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_6 __attribute__((availability(macosx,introduced=10.3,deprecated=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_6_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.6,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_7 __attribute__((availability(macosx,introduced=10.3,deprecated=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_7_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.7,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_8 __attribute__((availability(macosx,introduced=10.3,deprecated=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_8_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.8,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.3,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.3,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_4 __attribute__((availability(macosx,introduced=10.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.4,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.4,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.4,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.4,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_13 __attribute__((availability(macosx,introduced=10.4,deprecated=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_4 __attribute__((availability(macosx,introduced=10.4,deprecated=10.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_5 __attribute__((availability(macosx,introduced=10.4,deprecated=10.5))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_5_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.5,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_6 __attribute__((availability(macosx,introduced=10.4,deprecated=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_6_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.6,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_7 __attribute__((availability(macosx,introduced=10.4,deprecated=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_7_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.7,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_8 __attribute__((availability(macosx,introduced=10.4,deprecated=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_8_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.8,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.4,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.4,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_5 __attribute__((availability(macosx,introduced=10.5))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEPRECATED__MAC_10_7 __attribute__((availability(macosx,introduced=10.5.DEPRECATED..MAC.10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.5,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.5,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.5,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.5,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_5 __attribute__((availability(macosx,introduced=10.5,deprecated=10.5))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_5_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.5,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_6 __attribute__((availability(macosx,introduced=10.5,deprecated=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_6_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.6,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_7 __attribute__((availability(macosx,introduced=10.5,deprecated=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_7_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.7,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_8 __attribute__((availability(macosx,introduced=10.5,deprecated=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_8_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.8,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.5,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.5,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.5))) +#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.5))) +#define __AVAILABILITY_INTERNAL__MAC_10_6 __attribute__((availability(macosx,introduced=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.6,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.6,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.6,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.6,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_13 __attribute__((availability(macosx,introduced=10.6,deprecated=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_6 __attribute__((availability(macosx,introduced=10.6,deprecated=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_6_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.6,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_7 __attribute__((availability(macosx,introduced=10.6,deprecated=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_7_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.7,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_8 __attribute__((availability(macosx,introduced=10.6,deprecated=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_8_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.8,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.6,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.6,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_7 __attribute__((availability(macosx,introduced=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.7,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.7,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.7,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.7,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_13_2 __attribute__((availability(macosx,introduced=10.7,deprecated=10.13.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_7 __attribute__((availability(macosx,introduced=10.7,deprecated=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_7_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.7,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_8 __attribute__((availability(macosx,introduced=10.7,deprecated=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_8_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.8,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.7,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.7,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_8 __attribute__((availability(macosx,introduced=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.8,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.8,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.8,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.8,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_13 __attribute__((availability(macosx,introduced=10.8,deprecated=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_8 __attribute__((availability(macosx,introduced=10.8,deprecated=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_8_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.8,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.8,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.8,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_9 __attribute__((availability(macosx,introduced=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.9,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.9,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.9,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.9,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_13 __attribute__((availability(macosx,introduced=10.9,deprecated=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_14 __attribute__((availability(macosx,introduced=10.9,deprecated=10.14))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.9,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.9,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_0 __attribute__((availability(macosx,introduced=10.0))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_0 __attribute__((availability(macosx,introduced=10.0,deprecated=10.0))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_0_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.0,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.0,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.0,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.0,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.0,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_13 __attribute__((availability(macosx,introduced=10.0,deprecated=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_2 __attribute__((availability(macosx,introduced=10.0,deprecated=10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_3 __attribute__((availability(macosx,introduced=10.0,deprecated=10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_4 __attribute__((availability(macosx,introduced=10.0,deprecated=10.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_5 __attribute__((availability(macosx,introduced=10.0,deprecated=10.5))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_5_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.5,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_6 __attribute__((availability(macosx,introduced=10.0,deprecated=10.6))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_6_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.6,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_7 __attribute__((availability(macosx,introduced=10.0,deprecated=10.7))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_7_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.7,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_8 __attribute__((availability(macosx,introduced=10.0,deprecated=10.8))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_8_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.8,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_9 __attribute__((availability(macosx,introduced=10.0,deprecated=10.9))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_9_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.9,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_13_MSG(_msg) __attribute__((availability(macosx,introduced=10.0,deprecated=10.13,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.0))) +#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.0))) +#define __AVAILABILITY_INTERNAL__MAC_10_1 __attribute__((availability(macosx,introduced=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_10 __attribute__((availability(macosx,introduced=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.10,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10 __attribute__((availability(macosx,introduced=10.10,deprecated=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_2 __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_3 __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.10,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.10,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.10,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_13 __attribute__((availability(macosx,introduced=10.10,deprecated=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_13_MSG(_msg) __attribute__((availability(macosx,introduced=10.10,deprecated=10.13,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_13_4 __attribute__((availability(macosx,introduced=10.10,deprecated=10.13.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.10))) +#define __AVAILABILITY_INTERNAL__MAC_10_11 __attribute__((availability(macosx,introduced=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_1 __attribute__((availability(macosx,introduced=10.11,deprecated=10.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11 __attribute__((availability(macosx,introduced=10.11,deprecated=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_2 __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_3 __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.3))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_3_MSG(_msg) __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.3,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_4 __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_MSG(_msg) __attribute__((availability(macosx,introduced=10.11,deprecated=10.11,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.11,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.11,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.11))) +#define __AVAILABILITY_INTERNAL__MAC_10_12 __attribute__((availability(macosx,introduced=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.12.4,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.12.4,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12 __attribute__((availability(macosx,introduced=10.12,deprecated=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_1 __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.1))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_1_MSG(_msg) __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.1,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_2 __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.2))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_2_MSG(_msg) __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.2,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_4 __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_4_MSG(_msg) __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.4,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_MSG(_msg) __attribute__((availability(macosx,introduced=10.12,deprecated=10.12,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_13 __attribute__((availability(macosx,introduced=10.12,deprecated=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_13_MSG(_msg) __attribute__((availability(macosx,introduced=10.12,deprecated=10.13,message=_msg))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_13_4 __attribute__((availability(macosx,introduced=10.12,deprecated=10.13.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_14 __attribute__((availability(macosx,introduced=10.12,deprecated=10.14))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_NA __attribute__((availability(macosx,introduced=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,introduced=10.12))) +#define __AVAILABILITY_INTERNAL__MAC_10_13 __attribute__((availability(macosx,introduced=10.13))) +#define __AVAILABILITY_INTERNAL__MAC_10_13_4 __attribute__((availability(macosx,introduced=10.13.4))) +#define __AVAILABILITY_INTERNAL__MAC_10_14 __attribute__((availability(macosx,introduced=10.14))) +#define __AVAILABILITY_INTERNAL__MAC_10_14_DEP__MAC_10_14 __attribute__((availability(macosx,introduced=10.14,deprecated=10.14))) +#define __AVAILABILITY_INTERNAL__MAC_10_15 __attribute__((availability(macosx,introduced=10.15))) +#define __AVAILABILITY_INTERNAL__MAC_NA __attribute__((availability(macosx,unavailable))) +#define __AVAILABILITY_INTERNAL__MAC_NA_DEP__MAC_NA __attribute__((availability(macosx,unavailable))) +#define __AVAILABILITY_INTERNAL__MAC_NA_DEP__MAC_NA_MSG(_msg) __attribute__((availability(macosx,unavailable))) +#define __AVAILABILITY_INTERNAL__IPHONE_NA __attribute__((availability(ios,unavailable))) +#define __AVAILABILITY_INTERNAL__IPHONE_NA__IPHONE_NA __attribute__((availability(ios,unavailable))) +#define __AVAILABILITY_INTERNAL__IPHONE_NA_DEP__IPHONE_NA __attribute__((availability(ios,unavailable))) +#define __AVAILABILITY_INTERNAL__IPHONE_NA_DEP__IPHONE_NA_MSG(_msg) __attribute__((availability(ios,unavailable))) +#define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION __attribute__((availability(ios,unavailable))) +#define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION __attribute__((availability(ios,unavailable))) +#define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION_MSG(_msg) __attribute__((availability(ios,unavailable))) +#define __API_AVAILABLE_PLATFORM_macos(x) macos,introduced=x +#define __API_AVAILABLE_PLATFORM_macosx(x) macosx,introduced=x +#define __API_AVAILABLE_PLATFORM_ios(x) ios,introduced=x +#define __API_AVAILABLE_PLATFORM_watchos(x) watchos,introduced=x +#define __API_AVAILABLE_PLATFORM_tvos(x) tvos,introduced=x +#define __API_AVAILABLE_PLATFORM_macCatalyst(x) macCatalyst,introduced=x +#define __API_AVAILABLE_PLATFORM_macCatalyst(x) macCatalyst,introduced=x +#define __API_AVAILABLE_PLATFORM_uikitformac(x) uikitformac,introduced=x +#define __API_AVAILABLE_PLATFORM_driverkit(x) driverkit,introduced=x +#define __API_A(x) __attribute__((availability(__API_AVAILABLE_PLATFORM_##x))) +#define __API_AVAILABLE1(x) __API_A(x) +#define __API_AVAILABLE2(x,y) __API_A(x) __API_A(y) +#define __API_AVAILABLE3(x,y,z) __API_A(x) __API_A(y) __API_A(z) +#define __API_AVAILABLE4(x,y,z,t) __API_A(x) __API_A(y) __API_A(z) __API_A(t) +#define __API_AVAILABLE5(x,y,z,t,b) __API_A(x) __API_A(y) __API_A(z) __API_A(t) __API_A(b) +#define __API_AVAILABLE6(x,y,z,t,b,m) __API_A(x) __API_A(y) __API_A(z) __API_A(t) __API_A(b) __API_A(m) +#define __API_AVAILABLE7(x,y,z,t,b,m,d) __API_A(x) __API_A(y) __API_A(z) __API_A(t) __API_A(b) __API_A(m) __API_A(d) +#define __API_AVAILABLE8(x,y,z,t,b,m,d,l) __API_A(x) __API_A(y) __API_A(z) __API_A(t) __API_A(b) __API_A(m) __API_A(d) __API_A(l) +#define __API_AVAILABLE_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME +#define __API_APPLY_TO any(record, enum, enum_constant, function, objc_method, objc_category, objc_protocol, objc_interface, objc_property, type_alias, variable, field) +#define __API_RANGE_STRINGIFY(x) __API_RANGE_STRINGIFY2(x) +#define __API_RANGE_STRINGIFY2(x) #x +#define __API_A_BEGIN(x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_AVAILABLE_PLATFORM_##x))), apply_to = __API_APPLY_TO))) +#define __API_AVAILABLE_BEGIN1(a) __API_A_BEGIN(a) +#define __API_AVAILABLE_BEGIN2(a,b) __API_A_BEGIN(a) __API_A_BEGIN(b) +#define __API_AVAILABLE_BEGIN3(a,b,c) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c) +#define __API_AVAILABLE_BEGIN4(a,b,c,d) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c) __API_A_BEGIN(d) +#define __API_AVAILABLE_BEGIN5(a,b,c,d,e) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c) __API_A_BEGIN(d) __API_A_BEGIN(e) +#define __API_AVAILABLE_BEGIN6(a,b,c,d,e,f) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c) __API_A_BEGIN(d) __API_A_BEGIN(e) __API_A_BEGIN(f) +#define __API_AVAILABLE_BEGIN7(a,b,c,d,e,f,g) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c) __API_A_BEGIN(d) __API_A_BEGIN(e) __API_A_BEGIN(f) __API_A_BEGIN(g) +#define __API_AVAILABLE_BEGIN8(a,b,c,d,e,f,g,h) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c) __API_A_BEGIN(d) __API_A_BEGIN(e) __API_A_BEGIN(f) __API_A_BEGIN(g) __API_A_BEGIN(h) +#define __API_AVAILABLE_BEGIN_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME +#define __API_DEPRECATED_PLATFORM_macos(x,y) macos,introduced=x,deprecated=y +#define __API_DEPRECATED_PLATFORM_macosx(x,y) macosx,introduced=x,deprecated=y +#define __API_DEPRECATED_PLATFORM_ios(x,y) ios,introduced=x,deprecated=y +#define __API_DEPRECATED_PLATFORM_watchos(x,y) watchos,introduced=x,deprecated=y +#define __API_DEPRECATED_PLATFORM_tvos(x,y) tvos,introduced=x,deprecated=y +#define __API_DEPRECATED_PLATFORM_macCatalyst(x,y) macCatalyst,introduced=x,deprecated=y +#define __API_DEPRECATED_PLATFORM_macCatalyst(x,y) macCatalyst,introduced=x,deprecated=y +#define __API_DEPRECATED_PLATFORM_uikitformac(x) uikitformac,introduced=x,deprecated=y +#define __API_DEPRECATED_PLATFORM_driverkit(x,y) driverkit,introduced=x,deprecated=y +#define __API_D(msg,x) __attribute__((availability(__API_DEPRECATED_PLATFORM_##x,message=msg))) +#define __API_DEPRECATED_MSG2(msg,x) __API_D(msg,x) +#define __API_DEPRECATED_MSG3(msg,x,y) __API_D(msg,x) __API_D(msg,y) +#define __API_DEPRECATED_MSG4(msg,x,y,z) __API_DEPRECATED_MSG3(msg,x,y) __API_D(msg,z) +#define __API_DEPRECATED_MSG5(msg,x,y,z,t) __API_DEPRECATED_MSG4(msg,x,y,z) __API_D(msg,t) +#define __API_DEPRECATED_MSG6(msg,x,y,z,t,b) __API_DEPRECATED_MSG5(msg,x,y,z,t) __API_D(msg,b) +#define __API_DEPRECATED_MSG7(msg,x,y,z,t,b,m) __API_DEPRECATED_MSG6(msg,x,y,z,t,b) __API_D(msg,m) +#define __API_DEPRECATED_MSG8(msg,x,y,z,t,b,m,d) __API_DEPRECATED_MSG7(msg,x,y,z,t,b,m) __API_D(msg,d) +#define __API_DEPRECATED_MSG9(msg,x,y,z,t,b,m,d,l) __API_DEPRECATED_MSG8(msg,x,y,z,t,b,m,d) __API_D(msg,l) +#define __API_DEPRECATED_MSG_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,_9,NAME,...) NAME +#define __API_D_BEGIN(msg,x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_DEPRECATED_PLATFORM_##x,message=msg))), apply_to = __API_APPLY_TO))) +#define __API_DEPRECATED_BEGIN_MSG2(msg,a) __API_D_BEGIN(msg,a) +#define __API_DEPRECATED_BEGIN_MSG3(msg,a,b) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) +#define __API_DEPRECATED_BEGIN_MSG4(msg,a,b,c) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c) +#define __API_DEPRECATED_BEGIN_MSG5(msg,a,b,c,d) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c) __API_D_BEGIN(msg,d) +#define __API_DEPRECATED_BEGIN_MSG6(msg,a,b,c,d,e) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c) __API_D_BEGIN(msg,d) __API_D_BEGIN(msg,e) +#define __API_DEPRECATED_BEGIN_MSG7(msg,a,b,c,d,e,f) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c) __API_D_BEGIN(msg,d) __API_D_BEGIN(msg,e) __API_D_BEGIN(msg,f) +#define __API_DEPRECATED_BEGIN_MSG8(msg,a,b,c,d,e,f,g) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c) __API_D_BEGIN(msg,d) __API_D_BEGIN(msg,e) __API_D_BEGIN(msg,f) __API_D_BEGIN(msg,g) +#define __API_DEPRECATED_BEGIN_MSG9(msg,a,b,c,d,e,f,g,h) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c) __API_D_BEGIN(msg,d) __API_D_BEGIN(msg,e) __API_D_BEGIN(msg,f) __API_D_BEGIN(msg,g) __API_D_BEGIN(msg,h) +#define __API_DEPRECATED_BEGIN_MSG_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,_9,NAME,...) NAME +#define __API_R(rep,x) __attribute__((availability(__API_DEPRECATED_PLATFORM_##x,replacement=rep))) +#define __API_DEPRECATED_REP2(rep,x) __API_R(rep,x) +#define __API_DEPRECATED_REP3(rep,x,y) __API_R(rep,x) __API_R(rep,y) +#define __API_DEPRECATED_REP4(rep,x,y,z) __API_DEPRECATED_REP3(rep,x,y) __API_R(rep,z) +#define __API_DEPRECATED_REP5(rep,x,y,z,t) __API_DEPRECATED_REP4(rep,x,y,z) __API_R(rep,t) +#define __API_DEPRECATED_REP6(rep,x,y,z,t,b) __API_DEPRECATED_REP5(rep,x,y,z,t) __API_R(rep,b) +#define __API_DEPRECATED_REP7(rep,x,y,z,t,b,m) __API_DEPRECATED_REP6(rep,x,y,z,t,b) __API_R(rep,m) +#define __API_DEPRECATED_REP8(rep,x,y,z,t,b,m,d) __API_DEPRECATED_REP7(rep,x,y,z,t,b,m) __API_R(rep,d) +#define __API_DEPRECATED_REP9(rep,x,y,z,t,b,m,d,l) __API_DEPRECATED_REP8(rep,x,y,z,t,b,m,d) __API_R(rep,l) +#define __API_DEPRECATED_REP_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,_9,NAME,...) NAME +#define __API_R_BEGIN(rep,x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_DEPRECATED_PLATFORM_##x,replacement=rep))), apply_to = __API_APPLY_TO))) +#define __API_DEPRECATED_BEGIN_REP2(rep,a) __API_R_BEGIN(rep,a) +#define __API_DEPRECATED_BEGIN_REP3(rep,a,b) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) +#define __API_DEPRECATED_BEGIN_REP4(rep,a,b,c) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c) +#define __API_DEPRECATED_BEGIN_REP5(rep,a,b,c,d) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c) __API_R_BEGIN(rep,d) +#define __API_DEPRECATED_BEGIN_REP6(rep,a,b,c,d,e) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c) __API_R_BEGIN(rep,d) __API_R_BEGIN(rep,e) +#define __API_DEPRECATED_BEGIN_REP7(rep,a,b,c,d,e,f) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c) __API_R_BEGIN(rep,d) __API_R_BEGIN(rep,e) __API_R_BEGIN(rep,f) +#define __API_DEPRECATED_BEGIN_REP8(rep,a,b,c,d,e,f,g) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c) __API_R_BEGIN(rep,d) __API_R_BEGIN(rep,e) __API_R_BEGIN(rep,f) __API_R_BEGIN(rep,g) +#define __API_DEPRECATED_BEGIN_REP9(rep,a,b,c,d,e,f,g,h) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c) __API_R_BEGIN(rep,d) __API_R_BEGIN(rep,e) __API_R_BEGIN(rep,f) __API_R_BEGIN(rep,g) __API_R_BEGIN(rep,h) +#define __API_DEPRECATED_BEGIN_REP_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,_9,NAME,...) NAME +#define __API_UNAVAILABLE_PLATFORM_macos macos,unavailable +#define __API_UNAVAILABLE_PLATFORM_macosx macosx,unavailable +#define __API_UNAVAILABLE_PLATFORM_ios ios,unavailable +#define __API_UNAVAILABLE_PLATFORM_watchos watchos,unavailable +#define __API_UNAVAILABLE_PLATFORM_tvos tvos,unavailable +#define __API_UNAVAILABLE_PLATFORM_macCatalyst macCatalyst,unavailable +#define __API_UNAVAILABLE_PLATFORM_macCatalyst macCatalyst,unavailable +#define __API_UNAVAILABLE_PLATFORM_uikitformac(x) uikitformac,unavailable +#define __API_UNAVAILABLE_PLATFORM_driverkit driverkit,unavailable +#define __API_U(x) __attribute__((availability(__API_UNAVAILABLE_PLATFORM_##x))) +#define __API_UNAVAILABLE1(x) __API_U(x) +#define __API_UNAVAILABLE2(x,y) __API_U(x) __API_U(y) +#define __API_UNAVAILABLE3(x,y,z) __API_UNAVAILABLE2(x,y) __API_U(z) +#define __API_UNAVAILABLE4(x,y,z,t) __API_UNAVAILABLE3(x,y,z) __API_U(t) +#define __API_UNAVAILABLE5(x,y,z,t,b) __API_UNAVAILABLE4(x,y,z,t) __API_U(b) +#define __API_UNAVAILABLE6(x,y,z,t,b,m) __API_UNAVAILABLE5(x,y,z,t,b) __API_U(m) +#define __API_UNAVAILABLE7(x,y,z,t,b,m,d) __API_UNAVAILABLE6(x,y,z,t,b,m) __API_U(d) +#define __API_UNAVAILABLE8(x,y,z,t,b,m,d,l) __API_UNAVAILABLE7(x,y,z,t,b,m,d) __API_U(l) +#define __API_UNAVAILABLE_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME +#define __API_U_BEGIN(x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_UNAVAILABLE_PLATFORM_##x))), apply_to = __API_APPLY_TO))) +#define __API_UNAVAILABLE_BEGIN1(a) __API_U_BEGIN(a) +#define __API_UNAVAILABLE_BEGIN2(a,b) __API_U_BEGIN(a) __API_U_BEGIN(b) +#define __API_UNAVAILABLE_BEGIN3(a,b,c) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c) +#define __API_UNAVAILABLE_BEGIN4(a,b,c,d) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c) __API_U_BEGIN(d) +#define __API_UNAVAILABLE_BEGIN5(a,b,c,d,e) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c) __API_U_BEGIN(d) __API_U_BEGIN(e) +#define __API_UNAVAILABLE_BEGIN6(a,b,c,d,e,f) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c) __API_U_BEGIN(d) __API_U_BEGIN(e) __API_U_BEGIN(f) +#define __API_UNAVAILABLE_BEGIN7(a,b,c,d,e,f,g) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c) __API_U_BEGIN(d) __API_U_BEGIN(e) __API_U_BEGIN(f) __API_U_BEGIN(g) +#define __API_UNAVAILABLE_BEGIN8(a,b,c,d,e,f,g,h) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c) __API_U_BEGIN(d) __API_U_BEGIN(e) __API_U_BEGIN(f) __API_U_BEGIN(g) __API_U_BEGIN(h) +#define __API_UNAVAILABLE_BEGIN_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME +#define __swift_compiler_version_at_least(...) 1 +#define __SPI_AVAILABLE(...) +#define __OSX_AVAILABLE_STARTING(_osx,_ios) __AVAILABILITY_INTERNAL##_osx +#define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro,_osxDep,_iosIntro,_iosDep) __AVAILABILITY_INTERNAL##_osxIntro##_DEP##_osxDep +#define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro,_osxDep,_iosIntro,_iosDep,_msg) __AVAILABILITY_INTERNAL##_osxIntro##_DEP##_osxDep##_MSG(_msg) +#define __OS_AVAILABILITY(_target,_availability) __attribute__((availability(_target,_availability))) +#define __OS_AVAILABILITY_MSG(_target,_availability,_msg) __attribute__((availability(_target,_availability,message=_msg))) +#define __OSX_EXTENSION_UNAVAILABLE(_msg) __OS_AVAILABILITY_MSG(macosx_app_extension,unavailable,_msg) +#define __IOS_EXTENSION_UNAVAILABLE(_msg) __OS_AVAILABILITY_MSG(ios_app_extension,unavailable,_msg) +#define __OS_EXTENSION_UNAVAILABLE(_msg) __OSX_EXTENSION_UNAVAILABLE(_msg) __IOS_EXTENSION_UNAVAILABLE(_msg) +#define __OSX_UNAVAILABLE __OS_AVAILABILITY(macosx,unavailable) +#define __OSX_AVAILABLE(_vers) __OS_AVAILABILITY(macosx,introduced=_vers) +#define __OSX_DEPRECATED(_start,_dep,_msg) __OSX_AVAILABLE(_start) __OS_AVAILABILITY_MSG(macosx,deprecated=_dep,_msg) +#define __IOS_UNAVAILABLE __OS_AVAILABILITY(ios,unavailable) +#define __IOS_PROHIBITED __OS_AVAILABILITY(ios,unavailable) +#define __IOS_AVAILABLE(_vers) __OS_AVAILABILITY(ios,introduced=_vers) +#define __IOS_DEPRECATED(_start,_dep,_msg) __IOS_AVAILABLE(_start) __OS_AVAILABILITY_MSG(ios,deprecated=_dep,_msg) +#define __TVOS_UNAVAILABLE __OS_AVAILABILITY(tvos,unavailable) +#define __TVOS_PROHIBITED __OS_AVAILABILITY(tvos,unavailable) +#define __TVOS_AVAILABLE(_vers) __OS_AVAILABILITY(tvos,introduced=_vers) +#define __TVOS_DEPRECATED(_start,_dep,_msg) __TVOS_AVAILABLE(_start) __OS_AVAILABILITY_MSG(tvos,deprecated=_dep,_msg) +#define __WATCHOS_UNAVAILABLE __OS_AVAILABILITY(watchos,unavailable) +#define __WATCHOS_PROHIBITED __OS_AVAILABILITY(watchos,unavailable) +#define __WATCHOS_AVAILABLE(_vers) __OS_AVAILABILITY(watchos,introduced=_vers) +#define __WATCHOS_DEPRECATED(_start,_dep,_msg) __WATCHOS_AVAILABLE(_start) __OS_AVAILABILITY_MSG(watchos,deprecated=_dep,_msg) +#define __SWIFT_UNAVAILABLE __OS_AVAILABILITY(swift,unavailable) +#define __SWIFT_UNAVAILABLE_MSG(_msg) __OS_AVAILABILITY_MSG(swift,unavailable,_msg) +#define __API_AVAILABLE(...) __API_AVAILABLE_GET_MACRO(__VA_ARGS__,__API_AVAILABLE8, __API_AVAILABLE7, __API_AVAILABLE6, __API_AVAILABLE5, __API_AVAILABLE4, __API_AVAILABLE3, __API_AVAILABLE2, __API_AVAILABLE1, 0)(__VA_ARGS__) +#define __API_AVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_AVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_AVAILABLE_BEGIN8, __API_AVAILABLE_BEGIN7, __API_AVAILABLE_BEGIN6, __API_AVAILABLE_BEGIN5, __API_AVAILABLE_BEGIN4, __API_AVAILABLE_BEGIN3, __API_AVAILABLE_BEGIN2, __API_AVAILABLE_BEGIN1, 0)(__VA_ARGS__) +#define __API_AVAILABLE_END _Pragma("clang attribute pop") +#define __API_DEPRECATED(...) __API_DEPRECATED_MSG_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_MSG9, __API_DEPRECATED_MSG8,__API_DEPRECATED_MSG7,__API_DEPRECATED_MSG6,__API_DEPRECATED_MSG5,__API_DEPRECATED_MSG4,__API_DEPRECATED_MSG3,__API_DEPRECATED_MSG2,__API_DEPRECATED_MSG1, 0)(__VA_ARGS__) +#define __API_DEPRECATED_WITH_REPLACEMENT(...) __API_DEPRECATED_REP_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_REP9,__API_DEPRECATED_REP8,__API_DEPRECATED_REP7,__API_DEPRECATED_REP6,__API_DEPRECATED_REP5,__API_DEPRECATED_REP4,__API_DEPRECATED_REP3,__API_DEPRECATED_REP2,__API_DEPRECATED_REP1, 0)(__VA_ARGS__) +#define __API_DEPRECATED_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_BEGIN_MSG_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_BEGIN_MSG9, __API_DEPRECATED_BEGIN_MSG8,__API_DEPRECATED_BEGIN_MSG7, __API_DEPRECATED_BEGIN_MSG6, __API_DEPRECATED_BEGIN_MSG5, __API_DEPRECATED_BEGIN_MSG4, __API_DEPRECATED_BEGIN_MSG3, __API_DEPRECATED_BEGIN_MSG2, __API_DEPRECATED_BEGIN_MSG1, 0)(__VA_ARGS__) +#define __API_DEPRECATED_END _Pragma("clang attribute pop") +#define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_BEGIN_REP_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_BEGIN_REP9, __API_DEPRECATED_BEGIN_REP8,__API_DEPRECATED_BEGIN_REP7, __API_DEPRECATED_BEGIN_REP6, __API_DEPRECATED_BEGIN_REP5, __API_DEPRECATED_BEGIN_REP4, __API_DEPRECATED_BEGIN_REP3, __API_DEPRECATED_BEGIN_REP2, __API_DEPRECATED_BEGIN_REP1, 0)(__VA_ARGS__) +#define __API_DEPRECATED_WITH_REPLACEMENT_END _Pragma("clang attribute pop") +#define __API_UNAVAILABLE(...) __API_UNAVAILABLE_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE8,__API_UNAVAILABLE7,__API_UNAVAILABLE6,__API_UNAVAILABLE5,__API_UNAVAILABLE4,__API_UNAVAILABLE3,__API_UNAVAILABLE2,__API_UNAVAILABLE1, 0)(__VA_ARGS__) +#define __API_UNAVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_UNAVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE_BEGIN8,__API_UNAVAILABLE_BEGIN7,__API_UNAVAILABLE_BEGIN6, __API_UNAVAILABLE_BEGIN5, __API_UNAVAILABLE_BEGIN4, __API_UNAVAILABLE_BEGIN3, __API_UNAVAILABLE_BEGIN2, __API_UNAVAILABLE_BEGIN1, 0)(__VA_ARGS__) +#define __API_UNAVAILABLE_END _Pragma("clang attribute pop") +#define __SPI_DEPRECATED(...) +#define __SPI_DEPRECATED_WITH_REPLACEMENT(...) +#define __TYPES_H_ +#define _SYS__TYPES_H_ +#define _BSD_MACHINE__TYPES_H_ +#define _BSD_I386__TYPES_H_ +#define __DARWIN_NULL ((void *)0) +#define _SYS__PTHREAD_TYPES_H_ +#define __PTHREAD_SIZE__ 8176 +#define __PTHREAD_ATTR_SIZE__ 56 +#define __PTHREAD_MUTEXATTR_SIZE__ 8 +#define __PTHREAD_MUTEX_SIZE__ 56 +#define __PTHREAD_CONDATTR_SIZE__ 8 +#define __PTHREAD_COND_SIZE__ 40 +#define __PTHREAD_ONCE_SIZE__ 8 +#define __PTHREAD_RWLOCK_SIZE__ 192 +#define __PTHREAD_RWLOCKATTR_SIZE__ 16 +#define __offsetof(type,field) __builtin_offsetof(type, field) +#define __strfmonlike(fmtarg,firstvararg) __attribute__((__format__ (__strfmon__, fmtarg, firstvararg))) +#define __strftimelike(fmtarg) __attribute__((__format__ (__strftime__, fmtarg, 0))) +#define __DARWIN_WCHAR_MAX __WCHAR_MAX__ +#define __DARWIN_WCHAR_MIN (-0x7fffffff - 1) +#define __DARWIN_WEOF ((__darwin_wint_t)-1) +#define _VA_LIST_T +#define _BSD_MACHINE_TYPES_H_ +#define _I386_MACHTYPES_H_ +#define _MACHTYPES_H_ +#define _INT8_T +#define _INT16_T +#define _INT32_T +#define _INT64_T +#define _U_INT8_T +#define _U_INT16_T +#define _U_INT32_T +#define _U_INT64_T +#define _INTPTR_T +#define _UINTPTR_T +#define USER_ADDR_NULL ((user_addr_t) 0) +#define CAST_USER_ADDR_T(a_ptr) ((user_addr_t)((uintptr_t)(a_ptr))) +#define _SIZE_T +#define NULL __DARWIN_NULL +#define _SYS_STDIO_H_ +#define RENAME_SECLUDE 0x00000001 +#define RENAME_SWAP 0x00000002 +#define RENAME_EXCL 0x00000004 +#define RENAME_RESERVED1 0x00000008 +#define RENAME_NOFOLLOW_ANY 0x00000010 +#define _FSTDIO +#define __SLBF 0x0001 +#define __SNBF 0x0002 +#define __SRD 0x0004 +#define __SWR 0x0008 +#define __SRW 0x0010 +#define __SEOF 0x0020 +#define __SERR 0x0040 +#define __SMBF 0x0080 +#define __SAPP 0x0100 +#define __SSTR 0x0200 +#define __SOPT 0x0400 +#define __SNPT 0x0800 +#define __SOFF 0x1000 +#define __SMOD 0x2000 +#define __SALC 0x4000 +#define __SIGN 0x8000 +#define _IOFBF 0 +#define _IOLBF 1 +#define _IONBF 2 +#define BUFSIZ 1024 +#define EOF (-1) +#define FOPEN_MAX 20 +#define FILENAME_MAX 1024 +#define P_tmpdir "/var/tmp/" +#define L_tmpnam 1024 +#define TMP_MAX 308915776 +#define SEEK_SET 0 +#define SEEK_CUR 1 +#define SEEK_END 2 +#define stdin __stdinp +#define stdout __stdoutp +#define stderr __stderrp +#define L_ctermid 1024 +#define _CTERMID_H_ +#define __sgetc(p) (--(p)->_r < 0 ? __srget(p) : (int)(*(p)->_p++)) +#define __sfeof(p) (((p)->_flags & __SEOF) != 0) +#define __sferror(p) (((p)->_flags & __SERR) != 0) +#define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF))) +#define __sfileno(p) ((p)->_file) +#define getc_unlocked(fp) __sgetc(fp) +#define putc_unlocked(x,fp) __sputc(x, fp) +#define getchar_unlocked() getc_unlocked(stdin) +#define putchar_unlocked(x) putc_unlocked(x, stdout) +#define _OFF_T +#define _SSIZE_T +#define fropen(cookie,fn) funopen(cookie, fn, 0, 0, 0) +#define fwopen(cookie,fn) funopen(cookie, 0, fn, 0, 0) +#define feof_unlocked(p) __sfeof(p) +#define ferror_unlocked(p) __sferror(p) +#define clearerr_unlocked(p) __sclearerr(p) +#define fileno_unlocked(p) __sfileno(p) +#define _SECURE__STDIO_H_ +#define _SECURE__COMMON_H_ +#undef _USE_FORTIFY_LEVEL +#define _USE_FORTIFY_LEVEL 2 +#define __darwin_obsz0(object) __builtin_object_size (object, 0) +#define __darwin_obsz(object) __builtin_object_size (object, _USE_FORTIFY_LEVEL > 1 ? 1 : 0) +#undef sprintf +#define sprintf(str,...) __builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__) +#undef snprintf +#define snprintf(str,len,...) __builtin___snprintf_chk (str, len, 0, __darwin_obsz(str), __VA_ARGS__) +#undef vsprintf +#define vsprintf(str,format,ap) __builtin___vsprintf_chk (str, 0, __darwin_obsz(str), format, ap) +#undef vsnprintf +#define vsnprintf(str,len,format,ap) __builtin___vsnprintf_chk (str, len, 0, __darwin_obsz(str), format, ap) +#define _SYS_TYPES_H_ +#define __SYS_APPLEAPIOPTS_H__ +#define __APPLE_API_STANDARD +#define __APPLE_API_STABLE +#define __APPLE_API_EVOLVING +#define __APPLE_API_UNSTABLE +#define __APPLE_API_PRIVATE +#define __APPLE_API_OBSOLETE +#define _BSD_MACHINE_ENDIAN_H_ +#define _I386__ENDIAN_H_ +#define _QUAD_HIGHWORD 1 +#define _QUAD_LOWWORD 0 +#define __DARWIN_LITTLE_ENDIAN 1234 +#define __DARWIN_BIG_ENDIAN 4321 +#define __DARWIN_PDP_ENDIAN 3412 +#define __DARWIN_BYTE_ORDER __DARWIN_LITTLE_ENDIAN +#define LITTLE_ENDIAN __DARWIN_LITTLE_ENDIAN +#define BIG_ENDIAN __DARWIN_BIG_ENDIAN +#define PDP_ENDIAN __DARWIN_PDP_ENDIAN +#define BYTE_ORDER __DARWIN_BYTE_ORDER +#define _SYS__ENDIAN_H_ +#define _OS__OSBYTEORDER_H +#define __DARWIN_OSSwapConstInt16(x) ((__uint16_t)((((__uint16_t)(x) & 0xff00U) >> 8) | (((__uint16_t)(x) & 0x00ffU) << 8))) +#define __DARWIN_OSSwapConstInt32(x) ((__uint32_t)((((__uint32_t)(x) & 0xff000000U) >> 24) | (((__uint32_t)(x) & 0x00ff0000U) >> 8) | (((__uint32_t)(x) & 0x0000ff00U) << 8) | (((__uint32_t)(x) & 0x000000ffU) << 24))) +#define __DARWIN_OSSwapConstInt64(x) ((__uint64_t)((((__uint64_t)(x) & 0xff00000000000000ULL) >> 56) | (((__uint64_t)(x) & 0x00ff000000000000ULL) >> 40) | (((__uint64_t)(x) & 0x0000ff0000000000ULL) >> 24) | (((__uint64_t)(x) & 0x000000ff00000000ULL) >> 8) | (((__uint64_t)(x) & 0x00000000ff000000ULL) << 8) | (((__uint64_t)(x) & 0x0000000000ff0000ULL) << 24) | (((__uint64_t)(x) & 0x000000000000ff00ULL) << 40) | (((__uint64_t)(x) & 0x00000000000000ffULL) << 56))) +#define __DARWIN_OS_INLINE static inline +#define _OS__OSBYTEORDERI386_H +#define __DARWIN_OSSwapInt16(x) ((__uint16_t)(__builtin_constant_p(x) ? __DARWIN_OSSwapConstInt16(x) : _OSSwapInt16(x))) +#define __DARWIN_OSSwapInt32(x) (__builtin_constant_p(x) ? __DARWIN_OSSwapConstInt32(x) : _OSSwapInt32(x)) +#define __DARWIN_OSSwapInt64(x) (__builtin_constant_p(x) ? __DARWIN_OSSwapConstInt64(x) : _OSSwapInt64(x)) +#define ntohs(x) __DARWIN_OSSwapInt16(x) +#define htons(x) __DARWIN_OSSwapInt16(x) +#define ntohl(x) __DARWIN_OSSwapInt32(x) +#define htonl(x) __DARWIN_OSSwapInt32(x) +#define ntohll(x) __DARWIN_OSSwapInt64(x) +#define htonll(x) __DARWIN_OSSwapInt64(x) +#define NTOHL(x) (x) = ntohl((__uint32_t)x) +#define NTOHS(x) (x) = ntohs((__uint16_t)x) +#define NTOHLL(x) (x) = ntohll((__uint64_t)x) +#define HTONL(x) (x) = htonl((__uint32_t)x) +#define HTONS(x) (x) = htons((__uint16_t)x) +#define HTONLL(x) (x) = htonll((__uint64_t)x) +#define _U_CHAR +#define _U_SHORT +#define _U_INT +#define _U_LONG +#define _CADDR_T +#define _DEV_T +#define _BLKCNT_T +#define _BLKSIZE_T +#define _GID_T +#define _IN_ADDR_T +#define _IN_PORT_T +#define _INO_T +#define _INO64_T +#define _KEY_T +#define _MODE_T +#define _NLINK_T +#define _ID_T +#define _PID_T +#define _UID_T +#define major(x) ((int32_t)(((u_int32_t)(x) >> 24) & 0xff)) +#define minor(x) ((int32_t)((x) & 0xffffff)) +#define makedev(x,y) ((dev_t)(((x) << 24) | (y))) +#define _CLOCK_T +#define _TIME_T +#define _USECONDS_T +#define _SUSECONDS_T +#define _RSIZE_T +#define _ERRNO_T +#define _FD_SET +#define __DARWIN_FD_SETSIZE 1024 +#define __DARWIN_NBBY 8 +#define __DARWIN_NFDBITS (sizeof(__int32_t) * __DARWIN_NBBY) +#define __DARWIN_howmany(x,y) ((((x) % (y)) == 0) ? ((x) / (y)) : (((x) / (y)) + 1)) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunguarded-availability-new" +#pragma clang diagnostic pop +#define __DARWIN_FD_SET(n,p) __darwin_fd_set((n), (p)) +#define __DARWIN_FD_CLR(n,p) __darwin_fd_clr((n), (p)) +#define __DARWIN_FD_ISSET(n,p) __darwin_fd_isset((n), (p)) +#define __DARWIN_FD_ZERO(p) __builtin_bzero(p, sizeof(*(p))) +#define __DARWIN_FD_COPY(f,t) bcopy(f, t, sizeof(*(f))) +#define NBBY __DARWIN_NBBY +#define NFDBITS __DARWIN_NFDBITS +#define howmany(x,y) __DARWIN_howmany(x, y) +#define FD_SETSIZE __DARWIN_FD_SETSIZE +#define FD_SET(n,p) __DARWIN_FD_SET(n, p) +#define FD_CLR(n,p) __DARWIN_FD_CLR(n, p) +#define FD_ZERO(p) __DARWIN_FD_ZERO(p) +#define FD_ISSET(n,p) __DARWIN_FD_ISSET(n, p) +#define FD_COPY(f,t) __DARWIN_FD_COPY(f, t) +#define _PTHREAD_ATTR_T +#define _PTHREAD_COND_T +#define _PTHREAD_CONDATTR_T +#define _PTHREAD_MUTEX_T +#define _PTHREAD_MUTEXATTR_T +#define _PTHREAD_ONCE_T +#define _PTHREAD_RWLOCK_T +#define _PTHREAD_RWLOCKATTR_T +#define _PTHREAD_T +#define _PTHREAD_KEY_T +#define _FSBLKCNT_T +#define _FSFILCNT_T +#define _SYS_STAT_H_ +#define _STRUCT_TIMESPEC struct timespec +#define __DARWIN_STRUCT_STAT64_TIMES struct timespec st_atimespec; struct timespec st_mtimespec; struct timespec st_ctimespec; struct timespec st_birthtimespec; +#define __DARWIN_STRUCT_STAT64 { dev_t st_dev; mode_t st_mode; nlink_t st_nlink; __darwin_ino64_t st_ino; uid_t st_uid; gid_t st_gid; dev_t st_rdev; __DARWIN_STRUCT_STAT64_TIMES off_t st_size; blkcnt_t st_blocks; blksize_t st_blksize; __uint32_t st_flags; __uint32_t st_gen; __int32_t st_lspare; __int64_t st_qspare[2]; } +#define st_atime st_atimespec.tv_sec +#define st_mtime st_mtimespec.tv_sec +#define st_ctime st_ctimespec.tv_sec +#define st_birthtime st_birthtimespec.tv_sec +#define S_IFMT 0170000 +#define S_IFIFO 0010000 +#define S_IFCHR 0020000 +#define S_IFDIR 0040000 +#define S_IFBLK 0060000 +#define S_IFREG 0100000 +#define S_IFLNK 0120000 +#define S_IFSOCK 0140000 +#define S_IFWHT 0160000 +#define S_IRWXU 0000700 +#define S_IRUSR 0000400 +#define S_IWUSR 0000200 +#define S_IXUSR 0000100 +#define S_IRWXG 0000070 +#define S_IRGRP 0000040 +#define S_IWGRP 0000020 +#define S_IXGRP 0000010 +#define S_IRWXO 0000007 +#define S_IROTH 0000004 +#define S_IWOTH 0000002 +#define S_IXOTH 0000001 +#define S_ISUID 0004000 +#define S_ISGID 0002000 +#define S_ISVTX 0001000 +#define S_ISTXT S_ISVTX +#define S_IREAD S_IRUSR +#define S_IWRITE S_IWUSR +#define S_IEXEC S_IXUSR +#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) +#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) +#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) +#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) +#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) +#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) +#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) +#define S_ISWHT(m) (((m) & S_IFMT) == S_IFWHT) +#define S_TYPEISMQ(buf) (0) +#define S_TYPEISSEM(buf) (0) +#define S_TYPEISSHM(buf) (0) +#define S_TYPEISTMO(buf) (0) +#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) +#define ALLPERMS (S_ISUID|S_ISGID|S_ISTXT|S_IRWXU|S_IRWXG|S_IRWXO) +#define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) +#define S_BLKSIZE 512 +#define UF_SETTABLE 0x0000ffff +#define UF_NODUMP 0x00000001 +#define UF_IMMUTABLE 0x00000002 +#define UF_APPEND 0x00000004 +#define UF_OPAQUE 0x00000008 +#define UF_COMPRESSED 0x00000020 +#define UF_TRACKED 0x00000040 +#define UF_DATAVAULT 0x00000080 +#define UF_HIDDEN 0x00008000 +#define SF_SUPPORTED 0x009f0000 +#define SF_SETTABLE 0x3fff0000 +#define SF_SYNTHETIC 0xc0000000 +#define SF_ARCHIVED 0x00010000 +#define SF_IMMUTABLE 0x00020000 +#define SF_APPEND 0x00040000 +#define SF_RESTRICTED 0x00080000 +#define SF_NOUNLINK 0x00100000 +#define SF_FIRMLINK 0x00800000 +#define SF_DATALESS 0x40000000 +#define EF_MAY_SHARE_BLOCKS 0x00000001 +#define EF_NO_XATTRS 0x00000002 +#define EF_IS_SYNC_ROOT 0x00000004 +#define EF_IS_PURGEABLE 0x00000008 +#define EF_IS_SPARSE 0x00000010 +#define EF_IS_SYNTHETIC 0x00000020 +#define UTIME_NOW -1 +#define UTIME_OMIT -2 +#define _FILESEC_T +#define _STDLIB_H_ +#define _SYS_WAIT_H_ +#define _SYS_SIGNAL_H_ +#define __DARWIN_NSIG 32 +#define NSIG __DARWIN_NSIG +#define _BSD_MACHINE_SIGNAL_H_ +#define _I386_SIGNAL_H_ 1 +#define SIGHUP 1 +#define SIGINT 2 +#define SIGQUIT 3 +#define SIGILL 4 +#define SIGTRAP 5 +#define SIGABRT 6 +#define SIGIOT SIGABRT +#define SIGEMT 7 +#define SIGFPE 8 +#define SIGKILL 9 +#define SIGBUS 10 +#define SIGSEGV 11 +#define SIGSYS 12 +#define SIGPIPE 13 +#define SIGALRM 14 +#define SIGTERM 15 +#define SIGURG 16 +#define SIGSTOP 17 +#define SIGTSTP 18 +#define SIGCONT 19 +#define SIGCHLD 20 +#define SIGTTIN 21 +#define SIGTTOU 22 +#define SIGIO 23 +#define SIGXCPU 24 +#define SIGXFSZ 25 +#define SIGVTALRM 26 +#define SIGPROF 27 +#define SIGWINCH 28 +#define SIGINFO 29 +#define SIGUSR1 30 +#define SIGUSR2 31 +#define SIG_DFL (void (*)(int))0 +#define SIG_IGN (void (*)(int))1 +#define SIG_HOLD (void (*)(int))5 +#define SIG_ERR ((void (*)(int))-1) +#define _BSD_MACHINE__MCONTEXT_H_ +#define __I386_MCONTEXT_H_ +#define _MACH_MACHINE__STRUCTS_H_ +#define _MACH_I386__STRUCTS_H_ +#define _STRUCT_X86_THREAD_STATE32 struct __darwin_i386_thread_state +#define _STRUCT_FP_CONTROL struct __darwin_fp_control +#define FP_PREC_24B 0 +#define FP_PREC_53B 2 +#define FP_PREC_64B 3 +#define FP_RND_NEAR 0 +#define FP_RND_DOWN 1 +#define FP_RND_UP 2 +#define FP_CHOP 3 +#define _STRUCT_FP_STATUS struct __darwin_fp_status +#define _STRUCT_MMST_REG struct __darwin_mmst_reg +#define _STRUCT_XMM_REG struct __darwin_xmm_reg +#define _STRUCT_YMM_REG struct __darwin_ymm_reg +#define _STRUCT_ZMM_REG struct __darwin_zmm_reg +#define _STRUCT_OPMASK_REG struct __darwin_opmask_reg +#define FP_STATE_BYTES 512 +#define _STRUCT_X86_FLOAT_STATE32 struct __darwin_i386_float_state +#define _STRUCT_X86_AVX_STATE32 struct __darwin_i386_avx_state +#define _STRUCT_X86_AVX512_STATE32 struct __darwin_i386_avx512_state +#define _STRUCT_X86_EXCEPTION_STATE32 struct __darwin_i386_exception_state +#define _STRUCT_X86_DEBUG_STATE32 struct __darwin_x86_debug_state32 +#define _STRUCT_X86_INSTRUCTION_STATE struct __x86_instruction_state +#define _X86_INSTRUCTION_STATE_MAX_INSN_BYTES (2448 - 64 - 4) +#define _X86_INSTRUCTION_STATE_CACHELINE_SIZE 64 +#define _STRUCT_LAST_BRANCH_RECORD struct __last_branch_record +#define _STRUCT_LAST_BRANCH_STATE struct __last_branch_state +#define __LASTBRANCH_MAX 32 +#define _STRUCT_X86_PAGEIN_STATE struct __x86_pagein_state +#define _STRUCT_X86_THREAD_STATE64 struct __darwin_x86_thread_state64 +#define _STRUCT_X86_THREAD_FULL_STATE64 struct __darwin_x86_thread_full_state64 +#define _STRUCT_X86_FLOAT_STATE64 struct __darwin_x86_float_state64 +#define _STRUCT_X86_AVX_STATE64 struct __darwin_x86_avx_state64 +#define _STRUCT_X86_AVX512_STATE64 struct __darwin_x86_avx512_state64 +#define _STRUCT_X86_EXCEPTION_STATE64 struct __darwin_x86_exception_state64 +#define _STRUCT_X86_DEBUG_STATE64 struct __darwin_x86_debug_state64 +#define _STRUCT_X86_CPMU_STATE64 struct __darwin_x86_cpmu_state64 +#define _STRUCT_MCONTEXT32 struct __darwin_mcontext32 +#define _STRUCT_MCONTEXT_AVX32 struct __darwin_mcontext_avx32 +#define _STRUCT_MCONTEXT_AVX512_32 struct __darwin_mcontext_avx512_32 +#define _STRUCT_MCONTEXT64 struct __darwin_mcontext64 +#define _STRUCT_MCONTEXT64_FULL struct __darwin_mcontext64_full +#define _STRUCT_MCONTEXT_AVX64 struct __darwin_mcontext_avx64 +#define _STRUCT_MCONTEXT_AVX64_FULL struct __darwin_mcontext_avx64_full +#define _STRUCT_MCONTEXT_AVX512_64 struct __darwin_mcontext_avx512_64 +#define _STRUCT_MCONTEXT_AVX512_64_FULL struct __darwin_mcontext_avx512_64_full +#define _MCONTEXT_T +#define _STRUCT_MCONTEXT _STRUCT_MCONTEXT64 +#define _STRUCT_SIGALTSTACK struct __darwin_sigaltstack +#define _STRUCT_UCONTEXT struct __darwin_ucontext +#define _SIGSET_T +#define SIGEV_NONE 0 +#define SIGEV_SIGNAL 1 +#define SIGEV_THREAD 3 +#define ILL_NOOP 0 +#define ILL_ILLOPC 1 +#define ILL_ILLTRP 2 +#define ILL_PRVOPC 3 +#define ILL_ILLOPN 4 +#define ILL_ILLADR 5 +#define ILL_PRVREG 6 +#define ILL_COPROC 7 +#define ILL_BADSTK 8 +#define FPE_NOOP 0 +#define FPE_FLTDIV 1 +#define FPE_FLTOVF 2 +#define FPE_FLTUND 3 +#define FPE_FLTRES 4 +#define FPE_FLTINV 5 +#define FPE_FLTSUB 6 +#define FPE_INTDIV 7 +#define FPE_INTOVF 8 +#define SEGV_NOOP 0 +#define SEGV_MAPERR 1 +#define SEGV_ACCERR 2 +#define BUS_NOOP 0 +#define BUS_ADRALN 1 +#define BUS_ADRERR 2 +#define BUS_OBJERR 3 +#define TRAP_BRKPT 1 +#define TRAP_TRACE 2 +#define CLD_NOOP 0 +#define CLD_EXITED 1 +#define CLD_KILLED 2 +#define CLD_DUMPED 3 +#define CLD_TRAPPED 4 +#define CLD_STOPPED 5 +#define CLD_CONTINUED 6 +#define POLL_IN 1 +#define POLL_OUT 2 +#define POLL_MSG 3 +#define POLL_ERR 4 +#define POLL_PRI 5 +#define POLL_HUP 6 +#define sa_handler __sigaction_u.__sa_handler +#define sa_sigaction __sigaction_u.__sa_sigaction +#define SA_ONSTACK 0x0001 +#define SA_RESTART 0x0002 +#define SA_RESETHAND 0x0004 +#define SA_NOCLDSTOP 0x0008 +#define SA_NODEFER 0x0010 +#define SA_NOCLDWAIT 0x0020 +#define SA_SIGINFO 0x0040 +#define SA_USERTRAMP 0x0100 +#define SA_64REGSET 0x0200 +#define SA_USERSPACE_MASK (SA_ONSTACK | SA_RESTART | SA_RESETHAND | SA_NOCLDSTOP | SA_NODEFER | SA_NOCLDWAIT | SA_SIGINFO) +#define SIG_BLOCK 1 +#define SIG_UNBLOCK 2 +#define SIG_SETMASK 3 +#define SI_USER 0x10001 +#define SI_QUEUE 0x10002 +#define SI_TIMER 0x10003 +#define SI_ASYNCIO 0x10004 +#define SI_MESGQ 0x10005 +#define SS_ONSTACK 0x0001 +#define SS_DISABLE 0x0004 +#define MINSIGSTKSZ 32768 +#define SIGSTKSZ 131072 +#define SV_ONSTACK SA_ONSTACK +#define SV_INTERRUPT SA_RESTART +#define SV_RESETHAND SA_RESETHAND +#define SV_NODEFER SA_NODEFER +#define SV_NOCLDSTOP SA_NOCLDSTOP +#define SV_SIGINFO SA_SIGINFO +#define sv_onstack sv_flags +#define sigmask(m) (1 << ((m)-1)) +#define BADSIG SIG_ERR +#define _SYS_RESOURCE_H_ +#define __CLANG_STDINT_H +#define _STDINT_H_ +#define __WORDSIZE 64 +#define _UINT8_T +#define _UINT16_T +#define _UINT32_T +#define _UINT64_T +#define _INTMAX_T +#define _UINTMAX_T +#define INT8_C(v) (v) +#define INT16_C(v) (v) +#define INT32_C(v) (v) +#define INT64_C(v) (v ## LL) +#define UINT8_C(v) (v) +#define UINT16_C(v) (v) +#define UINT32_C(v) (v ## U) +#define UINT64_C(v) (v ## ULL) +#define INTMAX_C(v) (v ## L) +#define UINTMAX_C(v) (v ## UL) +#define INT8_MAX 127 +#define INT16_MAX 32767 +#define INT32_MAX 2147483647 +#define INT64_MAX 9223372036854775807LL +#define INT8_MIN -128 +#define INT16_MIN -32768 +#define INT32_MIN (-INT32_MAX-1) +#define INT64_MIN (-INT64_MAX-1) +#define UINT8_MAX 255 +#define UINT16_MAX 65535 +#define UINT32_MAX 4294967295U +#define UINT64_MAX 18446744073709551615ULL +#define INT_LEAST8_MIN INT8_MIN +#define INT_LEAST16_MIN INT16_MIN +#define INT_LEAST32_MIN INT32_MIN +#define INT_LEAST64_MIN INT64_MIN +#define INT_LEAST8_MAX INT8_MAX +#define INT_LEAST16_MAX INT16_MAX +#define INT_LEAST32_MAX INT32_MAX +#define INT_LEAST64_MAX INT64_MAX +#define UINT_LEAST8_MAX UINT8_MAX +#define UINT_LEAST16_MAX UINT16_MAX +#define UINT_LEAST32_MAX UINT32_MAX +#define UINT_LEAST64_MAX UINT64_MAX +#define INT_FAST8_MIN INT8_MIN +#define INT_FAST16_MIN INT16_MIN +#define INT_FAST32_MIN INT32_MIN +#define INT_FAST64_MIN INT64_MIN +#define INT_FAST8_MAX INT8_MAX +#define INT_FAST16_MAX INT16_MAX +#define INT_FAST32_MAX INT32_MAX +#define INT_FAST64_MAX INT64_MAX +#define UINT_FAST8_MAX UINT8_MAX +#define UINT_FAST16_MAX UINT16_MAX +#define UINT_FAST32_MAX UINT32_MAX +#define UINT_FAST64_MAX UINT64_MAX +#define INTPTR_MAX 9223372036854775807L +#define INTPTR_MIN (-INTPTR_MAX-1) +#define UINTPTR_MAX 18446744073709551615UL +#define INTMAX_MAX INTMAX_C(9223372036854775807) +#define UINTMAX_MAX UINTMAX_C(18446744073709551615) +#define INTMAX_MIN (-INTMAX_MAX-1) +#define PTRDIFF_MIN INTMAX_MIN +#define PTRDIFF_MAX INTMAX_MAX +#define SIZE_MAX UINTPTR_MAX +#define RSIZE_MAX (SIZE_MAX >> 1) +#define WCHAR_MAX __WCHAR_MAX__ +#define WCHAR_MIN (-WCHAR_MAX-1) +#define WINT_MIN INT32_MIN +#define WINT_MAX INT32_MAX +#define SIG_ATOMIC_MIN INT32_MIN +#define SIG_ATOMIC_MAX INT32_MAX +#define _STRUCT_TIMEVAL struct timeval +#define PRIO_PROCESS 0 +#define PRIO_PGRP 1 +#define PRIO_USER 2 +#define PRIO_DARWIN_THREAD 3 +#define PRIO_DARWIN_PROCESS 4 +#define PRIO_MIN -20 +#define PRIO_MAX 20 +#define PRIO_DARWIN_BG 0x1000 +#define PRIO_DARWIN_NONUI 0x1001 +#define RUSAGE_SELF 0 +#define RUSAGE_CHILDREN -1 +#define ru_first ru_ixrss +#define ru_last ru_nivcsw +#define RUSAGE_INFO_V0 0 +#define RUSAGE_INFO_V1 1 +#define RUSAGE_INFO_V2 2 +#define RUSAGE_INFO_V3 3 +#define RUSAGE_INFO_V4 4 +#define RUSAGE_INFO_V5 5 +#define RUSAGE_INFO_V6 6 +#define RUSAGE_INFO_CURRENT RUSAGE_INFO_V6 +#define RU_PROC_RUNS_RESLIDE 0x00000001 +#define RLIM_INFINITY (((__uint64_t)1 << 63) - 1) +#define RLIM_SAVED_MAX RLIM_INFINITY +#define RLIM_SAVED_CUR RLIM_INFINITY +#define RLIMIT_CPU 0 +#define RLIMIT_FSIZE 1 +#define RLIMIT_DATA 2 +#define RLIMIT_STACK 3 +#define RLIMIT_CORE 4 +#define RLIMIT_AS 5 +#define RLIMIT_RSS RLIMIT_AS +#define RLIMIT_MEMLOCK 6 +#define RLIMIT_NPROC 7 +#define RLIMIT_NOFILE 8 +#define RLIM_NLIMITS 9 +#define _RLIMIT_POSIX_FLAG 0x1000 +#define RLIMIT_WAKEUPS_MONITOR 0x1 +#define RLIMIT_CPU_USAGE_MONITOR 0x2 +#define RLIMIT_THREAD_CPULIMITS 0x3 +#define RLIMIT_FOOTPRINT_INTERVAL 0x4 +#define WAKEMON_ENABLE 0x01 +#define WAKEMON_DISABLE 0x02 +#define WAKEMON_GET_PARAMS 0x04 +#define WAKEMON_SET_DEFAULTS 0x08 +#define WAKEMON_MAKE_FATAL 0x10 +#define CPUMON_MAKE_FATAL 0x1000 +#define FOOTPRINT_INTERVAL_RESET 0x1 +#define IOPOL_TYPE_DISK 0 +#define IOPOL_TYPE_VFS_ATIME_UPDATES 2 +#define IOPOL_TYPE_VFS_MATERIALIZE_DATALESS_FILES 3 +#define IOPOL_TYPE_VFS_STATFS_NO_DATA_VOLUME 4 +#define IOPOL_TYPE_VFS_TRIGGER_RESOLVE 5 +#define IOPOL_TYPE_VFS_IGNORE_CONTENT_PROTECTION 6 +#define IOPOL_TYPE_VFS_IGNORE_PERMISSIONS 7 +#define IOPOL_TYPE_VFS_SKIP_MTIME_UPDATE 8 +#define IOPOL_TYPE_VFS_ALLOW_LOW_SPACE_WRITES 9 +#define IOPOL_TYPE_VFS_DISALLOW_RW_FOR_O_EVTONLY 10 +#define IOPOL_SCOPE_PROCESS 0 +#define IOPOL_SCOPE_THREAD 1 +#define IOPOL_SCOPE_DARWIN_BG 2 +#define IOPOL_DEFAULT 0 +#define IOPOL_IMPORTANT 1 +#define IOPOL_PASSIVE 2 +#define IOPOL_THROTTLE 3 +#define IOPOL_UTILITY 4 +#define IOPOL_STANDARD 5 +#define IOPOL_APPLICATION IOPOL_STANDARD +#define IOPOL_NORMAL IOPOL_IMPORTANT +#define IOPOL_ATIME_UPDATES_DEFAULT 0 +#define IOPOL_ATIME_UPDATES_OFF 1 +#define IOPOL_MATERIALIZE_DATALESS_FILES_DEFAULT 0 +#define IOPOL_MATERIALIZE_DATALESS_FILES_OFF 1 +#define IOPOL_MATERIALIZE_DATALESS_FILES_ON 2 +#define IOPOL_VFS_STATFS_NO_DATA_VOLUME_DEFAULT 0 +#define IOPOL_VFS_STATFS_FORCE_NO_DATA_VOLUME 1 +#define IOPOL_VFS_TRIGGER_RESOLVE_DEFAULT 0 +#define IOPOL_VFS_TRIGGER_RESOLVE_OFF 1 +#define IOPOL_VFS_CONTENT_PROTECTION_DEFAULT 0 +#define IOPOL_VFS_CONTENT_PROTECTION_IGNORE 1 +#define IOPOL_VFS_IGNORE_PERMISSIONS_OFF 0 +#define IOPOL_VFS_IGNORE_PERMISSIONS_ON 1 +#define IOPOL_VFS_SKIP_MTIME_UPDATE_OFF 0 +#define IOPOL_VFS_SKIP_MTIME_UPDATE_ON 1 +#define IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_OFF 0 +#define IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_ON 1 +#define IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_DEFAULT 0 +#define IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_ON 1 +#define WNOHANG 0x00000001 +#define WUNTRACED 0x00000002 +#define _W_INT(w) (*(int *)&(w)) +#define WCOREFLAG 0200 +#define _WSTATUS(x) (_W_INT(x) & 0177) +#define _WSTOPPED 0177 +#define WEXITSTATUS(x) ((_W_INT(x) >> 8) & 0x000000ff) +#define WSTOPSIG(x) (_W_INT(x) >> 8) +#define WIFCONTINUED(x) (_WSTATUS(x) == _WSTOPPED && WSTOPSIG(x) == 0x13) +#define WIFSTOPPED(x) (_WSTATUS(x) == _WSTOPPED && WSTOPSIG(x) != 0x13) +#define WIFEXITED(x) (_WSTATUS(x) == 0) +#define WIFSIGNALED(x) (_WSTATUS(x) != _WSTOPPED && _WSTATUS(x) != 0) +#define WTERMSIG(x) (_WSTATUS(x)) +#define WCOREDUMP(x) (_W_INT(x) & WCOREFLAG) +#define W_EXITCODE(ret,sig) ((ret) << 8 | (sig)) +#define W_STOPCODE(sig) ((sig) << 8 | _WSTOPPED) +#define WEXITED 0x00000004 +#define WSTOPPED 0x00000008 +#define WCONTINUED 0x00000010 +#define WNOWAIT 0x00000020 +#define WAIT_ANY (-1) +#define WAIT_MYPGRP 0 +#define w_termsig w_T.w_Termsig +#define w_coredump w_T.w_Coredump +#define w_retcode w_T.w_Retcode +#define w_stopval w_S.w_Stopval +#define w_stopsig w_S.w_Stopsig +#define _ALLOCA_H_ +#undef alloca +#undef __alloca +#define alloca(size) __alloca(size) +#define __alloca(size) __builtin_alloca(size) +#define _CT_RUNE_T +#define _RUNE_T +#define _WCHAR_T +#define EXIT_FAILURE 1 +#define EXIT_SUCCESS 0 +#define RAND_MAX 0x7fffffff +#define MB_CUR_MAX __mb_cur_max +#define _MALLOC_UNDERSCORE_MALLOC_H_ +#define __bsearch_noescape __attribute__((__noescape__)) +#define __sort_noescape __attribute__((__noescape__)) +#define __STDDEF_H +#define __need_ptrdiff_t +#define __need_size_t +#define __need_wchar_t +#define __need_NULL +#define __need_STDDEF_H_misc +#define _PTRDIFF_T +#undef __need_ptrdiff_t +#undef __need_size_t +#undef __need_wchar_t +#undef NULL +#define NULL ((void*)0) +#undef __need_NULL +#define __CLANG_MAX_ALIGN_T_DEFINED +#define offsetof(t,d) __builtin_offsetof(t, d) +#undef __need_STDDEF_H_misc +#define _STRING_H_ +#define _STRINGS_H_ +#define _SECURE__STRINGS_H_ +#undef bcopy +#define bcopy(src,dest,...) __builtin___memmove_chk (dest, src, __VA_ARGS__, __darwin_obsz0 (dest)) +#undef bzero +#define bzero(dest,...) __builtin___memset_chk (dest, 0, __VA_ARGS__, __darwin_obsz0 (dest)) +#define _SECURE__STRING_H_ +#define __HAS_FIXED_CHK_PROTOTYPES 1 +#undef memccpy +#define memccpy(dest,...) __builtin___memccpy_chk (dest, __VA_ARGS__, __darwin_obsz0 (dest)) +#undef memcpy +#define memcpy(dest,...) __builtin___memcpy_chk (dest, __VA_ARGS__, __darwin_obsz0 (dest)) +#undef memmove +#define memmove(dest,...) __builtin___memmove_chk (dest, __VA_ARGS__, __darwin_obsz0 (dest)) +#undef memset +#define memset(dest,...) __builtin___memset_chk (dest, __VA_ARGS__, __darwin_obsz0 (dest)) +#undef strcpy +#define strcpy(dest,...) __builtin___strcpy_chk (dest, __VA_ARGS__, __darwin_obsz (dest)) +#undef stpcpy +#define stpcpy(dest,...) __builtin___stpcpy_chk (dest, __VA_ARGS__, __darwin_obsz (dest)) +#undef stpncpy +#define stpncpy(dest,...) __builtin___stpncpy_chk (dest, __VA_ARGS__, __darwin_obsz (dest)) +#undef strlcpy +#define strlcpy(dest,...) __builtin___strlcpy_chk (dest, __VA_ARGS__, __darwin_obsz (dest)) +#undef strlcat +#define strlcat(dest,...) __builtin___strlcat_chk (dest, __VA_ARGS__, __darwin_obsz (dest)) +#undef strncpy +#define strncpy(dest,...) __builtin___strncpy_chk (dest, __VA_ARGS__, __darwin_obsz (dest)) +#undef strcat +#define strcat(dest,...) __builtin___strcat_chk (dest, __VA_ARGS__, __darwin_obsz (dest)) +#undef strncat +#define strncat(dest,...) __builtin___strncat_chk (dest, __VA_ARGS__, __darwin_obsz (dest)) +#undef __HAS_FIXED_CHK_PROTOTYPES +#define __CLANG_INTTYPES_H +#define _INTTYPES_H_ +#define __PRI_8_LENGTH_MODIFIER__ "hh" +#define __PRI_64_LENGTH_MODIFIER__ "ll" +#define __SCN_64_LENGTH_MODIFIER__ "ll" +#define __PRI_MAX_LENGTH_MODIFIER__ "j" +#define __SCN_MAX_LENGTH_MODIFIER__ "j" +#define PRId8 __PRI_8_LENGTH_MODIFIER__ "d" +#define PRIi8 __PRI_8_LENGTH_MODIFIER__ "i" +#define PRIo8 __PRI_8_LENGTH_MODIFIER__ "o" +#define PRIu8 __PRI_8_LENGTH_MODIFIER__ "u" +#define PRIx8 __PRI_8_LENGTH_MODIFIER__ "x" +#define PRIX8 __PRI_8_LENGTH_MODIFIER__ "X" +#define PRId16 "hd" +#define PRIi16 "hi" +#define PRIo16 "ho" +#define PRIu16 "hu" +#define PRIx16 "hx" +#define PRIX16 "hX" +#define PRId32 "d" +#define PRIi32 "i" +#define PRIo32 "o" +#define PRIu32 "u" +#define PRIx32 "x" +#define PRIX32 "X" +#define PRId64 __PRI_64_LENGTH_MODIFIER__ "d" +#define PRIi64 __PRI_64_LENGTH_MODIFIER__ "i" +#define PRIo64 __PRI_64_LENGTH_MODIFIER__ "o" +#define PRIu64 __PRI_64_LENGTH_MODIFIER__ "u" +#define PRIx64 __PRI_64_LENGTH_MODIFIER__ "x" +#define PRIX64 __PRI_64_LENGTH_MODIFIER__ "X" +#define PRIdLEAST8 PRId8 +#define PRIiLEAST8 PRIi8 +#define PRIoLEAST8 PRIo8 +#define PRIuLEAST8 PRIu8 +#define PRIxLEAST8 PRIx8 +#define PRIXLEAST8 PRIX8 +#define PRIdLEAST16 PRId16 +#define PRIiLEAST16 PRIi16 +#define PRIoLEAST16 PRIo16 +#define PRIuLEAST16 PRIu16 +#define PRIxLEAST16 PRIx16 +#define PRIXLEAST16 PRIX16 +#define PRIdLEAST32 PRId32 +#define PRIiLEAST32 PRIi32 +#define PRIoLEAST32 PRIo32 +#define PRIuLEAST32 PRIu32 +#define PRIxLEAST32 PRIx32 +#define PRIXLEAST32 PRIX32 +#define PRIdLEAST64 PRId64 +#define PRIiLEAST64 PRIi64 +#define PRIoLEAST64 PRIo64 +#define PRIuLEAST64 PRIu64 +#define PRIxLEAST64 PRIx64 +#define PRIXLEAST64 PRIX64 +#define PRIdFAST8 PRId8 +#define PRIiFAST8 PRIi8 +#define PRIoFAST8 PRIo8 +#define PRIuFAST8 PRIu8 +#define PRIxFAST8 PRIx8 +#define PRIXFAST8 PRIX8 +#define PRIdFAST16 PRId16 +#define PRIiFAST16 PRIi16 +#define PRIoFAST16 PRIo16 +#define PRIuFAST16 PRIu16 +#define PRIxFAST16 PRIx16 +#define PRIXFAST16 PRIX16 +#define PRIdFAST32 PRId32 +#define PRIiFAST32 PRIi32 +#define PRIoFAST32 PRIo32 +#define PRIuFAST32 PRIu32 +#define PRIxFAST32 PRIx32 +#define PRIXFAST32 PRIX32 +#define PRIdFAST64 PRId64 +#define PRIiFAST64 PRIi64 +#define PRIoFAST64 PRIo64 +#define PRIuFAST64 PRIu64 +#define PRIxFAST64 PRIx64 +#define PRIXFAST64 PRIX64 +#define PRIdPTR "ld" +#define PRIiPTR "li" +#define PRIoPTR "lo" +#define PRIuPTR "lu" +#define PRIxPTR "lx" +#define PRIXPTR "lX" +#define PRIdMAX __PRI_MAX_LENGTH_MODIFIER__ "d" +#define PRIiMAX __PRI_MAX_LENGTH_MODIFIER__ "i" +#define PRIoMAX __PRI_MAX_LENGTH_MODIFIER__ "o" +#define PRIuMAX __PRI_MAX_LENGTH_MODIFIER__ "u" +#define PRIxMAX __PRI_MAX_LENGTH_MODIFIER__ "x" +#define PRIXMAX __PRI_MAX_LENGTH_MODIFIER__ "X" +#define SCNd8 __PRI_8_LENGTH_MODIFIER__ "d" +#define SCNi8 __PRI_8_LENGTH_MODIFIER__ "i" +#define SCNo8 __PRI_8_LENGTH_MODIFIER__ "o" +#define SCNu8 __PRI_8_LENGTH_MODIFIER__ "u" +#define SCNx8 __PRI_8_LENGTH_MODIFIER__ "x" +#define SCNd16 "hd" +#define SCNi16 "hi" +#define SCNo16 "ho" +#define SCNu16 "hu" +#define SCNx16 "hx" +#define SCNd32 "d" +#define SCNi32 "i" +#define SCNo32 "o" +#define SCNu32 "u" +#define SCNx32 "x" +#define SCNd64 __SCN_64_LENGTH_MODIFIER__ "d" +#define SCNi64 __SCN_64_LENGTH_MODIFIER__ "i" +#define SCNo64 __SCN_64_LENGTH_MODIFIER__ "o" +#define SCNu64 __SCN_64_LENGTH_MODIFIER__ "u" +#define SCNx64 __SCN_64_LENGTH_MODIFIER__ "x" +#define SCNdLEAST8 SCNd8 +#define SCNiLEAST8 SCNi8 +#define SCNoLEAST8 SCNo8 +#define SCNuLEAST8 SCNu8 +#define SCNxLEAST8 SCNx8 +#define SCNdLEAST16 SCNd16 +#define SCNiLEAST16 SCNi16 +#define SCNoLEAST16 SCNo16 +#define SCNuLEAST16 SCNu16 +#define SCNxLEAST16 SCNx16 +#define SCNdLEAST32 SCNd32 +#define SCNiLEAST32 SCNi32 +#define SCNoLEAST32 SCNo32 +#define SCNuLEAST32 SCNu32 +#define SCNxLEAST32 SCNx32 +#define SCNdLEAST64 SCNd64 +#define SCNiLEAST64 SCNi64 +#define SCNoLEAST64 SCNo64 +#define SCNuLEAST64 SCNu64 +#define SCNxLEAST64 SCNx64 +#define SCNdFAST8 SCNd8 +#define SCNiFAST8 SCNi8 +#define SCNoFAST8 SCNo8 +#define SCNuFAST8 SCNu8 +#define SCNxFAST8 SCNx8 +#define SCNdFAST16 SCNd16 +#define SCNiFAST16 SCNi16 +#define SCNoFAST16 SCNo16 +#define SCNuFAST16 SCNu16 +#define SCNxFAST16 SCNx16 +#define SCNdFAST32 SCNd32 +#define SCNiFAST32 SCNi32 +#define SCNoFAST32 SCNo32 +#define SCNuFAST32 SCNu32 +#define SCNxFAST32 SCNx32 +#define SCNdFAST64 SCNd64 +#define SCNiFAST64 SCNi64 +#define SCNoFAST64 SCNo64 +#define SCNuFAST64 SCNu64 +#define SCNxFAST64 SCNx64 +#define SCNdPTR "ld" +#define SCNiPTR "li" +#define SCNoPTR "lo" +#define SCNuPTR "lu" +#define SCNxPTR "lx" +#define SCNdMAX __SCN_MAX_LENGTH_MODIFIER__ "d" +#define SCNiMAX __SCN_MAX_LENGTH_MODIFIER__ "i" +#define SCNoMAX __SCN_MAX_LENGTH_MODIFIER__ "o" +#define SCNuMAX __SCN_MAX_LENGTH_MODIFIER__ "u" +#define SCNxMAX __SCN_MAX_LENGTH_MODIFIER__ "x" +#define __STDALIGN_H +#define alignas _Alignas +#define alignof _Alignof +#define __alignas_is_defined 1 +#define __alignof_is_defined 1 +#define _UNISTD_H_ +#define _SYS_UNISTD_H_ +#define _POSIX_VERSION 200112L +#define _POSIX2_VERSION 200112L +#define _POSIX_VDISABLE ((unsigned char)'\377') +#define _POSIX_THREAD_KEYS_MAX 128 +#define F_OK 0 +#define X_OK (1<<0) +#define W_OK (1<<1) +#define R_OK (1<<2) +#define _READ_OK (1<<9) +#define _WRITE_OK (1<<10) +#define _EXECUTE_OK (1<<11) +#define _DELETE_OK (1<<12) +#define _APPEND_OK (1<<13) +#define _RMFILE_OK (1<<14) +#define _RATTR_OK (1<<15) +#define _WATTR_OK (1<<16) +#define _REXT_OK (1<<17) +#define _WEXT_OK (1<<18) +#define _RPERM_OK (1<<19) +#define _WPERM_OK (1<<20) +#define _CHOWN_OK (1<<21) +#define _ACCESS_EXTENDED_MASK (_READ_OK | _WRITE_OK | _EXECUTE_OK | _DELETE_OK | _APPEND_OK | _RMFILE_OK | _REXT_OK | _WEXT_OK | _RATTR_OK | _WATTR_OK | _RPERM_OK | _WPERM_OK | _CHOWN_OK) +#define SEEK_HOLE 3 +#define SEEK_DATA 4 +#define L_SET SEEK_SET +#define L_INCR SEEK_CUR +#define L_XTND SEEK_END +#define ACCESSX_MAX_DESCRIPTORS 100 +#define ACCESSX_MAX_TABLESIZE (16 * 1024) +#define _PC_LINK_MAX 1 +#define _PC_MAX_CANON 2 +#define _PC_MAX_INPUT 3 +#define _PC_NAME_MAX 4 +#define _PC_PATH_MAX 5 +#define _PC_PIPE_BUF 6 +#define _PC_CHOWN_RESTRICTED 7 +#define _PC_NO_TRUNC 8 +#define _PC_VDISABLE 9 +#define _PC_NAME_CHARS_MAX 10 +#define _PC_CASE_SENSITIVE 11 +#define _PC_CASE_PRESERVING 12 +#define _PC_EXTENDED_SECURITY_NP 13 +#define _PC_AUTH_OPAQUE_NP 14 +#define _PC_2_SYMLINKS 15 +#define _PC_ALLOC_SIZE_MIN 16 +#define _PC_ASYNC_IO 17 +#define _PC_FILESIZEBITS 18 +#define _PC_PRIO_IO 19 +#define _PC_REC_INCR_XFER_SIZE 20 +#define _PC_REC_MAX_XFER_SIZE 21 +#define _PC_REC_MIN_XFER_SIZE 22 +#define _PC_REC_XFER_ALIGN 23 +#define _PC_SYMLINK_MAX 24 +#define _PC_SYNC_IO 25 +#define _PC_XATTR_SIZE_BITS 26 +#define _PC_MIN_HOLE_SIZE 27 +#define _CS_PATH 1 +#define STDIN_FILENO 0 +#define STDOUT_FILENO 1 +#define STDERR_FILENO 2 +#define _XOPEN_VERSION 600 +#define _XOPEN_XCU_VERSION 4 +#define _POSIX_ADVISORY_INFO (-1) +#define _POSIX_ASYNCHRONOUS_IO (-1) +#define _POSIX_BARRIERS (-1) +#define _POSIX_CHOWN_RESTRICTED 200112L +#define _POSIX_CLOCK_SELECTION (-1) +#define _POSIX_CPUTIME (-1) +#define _POSIX_FSYNC 200112L +#define _POSIX_IPV6 200112L +#define _POSIX_JOB_CONTROL 200112L +#define _POSIX_MAPPED_FILES 200112L +#define _POSIX_MEMLOCK (-1) +#define _POSIX_MEMLOCK_RANGE (-1) +#define _POSIX_MEMORY_PROTECTION 200112L +#define _POSIX_MESSAGE_PASSING (-1) +#define _POSIX_MONOTONIC_CLOCK (-1) +#define _POSIX_NO_TRUNC 200112L +#define _POSIX_PRIORITIZED_IO (-1) +#define _POSIX_PRIORITY_SCHEDULING (-1) +#define _POSIX_RAW_SOCKETS (-1) +#define _POSIX_READER_WRITER_LOCKS 200112L +#define _POSIX_REALTIME_SIGNALS (-1) +#define _POSIX_REGEXP 200112L +#define _POSIX_SAVED_IDS 200112L +#define _POSIX_SEMAPHORES (-1) +#define _POSIX_SHARED_MEMORY_OBJECTS (-1) +#define _POSIX_SHELL 200112L +#define _POSIX_SPAWN 200112L +#define _POSIX_SPIN_LOCKS (-1) +#define _POSIX_SPORADIC_SERVER (-1) +#define _POSIX_SYNCHRONIZED_IO (-1) +#define _POSIX_THREAD_ATTR_STACKADDR 200112L +#define _POSIX_THREAD_ATTR_STACKSIZE 200112L +#define _POSIX_THREAD_CPUTIME (-1) +#define _POSIX_THREAD_PRIO_INHERIT (-1) +#define _POSIX_THREAD_PRIO_PROTECT (-1) +#define _POSIX_THREAD_PRIORITY_SCHEDULING (-1) +#define _POSIX_THREAD_PROCESS_SHARED 200112L +#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L +#define _POSIX_THREAD_SPORADIC_SERVER (-1) +#define _POSIX_THREADS 200112L +#define _POSIX_TIMEOUTS (-1) +#define _POSIX_TIMERS (-1) +#define _POSIX_TRACE (-1) +#define _POSIX_TRACE_EVENT_FILTER (-1) +#define _POSIX_TRACE_INHERIT (-1) +#define _POSIX_TRACE_LOG (-1) +#define _POSIX_TYPED_MEMORY_OBJECTS (-1) +#define _POSIX2_C_BIND 200112L +#define _POSIX2_C_DEV 200112L +#define _POSIX2_CHAR_TERM 200112L +#define _POSIX2_FORT_DEV (-1) +#define _POSIX2_FORT_RUN 200112L +#define _POSIX2_LOCALEDEF 200112L +#define _POSIX2_PBS (-1) +#define _POSIX2_PBS_ACCOUNTING (-1) +#define _POSIX2_PBS_CHECKPOINT (-1) +#define _POSIX2_PBS_LOCATE (-1) +#define _POSIX2_PBS_MESSAGE (-1) +#define _POSIX2_PBS_TRACK (-1) +#define _POSIX2_SW_DEV 200112L +#define _POSIX2_UPE 200112L +#define __ILP32_OFF32 (-1) +#define __ILP32_OFFBIG (-1) +#define __LP64_OFF64 (1) +#define __LPBIG_OFFBIG (1) +#define _POSIX_V6_ILP32_OFF32 __ILP32_OFF32 +#define _POSIX_V6_ILP32_OFFBIG __ILP32_OFFBIG +#define _POSIX_V6_LP64_OFF64 __LP64_OFF64 +#define _POSIX_V6_LPBIG_OFFBIG __LPBIG_OFFBIG +#define _POSIX_V7_ILP32_OFF32 __ILP32_OFF32 +#define _POSIX_V7_ILP32_OFFBIG __ILP32_OFFBIG +#define _POSIX_V7_LP64_OFF64 __LP64_OFF64 +#define _POSIX_V7_LPBIG_OFFBIG __LPBIG_OFFBIG +#define _V6_ILP32_OFF32 __ILP32_OFF32 +#define _V6_ILP32_OFFBIG __ILP32_OFFBIG +#define _V6_LP64_OFF64 __LP64_OFF64 +#define _V6_LPBIG_OFFBIG __LPBIG_OFFBIG +#define _XBS5_ILP32_OFF32 __ILP32_OFF32 +#define _XBS5_ILP32_OFFBIG __ILP32_OFFBIG +#define _XBS5_LP64_OFF64 __LP64_OFF64 +#define _XBS5_LPBIG_OFFBIG __LPBIG_OFFBIG +#define _XOPEN_CRYPT (1) +#define _XOPEN_ENH_I18N (1) +#define _XOPEN_LEGACY (-1) +#define _XOPEN_REALTIME (-1) +#define _XOPEN_REALTIME_THREADS (-1) +#define _XOPEN_SHM (1) +#define _XOPEN_STREAMS (-1) +#define _XOPEN_UNIX (1) +#define _SC_ARG_MAX 1 +#define _SC_CHILD_MAX 2 +#define _SC_CLK_TCK 3 +#define _SC_NGROUPS_MAX 4 +#define _SC_OPEN_MAX 5 +#define _SC_JOB_CONTROL 6 +#define _SC_SAVED_IDS 7 +#define _SC_VERSION 8 +#define _SC_BC_BASE_MAX 9 +#define _SC_BC_DIM_MAX 10 +#define _SC_BC_SCALE_MAX 11 +#define _SC_BC_STRING_MAX 12 +#define _SC_COLL_WEIGHTS_MAX 13 +#define _SC_EXPR_NEST_MAX 14 +#define _SC_LINE_MAX 15 +#define _SC_RE_DUP_MAX 16 +#define _SC_2_VERSION 17 +#define _SC_2_C_BIND 18 +#define _SC_2_C_DEV 19 +#define _SC_2_CHAR_TERM 20 +#define _SC_2_FORT_DEV 21 +#define _SC_2_FORT_RUN 22 +#define _SC_2_LOCALEDEF 23 +#define _SC_2_SW_DEV 24 +#define _SC_2_UPE 25 +#define _SC_STREAM_MAX 26 +#define _SC_TZNAME_MAX 27 +#define _SC_ASYNCHRONOUS_IO 28 +#define _SC_PAGESIZE 29 +#define _SC_MEMLOCK 30 +#define _SC_MEMLOCK_RANGE 31 +#define _SC_MEMORY_PROTECTION 32 +#define _SC_MESSAGE_PASSING 33 +#define _SC_PRIORITIZED_IO 34 +#define _SC_PRIORITY_SCHEDULING 35 +#define _SC_REALTIME_SIGNALS 36 +#define _SC_SEMAPHORES 37 +#define _SC_FSYNC 38 +#define _SC_SHARED_MEMORY_OBJECTS 39 +#define _SC_SYNCHRONIZED_IO 40 +#define _SC_TIMERS 41 +#define _SC_AIO_LISTIO_MAX 42 +#define _SC_AIO_MAX 43 +#define _SC_AIO_PRIO_DELTA_MAX 44 +#define _SC_DELAYTIMER_MAX 45 +#define _SC_MQ_OPEN_MAX 46 +#define _SC_MAPPED_FILES 47 +#define _SC_RTSIG_MAX 48 +#define _SC_SEM_NSEMS_MAX 49 +#define _SC_SEM_VALUE_MAX 50 +#define _SC_SIGQUEUE_MAX 51 +#define _SC_TIMER_MAX 52 +#define _SC_NPROCESSORS_CONF 57 +#define _SC_NPROCESSORS_ONLN 58 +#define _SC_2_PBS 59 +#define _SC_2_PBS_ACCOUNTING 60 +#define _SC_2_PBS_CHECKPOINT 61 +#define _SC_2_PBS_LOCATE 62 +#define _SC_2_PBS_MESSAGE 63 +#define _SC_2_PBS_TRACK 64 +#define _SC_ADVISORY_INFO 65 +#define _SC_BARRIERS 66 +#define _SC_CLOCK_SELECTION 67 +#define _SC_CPUTIME 68 +#define _SC_FILE_LOCKING 69 +#define _SC_GETGR_R_SIZE_MAX 70 +#define _SC_GETPW_R_SIZE_MAX 71 +#define _SC_HOST_NAME_MAX 72 +#define _SC_LOGIN_NAME_MAX 73 +#define _SC_MONOTONIC_CLOCK 74 +#define _SC_MQ_PRIO_MAX 75 +#define _SC_READER_WRITER_LOCKS 76 +#define _SC_REGEXP 77 +#define _SC_SHELL 78 +#define _SC_SPAWN 79 +#define _SC_SPIN_LOCKS 80 +#define _SC_SPORADIC_SERVER 81 +#define _SC_THREAD_ATTR_STACKADDR 82 +#define _SC_THREAD_ATTR_STACKSIZE 83 +#define _SC_THREAD_CPUTIME 84 +#define _SC_THREAD_DESTRUCTOR_ITERATIONS 85 +#define _SC_THREAD_KEYS_MAX 86 +#define _SC_THREAD_PRIO_INHERIT 87 +#define _SC_THREAD_PRIO_PROTECT 88 +#define _SC_THREAD_PRIORITY_SCHEDULING 89 +#define _SC_THREAD_PROCESS_SHARED 90 +#define _SC_THREAD_SAFE_FUNCTIONS 91 +#define _SC_THREAD_SPORADIC_SERVER 92 +#define _SC_THREAD_STACK_MIN 93 +#define _SC_THREAD_THREADS_MAX 94 +#define _SC_TIMEOUTS 95 +#define _SC_THREADS 96 +#define _SC_TRACE 97 +#define _SC_TRACE_EVENT_FILTER 98 +#define _SC_TRACE_INHERIT 99 +#define _SC_TRACE_LOG 100 +#define _SC_TTY_NAME_MAX 101 +#define _SC_TYPED_MEMORY_OBJECTS 102 +#define _SC_V6_ILP32_OFF32 103 +#define _SC_V6_ILP32_OFFBIG 104 +#define _SC_V6_LP64_OFF64 105 +#define _SC_V6_LPBIG_OFFBIG 106 +#define _SC_IPV6 118 +#define _SC_RAW_SOCKETS 119 +#define _SC_SYMLOOP_MAX 120 +#define _SC_ATEXIT_MAX 107 +#define _SC_IOV_MAX 56 +#define _SC_PAGE_SIZE _SC_PAGESIZE +#define _SC_XOPEN_CRYPT 108 +#define _SC_XOPEN_ENH_I18N 109 +#define _SC_XOPEN_LEGACY 110 +#define _SC_XOPEN_REALTIME 111 +#define _SC_XOPEN_REALTIME_THREADS 112 +#define _SC_XOPEN_SHM 113 +#define _SC_XOPEN_STREAMS 114 +#define _SC_XOPEN_UNIX 115 +#define _SC_XOPEN_VERSION 116 +#define _SC_XOPEN_XCU_VERSION 121 +#define _SC_XBS5_ILP32_OFF32 122 +#define _SC_XBS5_ILP32_OFFBIG 123 +#define _SC_XBS5_LP64_OFF64 124 +#define _SC_XBS5_LPBIG_OFFBIG 125 +#define _SC_SS_REPL_MAX 126 +#define _SC_TRACE_EVENT_NAME_MAX 127 +#define _SC_TRACE_NAME_MAX 128 +#define _SC_TRACE_SYS_MAX 129 +#define _SC_TRACE_USER_EVENT_MAX 130 +#define _SC_PASS_MAX 131 +#define _SC_PHYS_PAGES 200 +#define _CS_POSIX_V6_ILP32_OFF32_CFLAGS 2 +#define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS 3 +#define _CS_POSIX_V6_ILP32_OFF32_LIBS 4 +#define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS 5 +#define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS 6 +#define _CS_POSIX_V6_ILP32_OFFBIG_LIBS 7 +#define _CS_POSIX_V6_LP64_OFF64_CFLAGS 8 +#define _CS_POSIX_V6_LP64_OFF64_LDFLAGS 9 +#define _CS_POSIX_V6_LP64_OFF64_LIBS 10 +#define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS 11 +#define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS 12 +#define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS 13 +#define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS 14 +#define _CS_XBS5_ILP32_OFF32_CFLAGS 20 +#define _CS_XBS5_ILP32_OFF32_LDFLAGS 21 +#define _CS_XBS5_ILP32_OFF32_LIBS 22 +#define _CS_XBS5_ILP32_OFF32_LINTFLAGS 23 +#define _CS_XBS5_ILP32_OFFBIG_CFLAGS 24 +#define _CS_XBS5_ILP32_OFFBIG_LDFLAGS 25 +#define _CS_XBS5_ILP32_OFFBIG_LIBS 26 +#define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS 27 +#define _CS_XBS5_LP64_OFF64_CFLAGS 28 +#define _CS_XBS5_LP64_OFF64_LDFLAGS 29 +#define _CS_XBS5_LP64_OFF64_LIBS 30 +#define _CS_XBS5_LP64_OFF64_LINTFLAGS 31 +#define _CS_XBS5_LPBIG_OFFBIG_CFLAGS 32 +#define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS 33 +#define _CS_XBS5_LPBIG_OFFBIG_LIBS 34 +#define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS 35 +#define _CS_DARWIN_USER_DIR 65536 +#define _CS_DARWIN_USER_TEMP_DIR 65537 +#define _CS_DARWIN_USER_CACHE_DIR 65538 +#define F_ULOCK 0 +#define F_LOCK 1 +#define F_TLOCK 2 +#define F_TEST 3 +#define _SYS_SELECT_H_ +#define _SYS__SELECT_H_ +#define _UUID_T +#define __GETHOSTUUID_H +#define SYNC_VOLUME_FULLSYNC 0x01 +#define SYNC_VOLUME_WAIT 0x02 +#define RBIMPL_DLLEXPORT_H +#undef RUBY_EXTERN +#define RUBY_EXTERN extern +#define MJIT_FUNC_EXPORTED RUBY_FUNC_EXPORTED +#define MJIT_SYMBOL_EXPORT_BEGIN RUBY_SYMBOL_EXPORT_BEGIN +#define MJIT_SYMBOL_EXPORT_END RUBY_SYMBOL_EXPORT_END +#define MJIT_STATIC static +#define RBIMPL_SYMBOL_EXPORT_BEGIN() RUBY_SYMBOL_EXPORT_BEGIN +#define RBIMPL_SYMBOL_EXPORT_END() RUBY_SYMBOL_EXPORT_END +#define RBIMPL_XMALLOC_H +#define RBIMPL_ATTR_ALLOC_SIZE_H +#define RBIMPL_HAS_ATTRIBUTE_H +#define RBIMPL_HAVE___HAS_ATTRIBUTE 1 +#define RBIMPL_HAS_ATTRIBUTE(_) __has_attribute(_) +#define RBIMPL_ATTR_ALLOC_SIZE(tuple) __attribute__((__alloc_size__ tuple)) +#define RBIMPL_ATTR_NODISCARD_H +#define RBIMPL_HAS_C_ATTRIBUTE_H +#define RBIMPL_HAS_C_ATTRIBUTE(_) __has_c_attribute(_) +#define RBIMPL_HAS_CPP_ATTRIBUTE_H +#define RBIMPL_HAS_CPP_ATTRIBUTE0(_) 0 +#define RBIMPL_HAS_CPP_ATTRIBUTE(_) 0 +#define RBIMPL_ATTR_NODISCARD() __attribute__((__warn_unused_result__)) +#define RBIMPL_ATTR_NOEXCEPT_H +#define RBIMPL_HAS_FEATURE_H +#define RBIMPL_HAS_FEATURE(_) __has_feature(_) +#define RBIMPL_ATTR_NOEXCEPT(_) +#define RBIMPL_ATTR_RESTRICT_H +#define RBIMPL_ATTR_RESTRICT() __attribute__((__malloc__)) +#define RBIMPL_ATTR_RETURNS_NONNULL_H +#define RBIMPL_ATTR_RETURNS_NONNULL() __attribute__((__returns_nonnull__)) +#define USE_GC_MALLOC_OBJ_INFO_DETAILS 0 +#define xmalloc ruby_xmalloc +#define xmalloc2 ruby_xmalloc2 +#define xcalloc ruby_xcalloc +#define xrealloc ruby_xrealloc +#define xrealloc2 ruby_xrealloc2 +#define xfree ruby_xfree +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_BACKWARD2_ASSUME_H +#define RBIMPL_ASSUME_H +#define RBIMPL_CAST_H +#define RBIMPL_HAS_WARNING_H +#define RBIMPL_HAS_WARNING(_) __has_warning(_) +#define RBIMPL_WARNING_PUSH_H +#define RBIMPL_WARNING_PRAGMA0(x) _Pragma(# x) +#define RBIMPL_WARNING_PRAGMA1(x) RBIMPL_WARNING_PRAGMA0(clang diagnostic x) +#define RBIMPL_WARNING_PRAGMA2(x,y) RBIMPL_WARNING_PRAGMA1(x # y) +#define RBIMPL_WARNING_PUSH() RBIMPL_WARNING_PRAGMA1(push) +#define RBIMPL_WARNING_POP() RBIMPL_WARNING_PRAGMA1(pop) +#define RBIMPL_WARNING_ERROR(flag) RBIMPL_WARNING_PRAGMA2(error, flag) +#define RBIMPL_WARNING_IGNORED(flag) RBIMPL_WARNING_PRAGMA2(ignored, flag) +#define RBIMPL_CAST(expr) (expr) +#define RBIMPL_HAS_BUILTIN_H +#define RBIMPL_HAVE___HAS_BUILTIN 1 +#define RBIMPL_HAS_BUILTIN(_) __has_builtin(_) +#define RBIMPL_UNREACHABLE_RETURN(_) __builtin_unreachable() +#define RBIMPL_UNREACHABLE __builtin_unreachable +#define RBIMPL_ASSUME __builtin_assume +#define ASSUME RBIMPL_ASSUME +#define UNREACHABLE RBIMPL_UNREACHABLE() +#define UNREACHABLE_RETURN RBIMPL_UNREACHABLE_RETURN +#define RB_LIKELY(x) (__builtin_expect(!!(x), 1)) +#define RB_UNLIKELY(x) (__builtin_expect(!!(x), 0)) +#define RUBY_BACKWARD2_ATTRIBUTES_H +#define RBIMPL_ATTR_CONST_H +#define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_H +#define RBIMPL_HAS_DECLSPEC_ATTRIBUTE(_) __has_declspec_attribute(_) +#define RBIMPL_ATTR_CONST() __attribute__((__const__)) +#define RBIMPL_ATTR_CONST_UNLESS_DEBUG() RBIMPL_ATTR_CONST() +#define RBIMPL_ATTR_DEPRECATED_H +#define RBIMPL_HAS_EXTENSION_H +#define RBIMPL_HAS_EXTENSION(_) __has_extension(_) +#define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__ msg)) +#define RBIMPL_ATTR_DEPRECATED_EXT(msg) +#define RBIMPL_ATTR_ERROR_H +#define RBIMPL_ATTR_ERROR(msg) __attribute__((__error__ msg)) +#define RBIMPL_ATTR_FORCEINLINE_H +#define RBIMPL_ATTR_FORCEINLINE() __attribute__((__always_inline__)) inline +#define RBIMPL_ATTR_FORMAT_H +#define RBIMPL_ATTR_FORMAT(x,y,z) __attribute__((__format__(x, y, z))) +#define RBIMPL_PRINTF_FORMAT __printf__ +#define RBIMPL_ATTR_MAYBE_UNUSED_H +#define RBIMPL_ATTR_MAYBE_UNUSED() __attribute__((__unused__)) +#define RBIMPL_ATTR_NOINLINE_H +#define RBIMPL_ATTR_NOINLINE() __declspec(noinline) +#define RBIMPL_ATTR_NONNULL_H +#define RBIMPL_ATTR_NONNULL(list) __attribute__((__nonnull__ list)) +#define RBIMPL_NONNULL_ARG(arg) RBIMPL_ASSERT_NOTHING +#define RBIMPL_ATTR_NORETURN_H +#define RBIMPL_ATTR_NORETURN() __declspec(noreturn) +#define RBIMPL_ATTR_PURE_H +#define RUBY_ASSERT_H +#define RBIMPL_RUBY_DEBUG 0 +#define RBIMPL_NDEBUG 0 +#undef RUBY_DEBUG +#undef RUBY_NDEBUG +#undef NDEBUG +#define RUBY_DEBUG 0 +#define RUBY_NDEBUG 1 +#define NDEBUG +#undef RBIMPL_NDEBUG +#undef RBIMPL_RUBY_DEBUG +#define RBIMPL_ASSERT_NOTHING RBIMPL_CAST((void)0) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_ASSERT_FUNC RUBY_FUNCTION_NAME_STRING +#define RUBY_ASSERT_FAIL(mesg) rb_assert_failure(__FILE__, __LINE__, RBIMPL_ASSERT_FUNC, mesg) +#define RUBY_ASSERT_MESG(expr,mesg) (RB_LIKELY(expr) ? RBIMPL_ASSERT_NOTHING : RUBY_ASSERT_FAIL(mesg)) +#define RUBY_ASSERT_ALWAYS(expr) RUBY_ASSERT_MESG((expr), #expr) +#define RUBY_ASSERT(expr) RBIMPL_ASSERT_NOTHING +#define RUBY_ASSERT_NDEBUG(expr) RBIMPL_ASSERT_NOTHING +#define RUBY_ASSERT_MESG_WHEN(cond,expr,mesg) ((cond) ? RUBY_ASSERT_MESG((expr), (mesg)) : RBIMPL_ASSERT_NOTHING) +#define RUBY_ASSERT_WHEN(cond,expr) RUBY_ASSERT_MESG_WHEN((cond), (expr), #expr) +#define RBIMPL_ASSERT_OR_ASSUME(expr) RBIMPL_ASSERT_NOTHING +#define RBIMPL_ATTR_PURE() __attribute__((__pure__)) +#define RBIMPL_ATTR_PURE_UNLESS_DEBUG() RBIMPL_ATTR_PURE() +#define RBIMPL_ATTR_WARNING_H +#define RBIMPL_ATTR_WARNING(msg) __attribute__((__warning__ msg)) +#undef CONSTFUNC +#define CONSTFUNC(x) RBIMPL_ATTR_CONST() x +#undef PUREFUNC +#define PUREFUNC(x) RBIMPL_ATTR_PURE() x +#undef DEPRECATED +#define DEPRECATED(x) RBIMPL_ATTR_DEPRECATED(("")) x +#undef DEPRECATED_BY +#define DEPRECATED_BY(n,x) RBIMPL_ATTR_DEPRECATED(("by: " # n)) x +#undef DEPRECATED_TYPE +#define DEPRECATED_TYPE(mesg,decl) _Pragma("message \"DEPRECATED_TYPE is deprecated\""); decl RBIMPL_ATTR_DEPRECATED(mseg) +#undef RUBY_CXX_DEPRECATED +#define RUBY_CXX_DEPRECATED(mseg) RBIMPL_ATTR_DEPRECATED((mseg)) +#undef NOINLINE +#define NOINLINE(x) RBIMPL_ATTR_NOINLINE() x +#undef ERRORFUNC +#define ERRORFUNC(mesg,x) RBIMPL_ATTR_ERROR(mesg) x +#define HAVE_ATTRIBUTE_ERRORFUNC 1 +#undef WARNINGFUNC +#define WARNINGFUNC(mesg,x) RBIMPL_ATTR_WARNING(mesg) x +#define HAVE_ATTRIBUTE_WARNINGFUNC 1 +#undef COLDFUNC +#define PRINTF_ARGS(decl,string_index,first_to_check) RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, (string_index), (first_to_check)) decl +#undef RUBY_ATTR_ALLOC_SIZE +#define RUBY_ATTR_ALLOC_SIZE RBIMPL_ATTR_ALLOC_SIZE +#undef RUBY_ATTR_MALLOC +#define RUBY_ATTR_MALLOC RBIMPL_ATTR_RESTRICT() +#undef RUBY_ATTR_RETURNS_NONNULL +#define RUBY_ATTR_RETURNS_NONNULL RBIMPL_ATTR_RETURNS_NONNULL() +#define FUNC_MINIMIZED(x) x +#define FUNC_UNOPTIMIZED(x) x +#define RUBY_ALIAS_FUNCTION_TYPE(type,prot,name,args) FUNC_MINIMIZED(type prot) {return (type)name args;} +#define RUBY_ALIAS_FUNCTION_VOID(prot,name,args) FUNC_MINIMIZED(void prot) {name args;} +#define RUBY_ALIAS_FUNCTION(prot,name,args) RUBY_ALIAS_FUNCTION_TYPE(VALUE, prot, name, args) +#undef RUBY_FUNC_NONNULL +#define RUBY_FUNC_NONNULL(n,x) RBIMPL_ATTR_NONNULL(n) x +#undef NORETURN +#define NORETURN(x) RBIMPL_ATTR_NORETURN() x +#define NORETURN_STYLE_NEW +#define PACKED_STRUCT_UNALIGNED(x) PACKED_STRUCT(x) +#undef RB_UNUSED_VAR +#define RB_UNUSED_VAR(x) x RBIMPL_ATTR_MAYBE_UNUSED() +#define RUBY_BACKWARD2_BOOL_H +#define RBIMPL_STDBOOL_H +#define __STDBOOL_H +#define __bool_true_false_are_defined 1 +#define bool _Bool +#define true 1 +#define false 0 +#define FALSE false +#define TRUE true +#define RUBY_BACKWARD2_LONG_LONG_H +#define HAVE_TRUE_LONG_LONG 1 +#define LONG_LONG RBIMPL_WARNING_PUSH() RBIMPL_WARNING_IGNORED(-Wc++11-long-long) long long RBIMPL_WARNING_POP() +#define RUBY_BACKWARD2_STDALIGN_H +#define RBIMPL_STDALIGN_H +#define RBIMPL_ALIGNAS(_) __declspec(align(_)) +#define RBIMPL_ALIGNOF(T) RB_GNUC_EXTENSION(_Alignof(T)) +#undef RUBY_ALIGNAS +#undef RUBY_ALIGNOF +#define RUBY_ALIGNAS RBIMPL_ALIGNAS +#define RUBY_ALIGNOF RBIMPL_ALIGNOF +#define RUBY_BACKWARD2_STDARG_H +#undef _ +#define _(args) args +#undef __ +#define __(args) args +#define ANYARGS +#define RBIMPL_DOSISH_H +#define PATH_SEP ":" +#define PATH_SEP_CHAR PATH_SEP[0] +#define PATH_ENV "PATH" +#define CASEFOLD_FILESYSTEM 0 +#define RUBY_MISSING_H 1 +#define __MATH_H__ +#define __MATH__ +#define HUGE_VAL __builtin_huge_val() +#define HUGE_VALF __builtin_huge_valf() +#define HUGE_VALL __builtin_huge_vall() +#define NAN __builtin_nanf("0x7fc00000") +#define INFINITY HUGE_VALF +#define FP_NAN 1 +#define FP_INFINITE 2 +#define FP_ZERO 3 +#define FP_NORMAL 4 +#define FP_SUBNORMAL 5 +#define FP_SUPERNORMAL 6 +#undef FP_FAST_FMA +#undef FP_FAST_FMAF +#undef FP_FAST_FMAL +#define FP_ILOGB0 (-2147483647 - 1) +#define FP_ILOGBNAN (-2147483647 - 1) +#define MATH_ERRNO 1 +#define MATH_ERREXCEPT 2 +#define math_errhandling (__math_errhandling()) +#define fpclassify(x) ( sizeof(x) == sizeof(float) ? __fpclassifyf((float)(x)) : sizeof(x) == sizeof(double) ? __fpclassifyd((double)(x)) : __fpclassifyl((long double)(x))) +#define isnormal(x) ( sizeof(x) == sizeof(float) ? __inline_isnormalf((float)(x)) : sizeof(x) == sizeof(double) ? __inline_isnormald((double)(x)) : __inline_isnormall((long double)(x))) +#define isfinite(x) ( sizeof(x) == sizeof(float) ? __inline_isfinitef((float)(x)) : sizeof(x) == sizeof(double) ? __inline_isfinited((double)(x)) : __inline_isfinitel((long double)(x))) +#define isinf(x) ( sizeof(x) == sizeof(float) ? __inline_isinff((float)(x)) : sizeof(x) == sizeof(double) ? __inline_isinfd((double)(x)) : __inline_isinfl((long double)(x))) +#define isnan(x) ( sizeof(x) == sizeof(float) ? __inline_isnanf((float)(x)) : sizeof(x) == sizeof(double) ? __inline_isnand((double)(x)) : __inline_isnanl((long double)(x))) +#define signbit(x) ( sizeof(x) == sizeof(float) ? __inline_signbitf((float)(x)) : sizeof(x) == sizeof(double) ? __inline_signbitd((double)(x)) : __inline_signbitl((long double)(x))) +#define isgreater(x,y) __builtin_isgreater((x),(y)) +#define isgreaterequal(x,y) __builtin_isgreaterequal((x),(y)) +#define isless(x,y) __builtin_isless((x),(y)) +#define islessequal(x,y) __builtin_islessequal((x),(y)) +#define islessgreater(x,y) __builtin_islessgreater((x),(y)) +#define isunordered(x,y) __builtin_isunordered((x),(y)) +#define M_E 2.71828182845904523536028747135266250 +#define M_LOG2E 1.44269504088896340735992468100189214 +#define M_LOG10E 0.434294481903251827651128918916605082 +#define M_LN2 0.693147180559945309417232121458176568 +#define M_LN10 2.30258509299404568401799145468436421 +#define M_PI 3.14159265358979323846264338327950288 +#define M_PI_2 1.57079632679489661923132169163975144 +#define M_PI_4 0.785398163397448309615660845819875721 +#define M_1_PI 0.318309886183790671537767526745028724 +#define M_2_PI 0.636619772367581343075535053490057448 +#define M_2_SQRTPI 1.12837916709551257389615890312154517 +#define M_SQRT2 1.41421356237309504880168872420969808 +#define M_SQRT1_2 0.707106781186547524400844362104849039 +#define MAXFLOAT 0x1.fffffep+127f +#define FP_SNAN FP_NAN +#define FP_QNAN FP_NAN +#define HUGE MAXFLOAT +#define X_TLOSS 1.41484755040568800000e+16 +#define DOMAIN 1 +#define SING 2 +#define OVERFLOW 3 +#define UNDERFLOW 4 +#define TLOSS 5 +#define PLOSS 6 +#define _TIME_H_ +#define CLOCKS_PER_SEC ((clock_t)1000000) +#define __CLOCK_AVAILABILITY __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0) +#define CLOCK_REALTIME _CLOCK_REALTIME +#define CLOCK_MONOTONIC _CLOCK_MONOTONIC +#define CLOCK_MONOTONIC_RAW _CLOCK_MONOTONIC_RAW +#define CLOCK_MONOTONIC_RAW_APPROX _CLOCK_MONOTONIC_RAW_APPROX +#define CLOCK_UPTIME_RAW _CLOCK_UPTIME_RAW +#define CLOCK_UPTIME_RAW_APPROX _CLOCK_UPTIME_RAW_APPROX +#define CLOCK_PROCESS_CPUTIME_ID _CLOCK_PROCESS_CPUTIME_ID +#define CLOCK_THREAD_CPUTIME_ID _CLOCK_THREAD_CPUTIME_ID +#undef __CLOCK_AVAILABILITY +#define TIME_UTC 1 +#define _SYS_TIME_H_ +#define _STRUCT_TIMEVAL64 +#define ITIMER_REAL 0 +#define ITIMER_VIRTUAL 1 +#define ITIMER_PROF 2 +#define TIMEVAL_TO_TIMESPEC(tv,ts) { (ts)->tv_sec = (tv)->tv_sec; (ts)->tv_nsec = (tv)->tv_usec * 1000; } +#define TIMESPEC_TO_TIMEVAL(tv,ts) { (tv)->tv_sec = (ts)->tv_sec; (tv)->tv_usec = (ts)->tv_nsec / 1000; } +#define DST_NONE 0 +#define DST_USA 1 +#define DST_AUST 2 +#define DST_WET 3 +#define DST_MET 4 +#define DST_EET 5 +#define DST_CAN 6 +#define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0 +#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) +#define timercmp(tvp,uvp,cmp) (((tvp)->tv_sec == (uvp)->tv_sec) ? ((tvp)->tv_usec cmp (uvp)->tv_usec) : ((tvp)->tv_sec cmp (uvp)->tv_sec)) +#define timeradd(tvp,uvp,vvp) do { (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; if ((vvp)->tv_usec >= 1000000) { (vvp)->tv_sec++; (vvp)->tv_usec -= 1000000; } } while (0) +#define timersub(tvp,uvp,vvp) do { (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; if ((vvp)->tv_usec < 0) { (vvp)->tv_sec--; (vvp)->tv_usec += 1000000; } } while (0) +#define timevalcmp(l,r,cmp) timercmp(l, r, cmp) +#pragma GCC visibility push(default) +#define HAVE_FINITE 1 +#define finite(x) isfinite(x) +#pragma GCC visibility pop +#define RUBY +#define RB_GNUC_EXTENSION __extension__ +#define RB_GNUC_EXTENSION_BLOCK(x) __extension__ ({ x; }) +#define RUBY_MBCHAR_MAXSIZE INT_MAX +#define FLUSH_REGISTER_WINDOWS ((void)0) +#define RUBY_ABI_H +#define RBIMPL_ANYARGS_H +#define RBIMPL_ATTR_WEAKREF_H +#define RBIMPL_ATTR_WEAKREF(sym) __attribute__((__weakref__(# sym))) +#define RBIMPL_INTERN_CLASS_H +#define RBIMPL_VALUE_H +#define RBIMPL_STATIC_ASSERT_H +#undef assert +#undef __assert +#define assert(e) ((void)0) +#define _ASSERT_H_ +#define static_assert _Static_assert +#define RBIMPL_STATIC_ASSERT0 __extension__ _Static_assert +#define RBIMPL_STATIC_ASSERT(name,expr) RBIMPL_STATIC_ASSERT0(expr, # name ": " # expr) +#define RUBY_BACKWARD2_LIMITS_H +#define __CLANG_LIMITS_H +#define _GCC_LIMITS_H_ +#define _LIMITS_H_ +#define _BSD_MACHINE_LIMITS_H_ +#define _I386_LIMITS_H_ +#define _I386__LIMITS_H_ +#define __DARWIN_CLK_TCK 100 +#define CHAR_BIT 8 +#define MB_LEN_MAX 6 +#define CLK_TCK __DARWIN_CLK_TCK +#define SCHAR_MAX 127 +#define SCHAR_MIN (-128) +#define UCHAR_MAX 255 +#define CHAR_MAX 127 +#define CHAR_MIN (-128) +#define USHRT_MAX 65535 +#define SHRT_MAX 32767 +#define SHRT_MIN (-32768) +#define UINT_MAX 0xffffffff +#define INT_MAX 2147483647 +#define INT_MIN (-2147483647-1) +#define ULONG_MAX 0xffffffffffffffffUL +#define LONG_MAX 0x7fffffffffffffffL +#define LONG_MIN (-0x7fffffffffffffffL-1) +#define ULLONG_MAX 0xffffffffffffffffULL +#define LLONG_MAX 0x7fffffffffffffffLL +#define LLONG_MIN (-0x7fffffffffffffffLL-1) +#define LONG_BIT 64 +#define SSIZE_MAX LONG_MAX +#define WORD_BIT 32 +#define SIZE_T_MAX ULONG_MAX +#define UQUAD_MAX ULLONG_MAX +#define QUAD_MAX LLONG_MAX +#define QUAD_MIN LLONG_MIN +#define _SYS_SYSLIMITS_H_ +#define ARG_MAX (1024 * 1024) +#define CHILD_MAX 266 +#define GID_MAX 2147483647U +#define LINK_MAX 32767 +#define MAX_CANON 1024 +#define MAX_INPUT 1024 +#define NAME_MAX 255 +#define NGROUPS_MAX 16 +#define UID_MAX 2147483647U +#define OPEN_MAX 10240 +#define PATH_MAX 1024 +#define PIPE_BUF 512 +#define BC_BASE_MAX 99 +#define BC_DIM_MAX 2048 +#define BC_SCALE_MAX 99 +#define BC_STRING_MAX 1000 +#define CHARCLASS_NAME_MAX 14 +#define COLL_WEIGHTS_MAX 2 +#define EQUIV_CLASS_MAX 2 +#define EXPR_NEST_MAX 32 +#define LINE_MAX 2048 +#define RE_DUP_MAX 255 +#define NZERO 20 +#define _POSIX_ARG_MAX 4096 +#define _POSIX_CHILD_MAX 25 +#define _POSIX_LINK_MAX 8 +#define _POSIX_MAX_CANON 255 +#define _POSIX_MAX_INPUT 255 +#define _POSIX_NAME_MAX 14 +#define _POSIX_NGROUPS_MAX 8 +#define _POSIX_OPEN_MAX 20 +#define _POSIX_PATH_MAX 256 +#define _POSIX_PIPE_BUF 512 +#define _POSIX_SSIZE_MAX 32767 +#define _POSIX_STREAM_MAX 8 +#define _POSIX_TZNAME_MAX 6 +#define _POSIX2_BC_BASE_MAX 99 +#define _POSIX2_BC_DIM_MAX 2048 +#define _POSIX2_BC_SCALE_MAX 99 +#define _POSIX2_BC_STRING_MAX 1000 +#define _POSIX2_EQUIV_CLASS_MAX 2 +#define _POSIX2_EXPR_NEST_MAX 32 +#define _POSIX2_LINE_MAX 2048 +#define _POSIX2_RE_DUP_MAX 255 +#define _POSIX_AIO_LISTIO_MAX 2 +#define _POSIX_AIO_MAX 1 +#define _POSIX_DELAYTIMER_MAX 32 +#define _POSIX_MQ_OPEN_MAX 8 +#define _POSIX_MQ_PRIO_MAX 32 +#define _POSIX_RTSIG_MAX 8 +#define _POSIX_SEM_NSEMS_MAX 256 +#define _POSIX_SEM_VALUE_MAX 32767 +#define _POSIX_SIGQUEUE_MAX 32 +#define _POSIX_TIMER_MAX 32 +#define _POSIX_CLOCKRES_MIN 20000000 +#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 +#define _POSIX_THREAD_KEYS_MAX 128 +#define _POSIX_THREAD_THREADS_MAX 64 +#define PTHREAD_DESTRUCTOR_ITERATIONS 4 +#define PTHREAD_KEYS_MAX 512 +#define PTHREAD_STACK_MIN 8192 +#define _POSIX_HOST_NAME_MAX 255 +#define _POSIX_LOGIN_NAME_MAX 9 +#define _POSIX_SS_REPL_MAX 4 +#define _POSIX_SYMLINK_MAX 255 +#define _POSIX_SYMLOOP_MAX 8 +#define _POSIX_TRACE_EVENT_NAME_MAX 30 +#define _POSIX_TRACE_NAME_MAX 8 +#define _POSIX_TRACE_SYS_MAX 8 +#define _POSIX_TRACE_USER_EVENT_MAX 32 +#define _POSIX_TTY_NAME_MAX 9 +#define _POSIX2_CHARCLASS_NAME_MAX 14 +#define _POSIX2_COLL_WEIGHTS_MAX 2 +#define _POSIX_RE_DUP_MAX _POSIX2_RE_DUP_MAX +#define OFF_MIN LLONG_MIN +#define OFF_MAX LLONG_MAX +#define PASS_MAX 128 +#define NL_ARGMAX 9 +#define NL_LANGMAX 14 +#define NL_MSGMAX 32767 +#define NL_NMAX 1 +#define NL_SETMAX 255 +#define NL_TEXTMAX 2048 +#define _XOPEN_IOV_MAX 16 +#define IOV_MAX 1024 +#define _XOPEN_NAME_MAX 255 +#define _XOPEN_PATH_MAX 1024 +#undef SCHAR_MIN +#undef SCHAR_MAX +#undef UCHAR_MAX +#undef SHRT_MIN +#undef SHRT_MAX +#undef USHRT_MAX +#undef INT_MIN +#undef INT_MAX +#undef UINT_MAX +#undef LONG_MIN +#undef LONG_MAX +#undef ULONG_MAX +#undef CHAR_BIT +#undef CHAR_MIN +#undef CHAR_MAX +#define SCHAR_MAX __SCHAR_MAX__ +#define SHRT_MAX __SHRT_MAX__ +#define INT_MAX __INT_MAX__ +#define LONG_MAX __LONG_MAX__ +#define SCHAR_MIN (-__SCHAR_MAX__-1) +#define SHRT_MIN (-__SHRT_MAX__ -1) +#define INT_MIN (-__INT_MAX__ -1) +#define LONG_MIN (-__LONG_MAX__ -1L) +#define UCHAR_MAX (__SCHAR_MAX__*2 +1) +#define USHRT_MAX (__SHRT_MAX__ *2 +1) +#define UINT_MAX (__INT_MAX__ *2U +1U) +#define ULONG_MAX (__LONG_MAX__ *2UL+1UL) +#define CHAR_BIT __CHAR_BIT__ +#define CHAR_MIN SCHAR_MIN +#define CHAR_MAX __SCHAR_MAX__ +#undef LLONG_MIN +#undef LLONG_MAX +#undef ULLONG_MAX +#define LLONG_MAX __LONG_LONG_MAX__ +#define LLONG_MIN (-__LONG_LONG_MAX__-1LL) +#define ULLONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL) +#undef LONG_LONG_MIN +#undef LONG_LONG_MAX +#undef ULONG_LONG_MAX +#define LONG_LONG_MAX __LONG_LONG_MAX__ +#define LONG_LONG_MIN (-__LONG_LONG_MAX__-1LL) +#define ULONG_LONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL) +#define SIGNED_VALUE long +#define SIZEOF_VALUE SIZEOF_LONG +#define PRI_VALUE_PREFIX "l" +#define RBIMPL_VALUE_NULL 0UL +#define RBIMPL_VALUE_ONE 1UL +#define RBIMPL_VALUE_FULL ULONG_MAX +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_VM_H +#pragma GCC visibility push(default) +#define HAVE_RB_DEFINE_ALLOC_FUNC 1 +#pragma GCC visibility pop +#define RBIMPL_METHOD_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_CFUNC_IS_rb_f_notimplement(f) __builtin_types_compatible_p( __typeof__(f), __typeof__(rb_f_notimplement)) +#define RBIMPL_ANYARGS_DISPATCH(expr,truthy,falsy) __builtin_choose_expr( __builtin_choose_expr( __builtin_constant_p(expr), (expr), 0), (truthy), (falsy)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_singleton_method_m2, rb_define_singleton_method_m3) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_singleton_method_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m2(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_singleton_method_00, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m1(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_singleton_method_01, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_00(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_singleton_method_02, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_01(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_singleton_method_03, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_02(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_singleton_method_04, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_03(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_singleton_method_05, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_04(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_singleton_method_06, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_05(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_singleton_method_07, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_06(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_singleton_method_08, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_07(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_singleton_method_09, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_08(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_singleton_method_10, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_09(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_singleton_method_11, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_10(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_singleton_method_12, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_11(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_singleton_method_13, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_12(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_singleton_method_14, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_13(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_singleton_method_15, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_14(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_protected_method_m2, rb_define_protected_method_m3) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_protected_method_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m2(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_protected_method_00, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m1(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_protected_method_01, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_00(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_protected_method_02, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_01(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_protected_method_03, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_02(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_protected_method_04, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_03(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_protected_method_05, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_04(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_protected_method_06, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_05(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_protected_method_07, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_06(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_protected_method_08, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_07(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_protected_method_09, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_08(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_protected_method_10, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_09(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_protected_method_11, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_10(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_protected_method_12, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_11(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_protected_method_13, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_12(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_protected_method_14, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_13(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_protected_method_15, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_14(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_private_method_m2, rb_define_private_method_m3) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_private_method_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m2(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_private_method_00, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m1(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_private_method_01, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_00(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_private_method_02, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_01(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_private_method_03, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_02(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_private_method_04, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_03(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_private_method_05, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_04(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_private_method_06, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_05(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_private_method_07, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_06(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_private_method_08, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_07(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_private_method_09, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_08(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_private_method_10, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_09(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_private_method_11, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_10(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_private_method_12, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_11(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_private_method_13, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_12(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_private_method_14, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_13(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_private_method_15, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_14(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_module_function_m2, rb_define_module_function_m3) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_module_function_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m2(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_module_function_00, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m1(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_module_function_01, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_00(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_module_function_02, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_01(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_module_function_03, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_02(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_module_function_04, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_03(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_module_function_05, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_04(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_module_function_06, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_05(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_module_function_07, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_06(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_module_function_08, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_07(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_module_function_09, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_08(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_module_function_10, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_09(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_module_function_11, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_10(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_module_function_12, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_11(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_module_function_13, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_12(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_module_function_14, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_13(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_module_function_15, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_14(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_global_function_m2, rb_define_global_function_m3) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_global_function_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m2(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_global_function_00, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m1(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_global_function_01, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_00(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_global_function_02, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_01(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_global_function_03, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_02(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_global_function_04, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_03(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_global_function_05, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_04(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_global_function_06, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_05(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_global_function_07, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_06(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_global_function_08, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_07(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_global_function_09, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_08(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_global_function_10, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_09(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_global_function_11, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_10(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_global_function_12, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_11(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_global_function_13, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_12(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_global_function_14, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_13(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_global_function_15, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_14(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_method_id_m2, rb_define_method_id_m3) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_method_id_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m2(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_method_id_00, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m1(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_method_id_01, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_00(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_method_id_02, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_01(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_method_id_03, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_02(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_method_id_04, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_03(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_method_id_05, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_04(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_method_id_06, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_05(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_method_id_07, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_06(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_method_id_08, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_07(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_method_id_09, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_08(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_method_id_10, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_09(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_method_id_11, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_10(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_method_id_12, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_11(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_method_id_13, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_12(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_method_id_14, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_13(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_method_id_15, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_14(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_method_m2, rb_define_method_m3) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_method_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_method_m2(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_method_00, RBIMPL_ANYARGS_DISPATCH_rb_define_method_m1(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_method_01, RBIMPL_ANYARGS_DISPATCH_rb_define_method_00(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_method_02, RBIMPL_ANYARGS_DISPATCH_rb_define_method_01(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_method_03, RBIMPL_ANYARGS_DISPATCH_rb_define_method_02(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_method_04, RBIMPL_ANYARGS_DISPATCH_rb_define_method_03(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_method_05, RBIMPL_ANYARGS_DISPATCH_rb_define_method_04(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_method_06, RBIMPL_ANYARGS_DISPATCH_rb_define_method_05(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_method_07, RBIMPL_ANYARGS_DISPATCH_rb_define_method_06(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_method_08, RBIMPL_ANYARGS_DISPATCH_rb_define_method_07(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_method_09, RBIMPL_ANYARGS_DISPATCH_rb_define_method_08(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_method_10, RBIMPL_ANYARGS_DISPATCH_rb_define_method_09(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_method_11, RBIMPL_ANYARGS_DISPATCH_rb_define_method_10(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_method_12, RBIMPL_ANYARGS_DISPATCH_rb_define_method_11(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_method_13, RBIMPL_ANYARGS_DISPATCH_rb_define_method_12(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_method_14, RBIMPL_ANYARGS_DISPATCH_rb_define_method_13(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_method_15, RBIMPL_ANYARGS_DISPATCH_rb_define_method_14(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method(n,f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_singleton_method_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_15(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method(n,f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_protected_method_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_15(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method(n,f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_private_method_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_15(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function(n,f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_module_function_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_15(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function(n,f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_global_function_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_15(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id(n,f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_method_id_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_15(n)) +#define RBIMPL_ANYARGS_DISPATCH_rb_define_method(n,f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_method_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_method_15(n)) +#define RBIMPL_ANYARGS_ATTRSET(sym) RBIMPL_ATTR_MAYBE_UNUSED() RBIMPL_ATTR_NONNULL(()) RBIMPL_ATTR_WEAKREF(sym) +#define RBIMPL_ANYARGS_DECL(sym,...) RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _notimpl(__VA_ARGS__, VALUE(*)(int, const VALUE *, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _m3(__VA_ARGS__, VALUE(*)(ANYARGS), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _m2(__VA_ARGS__, VALUE(*)(VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _m1(__VA_ARGS__, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _00(__VA_ARGS__, VALUE(*)(VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _01(__VA_ARGS__, VALUE(*)(VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _02(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _03(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _04(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _05(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _06(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _07(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _08(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _09(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _10(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _11(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _12(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _13(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _14(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _15(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); +#define rb_define_method(klass,mid,func,arity) RBIMPL_ANYARGS_DISPATCH_rb_define_method((arity), (func))((klass), (mid), (func), (arity)) +#define rb_define_method_id(klass,mid,func,arity) RBIMPL_ANYARGS_DISPATCH_rb_define_method_id((arity), (func))((klass), (mid), (func), (arity)) +#define rb_define_singleton_method(obj,mid,func,arity) RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method((arity), (func))((obj), (mid), (func), (arity)) +#define rb_define_protected_method(klass,mid,func,arity) RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method((arity), (func))((klass), (mid), (func), (arity)) +#define rb_define_private_method(klass,mid,func,arity) RBIMPL_ANYARGS_DISPATCH_rb_define_private_method((arity), (func))((klass), (mid), (func), (arity)) +#define rb_define_module_function(mod,mid,func,arity) RBIMPL_ANYARGS_DISPATCH_rb_define_module_function((arity), (func))((mod), (mid), (func), (arity)) +#define rb_define_global_function(mid,func,arity) RBIMPL_ANYARGS_DISPATCH_rb_define_global_function((arity), (func))((mid), (func), (arity)) +#define RUBY_METHOD_FUNC(func) RBIMPL_CAST((VALUE (*)(ANYARGS))(func)) +#define RBIMPL_ARITHMETIC_H +#define RBIMPL_ARITHMETIC_CHAR_H +#define RBIMPL_ARITHMETIC_INT_H +#define RBIMPL_ARITHMETIC_FIXNUM_H +#define FIXABLE RB_FIXABLE +#define FIXNUM_MAX RUBY_FIXNUM_MAX +#define FIXNUM_MIN RUBY_FIXNUM_MIN +#define NEGFIXABLE RB_NEGFIXABLE +#define POSFIXABLE RB_POSFIXABLE +#define RB_POSFIXABLE(_) ((_) < RUBY_FIXNUM_MAX + 1) +#define RB_NEGFIXABLE(_) ((_) >= RUBY_FIXNUM_MIN) +#define RB_FIXABLE(_) (RB_POSFIXABLE(_) && RB_NEGFIXABLE(_)) +#define RUBY_FIXNUM_MAX (LONG_MAX / 2) +#define RUBY_FIXNUM_MIN (LONG_MIN / 2) +#define RBIMPL_ARITHMETIC_INTPTR_T_H +#define rb_int_new rb_int2inum +#define rb_uint_new rb_uint2inum +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_ARITHMETIC_LONG_H +#define RBIMPL_ATTR_ARTIFICIAL_H +#define RBIMPL_ATTR_ARTIFICIAL() __attribute__((__artificial__)) +#define RBIMPL_ATTR_CONSTEXPR_H +#define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 0 +#define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 0 +#define RBIMPL_ATTR_CONSTEXPR(_) +#define RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(_) RBIMPL_ATTR_CONSTEXPR(_) +#define RBIMPL_SPECIAL_CONSTS_H +#define RBIMPL_ATTR_ENUM_EXTENSIBILITY_H +#define RBIMPL_ATTR_ENUM_EXTENSIBILITY(_) __attribute__((__enum_extensibility__(_))) +#define USE_FLONUM 1 +#define RTEST RB_TEST +#define FIXNUM_P RB_FIXNUM_P +#define IMMEDIATE_P RB_IMMEDIATE_P +#define NIL_P RB_NIL_P +#define SPECIAL_CONST_P RB_SPECIAL_CONST_P +#define STATIC_SYM_P RB_STATIC_SYM_P +#define Qfalse RUBY_Qfalse +#define Qnil RUBY_Qnil +#define Qtrue RUBY_Qtrue +#define Qundef RUBY_Qundef +#define FIXNUM_FLAG RUBY_FIXNUM_FLAG +#define FLONUM_FLAG RUBY_FLONUM_FLAG +#define FLONUM_MASK RUBY_FLONUM_MASK +#define FLONUM_P RB_FLONUM_P +#define IMMEDIATE_MASK RUBY_IMMEDIATE_MASK +#define SYMBOL_FLAG RUBY_SYMBOL_FLAG +#define RB_FIXNUM_P RB_FIXNUM_P +#define RB_FLONUM_P RB_FLONUM_P +#define RB_IMMEDIATE_P RB_IMMEDIATE_P +#define RB_NIL_P RB_NIL_P +#define RB_SPECIAL_CONST_P RB_SPECIAL_CONST_P +#define RB_STATIC_SYM_P RB_STATIC_SYM_P +#define RB_TEST RB_TEST +#define RB_UNDEF_P RB_UNDEF_P +#define RB_NIL_OR_UNDEF_P RB_NIL_OR_UNDEF_P +#define RUBY_Qfalse RBIMPL_CAST((VALUE)RUBY_Qfalse) +#define RUBY_Qtrue RBIMPL_CAST((VALUE)RUBY_Qtrue) +#define RUBY_Qnil RBIMPL_CAST((VALUE)RUBY_Qnil) +#define RUBY_Qundef RBIMPL_CAST((VALUE)RUBY_Qundef) +#define FIX2LONG RB_FIX2LONG +#define FIX2ULONG RB_FIX2ULONG +#define INT2FIX RB_INT2FIX +#define LONG2FIX RB_INT2FIX +#define LONG2NUM RB_LONG2NUM +#define NUM2LONG RB_NUM2LONG +#define NUM2ULONG RB_NUM2ULONG +#define RB_FIX2LONG rb_fix2long +#define RB_FIX2ULONG rb_fix2ulong +#define RB_LONG2FIX RB_INT2FIX +#define RB_LONG2NUM rb_long2num_inline +#define RB_NUM2LONG rb_num2long_inline +#define RB_NUM2ULONG rb_num2ulong_inline +#define RB_ULONG2NUM rb_ulong2num_inline +#define ULONG2NUM RB_ULONG2NUM +#define rb_fix_new RB_INT2FIX +#define rb_long2int rb_long2int_inline +#define RB_INT2FIX RB_INT2FIX +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#undef INT2FIX +#define INT2FIX(i) __builtin_choose_expr( __builtin_constant_p(i), RBIMPL_CAST((VALUE)(i)) << 1 | RUBY_FIXNUM_FLAG, RB_INT2FIX(i)) +#define RB_INT2NUM rb_int2num_inline +#define RB_NUM2INT rb_num2int_inline +#define RB_UINT2NUM rb_uint2num_inline +#define FIX2INT RB_FIX2INT +#define FIX2UINT RB_FIX2UINT +#define INT2NUM RB_INT2NUM +#define NUM2INT RB_NUM2INT +#define NUM2UINT RB_NUM2UINT +#define UINT2NUM RB_UINT2NUM +#define RB_FIX2INT RB_FIX2INT +#define RB_NUM2UINT RB_NUM2UINT +#define RB_FIX2UINT RB_FIX2UINT +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wtautological-constant-out-of-range-compare" +#pragma clang diagnostic pop +#define RBIMPL_RSTRING_H +#define RBIMPL_RBASIC_H +#define RBIMPL_ATTR_NOALIAS_H +#define RBIMPL_ATTR_NOALIAS() __declspec(noalias) +#define RBASIC(obj) RBIMPL_CAST((struct RBasic *)(obj)) +#define RBASIC_CLASS RBASIC_CLASS +#define RBIMPL_RVALUE_EMBED_LEN_MAX 3 +#define RVALUE_EMBED_LEN_MAX RVALUE_EMBED_LEN_MAX +#define RBIMPL_EMBED_LEN_MAX_OF(T) RBIMPL_CAST((int)(sizeof(VALUE[RBIMPL_RVALUE_EMBED_LEN_MAX]) / (sizeof(T)))) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_FL_TYPE_H +#define RBIMPL_ATTR_FLAG_ENUM_H +#define RBIMPL_ATTR_FLAG_ENUM() __attribute__((__flag_enum__)) +#define RBIMPL_VALUE_TYPE_H +#define RBIMPL_CONSTANT_P_H +#define RBIMPL_CONSTANT_P(expr) __builtin_constant_p(expr) +#define RBIMPL_ERROR_H +#define RB_IO_WAIT_READABLE RB_IO_WAIT_READABLE +#define RB_IO_WAIT_WRITABLE RB_IO_WAIT_WRITABLE +#pragma GCC visibility push(default) +#define ruby_verbose (*rb_ruby_verbose_ptr()) +#define ruby_debug (*rb_ruby_debug_ptr()) +#pragma GCC visibility pop +#define T_ARRAY RUBY_T_ARRAY +#define T_BIGNUM RUBY_T_BIGNUM +#define T_CLASS RUBY_T_CLASS +#define T_COMPLEX RUBY_T_COMPLEX +#define T_DATA RUBY_T_DATA +#define T_FALSE RUBY_T_FALSE +#define T_FILE RUBY_T_FILE +#define T_FIXNUM RUBY_T_FIXNUM +#define T_FLOAT RUBY_T_FLOAT +#define T_HASH RUBY_T_HASH +#define T_ICLASS RUBY_T_ICLASS +#define T_IMEMO RUBY_T_IMEMO +#define T_MASK RUBY_T_MASK +#define T_MATCH RUBY_T_MATCH +#define T_MODULE RUBY_T_MODULE +#define T_MOVED RUBY_T_MOVED +#define T_NIL RUBY_T_NIL +#define T_NODE RUBY_T_NODE +#define T_NONE RUBY_T_NONE +#define T_OBJECT RUBY_T_OBJECT +#define T_RATIONAL RUBY_T_RATIONAL +#define T_REGEXP RUBY_T_REGEXP +#define T_STRING RUBY_T_STRING +#define T_STRUCT RUBY_T_STRUCT +#define T_SYMBOL RUBY_T_SYMBOL +#define T_TRUE RUBY_T_TRUE +#define T_UNDEF RUBY_T_UNDEF +#define T_ZOMBIE RUBY_T_ZOMBIE +#define BUILTIN_TYPE RB_BUILTIN_TYPE +#define DYNAMIC_SYM_P RB_DYNAMIC_SYM_P +#define RB_INTEGER_TYPE_P rb_integer_type_p +#define SYMBOL_P RB_SYMBOL_P +#define rb_type_p RB_TYPE_P +#define RB_BUILTIN_TYPE RB_BUILTIN_TYPE +#define RB_DYNAMIC_SYM_P RB_DYNAMIC_SYM_P +#define RB_FLOAT_TYPE_P RB_FLOAT_TYPE_P +#define RB_SYMBOL_P RB_SYMBOL_P +#define RB_TYPE_P RB_TYPE_P +#define Check_Type Check_Type +#define RBIMPL_ASSERT_TYPE(v,t) RBIMPL_ASSERT_OR_ASSUME(RB_TYPE_P((v), (t))) +#define TYPE(_) RBIMPL_CAST((int)rb_type(_)) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#undef RB_TYPE_P +#define RB_TYPE_P(obj,t) (RBIMPL_CONSTANT_P(t) ? rbimpl_RB_TYPE_P_fastpath((obj), (t)) : (RB_TYPE_P)((obj), (t))) +#define RBIMPL_HAVE_ENUM_ATTRIBUTE 1 +#define RBIMPL_WIDER_ENUM 1 +#define FL_SINGLETON RBIMPL_CAST((VALUE)RUBY_FL_SINGLETON) +#define FL_WB_PROTECTED RBIMPL_CAST((VALUE)RUBY_FL_WB_PROTECTED) +#define FL_PROMOTED0 RBIMPL_CAST((VALUE)RUBY_FL_PROMOTED0) +#define FL_PROMOTED1 RBIMPL_CAST((VALUE)RUBY_FL_PROMOTED1) +#define FL_FINALIZE RBIMPL_CAST((VALUE)RUBY_FL_FINALIZE) +#define FL_TAINT RBIMPL_CAST((VALUE)RUBY_FL_TAINT) +#define FL_SHAREABLE RBIMPL_CAST((VALUE)RUBY_FL_SHAREABLE) +#define FL_UNTRUSTED RBIMPL_CAST((VALUE)RUBY_FL_UNTRUSTED) +#define FL_SEEN_OBJ_ID RBIMPL_CAST((VALUE)RUBY_FL_SEEN_OBJ_ID) +#define FL_EXIVAR RBIMPL_CAST((VALUE)RUBY_FL_EXIVAR) +#define FL_FREEZE RBIMPL_CAST((VALUE)RUBY_FL_FREEZE) +#define FL_USHIFT RBIMPL_CAST((VALUE)RUBY_FL_USHIFT) +#define FL_USER0 RBIMPL_CAST((VALUE)RUBY_FL_USER0) +#define FL_USER1 RBIMPL_CAST((VALUE)RUBY_FL_USER1) +#define FL_USER2 RBIMPL_CAST((VALUE)RUBY_FL_USER2) +#define FL_USER3 RBIMPL_CAST((VALUE)RUBY_FL_USER3) +#define FL_USER4 RBIMPL_CAST((VALUE)RUBY_FL_USER4) +#define FL_USER5 RBIMPL_CAST((VALUE)RUBY_FL_USER5) +#define FL_USER6 RBIMPL_CAST((VALUE)RUBY_FL_USER6) +#define FL_USER7 RBIMPL_CAST((VALUE)RUBY_FL_USER7) +#define FL_USER8 RBIMPL_CAST((VALUE)RUBY_FL_USER8) +#define FL_USER9 RBIMPL_CAST((VALUE)RUBY_FL_USER9) +#define FL_USER10 RBIMPL_CAST((VALUE)RUBY_FL_USER10) +#define FL_USER11 RBIMPL_CAST((VALUE)RUBY_FL_USER11) +#define FL_USER12 RBIMPL_CAST((VALUE)RUBY_FL_USER12) +#define FL_USER13 RBIMPL_CAST((VALUE)RUBY_FL_USER13) +#define FL_USER14 RBIMPL_CAST((VALUE)RUBY_FL_USER14) +#define FL_USER15 RBIMPL_CAST((VALUE)RUBY_FL_USER15) +#define FL_USER16 RBIMPL_CAST((VALUE)RUBY_FL_USER16) +#define FL_USER17 RBIMPL_CAST((VALUE)RUBY_FL_USER17) +#define FL_USER18 RBIMPL_CAST((VALUE)RUBY_FL_USER18) +#define FL_USER19 RBIMPL_CAST((VALUE)(unsigned int)RUBY_FL_USER19) +#define ELTS_SHARED RUBY_ELTS_SHARED +#define RB_OBJ_FREEZE rb_obj_freeze_inline +#define RUBY_ELTS_SHARED RUBY_ELTS_SHARED +#define RB_FL_ABLE RB_FL_ABLE +#define RB_FL_ALL RB_FL_ALL +#define RB_FL_ALL_RAW RB_FL_ALL_RAW +#define RB_FL_ANY RB_FL_ANY +#define RB_FL_ANY_RAW RB_FL_ANY_RAW +#define RB_FL_REVERSE RB_FL_REVERSE +#define RB_FL_REVERSE_RAW RB_FL_REVERSE_RAW +#define RB_FL_SET RB_FL_SET +#define RB_FL_SET_RAW RB_FL_SET_RAW +#define RB_FL_TEST RB_FL_TEST +#define RB_FL_TEST_RAW RB_FL_TEST_RAW +#define RB_FL_UNSET RB_FL_UNSET +#define RB_FL_UNSET_RAW RB_FL_UNSET_RAW +#define RB_OBJ_FREEZE_RAW RB_OBJ_FREEZE_RAW +#define RB_OBJ_FROZEN RB_OBJ_FROZEN +#define RB_OBJ_FROZEN_RAW RB_OBJ_FROZEN_RAW +#define RB_OBJ_INFECT RB_OBJ_INFECT +#define RB_OBJ_INFECT_RAW RB_OBJ_INFECT_RAW +#define RB_OBJ_TAINT RB_OBJ_TAINT +#define RB_OBJ_TAINTABLE RB_OBJ_TAINTABLE +#define RB_OBJ_TAINTED RB_OBJ_TAINTED +#define RB_OBJ_TAINTED_RAW RB_OBJ_TAINTED_RAW +#define RB_OBJ_TAINT_RAW RB_OBJ_TAINT_RAW +#define RB_OBJ_UNTRUST RB_OBJ_TAINT +#define RB_OBJ_UNTRUSTED RB_OBJ_TAINTED +#define FL_ABLE RB_FL_ABLE +#define FL_ALL RB_FL_ALL +#define FL_ALL_RAW RB_FL_ALL_RAW +#define FL_ANY RB_FL_ANY +#define FL_ANY_RAW RB_FL_ANY_RAW +#define FL_REVERSE RB_FL_REVERSE +#define FL_REVERSE_RAW RB_FL_REVERSE_RAW +#define FL_SET RB_FL_SET +#define FL_SET_RAW RB_FL_SET_RAW +#define FL_TEST RB_FL_TEST +#define FL_TEST_RAW RB_FL_TEST_RAW +#define FL_UNSET RB_FL_UNSET +#define FL_UNSET_RAW RB_FL_UNSET_RAW +#define OBJ_FREEZE RB_OBJ_FREEZE +#define OBJ_FREEZE_RAW RB_OBJ_FREEZE_RAW +#define OBJ_FROZEN RB_OBJ_FROZEN +#define OBJ_FROZEN_RAW RB_OBJ_FROZEN_RAW +#define OBJ_INFECT RB_OBJ_INFECT +#define OBJ_INFECT_RAW RB_OBJ_INFECT_RAW +#define OBJ_TAINT RB_OBJ_TAINT +#define OBJ_TAINTABLE RB_OBJ_TAINTABLE +#define OBJ_TAINTED RB_OBJ_TAINTED +#define OBJ_TAINTED_RAW RB_OBJ_TAINTED_RAW +#define OBJ_TAINT_RAW RB_OBJ_TAINT_RAW +#define OBJ_UNTRUST RB_OBJ_UNTRUST +#define OBJ_UNTRUSTED RB_OBJ_UNTRUSTED +#define RBIMPL_FL_USER_N(n) RUBY_FL_USER##n = (1<<(RUBY_FL_USHIFT+n)) +#undef RBIMPL_FL_USER_N +#undef RBIMPL_WIDER_ENUM +#undef RBIMPL_HAVE_ENUM_ATTRIBUTE +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RSTRING(obj) RBIMPL_CAST((struct RString *)(obj)) +#define RSTRING_NOEMBED RSTRING_NOEMBED +#define RSTRING_FSTR RSTRING_FSTR +#define RSTRING_EMBED_LEN RSTRING_EMBED_LEN +#define RSTRING_LEN RSTRING_LEN +#define RSTRING_LENINT RSTRING_LENINT +#define RSTRING_PTR RSTRING_PTR +#define RSTRING_END RSTRING_END +#define StringValue(v) rb_string_value(&(v)) +#define StringValuePtr(v) rb_string_value_ptr(&(v)) +#define StringValueCStr(v) rb_string_value_cstr(&(v)) +#define SafeStringValue(v) StringValue(v) +#define ExportStringValue(v) do { StringValue(v); (v) = rb_str_export(v); } while (0) +#pragma GCC visibility push(default) +#define Check_SafeStr(v) rb_check_safe_str(RBIMPL_CAST((VALUE)(v))) +#pragma GCC visibility pop +#pragma clang diagnostic push +#pragma clang diagnostic pop +#define RSTRING_GETMEM(str,ptrvar,lenvar) __extension__ ({ struct RString rbimpl_str = rbimpl_rstring_getmem(str); (ptrvar) = rbimpl_str.as.heap.ptr; (lenvar) = rbimpl_str.as.heap.len; }) +#define RB_NUM2CHR rb_num2char_inline +#define NUM2CHR RB_NUM2CHR +#define CHR2FIX RB_CHR2FIX +#define RB_CHR2FIX RB_CHR2FIX +#define RBIMPL_ARITHMETIC_DOUBLE_H +#define NUM2DBL rb_num2dbl +#define RFLOAT_VALUE rb_float_value +#define DBL2NUM rb_float_new +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_ARITHMETIC_GID_T_H +#define RBIMPL_ARITHMETIC_LONG_LONG_H +#define RB_LL2NUM rb_ll2num_inline +#define RB_ULL2NUM rb_ull2num_inline +#define LL2NUM RB_LL2NUM +#define ULL2NUM RB_ULL2NUM +#define RB_NUM2LL rb_num2ll_inline +#define RB_NUM2ULL rb_num2ull_inline +#define NUM2LL RB_NUM2LL +#define NUM2ULL RB_NUM2ULL +#pragma GCC visibility push(default) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#pragma GCC visibility pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#define RBIMPL_ARITHMETIC_MODE_T_H +#define RBIMPL_ARITHMETIC_OFF_T_H +#define RBIMPL_ARITHMETIC_PID_T_H +#define RBIMPL_ARITHMETIC_SHORT_H +#define RB_NUM2SHORT rb_num2short_inline +#define RB_NUM2USHORT rb_num2ushort +#define NUM2SHORT RB_NUM2SHORT +#define NUM2USHORT RB_NUM2USHORT +#define USHORT2NUM RB_INT2FIX +#define RB_FIX2SHORT rb_fix2short +#define FIX2SHORT RB_FIX2SHORT +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_ARITHMETIC_SIZE_T_H +#define RB_SIZE2NUM RB_ULL2NUM +#define RB_SSIZE2NUM RB_LL2NUM +#define RB_NUM2SIZE RB_NUM2ULL +#define RB_NUM2SSIZE RB_NUM2LL +#define NUM2SIZET RB_NUM2SIZE +#define SIZET2NUM RB_SIZE2NUM +#define NUM2SSIZET RB_NUM2SSIZE +#define SSIZET2NUM RB_SSIZE2NUM +#define RBIMPL_ARITHMERIC_ST_DATA_T_H +#define RUBY_ST_H 1 +#pragma GCC visibility push(default) +#define ST_DATA_T_DEFINED +#define MAX_ST_INDEX_VAL (~(st_index_t) 0) +#define SIZEOF_ST_INDEX_T SIZEOF_VOIDP +#define ST_INDEX_BITS (SIZEOF_ST_INDEX_T * CHAR_BIT) +#define ST_DATA_COMPATIBLE_P(type) __builtin_choose_expr(__builtin_types_compatible_p(type, st_data_t), 1, 0) +#define st_is_member(table,key) st_lookup((table),(key),(st_data_t *)0) +#define st_init_table rb_st_init_table +#define st_init_table_with_size rb_st_init_table_with_size +#define st_init_numtable rb_st_init_numtable +#define st_init_numtable_with_size rb_st_init_numtable_with_size +#define st_init_strtable rb_st_init_strtable +#define st_init_strtable_with_size rb_st_init_strtable_with_size +#define st_init_strcasetable rb_st_init_strcasetable +#define st_init_strcasetable_with_size rb_st_init_strcasetable_with_size +#define st_delete rb_st_delete +#define st_delete_safe rb_st_delete_safe +#define st_shift rb_st_shift +#define st_insert rb_st_insert +#define st_insert2 rb_st_insert2 +#define st_lookup rb_st_lookup +#define st_get_key rb_st_get_key +#define st_update rb_st_update +#define st_foreach_with_replace rb_st_foreach_with_replace +#define st_foreach rb_st_foreach +#define st_foreach_check rb_st_foreach_check +#define st_keys rb_st_keys +#define st_keys_check rb_st_keys_check +#define st_values rb_st_values +#define st_values_check rb_st_values_check +#define st_add_direct rb_st_add_direct +#define st_free_table rb_st_free_table +#define st_cleanup_safe rb_st_cleanup_safe +#define st_clear rb_st_clear +#define st_copy rb_st_copy +#define st_numcmp rb_st_numcmp +#define st_numhash rb_st_numhash +#define st_locale_insensitive_strcasecmp rb_st_locale_insensitive_strcasecmp +#define st_locale_insensitive_strncasecmp rb_st_locale_insensitive_strncasecmp +#define st_strcasecmp rb_st_locale_insensitive_strcasecmp +#define st_strncasecmp rb_st_locale_insensitive_strncasecmp +#define st_memsize rb_st_memsize +#define st_hash rb_st_hash +#define st_hash_uint32 rb_st_hash_uint32 +#define st_hash_uint rb_st_hash_uint +#define st_hash_end rb_st_hash_end +#define st_hash_start(h) ((st_index_t)(h)) +#pragma GCC visibility pop +#define ST2FIX RB_ST2FIX +#define RB_ST2FIX RB_ST2FIX +#define RBIMPL_ARITHMETIC_UID_T_H +#define RBIMPL_CORE_H +#define RBIMPL_RARRAY_H +#define RBIMPL_RGENGC_H +#undef USE_RGENGC +#define USE_RGENGC 1 +#define USE_RINCGC 1 +#define USE_RGENGC_LOGGING_WB_UNPROTECT 0 +#define RGENGC_WB_PROTECTED_ARRAY 1 +#define RGENGC_WB_PROTECTED_HASH 1 +#define RGENGC_WB_PROTECTED_STRUCT 1 +#define RGENGC_WB_PROTECTED_STRING 1 +#define RGENGC_WB_PROTECTED_OBJECT 1 +#define RGENGC_WB_PROTECTED_REGEXP 1 +#define RGENGC_WB_PROTECTED_CLASS 1 +#define RGENGC_WB_PROTECTED_FLOAT 1 +#define RGENGC_WB_PROTECTED_COMPLEX 1 +#define RGENGC_WB_PROTECTED_RATIONAL 1 +#define RGENGC_WB_PROTECTED_BIGNUM 1 +#define RGENGC_WB_PROTECTED_NODE_CREF 1 +#define RB_OBJ_WRITE(old,slot,young) RBIMPL_CAST(rb_obj_write((VALUE)(old), (VALUE *)(slot), (VALUE)(young), __FILE__, __LINE__)) +#define RB_OBJ_WRITTEN(old,oldv,young) RBIMPL_CAST(rb_obj_written((VALUE)(old), (VALUE)(oldv), (VALUE)(young), __FILE__, __LINE__)) +#define OBJ_PROMOTED_RAW RB_OBJ_PROMOTED_RAW +#define OBJ_PROMOTED RB_OBJ_PROMOTED +#define OBJ_WB_UNPROTECT RB_OBJ_WB_UNPROTECT +#define RB_OBJ_WB_UNPROTECT(x) rb_obj_wb_unprotect(x, __FILE__, __LINE__) +#define RB_OBJ_WB_UNPROTECT_FOR(type,obj) (RGENGC_WB_PROTECTED_##type ? OBJ_WB_UNPROTECT(obj) : obj) +#define RGENGC_LOGGING_WB_UNPROTECT rb_gc_unprotect_logging +#define RB_OBJ_PROMOTED_RAW RB_OBJ_PROMOTED_RAW +#define RB_OBJ_PROMOTED RB_OBJ_PROMOTED +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define USE_TRANSIENT_HEAP 1 +#define RARRAY(obj) RBIMPL_CAST((struct RArray *)(obj)) +#define RARRAY_EMBED_FLAG RARRAY_EMBED_FLAG +#define RARRAY_EMBED_LEN_MASK RARRAY_EMBED_LEN_MASK +#define RARRAY_EMBED_LEN_MAX RARRAY_EMBED_LEN_MAX +#define RARRAY_EMBED_LEN_SHIFT RARRAY_EMBED_LEN_SHIFT +#define RARRAY_TRANSIENT_FLAG RARRAY_TRANSIENT_FLAG +#define RARRAY_LEN rb_array_len +#define RARRAY_CONST_PTR rb_array_const_ptr +#define RARRAY_CONST_PTR_TRANSIENT rb_array_const_ptr_transient +#define FIX_CONST_VALUE_PTR(x) (x) +#define RARRAY_EMBED_LEN RARRAY_EMBED_LEN +#define RARRAY_LENINT RARRAY_LENINT +#define RARRAY_TRANSIENT_P RARRAY_TRANSIENT_P +#define RARRAY_ASET RARRAY_ASET +#define RARRAY_PTR RARRAY_PTR +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_RARRAY_STMT(flag,ary,var,expr) do { RBIMPL_ASSERT_TYPE((ary), RUBY_T_ARRAY); const VALUE rbimpl_ary = (ary); VALUE *var = rb_array_ptr_use_start(rbimpl_ary, (flag)); expr; rb_array_ptr_use_end(rbimpl_ary, (flag)); } while (0) +#define RARRAY_PTR_USE_END(a) rb_array_ptr_use_end(a, 0) +#define RARRAY_PTR_USE(ary,ptr_name,expr) RBIMPL_RARRAY_STMT(0, ary, ptr_name, expr) +#define RARRAY_PTR_USE_TRANSIENT(ary,ptr_name,expr) RBIMPL_RARRAY_STMT(1, ary, ptr_name, expr) +#define RARRAY_AREF(a,i) RARRAY_CONST_PTR_TRANSIENT(a)[i] +#define RBIMPL_RBIGNUM_H +#define RBIGNUM_SIGN rb_big_sign +#define RBIGNUM_POSITIVE_P RBIGNUM_POSITIVE_P +#define RBIGNUM_NEGATIVE_P RBIGNUM_NEGATIVE_P +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_RCLASS_H +#define RMODULE_IS_REFINEMENT RMODULE_IS_REFINEMENT +#define RCLASS(obj) RBIMPL_CAST((struct RClass *)(obj)) +#define RMODULE RCLASS +#define RCLASS_SUPER rb_class_get_superclass +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_RDATA_H +#define RUBY_UNTYPED_DATA_WARNING 1 +#define RBIMPL_DATA_FUNC(f) RBIMPL_CAST((void (*)(void *))(f)) +#define RBIMPL_ATTRSET_UNTYPED_DATA_FUNC() RBIMPL_ATTR_WARNING(("untyped Data is unsafe; use TypedData instead")) RBIMPL_ATTR_DEPRECATED(("by TypedData")) +#define RBIMPL_MACRO_SELECT(x,y) x ## y +#define RUBY_MACRO_SELECT(x,y) RBIMPL_MACRO_SELECT(x, y) +#define RDATA(obj) RBIMPL_CAST((struct RData *)(obj)) +#define DATA_PTR(obj) RDATA(obj)->data +#define RUBY_DEFAULT_FREE RBIMPL_DATA_FUNC(-1) +#define RUBY_NEVER_FREE RBIMPL_DATA_FUNC(0) +#define RUBY_UNTYPED_DATA_FUNC(f) f RBIMPL_ATTRSET_UNTYPED_DATA_FUNC() +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define Data_Wrap_Struct(klass,mark,free,sval) rb_data_object_wrap( (klass), (sval), RBIMPL_DATA_FUNC(mark), RBIMPL_DATA_FUNC(free)) +#define Data_Make_Struct0(result,klass,type,size,mark,free,sval) VALUE result = rb_data_object_zalloc( (klass), (size), RBIMPL_DATA_FUNC(mark), RBIMPL_DATA_FUNC(free)); (sval) = RBIMPL_CAST((type *)DATA_PTR(result)); RBIMPL_CAST( (void)(sval)) +#define Data_Make_Struct(klass,type,mark,free,sval) RB_GNUC_EXTENSION({ Data_Make_Struct0( data_struct_obj, klass, type, sizeof(type), mark, free, sval); data_struct_obj; }) +#define Data_Get_Struct(obj,type,sval) ((sval) = RBIMPL_CAST((type*)rb_data_object_get(obj))) +#define rb_data_object_wrap_warning(klass,ptr,mark,free) RB_GNUC_EXTENSION( __builtin_choose_expr( __builtin_constant_p(klass) && !(klass), rb_data_object_wrap(klass, ptr, mark, free), (rb_data_object_wrap_warning)(klass, ptr, mark, free))) +#define rb_data_object_wrap_0 rb_data_object_wrap +#define rb_data_object_wrap_1 rb_data_object_wrap_warning +#define rb_data_object_wrap_2 rb_data_object_wrap_ +#define rb_data_object_wrap RUBY_MACRO_SELECT(rb_data_object_wrap_2, RUBY_UNTYPED_DATA_WARNING) +#define rb_data_object_get_0 rb_data_object_get +#define rb_data_object_get_1 rb_data_object_get_warning +#define rb_data_object_get_2 rb_data_object_get_ +#define rb_data_object_get RUBY_MACRO_SELECT(rb_data_object_get_2, RUBY_UNTYPED_DATA_WARNING) +#define rb_data_object_make_0 rb_data_object_make +#define rb_data_object_make_1 rb_data_object_make_warning +#define rb_data_object_make_2 rb_data_object_make_ +#define rb_data_object_make RUBY_MACRO_SELECT(rb_data_object_make_2, RUBY_UNTYPED_DATA_WARNING) +#define RBIMPL_RFILE_H +#define RFILE(obj) RBIMPL_CAST((struct RFile *)(obj)) +#define RBIMPL_RHASH_H +#define RHASH_TBL(h) rb_hash_tbl(h, __FILE__, __LINE__) +#define RHASH_ITER_LEV(h) rb_hash_iter_lev(h) +#define RHASH_IFNONE(h) rb_hash_ifnone(h) +#define RHASH_SIZE(h) rb_hash_size_num(h) +#define RHASH_EMPTY_P(h) (RHASH_SIZE(h) == 0) +#define RHASH_SET_IFNONE(h,ifnone) rb_hash_set_ifnone((VALUE)h, ifnone) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_ROBJECT_H +#define ROBJECT(obj) RBIMPL_CAST((struct RObject *)(obj)) +#define ROBJECT_EMBED_LEN_MAX ROBJECT_EMBED_LEN_MAX +#define ROBJECT_EMBED ROBJECT_EMBED +#define ROBJECT_IV_CAPACITY ROBJECT_IV_CAPACITY +#define ROBJECT_IVPTR ROBJECT_IVPTR +#define RBIMPL_RREGEXP_H +#define RREGEXP(obj) RBIMPL_CAST((struct RRegexp *)(obj)) +#define RREGEXP_PTR(obj) (RREGEXP(obj)->ptr) +#define RREGEXP_SRC RREGEXP_SRC +#define RREGEXP_SRC_PTR RREGEXP_SRC_PTR +#define RREGEXP_SRC_LEN RREGEXP_SRC_LEN +#define RREGEXP_SRC_END RREGEXP_SRC_END +#define RBIMPL_RSTRUCT_H +#define RSTRUCT_PTR(st) rb_struct_ptr(st) +#define RSTRUCT_LEN RSTRUCT_LEN +#define RSTRUCT_SET RSTRUCT_SET +#define RSTRUCT_GET RSTRUCT_GET +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_RTYPEDDATA_H +#define HAVE_TYPE_RB_DATA_TYPE_T 1 +#define HAVE_RB_DATA_TYPE_T_FUNCTION 1 +#define HAVE_RB_DATA_TYPE_T_PARENT 1 +#define RUBY_TYPED_DEFAULT_FREE RUBY_DEFAULT_FREE +#define RUBY_TYPED_NEVER_FREE RUBY_NEVER_FREE +#define RTYPEDDATA(obj) RBIMPL_CAST((struct RTypedData *)(obj)) +#define RTYPEDDATA_DATA(v) (RTYPEDDATA(v)->data) +#define Check_TypedStruct(v,t) rb_check_typeddata(RBIMPL_CAST((VALUE)(v)), (t)) +#define RTYPEDDATA_P RTYPEDDATA_P +#define RTYPEDDATA_TYPE RTYPEDDATA_TYPE +#define RUBY_TYPED_FREE_IMMEDIATELY RUBY_TYPED_FREE_IMMEDIATELY +#define RUBY_TYPED_FROZEN_SHAREABLE RUBY_TYPED_FROZEN_SHAREABLE +#define RUBY_TYPED_WB_PROTECTED RUBY_TYPED_WB_PROTECTED +#define RUBY_TYPED_PROMOTED1 RUBY_TYPED_PROMOTED1 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define TypedData_Wrap_Struct(klass,data_type,sval) rb_data_typed_object_wrap((klass),(sval),(data_type)) +#define TypedData_Make_Struct0(result,klass,type,size,data_type,sval) VALUE result = rb_data_typed_object_zalloc(klass, size, data_type); (sval) = RBIMPL_CAST((type *)RTYPEDDATA_DATA(result)); RBIMPL_CAST( (void)(sval)) +#define TypedData_Make_Struct(klass,type,data_type,sval) RB_GNUC_EXTENSION({ TypedData_Make_Struct0( data_struct_obj, klass, type, sizeof(type), data_type, sval); data_struct_obj; }) +#define TypedData_Get_Struct(obj,type,data_type,sval) ((sval) = RBIMPL_CAST((type *)rb_check_typeddata((obj), (data_type)))) +#define RBIMPL_CTYPE_H +#define _CTYPE_H_ +#define __CTYPE_H_ +#define _RUNETYPE_H_ +#define _WINT_T +#define _CACHED_RUNES (1 <<8 ) +#define _CRMASK (~(_CACHED_RUNES - 1)) +#define _RUNE_MAGIC_A "RuneMagA" +#define _CTYPE_A 0x00000100L +#define _CTYPE_C 0x00000200L +#define _CTYPE_D 0x00000400L +#define _CTYPE_G 0x00000800L +#define _CTYPE_L 0x00001000L +#define _CTYPE_P 0x00002000L +#define _CTYPE_S 0x00004000L +#define _CTYPE_U 0x00008000L +#define _CTYPE_X 0x00010000L +#define _CTYPE_B 0x00020000L +#define _CTYPE_R 0x00040000L +#define _CTYPE_I 0x00080000L +#define _CTYPE_T 0x00100000L +#define _CTYPE_Q 0x00200000L +#define _CTYPE_SW0 0x20000000L +#define _CTYPE_SW1 0x40000000L +#define _CTYPE_SW2 0x80000000L +#define _CTYPE_SW3 0xc0000000L +#define _CTYPE_SWM 0xe0000000L +#define _CTYPE_SWS 30 +#define __DARWIN_CTYPE_inline __header_inline +#define __DARWIN_CTYPE_TOP_inline __header_inline +#define _tolower(c) __tolower(c) +#define _toupper(c) __toupper(c) +#define ISASCII rb_isascii +#define ISPRINT rb_isprint +#define ISGRAPH rb_isgraph +#define ISSPACE rb_isspace +#define ISUPPER rb_isupper +#define ISLOWER rb_islower +#define ISALNUM rb_isalnum +#define ISALPHA rb_isalpha +#define ISDIGIT rb_isdigit +#define ISXDIGIT rb_isxdigit +#define ISBLANK rb_isblank +#define ISCNTRL rb_iscntrl +#define ISPUNCT rb_ispunct +#define TOUPPER rb_toupper +#define TOLOWER rb_tolower +#define STRCASECMP st_locale_insensitive_strcasecmp +#define STRNCASECMP st_locale_insensitive_strncasecmp +#define STRTOUL ruby_strtoul +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_EVAL_H +#pragma GCC visibility push(default) +#define rb_funcall2 rb_funcallv +#define rb_funcall3 rb_funcallv_public +#pragma GCC visibility pop +#define RBIMPL_EVENT_H +#define RUBY_EVENT_NONE 0x0000 +#define RUBY_EVENT_LINE 0x0001 +#define RUBY_EVENT_CLASS 0x0002 +#define RUBY_EVENT_END 0x0004 +#define RUBY_EVENT_CALL 0x0008 +#define RUBY_EVENT_RETURN 0x0010 +#define RUBY_EVENT_C_CALL 0x0020 +#define RUBY_EVENT_C_RETURN 0x0040 +#define RUBY_EVENT_RAISE 0x0080 +#define RUBY_EVENT_ALL 0x00ff +#define RUBY_EVENT_B_CALL 0x0100 +#define RUBY_EVENT_B_RETURN 0x0200 +#define RUBY_EVENT_THREAD_BEGIN 0x0400 +#define RUBY_EVENT_THREAD_END 0x0800 +#define RUBY_EVENT_FIBER_SWITCH 0x1000 +#define RUBY_EVENT_SCRIPT_COMPILED 0x2000 +#define RUBY_EVENT_TRACEPOINT_ALL 0xffff +#define RUBY_EVENT_RESERVED_FOR_INTERNAL_USE 0x030000 +#define RUBY_INTERNAL_EVENT_SWITCH 0x040000 +#define RUBY_EVENT_SWITCH 0x040000 +#define RUBY_INTERNAL_EVENT_NEWOBJ 0x100000 +#define RUBY_INTERNAL_EVENT_FREEOBJ 0x200000 +#define RUBY_INTERNAL_EVENT_GC_START 0x400000 +#define RUBY_INTERNAL_EVENT_GC_END_MARK 0x800000 +#define RUBY_INTERNAL_EVENT_GC_END_SWEEP 0x1000000 +#define RUBY_INTERNAL_EVENT_GC_ENTER 0x2000000 +#define RUBY_INTERNAL_EVENT_GC_EXIT 0x4000000 +#define RUBY_INTERNAL_EVENT_OBJSPACE_MASK 0x7f00000 +#define RUBY_INTERNAL_EVENT_MASK 0xffff0000 +#define RB_EVENT_HOOKS_HAVE_CALLBACK_DATA 1 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_GC_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_GLOB_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_GLOBALS_H +#pragma GCC visibility push(default) +#define RUBY_INTEGER_UNIFICATION 1 +#define CLASS_OF rb_class_of +#pragma GCC visibility pop +#define RBIMPL_INTERPRETER_H +#pragma GCC visibility push(default) +#define RUBY_INIT_STACK VALUE variable_in_this_stack_frame; ruby_init_stack(&variable_in_this_stack_frame); +#pragma GCC visibility pop +#define RBIMPL_ITERATOR_H +#pragma GCC visibility push(default) +#define RB_BLOCK_CALL_FUNC_STRICT 1 +#define RUBY_BLOCK_CALL_FUNC_TAKES_BLOCKARG 1 +#define RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg,callback_arg) VALUE yielded_arg, VALUE callback_arg, int argc, const VALUE *argv, VALUE blockarg +#pragma GCC visibility pop +#define RBIMPL_MEMORY_H +#define DSIZE_T uint128_t +#define RUBY_ALLOCV_LIMIT 1024 +#define RB_GC_GUARD(v) (*__extension__ ({ volatile VALUE *rb_gc_guarded_ptr = &(v); __asm__("" : : "m"(rb_gc_guarded_ptr)); rb_gc_guarded_ptr; })) +#define RB_ALLOC_N(type,n) RBIMPL_CAST((type *)ruby_xmalloc2((n), sizeof(type))) +#define RB_ALLOC(type) RBIMPL_CAST((type *)ruby_xmalloc(sizeof(type))) +#define RB_ZALLOC_N(type,n) RBIMPL_CAST((type *)ruby_xcalloc((n), sizeof(type))) +#define RB_ZALLOC(type) (RB_ZALLOC_N(type, 1)) +#define RB_REALLOC_N(var,type,n) ((var) = RBIMPL_CAST((type *)ruby_xrealloc2((void *)(var), (n), sizeof(type)))) +#define ALLOCA_N(type,n) RBIMPL_CAST((type *)alloca(rbimpl_size_mul_or_raise(sizeof(type), (n)))) +#define RB_ALLOCV(v,n) ((n) < RUBY_ALLOCV_LIMIT ? ((v) = 0, alloca(n)) : rb_alloc_tmp_buffer(&(v), (n))) +#define RB_ALLOCV_N(type,v,n) RBIMPL_CAST((type *) (((size_t)(n) < RUBY_ALLOCV_LIMIT / sizeof(type)) ? ((v) = 0, alloca((n) * sizeof(type))) : rb_alloc_tmp_buffer2(&(v), (n), sizeof(type)))) +#define RB_ALLOCV_END(v) rb_free_tmp_buffer(&(v)) +#define MEMZERO(p,type,n) memset((p), 0, rbimpl_size_mul_or_raise(sizeof(type), (n))) +#define MEMCPY(p1,p2,type,n) ruby_nonempty_memcpy((p1), (p2), rbimpl_size_mul_or_raise(sizeof(type), (n))) +#define MEMMOVE(p1,p2,type,n) memmove((p1), (p2), rbimpl_size_mul_or_raise(sizeof(type), (n))) +#define MEMCMP(p1,p2,type,n) memcmp((p1), (p2), rbimpl_size_mul_or_raise(sizeof(type), (n))) +#define ALLOC_N RB_ALLOC_N +#define ALLOC RB_ALLOC +#define ZALLOC_N RB_ZALLOC_N +#define ZALLOC RB_ZALLOC +#define REALLOC_N RB_REALLOC_N +#define ALLOCV RB_ALLOCV +#define ALLOCV_N RB_ALLOCV_N +#define ALLOCV_END RB_ALLOCV_END +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_MODULE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_NEWOBJ_H +#define RB_NEWOBJ(obj,type) type *(obj) = RBIMPL_CAST((type *)rb_newobj()) +#define RB_NEWOBJ_OF(obj,type,klass,flags) type *(obj) = RBIMPL_CAST((type *)rb_newobj_of(klass, flags)) +#define NEWOBJ RB_NEWOBJ +#define NEWOBJ_OF RB_NEWOBJ_OF +#define OBJSETUP rb_obj_setup +#define CLONESETUP rb_clone_setup +#define DUPSETUP rb_dup_setup +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_SCAN_ARGS_H +#define RBIMPL_ATTR_DIAGNOSE_IF_H +#define RBIMPL_ATTR_DIAGNOSE_IF(_,__,___) RBIMPL_WARNING_PUSH() RBIMPL_WARNING_IGNORED(-Wgcc-compat) __attribute__((__diagnose_if__(_, __, ___))) RBIMPL_WARNING_POP() +#define RBIMPL_INTERN_ARRAY_H +#pragma GCC visibility push(default) +#define rb_ary_tmp_new rb_ary_hidden_new +#define rb_ary_new2 rb_ary_new_capa +#define rb_ary_new3 rb_ary_new_from_args +#define rb_ary_new4 rb_ary_new_from_values +#pragma GCC visibility pop +#define RBIMPL_INTERN_ERROR_H +#define UNLIMITED_ARGUMENTS (-1) +#define rb_exc_new2 rb_exc_new_cstr +#define rb_exc_new3 rb_exc_new_str +#define rb_check_arity rb_check_arity +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define rb_check_frozen_internal(obj) do { VALUE frozen_obj = (obj); if (RB_UNLIKELY(RB_OBJ_FROZEN(frozen_obj))) { rb_error_frozen_object(frozen_obj); } } while (0) +#define rb_check_frozen rb_check_frozen_inline +#define RBIMPL_INTERN_HASH_H +#pragma GCC visibility push(default) +#define st_foreach_safe rb_st_foreach_safe +#pragma GCC visibility pop +#define RBIMPL_INTERN_PROC_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RB_SCAN_ARGS_PASS_CALLED_KEYWORDS 0 +#define RB_SCAN_ARGS_KEYWORDS 1 +#define RB_SCAN_ARGS_LAST_HASH_KEYWORDS 3 +#define RB_NO_KEYWORDS 0 +#define RB_PASS_KEYWORDS 1 +#define RB_PASS_CALLED_KEYWORDS rb_keyword_given_p() +#define HAVE_RB_SCAN_ARGS_OPTIONAL_HASH 1 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define rb_scan_args_isdigit(c) (RBIMPL_CAST((unsigned char)((c)-'0'))<10) +#define rb_scan_args_count_end(fmt,ofs,vari) ((fmt)[ofs] ? -1 : (vari)) +#define rb_scan_args_count_block(fmt,ofs,vari) ((fmt)[ofs]!='&' ? rb_scan_args_count_end(fmt, ofs, vari) : rb_scan_args_count_end(fmt, (ofs)+1, (vari)+1)) +#define rb_scan_args_count_hash(fmt,ofs,vari) ((fmt)[ofs]!=':' ? rb_scan_args_count_block(fmt, ofs, vari) : rb_scan_args_count_block(fmt, (ofs)+1, (vari)+1)) +#define rb_scan_args_count_trail(fmt,ofs,vari) (!rb_scan_args_isdigit((fmt)[ofs]) ? rb_scan_args_count_hash(fmt, ofs, vari) : rb_scan_args_count_hash(fmt, (ofs)+1, (vari)+((fmt)[ofs]-'0'))) +#define rb_scan_args_count_var(fmt,ofs,vari) ((fmt)[ofs]!='*' ? rb_scan_args_count_trail(fmt, ofs, vari) : rb_scan_args_count_trail(fmt, (ofs)+1, (vari)+1)) +#define rb_scan_args_count_opt(fmt,ofs,vari) (!rb_scan_args_isdigit((fmt)[ofs]) ? rb_scan_args_count_var(fmt, ofs, vari) : rb_scan_args_count_var(fmt, (ofs)+1, (vari)+(fmt)[ofs]-'0')) +#define rb_scan_args_count_lead(fmt,ofs,vari) (!rb_scan_args_isdigit((fmt)[ofs]) ? rb_scan_args_count_var(fmt, ofs, vari) : rb_scan_args_count_opt(fmt, (ofs)+1, (vari)+(fmt)[ofs]-'0')) +#define rb_scan_args_count(fmt) rb_scan_args_count_lead(fmt, 0, 0) +#define rb_scan_args_verify(fmt,varc) RBIMPL_ASSERT_NOTHING +#define rb_scan_args0(argc,argv,fmt,varc,vars) rb_scan_args_set(RB_SCAN_ARGS_PASS_CALLED_KEYWORDS, argc, argv, rb_scan_args_n_lead(fmt), rb_scan_args_n_opt(fmt), rb_scan_args_n_trail(fmt), rb_scan_args_f_var(fmt), rb_scan_args_f_hash(fmt), rb_scan_args_f_block(fmt), (rb_scan_args_verify(fmt, varc), vars), (char *)fmt, varc) +#define rb_scan_args_kw0(kw_flag,argc,argv,fmt,varc,vars) rb_scan_args_set(kw_flag, argc, argv, rb_scan_args_n_lead(fmt), rb_scan_args_n_opt(fmt), rb_scan_args_n_trail(fmt), rb_scan_args_f_var(fmt), rb_scan_args_f_hash(fmt), rb_scan_args_f_block(fmt), (rb_scan_args_verify(fmt, varc), vars), (char *)fmt, varc) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" +#pragma clang diagnostic pop +#define rb_scan_args_next_param() vars[vari++] +#undef rb_scan_args_next_param +#define rb_scan_args(argc,argvp,fmt,...) __builtin_choose_expr( __builtin_constant_p(fmt), rb_scan_args0( argc, argvp, fmt, (sizeof((VALUE*[]){__VA_ARGS__})/sizeof(VALUE*)), ((VALUE*[]){__VA_ARGS__})), (rb_scan_args)(argc, argvp, fmt __VA_OPT__(, __VA_ARGS__))) +#define rb_scan_args_kw(kw_flag,argc,argvp,fmt,...) __builtin_choose_expr( __builtin_constant_p(fmt), rb_scan_args_kw0( kw_flag, argc, argvp, fmt, (sizeof((VALUE*[]){__VA_ARGS__})/sizeof(VALUE*)), ((VALUE*[]){__VA_ARGS__})), (rb_scan_args_kw)(kw_flag, argc, argvp, fmt __VA_OPT__(, __VA_ARGS__))) +#define RBIMPL_SYMBOL_H +#define RB_ID2SYM rb_id2sym +#define RB_SYM2ID rb_sym2id +#define ID2SYM RB_ID2SYM +#define SYM2ID RB_SYM2ID +#define CONST_ID_CACHE RUBY_CONST_ID_CACHE +#define CONST_ID RUBY_CONST_ID +#define rb_intern_const rb_intern_const +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_CONST_ID_CACHE(result,str) { static ID rb_intern_id_cache; rbimpl_intern_const(&rb_intern_id_cache, (str)); result rb_intern_id_cache; } +#define RUBY_CONST_ID(var,str) do { static ID rbimpl_id; (var) = rbimpl_intern_const(&rbimpl_id, (str)); } while (0) +#define rb_intern(str) (RBIMPL_CONSTANT_P(str) ? __extension__ ({ static ID rbimpl_id; rbimpl_intern_const(&rbimpl_id, (str)); }) : (rb_intern)(str)) +#define RBIMPL_VARIABLE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_BACKWARD2_INTTYPES_H +#define PRI_INT_PREFIX "" +#define PRI_LONG_PREFIX "l" +#define PRI_SHORT_PREFIX "h" +#define RUBY_PRI_VALUE_MARK "\v" +#define PRIdVALUE PRI_VALUE_PREFIX"d" +#define PRIoVALUE PRI_VALUE_PREFIX"o" +#define PRIuVALUE PRI_VALUE_PREFIX"u" +#define PRIxVALUE PRI_VALUE_PREFIX"x" +#define PRIXVALUE PRI_VALUE_PREFIX"X" +#define PRIsVALUE PRI_VALUE_PREFIX"i" RUBY_PRI_VALUE_MARK +#define PRIdPTRDIFF PRI_PTRDIFF_PREFIX"d" +#define PRIiPTRDIFF PRI_PTRDIFF_PREFIX"i" +#define PRIoPTRDIFF PRI_PTRDIFF_PREFIX"o" +#define PRIuPTRDIFF PRI_PTRDIFF_PREFIX"u" +#define PRIxPTRDIFF PRI_PTRDIFF_PREFIX"x" +#define PRIXPTRDIFF PRI_PTRDIFF_PREFIX"X" +#define PRIdSIZE PRI_SIZE_PREFIX"d" +#define PRIiSIZE PRI_SIZE_PREFIX"i" +#define PRIoSIZE PRI_SIZE_PREFIX"o" +#define PRIuSIZE PRI_SIZE_PREFIX"u" +#define PRIxSIZE PRI_SIZE_PREFIX"x" +#define PRIXSIZE PRI_SIZE_PREFIX"X" +#pragma GCC visibility push(default) +#define USE_SYMBOL_AS_METHOD_NAME 1 +#define FilePathValue(v) (RB_GC_GUARD(v) = rb_get_path(v)) +#define FilePathStringValue(v) ((v) = rb_get_path(v)) +#define rb_varargs_argc_check_runtime(argc,vargc) (((argc) <= (vargc)) ? (argc) : (rb_fatal("argc(%d) exceeds actual arguments(%d)", argc, vargc), 0)) +#define rb_varargs_argc_valid_p(argc,vargc) ((argc) == 0 ? (vargc) <= 1 : (argc) == (vargc)) +#define rb_varargs_argc_check(argc,vargc) __builtin_choose_expr(__builtin_constant_p(argc), (rb_varargs_argc_valid_p(argc, vargc) ? (argc) : rb_varargs_bad_length(argc, vargc)), rb_varargs_argc_check_runtime(argc, vargc)) +#define RUBY_INTERN_H 1 +#define RBIMPL_INTERN_BIGNUM_H +#pragma GCC visibility push(default) +#define rb_big2int(x) rb_big2long(x) +#define rb_big2uint(x) rb_big2ulong(x) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-long-long" +#pragma clang diagnostic pop +#define INTEGER_PACK_MSWORD_FIRST 0x01 +#define INTEGER_PACK_LSWORD_FIRST 0x02 +#define INTEGER_PACK_MSBYTE_FIRST 0x10 +#define INTEGER_PACK_LSBYTE_FIRST 0x20 +#define INTEGER_PACK_NATIVE_BYTE_ORDER 0x40 +#define INTEGER_PACK_2COMP 0x80 +#define INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION 0x400 +#define INTEGER_PACK_FORCE_BIGNUM 0x100 +#define INTEGER_PACK_NEGATIVE 0x200 +#define INTEGER_PACK_LITTLE_ENDIAN (INTEGER_PACK_LSWORD_FIRST | INTEGER_PACK_LSBYTE_FIRST) +#define INTEGER_PACK_BIG_ENDIAN (INTEGER_PACK_MSWORD_FIRST | INTEGER_PACK_MSBYTE_FIRST) +#pragma GCC visibility pop +#define RBIMPL_INTERN_COMPAR_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_COMPLEX_H +#pragma GCC visibility push(default) +#define rb_complex_raw1(x) rb_complex_raw((x), INT2FIX(0)) +#define rb_complex_raw2(x,y) rb_complex_raw((x), (y)) +#define rb_complex_new1(x) rb_complex_new((x), INT2FIX(0)) +#define rb_complex_new2(x,y) rb_complex_new((x), (y)) +#define rb_complex_add rb_complex_plus +#define rb_complex_sub rb_complex_minus +#define rb_complex_nagate rb_complex_uminus +#define rb_Complex1(x) rb_Complex((x), INT2FIX(0)) +#define rb_Complex2(x,y) rb_Complex((x), (y)) +#pragma GCC visibility pop +#define RBIMPL_INTERN_CONT_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_DIR_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_ENUM_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_ENUMERATOR_H +#define RBIMPL_INTERN_EVAL_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define SIZED_ENUMERATOR(obj,argc,argv,size_fn) rb_enumeratorize_with_size((obj), ID2SYM(rb_frame_this_func()), (argc), (argv), (size_fn)) +#define SIZED_ENUMERATOR_KW(obj,argc,argv,size_fn,kw_splat) rb_enumeratorize_with_size_kw((obj), ID2SYM(rb_frame_this_func()), (argc), (argv), (size_fn), (kw_splat)) +#define RETURN_SIZED_ENUMERATOR(obj,argc,argv,size_fn) do { if (!rb_block_given_p()) return SIZED_ENUMERATOR(obj, argc, argv, size_fn); } while (0) +#define RETURN_SIZED_ENUMERATOR_KW(obj,argc,argv,size_fn,kw_splat) do { if (!rb_block_given_p()) return SIZED_ENUMERATOR_KW(obj, argc, argv, size_fn, kw_splat); } while (0) +#define RETURN_ENUMERATOR(obj,argc,argv) RETURN_SIZED_ENUMERATOR(obj, argc, argv, 0) +#define RETURN_ENUMERATOR_KW(obj,argc,argv,kw_splat) RETURN_SIZED_ENUMERATOR_KW(obj, argc, argv, 0, kw_splat) +#define RBIMPL_INTERN_FILE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_GC_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_IO_H +#pragma GCC visibility push(default) +#define rb_defout rb_stdout +#define RB_RESERVED_FD_P(fd) rb_reserved_fd_p(fd) +#pragma GCC visibility pop +#define RBIMPL_INTERN_LOAD_H +#pragma GCC visibility push(default) +#define RB_EXT_RACTOR_SAFE(f) rb_ext_ractor_safe(f) +#define HAVE_RB_EXT_RACTOR_SAFE 1 +#pragma GCC visibility pop +#define RBIMPL_INTERN_MARSHAL_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_NUMERIC_H +#define RB_NUM_COERCE_FUNCS_NEED_OPID 1 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_OBJECT_H +#pragma GCC visibility push(default) +#define RB_OBJ_INIT_COPY(obj,orig) ((obj) != (orig) && (rb_obj_init_copy((obj), (orig)), 1)) +#define OBJ_INIT_COPY(obj,orig) RB_OBJ_INIT_COPY(obj, orig) +#pragma GCC visibility pop +#define RBIMPL_INTERN_PARSE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_PROCESS_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_RANDOM_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_RANGE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_RATIONAL_H +#pragma GCC visibility push(default) +#define rb_rational_raw1(x) rb_rational_raw((x), INT2FIX(1)) +#define rb_rational_raw2(x,y) rb_rational_raw((x), (y)) +#define rb_rational_new1(x) rb_rational_new((x), INT2FIX(1)) +#define rb_rational_new2(x,y) rb_rational_new((x), (y)) +#define rb_Rational1(x) rb_Rational((x), INT2FIX(1)) +#define rb_Rational2(x,y) rb_Rational((x), (y)) +#pragma GCC visibility pop +#define RBIMPL_INTERN_RE_H +#pragma GCC visibility push(default) +#define rb_memcmp memcmp +#define HAVE_RB_REG_NEW_STR 1 +#pragma GCC visibility pop +#define RBIMPL_INTERN_RUBY_H +#pragma GCC visibility push(default) +#define rb_argv rb_get_argv() +#pragma GCC visibility pop +#define RBIMPL_INTERN_SELECT_H +#define RBIMPL_INTERN_SELECT_LARGESIZE_H +#define rb_fd_ptr rb_fd_ptr +#define rb_fd_max rb_fd_max +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_SIGNAL_H +#pragma GCC visibility push(default) +#define posix_signal ruby_posix_signal +#pragma GCC visibility pop +#define RBIMPL_INTERN_SPRINTF_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_STRING_H +#pragma GCC visibility push(default) +#define rb_str_dup_frozen rb_str_new_frozen +#define rb_hash_uint32(h,i) st_hash_uint32((h), (i)) +#define rb_hash_uint(h,i) st_hash_uint((h), (i)) +#define rb_hash_end(h) st_hash_end(h) +#define rb_str_new(str,len) ((RBIMPL_CONSTANT_P(str) && RBIMPL_CONSTANT_P(len) ? rb_str_new_static : rb_str_new) ((str), (len))) +#define rb_str_new_cstr(str) ((RBIMPL_CONSTANT_P(str) ? rbimpl_str_new_cstr : rb_str_new_cstr) (str)) +#define rb_usascii_str_new(str,len) ((RBIMPL_CONSTANT_P(str) && RBIMPL_CONSTANT_P(len) ? rb_usascii_str_new_static : rb_usascii_str_new) ((str), (len))) +#define rb_utf8_str_new(str,len) ((RBIMPL_CONSTANT_P(str) && RBIMPL_CONSTANT_P(len) ? rb_utf8_str_new_static : rb_utf8_str_new) ((str), (len))) +#define rb_usascii_str_new_cstr(str) ((RBIMPL_CONSTANT_P(str) ? rbimpl_usascii_str_new_cstr : rb_usascii_str_new_cstr) (str)) +#define rb_utf8_str_new_cstr(str) ((RBIMPL_CONSTANT_P(str) ? rbimpl_utf8_str_new_cstr : rb_utf8_str_new_cstr) (str)) +#define rb_external_str_new_cstr(str) ((RBIMPL_CONSTANT_P(str) ? rbimpl_external_str_new_cstr : rb_external_str_new_cstr) (str)) +#define rb_locale_str_new_cstr(str) ((RBIMPL_CONSTANT_P(str) ? rbimpl_locale_str_new_cstr : rb_locale_str_new_cstr) (str)) +#define rb_str_buf_new_cstr(str) ((RBIMPL_CONSTANT_P(str) ? rbimpl_str_buf_new_cstr : rb_str_buf_new_cstr) (str)) +#define rb_str_cat_cstr(buf,str) ((RBIMPL_CONSTANT_P(str) ? rbimpl_str_cat_cstr : rb_str_cat_cstr) ((buf), (str))) +#define rb_exc_new_cstr(exc,str) ((RBIMPL_CONSTANT_P(str) ? rbimpl_exc_new_cstr : rb_exc_new_cstr) ((exc), (str))) +#define rb_str_new2 rb_str_new_cstr +#define rb_str_new3 rb_str_new_shared +#define rb_str_new4 rb_str_new_frozen +#define rb_str_new5 rb_str_new_with_class +#define rb_str_buf_new2 rb_str_buf_new_cstr +#define rb_usascii_str_new2 rb_usascii_str_new_cstr +#define rb_str_buf_cat rb_str_cat +#define rb_str_buf_cat2 rb_str_cat_cstr +#define rb_str_cat2 rb_str_cat_cstr +#define rb_strlen_lit(str) (sizeof(str "") - 1) +#define rb_str_new_lit(str) rb_str_new_static((str), rb_strlen_lit(str)) +#define rb_usascii_str_new_lit(str) rb_usascii_str_new_static((str), rb_strlen_lit(str)) +#define rb_utf8_str_new_lit(str) rb_utf8_str_new_static((str), rb_strlen_lit(str)) +#define rb_enc_str_new_lit(str,enc) rb_enc_str_new_static((str), rb_strlen_lit(str), (enc)) +#define rb_str_new_literal(str) rb_str_new_lit(str) +#define rb_usascii_str_new_literal(str) rb_usascii_str_new_lit(str) +#define rb_utf8_str_new_literal(str) rb_utf8_str_new_lit(str) +#define rb_enc_str_new_literal(str,enc) rb_enc_str_new_lit(str, enc) +#pragma GCC visibility pop +#define RBIMPL_INTERN_STRUCT_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_THREAD_H +#pragma GCC visibility push(default) +#define RUBY_UBF_IO RBIMPL_CAST((rb_unblock_function_t *)-1) +#define RUBY_UBF_PROCESS RBIMPL_CAST((rb_unblock_function_t *)-1) +#pragma GCC visibility pop +#define RBIMPL_INTERN_TIME_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RBIMPL_INTERN_VARIABLE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_VM 1 +#define HAVE_NATIVETHREAD +#define InitVM(ext) {void InitVM_##ext(void);InitVM_##ext();} +#define RUBY_SUBST_H 1 +#undef snprintf +#undef vsnprintf +#define snprintf ruby_snprintf +#define vsnprintf ruby_vsnprintf +#pragma GCC visibility pop +#define RUBY_VM_CORE_H +#define N_OR_RUBY_DEBUG(n) (((n) > 0) ? (n) : RUBY_DEBUG) +#define VM_CHECK_MODE N_OR_RUBY_DEBUG(0) +#define VMDEBUG 0 +#define _USER_SIGNAL_H +#define sigaddset(set,signo) (*(set) |= __sigbits(signo), 0) +#define sigdelset(set,signo) (*(set) &= ~__sigbits(signo), 0) +#define sigismember(set,signo) ((*(set) & __sigbits(signo)) != 0) +#define sigemptyset(set) (*(set) = 0, 0) +#define sigfillset(set) (*(set) = ~(sigset_t)0, 0) +#define RUBY_TOPLEVEL_ASSERT_H +#undef assert +#define assert RUBY_ASSERT_NDEBUG +#define VM_ASSERT(expr) ((void)0) +#define VM_UNREACHABLE(func) UNREACHABLE +#define RUBY_DEBUG_THREAD_SCHEDULE() +#define RUBY_ASSERT_MUTEX_OWNED(mutex) VM_ASSERT(rb_mutex_owned_p(mutex)) +#define RUBY_ASSERT_CRITICAL_SECTION_ENTER() +#define RUBY_ASSERT_CRITICAL_SECTION_LEAVE() +#define _BSD_SETJMP_H +#define _JBLEN ((9 * 2) + 3 + 16) +#define CCAN_LIST_H +#undef assert +#undef __assert +#define assert(e) ((void)0) +#define CCAN_STR_H +#define stringify(expr) ccan_stringify_1(expr) +#define ccan_stringify(expr) ccan_stringify_1(expr) +#define ccan_stringify_1(expr) #expr +#define CCAN_CONTAINER_OF_H +#define CCAN_CHECK_TYPE_H +#define ccan_check_type(expr,type) ((typeof(expr) *)0 != (type *)0) +#define ccan_check_types_match(expr1,expr2) ((typeof(expr1) *)0 != (typeof(expr2) *)0) +#define ccan_container_of(member_ptr,containing_type,member) ((containing_type *) ((char *)(member_ptr) - ccan_container_off(containing_type, member)) + ccan_check_types_match(*(member_ptr), ((containing_type *)0)->member)) +#define ccan_container_of_or_null(member_ptr,containing_type,member) ((containing_type *) ccan_container_of_or_null_(member_ptr, ccan_container_off(containing_type, member)) + ccan_check_types_match(*(member_ptr), ((containing_type *)0)->member)) +#define ccan_container_off(containing_type,member) offsetof(containing_type, member) +#define ccan_container_of_var(member_ptr,container_var,member) ccan_container_of(member_ptr, typeof(*container_var), member) +#define ccan_container_off_var(var,member) ccan_container_off(typeof(*var), member) +#define CCAN_LIST_LOC __FILE__ ":" ccan_stringify(__LINE__) +#define ccan_list_debug(h,loc) ((void)loc, h) +#define ccan_list_debug_node(n,loc) ((void)loc, n) +#define CCAN_LIST_HEAD_INIT(name) { { &(name).n, &(name).n } } +#define CCAN_LIST_HEAD(name) struct ccan_list_head name = CCAN_LIST_HEAD_INIT(name) +#define ccan_list_add_after(h,p,n) ccan_list_add_after_(h, p, n, CCAN_LIST_LOC) +#define ccan_list_add(h,n) ccan_list_add_(h, n, CCAN_LIST_LOC) +#define ccan_list_add_before(h,p,n) ccan_list_add_before_(h, p, n, CCAN_LIST_LOC) +#define ccan_list_add_tail(h,n) ccan_list_add_tail_(h, n, CCAN_LIST_LOC) +#define ccan_list_empty(h) ccan_list_empty_(h, CCAN_LIST_LOC) +#define ccan_list_empty_nodebug(h) ccan_list_empty(h) +#define ccan_list_del(n) ccan_list_del_(n, CCAN_LIST_LOC) +#define ccan_list_del_init(n) ccan_list_del_init_(n, CCAN_LIST_LOC) +#define ccan_list_swap(o,n) ccan_list_swap_(o, n, CCAN_LIST_LOC) +#define ccan_list_entry(n,type,member) ccan_container_of(n, type, member) +#define ccan_list_top(h,type,member) ((type *)ccan_list_top_((h), ccan_list_off_(type, member))) +#define ccan_list_pop(h,type,member) ((type *)ccan_list_pop_((h), ccan_list_off_(type, member))) +#define ccan_list_tail(h,type,member) ((type *)ccan_list_tail_((h), ccan_list_off_(type, member))) +#define ccan_list_for_each(h,i,member) ccan_list_for_each_off(h, i, ccan_list_off_var_(i, member)) +#define ccan_list_for_each_rev(h,i,member) ccan_list_for_each_rev_off(h, i, ccan_list_off_var_(i, member)) +#define ccan_list_for_each_rev_safe(h,i,nxt,member) ccan_list_for_each_rev_safe_off(h, i, nxt, ccan_list_off_var_(i, member)) +#define ccan_list_for_each_safe(h,i,nxt,member) ccan_list_for_each_safe_off(h, i, nxt, ccan_list_off_var_(i, member)) +#define ccan_list_next(h,i,member) ((ccan_list_typeof(i))ccan_list_entry_or_null(ccan_list_debug(h, __FILE__ ":" ccan_stringify(__LINE__)), (i)->member.next, ccan_list_off_var_((i), member))) +#define ccan_list_prev(h,i,member) ((ccan_list_typeof(i))ccan_list_entry_or_null(ccan_list_debug(h, __FILE__ ":" ccan_stringify(__LINE__)), (i)->member.prev, ccan_list_off_var_((i), member))) +#define ccan_list_append_list(t,f) ccan_list_append_list_(t, f, __FILE__ ":" ccan_stringify(__LINE__)) +#define ccan_list_prepend_list(t,f) ccan_list_prepend_list_(t, f, CCAN_LIST_LOC) +#define ccan_list_for_each_off_dir_(h,i,off,dir) for (i = ccan_list_node_to_off_(ccan_list_debug(h, CCAN_LIST_LOC)->n.dir, (off)); ccan_list_node_from_off_((void *)i, (off)) != &(h)->n; i = ccan_list_node_to_off_(ccan_list_node_from_off_((void *)i, (off))->dir, (off))) +#define ccan_list_for_each_safe_off_dir_(h,i,nxt,off,dir) for (i = ccan_list_node_to_off_(ccan_list_debug(h, CCAN_LIST_LOC)->n.dir, (off)), nxt = ccan_list_node_to_off_(ccan_list_node_from_off_(i, (off))->dir, (off)); ccan_list_node_from_off_(i, (off)) != &(h)->n; i = nxt, nxt = ccan_list_node_to_off_(ccan_list_node_from_off_(i, (off))->dir, (off))) +#define ccan_list_for_each_off(h,i,off) ccan_list_for_each_off_dir_((h),(i),(off),next) +#define ccan_list_for_each_rev_off(h,i,off) ccan_list_for_each_off_dir_((h),(i),(off),prev) +#define ccan_list_for_each_safe_off(h,i,nxt,off) ccan_list_for_each_safe_off_dir_((h),(i),(nxt),(off),next) +#define ccan_list_for_each_rev_safe_off(h,i,nxt,off) ccan_list_for_each_safe_off_dir_((h),(i),(nxt),(off),prev) +#define ccan_list_entry_off(n,type,off) ((type *)ccan_list_node_from_off_((n), (off))) +#define ccan_list_head_off(h,type,off) ((type *)ccan_list_head_off((h), (off))) +#define ccan_list_tail_off(h,type,off) ((type *)ccan_list_tail_((h), (off))) +#define ccan_list_add_off(h,n,off) ccan_list_add((h), ccan_list_node_from_off_((n), (off))) +#define ccan_list_del_off(n,off) ccan_list_del(ccan_list_node_from_off_((n), (off))) +#define ccan_list_del_from_off(h,n,off) ccan_list_del_from(h, ccan_list_node_from_off_((n), (off))) +#define ccan_list_off_(type,member) (ccan_container_off(type, member) + ccan_check_type(((type *)0)->member, struct ccan_list_node)) +#define ccan_list_off_var_(var,member) (ccan_container_off_var(var, member) + ccan_check_type(var->member, struct ccan_list_node)) +#define ccan_list_typeof(var) typeof(var) +#define RUBY_ID_H +#define ID_STATIC_SYM RUBY_ID_STATIC_SYM +#define ID_SCOPE_SHIFT RUBY_ID_SCOPE_SHIFT +#define ID_SCOPE_MASK RUBY_ID_SCOPE_MASK +#define ID_LOCAL RUBY_ID_LOCAL +#define ID_INSTANCE RUBY_ID_INSTANCE +#define ID_GLOBAL RUBY_ID_GLOBAL +#define ID_ATTRSET RUBY_ID_ATTRSET +#define ID_CONST RUBY_ID_CONST +#define ID_CLASS RUBY_ID_CLASS +#define ID_JUNK RUBY_ID_JUNK +#define ID_INTERNAL RUBY_ID_INTERNAL +#define symIFUNC ID2SYM(idIFUNC) +#define symCFUNC ID2SYM(idCFUNC) +#define RUBY_TOKEN_DOT2 128 +#define RUBY_TOKEN_DOT3 129 +#define RUBY_TOKEN_BDOT2 130 +#define RUBY_TOKEN_BDOT3 131 +#define RUBY_TOKEN_UPLUS 132 +#define RUBY_TOKEN_UMINUS 133 +#define RUBY_TOKEN_POW 134 +#define RUBY_TOKEN_CMP 135 +#define RUBY_TOKEN_LSHFT 136 +#define RUBY_TOKEN_RSHFT 137 +#define RUBY_TOKEN_LEQ 138 +#define RUBY_TOKEN_GEQ 139 +#define RUBY_TOKEN_EQ 140 +#define RUBY_TOKEN_EQQ 141 +#define RUBY_TOKEN_NEQ 142 +#define RUBY_TOKEN_MATCH 143 +#define RUBY_TOKEN_NMATCH 144 +#define RUBY_TOKEN_AREF 145 +#define RUBY_TOKEN_ASET 146 +#define RUBY_TOKEN_COLON2 147 +#define RUBY_TOKEN_ANDOP 148 +#define RUBY_TOKEN_OROP 149 +#define RUBY_TOKEN_ANDDOT 150 +#define RUBY_TOKEN(t) RUBY_TOKEN_##t +#define RUBY_TOKEN2ID_TYPE(tok,type) ((tok<mem) +#define RB_OBJ_WRITE(a,slot,b) rb_obj_write((VALUE)(a), UNALIGNED_MEMBER_ACCESS((VALUE *)(slot)), (VALUE)(b), __FILE__, __LINE__) +#define SIZE_POOL_COUNT 5 +#define RCLASS_EXT_EMBEDDED (SIZE_POOL_COUNT > 1) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define SIZED_REALLOC_N(x,y,z,w) REALLOC_N(x, y, z) +#define ruby_sized_xrealloc ruby_sized_xrealloc_inlined +#define ruby_sized_xrealloc2 ruby_sized_xrealloc2_inlined +#define ruby_sized_xfree ruby_sized_xfree_inlined +#define IMEMO_DEBUG 0 +#define IMEMO_MASK 0x0f +#define IMEMO_FL_USHIFT (FL_USHIFT + 4) +#define IMEMO_FL_USER0 FL_USER4 +#define IMEMO_FL_USER1 FL_USER5 +#define IMEMO_FL_USER2 FL_USER6 +#define IMEMO_FL_USER3 FL_USER7 +#define IMEMO_FL_USER4 FL_USER8 +#define IMEMO_FL_USER5 FL_USER9 +#define THROW_DATA_CONSUMED IMEMO_FL_USER0 +#define THROW_DATA_P(err) imemo_throw_data_p((VALUE)err) +#define MEMO_CAST(m) ((struct MEMO *)(m)) +#define MEMO_NEW(a,b,c) ((struct MEMO *)rb_imemo_new(imemo_memo, (VALUE)(a), (VALUE)(b), (VALUE)(c), 0)) +#define MEMO_FOR(type,value) ((type *)RARRAY_PTR(value)) +#define NEW_MEMO_FOR(type,value) ((value) = rb_ary_hidden_new_fill(type_roomof(type, VALUE)), MEMO_FOR(type, value)) +#define NEW_PARTIAL_MEMO_FOR(type,value,member) ((value) = rb_ary_hidden_new_fill(type_roomof(type, VALUE)), rb_ary_set_len((value), offsetof(type, member) / sizeof(VALUE)), MEMO_FOR(type, value)) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define IMEMO_TYPE_P(v,t) imemo_type_p((VALUE)v, t) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define END_OF_ENUMERATION(key) +#define METHOD_ENTRY_VISI(me) (rb_method_visibility_t)(((me)->flags & (IMEMO_FL_USER0 | IMEMO_FL_USER1)) >> (IMEMO_FL_USHIFT+0)) +#define METHOD_ENTRY_BASIC(me) (int) (((me)->flags & (IMEMO_FL_USER2 )) >> (IMEMO_FL_USHIFT+2)) +#define METHOD_ENTRY_COMPLEMENTED(me) ((me)->flags & IMEMO_FL_USER3) +#define METHOD_ENTRY_COMPLEMENTED_SET(me) ((me)->flags |= IMEMO_FL_USER3) +#define METHOD_ENTRY_CACHED(me) ((me)->flags & IMEMO_FL_USER4) +#define METHOD_ENTRY_CACHED_SET(me) ((me)->flags |= IMEMO_FL_USER4) +#define METHOD_ENTRY_INVALIDATED(me) ((me)->flags & IMEMO_FL_USER5) +#define METHOD_ENTRY_INVALIDATED_SET(me) ((me)->flags |= IMEMO_FL_USER5) +#define VM_METHOD_TYPE_MINIMUM_BITS 4 +#define rb_iseq_t rb_iseq_t +#define UNDEFINED_METHOD_ENTRY_P(me) (!(me) || !(me)->def || (me)->def->type == VM_METHOD_TYPE_UNDEF) +#define UNDEFINED_REFINED_METHOD_P(def) ((def)->type == VM_METHOD_TYPE_REFINED && UNDEFINED_METHOD_ENTRY_P((def)->body.refined.orig_me)) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_NODE_H 1 +#define RNODE(obj) ((struct RNode *)(obj)) +#define NODE_FL_NEWLINE (((VALUE)1)<<7) +#define NODE_TYPESHIFT 8 +#define NODE_TYPEMASK (((VALUE)0x7f)<flags & NODE_TYPEMASK)>>NODE_TYPESHIFT)) +#define nd_set_type(n,t) rb_node_set_type(n, t) +#define nd_init_type(n,t) (n)->flags=(((n)->flags&~NODE_TYPEMASK)|((((unsigned long)(t))<flags)>>NODE_LSHIFT) +#define nd_set_line(n,l) (n)->flags=(((n)->flags&~((VALUE)(-1)<nd_loc.beg_pos.column)) +#define nd_set_first_column(n,v) ((n)->nd_loc.beg_pos.column = (v)) +#define nd_first_lineno(n) ((int)((n)->nd_loc.beg_pos.lineno)) +#define nd_set_first_lineno(n,v) ((n)->nd_loc.beg_pos.lineno = (v)) +#define nd_first_loc(n) ((n)->nd_loc.beg_pos) +#define nd_set_first_loc(n,v) (nd_first_loc(n) = (v)) +#define nd_last_column(n) ((int)((n)->nd_loc.end_pos.column)) +#define nd_set_last_column(n,v) ((n)->nd_loc.end_pos.column = (v)) +#define nd_last_lineno(n) ((int)((n)->nd_loc.end_pos.lineno)) +#define nd_set_last_lineno(n,v) ((n)->nd_loc.end_pos.lineno = (v)) +#define nd_last_loc(n) ((n)->nd_loc.end_pos) +#define nd_set_last_loc(n,v) (nd_last_loc(n) = (v)) +#define nd_node_id(n) ((n)->node_id) +#define nd_set_node_id(n,id) ((n)->node_id = (id)) +#define nd_head u1.node +#define nd_alen u2.argc +#define nd_next u3.node +#define nd_cond u1.node +#define nd_body u2.node +#define nd_else u3.node +#define nd_resq u2.node +#define nd_ensr u3.node +#define nd_1st u1.node +#define nd_2nd u2.node +#define nd_stts u1.node +#define nd_entry u3.id +#define nd_vid u1.id +#define nd_var u1.node +#define nd_iter u3.node +#define nd_value u2.node +#define nd_aid u3.id +#define nd_lit u1.value +#define nd_recv u1.node +#define nd_mid u2.id +#define nd_args u3.node +#define nd_ainfo u3.args +#define nd_defn u3.node +#define nd_cpath u1.node +#define nd_super u3.node +#define nd_beg u1.node +#define nd_end u2.node +#define nd_state u3.state +#define nd_nth u2.argc +#define nd_alias u1.id +#define nd_orig u2.id +#define nd_undef u2.node +#define nd_brace u2.argc +#define nd_pconst u1.node +#define nd_pkwargs u2.node +#define nd_pkwrestarg u3.node +#define nd_apinfo u3.apinfo +#define nd_fpinfo u3.fpinfo +#define nd_tbl u1.tbl +#define nd_pid u1.id +#define nd_plen u2.argc +#define nd_cflag u2.id +#define nd_cval u3.value +#define nd_rval u2.value +#define nd_tag u1.id +#define NEW_NODE(t,a0,a1,a2,loc) rb_node_newnode((t),(VALUE)(a0),(VALUE)(a1),(VALUE)(a2),loc) +#define NEW_NODE_WITH_LOCALS(t,a1,a2,loc) node_newnode_with_locals(p, (t),(VALUE)(a1),(VALUE)(a2),loc) +#define NEW_DEFN(i,a,d,loc) NEW_NODE(NODE_DEFN,0,i,NEW_SCOPE(a,d,loc),loc) +#define NEW_DEFS(r,i,a,d,loc) NEW_NODE(NODE_DEFS,r,i,NEW_SCOPE(a,d,loc),loc) +#define NEW_SCOPE(a,b,loc) NEW_NODE_WITH_LOCALS(NODE_SCOPE,b,a,loc) +#define NEW_BLOCK(a,loc) NEW_NODE(NODE_BLOCK,a,0,0,loc) +#define NEW_IF(c,t,e,loc) NEW_NODE(NODE_IF,c,t,e,loc) +#define NEW_UNLESS(c,t,e,loc) NEW_NODE(NODE_UNLESS,c,t,e,loc) +#define NEW_CASE(h,b,loc) NEW_NODE(NODE_CASE,h,b,0,loc) +#define NEW_CASE2(b,loc) NEW_NODE(NODE_CASE2,0,b,0,loc) +#define NEW_CASE3(h,b,loc) NEW_NODE(NODE_CASE3,h,b,0,loc) +#define NEW_WHEN(c,t,e,loc) NEW_NODE(NODE_WHEN,c,t,e,loc) +#define NEW_IN(c,t,e,loc) NEW_NODE(NODE_IN,c,t,e,loc) +#define NEW_WHILE(c,b,n,loc) NEW_NODE(NODE_WHILE,c,b,n,loc) +#define NEW_UNTIL(c,b,n,loc) NEW_NODE(NODE_UNTIL,c,b,n,loc) +#define NEW_FOR(i,b,loc) NEW_NODE(NODE_FOR,0,b,i,loc) +#define NEW_FOR_MASGN(v,loc) NEW_NODE(NODE_FOR_MASGN,v,0,0,loc) +#define NEW_ITER(a,b,loc) NEW_NODE(NODE_ITER,0,NEW_SCOPE(a,b,loc),0,loc) +#define NEW_LAMBDA(a,b,loc) NEW_NODE(NODE_LAMBDA,0,NEW_SCOPE(a,b,loc),0,loc) +#define NEW_BREAK(s,loc) NEW_NODE(NODE_BREAK,s,0,0,loc) +#define NEW_NEXT(s,loc) NEW_NODE(NODE_NEXT,s,0,0,loc) +#define NEW_REDO(loc) NEW_NODE(NODE_REDO,0,0,0,loc) +#define NEW_RETRY(loc) NEW_NODE(NODE_RETRY,0,0,0,loc) +#define NEW_BEGIN(b,loc) NEW_NODE(NODE_BEGIN,0,b,0,loc) +#define NEW_RESCUE(b,res,e,loc) NEW_NODE(NODE_RESCUE,b,res,e,loc) +#define NEW_RESBODY(a,ex,n,loc) NEW_NODE(NODE_RESBODY,n,ex,a,loc) +#define NEW_ENSURE(b,en,loc) NEW_NODE(NODE_ENSURE,b,0,en,loc) +#define NEW_RETURN(s,loc) NEW_NODE(NODE_RETURN,s,0,0,loc) +#define NEW_YIELD(a,loc) NEW_NODE(NODE_YIELD,a,0,0,loc) +#define NEW_LIST(a,loc) NEW_NODE(NODE_LIST,a,1,0,loc) +#define NEW_ZLIST(loc) NEW_NODE(NODE_ZLIST,0,0,0,loc) +#define NEW_HASH(a,loc) NEW_NODE(NODE_HASH,a,0,0,loc) +#define NEW_MASGN(l,r,loc) NEW_NODE(NODE_MASGN,l,0,r,loc) +#define NEW_GASGN(v,val,loc) NEW_NODE(NODE_GASGN,v,val,v,loc) +#define NEW_LASGN(v,val,loc) NEW_NODE(NODE_LASGN,v,val,0,loc) +#define NEW_DASGN(v,val,loc) NEW_NODE(NODE_DASGN,v,val,0,loc) +#define NEW_IASGN(v,val,loc) NEW_NODE(NODE_IASGN,v,val,0,loc) +#define NEW_CDECL(v,val,path,loc) NEW_NODE(NODE_CDECL,v,val,path,loc) +#define NEW_CVASGN(v,val,loc) NEW_NODE(NODE_CVASGN,v,val,0,loc) +#define NEW_OP_ASGN1(p,id,a,loc) NEW_NODE(NODE_OP_ASGN1,p,id,a,loc) +#define NEW_OP_ASGN2(r,t,i,o,val,loc) NEW_NODE(NODE_OP_ASGN2,r,val,NEW_OP_ASGN22(i,o,t,loc),loc) +#define NEW_OP_ASGN22(i,o,t,loc) NEW_NODE(NODE_OP_ASGN2,i,o,t,loc) +#define NEW_OP_ASGN_OR(i,val,loc) NEW_NODE(NODE_OP_ASGN_OR,i,val,0,loc) +#define NEW_OP_ASGN_AND(i,val,loc) NEW_NODE(NODE_OP_ASGN_AND,i,val,0,loc) +#define NEW_OP_CDECL(v,op,val,loc) NEW_NODE(NODE_OP_CDECL,v,val,op,loc) +#define NEW_GVAR(v,loc) NEW_NODE(NODE_GVAR,v,0,v,loc) +#define NEW_LVAR(v,loc) NEW_NODE(NODE_LVAR,v,0,0,loc) +#define NEW_DVAR(v,loc) NEW_NODE(NODE_DVAR,v,0,0,loc) +#define NEW_IVAR(v,loc) NEW_NODE(NODE_IVAR,v,0,0,loc) +#define NEW_CONST(v,loc) NEW_NODE(NODE_CONST,v,0,0,loc) +#define NEW_CVAR(v,loc) NEW_NODE(NODE_CVAR,v,0,0,loc) +#define NEW_NTH_REF(n,loc) NEW_NODE(NODE_NTH_REF,0,n,0,loc) +#define NEW_BACK_REF(n,loc) NEW_NODE(NODE_BACK_REF,0,n,0,loc) +#define NEW_MATCH(c,loc) NEW_NODE(NODE_MATCH,c,0,0,loc) +#define NEW_MATCH2(n1,n2,loc) NEW_NODE(NODE_MATCH2,n1,n2,0,loc) +#define NEW_MATCH3(r,n2,loc) NEW_NODE(NODE_MATCH3,r,n2,0,loc) +#define NEW_LIT(l,loc) NEW_NODE(NODE_LIT,l,0,0,loc) +#define NEW_STR(s,loc) NEW_NODE(NODE_STR,s,0,0,loc) +#define NEW_DSTR(s,loc) NEW_NODE(NODE_DSTR,s,1,0,loc) +#define NEW_XSTR(s,loc) NEW_NODE(NODE_XSTR,s,0,0,loc) +#define NEW_DXSTR(s,loc) NEW_NODE(NODE_DXSTR,s,0,0,loc) +#define NEW_DSYM(s,loc) NEW_NODE(NODE_DSYM,s,0,0,loc) +#define NEW_EVSTR(n,loc) NEW_NODE(NODE_EVSTR,0,(n),0,loc) +#define NEW_CALL(r,m,a,loc) NEW_NODE(NODE_CALL,r,m,a,loc) +#define NEW_OPCALL(r,m,a,loc) NEW_NODE(NODE_OPCALL,r,m,a,loc) +#define NEW_FCALL(m,a,loc) NEW_NODE(NODE_FCALL,0,m,a,loc) +#define NEW_VCALL(m,loc) NEW_NODE(NODE_VCALL,0,m,0,loc) +#define NEW_SUPER(a,loc) NEW_NODE(NODE_SUPER,0,0,a,loc) +#define NEW_ZSUPER(loc) NEW_NODE(NODE_ZSUPER,0,0,0,loc) +#define NEW_ARGS_AUX(r,b,loc) NEW_NODE(NODE_ARGS_AUX,r,b,0,loc) +#define NEW_OPT_ARG(i,v,loc) NEW_NODE(NODE_OPT_ARG,i,v,0,loc) +#define NEW_KW_ARG(i,v,loc) NEW_NODE(NODE_KW_ARG,i,v,0,loc) +#define NEW_POSTARG(i,v,loc) NEW_NODE(NODE_POSTARG,i,v,0,loc) +#define NEW_ARGSCAT(a,b,loc) NEW_NODE(NODE_ARGSCAT,a,b,0,loc) +#define NEW_ARGSPUSH(a,b,loc) NEW_NODE(NODE_ARGSPUSH,a,b,0,loc) +#define NEW_SPLAT(a,loc) NEW_NODE(NODE_SPLAT,a,0,0,loc) +#define NEW_BLOCK_PASS(b,loc) NEW_NODE(NODE_BLOCK_PASS,0,b,0,loc) +#define NEW_ALIAS(n,o,loc) NEW_NODE(NODE_ALIAS,n,o,0,loc) +#define NEW_VALIAS(n,o,loc) NEW_NODE(NODE_VALIAS,n,o,0,loc) +#define NEW_UNDEF(i,loc) NEW_NODE(NODE_UNDEF,0,i,0,loc) +#define NEW_CLASS(n,b,s,loc) NEW_NODE(NODE_CLASS,n,NEW_SCOPE(0,b,loc),(s),loc) +#define NEW_SCLASS(r,b,loc) NEW_NODE(NODE_SCLASS,r,NEW_SCOPE(0,b,loc),0,loc) +#define NEW_MODULE(n,b,loc) NEW_NODE(NODE_MODULE,n,NEW_SCOPE(0,b,loc),0,loc) +#define NEW_COLON2(c,i,loc) NEW_NODE(NODE_COLON2,c,i,0,loc) +#define NEW_COLON3(i,loc) NEW_NODE(NODE_COLON3,0,i,0,loc) +#define NEW_DOT2(b,e,loc) NEW_NODE(NODE_DOT2,b,e,0,loc) +#define NEW_DOT3(b,e,loc) NEW_NODE(NODE_DOT3,b,e,0,loc) +#define NEW_SELF(loc) NEW_NODE(NODE_SELF,0,0,1,loc) +#define NEW_NIL(loc) NEW_NODE(NODE_NIL,0,0,0,loc) +#define NEW_TRUE(loc) NEW_NODE(NODE_TRUE,0,0,0,loc) +#define NEW_FALSE(loc) NEW_NODE(NODE_FALSE,0,0,0,loc) +#define NEW_ERRINFO(loc) NEW_NODE(NODE_ERRINFO,0,0,0,loc) +#define NEW_DEFINED(e,loc) NEW_NODE(NODE_DEFINED,e,0,0,loc) +#define NEW_POSTEXE(b,loc) NEW_NODE(NODE_POSTEXE,0,b,0,loc) +#define NEW_ATTRASGN(r,m,a,loc) NEW_NODE(NODE_ATTRASGN,r,m,a,loc) +#define NEW_ERROR(loc) NEW_NODE(NODE_ERROR,0,0,0,loc) +#define NODE_SPECIAL_REQUIRED_KEYWORD ((NODE *)-1) +#define NODE_REQUIRED_KEYWORD_P(node) ((node)->nd_value == NODE_SPECIAL_REQUIRED_KEYWORD) +#define NODE_SPECIAL_NO_NAME_REST ((NODE *)-1) +#define NODE_NAMED_REST_P(node) ((node) != NODE_SPECIAL_NO_NAME_REST) +#define NODE_SPECIAL_EXCESSIVE_COMMA ((ID)1) +#define NODE_SPECIAL_NO_REST_KEYWORD ((NODE *)-1) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_ATOMIC_H +#define RUBY_ATOMIC_GENERIC_MACRO 1 +#define RUBY_ATOMIC_FETCH_ADD(var,val) rbimpl_atomic_fetch_add(&(var), (val)) +#define RUBY_ATOMIC_FETCH_SUB(var,val) rbimpl_atomic_fetch_sub(&(var), (val)) +#define RUBY_ATOMIC_OR(var,val) rbimpl_atomic_or(&(var), (val)) +#define RUBY_ATOMIC_EXCHANGE(var,val) rbimpl_atomic_exchange(&(var), (val)) +#define RUBY_ATOMIC_CAS(var,oldval,newval) rbimpl_atomic_cas(&(var), (oldval), (newval)) +#define RUBY_ATOMIC_SET(var,val) rbimpl_atomic_set(&(var), (val)) +#define RUBY_ATOMIC_ADD(var,val) rbimpl_atomic_add(&(var), (val)) +#define RUBY_ATOMIC_SUB(var,val) rbimpl_atomic_sub(&(var), (val)) +#define RUBY_ATOMIC_INC(var) rbimpl_atomic_inc(&(var)) +#define RUBY_ATOMIC_DEC(var) rbimpl_atomic_dec(&(var)) +#define RUBY_ATOMIC_SIZE_INC(var) rbimpl_atomic_size_inc(&(var)) +#define RUBY_ATOMIC_SIZE_DEC(var) rbimpl_atomic_size_dec(&(var)) +#define RUBY_ATOMIC_SIZE_EXCHANGE(var,val) rbimpl_atomic_size_exchange(&(var), (val)) +#define RUBY_ATOMIC_SIZE_CAS(var,oldval,newval) rbimpl_atomic_size_cas(&(var), (oldval), (newval)) +#define RUBY_ATOMIC_SIZE_ADD(var,val) rbimpl_atomic_size_add(&(var), (val)) +#define RUBY_ATOMIC_SIZE_SUB(var,val) rbimpl_atomic_size_sub(&(var), (val)) +#define RUBY_ATOMIC_PTR_EXCHANGE(var,val) RBIMPL_CAST(rbimpl_atomic_ptr_exchange((void **)&(var), (void *)val)) +#define RUBY_ATOMIC_PTR_CAS(var,oldval,newval) RBIMPL_CAST(rbimpl_atomic_ptr_cas((void **)&(var), (oldval), (newval))) +#define RUBY_ATOMIC_VALUE_EXCHANGE(var,val) rbimpl_atomic_value_exchange(&(var), (val)) +#define RUBY_ATOMIC_VALUE_CAS(var,oldval,newval) rbimpl_atomic_value_cas(&(var), (oldval), (newval)) +#define ATOMIC_ADD(var,val) RUBY_ATOMIC_ADD(var, val) +#define ATOMIC_CAS(var,oldval,newval) RUBY_ATOMIC_CAS(var, oldval, newval) +#define ATOMIC_DEC(var) RUBY_ATOMIC_DEC(var) +#define ATOMIC_EXCHANGE(var,val) RUBY_ATOMIC_EXCHANGE(var, val) +#define ATOMIC_FETCH_ADD(var,val) RUBY_ATOMIC_FETCH_ADD(var, val) +#define ATOMIC_FETCH_SUB(var,val) RUBY_ATOMIC_FETCH_SUB(var, val) +#define ATOMIC_INC(var) RUBY_ATOMIC_INC(var) +#define ATOMIC_OR(var,val) RUBY_ATOMIC_OR(var, val) +#define ATOMIC_PTR_CAS(var,oldval,newval) RUBY_ATOMIC_PTR_CAS(var, oldval, newval) +#define ATOMIC_PTR_EXCHANGE(var,val) RUBY_ATOMIC_PTR_EXCHANGE(var, val) +#define ATOMIC_SET(var,val) RUBY_ATOMIC_SET(var, val) +#define ATOMIC_SIZE_ADD(var,val) RUBY_ATOMIC_SIZE_ADD(var, val) +#define ATOMIC_SIZE_CAS(var,oldval,newval) RUBY_ATOMIC_SIZE_CAS(var, oldval, newval) +#define ATOMIC_SIZE_DEC(var) RUBY_ATOMIC_SIZE_DEC(var) +#define ATOMIC_SIZE_EXCHANGE(var,val) RUBY_ATOMIC_SIZE_EXCHANGE(var, val) +#define ATOMIC_SIZE_INC(var) RUBY_ATOMIC_SIZE_INC(var) +#define ATOMIC_SIZE_SUB(var,val) RUBY_ATOMIC_SIZE_SUB(var, val) +#define ATOMIC_SUB(var,val) RUBY_ATOMIC_SUB(var, val) +#define ATOMIC_VALUE_CAS(var,oldval,val) RUBY_ATOMIC_VALUE_CAS(var, oldval, val) +#define ATOMIC_VALUE_EXCHANGE(var,val) RUBY_ATOMIC_VALUE_EXCHANGE(var, val) +#define RUBY_VM_OPTS_H +#define OPT_TAILCALL_OPTIMIZATION 0 +#define OPT_PEEPHOLE_OPTIMIZATION 1 +#define OPT_SPECIALISED_INSTRUCTION 1 +#define OPT_INLINE_CONST_CACHE 1 +#define OPT_FROZEN_STRING_LITERAL 0 +#define OPT_DEBUG_FROZEN_STRING_LITERAL 0 +#define OPT_THREADED_CODE 0 +#define OPT_DIRECT_THREADED_CODE (OPT_THREADED_CODE == 0) +#define OPT_TOKEN_THREADED_CODE (OPT_THREADED_CODE == 1) +#define OPT_CALL_THREADED_CODE (OPT_THREADED_CODE == 2) +#define OPT_CHECKED_RUN 1 +#define OPT_INLINE_METHOD_CACHE 1 +#define OPT_GLOBAL_METHOD_CACHE 1 +#define OPT_BLOCKINLINING 0 +#define OPT_IC_FOR_IVAR 1 +#define OPT_OPERANDS_UNIFICATION 1 +#define OPT_INSTRUCTIONS_UNIFICATION 0 +#define OPT_UNIFY_ALL_COMBINATION 0 +#define OPT_STACK_CACHING 0 +#define OPT_SUPPORT_JOKE 0 +#define OPT_SUPPORT_CALL_C_FUNCTION 0 +#define VM_COLLECT_USAGE_DETAILS 0 +#define RUBY_SHAPE_H +#define SIZEOF_SHAPE_T 4 +#define SHAPE_IN_BASIC_FLAGS 1 +#define MAX_IVARS (attr_index_t)(-1) +#define SHAPE_ID_NUM_BITS 32 +#define SHAPE_MASK (((uintptr_t)1 << SHAPE_ID_NUM_BITS) - 1) +#define SHAPE_FLAG_MASK (((VALUE)-1) >> SHAPE_ID_NUM_BITS) +#define SHAPE_FLAG_SHIFT ((SIZEOF_VALUE * 8) - SHAPE_ID_NUM_BITS) +#define SHAPE_BITMAP_SIZE 16384 +#define SHAPE_MAX_VARIATIONS 8 +#define MAX_SHAPE_ID (SHAPE_MASK - 1) +#define INVALID_SHAPE_ID SHAPE_MASK +#define ROOT_SHAPE_ID 0x0 +#define SPECIAL_CONST_SHAPE_ID (SIZE_POOL_COUNT * 2) +#define OBJ_TOO_COMPLEX_SHAPE_ID (SPECIAL_CONST_SHAPE_ID + 1) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_THREAD_NATIVE_H 1 +#define _PTHREAD_H +#define _SCHED_H_ +#define _PTHREAD_IMPL_H_ +#pragma clang assume_nonnull begin +#define _PTHREAD_MUTEX_SIG_init 0x32AAABA7 +#define _PTHREAD_ERRORCHECK_MUTEX_SIG_init 0x32AAABA1 +#define _PTHREAD_RECURSIVE_MUTEX_SIG_init 0x32AAABA2 +#define _PTHREAD_FIRSTFIT_MUTEX_SIG_init 0x32AAABA3 +#define _PTHREAD_COND_SIG_init 0x3CB0B1BB +#define _PTHREAD_ONCE_SIG_init 0x30B1BCBA +#define _PTHREAD_RWLOCK_SIG_init 0x2DA8B3B4 +#define SCHED_OTHER 1 +#define SCHED_FIFO 4 +#define SCHED_RR 2 +#define __SCHED_PARAM_SIZE__ 4 +#pragma clang assume_nonnull end +#define _PTHREAD_QOS_H +#define _SYS_QOS_H +#define __QOS_ENUM(name,type,...) enum { __VA_ARGS__ }; typedef type name##_t +#define __QOS_CLASS_AVAILABLE(...) +#undef __QOS_CLASS_AVAILABLE +#define __QOS_CLASS_AVAILABLE __API_AVAILABLE +#undef __QOS_ENUM +#define QOS_MIN_RELATIVE_PRIORITY (-15) +#pragma clang assume_nonnull begin +#pragma clang assume_nonnull end +#define _MACH_PORT_T +#pragma clang assume_nonnull begin +#define pthread_cleanup_push(func,val) { struct __darwin_pthread_handler_rec __handler; pthread_t __self = pthread_self(); __handler.__routine = func; __handler.__arg = val; __handler.__next = __self->__cleanup_stack; __self->__cleanup_stack = &__handler; +#define pthread_cleanup_pop(execute) __self->__cleanup_stack = __handler.__next; if (execute) (__handler.__routine)(__handler.__arg); } +#define PTHREAD_CREATE_JOINABLE 1 +#define PTHREAD_CREATE_DETACHED 2 +#define PTHREAD_INHERIT_SCHED 1 +#define PTHREAD_EXPLICIT_SCHED 2 +#define PTHREAD_CANCEL_ENABLE 0x01 +#define PTHREAD_CANCEL_DISABLE 0x00 +#define PTHREAD_CANCEL_DEFERRED 0x02 +#define PTHREAD_CANCEL_ASYNCHRONOUS 0x00 +#define PTHREAD_CANCELED ((void *) 1) +#define PTHREAD_SCOPE_SYSTEM 1 +#define PTHREAD_SCOPE_PROCESS 2 +#define PTHREAD_PROCESS_SHARED 1 +#define PTHREAD_PROCESS_PRIVATE 2 +#define PTHREAD_PRIO_NONE 0 +#define PTHREAD_PRIO_INHERIT 1 +#define PTHREAD_PRIO_PROTECT 2 +#define PTHREAD_MUTEX_NORMAL 0 +#define PTHREAD_MUTEX_ERRORCHECK 1 +#define PTHREAD_MUTEX_RECURSIVE 2 +#define PTHREAD_MUTEX_DEFAULT PTHREAD_MUTEX_NORMAL +#define PTHREAD_MUTEX_POLICY_FAIRSHARE_NP 1 +#define PTHREAD_MUTEX_POLICY_FIRSTFIT_NP 3 +#define PTHREAD_RWLOCK_INITIALIZER {_PTHREAD_RWLOCK_SIG_init, {0}} +#define PTHREAD_MUTEX_INITIALIZER {_PTHREAD_MUTEX_SIG_init, {0}} +#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER {_PTHREAD_ERRORCHECK_MUTEX_SIG_init, {0}} +#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER {_PTHREAD_RECURSIVE_MUTEX_SIG_init, {0}} +#define _PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT defined(SWIFT_CLASS_EXTRA) && (!defined(SWIFT_SDK_OVERLAY_PTHREAD_EPOCH) || (SWIFT_SDK_OVERLAY_PTHREAD_EPOCH < 1)) +#define __PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC(msg) __attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" msg "\")"))) +#define PTHREAD_COND_INITIALIZER {_PTHREAD_COND_SIG_init, {0}} +#define PTHREAD_ONCE_INIT {_PTHREAD_ONCE_SIG_init, {0}} +#define PTHREAD_JIT_WRITE_ALLOW_CALLBACKS_NP(...) __attribute__((__used__, __section__("__DATA_CONST,__pth_jit_func"))) static const pthread_jit_write_callback_t __pthread_jit_write_callback_allowlist[] = { __VA_ARGS__, NULL } +#pragma clang assume_nonnull end +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define VM_INSN_INFO_TABLE_IMPL 2 +#define RUBY_NSIG NSIG +#define RUBY_SIGCHLD (SIGCHLD) +#define SIGCHLD_LOSSY (1) +#define WAITPID_USE_SIGCHLD (RUBY_SIGCHLD || SIGCHLD_LOSSY) +#define USE_SIGALTSTACK +#define RB_ALTSTACK_INIT(var,altstack) var = rb_register_sigaltstack(altstack) +#define RB_ALTSTACK_FREE(var) free(var) +#define RB_ALTSTACK(var) var +#define RUBY_THREAD_PTHREAD_H +#define RB_NATIVETHREAD_LOCK_INIT PTHREAD_MUTEX_INITIALIZER +#define RB_NATIVETHREAD_COND_INIT PTHREAD_COND_INITIALIZER +#undef except +#undef try +#undef leave +#undef finally +#define RB_THREAD_LOCAL_SPECIFIER _Thread_local +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_VM_THREAD_MODEL 2 +#define TAG_NONE RUBY_TAG_NONE +#define TAG_RETURN RUBY_TAG_RETURN +#define TAG_BREAK RUBY_TAG_BREAK +#define TAG_NEXT RUBY_TAG_NEXT +#define TAG_RETRY RUBY_TAG_RETRY +#define TAG_REDO RUBY_TAG_REDO +#define TAG_RAISE RUBY_TAG_RAISE +#define TAG_THROW RUBY_TAG_THROW +#define TAG_FATAL RUBY_TAG_FATAL +#define TAG_MASK RUBY_TAG_MASK +#define CoreDataFromValue(obj,type) (type*)DATA_PTR(obj) +#define GetCoreDataFromValue(obj,type,ptr) ((ptr) = CoreDataFromValue((obj), type)) +#define PATHOBJ_PATH 0 +#define PATHOBJ_REALPATH 1 +#define ISEQ_IS_SIZE(body) (body->ic_size + body->ivc_size + body->ise_size + body->icvarc_size) +#define ISEQ_IS_IC_ENTRY(body,idx) (body->is_entries[(idx) + body->ise_size + body->icvarc_size + body->ivc_size].ic_cache); +#define ISEQ_BODY(iseq) ((iseq)->body) +#define USE_LAZY_LOAD 0 +#define GetVMPtr(obj,ptr) GetCoreDataFromValue((obj), rb_vm_t, (ptr)) +#define VM_GLOBAL_CC_CACHE_TABLE_SIZE 1023 +#define RUBY_VM_SIZE_ALIGN 4096 +#define RUBY_VM_THREAD_VM_STACK_SIZE ( 128 * 1024 * sizeof(VALUE)) +#define RUBY_VM_THREAD_VM_STACK_SIZE_MIN ( 2 * 1024 * sizeof(VALUE)) +#define RUBY_VM_THREAD_MACHINE_STACK_SIZE ( 128 * 1024 * sizeof(VALUE)) +#define RUBY_VM_THREAD_MACHINE_STACK_SIZE_MIN ( 16 * 1024 * sizeof(VALUE)) +#define RUBY_VM_FIBER_VM_STACK_SIZE ( 16 * 1024 * sizeof(VALUE)) +#define RUBY_VM_FIBER_VM_STACK_SIZE_MIN ( 2 * 1024 * sizeof(VALUE)) +#define RUBY_VM_FIBER_MACHINE_STACK_SIZE ( 64 * 1024 * sizeof(VALUE)) +#define RUBY_VM_FIBER_MACHINE_STACK_SIZE_MIN ( 16 * 1024 * sizeof(VALUE)) +#define VM_DEBUG_BP_CHECK 0 +#define VM_DEBUG_VERIFY_METHOD_CACHE (VMDEBUG != 0) +#define rb_execution_context_t rb_execution_context_t +#define VM_CORE_H_EC_DEFINED 1 +#define VM_DEFINECLASS_TYPE(x) ((rb_vm_defineclass_type_t)(x) & VM_DEFINECLASS_TYPE_MASK) +#define VM_DEFINECLASS_FLAG_SCOPED 0x08 +#define VM_DEFINECLASS_FLAG_HAS_SUPERCLASS 0x10 +#define VM_DEFINECLASS_SCOPED_P(x) ((x) & VM_DEFINECLASS_FLAG_SCOPED) +#define VM_DEFINECLASS_HAS_SUPERCLASS_P(x) ((x) & VM_DEFINECLASS_FLAG_HAS_SUPERCLASS) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define GetProcPtr(obj,ptr) GetCoreDataFromValue((obj), rb_proc_t, (ptr)) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define GetBindingPtr(obj,ptr) GetCoreDataFromValue((obj), rb_binding_t, (ptr)) +#define VM_CHECKMATCH_TYPE_MASK 0x03 +#define VM_CHECKMATCH_ARRAY 0x04 +#define FUNC_FASTCALL(x) x +#define VM_TAGGED_PTR_SET(p,tag) ((VALUE)(p) | (tag)) +#define VM_TAGGED_PTR_REF(v,mask) ((void *)((v) & ~mask)) +#define GC_GUARDED_PTR(p) VM_TAGGED_PTR_SET((p), 0x01) +#define GC_GUARDED_PTR_REF(p) VM_TAGGED_PTR_REF((p), 0x03) +#define GC_GUARDED_PTR_P(p) (((VALUE)(p)) & 0x01) +#define VM_ENV_DATA_SIZE ( 3) +#define VM_ENV_DATA_INDEX_ME_CREF (-2) +#define VM_ENV_DATA_INDEX_SPECVAL (-1) +#define VM_ENV_DATA_INDEX_FLAGS ( 0) +#define VM_ENV_DATA_INDEX_ENV ( 1) +#define VM_ENV_INDEX_LAST_LVAR (-VM_ENV_DATA_SIZE) +#define RUBYVM_CFUNC_FRAME_P(cfp) (VM_FRAME_TYPE(cfp) == VM_FRAME_MAGIC_CFUNC) +#define VM_GUARDED_PREV_EP(ep) GC_GUARDED_PTR(ep) +#define VM_BLOCK_HANDLER_NONE 0 +#define RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp) ((cfp)+1) +#define RUBY_VM_NEXT_CONTROL_FRAME(cfp) ((cfp)-1) +#define RUBY_VM_VALID_CONTROL_FRAME_P(cfp,ecfp) ((void *)(ecfp) > (void *)(cfp)) +#define SDR() rb_vmdebug_stack_dump_raw(GET_EC(), GET_EC()->cfp) +#define SDR2(cfp) rb_vmdebug_stack_dump_raw(GET_EC(), (cfp)) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define rb_vm_register_special_exception(sp,e,m) rb_vm_register_special_exception_str(sp, e, rb_usascii_str_new_static((m), (long)rb_strlen_lit(m))) +#define sysstack_error GET_VM()->special_exceptions[ruby_error_sysstack] +#define CHECK_VM_STACK_OVERFLOW0(cfp,sp,margin) do { STATIC_ASSERT(sizeof_sp, sizeof(*(sp)) == sizeof(VALUE)); STATIC_ASSERT(sizeof_cfp, sizeof(*(cfp)) == sizeof(rb_control_frame_t)); const struct rb_control_frame_struct *bound = (void *)&(sp)[(margin)]; if (UNLIKELY((cfp) <= &bound[1])) { vm_stackoverflow(); } } while (0) +#define CHECK_VM_STACK_OVERFLOW(cfp,margin) CHECK_VM_STACK_OVERFLOW0((cfp), (cfp)->sp, (margin)) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define GET_VM() rb_current_vm() +#define GET_RACTOR() rb_current_ractor() +#define GET_THREAD() rb_current_thread() +#define GET_EC() rb_current_execution_context(true) +#define RUBY_VM_SET_TIMER_INTERRUPT(ec) ATOMIC_OR((ec)->interrupt_flag, TIMER_INTERRUPT_MASK) +#define RUBY_VM_SET_INTERRUPT(ec) ATOMIC_OR((ec)->interrupt_flag, PENDING_INTERRUPT_MASK) +#define RUBY_VM_SET_POSTPONED_JOB_INTERRUPT(ec) ATOMIC_OR((ec)->interrupt_flag, POSTPONED_JOB_INTERRUPT_MASK) +#define RUBY_VM_SET_TRAP_INTERRUPT(ec) ATOMIC_OR((ec)->interrupt_flag, TRAP_INTERRUPT_MASK) +#define RUBY_VM_SET_TERMINATE_INTERRUPT(ec) ATOMIC_OR((ec)->interrupt_flag, TERMINATE_INTERRUPT_MASK) +#define RUBY_VM_SET_VM_BARRIER_INTERRUPT(ec) ATOMIC_OR((ec)->interrupt_flag, VM_BARRIER_INTERRUPT_MASK) +#define RUBY_VM_INTERRUPTED(ec) ((ec)->interrupt_flag & ~(ec)->interrupt_mask & (PENDING_INTERRUPT_MASK|TRAP_INTERRUPT_MASK)) +#define RUBY_VM_CHECK_INTS(ec) rb_vm_check_ints(ec) +#define EXEC_EVENT_HOOK_ORIG(ec_,hooks_,flag_,self_,id_,called_id_,klass_,data_,pop_p_) do { const rb_event_flag_t flag_arg_ = (flag_); rb_hook_list_t *hooks_arg_ = (hooks_); if (UNLIKELY((hooks_arg_)->events & (flag_arg_))) { rb_exec_event_hook_orig(ec_, hooks_arg_, flag_arg_, self_, id_, called_id_, klass_, data_, pop_p_); } } while (0) +#define EXEC_EVENT_HOOK(ec_,flag_,self_,id_,called_id_,klass_,data_) EXEC_EVENT_HOOK_ORIG(ec_, rb_ec_ractor_hooks(ec_), flag_, self_, id_, called_id_, klass_, data_, 0) +#define EXEC_EVENT_HOOK_AND_POP_FRAME(ec_,flag_,self_,id_,called_id_,klass_,data_) EXEC_EVENT_HOOK_ORIG(ec_, rb_ec_ractor_hooks(ec_), flag_, self_, id_, called_id_, klass_, data_, 1) +#pragma GCC visibility push(default) +#define RUBY_EVENT_COVERAGE_LINE 0x010000 +#define RUBY_EVENT_COVERAGE_BRANCH 0x020000 +#pragma GCC visibility pop +#define PASS_PASSED_BLOCK_HANDLER_EC(ec) pass_passed_block_handler(ec) +#define PASS_PASSED_BLOCK_HANDLER() pass_passed_block_handler(GET_EC()) +#define ruby_setjmp(env) RUBY_SETJMP(env) +#define ruby_longjmp(env,val) RUBY_LONGJMP((env),(val)) +#define _SYS_ERRNO_H_ +#define errno (*__error()) +#define EPERM 1 +#define ENOENT 2 +#define ESRCH 3 +#define EINTR 4 +#define EIO 5 +#define ENXIO 6 +#define E2BIG 7 +#define ENOEXEC 8 +#define EBADF 9 +#define ECHILD 10 +#define EDEADLK 11 +#define ENOMEM 12 +#define EACCES 13 +#define EFAULT 14 +#define ENOTBLK 15 +#define EBUSY 16 +#define EEXIST 17 +#define EXDEV 18 +#define ENODEV 19 +#define ENOTDIR 20 +#define EISDIR 21 +#define EINVAL 22 +#define ENFILE 23 +#define EMFILE 24 +#define ENOTTY 25 +#define ETXTBSY 26 +#define EFBIG 27 +#define ENOSPC 28 +#define ESPIPE 29 +#define EROFS 30 +#define EMLINK 31 +#define EPIPE 32 +#define EDOM 33 +#define ERANGE 34 +#define EAGAIN 35 +#define EWOULDBLOCK EAGAIN +#define EINPROGRESS 36 +#define EALREADY 37 +#define ENOTSOCK 38 +#define EDESTADDRREQ 39 +#define EMSGSIZE 40 +#define EPROTOTYPE 41 +#define ENOPROTOOPT 42 +#define EPROTONOSUPPORT 43 +#define ESOCKTNOSUPPORT 44 +#define ENOTSUP 45 +#define EPFNOSUPPORT 46 +#define EAFNOSUPPORT 47 +#define EADDRINUSE 48 +#define EADDRNOTAVAIL 49 +#define ENETDOWN 50 +#define ENETUNREACH 51 +#define ENETRESET 52 +#define ECONNABORTED 53 +#define ECONNRESET 54 +#define ENOBUFS 55 +#define EISCONN 56 +#define ENOTCONN 57 +#define ESHUTDOWN 58 +#define ETOOMANYREFS 59 +#define ETIMEDOUT 60 +#define ECONNREFUSED 61 +#define ELOOP 62 +#define ENAMETOOLONG 63 +#define EHOSTDOWN 64 +#define EHOSTUNREACH 65 +#define ENOTEMPTY 66 +#define EPROCLIM 67 +#define EUSERS 68 +#define EDQUOT 69 +#define ESTALE 70 +#define EREMOTE 71 +#define EBADRPC 72 +#define ERPCMISMATCH 73 +#define EPROGUNAVAIL 74 +#define EPROGMISMATCH 75 +#define EPROCUNAVAIL 76 +#define ENOLCK 77 +#define ENOSYS 78 +#define EFTYPE 79 +#define EAUTH 80 +#define ENEEDAUTH 81 +#define EPWROFF 82 +#define EDEVERR 83 +#define EOVERFLOW 84 +#define EBADEXEC 85 +#define EBADARCH 86 +#define ESHLIBVERS 87 +#define EBADMACHO 88 +#define ECANCELED 89 +#define EIDRM 90 +#define ENOMSG 91 +#define EILSEQ 92 +#define ENOATTR 93 +#define EBADMSG 94 +#define EMULTIHOP 95 +#define ENODATA 96 +#define ENOLINK 97 +#define ENOSR 98 +#define ENOSTR 99 +#define EPROTO 100 +#define ETIME 101 +#define EOPNOTSUPP 102 +#define ENOPOLICY 103 +#define ENOTRECOVERABLE 104 +#define EOWNERDEAD 105 +#define EQFULL 106 +#define ELAST 106 +#define _SYS_PARAM_H_ +#define BSD 199506 +#define BSD4_3 1 +#define BSD4_4 1 +#define NeXTBSD 1995064 +#define NeXTBSD4_0 0 +#define MAXCOMLEN 16 +#define MAXINTERP 64 +#define MAXLOGNAME 255 +#define MAXUPRC CHILD_MAX +#define NCARGS ARG_MAX +#define NGROUPS NGROUPS_MAX +#define NOFILE 256 +#define NOGROUP 65535 +#define MAXHOSTNAMELEN 256 +#define MAXDOMNAMELEN 256 +#define _BSD_MACHINE_PARAM_H_ +#define _I386_PARAM_H_ +#define _I386__PARAM_H_ +#define __DARWIN_ALIGNBYTES (sizeof(__darwin_size_t) - 1) +#define __DARWIN_ALIGN(p) ((__darwin_size_t)((__darwin_size_t)(p) + __DARWIN_ALIGNBYTES) &~ __DARWIN_ALIGNBYTES) +#define __DARWIN_ALIGNBYTES32 (sizeof(__uint32_t) - 1) +#define __DARWIN_ALIGN32(p) ((__darwin_size_t)((__darwin_size_t)(p) + __DARWIN_ALIGNBYTES32) &~ __DARWIN_ALIGNBYTES32) +#define ALIGNBYTES __DARWIN_ALIGNBYTES +#define ALIGN(p) __DARWIN_ALIGN(p) +#define NBPG 4096 +#define PGOFSET (NBPG-1) +#define PGSHIFT 12 +#define DEV_BSIZE 512 +#define DEV_BSHIFT 9 +#define BLKDEV_IOSIZE 2048 +#define MAXPHYS (128 * 1024) +#define CLSIZE 1 +#define CLSIZELOG2 0 +#define MSIZESHIFT 8 +#define MSIZE (1 << MSIZESHIFT) +#define MCLSHIFT 11 +#define MCLBYTES (1 << MCLSHIFT) +#define MBIGCLSHIFT 12 +#define MBIGCLBYTES (1 << MBIGCLSHIFT) +#define M16KCLSHIFT 14 +#define M16KCLBYTES (1 << M16KCLSHIFT) +#define MCLOFSET (MCLBYTES - 1) +#define NMBCLUSTERS ((1024 * 1024) / MCLBYTES) +#define ctos(x) (x) +#define stoc(x) (x) +#define ctod(x) ((x)<<(PGSHIFT-DEV_BSHIFT)) +#define dtoc(x) ((x)>>(PGSHIFT-DEV_BSHIFT)) +#define dtob(x) ((x)<>PGSHIFT) +#define btodb(bytes,devBlockSize) ((unsigned)(bytes) / devBlockSize) +#define dbtob(db,devBlockSize) ((unsigned)(db) * devBlockSize) +#define bdbtofsb(bn) ((bn) / (BLKDEV_IOSIZE/DEV_BSIZE)) +#define STATUS_WORD(rpl,ipl) (((ipl) << 8) | (rpl)) +#define USERMODE(x) (((x) & 3) == 3) +#define BASEPRI(x) (((x) & (255 << 8)) == 0) +#define DELAY(n) { int N = (n); while (--N > 0); } +#define PSWP 0 +#define PVM 4 +#define PINOD 8 +#define PRIBIO 16 +#define PVFS 20 +#define PZERO 22 +#define PSOCK 24 +#define PWAIT 32 +#define PLOCK 36 +#define PPAUSE 40 +#define PUSER 50 +#define MAXPRI 127 +#define PRIMASK 0x0ff +#define PCATCH 0x100 +#define PTTYBLOCK 0x200 +#define PDROP 0x400 +#define PSPIN 0x800 +#define NBPW sizeof(int) +#define CMASK 022 +#define NODEV (dev_t)(-1) +#define CLBYTES (CLSIZE*NBPG) +#define CLOFSET (CLSIZE*NBPG-1) +#define claligned(x) ((((int)(x))&CLOFSET)==0) +#define CLOFF CLOFSET +#define CLSHIFT (PGSHIFT+CLSIZELOG2) +#define clbase(i) (i) +#define clrnd(i) (i) +#define CBLOCK 64 +#define CBQSIZE (CBLOCK/NBBY) +#define CBSIZE (CBLOCK - sizeof(struct cblock *) - CBQSIZE) +#define CROUND (CBLOCK - 1) +#define MAXBSIZE (256 * 4096) +#define MAXPHYSIO MAXPHYS +#define MAXFRAG 8 +#define MAXPHYSIO_WIRED (16 * 1024 * 1024) +#define MAXPATHLEN PATH_MAX +#define MAXSYMLINKS 32 +#define setbit(a,i) (((unsigned char *)(a))[(i)/NBBY] |= 1u<<((i)%NBBY)) +#define clrbit(a,i) (((unsigned char *)(a))[(i)/NBBY] &= ~(1u<<((i)%NBBY))) +#define isset(a,i) (((unsigned char *)(a))[(i)/NBBY] & (1u<<((i)%NBBY))) +#define isclr(a,i) ((((unsigned char *)(a))[(i)/NBBY] & (1u<<((i)%NBBY))) == 0) +#define roundup(x,y) ((((x) % (y)) == 0) ? (x) : ((x) + ((y) - ((x) % (y))))) +#define powerof2(x) ((((x)-1)&(x))==0) +#define MIN(a,b) (((a)<(b))?(a):(b)) +#define MAX(a,b) (((a)>(b))?(a):(b)) +#define FSHIFT 11 +#define FSCALE (1<tag; _tag.lock_rec = rb_ec_vm_lock_rec(_ec); +#define EC_POP_TAG() _ec->tag = _tag.prev; } while (0) +#define EC_TMPPOP_TAG() _ec->tag = _tag.prev +#define EC_REPUSH_TAG() (void)(_ec->tag = &_tag) +#define VAR_FROM_MEMORY(var) __extension__(*(__typeof__(var) volatile *)&(var)) +#define VAR_INITIALIZED(var) ((var) = VAR_FROM_MEMORY(var)) +#define VAR_NOCLOBBERED(var) volatile var +#define EC_EXEC_TAG() (ruby_setjmp(_tag.buf) ? rb_ec_tag_state(VAR_FROM_MEMORY(_ec)) : (EC_REPUSH_TAG(), 0)) +#define EC_JUMP_TAG(ec,st) rb_ec_tag_jump(ec, st) +#define INTERNAL_EXCEPTION_P(exc) FIXNUM_P(exc) +#define CREF_FL_PUSHED_BY_EVAL IMEMO_FL_USER1 +#define CREF_FL_OMOD_SHARED IMEMO_FL_USER2 +#define CREF_FL_SINGLETON IMEMO_FL_USER3 +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define rb_ec_raised_set(ec,f) ((ec)->raised_flag |= (f)) +#define rb_ec_raised_reset(ec,f) ((ec)->raised_flag &= ~(f)) +#define rb_ec_raised_p(ec,f) (((ec)->raised_flag & (f)) != 0) +#define rb_ec_raised_clear(ec) ((ec)->raised_flag = 0) +#define CharNext(p) rb_char_next(p) +#define RUBY_GC_H 1 +#define SET_MACHINE_STACK_END(p) __asm__ __volatile__ ("movq\t%%rsp, %0" : "=r" (*(p))) +#define RB_GC_SAVE_MACHINE_CONTEXT(th) do { FLUSH_REGISTER_WINDOWS; setjmp((th)->ec->machine.regs); SET_MACHINE_STACK_END(&(th)->ec->machine.stack_end); } while (0) +#define RUBY_MARK_FREE_DEBUG 0 +#define RUBY_MARK_ENTER(msg) +#define RUBY_MARK_LEAVE(msg) +#define RUBY_FREE_ENTER(msg) +#define RUBY_FREE_LEAVE(msg) +#define RUBY_GC_INFO if(0)printf +#define RUBY_MARK_MOVABLE_UNLESS_NULL(ptr) do { VALUE markobj = (ptr); if (RTEST(markobj)) {rb_gc_mark_movable(markobj);} } while (0) +#define RUBY_MARK_UNLESS_NULL(ptr) do { VALUE markobj = (ptr); if (RTEST(markobj)) {rb_gc_mark(markobj);} } while (0) +#define RUBY_FREE_UNLESS_NULL(ptr) if(ptr){ruby_xfree(ptr);(ptr)=NULL;} +#define STACK_UPPER(x,a,b) (b) +#define STACK_GROW_DIR_DETECTION +#define STACK_DIR_UPPER(a,b) STACK_UPPER(0, (a), (b)) +#define IS_STACK_DIR_UPPER() STACK_DIR_UPPER(1,0) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_COMPILE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_CONT_H +#define RUBY_ISEQ_H 1 +#define ISEQ_MAJOR_VERSION ((unsigned int)ruby_api_version[0]) +#define ISEQ_MINOR_VERSION ((unsigned int)ruby_api_version[1]) +#define ISEQ_MBITS_SIZE sizeof(iseq_bits_t) +#define ISEQ_MBITS_BITLENGTH (ISEQ_MBITS_SIZE * CHAR_BIT) +#define ISEQ_MBITS_SET(buf,i) (buf[(i) / ISEQ_MBITS_BITLENGTH] |= ((iseq_bits_t)1 << ((i) % ISEQ_MBITS_BITLENGTH))) +#define ISEQ_MBITS_SET_P(buf,i) ((buf[(i) / ISEQ_MBITS_BITLENGTH] >> ((i) % ISEQ_MBITS_BITLENGTH)) & 0x1) +#define ISEQ_MBITS_BUFLEN(size) roomof(size, ISEQ_MBITS_BITLENGTH) +#define USE_ISEQ_NODE_ID 1 +#define ISEQ_COVERAGE(iseq) ISEQ_BODY(iseq)->variable.coverage +#define ISEQ_COVERAGE_SET(iseq,cov) RB_OBJ_WRITE(iseq, &ISEQ_BODY(iseq)->variable.coverage, cov) +#define ISEQ_LINE_COVERAGE(iseq) RARRAY_AREF(ISEQ_COVERAGE(iseq), COVERAGE_INDEX_LINES) +#define ISEQ_BRANCH_COVERAGE(iseq) RARRAY_AREF(ISEQ_COVERAGE(iseq), COVERAGE_INDEX_BRANCHES) +#define ISEQ_PC2BRANCHINDEX(iseq) ISEQ_BODY(iseq)->variable.pc2branchindex +#define ISEQ_PC2BRANCHINDEX_SET(iseq,h) RB_OBJ_WRITE(iseq, &ISEQ_BODY(iseq)->variable.pc2branchindex, h) +#define ISEQ_FLIP_CNT(iseq) ISEQ_BODY(iseq)->variable.flip_count +#define ISEQ_TRACE_EVENTS (RUBY_EVENT_LINE | RUBY_EVENT_CLASS | RUBY_EVENT_END | RUBY_EVENT_CALL | RUBY_EVENT_RETURN| RUBY_EVENT_C_CALL| RUBY_EVENT_C_RETURN| RUBY_EVENT_B_CALL| RUBY_EVENT_B_RETURN| RUBY_EVENT_COVERAGE_LINE| RUBY_EVENT_COVERAGE_BRANCH) +#define ISEQ_NOT_LOADED_YET IMEMO_FL_USER1 +#define ISEQ_USE_COMPILE_DATA IMEMO_FL_USER2 +#define ISEQ_TRANSLATED IMEMO_FL_USER3 +#define ISEQ_EXECUTABLE_P(iseq) (FL_TEST_RAW(((VALUE)iseq), ISEQ_NOT_LOADED_YET | ISEQ_USE_COMPILE_DATA) == 0) +#pragma GCC visibility push(default) +#define INITIAL_ISEQ_COMPILE_DATA_STORAGE_BUFF_SIZE (512) +#pragma GCC visibility pop +#define INTERNAL_ERROR_H +#define INTERNAL_STRING_H +#define RUBY_ENCODING_H 1 +#define RUBY_INTERNAL_ENCODING_CODERANGE_H +#pragma GCC visibility push(default) +#define ENC_CODERANGE_MASK RUBY_ENC_CODERANGE_MASK +#define ENC_CODERANGE_UNKNOWN RUBY_ENC_CODERANGE_UNKNOWN +#define ENC_CODERANGE_7BIT RUBY_ENC_CODERANGE_7BIT +#define ENC_CODERANGE_VALID RUBY_ENC_CODERANGE_VALID +#define ENC_CODERANGE_BROKEN RUBY_ENC_CODERANGE_BROKEN +#define ENC_CODERANGE_CLEAN_P(cr) RB_ENC_CODERANGE_CLEAN_P(cr) +#define ENC_CODERANGE(obj) RB_ENC_CODERANGE(obj) +#define ENC_CODERANGE_ASCIIONLY(obj) RB_ENC_CODERANGE_ASCIIONLY(obj) +#define ENC_CODERANGE_SET(obj,cr) RB_ENC_CODERANGE_SET(obj,cr) +#define ENC_CODERANGE_CLEAR(obj) RB_ENC_CODERANGE_CLEAR(obj) +#define ENC_CODERANGE_AND(a,b) RB_ENC_CODERANGE_AND(a, b) +#define ENCODING_CODERANGE_SET(obj,encindex,cr) RB_ENCODING_CODERANGE_SET(obj, encindex, cr) +#define RB_ENC_CODERANGE RB_ENC_CODERANGE +#define RB_ENC_CODERANGE_AND RB_ENC_CODERANGE_AND +#define RB_ENC_CODERANGE_ASCIIONLY RB_ENC_CODERANGE_ASCIIONLY +#define RB_ENC_CODERANGE_CLEAN_P RB_ENC_CODERANGE_CLEAN_P +#define RB_ENC_CODERANGE_CLEAR RB_ENC_CODERANGE_CLEAR +#define RB_ENC_CODERANGE_SET RB_ENC_CODERANGE_SET +#pragma GCC visibility pop +#define RUBY_INTERNAL_ENCODING_CTYPE_H +#define ONIGMO_H +#define ONIGMO_VERSION_MAJOR 6 +#define ONIGMO_VERSION_MINOR 1 +#define ONIGMO_VERSION_TEENY 3 +#define ONIG_EXTERN RUBY_EXTERN +#pragma GCC visibility push(default) +#define UChar OnigUChar +#define ONIG_INFINITE_DISTANCE ~((OnigDistance )0) +#define OnigCodePointMaskWidth 3 +#define OnigCodePointMask ((1<flags & ONIGENC_FLAG_UNICODE) +#define ONIGENC_NAME(enc) ((enc)->name) +#define ONIGENC_MBC_CASE_FOLD(enc,flag,pp,end,buf) (enc)->mbc_case_fold(flag,(const OnigUChar** )pp,end,buf,enc) +#define ONIGENC_IS_ALLOWED_REVERSE_MATCH(enc,s,end) (enc)->is_allowed_reverse_match(s,end,enc) +#define ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc,start,s,end) (enc)->left_adjust_char_head(start, s, end, enc) +#define ONIGENC_APPLY_ALL_CASE_FOLD(enc,case_fold_flag,f,arg) (enc)->apply_all_case_fold(case_fold_flag,f,arg,enc) +#define ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc,case_fold_flag,p,end,acs) (enc)->get_case_fold_codes_by_str(case_fold_flag,p,end,acs,enc) +#define ONIGENC_STEP_BACK(enc,start,s,end,n) onigenc_step_back((enc),(start),(s),(end),(n)) +#define ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(n) (n) +#define ONIGENC_MBCLEN_CHARFOUND_P(r) (0 < (r)) +#define ONIGENC_MBCLEN_CHARFOUND_LEN(r) (r) +#define ONIGENC_CONSTRUCT_MBCLEN_INVALID() (-1) +#define ONIGENC_MBCLEN_INVALID_P(r) ((r) == -1) +#define ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(n) (-1-(n)) +#define ONIGENC_MBCLEN_NEEDMORE_P(r) ((r) < -1) +#define ONIGENC_MBCLEN_NEEDMORE_LEN(r) (-1-(r)) +#define ONIGENC_PRECISE_MBC_ENC_LEN(enc,p,e) (enc)->precise_mbc_enc_len(p,e,enc) +#define ONIGENC_MBC_ENC_LEN(enc,p,e) onigenc_mbclen(p,e,enc) +#define ONIGENC_MBC_MAXLEN(enc) ((enc)->max_enc_len) +#define ONIGENC_MBC_MAXLEN_DIST(enc) ONIGENC_MBC_MAXLEN(enc) +#define ONIGENC_MBC_MINLEN(enc) ((enc)->min_enc_len) +#define ONIGENC_IS_MBC_NEWLINE(enc,p,end) (enc)->is_mbc_newline((p),(end),enc) +#define ONIGENC_MBC_TO_CODE(enc,p,end) (enc)->mbc_to_code((p),(end),enc) +#define ONIGENC_CODE_TO_MBCLEN(enc,code) (enc)->code_to_mbclen(code,enc) +#define ONIGENC_CODE_TO_MBC(enc,code,buf) (enc)->code_to_mbc(code,buf,enc) +#define ONIGENC_PROPERTY_NAME_TO_CTYPE(enc,p,end) (enc)->property_name_to_ctype(enc,p,end) +#define ONIGENC_IS_CODE_CTYPE(enc,code,ctype) (enc)->is_code_ctype(code,ctype,enc) +#define ONIGENC_IS_CODE_NEWLINE(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_NEWLINE) +#define ONIGENC_IS_CODE_GRAPH(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_GRAPH) +#define ONIGENC_IS_CODE_PRINT(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PRINT) +#define ONIGENC_IS_CODE_ALNUM(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALNUM) +#define ONIGENC_IS_CODE_ALPHA(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALPHA) +#define ONIGENC_IS_CODE_LOWER(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_LOWER) +#define ONIGENC_IS_CODE_UPPER(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_UPPER) +#define ONIGENC_IS_CODE_CNTRL(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_CNTRL) +#define ONIGENC_IS_CODE_PUNCT(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PUNCT) +#define ONIGENC_IS_CODE_SPACE(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_SPACE) +#define ONIGENC_IS_CODE_BLANK(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_BLANK) +#define ONIGENC_IS_CODE_DIGIT(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_DIGIT) +#define ONIGENC_IS_CODE_XDIGIT(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_XDIGIT) +#define ONIGENC_IS_CODE_WORD(enc,code) ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_WORD) +#define ONIGENC_GET_CTYPE_CODE_RANGE(enc,ctype,sbout,ranges) (enc)->get_ctype_code_range(ctype,sbout,ranges,enc) +#define ONIG_NREGION 4 +#define ONIG_MAX_CAPTURE_GROUP_NUM 32767 +#define ONIG_MAX_BACKREF_NUM 1000 +#define ONIG_MAX_REPEAT_NUM 100000 +#define ONIG_MAX_MULTI_BYTE_RANGES_NUM 10000 +#define ONIG_MAX_ERROR_MESSAGE_LEN 90 +#define ONIG_OPTION_DEFAULT ONIG_OPTION_NONE +#define ONIG_OPTION_NONE 0U +#define ONIG_OPTION_IGNORECASE 1U +#define ONIG_OPTION_EXTEND (ONIG_OPTION_IGNORECASE << 1) +#define ONIG_OPTION_MULTILINE (ONIG_OPTION_EXTEND << 1) +#define ONIG_OPTION_DOTALL ONIG_OPTION_MULTILINE +#define ONIG_OPTION_SINGLELINE (ONIG_OPTION_MULTILINE << 1) +#define ONIG_OPTION_FIND_LONGEST (ONIG_OPTION_SINGLELINE << 1) +#define ONIG_OPTION_FIND_NOT_EMPTY (ONIG_OPTION_FIND_LONGEST << 1) +#define ONIG_OPTION_NEGATE_SINGLELINE (ONIG_OPTION_FIND_NOT_EMPTY << 1) +#define ONIG_OPTION_DONT_CAPTURE_GROUP (ONIG_OPTION_NEGATE_SINGLELINE << 1) +#define ONIG_OPTION_CAPTURE_GROUP (ONIG_OPTION_DONT_CAPTURE_GROUP << 1) +#define ONIG_OPTION_NOTBOL (ONIG_OPTION_CAPTURE_GROUP << 1) +#define ONIG_OPTION_NOTEOL (ONIG_OPTION_NOTBOL << 1) +#define ONIG_OPTION_NOTBOS (ONIG_OPTION_NOTEOL << 1) +#define ONIG_OPTION_NOTEOS (ONIG_OPTION_NOTBOS << 1) +#define ONIG_OPTION_ASCII_RANGE (ONIG_OPTION_NOTEOS << 1) +#define ONIG_OPTION_POSIX_BRACKET_ALL_RANGE (ONIG_OPTION_ASCII_RANGE << 1) +#define ONIG_OPTION_WORD_BOUND_ALL_RANGE (ONIG_OPTION_POSIX_BRACKET_ALL_RANGE << 1) +#define ONIG_OPTION_NEWLINE_CRLF (ONIG_OPTION_WORD_BOUND_ALL_RANGE << 1) +#define ONIG_OPTION_MAXBIT ONIG_OPTION_NEWLINE_CRLF +#define ONIG_OPTION_ON(options,regopt) ((options) |= (regopt)) +#define ONIG_OPTION_OFF(options,regopt) ((options) &= ~(regopt)) +#define ONIG_IS_OPTION_ON(options,option) ((options) & (option)) +#define ONIG_SYNTAX_ASIS (&OnigSyntaxASIS) +#define ONIG_SYNTAX_POSIX_BASIC (&OnigSyntaxPosixBasic) +#define ONIG_SYNTAX_POSIX_EXTENDED (&OnigSyntaxPosixExtended) +#define ONIG_SYNTAX_EMACS (&OnigSyntaxEmacs) +#define ONIG_SYNTAX_GREP (&OnigSyntaxGrep) +#define ONIG_SYNTAX_GNU_REGEX (&OnigSyntaxGnuRegex) +#define ONIG_SYNTAX_JAVA (&OnigSyntaxJava) +#define ONIG_SYNTAX_PERL58 (&OnigSyntaxPerl58) +#define ONIG_SYNTAX_PERL58_NG (&OnigSyntaxPerl58_NG) +#define ONIG_SYNTAX_PERL (&OnigSyntaxPerl) +#define ONIG_SYNTAX_RUBY (&OnigSyntaxRuby) +#define ONIG_SYNTAX_PYTHON (&OnigSyntaxPython) +#define ONIG_SYNTAX_DEFAULT OnigDefaultSyntax +#define ONIG_SYN_OP_VARIABLE_META_CHARACTERS (1U<<0) +#define ONIG_SYN_OP_DOT_ANYCHAR (1U<<1) +#define ONIG_SYN_OP_ASTERISK_ZERO_INF (1U<<2) +#define ONIG_SYN_OP_ESC_ASTERISK_ZERO_INF (1U<<3) +#define ONIG_SYN_OP_PLUS_ONE_INF (1U<<4) +#define ONIG_SYN_OP_ESC_PLUS_ONE_INF (1U<<5) +#define ONIG_SYN_OP_QMARK_ZERO_ONE (1U<<6) +#define ONIG_SYN_OP_ESC_QMARK_ZERO_ONE (1U<<7) +#define ONIG_SYN_OP_BRACE_INTERVAL (1U<<8) +#define ONIG_SYN_OP_ESC_BRACE_INTERVAL (1U<<9) +#define ONIG_SYN_OP_VBAR_ALT (1U<<10) +#define ONIG_SYN_OP_ESC_VBAR_ALT (1U<<11) +#define ONIG_SYN_OP_LPAREN_SUBEXP (1U<<12) +#define ONIG_SYN_OP_ESC_LPAREN_SUBEXP (1U<<13) +#define ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR (1U<<14) +#define ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR (1U<<15) +#define ONIG_SYN_OP_DECIMAL_BACKREF (1U<<16) +#define ONIG_SYN_OP_BRACKET_CC (1U<<17) +#define ONIG_SYN_OP_ESC_W_WORD (1U<<18) +#define ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END (1U<<19) +#define ONIG_SYN_OP_ESC_B_WORD_BOUND (1U<<20) +#define ONIG_SYN_OP_ESC_S_WHITE_SPACE (1U<<21) +#define ONIG_SYN_OP_ESC_D_DIGIT (1U<<22) +#define ONIG_SYN_OP_LINE_ANCHOR (1U<<23) +#define ONIG_SYN_OP_POSIX_BRACKET (1U<<24) +#define ONIG_SYN_OP_QMARK_NON_GREEDY (1U<<25) +#define ONIG_SYN_OP_ESC_CONTROL_CHARS (1U<<26) +#define ONIG_SYN_OP_ESC_C_CONTROL (1U<<27) +#define ONIG_SYN_OP_ESC_OCTAL3 (1U<<28) +#define ONIG_SYN_OP_ESC_X_HEX2 (1U<<29) +#define ONIG_SYN_OP_ESC_X_BRACE_HEX8 (1U<<30) +#define ONIG_SYN_OP_ESC_O_BRACE_OCTAL (1U<<31) +#define ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE (1U<<0) +#define ONIG_SYN_OP2_QMARK_GROUP_EFFECT (1U<<1) +#define ONIG_SYN_OP2_OPTION_PERL (1U<<2) +#define ONIG_SYN_OP2_OPTION_RUBY (1U<<3) +#define ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT (1U<<4) +#define ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL (1U<<5) +#define ONIG_SYN_OP2_CCLASS_SET_OP (1U<<6) +#define ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP (1U<<7) +#define ONIG_SYN_OP2_ESC_K_NAMED_BACKREF (1U<<8) +#define ONIG_SYN_OP2_ESC_G_SUBEXP_CALL (1U<<9) +#define ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY (1U<<10) +#define ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL (1U<<11) +#define ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META (1U<<12) +#define ONIG_SYN_OP2_ESC_V_VTAB (1U<<13) +#define ONIG_SYN_OP2_ESC_U_HEX4 (1U<<14) +#define ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR (1U<<15) +#define ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY (1U<<16) +#define ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT (1U<<17) +#define ONIG_SYN_OP2_ESC_H_XDIGIT (1U<<19) +#define ONIG_SYN_OP2_INEFFECTIVE_ESCAPE (1U<<20) +#define ONIG_SYN_OP2_ESC_CAPITAL_R_LINEBREAK (1U<<21) +#define ONIG_SYN_OP2_ESC_CAPITAL_X_EXTENDED_GRAPHEME_CLUSTER (1U<<22) +#define ONIG_SYN_OP2_ESC_V_VERTICAL_WHITESPACE (1U<<23) +#define ONIG_SYN_OP2_ESC_H_HORIZONTAL_WHITESPACE (1U<<24) +#define ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP (1U<<25) +#define ONIG_SYN_OP2_ESC_G_BRACE_BACKREF (1U<<26) +#define ONIG_SYN_OP2_QMARK_SUBEXP_CALL (1U<<27) +#define ONIG_SYN_OP2_QMARK_VBAR_BRANCH_RESET (1U<<28) +#define ONIG_SYN_OP2_QMARK_LPAREN_CONDITION (1U<<29) +#define ONIG_SYN_OP2_QMARK_CAPITAL_P_NAMED_GROUP (1U<<30) +#define ONIG_SYN_OP2_QMARK_TILDE_ABSENT (1U<<31) +#define ONIG_SYN_CONTEXT_INDEP_ANCHORS (1U<<31) +#define ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS (1U<<0) +#define ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS (1U<<1) +#define ONIG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP (1U<<2) +#define ONIG_SYN_ALLOW_INVALID_INTERVAL (1U<<3) +#define ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV (1U<<4) +#define ONIG_SYN_STRICT_CHECK_BACKREF (1U<<5) +#define ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND (1U<<6) +#define ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP (1U<<7) +#define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME (1U<<8) +#define ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY (1U<<9) +#define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME_CALL (1U<<10) +#define ONIG_SYN_USE_LEFT_MOST_NAMED_GROUP (1U<<11) +#define ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC (1U<<20) +#define ONIG_SYN_BACKSLASH_ESCAPE_IN_CC (1U<<21) +#define ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC (1U<<22) +#define ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC (1U<<23) +#define ONIG_SYN_WARN_CC_OP_NOT_ESCAPED (1U<<24) +#define ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT (1U<<25) +#define ONIG_SYN_WARN_CC_DUP (1U<<26) +#define ONIG_META_CHAR_ESCAPE 0 +#define ONIG_META_CHAR_ANYCHAR 1 +#define ONIG_META_CHAR_ANYTIME 2 +#define ONIG_META_CHAR_ZERO_OR_ONE_TIME 3 +#define ONIG_META_CHAR_ONE_OR_MORE_TIME 4 +#define ONIG_META_CHAR_ANYCHAR_ANYTIME 5 +#define ONIG_INEFFECTIVE_META_CHAR 0 +#define ONIG_IS_PATTERN_ERROR(ecode) ((ecode) <= -100 && (ecode) > -1000) +#define ONIG_NORMAL 0 +#define ONIG_MISMATCH -1 +#define ONIG_NO_SUPPORT_CONFIG -2 +#define ONIGERR_MEMORY -5 +#define ONIGERR_TYPE_BUG -6 +#define ONIGERR_PARSER_BUG -11 +#define ONIGERR_STACK_BUG -12 +#define ONIGERR_UNDEFINED_BYTECODE -13 +#define ONIGERR_UNEXPECTED_BYTECODE -14 +#define ONIGERR_MATCH_STACK_LIMIT_OVER -15 +#define ONIGERR_PARSE_DEPTH_LIMIT_OVER -16 +#define ONIGERR_DEFAULT_ENCODING_IS_NOT_SET -21 +#define ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR -22 +#define ONIGERR_INVALID_ARGUMENT -30 +#define ONIGERR_END_PATTERN_AT_LEFT_BRACE -100 +#define ONIGERR_END_PATTERN_AT_LEFT_BRACKET -101 +#define ONIGERR_EMPTY_CHAR_CLASS -102 +#define ONIGERR_PREMATURE_END_OF_CHAR_CLASS -103 +#define ONIGERR_END_PATTERN_AT_ESCAPE -104 +#define ONIGERR_END_PATTERN_AT_META -105 +#define ONIGERR_END_PATTERN_AT_CONTROL -106 +#define ONIGERR_META_CODE_SYNTAX -108 +#define ONIGERR_CONTROL_CODE_SYNTAX -109 +#define ONIGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE -110 +#define ONIGERR_CHAR_CLASS_VALUE_AT_START_OF_RANGE -111 +#define ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS -112 +#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED -113 +#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID -114 +#define ONIGERR_NESTED_REPEAT_OPERATOR -115 +#define ONIGERR_UNMATCHED_CLOSE_PARENTHESIS -116 +#define ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS -117 +#define ONIGERR_END_PATTERN_IN_GROUP -118 +#define ONIGERR_UNDEFINED_GROUP_OPTION -119 +#define ONIGERR_INVALID_POSIX_BRACKET_TYPE -121 +#define ONIGERR_INVALID_LOOK_BEHIND_PATTERN -122 +#define ONIGERR_INVALID_REPEAT_RANGE_PATTERN -123 +#define ONIGERR_INVALID_CONDITION_PATTERN -124 +#define ONIGERR_TOO_BIG_NUMBER -200 +#define ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE -201 +#define ONIGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE -202 +#define ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS -203 +#define ONIGERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE -204 +#define ONIGERR_TOO_MANY_MULTI_BYTE_RANGES -205 +#define ONIGERR_TOO_SHORT_MULTI_BYTE_STRING -206 +#define ONIGERR_TOO_BIG_BACKREF_NUMBER -207 +#define ONIGERR_INVALID_BACKREF -208 +#define ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED -209 +#define ONIGERR_TOO_MANY_CAPTURE_GROUPS -210 +#define ONIGERR_TOO_SHORT_DIGITS -211 +#define ONIGERR_TOO_LONG_WIDE_CHAR_VALUE -212 +#define ONIGERR_EMPTY_GROUP_NAME -214 +#define ONIGERR_INVALID_GROUP_NAME -215 +#define ONIGERR_INVALID_CHAR_IN_GROUP_NAME -216 +#define ONIGERR_UNDEFINED_NAME_REFERENCE -217 +#define ONIGERR_UNDEFINED_GROUP_REFERENCE -218 +#define ONIGERR_MULTIPLEX_DEFINED_NAME -219 +#define ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL -220 +#define ONIGERR_NEVER_ENDING_RECURSION -221 +#define ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY -222 +#define ONIGERR_INVALID_CHAR_PROPERTY_NAME -223 +#define ONIGERR_INVALID_CODE_POINT_VALUE -400 +#define ONIGERR_INVALID_WIDE_CHAR_VALUE -400 +#define ONIGERR_TOO_BIG_WIDE_CHAR_VALUE -401 +#define ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION -402 +#define ONIGERR_INVALID_COMBINATION_OF_OPTIONS -403 +#define ONIG_MAX_CAPTURE_HISTORY_GROUP 31 +#define ONIG_IS_CAPTURE_HISTORY_GROUP(r,i) ((i) <= ONIG_MAX_CAPTURE_HISTORY_GROUP && (r)->list && (r)->list[i]) +#define ONIG_TRAVERSE_CALLBACK_AT_FIRST 1 +#define ONIG_TRAVERSE_CALLBACK_AT_LAST 2 +#define ONIG_TRAVERSE_CALLBACK_AT_BOTH ( ONIG_TRAVERSE_CALLBACK_AT_FIRST | ONIG_TRAVERSE_CALLBACK_AT_LAST ) +#define ONIG_REGION_NOTPOS -1 +#define ONIG_NULL_WARN onig_null_warn +#define ONIG_CHAR_TABLE_SIZE 256 +#pragma GCC visibility pop +#define RUBY_INTERNAL_ENCODING_ENCODING_H +#define ONIGURUMA_H +#define ONIGURUMA +#define ONIGURUMA_VERSION_MAJOR ONIGMO_VERSION_MAJOR +#define ONIGURUMA_VERSION_MINOR ONIGMO_VERSION_MINOR +#define ONIGURUMA_VERSION_TEENY ONIGMO_VERSION_TEENY +#pragma GCC visibility push(default) +#define ENCODING_INLINE_MAX RUBY_ENCODING_INLINE_MAX +#define ENCODING_SHIFT RUBY_ENCODING_SHIFT +#define ENCODING_MASK RUBY_ENCODING_MASK +#define ENCODING_SET_INLINED(obj,i) RB_ENCODING_SET_INLINED(obj,i) +#define ENCODING_SET(obj,i) RB_ENCODING_SET(obj,i) +#define ENCODING_GET_INLINED(obj) RB_ENCODING_GET_INLINED(obj) +#define ENCODING_GET(obj) RB_ENCODING_GET(obj) +#define ENCODING_IS_ASCII8BIT(obj) RB_ENCODING_IS_ASCII8BIT(obj) +#define ENCODING_MAXNAMELEN RUBY_ENCODING_MAXNAMELEN +#define MBCLEN_CHARFOUND_P(ret) ONIGENC_MBCLEN_CHARFOUND_P(ret) +#define MBCLEN_CHARFOUND_LEN(ret) ONIGENC_MBCLEN_CHARFOUND_LEN(ret) +#define MBCLEN_INVALID_P(ret) ONIGENC_MBCLEN_INVALID_P(ret) +#define MBCLEN_NEEDMORE_P(ret) ONIGENC_MBCLEN_NEEDMORE_P(ret) +#define MBCLEN_NEEDMORE_LEN(ret) ONIGENC_MBCLEN_NEEDMORE_LEN(ret) +#pragma GCC visibility pop +#define RB_ENCODING_GET RB_ENCODING_GET +#define RB_ENCODING_GET_INLINED RB_ENCODING_GET_INLINED +#define RB_ENCODING_IS_ASCII8BIT RB_ENCODING_IS_ASCII8BIT +#define RB_ENCODING_SET RB_ENCODING_SET +#define RB_ENCODING_SET_INLINED RB_ENCODING_SET_INLINED +#define rb_enc_asciicompat rb_enc_asciicompat +#define rb_enc_code_to_mbclen rb_enc_code_to_mbclen +#define rb_enc_codepoint rb_enc_codepoint +#define rb_enc_left_char_head rb_enc_left_char_head +#define rb_enc_mbc_to_codepoint rb_enc_mbc_to_codepoint +#define rb_enc_mbcput rb_enc_mbcput +#define rb_enc_mbmaxlen rb_enc_mbmaxlen +#define rb_enc_mbminlen rb_enc_mbminlen +#define rb_enc_name rb_enc_name +#define rb_enc_prev_char rb_enc_prev_char +#define rb_enc_right_char_head rb_enc_right_char_head +#define rb_enc_step_back rb_enc_step_back +#define rb_enc_str_asciicompat_p rb_enc_str_asciicompat_p +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define rb_enc_is_newline rb_enc_is_newline +#define rb_enc_isalnum rb_enc_isalnum +#define rb_enc_isalpha rb_enc_isalpha +#define rb_enc_isascii rb_enc_isascii +#define rb_enc_isctype rb_enc_isctype +#define rb_enc_isdigit rb_enc_isdigit +#define rb_enc_islower rb_enc_islower +#define rb_enc_isprint rb_enc_isprint +#define rb_enc_iscntrl rb_enc_iscntrl +#define rb_enc_ispunct rb_enc_ispunct +#define rb_enc_isspace rb_enc_isspace +#define rb_enc_isupper rb_enc_isupper +#define RUBY_INTERNAL_ENCODING_PATHNAME_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_INTERNAL_ENCODING_RE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_INTERNAL_ENCODING_SPRINTF_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_INTERNAL_ENCODING_STRING_H +#pragma GCC visibility push(default) +#define rb_enc_str_new(str,len,enc) ((RBIMPL_CONSTANT_P(str) && RBIMPL_CONSTANT_P(len) ? rb_enc_str_new_static: rb_enc_str_new) ((str), (len), (enc))) +#define rb_enc_str_new_cstr(str,enc) ((RBIMPL_CONSTANT_P(str) ? rbimpl_enc_str_new_cstr : rb_enc_str_new_cstr) ((str), (enc))) +#pragma GCC visibility pop +#define RUBY_INTERNAL_ENCODING_SYMBOL_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_INTERNAL_ENCODING_TRANSCODE_H +#pragma GCC visibility push(default) +#define ECONV_ERROR_HANDLER_MASK RUBY_ECONV_ERROR_HANDLER_MASK +#define ECONV_INVALID_MASK RUBY_ECONV_INVALID_MASK +#define ECONV_INVALID_REPLACE RUBY_ECONV_INVALID_REPLACE +#define ECONV_UNDEF_MASK RUBY_ECONV_UNDEF_MASK +#define ECONV_UNDEF_REPLACE RUBY_ECONV_UNDEF_REPLACE +#define ECONV_UNDEF_HEX_CHARREF RUBY_ECONV_UNDEF_HEX_CHARREF +#define ECONV_DECORATOR_MASK RUBY_ECONV_DECORATOR_MASK +#define ECONV_NEWLINE_DECORATOR_MASK RUBY_ECONV_NEWLINE_DECORATOR_MASK +#define ECONV_NEWLINE_DECORATOR_READ_MASK RUBY_ECONV_NEWLINE_DECORATOR_READ_MASK +#define ECONV_NEWLINE_DECORATOR_WRITE_MASK RUBY_ECONV_NEWLINE_DECORATOR_WRITE_MASK +#define ECONV_UNIVERSAL_NEWLINE_DECORATOR RUBY_ECONV_UNIVERSAL_NEWLINE_DECORATOR +#define ECONV_CRLF_NEWLINE_DECORATOR RUBY_ECONV_CRLF_NEWLINE_DECORATOR +#define ECONV_CR_NEWLINE_DECORATOR RUBY_ECONV_CR_NEWLINE_DECORATOR +#define ECONV_LF_NEWLINE_DECORATOR RUBY_ECONV_LF_NEWLINE_DECORATOR +#define ECONV_XML_TEXT_DECORATOR RUBY_ECONV_XML_TEXT_DECORATOR +#define ECONV_XML_ATTR_CONTENT_DECORATOR RUBY_ECONV_XML_ATTR_CONTENT_DECORATOR +#define ECONV_STATEFUL_DECORATOR_MASK RUBY_ECONV_STATEFUL_DECORATOR_MASK +#define ECONV_XML_ATTR_QUOTE_DECORATOR RUBY_ECONV_XML_ATTR_QUOTE_DECORATOR +#define ECONV_DEFAULT_NEWLINE_DECORATOR RUBY_ECONV_DEFAULT_NEWLINE_DECORATOR +#define ECONV_PARTIAL_INPUT RUBY_ECONV_PARTIAL_INPUT +#define ECONV_AFTER_OUTPUT RUBY_ECONV_AFTER_OUTPUT +#pragma GCC visibility pop +#define STR_NOEMBED FL_USER1 +#define STR_SHARED FL_USER2 +#undef rb_fstring_cstr +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define rb_fstring_lit(str) rb_fstring_new((str), rb_strlen_lit(str)) +#define rb_fstring_literal(str) rb_fstring_lit(str) +#define rb_fstring_enc_lit(str,enc) rb_fstring_enc_new((str), rb_strlen_lit(str), (enc)) +#define rb_fstring_enc_literal(str,enc) rb_fstring_enc_lit(str, enc) +#define rb_fstring_cstr(str) (__builtin_constant_p(str) ? rb_fstring_new((str), (long)strlen(str)) : (rb_fstring_cstr)(str)) +#undef Check_Type +#define rb_raise_static(e,m) rb_raise_cstr_i((e), rb_str_new_static((m), rb_strlen_lit(m))) +#define rb_sys_fail_path(path) rb_sys_fail_path_in(RUBY_FUNCTION_NAME_STRING, path) +#define rb_syserr_fail_path(err,path) rb_syserr_fail_path_in(RUBY_FUNCTION_NAME_STRING, (err), (path)) +#define rb_syserr_new_path(err,path) rb_syserr_new_path_in(RUBY_FUNCTION_NAME_STRING, (err), (path)) +#define rb_warn_deprecated_to_remove_at(removal,...) rb_warn_deprecated_to_remove(#removal, __VA_ARGS__) +#define RUBY_VERSION_SINCE(major,minor) 0 +#define RUBY_VERSION_BEFORE(major,minor) 0 +#define RBIMPL_TODO0(x) +#define RBIMPL_TODO(message) RBIMPL_TODO0("TODO: " message) +#define rb_typeddata_is_instance_of rb_typeddata_is_instance_of_inline +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_EVAL_H +#define id_signo ruby_static_id_signo +#define id_status ruby_static_id_status +#define INTERNAL_INITS_H +#define INTERNAL_OBJECT_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_PARSE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_PROC_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_RE_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_SYMBOL_H +#undef rb_sym_intern_ascii_cstr +#define rb_sym_intern_ascii_cstr(ptr) (__builtin_constant_p(ptr) ? rb_sym_intern_ascii((ptr), (long)strlen(ptr)) : rb_sym_intern_ascii_cstr(ptr)) +#define INTERNAL_THREAD_H +#define COVERAGE_INDEX_LINES 0 +#define COVERAGE_INDEX_BRANCHES 1 +#define COVERAGE_TARGET_LINES 1 +#define COVERAGE_TARGET_BRANCHES 2 +#define COVERAGE_TARGET_METHODS 4 +#define COVERAGE_TARGET_ONESHOT_LINES 8 +#define COVERAGE_TARGET_EVAL 16 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_SANITIZERS_H +#define SANITIZER_ASAN_INTERFACE_H +#define SANITIZER_COMMON_INTERFACE_DEFS_H +#define __sanitizer_return_address() __builtin_extract_return_addr(__builtin_return_address(0)) +#define ASAN_POISON_MEMORY_REGION(addr,size) ((void)(addr), (void)(size)) +#define ASAN_UNPOISON_MEMORY_REGION(addr,size) ((void)(addr), (void)(size)) +#define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) NO_SANITIZE_ADDRESS(NOINLINE(x)) +#define __asan_poison_memory_region(x,y) +#define __asan_unpoison_memory_region(x,y) +#define __asan_region_is_poisoned(x,y) 0 +#define __msan_allocated_memory(x,y) ((void)(x), (void)(y)) +#define __msan_poison(x,y) ((void)(x), (void)(y)) +#define __msan_unpoison(x,y) ((void)(x), (void)(y)) +#define __msan_unpoison_string(x) ((void)(x)) +#define VALGRIND_MAKE_MEM_DEFINED(p,n) 0 +#define VALGRIND_MAKE_MEM_UNDEFINED(p,n) 0 +#define INTERNAL_VARIABLE_H +#define CONSTANT_H +#define RUBY_ID_TABLE_H 1 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RB_CONST_PRIVATE_P(ce) (((ce)->flag & CONST_VISIBILITY_MASK) == CONST_PRIVATE) +#define RB_CONST_PUBLIC_P(ce) (((ce)->flag & CONST_VISIBILITY_MASK) == CONST_PUBLIC) +#define RB_CONST_DEPRECATED_P(ce) ((ce)->flag & CONST_DEPRECATED) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define ROBJECT_TRANSIENT_FLAG FL_USER2 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_MJIT_H 1 +#define RUBY_H 1 +#define HAVE_RUBY_ATOMIC_H 1 +#define HAVE_RUBY_DEBUG_H 1 +#define HAVE_RUBY_DEFINES_H 1 +#define HAVE_RUBY_ENCODING_H 1 +#define HAVE_RUBY_FIBER_SCHEDULER_H 1 +#define HAVE_RUBY_INTERN_H 1 +#define HAVE_RUBY_IO_H 1 +#define HAVE_RUBY_MEMORY_VIEW_H 1 +#define HAVE_RUBY_MISSING_H 1 +#define HAVE_RUBY_ONIGMO_H 1 +#define HAVE_RUBY_ONIGURUMA_H 1 +#define HAVE_RUBY_RACTOR_H 1 +#define HAVE_RUBY_RANDOM_H 1 +#define HAVE_RUBY_RE_H 1 +#define HAVE_RUBY_REGEX_H 1 +#define HAVE_RUBY_RUBY_H 1 +#define HAVE_RUBY_ST_H 1 +#define HAVE_RUBY_THREAD_H 1 +#define HAVE_RUBY_THREAD_NATIVE_H 1 +#define HAVE_RUBY_UTIL_H 1 +#define HAVE_RUBY_VERSION_H 1 +#define HAVE_RUBY_VM_H 1 +#define MJIT_FUNC_STATE_P(jit_func) ((uintptr_t)(jit_func) <= (uintptr_t)MJIT_FUNC_FAILED) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define mjit_enabled true +#define YJIT_H 1 +#define YJIT_STATS RUBY_DEBUG +#define RUBY_VM_H 1 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_VM_CALLINFO_H +#define USE_DEBUG_COUNTER 0 +#define RUBY_DEBUG_COUNTER_H 1 +#define RB_DEBUG_COUNTER(name) RB_DEBUG_COUNTER_##name, +#undef RB_DEBUG_COUNTER +#define RB_DEBUG_COUNTER_INC(type) ((void)0) +#define RB_DEBUG_COUNTER_INC_UNLESS(type,cond) (!!(cond)) +#define RB_DEBUG_COUNTER_INC_IF(type,cond) (!!(cond)) +#define RB_DEBUG_COUNTER_ADD(type,num) ((void)0) +#define RB_DEBUG_COUNTER_SETMAX(type,num) 0 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_CLASS_H +#define RCLASS_EXT(c) ((rb_classext_t *)((char *)(c) + sizeof(struct RClass))) +#define RCLASS_CONST_TBL(c) (RCLASS_EXT(c)->const_tbl) +#define RCLASS_M_TBL(c) (RCLASS(c)->m_tbl) +#define RCLASS_IVPTR(c) (RCLASS_EXT(c)->iv_ptr) +#define RCLASS_CALLABLE_M_TBL(c) (RCLASS_EXT(c)->callable_m_tbl) +#define RCLASS_CC_TBL(c) (RCLASS_EXT(c)->cc_tbl) +#define RCLASS_CVC_TBL(c) (RCLASS_EXT(c)->cvc_tbl) +#define RCLASS_ORIGIN(c) (RCLASS_EXT(c)->origin_) +#define RCLASS_REFINED_CLASS(c) (RCLASS_EXT(c)->refined_class) +#define RCLASS_INCLUDER(c) (RCLASS_EXT(c)->includer) +#define RCLASS_SUBCLASS_ENTRY(c) (RCLASS_EXT(c)->subclass_entry) +#define RCLASS_MODULE_SUBCLASS_ENTRY(c) (RCLASS_EXT(c)->module_subclass_entry) +#define RCLASS_ALLOCATOR(c) (RCLASS_EXT(c)->allocator) +#define RCLASS_SUBCLASSES(c) (RCLASS_EXT(c)->subclasses) +#define RCLASS_SUPERCLASS_DEPTH(c) (RCLASS_EXT(c)->superclass_depth) +#define RCLASS_SUPERCLASSES(c) (RCLASS_EXT(c)->superclasses) +#define RICLASS_IS_ORIGIN FL_USER0 +#define RCLASS_CLONED FL_USER1 +#define RCLASS_SUPERCLASSES_INCLUDE_SELF FL_USER2 +#define RICLASS_ORIGIN_SHARED_MTBL FL_USER3 +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define VM_CALL_ARGS_SPLAT (0x01 << VM_CALL_ARGS_SPLAT_bit) +#define VM_CALL_ARGS_BLOCKARG (0x01 << VM_CALL_ARGS_BLOCKARG_bit) +#define VM_CALL_FCALL (0x01 << VM_CALL_FCALL_bit) +#define VM_CALL_VCALL (0x01 << VM_CALL_VCALL_bit) +#define VM_CALL_ARGS_SIMPLE (0x01 << VM_CALL_ARGS_SIMPLE_bit) +#define VM_CALL_BLOCKISEQ (0x01 << VM_CALL_BLOCKISEQ_bit) +#define VM_CALL_KWARG (0x01 << VM_CALL_KWARG_bit) +#define VM_CALL_KW_SPLAT (0x01 << VM_CALL_KW_SPLAT_bit) +#define VM_CALL_TAILCALL (0x01 << VM_CALL_TAILCALL_bit) +#define VM_CALL_SUPER (0x01 << VM_CALL_SUPER_bit) +#define VM_CALL_ZSUPER (0x01 << VM_CALL_ZSUPER_bit) +#define VM_CALL_OPT_SEND (0x01 << VM_CALL_OPT_SEND_bit) +#define VM_CALL_KW_SPLAT_MUT (0x01 << VM_CALL_KW_SPLAT_MUT_bit) +#define USE_EMBED_CI 1 +#define CI_EMBED_TAG_bits 1 +#define CI_EMBED_ARGC_bits 15 +#define CI_EMBED_FLAG_bits 16 +#define CI_EMBED_ID_bits 32 +#define CI_EMBED_FLAG 0x01 +#define CI_EMBED_ARGC_SHFT (CI_EMBED_TAG_bits) +#define CI_EMBED_ARGC_MASK ((((VALUE)1)<iseq)->iseq_encoded), (reg_cfp->pc - ISEQ_BODY(reg_cfp->iseq)->iseq_encoded), RSTRING_PTR(rb_iseq_path(reg_cfp->iseq)), rb_iseq_line_no(reg_cfp->iseq, reg_pc - ISEQ_BODY(reg_cfp->iseq)->iseq_encoded)); } if (USE_INSNS_COUNTER) vm_insns_counter_count_insn(BIN(insn)); +#define INSN_DISPATCH_SIG(insn) +#define INSN_ENTRY(insn) LABEL(insn): INSN_ENTRY_SIG(insn); +#define TC_DISPATCH(insn) INSN_DISPATCH_SIG(insn); RB_GNUC_EXTENSION_BLOCK(goto *(void const *)GET_CURRENT_INSN()); ; +#define END_INSN(insn) DEBUG_END_INSN(); TC_DISPATCH(insn); +#define INSN_DISPATCH() TC_DISPATCH(__START__) { +#define END_INSNS_DISPATCH() rb_bug("unknown insn: %"PRIdVALUE, GET_CURRENT_INSN()); } +#define NEXT_INSN() TC_DISPATCH(__NEXT_INSN__) +#define START_OF_ORIGINAL_INSN(x) if (0) goto start_of_##x; start_of_##x: +#define DISPATCH_ORIGINAL_INSN(x) goto start_of_##x; +#define VM_SP_CNT(ec,sp) ((sp) - (ec)->vm_stack) +#define THROW_EXCEPTION(exc) do { ec->errinfo = (VALUE)(exc); EC_JUMP_TAG(ec, ec->tag->state); } while (0) +#define SCREG(r) (reg_##r) +#define VM_DEBUG_STACKOVERFLOW 0 +#define CHECK_VM_STACK_OVERFLOW_FOR_INSN(cfp,margin) +#define INSN_LABEL2(insn,name) INSN_LABEL_ ## insn ## _ ## name +#define INSN_LABEL(x) INSN_LABEL2(NAME_OF_CURRENT_INSN, x) +#define RUBY_INSNHELPER_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define COLLECT_USAGE_INSN(insn) +#define COLLECT_USAGE_OPERAND(insn,n,op) +#define COLLECT_USAGE_REGISTER(reg,s) +#define PUSH(x) (SET_SV(x), INC_SP(1)) +#define TOPN(n) (*(GET_SP()-(n)-1)) +#define POPN(n) (DEC_SP(n)) +#define POP() (DEC_SP(1)) +#define STACK_ADDR_FROM_TOP(n) (GET_SP()-(n)) +#define VM_REG_CFP (reg_cfp) +#define VM_REG_PC (VM_REG_CFP->pc) +#define VM_REG_SP (VM_REG_CFP->sp) +#define VM_REG_EP (VM_REG_CFP->ep) +#define RESTORE_REGS() do { VM_REG_CFP = ec->cfp; } while (0) +#define COLLECT_USAGE_REGISTER_HELPER(a,b,v) (v) +#define GET_PC() (COLLECT_USAGE_REGISTER_HELPER(PC, GET, VM_REG_PC)) +#define SET_PC(x) (VM_REG_PC = (COLLECT_USAGE_REGISTER_HELPER(PC, SET, (x)))) +#define GET_CURRENT_INSN() (*GET_PC()) +#define GET_OPERAND(n) (GET_PC()[(n)]) +#define ADD_PC(n) (SET_PC(VM_REG_PC + (n))) +#define JUMP(dst) (SET_PC(VM_REG_PC + (dst))) +#define GET_CFP() (COLLECT_USAGE_REGISTER_HELPER(CFP, GET, VM_REG_CFP)) +#define GET_EP() (COLLECT_USAGE_REGISTER_HELPER(EP, GET, VM_REG_EP)) +#define SET_EP(x) (VM_REG_EP = (COLLECT_USAGE_REGISTER_HELPER(EP, SET, (x)))) +#define GET_LEP() (VM_EP_LEP(GET_EP())) +#define GET_SP() (COLLECT_USAGE_REGISTER_HELPER(SP, GET, VM_REG_SP)) +#define SET_SP(x) (VM_REG_SP = (COLLECT_USAGE_REGISTER_HELPER(SP, SET, (x)))) +#define INC_SP(x) (VM_REG_SP += (COLLECT_USAGE_REGISTER_HELPER(SP, SET, (x)))) +#define DEC_SP(x) (VM_REG_SP -= (COLLECT_USAGE_REGISTER_HELPER(SP, SET, (x)))) +#define SET_SV(x) (*GET_SP() = rb_ractor_confirm_belonging(x)) +#define GET_ISEQ() (GET_CFP()->iseq) +#define GET_PREV_EP(ep) ((VALUE *)((ep)[VM_ENV_DATA_INDEX_SPECVAL] & ~0x03)) +#define GET_SELF() (COLLECT_USAGE_REGISTER_HELPER(SELF, GET, GET_CFP()->self)) +#define GET_BLOCK_HANDLER() (GET_LEP()[VM_ENV_DATA_INDEX_SPECVAL]) +#define SETUP_CANARY(cond) if (cond) {} else {} +#define CHECK_CANARY(cond,insn) if (cond) {(void)(insn);} +#define GET_GLOBAL_CVAR_STATE() (ruby_vm_global_cvar_state) +#define INC_GLOBAL_CVAR_STATE() (++ruby_vm_global_cvar_state) +#define IS_ARGS_SPLAT(ci) (vm_ci_flag(ci) & VM_CALL_ARGS_SPLAT) +#define IS_ARGS_KEYWORD(ci) (vm_ci_flag(ci) & VM_CALL_KWARG) +#define IS_ARGS_KW_SPLAT(ci) (vm_ci_flag(ci) & VM_CALL_KW_SPLAT) +#define IS_ARGS_KW_OR_KW_SPLAT(ci) (vm_ci_flag(ci) & (VM_CALL_KWARG | VM_CALL_KW_SPLAT)) +#define IS_ARGS_KW_SPLAT_MUT(ci) (vm_ci_flag(ci) & VM_CALL_KW_SPLAT_MUT) +#define RUBY_RACTOR_H 1 +#pragma GCC visibility push(default) +#define RB_RACTOR_LOCAL_STORAGE_TYPE_FREE (&rb_ractor_local_storage_type_free) +#pragma GCC visibility pop +#define RB_OBJ_SHAREABLE_P(obj) FL_TEST_RAW((obj), RUBY_FL_SHAREABLE) +#define RACTOR_CHECK_MODE (VM_CHECK_MODE || RUBY_DEBUG) && (SIZEOF_UINT64_T == SIZEOF_VALUE) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define rb_ractor_set_current_ec(cr,ec) rb_ractor_set_current_ec_(cr, ec, __FILE__, __LINE__) +#define rb_ractor_confirm_belonging(obj) obj +#define RUBY_VM_SYNC_H +#define LOCATION_ARGS void +#define LOCATION_PARAMS +#define APPEND_LOCATION_ARGS +#define APPEND_LOCATION_PARAMS +#define RB_VM_LOCKED_P() rb_vm_locked_p() +#define RB_VM_LOCK() rb_vm_lock(__FILE__, __LINE__) +#define RB_VM_UNLOCK() rb_vm_unlock(__FILE__, __LINE__) +#define RB_VM_LOCK_ENTER_CR_LEV(cr,levp) rb_vm_lock_enter_cr(cr, levp, __FILE__, __LINE__) +#define RB_VM_LOCK_LEAVE_CR_LEV(cr,levp) rb_vm_lock_leave_cr(cr, levp, __FILE__, __LINE__) +#define RB_VM_LOCK_ENTER_LEV(levp) rb_vm_lock_enter(levp, __FILE__, __LINE__) +#define RB_VM_LOCK_LEAVE_LEV(levp) rb_vm_lock_leave(levp, __FILE__, __LINE__) +#define RB_VM_LOCK_ENTER() { unsigned int _lev; RB_VM_LOCK_ENTER_LEV(&_lev); +#define RB_VM_LOCK_LEAVE() RB_VM_LOCK_LEAVE_LEV(&_lev); } +#define RB_VM_LOCK_ENTER_LEV_NB(levp) rb_vm_lock_enter_nb(levp, __FILE__, __LINE__) +#define RB_VM_LOCK_ENTER_NO_BARRIER() { unsigned int _lev; RB_VM_LOCK_ENTER_LEV_NB(&_lev); +#define RB_VM_LOCK_LEAVE_NO_BARRIER() RB_VM_LOCK_LEAVE_LEV(&_lev); } +#define ASSERT_vm_locking() +#define ASSERT_vm_unlocking() +#define BUILTIN_H_INCLUDED +#define RB_BUILTIN_FUNCTION(_i,_name,_fname,_arity,_compiler) { .name = _i < 0 ? NULL : #_name, .func_ptr = (void *)_fname, .argc = _arity, .index = _i, .compiler = _compiler, } +#define _PROBES_H +#define DTRACE_PROBES_DISABLED 1 +#define RUBY_DTRACE_METHOD_ENTRY_ENABLED() 0 +#define RUBY_DTRACE_METHOD_ENTRY(classname,methodname,filename,lineno) do {} while (0) +#define RUBY_DTRACE_METHOD_RETURN_ENABLED() 0 +#define RUBY_DTRACE_METHOD_RETURN(classname,methodname,filename,lineno) do {} while (0) +#define RUBY_DTRACE_CMETHOD_ENTRY_ENABLED() 0 +#define RUBY_DTRACE_CMETHOD_ENTRY(classname,methodname,filename,lineno) do {} while (0) +#define RUBY_DTRACE_CMETHOD_RETURN_ENABLED() 0 +#define RUBY_DTRACE_CMETHOD_RETURN(classname,methodname,filename,lineno) do {} while (0) +#define RUBY_DTRACE_REQUIRE_ENTRY_ENABLED() 0 +#define RUBY_DTRACE_REQUIRE_ENTRY(rquiredfile,filename,lineno) do {} while (0) +#define RUBY_DTRACE_REQUIRE_RETURN_ENABLED() 0 +#define RUBY_DTRACE_REQUIRE_RETURN(requiredfile,filename,lineno) do {} while (0) +#define RUBY_DTRACE_FIND_REQUIRE_ENTRY_ENABLED() 0 +#define RUBY_DTRACE_FIND_REQUIRE_ENTRY(requiredfile,filename,lineno) do {} while (0) +#define RUBY_DTRACE_FIND_REQUIRE_RETURN_ENABLED() 0 +#define RUBY_DTRACE_FIND_REQUIRE_RETURN(requiredfile,filename,lineno) do {} while (0) +#define RUBY_DTRACE_LOAD_ENTRY_ENABLED() 0 +#define RUBY_DTRACE_LOAD_ENTRY(loadedfile,filename,lineno) do {} while (0) +#define RUBY_DTRACE_LOAD_RETURN_ENABLED() 0 +#define RUBY_DTRACE_LOAD_RETURN(loadedfile,filename,lineno) do {} while (0) +#define RUBY_DTRACE_RAISE_ENABLED() 0 +#define RUBY_DTRACE_RAISE(classname,filename,lineno) do {} while (0) +#define RUBY_DTRACE_OBJECT_CREATE_ENABLED() 0 +#define RUBY_DTRACE_OBJECT_CREATE(classname,filename,lineno) do {} while (0) +#define RUBY_DTRACE_ARRAY_CREATE_ENABLED() 0 +#define RUBY_DTRACE_ARRAY_CREATE(length,filename,lineno) do {} while (0) +#define RUBY_DTRACE_HASH_CREATE_ENABLED() 0 +#define RUBY_DTRACE_HASH_CREATE(length,filename,lineno) do {} while (0) +#define RUBY_DTRACE_STRING_CREATE_ENABLED() 0 +#define RUBY_DTRACE_STRING_CREATE(length,filename,lineno) do {} while (0) +#define RUBY_DTRACE_SYMBOL_CREATE_ENABLED() 0 +#define RUBY_DTRACE_SYMBOL_CREATE(str,filename,lineno) do {} while (0) +#define RUBY_DTRACE_PARSE_BEGIN_ENABLED() 0 +#define RUBY_DTRACE_PARSE_BEGIN(sourcefile,lineno) do {} while (0) +#define RUBY_DTRACE_PARSE_END_ENABLED() 0 +#define RUBY_DTRACE_PARSE_END(sourcefile,lineno) do {} while (0) +#define RUBY_DTRACE_INSN_ENABLED() 0 +#define RUBY_DTRACE_INSN(insns_name) do {} while (0) +#define RUBY_DTRACE_INSN_OPERAND_ENABLED() 0 +#define RUBY_DTRACE_INSN_OPERAND(val,insns_name) do {} while (0) +#define RUBY_DTRACE_GC_MARK_BEGIN_ENABLED() 0 +#define RUBY_DTRACE_GC_MARK_BEGIN() do {} while (0) +#define RUBY_DTRACE_GC_MARK_END_ENABLED() 0 +#define RUBY_DTRACE_GC_MARK_END() do {} while (0) +#define RUBY_DTRACE_GC_SWEEP_BEGIN_ENABLED() 0 +#define RUBY_DTRACE_GC_SWEEP_BEGIN() do {} while (0) +#define RUBY_DTRACE_GC_SWEEP_END_ENABLED() 0 +#define RUBY_DTRACE_GC_SWEEP_END() do {} while (0) +#define RUBY_PROBES_HELPER_H +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define RUBY_DTRACE_METHOD_HOOK(name,ec,klazz,id) do { if (UNLIKELY(RUBY_DTRACE_##name##_ENABLED())) { struct ruby_dtrace_method_hook_args args; if (rb_dtrace_setup(ec, klazz, id, &args)) { RUBY_DTRACE_##name(args.classname, args.methodname, args.filename, args.line_no); } } } while (0) +#define RUBY_DTRACE_METHOD_ENTRY_HOOK(ec,klass,id) RUBY_DTRACE_METHOD_HOOK(METHOD_ENTRY, ec, klass, id) +#define RUBY_DTRACE_METHOD_RETURN_HOOK(ec,klass,id) RUBY_DTRACE_METHOD_HOOK(METHOD_RETURN, ec, klass, id) +#define RUBY_DTRACE_CMETHOD_ENTRY_HOOK(ec,klass,id) RUBY_DTRACE_METHOD_HOOK(CMETHOD_ENTRY, ec, klass, id) +#define RUBY_DTRACE_CMETHOD_RETURN_HOOK(ec,klass,id) RUBY_DTRACE_METHOD_HOOK(CMETHOD_RETURN, ec, klass, id) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define INTERNAL_COMPAR_H +#define STRING_P(s) (RB_TYPE_P((s), T_STRING) && CLASS_OF(s) == rb_cString) +#define CMP_OPTIMIZABLE(type) BASIC_OP_UNREDEFINED_P(BOP_CMP, type##_REDEFINED_OP_FLAG) +#define OPTIMIZED_CMP(a,b) ((FIXNUM_P(a) && FIXNUM_P(b) && CMP_OPTIMIZABLE(INTEGER)) ? (((long)a > (long)b) ? 1 : ((long)a < (long)b) ? -1 : 0) : (STRING_P(a) && STRING_P(b) && CMP_OPTIMIZABLE(STRING)) ? rb_str_cmp(a, b) : (RB_FLOAT_TYPE_P(a) && RB_FLOAT_TYPE_P(b) && CMP_OPTIMIZABLE(FLOAT)) ? rb_float_cmp(a, b) : rb_cmpint(rb_funcallv(a, id_cmp, 1, &b), a, b)) +#define INTERNAL_HASH_H +#define RHASH_AR_TABLE_MAX_SIZE SIZEOF_VALUE +#define RHASH_LEV_MASK (FL_USER13 | FL_USER14 | FL_USER15 | FL_USER16 | FL_USER17 | FL_USER18 | FL_USER19) +#define RHASH(obj) ((struct RHash *)(obj)) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#define RHASH_TBL_RAW(h) rb_hash_tbl_raw(h, __FILE__, __LINE__) +#pragma GCC visibility pop +#define INTERNAL_NUMERIC_H +#define INTERNAL_BIGNUM_H +#define BDIGIT unsigned int +#define SIZEOF_BDIGIT SIZEOF_INT +#define BDIGIT_DBL unsigned LONG_LONG +#define BDIGIT_DBL_SIGNED LONG_LONG +#define PRI_BDIGIT_PREFIX "" +#define PRI_BDIGIT_DBL_PREFIX PRI_LL_PREFIX +#define SIZEOF_ACTUAL_BDIGIT SIZEOF_BDIGIT +#define PRIdBDIGIT PRI_BDIGIT_PREFIX"d" +#define PRIiBDIGIT PRI_BDIGIT_PREFIX"i" +#define PRIoBDIGIT PRI_BDIGIT_PREFIX"o" +#define PRIuBDIGIT PRI_BDIGIT_PREFIX"u" +#define PRIxBDIGIT PRI_BDIGIT_PREFIX"x" +#define PRIXBDIGIT PRI_BDIGIT_PREFIX"X" +#define PRIdBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"d" +#define PRIiBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"i" +#define PRIoBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"o" +#define PRIuBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"u" +#define PRIxBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"x" +#define PRIXBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"X" +#define RBIGNUM(obj) ((struct RBignum *)(obj)) +#define BIGNUM_SIGN_BIT FL_USER1 +#define BIGNUM_EMBED_FLAG ((VALUE)FL_USER2) +#define BIGNUM_EMBED_LEN_NUMBITS 3 +#define BIGNUM_EMBED_LEN_MASK (~(~(VALUE)0U << BIGNUM_EMBED_LEN_NUMBITS) << BIGNUM_EMBED_LEN_SHIFT) +#define BIGNUM_EMBED_LEN_SHIFT (FL_USHIFT+3) +#define BIGNUM_EMBED_LEN_MAX (SIZEOF_VALUE*RBIMPL_RVALUE_EMBED_LEN_MAX/SIZEOF_ACTUAL_BDIGIT) +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_BITS_H +#define HALF_LONG_MSB ((SIGNED_VALUE)1<<((SIZEOF_LONG*CHAR_BIT-1)/2)) +#define SIGNED_INTEGER_TYPE_P(T) (0 > ((T)0)-1) +#define SIGNED_INTEGER_MIN(T) ((sizeof(T) == sizeof(int8_t)) ? ((T)INT8_MIN) : ((sizeof(T) == sizeof(int16_t)) ? ((T)INT16_MIN) : ((sizeof(T) == sizeof(int32_t)) ? ((T)INT32_MIN) : ((sizeof(T) == sizeof(int64_t)) ? ((T)INT64_MIN) : 0)))) +#define SIGNED_INTEGER_MAX(T) ((T)(SIGNED_INTEGER_MIN(T) ^ ((T)~(T)0))) +#define UNSIGNED_INTEGER_MAX(T) ((T)~(T)0) +#define MUL_OVERFLOW_P(a,b) __extension__ ({ __typeof__(a) c; __builtin_mul_overflow((a), (b), &c); }) +#define MUL_OVERFLOW_SIGNED_INTEGER_P(a,b,min,max) ( (a) == 0 ? 0 : (a) == -1 ? (b) < -(max) : (a) > 0 ? ((b) > 0 ? (max) / (a) < (b) : (min) / (a) > (b)) : ((b) > 0 ? (min) / (a) < (b) : (max) / (a) > (b))) +#define MUL_OVERFLOW_FIXNUM_P(a,b) MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, FIXNUM_MIN, FIXNUM_MAX) +#define MUL_OVERFLOW_LONG_LONG_P(a,b) MUL_OVERFLOW_P(a, b) +#define MUL_OVERFLOW_LONG_P(a,b) MUL_OVERFLOW_P(a, b) +#define MUL_OVERFLOW_INT_P(a,b) MUL_OVERFLOW_P(a, b) +#define bit_length(x) (unsigned int) (sizeof(x) <= sizeof(int32_t) ? 32 - nlz_int32((uint32_t)(x)) : sizeof(x) <= sizeof(int64_t) ? 64 - nlz_int64((uint64_t)(x)) : 128 - nlz_int128((uint128_t)(x))) +#define swap16 ruby_swap16 +#define swap32 ruby_swap32 +#define swap64 ruby_swap64 +#define INTERNAL_FIXNUM_H +#define DLONG int128_t +#define DL2NUM(x) (RB_FIXABLE(x) ? LONG2FIX(x) : rb_int128t2big(x)) +#define ROUND_TO(mode,even,up,down) ((mode) == RUBY_NUM_ROUND_HALF_EVEN ? even : (mode) == RUBY_NUM_ROUND_HALF_UP ? up : down) +#define ROUND_FUNC(mode,name) ROUND_TO(mode, name##_half_even, name##_half_up, name##_half_down) +#define ROUND_CALL(mode,name,args) ROUND_TO(mode, name##_half_even args, name##_half_up args, name##_half_down args) +#define ROUND_DEFAULT RUBY_NUM_ROUND_HALF_UP +#define numberof(array) ((int)(sizeof(array) / sizeof((array)[0]))) +#define roomof(x,y) (((x) + (y) - 1) / (y)) +#define type_roomof(x,y) roomof(sizeof(x), sizeof(y)) +#define RFLOAT(obj) ((struct RFloat *)(obj)) +#define rb_float_value rb_float_value_inline +#define rb_float_new rb_float_new_inline +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#pragma GCC visibility push(default) +#pragma GCC visibility pop +#define INTERNAL_RANDOM_H +#define INTERNAL_STRUCT_H +#define RSTRUCT(obj) ((struct RStruct *)(obj)) +#define RSTRUCT_LEN internal_RSTRUCT_LEN +#define RSTRUCT_SET internal_RSTRUCT_SET +#define RSTRUCT_GET internal_RSTRUCT_GET +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define RUBY_TOPLEVEL_VARIABLE_H +#define BIN(n) YARVINSN_##n +#define ASSERT_VM_INSTRUCTION_SIZE(array) STATIC_ASSERT(numberof_##array, numberof(array) == VM_INSTRUCTION_SIZE) +#define vm_check_canary(ec,sp) +#define vm_check_frame(a,b,c,d) +#define vm_push_frame_debug_counter_inc(ec,cfp,t) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define ractor_incidental_shareable_p(cond,val) (!(cond) || rb_ractor_shareable_p(val)) +#define ractor_object_incidental_shareable_p(obj,val) ractor_incidental_shareable_p(rb_ractor_shareable_p(obj), val) +#define ATTR_INDEX_NOT_SET (attr_index_t)-1 +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define EQ_UNREDEFINED_P(t) BASIC_OP_UNREDEFINED_P(BOP_EQ, t##_REDEFINED_OP_FLAG) +#undef EQ_UNREDEFINED_P +#define CHECK_CMP_NAN(a,b) +#define KW_SPECIFIED_BITS_MAX (32-1) +#define USE_OPT_HIST 0 +#define CHECK_CFP_CONSISTENCY(func) (LIKELY(vm_cfp_consistent_p(ec, reg_cfp)) ? (void)0 : rb_bug(func ": cfp consistency error (%p, %p)", (void *)reg_cfp, (void *)(ec->cfp+1))) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define VM_CALL_METHOD_ATTR(var,func,nohook) if (UNLIKELY(ruby_vm_event_flags & (RUBY_EVENT_C_CALL | RUBY_EVENT_C_RETURN))) { EXEC_EVENT_HOOK(ec, RUBY_EVENT_C_CALL, calling->recv, vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, Qundef); var = func; EXEC_EVENT_HOOK(ec, RUBY_EVENT_C_RETURN, calling->recv, vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, (var)); } else { nohook; var = func; } +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define mexp_search_method vm_search_method_wrap +#define mexp_search_super vm_search_super_method +#define mexp_search_invokeblock vm_search_invokeblock +#define id_cmp idCmp +#undef id_cmp +#define IMEMO_CONST_CACHE_SHAREABLE IMEMO_FL_USER0 +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#pragma clang diagnostic pop +#define VM_TRACE_HOOK(target_event,val) do { if ((pc_events & (target_event)) & enabled_flags) { vm_trace_hook(ec, reg_cfp, pc, pc_events, (target_event), global_hooks, local_hooks_ptr, (val)); } } while (0) +#undef VM_TRACE_HOOK +#define id_mesg idMesg diff --git a/ThirdParty/include/ruby/3.2/mac/x86_64-darwin/ruby/config.h b/ThirdParty/include/ruby/3.2/mac/x86_64-darwin/ruby/config.h new file mode 100644 index 0000000..900c26c --- /dev/null +++ b/ThirdParty/include/ruby/3.2/mac/x86_64-darwin/ruby/config.h @@ -0,0 +1,462 @@ +#ifndef INCLUDE_RUBY_CONFIG_H +#define INCLUDE_RUBY_CONFIG_H 1 +/* confdefs.h */ +#define HAVE_STDIO_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRING_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_SYS_STAT_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_UNISTD_H 1 +#define HAVE_WCHAR_H 1 +#define STDC_HEADERS 1 +#define _ALL_SOURCE 1 +#define _DARWIN_C_SOURCE 1 +#define _GNU_SOURCE 1 +#define _HPUX_ALT_XOPEN_SOCKET_API 1 +#define _NETBSD_SOURCE 1 +#define _OPENBSD_SOURCE 1 +#define _POSIX_PTHREAD_SEMANTICS 1 +#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 +#define __STDC_WANT_IEC_60559_BFP_EXT__ 1 +#define __STDC_WANT_IEC_60559_DFP_EXT__ 1 +#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 +#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 +#define __STDC_WANT_LIB_EXT2__ 1 +#define __STDC_WANT_MATH_SPEC_FUNCS__ 1 +#define _TANDEM_SOURCE 1 +#define __EXTENSIONS__ 1 +#define RUBY_SYMBOL_EXPORT_BEGIN _Pragma("GCC visibility push(default)") +#define RUBY_SYMBOL_EXPORT_END _Pragma("GCC visibility pop") +#define HAVE_STMT_AND_DECL_IN_EXPR 1 +#define HAVE_PTHREAD_H 1 +#define _REENTRANT 1 +#define _THREAD_SAFE 1 +#define HAVE_LIBPTHREAD 1 +#define THREAD_IMPL_H "thread_pthread.h" +#define THREAD_IMPL_SRC "thread_pthread.c" +#define BROKEN_CRYPT 1 +#define HAVE_CRT_EXTERNS_H 1 +#define HAVE_LIBDL 1 +#define HAVE_DIRENT_H 1 +#define HAVE__BOOL 1 +#define HAVE_STDBOOL_H 1 +#define HAVE_SYS_WAIT_H 1 +#define HAVE_COPYFILE_H 1 +#define HAVE_GRP_H 1 +#define HAVE_FCNTL_H 1 +#define HAVE_FLOAT_H 1 +#define HAVE_LANGINFO_H 1 +#define HAVE_LIMITS_H 1 +#define HAVE_LOCALE_H 1 +#define HAVE_MALLOC_MALLOC_H 1 +#define HAVE_PWD_H 1 +#define HAVE_SANITIZER_ASAN_INTERFACE_H 1 +#define HAVE_SANITIZER_MSAN_INTERFACE_H 1 +#define HAVE_STDALIGN_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_SYS_ATTR_H 1 +#define HAVE_SYS_FCNTL_H 1 +#define HAVE_SYS_FILE_H 1 +#define HAVE_SYS_IOCTL_H 1 +#define HAVE_SYS_PARAM_H 1 +#define HAVE_SYS_RANDOM_H 1 +#define HAVE_SYS_RESOURCE_H 1 +#define HAVE_SYS_SELECT_H 1 +#define HAVE_SYS_SOCKET_H 1 +#define HAVE_SYS_TIME_H 1 +#define HAVE_SYS_TIMES_H 1 +#define HAVE_SYS_UIO_H 1 +#define HAVE_TIME_H 1 +#define HAVE_UCONTEXT_H 1 +#define HAVE_UTIME_H 1 +#define HAVE_X86INTRIN_H 1 +#if defined(__x86_64__) +#define HAVE_X86INTRIN_H 1 +#endif +#define HAVE_TYPEOF 1 +#define restrict __restrict__ +#define HAVE_LONG_LONG 1 +#define HAVE_OFF_T 1 +#define SIZEOF_INT 4 +#define SIZEOF_SHORT 2 +#define SIZEOF_LONG 8 +#define SIZEOF_LONG_LONG 8 +#define SIZEOF___INT64 0 +#define SIZEOF___INT128 16 +#define SIZEOF_OFF_T 8 +#define SIZEOF_VOIDP 8 +#define SIZEOF_FLOAT 4 +#define SIZEOF_DOUBLE 8 +#define SIZEOF_TIME_T 8 +#define SIZEOF_CLOCK_T 8 +#define PACKED_STRUCT(x) x __attribute__((packed)) +#define USE_UNALIGNED_MEMBER_ACCESS 1 +#define PRI_LL_PREFIX "ll" +#define HAVE_PID_T 1 +#define rb_pid_t pid_t +#define SIGNEDNESS_OF_PID_T -1 +#define PIDT2NUM(v) INT2NUM(v) +#define NUM2PIDT(v) NUM2INT(v) +#define PRI_PIDT_PREFIX PRI_INT_PREFIX +#define HAVE_UID_T 1 +#define rb_uid_t uid_t +#define SIGNEDNESS_OF_UID_T +1 +#define UIDT2NUM(v) UINT2NUM(v) +#define NUM2UIDT(v) NUM2UINT(v) +#define PRI_UIDT_PREFIX PRI_INT_PREFIX +#define HAVE_GID_T 1 +#define rb_gid_t gid_t +#define SIGNEDNESS_OF_GID_T +1 +#define GIDT2NUM(v) UINT2NUM(v) +#define NUM2GIDT(v) NUM2UINT(v) +#define PRI_GIDT_PREFIX PRI_INT_PREFIX +#define HAVE_TIME_T 1 +#define rb_time_t time_t +#define SIGNEDNESS_OF_TIME_T -1 +#define TIMET2NUM(v) LONG2NUM(v) +#define NUM2TIMET(v) NUM2LONG(v) +#define PRI_TIMET_PREFIX PRI_LONG_PREFIX +#define HAVE_DEV_T 1 +#define rb_dev_t dev_t +#define SIGNEDNESS_OF_DEV_T -1 +#define DEVT2NUM(v) INT2NUM(v) +#define NUM2DEVT(v) NUM2INT(v) +#define PRI_DEVT_PREFIX PRI_INT_PREFIX +#define HAVE_MODE_T 1 +#define rb_mode_t mode_t +#define SIGNEDNESS_OF_MODE_T +1 +#define MODET2NUM(v) USHORT2NUM(v) +#define NUM2MODET(v) NUM2USHORT(v) +#define PRI_MODET_PREFIX PRI_SHORT_PREFIX +#define HAVE_RLIM_T 1 +#define rb_rlim_t rlim_t +#define SIGNEDNESS_OF_RLIM_T +1 +#define RLIM2NUM(v) ULL2NUM(v) +#define NUM2RLIM(v) NUM2ULL(v) +#define PRI_RLIM_PREFIX PRI_LL_PREFIX +#define HAVE_OFF_T 1 +#define rb_off_t off_t +#define SIGNEDNESS_OF_OFF_T -1 +#define OFFT2NUM(v) LL2NUM(v) +#define NUM2OFFT(v) NUM2LL(v) +#define PRI_OFFT_PREFIX PRI_LL_PREFIX +#define HAVE_CLOCKID_T 1 +#define rb_clockid_t clockid_t +#define SIGNEDNESS_OF_CLOCKID_T +1 +#define CLOCKID2NUM(v) UINT2NUM(v) +#define NUM2CLOCKID(v) NUM2UINT(v) +#define PRI_CLOCKID_PREFIX PRI_INT_PREFIX +#define HAVE_VA_ARGS_MACRO 1 +#define HAVE__ALIGNOF 1 +#define CONSTFUNC(x) __attribute__ ((__const__)) x +#define PUREFUNC(x) __attribute__ ((__pure__)) x +#define NORETURN(x) __attribute__ ((__noreturn__)) x +#define DEPRECATED(x) __attribute__ ((__deprecated__)) x +#define DEPRECATED_BY(n,x) __attribute__ ((__deprecated__("by "#n))) x +#define NOINLINE(x) __attribute__ ((__noinline__)) x +#define ALWAYS_INLINE(x) __attribute__ ((__always_inline__)) x +#define NO_SANITIZE(san, x) __attribute__ ((__no_sanitize__(san))) x +#define NO_SANITIZE_ADDRESS(x) __attribute__ ((__no_sanitize_address__)) x +#define NO_ADDRESS_SAFETY_ANALYSIS(x) __attribute__ ((__no_address_safety_analysis__)) x +#define WARN_UNUSED_RESULT(x) __attribute__ ((__warn_unused_result__)) x +#define MAYBE_UNUSED(x) __attribute__ ((__unused__)) x +#define ERRORFUNC(mesg,x) __attribute__ ((__error__ mesg)) x +#define WARNINGFUNC(mesg,x) __attribute__ ((__warning__ mesg)) x +#define WEAK(x) __attribute__ ((__weak__)) x +#define HAVE_FUNC_WEAK 1 +#define RUBY_CXX_DEPRECATED(msg) __attribute__((__deprecated__(msg))) +#define HAVE_NULLPTR 1 +#define FUNC_CDECL(x) __attribute__ ((__cdecl__)) x +#define HAVE_GCC_ATOMIC_BUILTINS 1 +#define HAVE_GCC_SYNC_BUILTINS 1 +#define HAVE___BUILTIN_UNREACHABLE 1 +#define RUBY_FUNC_EXPORTED __attribute__ ((__visibility__("default"))) extern +#define RUBY_FUNC_NONNULL(n,x) __attribute__ ((__nonnull__(n))) x +#define RUBY_FUNCTION_NAME_STRING __func__ +#define ENUM_OVER_INT 1 +#define HAVE_DECL_SYS_NERR 1 +#define HAVE_DECL_GETENV 1 +#define SIZEOF_SIZE_T 8 +#define SIZEOF_PTRDIFF_T 8 +#define SIZEOF_DEV_T 4 +#define PRI_SIZE_PREFIX "z" +#define PRI_PTRDIFF_PREFIX "t" +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 +#define HAVE_STRUCT_STAT_ST_RDEV 1 +#define SIZEOF_STRUCT_STAT_ST_SIZE SIZEOF_OFF_T +#define SIZEOF_STRUCT_STAT_ST_BLOCKS SIZEOF_OFF_T +#define SIZEOF_STRUCT_STAT_ST_INO SIZEOF_LONG +#define SIZEOF_STRUCT_STAT_ST_DEV SIZEOF_DEV_T +#define SIZEOF_STRUCT_STAT_ST_RDEV SIZEOF_DEV_T +#define HAVE_STRUCT_STAT_ST_ATIMESPEC 1 +#define HAVE_STRUCT_STAT_ST_MTIMESPEC 1 +#define HAVE_STRUCT_STAT_ST_CTIMESPEC 1 +#define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC 1 +#define HAVE_STRUCT_TIMEVAL 1 +#define SIZEOF_STRUCT_TIMEVAL_TV_SEC SIZEOF_TIME_T +#define HAVE_STRUCT_TIMESPEC 1 +#define HAVE_STRUCT_TIMEZONE 1 +#define HAVE_RB_FD_INIT 1 +#define HAVE_INT8_T 1 +#define SIZEOF_INT8_T 1 +#define HAVE_UINT8_T 1 +#define SIZEOF_UINT8_T 1 +#define HAVE_INT16_T 1 +#define SIZEOF_INT16_T 2 +#define HAVE_UINT16_T 1 +#define SIZEOF_UINT16_T 2 +#define HAVE_INT32_T 1 +#define SIZEOF_INT32_T 4 +#define HAVE_UINT32_T 1 +#define SIZEOF_UINT32_T 4 +#define HAVE_INT64_T 1 +#define SIZEOF_INT64_T 8 +#define HAVE_UINT64_T 1 +#define SIZEOF_UINT64_T 8 +#define HAVE_INT128_T 1 +#define int128_t __int128 +#define SIZEOF_INT128_T SIZEOF___INT128 +#define HAVE_UINT128_T 1 +#define uint128_t unsigned __int128 +#define SIZEOF_UINT128_T SIZEOF___INT128 +#define HAVE_INTPTR_T 1 +#define SIZEOF_INTPTR_T 8 +#define HAVE_UINTPTR_T 1 +#define SIZEOF_UINTPTR_T 8 +#define PRI_PTR_PREFIX "l" +#define HAVE_SSIZE_T 1 +#define SIZEOF_SSIZE_T 8 +#define PRI_64_PREFIX "ll" +#define GETGROUPS_T gid_t +#define HAVE_ALLOCA_H 1 +#define HAVE_ALLOCA 1 +#define HAVE_DUP 1 +#define HAVE_DUP2 1 +#define HAVE_ACOSH 1 +#define HAVE_CBRT 1 +#define HAVE_CRYPT 1 +#define HAVE_ERF 1 +#define HAVE_FFS 1 +#define HAVE_FLOCK 1 +#define HAVE_HYPOT 1 +#define HAVE_LGAMMA_R 1 +#define HAVE_MEMMOVE 1 +#define HAVE_NAN 1 +#define HAVE_NEXTAFTER 1 +#define HAVE_STRCHR 1 +#define HAVE_STRERROR 1 +#define HAVE_STRLCAT 1 +#define HAVE_STRLCPY 1 +#define HAVE_STRSTR 1 +#define HAVE_TGAMMA 1 +#define HAVE_ISFINITE 1 +#define SPT_TYPE SPT_REUSEARGV +#define HAVE_SIGNBIT 1 +#define HAVE_FORK 1 +#define vfork fork +#define HAVE_WORKING_FORK 1 +#define HAVE__LONGJMP 1 +#define HAVE_ARC4RANDOM_BUF 1 +#define HAVE_ATAN2L 1 +#define HAVE_ATAN2F 1 +#define HAVE_CHMOD 1 +#define HAVE_CHOWN 1 +#define HAVE_CHROOT 1 +#define HAVE_CLOCK_GETTIME 1 +#define HAVE_COSH 1 +#define HAVE_DIRFD 1 +#define HAVE_DLOPEN 1 +#define HAVE_DLADDR 1 +#define HAVE_ENDGRENT 1 +#define HAVE_EXECL 1 +#define HAVE_EXECLE 1 +#define HAVE_EXECV 1 +#define HAVE_EXECVE 1 +#define HAVE_FCOPYFILE 1 +#define HAVE_FCHMOD 1 +#define HAVE_FCHOWN 1 +#define HAVE_FCNTL 1 +#define HAVE_FDOPENDIR 1 +#define HAVE_FGETATTRLIST 1 +#define HAVE_FMOD 1 +#define HAVE_FSTATAT 1 +#define HAVE_FSYNC 1 +#define HAVE_FTRUNCATE 1 +#define HAVE_GETATTRLIST 1 +#define HAVE_GETCWD 1 +#define HAVE_GETEGID 1 +#define HAVE_GETENTROPY 1 +#define HAVE_GETEUID 1 +#define HAVE_GETGID 1 +#define HAVE_GETGRNAM 1 +#define HAVE_GETGRNAM_R 1 +#define HAVE_GETGROUPS 1 +#define HAVE_GETLOGIN 1 +#define HAVE_GETLOGIN_R 1 +#define HAVE_GETPGID 1 +#define HAVE_GETPGRP 1 +#define HAVE_GETPPID 1 +#define HAVE_GETPRIORITY 1 +#define HAVE_GETPWNAM 1 +#define HAVE_GETPWNAM_R 1 +#define HAVE_GETPWUID 1 +#define HAVE_GETPWUID_R 1 +#define HAVE_GETRLIMIT 1 +#define HAVE_GETSID 1 +#define HAVE_GETTIMEOFDAY 1 +#define HAVE_GETUID 1 +#define HAVE_GMTIME_R 1 +#define HAVE_GRANTPT 1 +#define HAVE_INITGROUPS 1 +#define HAVE_IOCTL 1 +#define HAVE_ISSETUGID 1 +#define HAVE_KILL 1 +#define HAVE_KILLPG 1 +#define HAVE_LCHMOD 1 +#define HAVE_LCHOWN 1 +#define HAVE_LINK 1 +#define HAVE_LLABS 1 +#define HAVE_LOCKF 1 +#define HAVE_LOG2 1 +#define HAVE_LSTAT 1 +#define HAVE_LUTIMES 1 +#define HAVE_MALLOC_SIZE 1 +#define HAVE_MBLEN 1 +#define HAVE_MEMSET_S 1 +#define HAVE_WRITEV 1 +#define HAVE_MEMMEM 1 +#define HAVE_MKFIFO 1 +#define HAVE_MKNOD 1 +#define HAVE_MKTIME 1 +#define HAVE_MMAP 1 +#define HAVE_OPENAT 1 +#define HAVE_PCLOSE 1 +#define HAVE_PIPE 1 +#define HAVE_POLL 1 +#define HAVE_POPEN 1 +#define HAVE_POSIX_MADVISE 1 +#define HAVE_POSIX_MEMALIGN 1 +#define HAVE_PREAD 1 +#define HAVE_PWRITE 1 +#define HAVE_QSORT_R 1 +#define HAVE_READLINK 1 +#define HAVE_REALPATH 1 +#define HAVE_ROUND 1 +#define HAVE_SEEKDIR 1 +#define HAVE_SENDFILE 1 +#define HAVE_SETEGID 1 +#define HAVE_SETENV 1 +#define HAVE_SETEUID 1 +#define HAVE_SETGID 1 +#define HAVE_SETGROUPS 1 +#define HAVE_SETPGID 1 +#define HAVE_SETPGRP 1 +#define HAVE_SETREGID 1 +#define HAVE_SETREUID 1 +#define HAVE_SETRGID 1 +#define HAVE_SETRLIMIT 1 +#define HAVE_SETRUID 1 +#define HAVE_SETSID 1 +#define HAVE_SETUID 1 +#define HAVE_SHUTDOWN 1 +#define HAVE_SIGACTION 1 +#define HAVE_SIGALTSTACK 1 +#define HAVE_SIGPROCMASK 1 +#define HAVE_SINH 1 +#define HAVE_SYMLINK 1 +#define HAVE_SYSCONF 1 +#define HAVE_SYSTEM 1 +#define HAVE_TANH 1 +#define HAVE_TELLDIR 1 +#define HAVE_TIMEGM 1 +#define HAVE_TIMES 1 +#define HAVE_TRUNCATE 1 +#define HAVE_TZSET 1 +#define HAVE_UMASK 1 +#define HAVE_UNSETENV 1 +#define HAVE_UTIMENSAT 1 +#define HAVE_UTIMES 1 +#define HAVE_WAIT4 1 +#define HAVE_WAITPID 1 +#define HAVE___COSPI 1 +#define HAVE___SINPI 1 +#if !defined __STDC_WANT_LIB_EXT1__ +#define __STDC_WANT_LIB_EXT1__ 1 +#endif /* !defined __STDC_WANT_LIB_EXT1__ */ +#define HAVE_BUILTIN___BUILTIN_ALLOCA_WITH_ALIGN 1 +#define HAVE_BUILTIN___BUILTIN_ASSUME_ALIGNED 1 +#define HAVE_BUILTIN___BUILTIN_BSWAP16 1 +#define HAVE_BUILTIN___BUILTIN_BSWAP32 1 +#define HAVE_BUILTIN___BUILTIN_BSWAP64 1 +#define HAVE_BUILTIN___BUILTIN_POPCOUNT 1 +#define HAVE_BUILTIN___BUILTIN_POPCOUNTLL 1 +#define HAVE_BUILTIN___BUILTIN_CLZ 1 +#define HAVE_BUILTIN___BUILTIN_CLZL 1 +#define HAVE_BUILTIN___BUILTIN_CLZLL 1 +#define HAVE_BUILTIN___BUILTIN_CTZ 1 +#define HAVE_BUILTIN___BUILTIN_CTZLL 1 +#define HAVE_BUILTIN___BUILTIN_ADD_OVERFLOW 1 +#define HAVE_BUILTIN___BUILTIN_SUB_OVERFLOW 1 +#define HAVE_BUILTIN___BUILTIN_MUL_OVERFLOW 1 +#define HAVE_BUILTIN___BUILTIN_CONSTANT_P 1 +#define HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR 1 +#define HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P 1 +#define HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P 1 +#define HAVE_BUILTIN___BUILTIN_TRAP 1 +#define HAVE_BUILTIN___BUILTIN_EXPECT 1 +#define HAVE_BSD_QSORT_R 1 +#define ATAN2_INF_C99 1 +#define HAVE_CLOCK_GETRES 1 +#define HAVE_STRUCT_TM_TM_ZONE 1 +#define HAVE_TM_ZONE 1 +#define HAVE_STRUCT_TM_TM_GMTOFF 1 +#define HAVE_DAYLIGHT 1 +#define NEGATIVE_TIME_T 1 +#define POSIX_SIGNAL 1 +#define HAVE_SIG_T 1 +#define RSHIFT(x,y) ((x)>>(int)(y)) +#define HAVE__SC_CLK_TCK 1 +#define STACK_GROW_DIRECTION -1 +#define COROUTINE_H "coroutine/amd64/Context.h" +#define HAVE_SCHED_YIELD 1 +#define HAVE_PTHREAD_ATTR_SETINHERITSCHED 1 +#define HAVE_PTHREAD_ATTR_GETSTACK 1 +#define HAVE_PTHREAD_ATTR_GETGUARDSIZE 1 +#define HAVE_PTHREAD_GET_STACKADDR_NP 1 +#define HAVE_PTHREAD_GET_STACKSIZE_NP 1 +#define HAVE_PTHREAD_SETNAME_NP 1 +#define HAVE_PTHREAD_SIGMASK 1 +#define SET_CURRENT_THREAD_NAME(name) pthread_setname_np(name) +#define DEFINE_MCONTEXT_PTR(mc, uc) mcontext_t mc = (uc)->uc_mcontext +#define HAVE_SYS_USER_H 1 +#define HAVE_CONST_PAGE_SIZE 1 +#define IOCTL_REQ_TYPE unsigned long +#define NUM2IOCTLREQ(num) NUM2ULONG(num) +#define HAVE_MACH_O_LOADER_H 1 +#define EXTSTATIC 1 +#define HAVE_LIBPROC_H 1 +#define HAVE_EXECINFO_H 1 +#define HAVE_LIBUNWIND_H 1 +#define HAVE_MACH_TASK_H 1 +#define HAVE_MACH_MACH_INIT_H 1 +#define HAVE_MACH_MACH_PORT_H 1 +#define HAVE_MACH_TASK_EXCEPTION_PORTS 1 +#define HAVE_BACKTRACE 1 +#define BROKEN_BACKTRACE 1 +#define DLEXT_MAXLEN 7 +#define DLEXT ".bundle" +#define LIBDIR_BASENAME "lib" +#define HAVE__SETJMP 1 +#define HAVE_SIGSETJMP 1 +#define RUBY_SETJMP(env) sigsetjmp((env),0) +#define RUBY_LONGJMP(env,val) siglongjmp((env),val) +#define RUBY_JMP_BUF sigjmp_buf +#define USE_MJIT 1 +#define USE_YJIT 0 +#define LOAD_RELATIVE 1 +#define RUBY_PLATFORM "x86_64-darwin21" +#endif /* INCLUDE_RUBY_CONFIG_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby.h new file mode 100644 index 0000000..789804b --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby.h @@ -0,0 +1,40 @@ +#ifndef RUBY_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_H 1 +/** + * @author $Author$ + * @date Sun 10 12:06:15 Jun JST 2007 + * @copyright 2007-2008 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ +#define HAVE_RUBY_ATOMIC_H 1 +#define HAVE_RUBY_DEBUG_H 1 +#define HAVE_RUBY_DEFINES_H 1 +#define HAVE_RUBY_ENCODING_H 1 +#define HAVE_RUBY_FIBER_SCHEDULER_H 1 +#define HAVE_RUBY_INTERN_H 1 +#define HAVE_RUBY_IO_H 1 +#define HAVE_RUBY_MEMORY_VIEW_H 1 +#define HAVE_RUBY_MISSING_H 1 +#define HAVE_RUBY_ONIGMO_H 1 +#define HAVE_RUBY_ONIGURUMA_H 1 +#define HAVE_RUBY_RACTOR_H 1 +#define HAVE_RUBY_RANDOM_H 1 +#define HAVE_RUBY_RE_H 1 +#define HAVE_RUBY_REGEX_H 1 +#define HAVE_RUBY_RUBY_H 1 +#define HAVE_RUBY_ST_H 1 +#define HAVE_RUBY_THREAD_H 1 +#define HAVE_RUBY_THREAD_NATIVE_H 1 +#define HAVE_RUBY_UTIL_H 1 +#define HAVE_RUBY_VERSION_H 1 +#define HAVE_RUBY_VM_H 1 +#ifdef _WIN32 +#define HAVE_RUBY_WIN32_H 1 +#endif + +#include "ruby/ruby.h" + +#endif /* RUBY_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/assert.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/assert.h new file mode 100644 index 0000000..0c05236 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/assert.h @@ -0,0 +1,234 @@ +#ifndef RUBY_ASSERT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_ASSERT_H +/** + * @file + * @author Ruby developers + * @date Wed May 18 00:21:44 JST 1994 + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + */ +#include "ruby/internal/assume.h" +#include "ruby/internal/attr/cold.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/dllexport.h" +#include "ruby/backward/2/assume.h" + +/* RUBY_NDEBUG is very simple: after everything described below are done, + * define it with either NDEBUG is undefined (=0) or defined (=1). It is truly + * subordinate. + * + * RUBY_DEBUG versus NDEBUG is complicated. Assertions shall be: + * + * | -UNDEBUG | -DNDEBUG + * ---------------+----------+--------- + * -URUBY_DEBUG | (*1) | disabled + * -DRUBY_DEBUG=0 | disabled | disabled + * -DRUBY_DEBUG=1 | enabled | (*2) + * -DRUBY_DEBUG | enabled | (*2) + * + * where: + * + * - (*1): Assertions shall be silently disabled, no warnings, in favour of + * commit 21991e6ca59274e41a472b5256bd3245f6596c90. + * + * - (*2): Compile-time warnings shall be issued. + */ + +/** @cond INTERNAL_MACRO */ + +/* + * Pro tip: `!!RUBY_DEBUG-1` expands to... + * + * - `!!(-1)` (== `!0` == `1`) when RUBY_DEBUG is defined to be empty, + * - `(!!0)-1` (== `0-1` == `-1`) when RUBY_DEBUG is defined as 0, and + * - `(!!n)-1` (== `1-1` == `0`) when RUBY_DEBUG is defined as something else. + */ +#if ! defined(RUBY_DEBUG) +# define RBIMPL_RUBY_DEBUG 0 +#elif !!RUBY_DEBUG-1 < 0 +# define RBIMPL_RUBY_DEBUG 0 +#else +# define RBIMPL_RUBY_DEBUG 1 +#endif + +/* + * ISO/IEC 9899 (all past versions) says that "If NDEBUG is defined as a macro + * name at the point in the source file where is included, ..." + * which means we must not take its defined value into account. + */ +#if defined(NDEBUG) +# define RBIMPL_NDEBUG 1 +#else +# define RBIMPL_NDEBUG 0 +#endif + +/** @endcond */ + +/* Here we go... */ +#undef RUBY_DEBUG +#undef RUBY_NDEBUG +#undef NDEBUG +#if defined(__DOXYGEN__) +# /** Define this macro when you want assertions. */ +# define RUBY_DEBUG 0 +# /** Define this macro when you don't want assertions. */ +# define NDEBUG +# /** This macro is basically the same as #NDEBUG */ +# define RUBY_NDEBUG 1 + +#elif (RBIMPL_NDEBUG == 1) && (RBIMPL_RUBY_DEBUG == 0) +# /* Assertions disabled as per request, no conflicts. */ +# define RUBY_DEBUG 0 +# define RUBY_NDEBUG 1 +# define NDEBUG + +#elif (RBIMPL_NDEBUG == 0) && (RBIMPL_RUBY_DEBUG == 1) +# /* Assertions enabled as per request, no conflicts. */ +# define RUBY_DEBUG 1 +# define RUBY_NDEBUG 0 +# /* keep NDEBUG undefined */ + +#elif (RBIMPL_NDEBUG == 0) && (RBIMPL_RUBY_DEBUG == 0) +# /* The (*1) situation in above diagram. */ +# define RUBY_DEBUG 0 +# define RUBY_NDEBUG 1 +# define NDEBUG + +#elif (RBIMPL_NDEBUG == 1) && (RBIMPL_RUBY_DEBUG == 1) +# /* The (*2) situation in above diagram. */ +# define RUBY_DEBUG 1 +# define RUBY_NDEBUG 0 +# /* keep NDEBUG undefined */ + +# if defined(_MSC_VER) +# pragma message("NDEBUG is ignored because RUBY_DEBUG>0.") +# elif defined(__GNUC__) +# pragma GCC warning "NDEBUG is ignored because RUBY_DEBUG>0." +# else +# error NDEBUG is ignored because RUBY_DEBUG>0. +# endif +#endif +#undef RBIMPL_NDEBUG +#undef RBIMPL_RUBY_DEBUG + +/** @cond INTERNAL_MACRO */ +#define RBIMPL_ASSERT_NOTHING RBIMPL_CAST((void)0) + +RBIMPL_SYMBOL_EXPORT_BEGIN() +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_COLD() +void rb_assert_failure(const char *file, int line, const char *name, const char *expr); +RBIMPL_SYMBOL_EXPORT_END() + +#ifdef RUBY_FUNCTION_NAME_STRING +# define RBIMPL_ASSERT_FUNC RUBY_FUNCTION_NAME_STRING +#else +# define RBIMPL_ASSERT_FUNC RBIMPL_CAST((const char *)0) +#endif + +/** @endcond */ + +/** + * Prints the given message, and terminates the entire process abnormally. + * + * @param mesg The message to display. + */ +#define RUBY_ASSERT_FAIL(mesg) \ + rb_assert_failure(__FILE__, __LINE__, RBIMPL_ASSERT_FUNC, mesg) + +/** + * Asserts that the expression is truthy. If not aborts with the message. + * + * @param expr What supposedly evaluates to true. + * @param mesg The message to display on failure. + */ +#define RUBY_ASSERT_MESG(expr, mesg) \ + (RB_LIKELY(expr) ? RBIMPL_ASSERT_NOTHING : RUBY_ASSERT_FAIL(mesg)) + +/** + * A variant of #RUBY_ASSERT that does not interface with #RUBY_DEBUG. + * + * @copydetails #RUBY_ASSERT + */ +#define RUBY_ASSERT_ALWAYS(expr) RUBY_ASSERT_MESG((expr), #expr) + +/** + * Asserts that the given expression is truthy if and only if #RUBY_DEBUG is truthy. + * + * @param expr What supposedly evaluates to true. + */ +#if RUBY_DEBUG +# define RUBY_ASSERT(expr) RUBY_ASSERT_MESG((expr), #expr) +#else +# define RUBY_ASSERT(expr) RBIMPL_ASSERT_NOTHING +#endif + +/** + * A variant of #RUBY_ASSERT that interfaces with #NDEBUG instead of + * #RUBY_DEBUG. This almost resembles `assert` C standard macro, except minor + * implementation details. + * + * @copydetails #RUBY_ASSERT + */ +/* Currently `RUBY_DEBUG == ! defined(NDEBUG)` is always true. There is no + * difference any longer between this one and `RUBY_ASSERT`. */ +#if defined(NDEBUG) +# define RUBY_ASSERT_NDEBUG(expr) RBIMPL_ASSERT_NOTHING +#else +# define RUBY_ASSERT_NDEBUG(expr) RUBY_ASSERT_MESG((expr), #expr) +#endif + +/** + * @copydoc #RUBY_ASSERT_WHEN + * @param mesg The message to display on failure. + */ +#if RUBY_DEBUG +# define RUBY_ASSERT_MESG_WHEN(cond, expr, mesg) RUBY_ASSERT_MESG((expr), (mesg)) +#else +# define RUBY_ASSERT_MESG_WHEN(cond, expr, mesg) \ + ((cond) ? RUBY_ASSERT_MESG((expr), (mesg)) : RBIMPL_ASSERT_NOTHING) +#endif + +/** + * A variant of #RUBY_ASSERT that asserts when either #RUBY_DEBUG or `cond` + * parameter is truthy. + * + * @param cond Extra condition that shall hold for assertion to take effect. + * @param expr What supposedly evaluates to true. + */ +#define RUBY_ASSERT_WHEN(cond, expr) RUBY_ASSERT_MESG_WHEN((cond), (expr), #expr) + +/** + * This is either #RUBY_ASSERT or #RBIMPL_ASSUME, depending on #RUBY_DEBUG. + * + * @copydetails #RUBY_ASSERT + */ +#if RUBY_DEBUG +# define RBIMPL_ASSERT_OR_ASSUME(expr) RUBY_ASSERT_ALWAYS(expr) +#elif RBIMPL_COMPILER_BEFORE(Clang, 7, 0, 0) +# /* See commit 67d259c5dccd31fe49d417fec169977712ffdf10 */ +# define RBIMPL_ASSERT_OR_ASSUME(expr) RBIMPL_ASSERT_NOTHING +#elif defined(RUBY_ASSERT_NOASSUME) +# /* See commit d300a734414ef6de7e8eb563b7cc4389c455ed08 */ +# define RBIMPL_ASSERT_OR_ASSUME(expr) RBIMPL_ASSERT_NOTHING +#elif ! defined(RBIMPL_HAVE___ASSUME) +# define RBIMPL_ASSERT_OR_ASSUME(expr) RBIMPL_ASSERT_NOTHING +#else +# define RBIMPL_ASSERT_OR_ASSUME(expr) RBIMPL_ASSUME(expr) +#endif + +#endif /* RUBY_ASSERT_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/atomic.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/atomic.h new file mode 100644 index 0000000..3eb80fb --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/atomic.h @@ -0,0 +1,890 @@ +#ifndef RUBY_ATOMIC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_ATOMIC_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Atomic operations + * + * Basically, if we could assume either C11 or C++11, these macros are just + * redundant. Sadly we cannot. We have to do them ourselves. + */ + +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include /* size_t */ +#endif + +#ifdef HAVE_SYS_TYPES_H +# include /* ssize_t */ +#endif + +#if RBIMPL_COMPILER_SINCE(MSVC, 13, 0, 0) +# pragma intrinsic(_InterlockedOr) +#elif defined(__sun) && defined(HAVE_ATOMIC_H) +# include +#endif + +#include "ruby/assert.h" +#include "ruby/backward/2/limits.h" +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/noalias.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/value.h" +#include "ruby/internal/static_assert.h" +#include "ruby/internal/stdbool.h" + +/* + * Asserts that your environment supports more than one atomic types. These + * days systems tend to have such property (C11 was a standard of decades ago, + * right?) but we still support older ones. + */ +#if defined(__DOXYGEN__) || defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_SYNC_BUILTINS) +# define RUBY_ATOMIC_GENERIC_MACRO 1 +#endif + +/** + * Type that is eligible for atomic operations. Depending on your host + * platform you might have more than one such type, but we choose one of them + * anyways. + */ +#if defined(__DOXYGEN__) +using rb_atomic_t = std::atomic; +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) +typedef unsigned int rb_atomic_t; +#elif defined(HAVE_GCC_SYNC_BUILTINS) +typedef unsigned int rb_atomic_t; +#elif defined(_WIN32) +typedef LONG rb_atomic_t; +#elif defined(__sun) && defined(HAVE_ATOMIC_H) +typedef unsigned int rb_atomic_t; +#else +# error No atomic operation found +#endif + +/** + * Atomically replaces the value pointed by `var` with the result of addition + * of `val` to the old value of `var`. + * + * @param var A variable of ::rb_atomic_t. + * @param val Value to add. + * @return What was stored in `var` before the addition. + * @post `var` holds `var + val`. + */ +#define RUBY_ATOMIC_FETCH_ADD(var, val) rbimpl_atomic_fetch_add(&(var), (val)) + +/** + * Atomically replaces the value pointed by `var` with the result of + * subtraction of `val` to the old value of `var`. + * + * @param var A variable of ::rb_atomic_t. + * @param val Value to subtract. + * @return What was stored in `var` before the subtraction. + * @post `var` holds `var - val`. + */ +#define RUBY_ATOMIC_FETCH_SUB(var, val) rbimpl_atomic_fetch_sub(&(var), (val)) + +/** + * Atomically replaces the value pointed by `var` with the result of + * bitwise OR between `val` and the old value of `var`. + * + * @param var A variable of ::rb_atomic_t. + * @param val Value to mix. + * @return void + * @post `var` holds `var | val`. + * @note For portability, this macro can return void. + */ +#define RUBY_ATOMIC_OR(var, val) rbimpl_atomic_or(&(var), (val)) + +/** + * Atomically replaces the value pointed by `var` with `val`. This is just an + * assignment, but you can additionally know the previous value. + * + * @param var A variable of ::rb_atomic_t. + * @param val Value to set. + * @return What was stored in `var` before the assignment. + * @post `var` holds `val`. + */ +#define RUBY_ATOMIC_EXCHANGE(var, val) rbimpl_atomic_exchange(&(var), (val)) + +/** + * Atomic compare-and-swap. This stores `val` to `var` if and only if the + * assignment changes the value of `var` from `oldval` to `newval`. You can + * detect whether the assignment happened or not using the return value. + * + * @param var A variable of ::rb_atomic_t. + * @param oldval Expected value of `var` before the assignment. + * @param newval What you want to store at `var`. + * @retval oldval Successful assignment (`var` is now `newval`). + * @retval otherwise Something else is at `var`; not updated. + */ +#define RUBY_ATOMIC_CAS(var, oldval, newval) \ + rbimpl_atomic_cas(&(var), (oldval), (newval)) + +/** + * Identical to #RUBY_ATOMIC_EXCHANGE, except for the return type. + * + * @param var A variable of ::rb_atomic_t. + * @param val Value to set. + * @return void + * @post `var` holds `val`. + */ +#define RUBY_ATOMIC_SET(var, val) rbimpl_atomic_set(&(var), (val)) + +/** + * Identical to #RUBY_ATOMIC_FETCH_ADD, except for the return type. + * + * @param var A variable of ::rb_atomic_t. + * @param val Value to add. + * @return void + * @post `var` holds `var + val`. + */ +#define RUBY_ATOMIC_ADD(var, val) rbimpl_atomic_add(&(var), (val)) + +/** + * Identical to #RUBY_ATOMIC_FETCH_SUB, except for the return type. + * + * @param var A variable of ::rb_atomic_t. + * @param val Value to subtract. + * @return void + * @post `var` holds `var - val`. + */ +#define RUBY_ATOMIC_SUB(var, val) rbimpl_atomic_sub(&(var), (val)) + +/** + * Atomically increments the value pointed by `var`. + * + * @param var A variable of ::rb_atomic_t. + * @return void + * @post `var` holds `var + 1`. + */ +#define RUBY_ATOMIC_INC(var) rbimpl_atomic_inc(&(var)) + +/** + * Atomically decrements the value pointed by `var`. + * + * @param var A variable of ::rb_atomic_t. + * @return void + * @post `var` holds `var - 1`. + */ +#define RUBY_ATOMIC_DEC(var) rbimpl_atomic_dec(&(var)) + +/** + * Identical to #RUBY_ATOMIC_INC, except it expects its argument is `size_t`. + * There are cases where ::rb_atomic_t is 32bit while `size_t` is 64bit. This + * should be used for size related operations to support such platforms. + * + * @param var A variable of `size_t`. + * @return void + * @post `var` holds `var + 1`. + */ +#define RUBY_ATOMIC_SIZE_INC(var) rbimpl_atomic_size_inc(&(var)) + +/** + * Identical to #RUBY_ATOMIC_DEC, except it expects its argument is `size_t`. + * There are cases where ::rb_atomic_t is 32bit while `size_t` is 64bit. This + * should be used for size related operations to support such platforms. + * + * @param var A variable of `size_t`. + * @return void + * @post `var` holds `var - 1`. + */ +#define RUBY_ATOMIC_SIZE_DEC(var) rbimpl_atomic_size_dec(&(var)) + +/** + * Identical to #RUBY_ATOMIC_EXCHANGE, except it expects its arguments are + * `size_t`. There are cases where ::rb_atomic_t is 32bit while `size_t` is + * 64bit. This should be used for size related operations to support such + * platforms. + * + * @param var A variable of `size_t`. + * @param val Value to set. + * @return What was stored in `var` before the assignment. + * @post `var` holds `val`. + */ +#define RUBY_ATOMIC_SIZE_EXCHANGE(var, val) \ + rbimpl_atomic_size_exchange(&(var), (val)) + +/** + * Identical to #RUBY_ATOMIC_CAS, except it expects its arguments are `size_t`. + * There are cases where ::rb_atomic_t is 32bit while `size_t` is 64bit. This + * should be used for size related operations to support such platforms. + * + * @param var A variable of `size_t`. + * @param oldval Expected value of `var` before the assignment. + * @param newval What you want to store at `var`. + * @retval oldval Successful assignment (`var` is now `newval`). + * @retval otherwise Something else is at `var`; not updated. + */ +#define RUBY_ATOMIC_SIZE_CAS(var, oldval, newval) \ + rbimpl_atomic_size_cas(&(var), (oldval), (newval)) + +/** + * Identical to #RUBY_ATOMIC_ADD, except it expects its arguments are `size_t`. + * There are cases where ::rb_atomic_t is 32bit while `size_t` is 64bit. This + * should be used for size related operations to support such platforms. + * + * @param var A variable of `size_t`. + * @param val Value to add. + * @return void + * @post `var` holds `var + val`. + */ +#define RUBY_ATOMIC_SIZE_ADD(var, val) rbimpl_atomic_size_add(&(var), (val)) + +/** + * Identical to #RUBY_ATOMIC_SUB, except it expects its arguments are `size_t`. + * There are cases where ::rb_atomic_t is 32bit while `size_t` is 64bit. This + * should be used for size related operations to support such platforms. + * + * @param var A variable of `size_t`. + * @param val Value to subtract. + * @return void + * @post `var` holds `var - val`. + */ +#define RUBY_ATOMIC_SIZE_SUB(var, val) rbimpl_atomic_size_sub(&(var), (val)) + +/** + * Identical to #RUBY_ATOMIC_EXCHANGE, except it expects its arguments are + * `void*`. There are cases where ::rb_atomic_t is 32bit while `void*` is + * 64bit. This should be used for pointer related operations to support such + * platforms. + * + * @param var A variable of `void *`. + * @param val Value to set. + * @return What was stored in `var` before the assignment. + * @post `var` holds `val`. + * + * @internal + * + * :FIXME: this `(void*)` cast is evil! However `void*` is incompatible with + * some pointers, most notably function pointers. + */ +#define RUBY_ATOMIC_PTR_EXCHANGE(var, val) \ + RBIMPL_CAST(rbimpl_atomic_ptr_exchange((void **)&(var), (void *)val)) + +/** + * Identical to #RUBY_ATOMIC_CAS, except it expects its arguments are `void*`. + * There are cases where ::rb_atomic_t is 32bit while `void*` is 64bit. This + * should be used for size related operations to support such platforms. + * + * @param var A variable of `void*`. + * @param oldval Expected value of `var` before the assignment. + * @param newval What you want to store at `var`. + * @retval oldval Successful assignment (`var` is now `newval`). + * @retval otherwise Something else is at `var`; not updated. + */ +#define RUBY_ATOMIC_PTR_CAS(var, oldval, newval) \ + RBIMPL_CAST(rbimpl_atomic_ptr_cas((void **)&(var), (oldval), (newval))) + +/** + * Identical to #RUBY_ATOMIC_EXCHANGE, except it expects its arguments are + * ::VALUE. There are cases where ::rb_atomic_t is 32bit while ::VALUE is + * 64bit. This should be used for pointer related operations to support such + * platforms. + * + * @param var A variable of ::VALUE. + * @param val Value to set. + * @return What was stored in `var` before the assignment. + * @post `var` holds `val`. + */ +#define RUBY_ATOMIC_VALUE_EXCHANGE(var, val) \ + rbimpl_atomic_value_exchange(&(var), (val)) + +/** + * Identical to #RUBY_ATOMIC_CAS, except it expects its arguments are ::VALUE. + * There are cases where ::rb_atomic_t is 32bit while ::VALUE is 64bit. This + * should be used for size related operations to support such platforms. + * + * @param var A variable of `void*`. + * @param oldval Expected value of `var` before the assignment. + * @param newval What you want to store at `var`. + * @retval oldval Successful assignment (`var` is now `newval`). + * @retval otherwise Something else is at `var`; not updated. + */ +#define RUBY_ATOMIC_VALUE_CAS(var, oldval, newval) \ + rbimpl_atomic_value_cas(&(var), (oldval), (newval)) + +/** @cond INTERNAL_MACRO */ +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline rb_atomic_t +rbimpl_atomic_fetch_add(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + return __atomic_fetch_add(ptr, val, __ATOMIC_SEQ_CST); + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + return __sync_fetch_and_add(ptr, val); + +#elif defined(_WIN32) + return InterlockedExchangeAdd(ptr, val); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + /* + * `atomic_add_int_nv` takes its second argument as `int`! Meanwhile our + * `rb_atomic_t` is unsigned. We cannot pass `val` as-is. We have to + * manually check integer overflow. + */ + RBIMPL_ASSERT_OR_ASSUME(val <= INT_MAX); + return atomic_add_int_nv(ptr, val) - val; + +#else +# error Unsupported platform. +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_add(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + /* + * GCC on amd64 is smart enough to detect this `__atomic_add_fetch`'s + * return value is not used, then compiles it into single `LOCK ADD` + * instruction. + */ + __atomic_add_fetch(ptr, val, __ATOMIC_SEQ_CST); + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + __sync_add_and_fetch(ptr, val); + +#elif defined(_WIN32) + /* + * `InterlockedExchangeAdd` is `LOCK XADD`. It seems there also is + * `_InterlockedAdd` intrinsic in ARM Windows but not for x86? Sticking to + * `InterlockedExchangeAdd` for better portability. + */ + InterlockedExchangeAdd(ptr, val); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + /* Ditto for `atomic_add_int_nv`. */ + RBIMPL_ASSERT_OR_ASSUME(val <= INT_MAX); + atomic_add_int(ptr, val); + +#else +# error Unsupported platform. +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_size_add(volatile size_t *ptr, size_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + __atomic_add_fetch(ptr, val, __ATOMIC_SEQ_CST); + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + __sync_add_and_fetch(ptr, val); + +#elif defined(_WIN32) && defined(_M_AMD64) + /* Ditto for `InterlockeExchangedAdd`. */ + InterlockedExchangeAdd64(ptr, val); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) && (defined(_LP64) || defined(_I32LPx)) + /* Ditto for `atomic_add_int_nv`. */ + RBIMPL_ASSERT_OR_ASSUME(val <= LONG_MAX); + atomic_add_long(ptr, val); + +#else + RBIMPL_STATIC_ASSERT(size_of_rb_atomic_t, sizeof *ptr == sizeof(rb_atomic_t)); + + volatile rb_atomic_t *const tmp = RBIMPL_CAST((volatile rb_atomic_t *)ptr); + rbimpl_atomic_add(tmp, val); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_inc(volatile rb_atomic_t *ptr) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_SYNC_BUILTINS) + rbimpl_atomic_add(ptr, 1); + +#elif defined(_WIN32) + InterlockedIncrement(ptr); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + atomic_inc_uint(ptr); + +#else + rbimpl_atomic_add(ptr, 1); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_size_inc(volatile size_t *ptr) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_SYNC_BUILTINS) + rbimpl_atomic_size_add(ptr, 1); + +#elif defined(_WIN32) && defined(_M_AMD64) + InterlockedIncrement64(ptr); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) && (defined(_LP64) || defined(_I32LPx)) + atomic_inc_ulong(ptr); + +#else + rbimpl_atomic_size_add(ptr, 1); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline rb_atomic_t +rbimpl_atomic_fetch_sub(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + return __atomic_fetch_sub(ptr, val, __ATOMIC_SEQ_CST); + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + return __sync_fetch_and_sub(ptr, val); + +#elif defined(_WIN32) + /* rb_atomic_t is signed here! Safe to do `-val`. */ + return InterlockedExchangeAdd(ptr, -val); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + /* Ditto for `rbimpl_atomic_fetch_add`. */ + const signed neg = -1; + RBIMPL_ASSERT_OR_ASSUME(val <= INT_MAX); + return atomic_add_int_nv(ptr, neg * val) + val; + +#else +# error Unsupported platform. +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_sub(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + __atomic_sub_fetch(ptr, val, __ATOMIC_SEQ_CST); + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + __sync_sub_and_fetch(ptr, val); + +#elif defined(_WIN32) + InterlockedExchangeAdd(ptr, -val); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + const signed neg = -1; + RBIMPL_ASSERT_OR_ASSUME(val <= INT_MAX); + atomic_add_int(ptr, neg * val); + +#else +# error Unsupported platform. +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_size_sub(volatile size_t *ptr, size_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + __atomic_sub_fetch(ptr, val, __ATOMIC_SEQ_CST); + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + __sync_sub_and_fetch(ptr, val); + +#elif defined(_WIN32) && defined(_M_AMD64) + const ssize_t neg = -1; + InterlockedExchangeAdd64(ptr, neg * val); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) && (defined(_LP64) || defined(_I32LPx)) + const signed neg = -1; + RBIMPL_ASSERT_OR_ASSUME(val <= LONG_MAX); + atomic_add_long(ptr, neg * val); + +#else + RBIMPL_STATIC_ASSERT(size_of_rb_atomic_t, sizeof *ptr == sizeof(rb_atomic_t)); + + volatile rb_atomic_t *const tmp = RBIMPL_CAST((volatile rb_atomic_t *)ptr); + rbimpl_atomic_sub(tmp, val); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_dec(volatile rb_atomic_t *ptr) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_SYNC_BUILTINS) + rbimpl_atomic_sub(ptr, 1); + +#elif defined(_WIN32) + InterlockedDecrement(ptr); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + atomic_dec_uint(ptr); + +#else + rbimpl_atomic_sub(ptr, 1); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_size_dec(volatile size_t *ptr) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_SYNC_BUILTINS) + rbimpl_atomic_size_sub(ptr, 1); + +#elif defined(_WIN32) && defined(_M_AMD64) + InterlockedDecrement64(ptr); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) && (defined(_LP64) || defined(_I32LPx)) + atomic_dec_ulong(ptr); + +#else + rbimpl_atomic_size_sub(ptr, 1); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_or(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + __atomic_or_fetch(ptr, val, __ATOMIC_SEQ_CST); + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + __sync_or_and_fetch(ptr, val); + +#elif RBIMPL_COMPILER_SINCE(MSVC, 13, 0, 0) + _InterlockedOr(ptr, val); + +#elif defined(_WIN32) && defined(__GNUC__) + /* This was for old MinGW. Maybe not needed any longer? */ + __asm__( + "lock\n\t" + "orl\t%1, %0" + : "=m"(ptr) + : "Ir"(val)); + +#elif defined(_WIN32) && defined(_M_IX86) + __asm mov eax, ptr; + __asm mov ecx, val; + __asm lock or [eax], ecx; + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + atomic_or_uint(ptr, val); + +#else +# error Unsupported platform. +#endif +} + +/* Nobody uses this but for theoretical backwards compatibility... */ +#if RBIMPL_COMPILER_BEFORE(MSVC, 13, 0, 0) +static inline rb_atomic_t +rb_w32_atomic_or(volatile rb_atomic_t *var, rb_atomic_t val) +{ + return rbimpl_atomic_or(var, val); +} +#endif + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline rb_atomic_t +rbimpl_atomic_exchange(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + return __atomic_exchange_n(ptr, val, __ATOMIC_SEQ_CST); + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + return __sync_lock_test_and_set(ptr, val); + +#elif defined(_WIN32) + return InterlockedExchange(ptr, val); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + return atomic_swap_uint(ptr, val); + +#else +# error Unsupported platform. +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline size_t +rbimpl_atomic_size_exchange(volatile size_t *ptr, size_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + return __atomic_exchange_n(ptr, val, __ATOMIC_SEQ_CST); + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + return __sync_lock_test_and_set(ptr, val); + +#elif defined(_WIN32) && defined(_M_AMD64) + return InterlockedExchange64(ptr, val); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) && (defined(_LP64) || defined(_I32LPx)) + return atomic_swap_ulong(ptr, val); + +#else + RBIMPL_STATIC_ASSERT(size_of_size_t, sizeof *ptr == sizeof(rb_atomic_t)); + + volatile rb_atomic_t *const tmp = RBIMPL_CAST((volatile rb_atomic_t *)ptr); + const rb_atomic_t ret = rbimpl_atomic_exchange(tmp, val); + return RBIMPL_CAST((size_t)ret); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void * +rbimpl_atomic_ptr_exchange(void *volatile *ptr, const void *val) +{ +#if 0 + +#elif defined(InterlockedExchangePointer) + /* const_cast */ + PVOID *pptr = RBIMPL_CAST((PVOID *)ptr); + PVOID pval = RBIMPL_CAST((PVOID)val); + return InterlockedExchangePointer(pptr, pval); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + return atomic_swap_ptr(ptr, RBIMPL_CAST((void *)val)); + +#else + RBIMPL_STATIC_ASSERT(sizeof_voidp, sizeof *ptr == sizeof(size_t)); + + const size_t sval = RBIMPL_CAST((size_t)val); + volatile size_t *const sptr = RBIMPL_CAST((volatile size_t *)ptr); + const size_t sret = rbimpl_atomic_size_exchange(sptr, sval); + return RBIMPL_CAST((void *)sret); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline VALUE +rbimpl_atomic_value_exchange(volatile VALUE *ptr, VALUE val) +{ + RBIMPL_STATIC_ASSERT(sizeof_value, sizeof *ptr == sizeof(size_t)); + + const size_t sval = RBIMPL_CAST((size_t)val); + volatile size_t *const sptr = RBIMPL_CAST((volatile size_t *)ptr); + const size_t sret = rbimpl_atomic_size_exchange(sptr, sval); + return RBIMPL_CAST((VALUE)sret); +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void +rbimpl_atomic_set(volatile rb_atomic_t *ptr, rb_atomic_t val) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + __atomic_store_n(ptr, val, __ATOMIC_SEQ_CST); + +#else + /* Maybe std::atomic::store can be faster? */ + rbimpl_atomic_exchange(ptr, val); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline rb_atomic_t +rbimpl_atomic_cas(volatile rb_atomic_t *ptr, rb_atomic_t oldval, rb_atomic_t newval) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + __atomic_compare_exchange_n( + ptr, &oldval, newval, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); + return oldval; + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + return __sync_val_compare_and_swap(ptr, oldval, newval); + +#elif RBIMPL_COMPILER_SINCE(MSVC, 13, 0, 0) + return InterlockedCompareExchange(ptr, newval, oldval); + +#elif defined(_WIN32) + PVOID *pptr = RBIMPL_CAST((PVOID *)ptr); + PVOID pold = RBIMPL_CAST((PVOID)oldval); + PVOID pnew = RBIMPL_CAST((PVOID)newval); + PVOID pret = InterlockedCompareExchange(pptr, pnew, pold); + return RBIMPL_CAST((rb_atomic_t)pret); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + return atomic_cas_uint(ptr, oldval, newval); + +#else +# error Unsupported platform. +#endif +} + +/* Nobody uses this but for theoretical backwards compatibility... */ +#if RBIMPL_COMPILER_BEFORE(MSVC, 13, 0, 0) +static inline rb_atomic_t +rb_w32_atomic_cas(volatile rb_atomic_t *var, rb_atomic_t oldval, rb_atomic_t newval) +{ + return rbimpl_atomic_cas(var, oldval, newval); +} +#endif + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline size_t +rbimpl_atomic_size_cas(volatile size_t *ptr, size_t oldval, size_t newval) +{ +#if 0 + +#elif defined(HAVE_GCC_ATOMIC_BUILTINS) + __atomic_compare_exchange_n( + ptr, &oldval, newval, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); + return oldval; + +#elif defined(HAVE_GCC_SYNC_BUILTINS) + return __sync_val_compare_and_swap(ptr, oldval, newval); + +#elif defined(_WIN32) && defined(_M_AMD64) + return InterlockedCompareExchange64(ptr, newval, oldval); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) && (defined(_LP64) || defined(_I32LPx)) + return atomic_cas_ulong(ptr, oldval, newval); + +#else + RBIMPL_STATIC_ASSERT(size_of_size_t, sizeof *ptr == sizeof(rb_atomic_t)); + + volatile rb_atomic_t *tmp = RBIMPL_CAST((volatile rb_atomic_t *)ptr); + return rbimpl_atomic_cas(tmp, oldval, newval); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline void * +rbimpl_atomic_ptr_cas(void **ptr, const void *oldval, const void *newval) +{ +#if 0 + +#elif defined(InterlockedExchangePointer) + /* ... Can we say that InterlockedCompareExchangePtr surly exists when + * InterlockedExchangePointer is defined? Seems so but...?*/ + PVOID *pptr = RBIMPL_CAST((PVOID *)ptr); + PVOID pold = RBIMPL_CAST((PVOID)oldval); + PVOID pnew = RBIMPL_CAST((PVOID)newval); + return InterlockedCompareExchangePointer(pptr, pnew, pold); + +#elif defined(__sun) && defined(HAVE_ATOMIC_H) + void *pold = RBIMPL_CAST((void *)oldval); + void *pnew = RBIMPL_CAST((void *)newval); + return atomic_cas_ptr(ptr, pold, pnew); + + +#else + RBIMPL_STATIC_ASSERT(sizeof_voidp, sizeof *ptr == sizeof(size_t)); + + const size_t snew = RBIMPL_CAST((size_t)newval); + const size_t sold = RBIMPL_CAST((size_t)oldval); + volatile size_t *const sptr = RBIMPL_CAST((volatile size_t *)ptr); + const size_t sret = rbimpl_atomic_size_cas(sptr, sold, snew); + return RBIMPL_CAST((void *)sret); + +#endif +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +static inline VALUE +rbimpl_atomic_value_cas(volatile VALUE *ptr, VALUE oldval, VALUE newval) +{ + RBIMPL_STATIC_ASSERT(sizeof_value, sizeof *ptr == sizeof(size_t)); + + const size_t snew = RBIMPL_CAST((size_t)newval); + const size_t sold = RBIMPL_CAST((size_t)oldval); + volatile size_t *const sptr = RBIMPL_CAST((volatile size_t *)ptr); + const size_t sret = rbimpl_atomic_size_cas(sptr, sold, snew); + return RBIMPL_CAST((VALUE)sret); +} +/** @endcond */ +#endif /* RUBY_ATOMIC_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward.h new file mode 100644 index 0000000..f804c2c --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward.h @@ -0,0 +1,25 @@ +#ifndef RUBY_RUBY_BACKWARD_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_RUBY_BACKWARD_H 1 +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ +#include "ruby/internal/value.h" +#include "ruby/internal/interpreter.h" +#include "ruby/backward/2/attributes.h" + +#define RBIMPL_ATTR_DEPRECATED_SINCE(ver) RBIMPL_ATTR_DEPRECATED(("since " #ver)) +#define RBIMPL_ATTR_DEPRECATED_INTERNAL(ver) RBIMPL_ATTR_DEPRECATED(("since "#ver", also internal")) +#define RBIMPL_ATTR_DEPRECATED_INTERNAL_ONLY() RBIMPL_ATTR_DEPRECATED(("only for internal use")) + +RBIMPL_ATTR_DEPRECATED_INTERNAL_ONLY() void rb_clear_constant_cache(void); + +/* from version.c */ +#if defined(RUBY_SHOW_COPYRIGHT_TO_DIE) && !!(RUBY_SHOW_COPYRIGHT_TO_DIE+0) +# error RUBY_SHOW_COPYRIGHT_TO_DIE is deprecated +#endif + +#endif /* RUBY_RUBY_BACKWARD_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/assume.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/assume.h new file mode 100644 index 0000000..d148710 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/assume.h @@ -0,0 +1,56 @@ +#ifndef RUBY_BACKWARD2_ASSUME_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_ASSUME_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #ASSUME / #RB_LIKELY / #UNREACHABLE + */ +#include "ruby/internal/config.h" +#include "ruby/internal/assume.h" +#include "ruby/internal/has/builtin.h" + +#define ASSUME RBIMPL_ASSUME /**< @old{RBIMPL_ASSUME} */ +#define UNREACHABLE RBIMPL_UNREACHABLE() /**< @old{RBIMPL_UNREACHABLE} */ +#define UNREACHABLE_RETURN RBIMPL_UNREACHABLE_RETURN /**< @old{RBIMPL_UNREACHABLE_RETURN} */ + +/* likely */ +#if RBIMPL_HAS_BUILTIN(__builtin_expect) +/** + * Asserts that the given Boolean expression likely holds. + * + * @param x An expression that likely holds. + * + * @note Consider this macro carefully. It has been here since when CPUs were + * like babies, but contemporary processors are beasts. They are + * smarter than mare mortals like us today. Their branch predictions + * highly expectedly outperform your use of this macro. + */ +# define RB_LIKELY(x) (__builtin_expect(!!(x), 1)) + +/** + * Asserts that the given Boolean expression likely doesn't hold. + * + * @param x An expression that likely doesn't hold. + */ +# define RB_UNLIKELY(x) (__builtin_expect(!!(x), 0)) +#else +# define RB_LIKELY(x) (x) +# define RB_UNLIKELY(x) (x) +#endif + +#endif /* RUBY_BACKWARD2_ASSUME_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/attributes.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/attributes.h new file mode 100644 index 0000000..73acfc9 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/attributes.h @@ -0,0 +1,165 @@ +#ifndef RUBY_BACKWARD2_ATTRIBUTES_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_ATTRIBUTES_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Various attribute-related macros. + * + * ### Q&A ### + * + * - Q: Why are the macros defined in this header file so inconsistent in + * style? + * + * - A: Don't know. Don't blame me. Backward compatibility is the key here. + * I'm just preserving what they have been. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/attr/alloc_size.h" +#include "ruby/internal/attr/cold.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/attr/error.h" +#include "ruby/internal/attr/forceinline.h" +#include "ruby/internal/attr/format.h" +#include "ruby/internal/attr/maybe_unused.h" +#include "ruby/internal/attr/noinline.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/attr/restrict.h" +#include "ruby/internal/attr/returns_nonnull.h" +#include "ruby/internal/attr/warning.h" +#include "ruby/internal/has/attribute.h" + +/* function attributes */ +#undef CONSTFUNC +#define CONSTFUNC(x) RBIMPL_ATTR_CONST() x + +#undef PUREFUNC +#define PUREFUNC(x) RBIMPL_ATTR_PURE() x + +#undef DEPRECATED +#define DEPRECATED(x) RBIMPL_ATTR_DEPRECATED(("")) x + +#undef DEPRECATED_BY +#define DEPRECATED_BY(n,x) RBIMPL_ATTR_DEPRECATED(("by: " # n)) x + +#undef DEPRECATED_TYPE +#if defined(__GNUC__) +# define DEPRECATED_TYPE(mesg, decl) \ + _Pragma("message \"DEPRECATED_TYPE is deprecated\""); \ + decl RBIMPL_ATTR_DEPRECATED(mseg) +#elif defined(_MSC_VER) +# pragma deprecated(DEPRECATED_TYPE) +# define DEPRECATED_TYPE(mesg, decl) \ + __pragma(message(__FILE__"("STRINGIZE(__LINE__)"): warning: " \ + "DEPRECATED_TYPE is deprecated")) \ + decl RBIMPL_ATTR_DEPRECATED(mseg) +#else +# define DEPRECATED_TYPE(mesg, decl) \ + <-<-"DEPRECATED_TYPE is deprecated"->-> +#endif + +#undef RUBY_CXX_DEPRECATED +#define RUBY_CXX_DEPRECATED(mseg) RBIMPL_ATTR_DEPRECATED((mseg)) + +#undef NOINLINE +#define NOINLINE(x) RBIMPL_ATTR_NOINLINE() x + +#ifndef MJIT_HEADER +# undef ALWAYS_INLINE +# define ALWAYS_INLINE(x) RBIMPL_ATTR_FORCEINLINE() x +#endif + +#undef ERRORFUNC +#define ERRORFUNC(mesg, x) RBIMPL_ATTR_ERROR(mesg) x +#if RBIMPL_HAS_ATTRIBUTE(error) +# define HAVE_ATTRIBUTE_ERRORFUNC 1 +#endif + +#undef WARNINGFUNC +#define WARNINGFUNC(mesg, x) RBIMPL_ATTR_WARNING(mesg) x +#if RBIMPL_HAS_ATTRIBUTE(warning) +# define HAVE_ATTRIBUTE_WARNINGFUNC 1 +#endif + +/* + cold attribute for code layout improvements + RUBY_FUNC_ATTRIBUTE not used because MSVC does not like nested func macros + */ +#undef COLDFUNC +#define COLDFUNC RBIMPL_ATTR_COLD() + +#define PRINTF_ARGS(decl, string_index, first_to_check) \ + RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, (string_index), (first_to_check)) \ + decl + +#undef RUBY_ATTR_ALLOC_SIZE +#define RUBY_ATTR_ALLOC_SIZE RBIMPL_ATTR_ALLOC_SIZE + +#undef RUBY_ATTR_MALLOC +#define RUBY_ATTR_MALLOC RBIMPL_ATTR_RESTRICT() + +#undef RUBY_ATTR_RETURNS_NONNULL +#define RUBY_ATTR_RETURNS_NONNULL RBIMPL_ATTR_RETURNS_NONNULL() + +#ifndef FUNC_MINIMIZED +#define FUNC_MINIMIZED(x) x +#endif + +#ifndef FUNC_UNOPTIMIZED +#define FUNC_UNOPTIMIZED(x) x +#endif + +#ifndef RUBY_ALIAS_FUNCTION_TYPE +#define RUBY_ALIAS_FUNCTION_TYPE(type, prot, name, args) \ + FUNC_MINIMIZED(type prot) {return (type)name args;} +#endif + +#ifndef RUBY_ALIAS_FUNCTION_VOID +#define RUBY_ALIAS_FUNCTION_VOID(prot, name, args) \ + FUNC_MINIMIZED(void prot) {name args;} +#endif + +#ifndef RUBY_ALIAS_FUNCTION +#define RUBY_ALIAS_FUNCTION(prot, name, args) \ + RUBY_ALIAS_FUNCTION_TYPE(VALUE, prot, name, args) +#endif + +#undef RUBY_FUNC_NONNULL +#define RUBY_FUNC_NONNULL(n, x) RBIMPL_ATTR_NONNULL(n) x + +#undef NORETURN +#define NORETURN(x) RBIMPL_ATTR_NORETURN() x +#define NORETURN_STYLE_NEW + +#ifndef PACKED_STRUCT +# define PACKED_STRUCT(x) x +#endif + +#ifndef PACKED_STRUCT_UNALIGNED +# if UNALIGNED_WORD_ACCESS +# define PACKED_STRUCT_UNALIGNED(x) PACKED_STRUCT(x) +# else +# define PACKED_STRUCT_UNALIGNED(x) x +# endif +#endif + +#undef RB_UNUSED_VAR +#define RB_UNUSED_VAR(x) x RBIMPL_ATTR_MAYBE_UNUSED() + +#endif /* RUBY_BACKWARD2_ATTRIBUTES_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/bool.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/bool.h new file mode 100644 index 0000000..f2fa390 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/bool.h @@ -0,0 +1,36 @@ +#ifndef RUBY_BACKWARD2_BOOL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_BOOL_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines old TRUE / FALSE + */ +#include "ruby/internal/stdbool.h" + +#ifndef FALSE +# define FALSE false +#elif FALSE +# error FALSE must be false +#endif + +#ifndef TRUE +# define TRUE true +#elif ! TRUE +# error TRUE must be true +#endif + +#endif /* RUBY_BACKWARD2_BOOL_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/gcc_version_since.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/gcc_version_since.h new file mode 100644 index 0000000..00cc40c --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/gcc_version_since.h @@ -0,0 +1,37 @@ +#ifndef RUBY_BACKWARD2_GCC_VERSION_SINCE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_GCC_VERSION_SINCE_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines old GCC_VERSION_SINCE + */ +#include "ruby/internal/compiler_since.h" + +#ifndef GCC_VERSION_SINCE +#define GCC_VERSION_SINCE(x, y, z) RBIMPL_COMPILER_SINCE(GCC, (x), (y), (z)) +#endif + +#ifndef GCC_VERSION_BEFORE +#define GCC_VERSION_BEFORE(x, y, z) \ + (RBIMPL_COMPILER_BEFORE(GCC, (x), (y), (z)) || \ + (RBIMPL_COMPILER_IS(GCC) && \ + ((RBIMPL_COMPILER_VERSION_MAJOR == (x)) && \ + ((RBIMPL_COMPILER_VERSION_MINOR == (y)) && \ + (RBIMPL_COMPILER_VERSION_PATCH == (z)))))) +#endif + +#endif /* RUBY_BACKWARD2_GCC_VERSION_SINCE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/inttypes.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/inttypes.h new file mode 100644 index 0000000..4546087 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/inttypes.h @@ -0,0 +1,131 @@ +#ifndef RUBY_BACKWARD2_INTTYPES_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_INTTYPES_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief C99 shim for `` + */ +#include "ruby/internal/config.h" /* PRI_LL_PREFIX etc. are here */ + +#ifdef HAVE_INTTYPES_H +# include +#endif + +#include "ruby/internal/value.h" /* PRI_VALUE_PREFIX is here. */ + +#ifndef PRI_INT_PREFIX +# define PRI_INT_PREFIX "" +#endif + +#ifndef PRI_LONG_PREFIX +# define PRI_LONG_PREFIX "l" +#endif + +#ifndef PRI_SHORT_PREFIX +# define PRI_SHORT_PREFIX "h" +#endif + +#ifdef PRI_64_PREFIX +# /* Take that. */ +#elif SIZEOF_LONG == 8 +# define PRI_64_PREFIX PRI_LONG_PREFIX +#elif SIZEOF_LONG_LONG == 8 +# define PRI_64_PREFIX PRI_LL_PREFIX +#endif + +#ifndef PRIdPTR +# define PRIdPTR PRI_PTR_PREFIX"d" +# define PRIiPTR PRI_PTR_PREFIX"i" +# define PRIoPTR PRI_PTR_PREFIX"o" +# define PRIuPTR PRI_PTR_PREFIX"u" +# define PRIxPTR PRI_PTR_PREFIX"x" +# define PRIXPTR PRI_PTR_PREFIX"X" +#endif + +#ifndef RUBY_PRI_VALUE_MARK +# define RUBY_PRI_VALUE_MARK "\v" +#endif + +#if defined PRIdPTR && !defined PRI_VALUE_PREFIX +# define PRIdVALUE PRIdPTR +# define PRIoVALUE PRIoPTR +# define PRIuVALUE PRIuPTR +# define PRIxVALUE PRIxPTR +# define PRIXVALUE PRIXPTR +# define PRIsVALUE PRIiPTR"" RUBY_PRI_VALUE_MARK +#else +# define PRIdVALUE PRI_VALUE_PREFIX"d" +# define PRIoVALUE PRI_VALUE_PREFIX"o" +# define PRIuVALUE PRI_VALUE_PREFIX"u" +# define PRIxVALUE PRI_VALUE_PREFIX"x" +# define PRIXVALUE PRI_VALUE_PREFIX"X" +# define PRIsVALUE PRI_VALUE_PREFIX"i" RUBY_PRI_VALUE_MARK +#endif + +#ifndef PRI_VALUE_PREFIX +# define PRI_VALUE_PREFIX "" +#endif + +#ifdef PRI_TIMET_PREFIX +# /* Take that. */ +#elif SIZEOF_TIME_T == SIZEOF_INT +# define PRI_TIMET_PREFIX +#elif SIZEOF_TIME_T == SIZEOF_LONG +# define PRI_TIMET_PREFIX "l" +#elif SIZEOF_TIME_T == SIZEOF_LONG_LONG +# define PRI_TIMET_PREFIX PRI_LL_PREFIX +#endif + +#ifdef PRI_PTRDIFF_PREFIX +# /* Take that. */ +#elif SIZEOF_PTRDIFF_T == SIZEOF_INT +# define PRI_PTRDIFF_PREFIX "" +#elif SIZEOF_PTRDIFF_T == SIZEOF_LONG +# define PRI_PTRDIFF_PREFIX "l" +#elif SIZEOF_PTRDIFF_T == SIZEOF_LONG_LONG +# define PRI_PTRDIFF_PREFIX PRI_LL_PREFIX +#endif + +#ifndef PRIdPTRDIFF +# define PRIdPTRDIFF PRI_PTRDIFF_PREFIX"d" +# define PRIiPTRDIFF PRI_PTRDIFF_PREFIX"i" +# define PRIoPTRDIFF PRI_PTRDIFF_PREFIX"o" +# define PRIuPTRDIFF PRI_PTRDIFF_PREFIX"u" +# define PRIxPTRDIFF PRI_PTRDIFF_PREFIX"x" +# define PRIXPTRDIFF PRI_PTRDIFF_PREFIX"X" +#endif + +#ifdef PRI_SIZE_PREFIX +# /* Take that. */ +#elif SIZEOF_SIZE_T == SIZEOF_INT +# define PRI_SIZE_PREFIX "" +#elif SIZEOF_SIZE_T == SIZEOF_LONG +# define PRI_SIZE_PREFIX "l" +#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG +# define PRI_SIZE_PREFIX PRI_LL_PREFIX +#endif + +#ifndef PRIdSIZE +# define PRIdSIZE PRI_SIZE_PREFIX"d" +# define PRIiSIZE PRI_SIZE_PREFIX"i" +# define PRIoSIZE PRI_SIZE_PREFIX"o" +# define PRIuSIZE PRI_SIZE_PREFIX"u" +# define PRIxSIZE PRI_SIZE_PREFIX"x" +# define PRIXSIZE PRI_SIZE_PREFIX"X" +#endif + +#endif /* RUBY_BACKWARD2_INTTYPES_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/limits.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/limits.h new file mode 100644 index 0000000..6f7021e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/limits.h @@ -0,0 +1,99 @@ +#ifndef RUBY_BACKWARD2_LIMITS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_LIMITS_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Historical shim for ``. + * + * The macros in this header file are obsolescent. Does anyone really need our + * own definition of `CHAR_BIT` today? + */ +#include "ruby/internal/config.h" + +#ifdef HAVE_LIMITS_H +# include +#endif + +#include "ruby/backward/2/long_long.h" + +#ifndef LONG_MAX +# /* assuming 32bit(2's complement) long */ +# define LONG_MAX 2147483647L +#endif + +#ifndef LONG_MIN +# define LONG_MIN (-LONG_MAX-1) +#endif + +#ifndef CHAR_BIT +# define CHAR_BIT 8 +#endif + +#ifdef LLONG_MAX +# /* Take that. */ +#elif defined(LONG_LONG_MAX) +# define LLONG_MAX LONG_LONG_MAX +#elif defined(_I64_MAX) +# define LLONG_MAX _I64_MAX +#else +# /* assuming 64bit(2's complement) long long */ +# define LLONG_MAX 9223372036854775807LL +#endif + +#ifdef LLONG_MIN +# /* Take that. */ +#elif defined(LONG_LONG_MIN) +# define LLONG_MIN LONG_LONG_MIN +#elif defined(_I64_MAX) +# define LLONG_MIN _I64_MIN +#else +# define LLONG_MIN (-LLONG_MAX-1) +#endif + +#ifdef SIZE_MAX +# /* Take that. */ +#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG +# define SIZE_MAX ULLONG_MAX +# define SIZE_MIN ULLONG_MIN +#elif SIZEOF_SIZE_T == SIZEOF_LONG +# define SIZE_MAX ULONG_MAX +# define SIZE_MIN ULONG_MIN +#elif SIZEOF_SIZE_T == SIZEOF_INT +# define SIZE_MAX UINT_MAX +# define SIZE_MIN UINT_MIN +#else +# define SIZE_MAX USHRT_MAX +# define SIZE_MIN USHRT_MIN +#endif + +#ifdef SSIZE_MAX +# /* Take that. */ +#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG +# define SSIZE_MAX LLONG_MAX +# define SSIZE_MIN LLONG_MIN +#elif SIZEOF_SIZE_T == SIZEOF_LONG +# define SSIZE_MAX LONG_MAX +# define SSIZE_MIN LONG_MIN +#elif SIZEOF_SIZE_T == SIZEOF_INT +# define SSIZE_MAX INT_MAX +# define SSIZE_MIN INT_MIN +#else +# define SSIZE_MAX SHRT_MAX +# define SSIZE_MIN SHRT_MIN +#endif + +#endif /* RUBY_BACKWARD2_LIMITS_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/long_long.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/long_long.h new file mode 100644 index 0000000..8e6b274 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/long_long.h @@ -0,0 +1,73 @@ +#ifndef RUBY_BACKWARD2_LONG_LONG_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_LONG_LONG_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines old #LONG_LONG + * + * No known compiler that can compile today's ruby lacks long long. + * Historically MSVC was one of such compiler, but it implemented long long a + * while ago (some time back in 2013). The macros are for backwards + * compatibility only. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/has/warning.h" +#include "ruby/internal/warning_push.h" + +#if defined(__DOXYGEN__) +# /** @cond INTERNAL_MACRO */ +# define HAVE_LONG_LONG 1 +# define HAVE_TRUE_LONG_LONG 1 +# /** @endcond */ +# /** @deprecated Just use `long long` directly. */ +# define LONG_LONG long long. + +#elif RBIMPL_HAS_WARNING("-Wc++11-long-long") +# define HAVE_TRUE_LONG_LONG 1 +# define LONG_LONG \ + RBIMPL_WARNING_PUSH() \ + RBIMPL_WARNING_IGNORED(-Wc++11-long-long) \ + long long \ + RBIMPL_WARNING_POP() + +#elif RBIMPL_HAS_WARNING("-Wlong-long") +# define HAVE_TRUE_LONG_LONG 1 +# define LONG_LONG \ + RBIMPL_WARNING_PUSH() \ + RBIMPL_WARNING_IGNORED(-Wlong-long) \ + long long \ + RBIMPL_WARNING_POP() + +#elif defined(HAVE_LONG_LONG) +# define HAVE_TRUE_LONG_LONG 1 +# define LONG_LONG long long + +#elif SIZEOF___INT64 > 0 +# define HAVE_LONG_LONG 1 +# define LONG_LONG __int64 +# undef SIZEOF_LONG_LONG +# define SIZEOF_LONG_LONG SIZEOF___INT64 + +#else +# error Hello! Ruby developers believe this message must not happen. +# error If you encounter this message, can you file a bug report? +# error Remember to attach a detailed description of your environment. +# error Thank you! +#endif + +#endif /* RBIMPL_BACKWARD2_LONG_LONG_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/r_cast.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/r_cast.h new file mode 100644 index 0000000..3d0f40f --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/r_cast.h @@ -0,0 +1,32 @@ +#ifndef RUBY_BACKWARD2_R_CAST_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_R_CAST_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines old R_CAST + * + * Nobody is actively using this macro. + */ +#define R_CAST(st) (struct st*) +#define RMOVED(obj) (R_CAST(RMoved)(obj)) + +#if defined(__GNUC__) +# warning R_CAST and RMOVED are deprecated +#elif defined(_MSC_VER) +# pragma message("warning: R_CAST and RMOVED are deprecated") +#endif +#endif /* RUBY_BACKWARD2_R_CAST_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/rmodule.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/rmodule.h new file mode 100644 index 0000000..53b3783 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/rmodule.h @@ -0,0 +1,36 @@ +#ifndef RUBY_BACKWARD2_RMODULE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_RMODULE_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Orphan macros. + * + * These macros seems broken since at least 2011. Nobody (except ruby itself + * who is implementing the internals) could have used those macros for a while. + * Kept public as-is here to keep some theoretical backwards compatibility. + */ +#define RMODULE_IV_TBL(m) RCLASS_IV_TBL(m) +#define RMODULE_CONST_TBL(m) RCLASS_CONST_TBL(m) +#define RMODULE_M_TBL(m) RCLASS_M_TBL(m) +#define RMODULE_SUPER(m) RCLASS_SUPER(m) + +#if defined(__GNUC__) +# warning RMODULE_* macros are deprecated +#elif defined(_MSC_VER) +# pragma message("warning: RMODULE_* macros are deprecated") +#endif +#endif /* RUBY_BACKWARD2_RMODULE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/stdalign.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/stdalign.h new file mode 100644 index 0000000..8b491bf --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/stdalign.h @@ -0,0 +1,30 @@ +#ifndef RUBY_BACKWARD2_STDALIGN_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_STDALIGN_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RUBY_ALIGNAS / #RUBY_ALIGNOF + */ +#include "ruby/internal/stdalign.h" + +#undef RUBY_ALIGNAS +#undef RUBY_ALIGNOF +#define RUBY_ALIGNAS RBIMPL_ALIGNAS /**< @copydoc RBIMPL_ALIGNAS */ +#define RUBY_ALIGNOF RBIMPL_ALIGNOF /**< @copydoc RBIMPL_ALIGNOF */ + +#endif /* RUBY_BACKWARD2_STDALIGN_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/stdarg.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/stdarg.h new file mode 100644 index 0000000..08659fe --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/2/stdarg.h @@ -0,0 +1,69 @@ +#ifndef RUBY_BACKWARD2_STDARG_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_BACKWARD2_STDARG_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines old #_ + * + * Nobody should ever use these macros any longer. No known compilers lack + * prototypes today. It's 21st century. Just forget them. + */ + +#undef _ +/** + * @deprecated Nobody practically needs this macro any longer. + * @brief This was a transition path from K&R to ANSI. + */ +#ifdef HAVE_PROTOTYPES +# define _(args) args +#else +# define _(args) () +#endif + +#undef __ +/** + * @deprecated Nobody practically needs this macro any longer. + * @brief This was a transition path from K&R to ANSI. + */ +#ifdef HAVE_STDARG_PROTOTYPES +# define __(args) args +#else +# define __(args) () +#endif + +/** + * Functions declared using this macro take arbitrary arguments, including + * void. + * + * ```CXX + * void func(ANYARGS); + * ``` + * + * This was a necessary evil when there was no such thing like function + * overloading. But it is the 21st century today. People generally need not + * use this. Just use a granular typed function. + * + * @see ruby::backward::cxxanyargs + */ +#ifdef __cplusplus +#define ANYARGS ... +#else +#define ANYARGS +#endif + +#endif /* RUBY_BACKWARD2_STDARG_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/cxxanyargs.hpp b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/cxxanyargs.hpp new file mode 100644 index 0000000..2414b7a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/backward/cxxanyargs.hpp @@ -0,0 +1,700 @@ +#ifndef RUBY_BACKWARD_CXXANYARGS_HPP //-*-C++-*-vi:ft=cpp +#define RUBY_BACKWARD_CXXANYARGS_HPP +/// @file +/// @author @shyouhei +/// @copyright This file is a part of the programming language Ruby. +/// Permission is hereby granted, to either redistribute and/or +/// modify this file, provided that the conditions mentioned in the +/// file COPYING are met. Consult the file for details. +/// @note DO NOT MODERNISE THIS FILE! As the file name implies it is +/// meant to be a backwards compatibility shim. Please stick to +/// C++ 98 and never use newer features, like `constexpr`. +/// @brief Provides old prototypes for C++ programs. +#include "ruby/internal/config.h" +#include "ruby/internal/intern/class.h" +#include "ruby/internal/intern/cont.h" +#include "ruby/internal/intern/hash.h" +#include "ruby/internal/intern/proc.h" +#include "ruby/internal/intern/thread.h" +#include "ruby/internal/intern/variable.h" +#include "ruby/internal/intern/vm.h" +#include "ruby/internal/iterator.h" +#include "ruby/internal/method.h" +#include "ruby/internal/value.h" +#include "ruby/internal/variable.h" +#include "ruby/backward/2/stdarg.h" +#include "ruby/st.h" + +extern "C++" { + +#ifdef HAVE_NULLPTR +#include +#endif + +/// @brief The main namespace. +/// @note The name "ruby" might already be taken, but that must not be a +/// problem because namespaces are allowed to reopen. +namespace ruby { + +/// Backwards compatibility layer. +namespace backward { + +/// Provides ANYARGS deprecation warnings. In C, ANYARGS means there is no +/// function prototype. Literally anything, even including nothing, can be a +/// valid ANYARGS. So passing a correctly prototyped function pointer to an +/// ANYARGS-ed function parameter is valid, at the same time passing an +/// ANYARGS-ed function pointer to a granular typed function parameter is also +/// valid. However on the other hand in C++, ANYARGS doesn't actually mean any +/// number of arguments. C++'s ANYARGS means _variadic_ number of arguments. +/// This is incompatible with ordinal, correct function prototypes. +/// +/// Luckily, function prototypes being distinct each other means they can be +/// overloaded. We can provide a compatibility layer for older Ruby APIs which +/// used to have ANYARGS. This namespace includes such attempts. +namespace cxxanyargs { + +typedef VALUE type(ANYARGS); ///< ANYARGS-ed function type. +typedef void void_type(ANYARGS); ///< ANYARGS-ed function type, void variant. +typedef int int_type(ANYARGS); ///< ANYARGS-ed function type, int variant. +typedef VALUE onearg_type(VALUE); ///< Single-argumented function type. + +/// @name Hooking global variables +/// @{ + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Define a function-backended global variable. +/// @param[in] q Name of the variable. +/// @param[in] w Getter function. +/// @param[in] e Setter function. +/// @note Both functions can be nullptr. +/// @see rb_define_hooked_variable() +/// @deprecated Use granular typed overload instead. +inline void +rb_define_virtual_variable(const char *q, type *w, void_type *e) +{ + rb_gvar_getter_t *r = reinterpret_cast(w); + rb_gvar_setter_t *t = reinterpret_cast(e); + ::rb_define_virtual_variable(q, r, t); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +inline void +rb_define_virtual_variable(const char *q, rb_gvar_getter_t *w, void_type *e) +{ + rb_gvar_setter_t *t = reinterpret_cast(e); + ::rb_define_virtual_variable(q, w, t); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +inline void +rb_define_virtual_variable(const char *q, type *w, rb_gvar_setter_t *e) +{ + rb_gvar_getter_t *r = reinterpret_cast(w); + ::rb_define_virtual_variable(q, r, e); +} + +#ifdef HAVE_NULLPTR +inline void +rb_define_virtual_variable(const char *q, rb_gvar_getter_t *w, std::nullptr_t e) +{ + ::rb_define_virtual_variable(q, w, e); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +inline void +rb_define_virtual_variable(const char *q, type *w, std::nullptr_t e) +{ + rb_gvar_getter_t *r = reinterpret_cast(w); + ::rb_define_virtual_variable(q, r, e); +} + +inline void +rb_define_virtual_variable(const char *q, std::nullptr_t w, rb_gvar_setter_t *e) +{ + ::rb_define_virtual_variable(q, w, e); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +inline void +rb_define_virtual_variable(const char *q, std::nullptr_t w, void_type *e) +{ + rb_gvar_setter_t *r = reinterpret_cast(e); + ::rb_define_virtual_variable(q, w, r); +} +#endif + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Define a function-backended global variable. +/// @param[in] q Name of the variable. +/// @param[in] w Variable storage. +/// @param[in] e Getter function. +/// @param[in] r Setter function. +/// @note Both functions can be nullptr. +/// @see rb_define_virtual_variable() +/// @deprecated Use granular typed overload instead. +inline void +rb_define_hooked_variable(const char *q, VALUE *w, type *e, void_type *r) +{ + rb_gvar_getter_t *t = reinterpret_cast(e); + rb_gvar_setter_t *y = reinterpret_cast(r); + ::rb_define_hooked_variable(q, w, t, y); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +inline void +rb_define_hooked_variable(const char *q, VALUE *w, rb_gvar_getter_t *e, void_type *r) +{ + rb_gvar_setter_t *y = reinterpret_cast(r); + ::rb_define_hooked_variable(q, w, e, y); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +inline void +rb_define_hooked_variable(const char *q, VALUE *w, type *e, rb_gvar_setter_t *r) +{ + rb_gvar_getter_t *t = reinterpret_cast(e); + ::rb_define_hooked_variable(q, w, t, r); +} + +#ifdef HAVE_NULLPTR +inline void +rb_define_hooked_variable(const char *q, VALUE *w, rb_gvar_getter_t *e, std::nullptr_t r) +{ + ::rb_define_hooked_variable(q, w, e, r); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +inline void +rb_define_hooked_variable(const char *q, VALUE *w, type *e, std::nullptr_t r) +{ + rb_gvar_getter_t *y = reinterpret_cast(e); + ::rb_define_hooked_variable(q, w, y, r); +} + +inline void +rb_define_hooked_variable(const char *q, VALUE *w, std::nullptr_t e, rb_gvar_setter_t *r) +{ + ::rb_define_hooked_variable(q, w, e, r); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +inline void +rb_define_hooked_variable(const char *q, VALUE *w, std::nullptr_t e, void_type *r) +{ + rb_gvar_setter_t *y = reinterpret_cast(r); + ::rb_define_hooked_variable(q, w, e, y); +} +#endif + +/// @} +/// @name Exceptions and tag jumps +/// @{ + +// RUBY_CXX_DEPRECATED("by rb_block_call since 1.9") +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Old way to implement iterators. +/// @param[in] q A function that can yield. +/// @param[in] w Passed to `q`. +/// @param[in] e What is to be yielded. +/// @param[in] r Passed to `e`. +/// @return The return value of `q`. +/// @note `e` can be nullptr. +/// @deprecated This function is obsoleted since long before 2.x era. Do not +/// use it any longer. rb_block_call() is provided instead. +inline VALUE +rb_iterate(onearg_type *q, VALUE w, type *e, VALUE r) +{ + rb_block_call_func_t t = reinterpret_cast(e); + return backward::rb_iterate_deprecated(q, w, t, r); +} + +#ifdef HAVE_NULLPTR +RUBY_CXX_DEPRECATED("by rb_block_call since 1.9") +inline VALUE +rb_iterate(onearg_type *q, VALUE w, std::nullptr_t e, VALUE r) +{ + return backward::rb_iterate_deprecated(q, w, e, r); +} +#endif + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Call a method with a block. +/// @param[in] q The self. +/// @param[in] w The method. +/// @param[in] e The # of elems of `r` +/// @param[in] r The arguments. +/// @param[in] t What is to be yielded. +/// @param[in] y Passed to `t` +/// @return Return value of `q#w(*r,&t)` +/// @note 't' can be nullptr. +/// @deprecated Use granular typed overload instead. +inline VALUE +rb_block_call(VALUE q, ID w, int e, const VALUE *r, type *t, VALUE y) +{ + rb_block_call_func_t u = reinterpret_cast(t); + return ::rb_block_call(q, w, e, r, u, y); +} + +#ifdef HAVE_NULLPTR +inline VALUE +rb_block_call(VALUE q, ID w, int e, const VALUE *r, std::nullptr_t t, VALUE y) +{ + return ::rb_block_call(q, w, e, r, t, y); +} +#endif + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief An equivalent of `rescue` clause. +/// @param[in] q A function that can raise. +/// @param[in] w Passed to `q`. +/// @param[in] e A function that cleans-up. +/// @param[in] r Passed to `e`. +/// @return The return value of `q` if no exception occurs, or the return +/// value of `e` if otherwise. +/// @note `e` can be nullptr. +/// @see rb_ensure() +/// @see rb_rescue2() +/// @see rb_protect() +/// @deprecated Use granular typed overload instead. +inline VALUE +rb_rescue(type *q, VALUE w, type *e, VALUE r) +{ + typedef VALUE func1_t(VALUE); + typedef VALUE func2_t(VALUE, VALUE); + func1_t *t = reinterpret_cast(q); + func2_t *y = reinterpret_cast(e); + return ::rb_rescue(t, w, y, r); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief An equivalent of `rescue` clause. +/// @param[in] q A function that can raise. +/// @param[in] w Passed to `q`. +/// @param[in] e A function that cleans-up. +/// @param[in] r Passed to `e`. +/// @param[in] ... 0-terminated list of subclass of @ref rb_eException. +/// @return The return value of `q` if no exception occurs, or the return +/// value of `e` if otherwise. +/// @note `e` can be nullptr. +/// @see rb_ensure() +/// @see rb_rescue() +/// @see rb_protect() +/// @deprecated Use granular typed overload instead. +inline VALUE +rb_rescue2(type *q, VALUE w, type *e, VALUE r, ...) +{ + typedef VALUE func1_t(VALUE); + typedef VALUE func2_t(VALUE, VALUE); + func1_t *t = reinterpret_cast(q); + func2_t *y = reinterpret_cast(e); + va_list ap; + va_start(ap, r); + VALUE ret = ::rb_vrescue2(t, w, y, r, ap); + va_end(ap); + return ret; +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief An equivalent of `ensure` clause. +/// @param[in] q A function that can raise. +/// @param[in] w Passed to `q`. +/// @param[in] e A function that ensures. +/// @param[in] r Passed to `e`. +/// @return The return value of `q`. +/// @note It makes no sense to pass nullptr to `e`. +/// @see rb_rescue() +/// @see rb_rescue2() +/// @see rb_protect() +/// @deprecated Use granular typed overload instead. +inline VALUE +rb_ensure(type *q, VALUE w, type *e, VALUE r) +{ + typedef VALUE func1_t(VALUE); + func1_t *t = reinterpret_cast(q); + func1_t *y = reinterpret_cast(e); + return ::rb_ensure(t, w, y, r); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief An equivalent of `Kernel#catch`. +/// @param[in] q The "tag" string. +/// @param[in] w A function that can throw. +/// @param[in] e Passed to `w`. +/// @return What was thrown. +/// @note `q` can be a nullptr but makes no sense to pass nullptr to`w`. +/// @see rb_block_call() +/// @see rb_protect() +/// @see rb_rb_catch_obj() +/// @see rb_rescue() +/// @deprecated Use granular typed overload instead. +inline VALUE +rb_catch(const char *q, type *w, VALUE e) +{ + rb_block_call_func_t r = reinterpret_cast(w); + return ::rb_catch(q, r, e); +} + +#ifdef HAVE_NULLPTR +inline VALUE +rb_catch(const char *q, std::nullptr_t w, VALUE e) +{ + return ::rb_catch(q, w, e); +} +#endif + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief An equivalent of `Kernel#catch`. +/// @param[in] q The "tag" object. +/// @param[in] w A function that can throw. +/// @param[in] e Passed to `w`. +/// @return What was thrown. +/// @note It makes no sense to pass nullptr to`w`. +/// @see rb_block_call() +/// @see rb_protect() +/// @see rb_rb_catch_obj() +/// @see rb_rescue() +/// @deprecated Use granular typed overload instead. +inline VALUE +rb_catch_obj(VALUE q, type *w, VALUE e) +{ + rb_block_call_func_t r = reinterpret_cast(w); + return ::rb_catch_obj(q, r, e); +} + +/// @} +/// @name Procs, Fibers and Threads +/// @{ + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Creates a rb_cFiber instance. +/// @param[in] q The fiber body. +/// @param[in] w Passed to `q`. +/// @return What was allocated. +/// @note It makes no sense to pass nullptr to`q`. +/// @see rb_proc_new() +/// @see rb_thread_create() +/// @deprecated Use granular typed overload instead. +inline VALUE +rb_fiber_new(type *q, VALUE w) +{ + rb_block_call_func_t e = reinterpret_cast(q); + return ::rb_fiber_new(e, w); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Creates a @ref rb_cProc instance. +/// @param[in] q The proc body. +/// @param[in] w Passed to `q`. +/// @return What was allocated. +/// @note It makes no sense to pass nullptr to`q`. +/// @see rb_fiber_new() +/// @see rb_thread_create() +/// @deprecated Use granular typed overload instead. +inline VALUE +rb_proc_new(type *q, VALUE w) +{ + rb_block_call_func_t e = reinterpret_cast(q); + return ::rb_proc_new(e, w); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Creates a @ref rb_cThread instance. +/// @param[in] q The thread body. +/// @param[in] w Passed to `q`. +/// @return What was allocated. +/// @note It makes no sense to pass nullptr to`q`. +/// @see rb_proc_new() +/// @see rb_fiber_new() +/// @deprecated Use granular typed overload instead. +inline VALUE +rb_thread_create(type *q, void *w) +{ + typedef VALUE ptr_t(void*); + ptr_t *e = reinterpret_cast(q); + return ::rb_thread_create(e, w); +} + +/// @} +/// @name Hash and st_table +/// @{ + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Iteration over the given table. +/// @param[in] q A table to scan. +/// @param[in] w A function to iterate. +/// @param[in] e Passed to `w`. +/// @retval 0 Always returns 0. +/// @note It makes no sense to pass nullptr to`w`. +/// @see st_foreach_check() +/// @see rb_hash_foreach() +/// @deprecated Use granular typed overload instead. +inline int +st_foreach(st_table *q, int_type *w, st_data_t e) +{ + st_foreach_callback_func *r = + reinterpret_cast(w); + return ::st_foreach(q, r, e); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Iteration over the given table. +/// @param[in] q A table to scan. +/// @param[in] w A function to iterate. +/// @param[in] e Passed to `w`. +/// @retval 0 Successful end of iteration. +/// @retval 1 Element removed during traversing. +/// @note It makes no sense to pass nullptr to`w`. +/// @see st_foreach() +/// @deprecated Use granular typed overload instead. +inline int +st_foreach_check(st_table *q, int_type *w, st_data_t e, st_data_t) +{ + st_foreach_check_callback_func *t = + reinterpret_cast(w); + return ::st_foreach_check(q, t, e, 0); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Iteration over the given table. +/// @param[in] q A table to scan. +/// @param[in] w A function to iterate. +/// @param[in] e Passed to `w`. +/// @note It makes no sense to pass nullptr to`w`. +/// @see st_foreach_check() +/// @deprecated Use granular typed overload instead. +inline void +st_foreach_safe(st_table *q, int_type *w, st_data_t e) +{ + st_foreach_callback_func *r = + reinterpret_cast(w); + ::st_foreach_safe(q, r, e); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Iteration over the given hash. +/// @param[in] q A hash to scan. +/// @param[in] w A function to iterate. +/// @param[in] e Passed to `w`. +/// @note It makes no sense to pass nullptr to`w`. +/// @see st_foreach() +/// @deprecated Use granular typed overload instead. +inline void +rb_hash_foreach(VALUE q, int_type *w, VALUE e) +{ + st_foreach_callback_func *r = + reinterpret_cast(w); + ::rb_hash_foreach(q, r, e); +} + +RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated") +/// @brief Iteration over each instance variable of the object. +/// @param[in] q An object. +/// @param[in] w A function to iterate. +/// @param[in] e Passed to `w`. +/// @note It makes no sense to pass nullptr to`w`. +/// @see st_foreach() +/// @deprecated Use granular typed overload instead. +inline void +rb_ivar_foreach(VALUE q, int_type *w, VALUE e) +{ + st_foreach_callback_func *r = + reinterpret_cast(w); + ::rb_ivar_foreach(q, r, e); +} + +/// @} + +/// Driver for *_define_method. ::rb_define_method function for instance takes +/// a pointer to ANYARGS-ed functions, which in fact varies 18 different +/// prototypes. We still need to preserve ANYARGS for storages but why not +/// check the consistencies if possible. In C++ a function has its own +/// prototype, which is a compile-time constant (static type) by nature. We +/// can list up all the possible input types and provide warnings for other +/// cases. This is such attempt. +namespace define_method { + +/// Type of ::rb_f_notimplement(). +typedef VALUE notimpl_type(int, const VALUE *, VALUE, VALUE); + +/// @brief Template metaprogramming to generate function prototypes. +/// @tparam T Type of method id (`ID` or `const char*` in practice). +/// @tparam F Definition driver e.g. ::rb_define_method. +template +struct driver { + + /// @brief Defines a method + /// @tparam N Arity of the function. + /// @tparam U The function in question + template + struct engine { + + /* :TODO: Following deprecation attribute renders tons of warnings (one + * per every method definitions), which is annoying. Of course + * annoyance is the core feature of deprecation warnings... But that + * could be too much, especially when the warnings happen inside of + * machine-generated programs. And SWIG is known to do such thing. + * The new (granular) API was introduced in API version 2.7. As of + * this writing the version is 2.8. Let's warn this later, some time + * during 3.x. Hopefully codes in old (ANYARGS-ed) format should be + * less than now. */ +#if (RUBY_API_VERSION_MAJOR * 100 + RUBY_API_VERSION_MINOR) >= 301 + RUBY_CXX_DEPRECATED("use of ANYARGS is deprecated") +#endif + /// @copydoc define(VALUE klass, T mid, U func) + /// @deprecated Pass correctly typed function instead. + static inline void + define(VALUE klass, T mid, type func) + { + F(klass, mid, func, N); + } + + /// @brief Defines klass#mid as func, whose arity is N. + /// @param[in] klass Where the method lives. + /// @param[in] mid Name of the method to define. + /// @param[in] func Function that implements klass#mid. + static inline void + define(VALUE klass, T mid, U func) + { + F(klass, mid, reinterpret_cast(func), N); + } + + /// @copydoc define(VALUE klass, T mid, U func) + static inline void + define(VALUE klass, T mid, notimpl_type func) + { + F(klass, mid, reinterpret_cast(func), N); + } + }; + + /// @cond INTERNAL_MACRO + template struct specific : public engine {}; + template struct specific<15, b> : public engine<15, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<14, b> : public engine<14, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<13, b> : public engine<13, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<12, b> : public engine<12, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<11, b> : public engine<11, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<10, b> : public engine<10, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 9, b> : public engine< 9, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 8, b> : public engine< 8, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 7, b> : public engine< 7, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 6, b> : public engine< 6, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 5, b> : public engine< 5, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 4, b> : public engine< 4, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 3, b> : public engine< 3, VALUE(*)(VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 2, b> : public engine< 2, VALUE(*)(VALUE, VALUE, VALUE)> {}; + template struct specific< 1, b> : public engine< 1, VALUE(*)(VALUE, VALUE)> {}; + template struct specific< 0, b> : public engine< 0, VALUE(*)(VALUE)> {}; + template struct specific<-1, b> : public engine<-1, VALUE(*)(int argc, VALUE *argv, VALUE self)> { + using engine<-1, VALUE(*)(int argc, VALUE *argv, VALUE self)>::define; + static inline void define(VALUE c, T m, VALUE(*f)(int argc, const VALUE *argv, VALUE self)) { F(c, m, reinterpret_cast(f), -1); } + }; + template struct specific<-2, b> : public engine<-2, VALUE(*)(VALUE, VALUE)> {}; + /// @endcond +}; + +/* We could perhaps merge this struct into the one above using variadic + * template parameters if we could assume C++11, but sadly we cannot. */ +/// @copydoc ruby::backward::cxxanyargs::define_method::driver +template +struct driver0 { + + /// @brief Defines a method + /// @tparam N Arity of the function. + /// @tparam U The function in question + template + struct engine { + RUBY_CXX_DEPRECATED("use of ANYARGS is deprecated") + /// @copydoc define(T mid, U func) + /// @deprecated Pass correctly typed function instead. + static inline void + define(T mid, type func) + { + F(mid, func, N); + } + + /// @brief Defines Kernel#mid as func, whose arity is N. + /// @param[in] mid Name of the method to define. + /// @param[in] func Function that implements klass#mid. + static inline void + define(T mid, U func) + { + F(mid, reinterpret_cast(func), N); + } + + /// @copydoc define(T mid, U func) + /// @deprecated Pass correctly typed function instead. + static inline void + define(T mid, notimpl_type func) + { + F(mid, reinterpret_cast(func), N); + } + }; + + /// @cond INTERNAL_MACRO + template struct specific : public engine {}; + template struct specific<15, b> : public engine<15, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<14, b> : public engine<14, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<13, b> : public engine<13, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<12, b> : public engine<12, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<11, b> : public engine<11, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific<10, b> : public engine<10, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 9, b> : public engine< 9, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 8, b> : public engine< 8, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 7, b> : public engine< 7, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 6, b> : public engine< 6, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 5, b> : public engine< 5, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 4, b> : public engine< 4, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 3, b> : public engine< 3, VALUE(*)(VALUE, VALUE, VALUE, VALUE)> {}; + template struct specific< 2, b> : public engine< 2, VALUE(*)(VALUE, VALUE, VALUE)> {}; + template struct specific< 1, b> : public engine< 1, VALUE(*)(VALUE, VALUE)> {}; + template struct specific< 0, b> : public engine< 0, VALUE(*)(VALUE)> {}; + template struct specific<-1, b> : public engine<-1, VALUE(*)(int argc, VALUE *argv, VALUE self)> { + using engine<-1, VALUE(*)(int argc, VALUE *argv, VALUE self)>::define; + static inline void define(T m, VALUE(*f)(int argc, const VALUE *argv, VALUE self)) { F(m, reinterpret_cast(f), -1); } + }; + template struct specific<-2, b> : public engine<-2, VALUE(*)(VALUE, VALUE)> {}; + /// @endcond +}; + +struct rb_define_method : public driver {}; ///< Dispatches appropriate driver for ::rb_define_method. +struct rb_define_method_id : public driver {}; ///< Dispatches appropriate driver for ::rb_define_method_id. +struct rb_define_private_method : public driver {}; ///< Dispatches appropriate driver for ::rb_define_private_method. +struct rb_define_protected_method : public driver {}; ///< Dispatches appropriate driver for ::rb_define_protected_method. +struct rb_define_singleton_method : public driver {}; ///< Dispatches appropriate driver for ::rb_define_singleton_method. +struct rb_define_module_function : public driver {}; ///< Dispatches appropriate driver for ::rb_define_module_function. +struct rb_define_global_function : public driver0 {}; ///< Dispatches appropriate driver for ::rb_define_global_function. + +/// @brief Defines klass\#mid. +/// @param klass Where the method lives. +/// @copydetails #rb_define_global_function(mid, func, arity) +#define rb_define_method(klass, mid, func, arity) ::ruby::backward::cxxanyargs::define_method::rb_define_method::specific::define(klass, mid, func) + +/// @copydoc #rb_define_method(klass, mid, func, arity) +#define rb_define_method_id(klass, mid, func, arity) ::ruby::backward::cxxanyargs::define_method::rb_define_method_id::specific::define(klass, mid, func) + +/// @brief Defines klass\#mid and makes it private. +/// @copydetails #rb_define_method(klass, mid, func, arity) +#define rb_define_private_method(klass, mid, func, arity) ::ruby::backward::cxxanyargs::define_method::rb_define_private_method::specific::define(klass, mid, func) + +/// @brief Defines klass\#mid and makes it protected. +/// @copydetails #rb_define_method +#define rb_define_protected_method(klass, mid, func, arity) ::ruby::backward::cxxanyargs::define_method::rb_define_protected_method::specific::define(klass, mid, func) + +/// @brief Defines klass.mid.(klass, mid, func, arity) +/// @copydetails #rb_define_method +#define rb_define_singleton_method(klass, mid, func, arity) ::ruby::backward::cxxanyargs::define_method::rb_define_singleton_method::specific::define(klass, mid, func) + +/// @brief Defines klass\#mid and makes it a module function. +/// @copydetails #rb_define_method(klass, mid, func, arity) +#define rb_define_module_function(klass, mid, func, arity) ::ruby::backward::cxxanyargs::define_method::rb_define_module_function::specific::define(klass, mid, func) + +/// @brief Defines ::rb_mKernel \#mid. +/// @param mid Name of the defining method. +/// @param func Implementation of \#mid. +/// @param arity Arity of \#mid. +#define rb_define_global_function(mid, func, arity) ::ruby::backward::cxxanyargs::define_method::rb_define_global_function::specific::define(mid, func) + +}}}}} + +using namespace ruby::backward::cxxanyargs; +#endif // RUBY_BACKWARD_CXXANYARGS_HPP diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/config.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/config.h new file mode 100644 index 0000000..014cd01 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/config.h @@ -0,0 +1,203 @@ +#ifndef INCLUDE_RUBY_CONFIG_H +#define INCLUDE_RUBY_CONFIG_H 1 +#if (_MSC_VER < 1920) || (_MSC_VER > 1939) +#error MSC version unmatch: 1920..1939 is expected. +#endif +#define RUBY_MSVCRT_VERSION 140 +#define STDC_HEADERS 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_SYS_STAT_H 1 +#define HAVE_STDBOOL_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STDDEF_H 1 +#define HAVE_STRING_H 1 +#define HAVE_MEMORY_H 1 +#define HAVE_AFUNIX_H 1 +#define HAVE_LONG_LONG 1 +#define HAVE_OFF_T 1 +#define rb_off_t __int64 +#define SIGNEDNESS_OF_OFF_T -1 +#define OFFT2NUM(v) LL2NUM(v) +#define NUM2OFFT(v) NUM2LL(v) +#define SIZEOF_INT 4 +#define SIZEOF_SHORT 2 +#define SIZEOF_LONG 4 +#define SIZEOF_LONG_LONG 8 +#define SIZEOF___INT64 8 +#ifndef _INTEGRAL_MAX_BITS +#define _INTEGRAL_MAX_BITS 64 +#endif +#define SIZEOF_OFF_T 8 +#define SIZEOF_VOIDP 8 +#define SIZEOF_FLOAT 4 +#define SIZEOF_DOUBLE 8 +#define SIGNEDNESS_OF_TIME_T -1 +#define NEGATIVE_TIME_T 1 +#define SIZEOF_TIME_T 8 +#define TIMET2NUM(v) LL2NUM(v) +#define NUM2TIMET(v) NUM2LL(v) +#define CLOCKID2NUM(v) INT2NUM(v) +#define NUM2CLOCKID(v) NUM2INT(v) +#define SIZEOF_CLOCK_T 4 +#define SIZEOF_RLIM_T 0 +#define SIZEOF_SIZE_T 8 +#define SIZEOF_PTRDIFF_T 8 +#define SIZEOF_INTPTR_T 8 +#define SIZEOF_UINTPTR_T 8 +#define HAVE_VA_COPY 1 +#define NORETURN(x) __declspec(noreturn) x +#define DEPRECATED(x) __declspec(deprecated) x +#define RUBY_CXX_DEPRECATED(mesg) __declspec(deprecated(mesg)) +#define NOINLINE(x) __declspec(noinline) x +#define ALWAYS_INLINE(x) __forceinline x +#define WARN_UNUSED_RESULT(x) x +#define MAYBE_UNUSED(x) x +#define HAVE___ASSUME 1 +#define FUNC_STDCALL(x) __stdcall x +#define FUNC_CDECL(x) __cdecl x +#define FUNC_FASTCALL(x) __fastcall x +#define RUBY_FUNCTION_NAME_STRING __FUNCTION__ +#define PACKED_STRUCT(x) __pragma(pack(push, 1)) x __pragma(pack(pop)) +#define PACKED_STRUCT_UNALIGNED(x) PACKED_STRUCT(x) +#define RUBY_EXTERN extern __declspec(dllimport) +#define RUBY_ALIGNAS(n) __declspec(align(n)) +#define RUBY_ALIGNOF __alignof +#define HAVE_DECL_SYS_NERR 1 +#define HAVE_LIMITS_H 1 +#define HAVE_FCNTL_H 1 +#define HAVE_SYS_UTIME_H 1 +#define HAVE_FLOAT_H 1 +#define HAVE_TIME_H 1 +#define rb_pid_t int +#define rb_gid_t int +#define rb_uid_t int +#define HAVE_STRUCT_STAT_ST_RDEV 1 +#define HAVE_STRUCT_TIMEVAL 1 +#define HAVE_STRUCT_TIMESPEC +#define HAVE_STDINT_H 1 +#define HAVE_INT8_T 1 +#define HAVE_UINT8_T 1 +#define SIZEOF_INT8_T 1 +#define SIZEOF_UINT8_T 1 +#define HAVE_INT16_T 1 +#define HAVE_UINT16_T 1 +#define SIZEOF_INT16_T 2 +#define SIZEOF_UINT16_T 2 +#define HAVE_INT32_T 1 +#define HAVE_UINT32_T 1 +#define SIZEOF_INT32_T 4 +#define SIZEOF_UINT32_T 4 +#define HAVE_INT64_T 1 +#define HAVE_UINT64_T 1 +#define SIZEOF_INT64_T 8 +#define SIZEOF_UINT64_T 8 +#define HAVE_INTPTR_T 1 +#define HAVE_UINTPTR_T 1 +#define HAVE_SSIZE_T 1 +#define ssize_t __int64 +#define PRI_PTR_PREFIX "I64" +#define PRI_LL_PREFIX "I64" +#define PRI_PIDT_PREFIX PRI_INT_PREFIX +#define GETGROUPS_T int +#define TYPEOF_TIMEVAL_TV_SEC long +#define HAVE_ACOSH 1 +#define HAVE_ASINH 1 +#define HAVE_ATANH 1 +#define HAVE_CBRT 1 +#define HAVE_LOG2 1 +#define log2(x) log2(x) +#define HAVE_ERF 1 +#define HAVE_ERFC 1 +#define HAVE_ROUND 1 +#define HAVE_TGAMMA 1 +#define HAVE_NEXTAFTER 1 +#define HAVE_ALLOCA 1 +#define HAVE_DUP2 1 +#define HAVE_MEMCMP 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MKDIR 1 +#define HAVE_CLOCK_GETTIME 1 +#define HAVE_CLOCK_GETRES 1 +#define HAVE_GETTIMEOFDAY 1 +#define HAVE_SPAWNV 1 +#define HAVE_STRCASECMP 1 +#define HAVE_STRNCASECMP 1 +#define HAVE_STRERROR 1 +#define HAVE_STRFTIME 1 +#define HAVE_STRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE_FLOCK 1 +#define HAVE_ISNAN 1 +#define HAVE_FINITE 1 +#define HAVE_NAN 1 +#define HAVE_HYPOT 1 +#define HAVE_FMOD 1 +#define HAVE_FREXP 1 +#define HAVE_MODF 1 +#define HAVE_WAITPID 1 +#define HAVE_FSYNC 1 +#define HAVE_GETCWD 1 +#define HAVE_TRUNCATE 1 +#define HAVE_FTRUNCATE 1 +#define HAVE_LSTAT 1 +#define HAVE_TIMES 1 +#define HAVE_FCNTL 1 +#define HAVE_LINK 1 +#define HAVE_READLINK 1 +#define HAVE_SYMLINK 1 +#define HAVE_LCHOWN 1 +#define HAVE__SETJMP 1 +#define HAVE_TELLDIR 1 +#define HAVE_SEEKDIR 1 +#define HAVE_MKTIME 1 +#define HAVE_COSH 1 +#define HAVE_SINH 1 +#define HAVE_TANH 1 +#define HAVE_SIGNBIT 1 +#define HAVE_TZNAME 1 +#define HAVE_DAYLIGHT 1 +#define HAVE_GMTIME_R 1 +#define HAVE_CHMOD 1 +#define HAVE_CHOWN 1 +#define HAVE_DUP 1 +#define HAVE_EXECL 1 +#define HAVE_EXECLE 1 +#define HAVE_EXECV 1 +#define HAVE_EXECVE 1 +#define HAVE_GETEGID 1 +#define HAVE_GETEUID 1 +#define HAVE_GETGID 1 +#define HAVE_GETUID 1 +#define HAVE_PCLOSE 1 +#define HAVE_PIPE 1 +#define HAVE_POPEN 1 +#define HAVE_SHUTDOWN 1 +#define HAVE_SYSTEM 1 +#define HAVE_TZSET 1 +#define HAVE_UMASK 1 +#define HAVE_QSORT_S +#define HAVE_TYPE_NET_LUID 1 +#define HAVE_NULLPTR 1 +#define SETPGRP_VOID 1 +#define RSHIFT(x,y) ((x)>>(int)y) +#define HAVE_RB_FD_INIT 1 +#define RUBY_SETJMP(env) _setjmp(env) +#define RUBY_LONGJMP(env,val) longjmp(env,val) +#define RUBY_JMP_BUF jmp_buf +#ifndef __cplusplus +// #define inline __inline +#define restrict __restrict +#endif +#define NEED_IO_SEEK_BETWEEN_RW 1 +#define STACK_GROW_DIRECTION -1 +#define COROUTINE_H "coroutine/win64/Context.h" +#define THREAD_IMPL_H "thread_win32.h" +#define THREAD_IMPL_SRC "thread_win32.c" +#define LOAD_RELATIVE 1 +#define DLEXT ".so" +#define EXECUTABLE_EXTS ".exe",".com",".cmd",".bat" +#define RUBY_COREDLL "vcruntime140" +#define RUBY_PLATFORM "x64-mswin64_140" +#define RUBY_SITEARCH "x64-vcruntime140" +#define USE_MJIT 0 +#endif /* INCLUDE_RUBY_CONFIG_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/defines.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/defines.h new file mode 100644 index 0000000..48184f8 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/defines.h @@ -0,0 +1,116 @@ +#ifndef RUBY_DEFINES_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_DEFINES_H 1 +/** + * @file + * @author $Author$ + * @date Wed May 18 00:21:44 JST 1994 + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ + +#include "ruby/internal/config.h" + +/* AC_INCLUDES_DEFAULT */ +#include + +#ifdef HAVE_SYS_TYPES_H +# include +#endif + +#ifdef HAVE_SYS_STAT_H +# include +#endif + +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif + +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif + +#ifdef HAVE_STRINGS_H +# include +#endif + +#ifdef HAVE_INTTYPES_H +# include +#endif + +#ifdef HAVE_STDINT_H +# include +#endif + +#ifdef HAVE_STDALIGN_H +# include +#endif + +#ifdef HAVE_UNISTD_H +# include +#endif + +#ifdef HAVE_SYS_SELECT_H +# include +#endif + +#ifdef RUBY_USE_SETJMPEX +# include +#endif + +#include "ruby/internal/dllexport.h" +#include "ruby/internal/xmalloc.h" +#include "ruby/backward/2/assume.h" +#include "ruby/backward/2/attributes.h" +#include "ruby/backward/2/bool.h" +#include "ruby/backward/2/long_long.h" +#include "ruby/backward/2/stdalign.h" +#include "ruby/backward/2/stdarg.h" +#include "ruby/internal/dosish.h" +#include "ruby/missing.h" + +/** + * Asserts that the compilation unit includes Ruby's CAPI. This has been here + * since the very beginning (at least since version 0.49). + */ +#define RUBY + +#ifdef __GNUC__ +# /** This is expanded to nothing for non-GCC compilers. */ +# define RB_GNUC_EXTENSION __extension__ +# /** This is expanded to the passed token for non-GCC compilers. */ +# define RB_GNUC_EXTENSION_BLOCK(x) __extension__ ({ x; }) +#else +# define RB_GNUC_EXTENSION +# define RB_GNUC_EXTENSION_BLOCK(x) (x) +#endif + +/** @cond INTERNAL_MACRO */ + +/* :FIXME: Can someone tell us why is this macro defined here? @shyouhei + * thinks this is a truly internal macro but cannot move around because he + * doesn't understand the reason of this arrangement. */ +#ifndef RUBY_MBCHAR_MAXSIZE +# define RUBY_MBCHAR_MAXSIZE INT_MAX +# /* MB_CUR_MAX will not work well in C locale */ +#endif + +#if defined(__sparc) +RBIMPL_SYMBOL_EXPORT_BEGIN() +void rb_sparc_flush_register_windows(void); +RBIMPL_SYMBOL_EXPORT_END() +# define FLUSH_REGISTER_WINDOWS rb_sparc_flush_register_windows() +#else +# define FLUSH_REGISTER_WINDOWS ((void)0) +#endif +/** @endcond */ +#endif /* RUBY_DEFINES_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/digest.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/digest.h new file mode 100644 index 0000000..8a4c5b7 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/digest.h @@ -0,0 +1,72 @@ +/************************************************ + + digest.h - header file for ruby digest modules + + $Author$ + created at: Fri May 25 08:54:56 JST 2001 + + + Copyright (C) 2001-2006 Akinori MUSHA + + $RoughId: digest.h,v 1.3 2001/07/13 15:38:27 knu Exp $ + $Id$ + +************************************************/ + +#include "ruby.h" + +#define RUBY_DIGEST_API_VERSION 3 + +typedef int (*rb_digest_hash_init_func_t)(void *); +typedef void (*rb_digest_hash_update_func_t)(void *, unsigned char *, size_t); +typedef int (*rb_digest_hash_finish_func_t)(void *, unsigned char *); + +typedef struct { + int api_version; + size_t digest_len; + size_t block_len; + size_t ctx_size; + rb_digest_hash_init_func_t init_func; + rb_digest_hash_update_func_t update_func; + rb_digest_hash_finish_func_t finish_func; +} rb_digest_metadata_t; + +#define DEFINE_UPDATE_FUNC_FOR_UINT(name) \ +void \ +rb_digest_##name##_update(void *ctx, unsigned char *ptr, size_t size) \ +{ \ + const unsigned int stride = 16384; \ + \ + for (; size > stride; size -= stride, ptr += stride) { \ + name##_Update(ctx, ptr, stride); \ + } \ + if (size > 0) name##_Update(ctx, ptr, size); \ +} + +#define DEFINE_FINISH_FUNC_FROM_FINAL(name) \ +int \ +rb_digest_##name##_finish(void *ctx, unsigned char *ptr) \ +{ \ + return name##_Final(ptr, ctx); \ +} + +static inline VALUE +rb_digest_namespace(void) +{ + rb_require("digest"); + return rb_path2class("Digest"); +} + +static inline ID +rb_id_metadata(void) +{ + return rb_intern_const("metadata"); +} + +static inline VALUE +rb_digest_make_metadata(const rb_digest_metadata_t *meta) +{ +#undef RUBY_UNTYPED_DATA_WARNING +#define RUBY_UNTYPED_DATA_WARNING 0 + return rb_obj_freeze(Data_Wrap_Struct(0, 0, 0, (void *)meta)); +} diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/encoding.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/encoding.h new file mode 100644 index 0000000..1256393 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/encoding.h @@ -0,0 +1,31 @@ +#ifndef RUBY_ENCODING_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_ENCODING_H 1 +/** + * @file + * @author $Author: matz $ + * @date Thu May 24 11:49:41 JST 2007 + * @copyright Copyright (C) 2007 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @brief Encoding relates APIs. + * + * These APIs are mainly for implementing encodings themselves. Encodings are + * built on top of Ruby's core CAPIs. Though not prohibited, there can be + * relatively less rooms for things in this header file be useful when writing + * an extension library. + */ +#include "ruby/ruby.h" + +#include "ruby/internal/encoding/coderange.h" +#include "ruby/internal/encoding/ctype.h" +#include "ruby/internal/encoding/encoding.h" +#include "ruby/internal/encoding/pathname.h" +#include "ruby/internal/encoding/re.h" +#include "ruby/internal/encoding/sprintf.h" +#include "ruby/internal/encoding/string.h" +#include "ruby/internal/encoding/symbol.h" +#include "ruby/internal/encoding/transcode.h" + +#endif /* RUBY_ENCODING_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/fiber/scheduler.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/fiber/scheduler.h new file mode 100644 index 0000000..250b39b --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/fiber/scheduler.h @@ -0,0 +1,374 @@ +#ifndef RUBY_FIBER_SCHEDULER_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_FIBER_SCHEDULER_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @brief Scheduler APIs. + */ +#include "ruby/internal/config.h" + +#include + +#ifdef STDC_HEADERS +#include /* size_t */ +#endif + +#include "ruby/ruby.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/arithmetic.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +#define RUBY_FIBER_SCHEDULER_VERSION 2 + +struct timeval; + +/** + * Wrap a `ssize_t` and `int errno` into a single `VALUE`. This interface should + * be used to safely capture results from system calls like `read` and `write`. + * + * You should use `rb_fiber_scheduler_io_result_apply` to unpack the result of + * this value and update `int errno`. + * + * You should not directly try to interpret the result value as it is considered + * an opaque representation. However, the general representation is an integer + * in the range of `[-int errno, size_t size]`. Linux generally restricts the + * result of system calls like `read` and `write` to `<= 2^31` which means this + * will typically fit within a single FIXNUM. + * + * @param[in] result The result of the system call. + * @param[in] error The value of `errno`. + * @return A `VALUE` which contains the result and/or errno. + */ +static inline VALUE +rb_fiber_scheduler_io_result(ssize_t result, int error) +{ + if (result == -1) { + return RB_INT2NUM(-error); + } + else { + return RB_SIZE2NUM(result); + } +} + +/** + * Apply an io result to the local thread, returning the value of the original + * system call that created it and updating `int errno`. + * + * You should not directly try to interpret the result value as it is considered + * an opaque representation. + * + * @param[in] result The `VALUE` which contains an errno and/or result size. + * @post Updates `int errno` with the value if negative. + * @return The original result of the system call. + */ +static inline ssize_t +rb_fiber_scheduler_io_result_apply(VALUE result) +{ + if (RB_FIXNUM_P(result) && RB_NUM2INT(result) < 0) { + errno = -RB_NUM2INT(result); + return -1; + } + else { + return RB_NUM2SIZE(result); + } +} + +/** + * Queries the current scheduler of the current thread that is calling this + * function. + * + * @retval RUBY_Qnil No scheduler has been set so far to this thread (which + * is the default). + * @retval otherwise The scheduler that was last set for the current thread + * with rb_fiber_scheduler_set(). + */ +VALUE rb_fiber_scheduler_get(void); + +/** + * Destructively assigns the passed scheduler to that of the current thread + * that is calling this function. If the scheduler is set, non-blocking fibers + * (created by `Fiber.new` with `blocking: false`, or by `Fiber.schedule`) call + * that scheduler's hook methods on potentially blocking operations, and the + * current thread will call scheduler's `#close` method on finalisation + * (allowing the scheduler to properly manage all non-finished fibers). + * `scheduler` can be an object of any class corresponding to + * `Fiber::SchedulerInterface`. Its implementation is up to the user. + * + * @param[in] scheduler The scheduler to set. + * @exception rb_eArgError `scheduler` does not conform the interface. + * @post Current thread's scheduler is `scheduler`. + */ +VALUE rb_fiber_scheduler_set(VALUE scheduler); + +/** + * Identical to rb_fiber_scheduler_get(), except it also returns ::RUBY_Qnil in + * case of a blocking fiber. As blocking fibers do not participate schedulers' + * scheduling this function can be handy. + * + * @retval RUBY_Qnil No scheduler is in effect. + * @retval otherwise The scheduler that is in effect, if any. + */ +VALUE rb_fiber_scheduler_current(void); + +/** + * Identical to rb_fiber_scheduler_current(), except it queries for that of the + * passed thread instead of the implicit current one. + * + * @param[in] thread Target thread. + * @exception rb_eTypeError `thread` is not a thread. + * @retval RUBY_Qnil No scheduler is in effect in `thread`. + * @retval otherwise The scheduler that is in effect in `thread`. + */ +VALUE rb_fiber_scheduler_current_for_thread(VALUE thread); + +/** + * Converts the passed timeout to an expression that rb_fiber_scheduler_block() + * etc. expects. + * + * @param[in] timeout A duration (can be `NULL`). + * @retval RUBY_Qnil No timeout (blocks indefinitely). + * @retval otherwise A timeout object. + */ +VALUE rb_fiber_scheduler_make_timeout(struct timeval *timeout); + +/** + * Closes the passed scheduler object. This expects the scheduler to wait for + * all fibers. Thus the scheduler's main loop tends to start here. + * + * @param[in] scheduler Target scheduler. + * @return What `scheduler.close` returns. + */ +VALUE rb_fiber_scheduler_close(VALUE scheduler); + +/** + * Non-blocking `sleep`. Depending on scheduler implementation, this for + * instance switches to another fiber etc. + * + * @param[in] scheduler Target scheduler. + * @param[in] duration Passed as-is to `scheduler.kernel_sleep`. + * @return What `scheduler.kernel_sleep` returns. + */ +VALUE rb_fiber_scheduler_kernel_sleep(VALUE scheduler, VALUE duration); + +/** + * Identical to rb_fiber_scheduler_kernel_sleep(), except it can pass multiple + * arguments. + * + * @param[in] scheduler Target scheduler. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Passed as-is to `scheduler.kernel_sleep` + * @return What `scheduler.kernel_sleep` returns. + */ +VALUE rb_fiber_scheduler_kernel_sleepv(VALUE scheduler, int argc, VALUE * argv); + +/* Description TBW */ +#if 0 +VALUE rb_fiber_scheduler_timeout_after(VALUE scheduler, VALUE timeout, VALUE exception, VALUE message); +VALUE rb_fiber_scheduler_timeout_afterv(VALUE scheduler, int argc, VALUE * argv); +int rb_fiber_scheduler_supports_process_wait(VALUE scheduler); +#endif + +/** + * Non-blocking `waitpid`. Depending on scheduler implementation, this for + * instance switches to another fiber etc. + * + * @param[in] scheduler Target scheduler. + * @param[in] pid Process ID to wait. + * @param[in] flags Wait flags, e.g. `WUNTRACED`. + * @return What `scheduler.process_wait` returns. + */ +VALUE rb_fiber_scheduler_process_wait(VALUE scheduler, rb_pid_t pid, int flags); + +/** + * Non-blocking wait for the passed "blocker", which is for instance + * `Thread.join` or `Mutex.lock`. Depending on scheduler implementation, this + * for instance switches to another fiber etc. + * + * @param[in] scheduler Target scheduler. + * @param[in] blocker What blocks the current fiber. + * @param[in] timeout Numeric timeout. + * @return What `scheduler.block` returns. + */ +VALUE rb_fiber_scheduler_block(VALUE scheduler, VALUE blocker, VALUE timeout); + +/** + * Wakes up a fiber previously blocked using rb_fiber_scheduler_block(). + * + * @param[in] scheduler Target scheduler. + * @param[in] blocker What was awaited for. + * @param[in] fiber What to unblock. + * @return What `scheduler.unblock` returns. + */ +VALUE rb_fiber_scheduler_unblock(VALUE scheduler, VALUE blocker, VALUE fiber); + +/** + * Non-blocking version of rb_io_wait(). Depending on scheduler + * implementation, this for instance switches to another fiber etc. + * + * The "events" here is a Ruby level integer, which is an OR-ed value of + * `IO::READABLE`, `IO::WRITABLE`, and `IO::PRIORITY`. + * + * @param[in] scheduler Target scheduler. + * @param[in] io An io object to wait. + * @param[in] events An integer set of interests. + * @param[in] timeout Numeric timeout. + * @return What `scheduler.io_wait` returns. + */ +VALUE rb_fiber_scheduler_io_wait(VALUE scheduler, VALUE io, VALUE events, VALUE timeout); + +/** + * Non-blocking wait until the passed IO is ready for reading. This is a + * special case of rb_fiber_scheduler_io_wait(), where the interest is + * `IO::READABLE` and timeout is never. + * + * @param[in] scheduler Target scheduler. + * @param[in] io An io object to wait. + * @return What `scheduler.io_wait` returns. + */ +VALUE rb_fiber_scheduler_io_wait_readable(VALUE scheduler, VALUE io); + +/** + * Non-blocking wait until the passed IO is ready for writing. This is a + * special case of rb_fiber_scheduler_io_wait(), where the interest is + * `IO::WRITABLE` and timeout is never. + * + * @param[in] scheduler Target scheduler. + * @param[in] io An io object to wait. + * @return What `scheduler.io_wait` returns. + */ +VALUE rb_fiber_scheduler_io_wait_writable(VALUE scheduler, VALUE io); + +/** + * Non-blocking version of `IO.select`. + * + * It's possible that this will be emulated using a thread, so you should not + * rely on it for high performance. + * + * @param[in] scheduler Target scheduler. + * @param[in] readables An array of readable objects. + * @param[in] writables An array of writable objects. + * @param[in] exceptables An array of objects that might encounter exceptional conditions. + * @param[in] timeout Numeric timeout or nil. + * @return What `scheduler.io_select` returns, normally a 3-tuple of arrays of ready objects. + */ +VALUE rb_fiber_scheduler_io_select(VALUE scheduler, VALUE readables, VALUE writables, VALUE exceptables, VALUE timeout); + +/** + * Non-blocking version of `IO.select`, `argv` variant. + */ +VALUE rb_fiber_scheduler_io_selectv(VALUE scheduler, int argc, VALUE *argv); + +/** + * Non-blocking read from the passed IO. + * + * @param[in] scheduler Target scheduler. + * @param[out] io An io object to read from. + * @param[out] buffer Return buffer. + * @param[in] length Requested number of bytes to read. + * @param[in] offset The offset in the buffer to read to. + * @retval RUBY_Qundef `scheduler` doesn't have `#io_read`. + * @return otherwise What `scheduler.io_read` returns `[-errno, size]`. + */ +VALUE rb_fiber_scheduler_io_read(VALUE scheduler, VALUE io, VALUE buffer, size_t length, size_t offset); + +/** + * Non-blocking write to the passed IO. + * + * @param[in] scheduler Target scheduler. + * @param[out] io An io object to write to. + * @param[in] buffer What to write. + * @param[in] length Number of bytes to write. + * @param[in] offset The offset in the buffer to write from. + * @retval RUBY_Qundef `scheduler` doesn't have `#io_write`. + * @return otherwise What `scheduler.io_write` returns `[-errno, size]`. + */ +VALUE rb_fiber_scheduler_io_write(VALUE scheduler, VALUE io, VALUE buffer, size_t length, size_t offset); + +/** + * Non-blocking read from the passed IO at the specified offset. + * + * @param[in] scheduler Target scheduler. + * @param[out] io An io object to read from. + * @param[in] from The offset in the given IO to read the data from. + * @param[out] buffer The buffer to read the data to. + * @param[in] length Requested number of bytes to read. + * @param[in] offset The offset in the buffer to read to. + * @retval RUBY_Qundef `scheduler` doesn't have `#io_read`. + * @return otherwise What `scheduler.io_read` returns. + */ +VALUE rb_fiber_scheduler_io_pread(VALUE scheduler, VALUE io, rb_off_t from, VALUE buffer, size_t length, size_t offset); + +/** + * Non-blocking write to the passed IO at the specified offset. + * + * @param[in] scheduler Target scheduler. + * @param[out] io An io object to write to. + * @param[in] from The offset in the given IO to write the data to. + * @param[in] buffer The buffer to write the data from. + * @param[in] length Number of bytes to write. + * @param[in] offset The offset in the buffer to write from. + * @retval RUBY_Qundef `scheduler` doesn't have `#io_write`. + * @return otherwise What `scheduler.io_write` returns. + */ +VALUE rb_fiber_scheduler_io_pwrite(VALUE scheduler, VALUE io, rb_off_t from, VALUE buffer, size_t length, size_t offset); + +/** + * Non-blocking read from the passed IO using a native buffer. + * + * @param[in] scheduler Target scheduler. + * @param[out] io An io object to read from. + * @param[out] buffer Return buffer. + * @param[in] size Size of the return buffer. + * @param[in] length Requested number of bytes to read. + * @retval RUBY_Qundef `scheduler` doesn't have `#io_read`. + * @return otherwise What `scheduler.io_read` returns. + */ +VALUE rb_fiber_scheduler_io_read_memory(VALUE scheduler, VALUE io, void *buffer, size_t size, size_t length); + +/** + * Non-blocking write to the passed IO using a native buffer. + * + * @param[in] scheduler Target scheduler. + * @param[out] io An io object to write to. + * @param[in] buffer What to write. + * @param[in] size Size of the buffer. + * @param[in] length Number of bytes to write. + * @retval RUBY_Qundef `scheduler` doesn't have `#io_write`. + * @return otherwise What `scheduler.io_write` returns. + */ +VALUE rb_fiber_scheduler_io_write_memory(VALUE scheduler, VALUE io, const void *buffer, size_t size, size_t length); + +/** + * Non-blocking close the given IO. + * + * @param[in] scheduler Target scheduler. + * @param[in] io An io object to close. + * @retval RUBY_Qundef `scheduler` doesn't have `#io_close`. + * @return otherwise What `scheduler.io_close` returns. + */ +VALUE rb_fiber_scheduler_io_close(VALUE scheduler, VALUE io); + +/** + * Non-blocking DNS lookup. + * + * @param[in] scheduler Target scheduler. + * @param[in] hostname A host name to query. + * @retval RUBY_Qundef `scheduler` doesn't have `#address_resolve`. + * @return otherwise What `scheduler.address_resolve` returns. + */ +VALUE rb_fiber_scheduler_address_resolve(VALUE scheduler, VALUE hostname); + +/** + * Create and schedule a non-blocking fiber. + * + */ +VALUE rb_fiber_scheduler_fiber(VALUE scheduler, int argc, VALUE *argv, int kw_splat); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_FIBER_SCHEDULER_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/intern.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/intern.h new file mode 100644 index 0000000..2480e2e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/intern.h @@ -0,0 +1,64 @@ +#ifndef RUBY_INTERN_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERN_H 1 +/** + * @file + * @author $Author$ + * @date Thu Jun 10 14:22:17 JST 1993 + * @copyright Copyright (C) 1993-2007 Yukihiro Matsumoto + * @copyright Copyright (C) 2000 Network Applied Communication Laboratory, Inc. + * @copyright Copyright (C) 2000 Information-technology Promotion Agency, Japan + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ +#include "ruby/internal/config.h" +#include "ruby/defines.h" + +#include + +#include "ruby/st.h" + +/* + * Functions and variables that are used by more than one source file of + * the kernel. + */ + +#include "ruby/internal/intern/array.h" +#include "ruby/internal/intern/bignum.h" +#include "ruby/internal/intern/class.h" +#include "ruby/internal/intern/compar.h" +#include "ruby/internal/intern/complex.h" +#include "ruby/internal/intern/cont.h" +#include "ruby/internal/intern/dir.h" +#include "ruby/internal/intern/enum.h" +#include "ruby/internal/intern/enumerator.h" +#include "ruby/internal/intern/error.h" +#include "ruby/internal/intern/eval.h" +#include "ruby/internal/intern/file.h" +#include "ruby/internal/intern/gc.h" +#include "ruby/internal/intern/hash.h" +#include "ruby/internal/intern/io.h" +#include "ruby/internal/intern/load.h" +#include "ruby/internal/intern/marshal.h" +#include "ruby/internal/intern/numeric.h" +#include "ruby/internal/intern/object.h" +#include "ruby/internal/intern/parse.h" +#include "ruby/internal/intern/proc.h" +#include "ruby/internal/intern/process.h" +#include "ruby/internal/intern/random.h" +#include "ruby/internal/intern/range.h" +#include "ruby/internal/intern/rational.h" +#include "ruby/internal/intern/re.h" +#include "ruby/internal/intern/ruby.h" +#include "ruby/internal/intern/select.h" +#include "ruby/internal/intern/signal.h" +#include "ruby/internal/intern/sprintf.h" +#include "ruby/internal/intern/string.h" +#include "ruby/internal/intern/struct.h" +#include "ruby/internal/intern/thread.h" +#include "ruby/internal/intern/time.h" +#include "ruby/internal/intern/variable.h" +#include "ruby/internal/intern/vm.h" + +#endif /* RUBY_INTERN_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/abi.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/abi.h new file mode 100644 index 0000000..44111a0 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/abi.h @@ -0,0 +1,58 @@ +#ifndef RUBY_ABI_H +#define RUBY_ABI_H + +#ifdef RUBY_ABI_VERSION /* should match the definition in config.h */ + +/* This number represents Ruby's ABI version. + * + * In development Ruby, it should be bumped every time an ABI incompatible + * change is introduced. This will force other developers to rebuild extension + * gems. + * + * The following cases are considered as ABI incompatible changes: + * - Changing any data structures. + * - Changing macros or inline functions causing a change in behavior. + * - Deprecating or removing function declarations. + * + * The following cases are NOT considered as ABI incompatible changes: + * - Any changes that does not involve the header files in the `include` + * directory. + * - Adding macros, inline functions, or function declarations. + * - Backwards compatible refactors. + * - Editing comments. + * + * In released versions of Ruby, this number is not defined since teeny + * versions of Ruby should guarantee ABI compatibility. + */ +#define RUBY_ABI_VERSION 3 + +/* Windows does not support weak symbols so ruby_abi_version will not exist + * in the shared library. */ +#if defined(HAVE_FUNC_WEAK) && !defined(_WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__) +# define RUBY_DLN_CHECK_ABI +#endif +#endif /* RUBY_ABI_VERSION */ + +#ifdef RUBY_DLN_CHECK_ABI + +# ifdef __cplusplus +extern "C" { +# endif + +RUBY_FUNC_EXPORTED unsigned long long __attribute__((weak)) +ruby_abi_version(void) +{ +# ifdef RUBY_ABI_VERSION + return RUBY_ABI_VERSION; +# else + return 0; +# endif +} + +# ifdef __cplusplus +} +# endif + +#endif + +#endif diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/anyargs.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/anyargs.h new file mode 100644 index 0000000..e3e1b61 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/anyargs.h @@ -0,0 +1,376 @@ +#ifndef RBIMPL_ANYARGS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ANYARGS_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Function overloads to issue warnings around #ANYARGS. + * + * For instance ::rb_define_method takes a pointer to #ANYARGS -ed functions, + * which in fact varies 18 different prototypes. We still need to preserve + * #ANYARGS for storages but why not check the consistencies if possible. With + * those complex macro overlays defined in this header file, use of a function + * pointer gets checked against the corresponding arity argument. + * + * ### Q&A ### + * + * - Q: Where did the magic number "18" came from in the description above? + * + * - A: Count the case branch of `vm_method.c:call_cfunc_invoker_func()`. Note + * also that the 18 branches has lasted for at least 25 years. See also + * commit 200e0ee2fd3c1c006c528874a88f684447215524. + * + * - Q: What is this `__weakref__` thing? + * + * - A: That is a kind of function overloading mechanism that GCC provides. In + * this case for instance `rb_define_method_00` is an alias of + * ::rb_define_method, with a strong type. + * + * - Q: What is this `__transparent_union__` thing? + * + * A: That is another kind of function overloading mechanism that GCC + * provides. In this case the attributed function pointer is either + * `VALUE(*)(int,VALUE*,VALUE)` or `VALUE(*)(int,const VALUE*,VALUE)`. + * + * This is better than `void*` or #ANYARGS because we can reject all other + * possibilities than the two. + * + * - Q: What does this #rb_define_method macro mean? + * + * - A: It selects appropriate alias of the ::rb_define_method function, + * depending on the last (arity) argument. + * + * - Q: Why the special case for ::rb_f_notimplement ? + * + * - A: Function pointer to ::rb_f_notimplement is special cased in + * `vm_method.c:rb_add_method_cfunc()`. That should be handled by the + * `__builtin_choose_expr` chain inside of #rb_define_method macro + * expansion. In order to do so, comparison like + * `(func == rb_f_notimplement)` is inappropriate for + * `__builtin_choose_expr`'s expression (which must be a compile-time + * integer constant but the address of ::rb_f_notimplement is not fixed + * until the linker). Instead we are using + * `__builtin_types_compatible_p`, and in doing so we need to distinguish + * ::rb_f_notimplement from others, by type. + */ +#include "ruby/internal/attr/maybe_unused.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/weakref.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/config.h" +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/intern/class.h" +#include "ruby/internal/intern/vm.h" +#include "ruby/internal/method.h" +#include "ruby/internal/value.h" +#include "ruby/backward/2/stdarg.h" + +#if defined(__cplusplus) +# include "ruby/backward/cxxanyargs.hpp" + +#elif defined(_WIN32) || defined(__CYGWIN__) +# /* Skip due to [Bug #16134] */ + +#elif ! RBIMPL_HAS_ATTRIBUTE(transparent_union) +# /* :TODO: improve here, please find a way to support. */ + +#elif ! defined(HAVE_VA_ARGS_MACRO) +# /* :TODO: improve here, please find a way to support. */ + +#else +# /** @cond INTERNAL_MACRO */ +# if ! defined(HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P) +# define RBIMPL_CFUNC_IS_rb_f_notimplement(f) 0 +# else +# define RBIMPL_CFUNC_IS_rb_f_notimplement(f) \ + __builtin_types_compatible_p( \ + __typeof__(f), \ + __typeof__(rb_f_notimplement)) +# endif + +# if ! defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P) +# define RBIMPL_ANYARGS_DISPATCH(expr, truthy, falsy) (falsy) +# else +# define RBIMPL_ANYARGS_DISPATCH(expr, truthy, falsy) \ + __builtin_choose_expr( \ + __builtin_choose_expr( \ + __builtin_constant_p(expr), \ + (expr), 0), \ + (truthy), (falsy)) +# endif + +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_singleton_method_m2, rb_define_singleton_method_m3) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_singleton_method_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m2(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_singleton_method_00, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m1(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_singleton_method_01, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_00(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_singleton_method_02, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_01(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_singleton_method_03, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_02(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_singleton_method_04, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_03(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_singleton_method_05, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_04(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_singleton_method_06, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_05(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_singleton_method_07, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_06(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_singleton_method_08, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_07(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_singleton_method_09, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_08(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_singleton_method_10, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_09(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_singleton_method_11, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_10(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_singleton_method_12, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_11(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_singleton_method_13, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_12(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_singleton_method_14, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_13(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_singleton_method_15, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_14(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_protected_method_m2, rb_define_protected_method_m3) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_protected_method_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m2(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_protected_method_00, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m1(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_protected_method_01, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_00(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_protected_method_02, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_01(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_protected_method_03, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_02(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_protected_method_04, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_03(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_protected_method_05, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_04(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_protected_method_06, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_05(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_protected_method_07, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_06(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_protected_method_08, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_07(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_protected_method_09, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_08(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_protected_method_10, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_09(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_protected_method_11, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_10(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_protected_method_12, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_11(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_protected_method_13, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_12(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_protected_method_14, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_13(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_protected_method_15, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_14(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_private_method_m2, rb_define_private_method_m3) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_private_method_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m2(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_private_method_00, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m1(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_private_method_01, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_00(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_private_method_02, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_01(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_private_method_03, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_02(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_private_method_04, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_03(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_private_method_05, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_04(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_private_method_06, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_05(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_private_method_07, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_06(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_private_method_08, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_07(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_private_method_09, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_08(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_private_method_10, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_09(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_private_method_11, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_10(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_private_method_12, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_11(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_private_method_13, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_12(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_private_method_14, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_13(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_private_method_15, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_14(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_module_function_m2, rb_define_module_function_m3) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_module_function_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m2(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_module_function_00, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m1(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_module_function_01, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_00(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_module_function_02, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_01(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_module_function_03, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_02(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_module_function_04, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_03(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_module_function_05, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_04(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_module_function_06, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_05(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_module_function_07, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_06(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_module_function_08, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_07(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_module_function_09, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_08(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_module_function_10, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_09(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_module_function_11, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_10(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_module_function_12, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_11(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_module_function_13, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_12(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_module_function_14, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_13(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_module_function_15, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_14(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_global_function_m2, rb_define_global_function_m3) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_global_function_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m2(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_global_function_00, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m1(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_global_function_01, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_00(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_global_function_02, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_01(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_global_function_03, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_02(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_global_function_04, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_03(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_global_function_05, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_04(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_global_function_06, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_05(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_global_function_07, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_06(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_global_function_08, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_07(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_global_function_09, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_08(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_global_function_10, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_09(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_global_function_11, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_10(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_global_function_12, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_11(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_global_function_13, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_12(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_global_function_14, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_13(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_global_function_15, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_14(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_method_id_m2, rb_define_method_id_m3) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_method_id_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m2(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_method_id_00, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m1(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_method_id_01, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_00(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_method_id_02, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_01(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_method_id_03, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_02(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_method_id_04, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_03(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_method_id_05, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_04(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_method_id_06, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_05(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_method_id_07, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_06(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_method_id_08, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_07(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_method_id_09, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_08(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_method_id_10, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_09(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_method_id_11, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_10(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_method_id_12, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_11(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_method_id_13, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_12(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_method_id_14, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_13(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_method_id_15, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_14(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_method_m2, rb_define_method_m3) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_method_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_method_m2(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_00(n) RBIMPL_ANYARGS_DISPATCH((n) == 0, rb_define_method_00, RBIMPL_ANYARGS_DISPATCH_rb_define_method_m1(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_01(n) RBIMPL_ANYARGS_DISPATCH((n) == 1, rb_define_method_01, RBIMPL_ANYARGS_DISPATCH_rb_define_method_00(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_02(n) RBIMPL_ANYARGS_DISPATCH((n) == 2, rb_define_method_02, RBIMPL_ANYARGS_DISPATCH_rb_define_method_01(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_03(n) RBIMPL_ANYARGS_DISPATCH((n) == 3, rb_define_method_03, RBIMPL_ANYARGS_DISPATCH_rb_define_method_02(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_04(n) RBIMPL_ANYARGS_DISPATCH((n) == 4, rb_define_method_04, RBIMPL_ANYARGS_DISPATCH_rb_define_method_03(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_05(n) RBIMPL_ANYARGS_DISPATCH((n) == 5, rb_define_method_05, RBIMPL_ANYARGS_DISPATCH_rb_define_method_04(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_06(n) RBIMPL_ANYARGS_DISPATCH((n) == 6, rb_define_method_06, RBIMPL_ANYARGS_DISPATCH_rb_define_method_05(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_07(n) RBIMPL_ANYARGS_DISPATCH((n) == 7, rb_define_method_07, RBIMPL_ANYARGS_DISPATCH_rb_define_method_06(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_08(n) RBIMPL_ANYARGS_DISPATCH((n) == 8, rb_define_method_08, RBIMPL_ANYARGS_DISPATCH_rb_define_method_07(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_09(n) RBIMPL_ANYARGS_DISPATCH((n) == 9, rb_define_method_09, RBIMPL_ANYARGS_DISPATCH_rb_define_method_08(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_method_10, RBIMPL_ANYARGS_DISPATCH_rb_define_method_09(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_method_11, RBIMPL_ANYARGS_DISPATCH_rb_define_method_10(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_method_12, RBIMPL_ANYARGS_DISPATCH_rb_define_method_11(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_method_13, RBIMPL_ANYARGS_DISPATCH_rb_define_method_12(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_method_14, RBIMPL_ANYARGS_DISPATCH_rb_define_method_13(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_method_15, RBIMPL_ANYARGS_DISPATCH_rb_define_method_14(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method(n, f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_singleton_method_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_15(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method(n, f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_protected_method_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_15(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method(n, f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_private_method_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_15(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function(n, f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_module_function_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_15(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function(n, f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_global_function_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_15(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id(n, f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_method_id_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_15(n)) +# define RBIMPL_ANYARGS_DISPATCH_rb_define_method(n, f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_method_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_method_15(n)) +# define RBIMPL_ANYARGS_ATTRSET(sym) RBIMPL_ATTR_MAYBE_UNUSED() RBIMPL_ATTR_NONNULL(()) RBIMPL_ATTR_WEAKREF(sym) +# define RBIMPL_ANYARGS_DECL(sym, ...) \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _notimpl(__VA_ARGS__, VALUE(*)(int, const VALUE *, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _m3(__VA_ARGS__, VALUE(*)(ANYARGS), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _m2(__VA_ARGS__, VALUE(*)(VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _m1(__VA_ARGS__, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _00(__VA_ARGS__, VALUE(*)(VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _01(__VA_ARGS__, VALUE(*)(VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _02(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _03(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _04(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _05(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _06(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _07(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _08(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _09(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _10(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _11(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _12(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _13(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _14(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \ +RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _15(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); +RBIMPL_ANYARGS_DECL(rb_define_singleton_method, VALUE, const char *) +RBIMPL_ANYARGS_DECL(rb_define_protected_method, VALUE, const char *) +RBIMPL_ANYARGS_DECL(rb_define_private_method, VALUE, const char *) +RBIMPL_ANYARGS_DECL(rb_define_module_function, VALUE, const char *) +RBIMPL_ANYARGS_DECL(rb_define_global_function, const char *) +RBIMPL_ANYARGS_DECL(rb_define_method_id, VALUE, ID) +RBIMPL_ANYARGS_DECL(rb_define_method, VALUE, const char *) +/** @endcond */ + +/** + * @brief Defines klass\#mid. + * @see ::rb_define_method + * @param klass Where the method lives. + * @param mid Name of the defining method. + * @param func Implementation of klass\#mid. + * @param arity Arity of klass\#mid. + */ +#define rb_define_method(klass, mid, func, arity) RBIMPL_ANYARGS_DISPATCH_rb_define_method((arity), (func))((klass), (mid), (func), (arity)) + +/** + * @brief Defines klass\#mid. + * @see ::rb_define_method_id + * @param klass Where the method lives. + * @param mid Name of the defining method. + * @param func Implementation of klass\#mid. + * @param arity Arity of klass\#mid. + */ +#define rb_define_method_id(klass, mid, func, arity) RBIMPL_ANYARGS_DISPATCH_rb_define_method_id((arity), (func))((klass), (mid), (func), (arity)) + +/** + * @brief Defines obj.mid. + * @see ::rb_define_singleton_method + * @param obj Where the method lives. + * @param mid Name of the defining method. + * @param func Implementation of obj.mid. + * @param arity Arity of obj.mid. + */ +#define rb_define_singleton_method(obj, mid, func, arity) RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method((arity), (func))((obj), (mid), (func), (arity)) + +/** + * @brief Defines klass\#mid and make it protected. + * @see ::rb_define_protected_method + * @param klass Where the method lives. + * @param mid Name of the defining method. + * @param func Implementation of klass\#mid. + * @param arity Arity of klass\#mid. + */ +#define rb_define_protected_method(klass, mid, func, arity) RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method((arity), (func))((klass), (mid), (func), (arity)) + +/** + * @brief Defines klass\#mid and make it private. + * @see ::rb_define_private_method + * @param klass Where the method lives. + * @param mid Name of the defining method. + * @param func Implementation of klass\#mid. + * @param arity Arity of klass\#mid. + */ +#define rb_define_private_method(klass, mid, func, arity) RBIMPL_ANYARGS_DISPATCH_rb_define_private_method((arity), (func))((klass), (mid), (func), (arity)) + +/** + * @brief Defines mod\#mid and make it a module function. + * @see ::rb_define_module_function + * @param mod Where the method lives. + * @param mid Name of the defining method. + * @param func Implementation of mod\#mid. + * @param arity Arity of mod\#mid. + */ +#define rb_define_module_function(mod, mid, func, arity) RBIMPL_ANYARGS_DISPATCH_rb_define_module_function((arity), (func))((mod), (mid), (func), (arity)) + +/** + * @brief Defines ::rb_mKerbel \#mid. + * @see ::rb_define_global_function + * @param mid Name of the defining method. + * @param func Implementation of ::rb_mKernel \#mid. + * @param arity Arity of ::rb_mKernel \#mid. + */ +#define rb_define_global_function(mid, func, arity) RBIMPL_ANYARGS_DISPATCH_rb_define_global_function((arity), (func))((mid), (func), (arity)) + +#endif /* __cplusplus */ + +/** + * This macro is to properly cast a function parameter of *_define_method + * family. It has been around since 1.x era so you can maximise backwards + * compatibility by using it. + * + * ```CXX + * rb_define_method(klass, "method", RUBY_METHOD_FUNC(func), arity); + * ``` + * + * @param func A pointer to a function that implements a method. + */ +#if ! defined(RUBY_DEVEL) +# define RUBY_METHOD_FUNC(func) RBIMPL_CAST((VALUE (*)(ANYARGS))(func)) + +#elif ! RUBY_DEVEL +# define RUBY_METHOD_FUNC(func) RBIMPL_CAST((VALUE (*)(ANYARGS))(func)) + +#elif ! defined(rb_define_method) +# define RUBY_METHOD_FUNC(func) RBIMPL_CAST((VALUE (*)(ANYARGS))(func)) + +#else +# define RUBY_METHOD_FUNC(func) (func) + +#endif + +#endif /* RBIMPL_ANYARGS_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic.h new file mode 100644 index 0000000..7ebb4a8 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic.h @@ -0,0 +1,39 @@ +#ifndef RBIMPL_ARITHMETIC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Conversion between C's arithmetic types and Ruby's numeric + * types. + */ +#include "ruby/internal/arithmetic/char.h" +#include "ruby/internal/arithmetic/double.h" +#include "ruby/internal/arithmetic/fixnum.h" +#include "ruby/internal/arithmetic/gid_t.h" +#include "ruby/internal/arithmetic/int.h" +#include "ruby/internal/arithmetic/intptr_t.h" +#include "ruby/internal/arithmetic/long.h" +#include "ruby/internal/arithmetic/long_long.h" +#include "ruby/internal/arithmetic/mode_t.h" +#include "ruby/internal/arithmetic/off_t.h" +#include "ruby/internal/arithmetic/pid_t.h" +#include "ruby/internal/arithmetic/short.h" +#include "ruby/internal/arithmetic/size_t.h" +#include "ruby/internal/arithmetic/st_data_t.h" +#include "ruby/internal/arithmetic/uid_t.h" +#endif /* RBIMPL_ARITHMETIC_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/char.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/char.h new file mode 100644 index 0000000..920fdc0 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/char.h @@ -0,0 +1,81 @@ +#ifndef RBIMPL_ARITHMETIC_CHAR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_CHAR_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `char` and Ruby's. + */ +#include "ruby/internal/arithmetic/int.h" /* NUM2INT is here, but */ +#include "ruby/internal/arithmetic/long.h" /* INT2FIX is here.*/ +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/constexpr.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/core/rstring.h" +#include "ruby/internal/value_type.h" + +#define RB_NUM2CHR rb_num2char_inline /**< @alias{rb_num2char_inline} */ +#define NUM2CHR RB_NUM2CHR /**< @old{RB_NUM2CHR} */ +#define CHR2FIX RB_CHR2FIX /**< @old{RB_CHR2FIX} */ + +/** @cond INTERNAL_MACRO */ +#define RB_CHR2FIX RB_CHR2FIX +/** @endcond */ + +RBIMPL_ATTR_CONST_UNLESS_DEBUG() +RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Converts a C's `unsigned char` into an instance of ::rb_cInteger. + * + * @param[in] c Arbitrary `unsigned char` value. + * @return An instance of ::rb_cInteger. + * + * @internal + * + * Nobody explicitly states this but in Ruby, a char means an unsigned integer + * value of range 0..255. This is a general principle. AFAIK there is no + * single line of code where char is signed. + */ +static inline VALUE +RB_CHR2FIX(unsigned char c) +{ + return RB_INT2FIX(c); +} + +/** + * Converts an instance of ::rb_cNumeric into C's `char`. At the same time it + * accepts a String of more than one character, and returns its first byte. In + * the early days there was a Ruby level "character" literal `?c`, which + * roughly worked this way. + * + * @param[in] x Either a string or a numeric. + * @exception rb_eTypeError `x` is not a numeric. + * @exception rb_eRangeError `x` is out of range of `unsigned int`. + * @return The passed value converted into C's `char`. + */ +static inline char +rb_num2char_inline(VALUE x) +{ + if (RB_TYPE_P(x, RUBY_T_STRING) && (RSTRING_LEN(x)>=1)) + return RSTRING_PTR(x)[0]; + else + return RBIMPL_CAST((char)RB_NUM2INT(x)); +} + +#endif /* RBIMPL_ARITHMETIC_CHAR_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/double.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/double.h new file mode 100644 index 0000000..229de47 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/double.h @@ -0,0 +1,72 @@ +#ifndef RBIMPL_ARITHMETIC_DOUBLE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_DOUBLE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `double` and Ruby's. + */ +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +#define NUM2DBL rb_num2dbl /**< @old{rb_num2dbl} */ +#define RFLOAT_VALUE rb_float_value /**< @old{rb_float_value} */ +#define DBL2NUM rb_float_new /**< @old{rb_float_new} */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * Converts an instance of ::rb_cNumeric into C's `double`. + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @return The passed value converted into C's `double`. + */ +double rb_num2dbl(VALUE num); + +RBIMPL_ATTR_PURE() +/** + * Extracts its double value from an instance of ::rb_cFloat. + * + * @param[in] num An instance of ::rb_cFloat. + * @pre Must not pass anything other than a Fixnum. + * @return The passed value converted into C's `double`. + */ +double rb_float_value(VALUE num); + +/** + * Converts a C's `double` into an instance of ::rb_cFloat. + * + * @param[in] d Arbitrary `double` value. + * @return An instance of ::rb_cFloat. + */ +VALUE rb_float_new(double d); + +/** + * Identical to rb_float_new(), except it does not generate Flonums. + * + * @param[in] d Arbitrary `double` value. + * @return An instance of ::rb_cFloat. + * + * @internal + * + * @shyouhei has no idea why it is here. + */ +VALUE rb_float_new_in_heap(double d); +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_ARITHMETIC_DOUBLE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/fixnum.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/fixnum.h new file mode 100644 index 0000000..c8927ac --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/fixnum.h @@ -0,0 +1,60 @@ +#ifndef RBIMPL_ARITHMETIC_FIXNUM_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_FIXNUM_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Handling of integers formerly known as Fixnums. + */ +#include "ruby/backward/2/limits.h" + +#define FIXABLE RB_FIXABLE /**< @old{RB_FIXABLE} */ +#define FIXNUM_MAX RUBY_FIXNUM_MAX /**< @old{RUBY_FIXNUM_MAX} */ +#define FIXNUM_MIN RUBY_FIXNUM_MIN /**< @old{RUBY_FIXNUM_MIN} */ +#define NEGFIXABLE RB_NEGFIXABLE /**< @old{RB_NEGFIXABLE} */ +#define POSFIXABLE RB_POSFIXABLE /**< @old{RB_POSFIXABLE} */ + +/** + * Checks if the passed value is in range of fixnum, assuming it is a positive + * number. Can sometimes be useful for C's unsigned integer types. + * + * @internal + * + * FIXABLE can be applied to anything, from double to intmax_t. The problem is + * double. On a 64bit system RUBY_FIXNUM_MAX is 4,611,686,018,427,387,903, + * which is not representable by a double. The nearest value that a double can + * represent is 4,611,686,018,427,387,904, which is not fixable. The + * seemingly-strange "< FIXNUM_MAX + 1" expression below is due to this. + */ +#define RB_POSFIXABLE(_) ((_) < RUBY_FIXNUM_MAX + 1) + +/** + * Checks if the passed value is in range of fixnum, assuming it is a negative + * number. This is an implementation of #RB_FIXABLE. Rarely used stand alone. + */ +#define RB_NEGFIXABLE(_) ((_) >= RUBY_FIXNUM_MIN) + +/** Checks if the passed value is in range of fixnum */ +#define RB_FIXABLE(_) (RB_POSFIXABLE(_) && RB_NEGFIXABLE(_)) + +/** Maximum possible value that a fixnum can represent. */ +#define RUBY_FIXNUM_MAX (LONG_MAX / 2) + +/** Minimum possible value that a fixnum can represent. */ +#define RUBY_FIXNUM_MIN (LONG_MIN / 2) + +#endif /* RBIMPL_ARITHMETIC_FIXNUM_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/gid_t.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/gid_t.h new file mode 100644 index 0000000..361220b --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/gid_t.h @@ -0,0 +1,41 @@ +#ifndef RBIMPL_ARITHMETIC_GID_T_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_GID_T_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `gid_t` and Ruby's. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/arithmetic/long.h" + +/** Converts a C's `gid_t` into an instance of ::rb_cInteger. */ +#ifndef GIDT2NUM +# define GIDT2NUM RB_LONG2NUM +#endif + +/** Converts an instance of ::rb_cNumeric into C's `gid_t`. */ +#ifndef NUM2GIDT +# define NUM2GIDT RB_NUM2LONG +#endif + +/** A rb_sprintf() format prefix to be used for a `gid_t` parameter. */ +#ifndef PRI_GIDT_PREFIX +# define PRI_GIDT_PREFIX PRI_LONG_PREFIX +#endif + +#endif /* RBIMPL_ARITHMETIC_GID_T_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/int.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/int.h new file mode 100644 index 0000000..6bd8ec2 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/int.h @@ -0,0 +1,264 @@ +#ifndef RBIMPL_ARITHMETIC_INT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_INT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `int` and Ruby's. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/arithmetic/fixnum.h" +#include "ruby/internal/arithmetic/intptr_t.h" +#include "ruby/internal/arithmetic/long.h" +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/constexpr.h" +#include "ruby/internal/compiler_is.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/special_consts.h" +#include "ruby/internal/value.h" +#include "ruby/internal/warning_push.h" +#include "ruby/assert.h" + +#define RB_INT2NUM rb_int2num_inline /**< @alias{rb_int2num_inline} */ +#define RB_NUM2INT rb_num2int_inline /**< @alias{rb_num2int_inline} */ +#define RB_UINT2NUM rb_uint2num_inline /**< @alias{rb_uint2num_inline} */ + +#define FIX2INT RB_FIX2INT /**< @old{RB_FIX2INT} */ +#define FIX2UINT RB_FIX2UINT /**< @old{RB_FIX2UINT} */ +#define INT2NUM RB_INT2NUM /**< @old{RB_INT2NUM} */ +#define NUM2INT RB_NUM2INT /**< @old{RB_NUM2INT} */ +#define NUM2UINT RB_NUM2UINT /**< @old{RB_NUM2UINT} */ +#define UINT2NUM RB_UINT2NUM /**< @old{RB_UINT2NUM} */ + +/** @cond INTERNAL_MACRO */ +#define RB_FIX2INT RB_FIX2INT +#define RB_NUM2UINT RB_NUM2UINT +#define RB_FIX2UINT RB_FIX2UINT +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Converts an instance of ::rb_cNumeric into C's `long`. + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `int`. + * @return The passed value converted into C's `long`. + * + * @internal + * + * Yes, the API is really strange. It returns `long`, but raises when the + * value is out of `int`. This seems to be due to the fact that Matz favoured + * K&R before, and his machine at that moment was an ILP32 architecture. + */ +long rb_num2int(VALUE num); + +/** + * Identical to rb_num2int(). + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `int`. + * @return The passed value converted into C's `long`. + * + * @internal + * + * This function seems to be a complete waste of disk space. @shyouhei has no + * idea why this is a different thing from rb_num2short(). + */ +long rb_fix2int(VALUE num); + +/** + * Converts an instance of ::rb_cNumeric into C's `unsigned long`. + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `unsigned int`. + * @return The passed value converted into C's `unsigned long`. + * + * @internal + * + * Yes, the API is really strange. It returns `unsigned long`, but raises when + * the value is out of `unsigned int`. This seems to be due to the fact that + * Matz favoured K&R before, and his machine at that moment was an ILP32 + * architecture. + */ +unsigned long rb_num2uint(VALUE num); + +/** + * Identical to rb_num2uint(). + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `unsigned int`. + * @return The passed value converted into C's `unsigned long`. + * + * @internal + * + * This function seems to be a complete waste of disk space. @shyouhei has no + * idea why this is a different thing from rb_num2short(). + */ +unsigned long rb_fix2uint(VALUE num); +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Converts a Fixnum into C's `int`. + * + * @param[in] x Some Fixnum. + * @pre Must not pass anything other than a Fixnum. + * @return The passed value converted into C's `int`. + */ +static inline int +RB_FIX2INT(VALUE x) +{ + /* "FIX2INT raises a TypeError if passed nil", says rubyspec. Not sure if + * that is a desired behaviour but just preserve backwards compatilibily. + */ +#if 0 + RBIMPL_ASSERT_OR_ASSUME(RB_FIXNUM_P(x)); +#endif + long ret; + + if /* constexpr */ (sizeof(int) < sizeof(long)) { + ret = rb_fix2int(x); + } + else { + ret = RB_FIX2LONG(x); + } + + return RBIMPL_CAST((int)ret); +} + +/** + * Converts an instance of ::rb_cNumeric into C's `int`. + * + * @param[in] x Something numeric. + * @exception rb_eTypeError `x` is not a numeric. + * @exception rb_eRangeError `x` is out of range of `int`. + * @return The passed value converted into C's `int`. + */ +static inline int +rb_num2int_inline(VALUE x) +{ + long ret; + + if /* constexpr */ (sizeof(int) == sizeof(long)) { + ret = RB_NUM2LONG(x); + } + else if (RB_FIXNUM_P(x)) { + ret = rb_fix2int(x); + } + else { + ret = rb_num2int(x); + } + + return RBIMPL_CAST((int)ret); +} + +/** + * Converts an instance of ::rb_cNumeric into C's `unsigned int`. + * + * @param[in] x Something numeric. + * @exception rb_eTypeError `x` is not a numeric. + * @exception rb_eRangeError `x` is out of range of `unsigned int`. + * @return The passed value converted into C's `unsigned int`. + */ +RBIMPL_ATTR_ARTIFICIAL() +static inline unsigned int +RB_NUM2UINT(VALUE x) +{ + unsigned long ret; + + if /* constexpr */ (sizeof(int) < sizeof(long)) { + ret = rb_num2uint(x); + } + else { + ret = RB_NUM2ULONG(x); + } + + return RBIMPL_CAST((unsigned int)ret); +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Converts a Fixnum into C's `int`. + * + * @param[in] x Some Fixnum. + * @pre Must not pass anything other than a Fixnum. + * @return The passed value converted into C's `int`. + */ +static inline unsigned int +RB_FIX2UINT(VALUE x) +{ +#if 0 /* Ditto for RB_FIX2INT. */ + RBIMPL_ASSERT_OR_ASSUME(RB_FIXNUM_P(x)); +#endif + unsigned long ret; + + if /* constexpr */ (sizeof(int) < sizeof(long)) { + ret = rb_fix2uint(x); + } + else { + ret = RB_FIX2ULONG(x); + } + + return RBIMPL_CAST((unsigned int)ret); +} + +RBIMPL_WARNING_PUSH() +#if RBIMPL_COMPILER_IS(GCC) +RBIMPL_WARNING_IGNORED(-Wtype-limits) /* We can ignore them here. */ +#elif RBIMPL_HAS_WARNING("-Wtautological-constant-out-of-range-compare") +RBIMPL_WARNING_IGNORED(-Wtautological-constant-out-of-range-compare) +#endif + +/** + * Converts a C's `int` into an instance of ::rb_cInteger. + * + * @param[in] v Arbitrary `int` value. + * @return An instance of ::rb_cInteger. + */ +static inline VALUE +rb_int2num_inline(int v) +{ + if (RB_FIXABLE(v)) + return RB_INT2FIX(v); + else + return rb_int2big(v); +} + +/** + * Converts a C's `unsigned int` into an instance of ::rb_cInteger. + * + * @param[in] v Arbitrary `unsigned int` value. + * @return An instance of ::rb_cInteger. + */ +static inline VALUE +rb_uint2num_inline(unsigned int v) +{ + if (RB_POSFIXABLE(v)) + return RB_LONG2FIX(v); + else + return rb_uint2big(v); +} + +RBIMPL_WARNING_POP() + +#endif /* RBIMPL_ARITHMETIC_INT_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/intptr_t.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/intptr_t.h new file mode 100644 index 0000000..a354f44 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/intptr_t.h @@ -0,0 +1,74 @@ +#ifndef RBIMPL_ARITHMETIC_INTPTR_T_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_INTPTR_T_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `intptr_t` and Ruby's. + */ +#include "ruby/internal/config.h" + +#ifdef HAVE_STDINT_H +# include +#endif + +#include "ruby/internal/value.h" +#include "ruby/internal/dllexport.h" + +#define rb_int_new rb_int2inum /**< @alias{rb_int2inum} */ +#define rb_uint_new rb_uint2inum /**< @alias{rb_uint2inum} */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Converts a C's `intptr_t` into an instance of ::rb_cInteger. + * + * @param[in] i Arbitrary `intptr_t` value. + * @return An instance of ::rb_cInteger. + * @note This function always allocates Bignums, even if the given number + * is small enough to fit into a Fixnum. + */ +VALUE rb_int2big(intptr_t i); + +/** + * Converts a C's `intptr_t` into an instance of ::rb_cInteger. + * + * @param[in] i Arbitrary `intptr_t` value. + * @return An instance of ::rb_cInteger. + */ +VALUE rb_int2inum(intptr_t i); + +/** + * Converts a C's `intptr_t` into an instance of ::rb_cInteger. + * + * @param[in] i Arbitrary `intptr_t` value. + * @return An instance of ::rb_cInteger. + * @note This function always allocates Bignums, even if the given number + * is small enough to fit into a Fixnum. + */ +VALUE rb_uint2big(uintptr_t i); + +/** + * Converts a C's `uintptr_t` into an instance of ::rb_cInteger. + * + * @param[in] i Arbitrary `uintptr_t` value. + * @return An instance of ::rb_cInteger. + */ +VALUE rb_uint2inum(uintptr_t i); +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_ARITHMETIC_INTPTR_T_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/long.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/long.h new file mode 100644 index 0000000..6b8fd8f --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/long.h @@ -0,0 +1,356 @@ +#ifndef RBIMPL_ARITHMETIC_LONG_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_LONG_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `long` and Ruby's. + * + * ### Q&A ### + * + * - Q: Why are INT2FIX etc. here, not in `int.h`? + * + * - A: Because they are in fact handling `long`. It seems someone did not + * understand the difference of `int` and `long` when they designed those + * macros. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/arithmetic/fixnum.h" /* FIXABLE */ +#include "ruby/internal/arithmetic/intptr_t.h" /* rb_int2big etc.*/ +#include "ruby/internal/assume.h" +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/cold.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/constexpr.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/special_consts.h" /* FIXNUM_FLAG */ +#include "ruby/internal/value.h" +#include "ruby/assert.h" + +#define FIX2LONG RB_FIX2LONG /**< @old{RB_FIX2LONG} */ +#define FIX2ULONG RB_FIX2ULONG /**< @old{RB_FIX2ULONG} */ +#define INT2FIX RB_INT2FIX /**< @old{RB_INT2FIX} */ +#define LONG2FIX RB_INT2FIX /**< @old{RB_INT2FIX} */ +#define LONG2NUM RB_LONG2NUM /**< @old{RB_LONG2NUM} */ +#define NUM2LONG RB_NUM2LONG /**< @old{RB_NUM2LONG} */ +#define NUM2ULONG RB_NUM2ULONG /**< @old{RB_NUM2ULONG} */ +#define RB_FIX2LONG rb_fix2long /**< @alias{rb_fix2long} */ +#define RB_FIX2ULONG rb_fix2ulong /**< @alias{rb_fix2ulong} */ +#define RB_LONG2FIX RB_INT2FIX /**< @alias{RB_INT2FIX} */ +#define RB_LONG2NUM rb_long2num_inline /**< @alias{rb_long2num_inline} */ +#define RB_NUM2LONG rb_num2long_inline /**< @alias{rb_num2long_inline} */ +#define RB_NUM2ULONG rb_num2ulong_inline /**< @alias{rb_num2ulong_inline} */ +#define RB_ULONG2NUM rb_ulong2num_inline /**< @alias{rb_ulong2num_inline} */ +#define ULONG2NUM RB_ULONG2NUM /**< @old{RB_ULONG2NUM} */ +#define rb_fix_new RB_INT2FIX /**< @alias{RB_INT2FIX} */ +#define rb_long2int rb_long2int_inline /**< @alias{rb_long2int_inline} */ + +/** @cond INTERNAL_MACRO */ +#define RB_INT2FIX RB_INT2FIX +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_COLD() +/** + * This is an utility function to raise an ::rb_eRangeError. + * + * @param[in] num A signed value about to overflow. + * @exception rb_eRangeError `num` is out of range of `int`. + */ +void rb_out_of_int(SIGNED_VALUE num); + +/** + * Converts an instance of ::rb_cNumeric into C's `long`. + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `long`. + * @return The passed value converted into C's `long`. + */ +long rb_num2long(VALUE num); + +/** + * Converts an instance of ::rb_cNumeric into C's `unsigned long`. + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `unsigned long`. + * @return The passed value converted into C's `unsigned long`. + */ +unsigned long rb_num2ulong(VALUE num); +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_CONST_UNLESS_DEBUG() +RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Converts a C's `long` into an instance of ::rb_cInteger. + * + * @param[in] i Arbitrary `long` value. + * @return An instance of ::rb_cInteger. + */ +static inline VALUE +RB_INT2FIX(long i) +{ + RBIMPL_ASSERT_OR_ASSUME(RB_FIXABLE(i)); + + /* :NOTE: VALUE can be wider than long. As j being unsigned, 2j+1 is fully + * defined. Also it can be compiled into a single LEA instruction. */ + const unsigned long j = i; + const unsigned long k = (j << 1) + RUBY_FIXNUM_FLAG; + const long l = k; + const SIGNED_VALUE m = l; /* Sign extend */ + const VALUE n = m; + + RBIMPL_ASSERT_OR_ASSUME(RB_FIXNUM_P(n)); + return n; +} + +/** + * Checks if `int` can hold the given integer. + * + * @param[in] n Arbitrary `long` value. + * @exception rb_eRangeError `n` is out of range of `int`. + * @return Identical value of type `int` + */ +static inline int +rb_long2int_inline(long n) +{ + int i = RBIMPL_CAST((int)n); + + if /* constexpr */ (sizeof(long) <= sizeof(int)) { + RBIMPL_ASSUME(i == n); + } + + if (i != n) + rb_out_of_int(n); + + return i; +} + +RBIMPL_ATTR_CONST_UNLESS_DEBUG() +RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) +/** + * @private + * + * This is an implementation detail of rb_fix2long(). People don't use it + * directly. + * + * @param[in] x A Fixnum. + * @return Identical value of type `long` + * @pre Must not pass anything other than a Fixnum. + */ +static inline long +rbimpl_fix2long_by_idiv(VALUE x) +{ + RBIMPL_ASSERT_OR_ASSUME(RB_FIXNUM_P(x)); + + /* :NOTE: VALUE can be wider than long. (x-1)/2 never overflows because + * RB_FIXNUM_P(x) holds. Also it has no portability issue like y>>1 + * below. */ + const SIGNED_VALUE y = x - RUBY_FIXNUM_FLAG; + const SIGNED_VALUE z = y / 2; + const long w = RBIMPL_CAST((long)z); + + RBIMPL_ASSERT_OR_ASSUME(RB_FIXABLE(w)); + return w; +} + +RBIMPL_ATTR_CONST_UNLESS_DEBUG() +RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) +/** + * @private + * + * This is an implementation detail of rb_fix2long(). People don't use it + * directly. + * + * @param[in] x A Fixnum. + * @return Identical value of type `long` + * @pre Must not pass anything other than a Fixnum. + */ +static inline long +rbimpl_fix2long_by_shift(VALUE x) +{ + RBIMPL_ASSERT_OR_ASSUME(RB_FIXNUM_P(x)); + + /* :NOTE: VALUE can be wider than long. If right shift is arithmetic, this + * is noticeably faster than above. */ + const SIGNED_VALUE y = x; + const SIGNED_VALUE z = y >> 1; + const long w = RBIMPL_CAST((long)z); + + RBIMPL_ASSERT_OR_ASSUME(RB_FIXABLE(w)); + return w; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +/** + * @private + * + * This is an implementation detail of rb_fix2long(). People don't use it + * directly. + * + * @retval true This C compiler's right shift operator is arithmetic. + * @retval false This C compiler's right shift operator is logical. + */ +static inline bool +rbimpl_right_shift_is_arithmetic_p(void) +{ + return (-1 >> 1) == -1; +} + +RBIMPL_ATTR_CONST_UNLESS_DEBUG() +RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) +/** + * Converts a Fixnum into C's `long`. + * + * @param[in] x Some Fixnum. + * @pre Must not pass anything other than a Fixnum. + * @return The passed value converted into C's `long`. + */ +static inline long +rb_fix2long(VALUE x) +{ + if /* constexpr */ (rbimpl_right_shift_is_arithmetic_p()) { + return rbimpl_fix2long_by_shift(x); + } + else { + return rbimpl_fix2long_by_idiv(x); + } +} + +RBIMPL_ATTR_CONST_UNLESS_DEBUG() +RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) +/** + * Converts a Fixnum into C's `unsigned long`. + * + * @param[in] x Some Fixnum. + * @pre Must not pass anything other than a Fixnum. + * @return The passed value converted into C's `unsigned long`. + * @note Negative fixnums will be converted into large unsigned longs. + */ +static inline unsigned long +rb_fix2ulong(VALUE x) +{ + RBIMPL_ASSERT_OR_ASSUME(RB_FIXNUM_P(x)); + return rb_fix2long(x); +} + +/** + * Converts an instance of ::rb_cNumeric into C's `long`. + * + * @param[in] x Something numeric. + * @exception rb_eTypeError `x` is not a numeric. + * @exception rb_eRangeError `x` is out of range of `long`. + * @return The passed value converted into C's `long`. + */ +static inline long +rb_num2long_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return RB_FIX2LONG(x); + else + return rb_num2long(x); +} + +/** + * Converts an instance of ::rb_cNumeric into C's `unsigned long`. + * + * @param[in] x Something numeric. + * @exception rb_eTypeError `x` is not a numeric. + * @exception rb_eRangeError `x` is out of range of `unsigned long`. + * @return The passed value converted into C's `unsigned long`. + * + * @internal + * + * This (negative fixnum would become a large unsigned long while negative + * bignum is an exception) has been THE behaviour of NUM2ULONG since the + * beginning. It is strange, but we can no longer change how it works at this + * moment. We have to get by with it. + * + * @see https://bugs.ruby-lang.org/issues/9089 + */ +static inline unsigned long +rb_num2ulong_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return RB_FIX2ULONG(x); + else + return rb_num2ulong(x); +} + +/** + * Converts a C's `long` into an instance of ::rb_cInteger. + * + * @param[in] v Arbitrary `long` value. + * @return An instance of ::rb_cInteger. + */ +static inline VALUE +rb_long2num_inline(long v) +{ + if (RB_FIXABLE(v)) + return RB_LONG2FIX(v); + else + return rb_int2big(v); +} + +/** + * Converts a C's `unsigned long` into an instance of ::rb_cInteger. + * + * @param[in] v Arbitrary `unsigned long` value. + * @return An instance of ::rb_cInteger. + */ +static inline VALUE +rb_ulong2num_inline(unsigned long v) +{ + if (RB_POSFIXABLE(v)) + return RB_LONG2FIX(v); + else + return rb_uint2big(v); +} + +/** + * @cond INTERNAL_MACRO + * + * Following overload is necessary because sometimes INT2FIX is used as a enum + * value (e.g. `enum { FOO = INT2FIX(0) };`). THIS IS NG in theory because a + * VALUE does not fit into an enum (which must be a signed int). But we cannot + * break existing codes. + */ +#if RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 +# /* C++ can write constexpr as enum values. */ + +#elif ! defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P) +# undef INT2FIX +# define INT2FIX(i) (RBIMPL_CAST((VALUE)(i)) << 1 | RUBY_FIXNUM_FLAG) + +#else +# undef INT2FIX +# define INT2FIX(i) \ + __builtin_choose_expr( \ + __builtin_constant_p(i), \ + RBIMPL_CAST((VALUE)(i)) << 1 | RUBY_FIXNUM_FLAG, \ + RB_INT2FIX(i)) +#endif +/** @endcond */ + +#endif /* RBIMPL_ARITHMETIC_LONG_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/long_long.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/long_long.h new file mode 100644 index 0000000..65dec87 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/long_long.h @@ -0,0 +1,135 @@ +#ifndef RBIMPL_ARITHMETIC_LONG_LONG_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_LONG_LONG_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `long long` and Ruby's. + */ +#include "ruby/internal/value.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/special_consts.h" +#include "ruby/backward/2/long_long.h" + +#define RB_LL2NUM rb_ll2num_inline /**< @alias{rb_ll2num_inline} */ +#define RB_ULL2NUM rb_ull2num_inline /**< @alias{rb_ull2num_inline} */ +#define LL2NUM RB_LL2NUM /**< @old{RB_LL2NUM} */ +#define ULL2NUM RB_ULL2NUM /**< @old{RB_ULL2NUM} */ +#define RB_NUM2LL rb_num2ll_inline /**< @alias{rb_num2ll_inline} */ +#define RB_NUM2ULL rb_num2ull_inline /**< @alias{rb_num2ull_inline} */ +#define NUM2LL RB_NUM2LL /**< @old{RB_NUM2LL} */ +#define NUM2ULL RB_NUM2ULL /**< @old{RB_NUM2ULL} */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * Converts a C's `long long` into an instance of ::rb_cInteger. + * + * @param[in] num Arbitrary `long long` value. + * @return An instance of ::rb_cInteger. + */ +VALUE rb_ll2inum(LONG_LONG num); + +/** + * Converts a C's `unsigned long long` into an instance of ::rb_cInteger. + * + * @param[in] num Arbitrary `unsigned long long` value. + * @return An instance of ::rb_cInteger. + */ +VALUE rb_ull2inum(unsigned LONG_LONG num); + +/** + * Converts an instance of ::rb_cNumeric into C's `long long`. + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `long long`. + * @return The passed value converted into C's `long long`. + */ +LONG_LONG rb_num2ll(VALUE num); + +/** + * Converts an instance of ::rb_cNumeric into C's `unsigned long long`. + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `unsigned long long`. + * @return The passed value converted into C's `unsigned long long`. + */ +unsigned LONG_LONG rb_num2ull(VALUE num); +RBIMPL_SYMBOL_EXPORT_END() + +/** + * Converts a C's `long long` into an instance of ::rb_cInteger. + * + * @param[in] n Arbitrary `long long` value. + * @return An instance of ::rb_cInteger + */ +static inline VALUE +rb_ll2num_inline(LONG_LONG n) +{ + if (FIXABLE(n)) return LONG2FIX((long)n); + return rb_ll2inum(n); +} + +/** + * Converts a C's `unsigned long long` into an instance of ::rb_cInteger. + * + * @param[in] n Arbitrary `unsigned long long` value. + * @return An instance of ::rb_cInteger + */ +static inline VALUE +rb_ull2num_inline(unsigned LONG_LONG n) +{ + if (POSFIXABLE(n)) return LONG2FIX((long)n); + return rb_ull2inum(n); +} + +/** + * Converts an instance of ::rb_cNumeric into C's `long long`. + * + * @param[in] x Something numeric. + * @exception rb_eTypeError `x` is not a numeric. + * @exception rb_eRangeError `x` is out of range of `long long`. + * @return The passed value converted into C's `long long`. + */ +static inline LONG_LONG +rb_num2ll_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return RB_FIX2LONG(x); + else + return rb_num2ll(x); +} + +/** + * Converts an instance of ::rb_cNumeric into C's `unsigned long long`. + * + * @param[in] x Something numeric. + * @exception rb_eTypeError `x` is not a numeric. + * @exception rb_eRangeError `x` is out of range of `unsigned long long`. + * @return The passed value converted into C's `unsigned long long`. + */ +static inline unsigned LONG_LONG +rb_num2ull_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return RB_FIX2LONG(x); + else + return rb_num2ull(x); +} + +#endif /* RBIMPL_ARITHMETIC_LONG_LONG_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/mode_t.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/mode_t.h new file mode 100644 index 0000000..5b7ad35 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/mode_t.h @@ -0,0 +1,41 @@ +#ifndef RBIMPL_ARITHMETIC_MODE_T_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_MODE_T_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `mode_t` and Ruby's. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/arithmetic/int.h" + +/** Converts a C's `mode_t` into an instance of ::rb_cInteger. */ +#ifndef NUM2MODET +# define NUM2MODET RB_NUM2INT +#endif + +/** Converts an instance of ::rb_cNumeric into C's `mode_t`. */ +#ifndef MODET2NUM +# define MODET2NUM RB_INT2NUM +#endif + +/** A rb_sprintf() format prefix to be used for a `mode_t` parameter. */ +#ifndef PRI_MODET_PREFIX +# define PRI_MODET_PREFIX PRI_INT_PREFIX +#endif + +#endif /* RBIMPL_ARITHMETIC_MODE_T_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/off_t.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/off_t.h new file mode 100644 index 0000000..0ec9362 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/off_t.h @@ -0,0 +1,62 @@ +#ifndef RBIMPL_ARITHMETIC_OFF_T_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_OFF_T_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `off_t` and Ruby's. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/arithmetic/int.h" +#include "ruby/internal/arithmetic/long.h" +#include "ruby/internal/arithmetic/long_long.h" +#include "ruby/backward/2/long_long.h" + +/** Converts a C's `off_t` into an instance of ::rb_cInteger. */ +#ifdef OFFT2NUM +# /* take that. */ +#elif SIZEOF_OFF_T == SIZEOF_LONG_LONG +# define OFFT2NUM RB_LL2NUM +#elif SIZEOF_OFF_T == SIZEOF_LONG +# define OFFT2NUM RB_LONG2NUM +#else +# define OFFT2NUM RB_INT2NUM +#endif + +/** Converts an instance of ::rb_cNumeric into C's `off_t`. */ +#ifdef NUM2OFFT +# /* take that. */ +#elif SIZEOF_OFF_T == SIZEOF_LONG_LONG +# define NUM2OFFT RB_NUM2LL +#elif SIZEOF_OFF_T == SIZEOF_LONG +# define NUM2OFFT RB_NUM2LONG +#else +# define NUM2OFFT RB_NUM2INT +#endif + +/** A rb_sprintf() format prefix to be used for an `off_t` parameter. */ +#ifdef PRI_OFFT_PREFIX +# /* take that. */ +#elif SIZEOF_OFF_T == SIZEOF_LONG_LONG +# define PRI_OFFT_PREFIX PRI_LL_PREFIX +#elif SIZEOF_OFF_T == SIZEOF_LONG +# define PRI_OFFT_PREFIX PRI_LONG_PREFIX +#else +# define PRI_OFFT_PREFIX PRI_INT_PREFIX +#endif + +#endif /* RBIMPL_ARITHMETIC_OFF_T_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/pid_t.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/pid_t.h new file mode 100644 index 0000000..df9704e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/pid_t.h @@ -0,0 +1,41 @@ +#ifndef RBIMPL_ARITHMETIC_PID_T_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_PID_T_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `pid_t` and Ruby's. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/arithmetic/long.h" + +/** Converts a C's `pid_t` into an instance of ::rb_cInteger. */ +#ifndef PIDT2NUM +# define PIDT2NUM RB_LONG2NUM +#endif + +/** Converts an instance of ::rb_cNumeric into C's `pid_t`. */ +#ifndef NUM2PIDT +# define NUM2PIDT RB_NUM2LONG +#endif + +/** A rb_sprintf() format prefix to be used for a `pid_t` parameter. */ +#ifndef PRI_PIDT_PREFIX +# define PRI_PIDT_PREFIX PRI_LONG_PREFIX +#endif + +#endif /* RBIMPL_ARITHMETIC_PID_T_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/short.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/short.h new file mode 100644 index 0000000..7a324d9 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/short.h @@ -0,0 +1,113 @@ +#ifndef RBIMPL_ARITHMETIC_SHORT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_SHORT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `short` and Ruby's. + * + * Shyouhei wonders: why there is no SHORT2NUM, given there are both + * #USHORT2NUM and #CHR2FIX? + */ +#include "ruby/internal/value.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/special_consts.h" + +#define RB_NUM2SHORT rb_num2short_inline /**< @alias{rb_num2short_inline} */ +#define RB_NUM2USHORT rb_num2ushort /**< @alias{rb_num2ushort} */ +#define NUM2SHORT RB_NUM2SHORT /**< @old{RB_NUM2SHORT} */ +#define NUM2USHORT RB_NUM2USHORT /**< @old{RB_NUM2USHORT} */ +#define USHORT2NUM RB_INT2FIX /**< @old{RB_INT2FIX} */ +#define RB_FIX2SHORT rb_fix2short /**< @alias{rb_fix2ushort} */ +#define FIX2SHORT RB_FIX2SHORT /**< @old{RB_FIX2SHORT} */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Converts an instance of ::rb_cNumeric into C's `short`. + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `short`. + * @return The passed value converted into C's `short`. + */ +short rb_num2short(VALUE num); + +/** + * Converts an instance of ::rb_cNumeric into C's `unsigned short`. + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `unsigned short`. + * @return The passed value converted into C's `unsigned short`. + */ +unsigned short rb_num2ushort(VALUE num); + +/** + * Identical to rb_num2short(). + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `short`. + * @return The passed value converted into C's `short`. + * + * @internal + * + * This function seems to be a complete waste of disk space. @shyouhei has no + * idea why this is a different thing from rb_num2short(). + */ +short rb_fix2short(VALUE num); + +/** + * Identical to rb_num2ushort(). + * + * @param[in] num Something numeric. + * @exception rb_eTypeError `num` is not a numeric. + * @exception rb_eRangeError `num` is out of range of `unsigned short`. + * @return The passed value converted into C's `unsigned short`. + * + * @internal + * + * This function seems to be a complete waste of disk space. @shyouhei has no + * idea why this is a different thing from rb_num2ushort(). + */ +unsigned short rb_fix2ushort(VALUE num); +RBIMPL_SYMBOL_EXPORT_END() + +/** + * Identical to rb_num2short(). + * + * @param[in] x Something numeric. + * @exception rb_eTypeError `x` is not a numeric. + * @exception rb_eRangeError `x` is out of range of `short`. + * @return The passed value converted into C's `short`. + * + * @internal + * + * This function seems to be a complete waste of time. @shyouhei has no idea + * why this is a different thing from rb_num2short(). + */ +static inline short +rb_num2short_inline(VALUE x) +{ + if (RB_FIXNUM_P(x)) + return rb_fix2short(x); + else + return rb_num2short(x); +} + +#endif /* RBIMPL_ARITHMETIC_SHORT_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/size_t.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/size_t.h new file mode 100644 index 0000000..1082160 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/size_t.h @@ -0,0 +1,66 @@ +#ifndef RBIMPL_ARITHMETIC_SIZE_T_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_SIZE_T_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `size_t` and Ruby's. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/arithmetic/int.h" +#include "ruby/internal/arithmetic/long.h" +#include "ruby/internal/arithmetic/long_long.h" +#include "ruby/backward/2/long_long.h" + +#if defined(__DOXYGEN__) +# /** Converts a C's `size_t` into an instance of ::rb_cInteger. */ +# define RB_SIZE2NUM RB_ULONG2NUM +# /** Converts a C's `ssize_t` into an instance of ::rb_cInteger. */ +# define RB_SSIZE2NUM RB_LONG2NUM +#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG +# define RB_SIZE2NUM RB_ULL2NUM +# define RB_SSIZE2NUM RB_LL2NUM +#elif SIZEOF_SIZE_T == SIZEOF_LONG +# define RB_SIZE2NUM RB_ULONG2NUM +# define RB_SSIZE2NUM RB_LONG2NUM +#else +# define RB_SIZE2NUM RB_UINT2NUM +# define RB_SSIZE2NUM RB_INT2NUM +#endif + +#if defined(__DOXYGEN__) +# /** Converts an instance of ::rb_cInteger into C's `size_t`. */ +# define RB_NUM2SIZE RB_NUM2ULONG +# /** Converts an instance of ::rb_cInteger into C's `ssize_t`. */ +# define RB_NUM2SSIZE RB_NUM2LONG +#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG +# define RB_NUM2SIZE RB_NUM2ULL +# define RB_NUM2SSIZE RB_NUM2LL +#elif SIZEOF_SIZE_T == SIZEOF_LONG +# define RB_NUM2SIZE RB_NUM2ULONG +# define RB_NUM2SSIZE RB_NUM2LONG +#else +# define RB_NUM2SIZE RB_NUM2UINT +# define RB_NUM2SSIZE RB_NUM2INT +#endif + +#define NUM2SIZET RB_NUM2SIZE /**< @old{RB_NUM2SIZE} */ +#define SIZET2NUM RB_SIZE2NUM /**< @old{RB_SIZE2NUM} */ +#define NUM2SSIZET RB_NUM2SSIZE /**< @old{RB_NUM2SSIZE} */ +#define SSIZET2NUM RB_SSIZE2NUM /**< @old{RB_SSIZE2NUM} */ + +#endif /* RBIMPL_ARITHMETIC_SIZE_T_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/st_data_t.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/st_data_t.h new file mode 100644 index 0000000..3bff4ff --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/st_data_t.h @@ -0,0 +1,75 @@ +#ifndef RBIMPL_ARITHMERIC_ST_DATA_T_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMERIC_ST_DATA_T_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `st_data_t` and Ruby's. + */ +#include "ruby/internal/arithmetic/fixnum.h" +#include "ruby/internal/arithmetic/long.h" +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/constexpr.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/value.h" +#include "ruby/assert.h" +#include "ruby/st.h" + +#define ST2FIX RB_ST2FIX /**< @old{RB_ST2FIX} */ +/** @cond INTERNAL_MACRO */ +#define RB_ST2FIX RB_ST2FIX +/** @endcond */ + +RBIMPL_ATTR_CONST_UNLESS_DEBUG() +RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Converts a C's `st_data_t` into an instance of ::rb_cInteger. + * + * @param[in] i The data in question. + * @return A converted result + * @warning THIS CONVERSION LOSES DATA! Be warned. + * @see https://bugs.ruby-lang.org/issues/13877 + * @see https://bugs.ruby-lang.org/issues/14218 + * + * @internal + * + * This is needed because of hash functions. Hash functions return + * `st_data_t`, which could theoretically be bigger than Fixnums. However + * allocating Bignums for them every time we calculate hash values is just too + * heavy. To avoid penalty we need to ignore some upper bit(s) and stick to + * Fixnums. This function is used for that purpose. + */ +static inline VALUE +RB_ST2FIX(st_data_t i) +{ + SIGNED_VALUE x = i; + + if (x >= 0) { + x &= RUBY_FIXNUM_MAX; + } + else { + x |= RUBY_FIXNUM_MIN; + } + + RBIMPL_ASSERT_OR_ASSUME(RB_FIXABLE(x)); + unsigned long y = RBIMPL_CAST((unsigned long)x); + return RB_LONG2FIX(y); +} + +#endif /* RBIMPL_ARITHMETIC_ST_DATA_T_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/uid_t.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/uid_t.h new file mode 100644 index 0000000..12cde2a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/arithmetic/uid_t.h @@ -0,0 +1,41 @@ +#ifndef RBIMPL_ARITHMETIC_UID_T_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ARITHMETIC_UID_T_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Arithmetic conversion between C's `uid_t` and Ruby's. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/arithmetic/long.h" + +/** Converts a C's `uid_t` into an instance of ::rb_cInteger. */ +#ifndef UIDT2NUM +# define UIDT2NUM RB_LONG2NUM +#endif + +/** Converts an instance of ::rb_cNumeric into C's `uid_t`. */ +#ifndef NUM2UIDT +# define NUM2UIDT RB_NUM2LONG +#endif + +/** A rb_sprintf() format prefix to be used for a `uid_t` parameter. */ +#ifndef PRI_UIDT_PREFIX +# define PRI_UIDT_PREFIX PRI_LONG_PREFIX +#endif + +#endif /* RBIMPL_ARITHMETIC_UID_T_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/assume.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/assume.h new file mode 100644 index 0000000..4c183e8 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/assume.h @@ -0,0 +1,87 @@ +#ifndef RBIMPL_ASSUME_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ASSUME_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ASSUME / #RBIMPL_UNREACHABLE. + * + * These macros must be defined at once because: + * + * - #RBIMPL_ASSUME could fallback to #RBIMPL_UNREACHABLE. + * - #RBIMPL_UNREACHABLE could fallback to #RBIMPL_ASSUME. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/has/builtin.h" +#include "ruby/internal/warning_push.h" + +/** @cond INTERNAL_MACRO */ +#if defined(HAVE___ASSUME) +# define RBIMPL_HAVE___ASSUME +#endif +/** @endcond */ + +/** Wraps (or simulates) `__builtin_unreachable`. */ +#if RBIMPL_HAS_BUILTIN(__builtin_unreachable) +# define RBIMPL_UNREACHABLE_RETURN(_) __builtin_unreachable() + +#elif defined(RBIMPL_HAVE___ASSUME) +# define RBIMPL_UNREACHABLE_RETURN(_) return (__assume(0), (_)) + +#else +# define RBIMPL_UNREACHABLE_RETURN(_) return (_) +#endif + +/** Wraps (or simulates) `__builtin_unreachable`. */ +#if RBIMPL_HAS_BUILTIN(__builtin_unreachable) +# define RBIMPL_UNREACHABLE __builtin_unreachable + +#elif defined(RBIMPL_HAVE___ASSUME) +# define RBIMPL_UNREACHABLE() __assume(0) +#endif + +/** Wraps (or simulates) `__assume`. */ +#if RBIMPL_COMPILER_SINCE(Intel, 13, 0, 0) +# /* icc warnings are false positives. Ignore them. */ +# /* "warning #2261: __assume expression with side effects discarded" */ +# define RBIMPL_ASSUME(expr) \ + RBIMPL_WARNING_PUSH() \ + RBIMPL_WARNING_IGNORED(2261) \ + __assume(expr) \ + RBIMPL_WARNING_POP() + +#elif defined(RBIMPL_HAVE___ASSUME) +# define RBIMPL_ASSUME __assume + +#elif RBIMPL_HAS_BUILTIN(__builtin_assume) +# define RBIMPL_ASSUME __builtin_assume + +#elif ! defined(RBIMPL_UNREACHABLE) +# define RBIMPL_ASSUME(_) RBIMPL_CAST((void)(_)) + +#else +# define RBIMPL_ASSUME(_) \ + (RB_LIKELY(!!(_)) ? RBIMPL_CAST((void)0) : RBIMPL_UNREACHABLE()) +#endif + +#if ! defined(RBIMPL_UNREACHABLE) +# define RBIMPL_UNREACHABLE() RBIMPL_ASSUME(0) +#endif + +#endif /* RBIMPL_ASSUME_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/alloc_size.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/alloc_size.h new file mode 100644 index 0000000..954a201 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/alloc_size.h @@ -0,0 +1,32 @@ +#ifndef RBIMPL_ATTR_ALLOC_SIZE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_ALLOC_SIZE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_ALLOC_SIZE. + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((alloc_size))` */ +#if RBIMPL_HAS_ATTRIBUTE(alloc_size) +# define RBIMPL_ATTR_ALLOC_SIZE(tuple) __attribute__((__alloc_size__ tuple)) +#else +# define RBIMPL_ATTR_ALLOC_SIZE(tuple) /* void */ +#endif + +#endif /* RBIMPL_ATTR_ALLOC_SIZE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/artificial.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/artificial.h new file mode 100644 index 0000000..ef5f36a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/artificial.h @@ -0,0 +1,46 @@ +#ifndef RBIMPL_ATTR_ARTIFICIAL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_ARTIFICIAL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_ARTIFICIAL. + * + * ### Q&A ### + * + * - Q: What is this attribute? I don't get what GCC manual is talking about. + * + * - A: In short it is an attribute to manipulate GDB backtraces. The + * attribute makes the best sense when it comes with + * __attribute__((always_inline)). When a function annotated with this + * attribute gets inlined, and when you somehow look at a backtrace which + * includes such inlined call site, then the backtrace shows the caller + * and not the callee. This is handy for instance when an identical + * function is inlined more than once in a single big function. On such + * case it gets vital to know where the inlining happened in the callee. + * See also https://stackoverflow.com/a/21936099 + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((artificial))` */ +#if RBIMPL_HAS_ATTRIBUTE(artificial) +# define RBIMPL_ATTR_ARTIFICIAL() __attribute__((__artificial__)) +#else +# define RBIMPL_ATTR_ARTIFICIAL() /* void */ +#endif + +#endif /* RBIMPL_ATTR_ARTIFICIAL_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/cold.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/cold.h new file mode 100644 index 0000000..c68b3ae --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/cold.h @@ -0,0 +1,37 @@ +#ifndef RBIMPL_ATTR_COLD_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_COLD_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_COLD. + */ +#include "ruby/internal/compiler_is.h" +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((cold))` */ +#if RBIMPL_COMPILER_IS(SunPro) +# /* Recent SunPro has __has_attribute, and is broken. */ +# /* It reports it has attribute cold, reality isn't (warnings issued). */ +# define RBIMPL_ATTR_COLD() /* void */ +#elif RBIMPL_HAS_ATTRIBUTE(cold) +# define RBIMPL_ATTR_COLD() __attribute__((__cold__)) +#else +# define RBIMPL_ATTR_COLD() /* void */ +#endif + +#endif /* RBIMPL_ATTR_COLD_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/const.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/const.h new file mode 100644 index 0000000..e66aa17 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/const.h @@ -0,0 +1,46 @@ +#ifndef RBIMPL_ATTR_CONST_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_CONST_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_CONST. + */ +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/has/declspec_attribute.h" + +/** Wraps (or simulates) `__attribute__((const))` */ +#if RBIMPL_HAS_ATTRIBUTE(const) +# define RBIMPL_ATTR_CONST() __attribute__((__const__)) +#elif RBIMPL_HAS_DECLSPEC_ATTRIBUTE(noalias) +# /* If a function can be a const, that is also a noalias. */ +# define RBIMPL_ATTR_CONST() __declspec(noalias) +#elif RBIMPL_COMPILER_SINCE(SunPro, 5, 10, 0) +# define RBIMPL_ATTR_CONST() _Pragma("no_side_effect") +#else +# define RBIMPL_ATTR_CONST() /* void */ +#endif + +/** Enables #RBIMPL_ATTR_CONST if and only if. ! #RUBY_DEBUG. */ +#if !defined(RUBY_DEBUG) || !RUBY_DEBUG +# define RBIMPL_ATTR_CONST_UNLESS_DEBUG() RBIMPL_ATTR_CONST() +#else +# define RBIMPL_ATTR_CONST_UNLESS_DEBUG() /* void */ +#endif + +#endif /* RBIMPL_ATTR_CONST_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/constexpr.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/constexpr.h new file mode 100644 index 0000000..abc4f23 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/constexpr.h @@ -0,0 +1,84 @@ +#ifndef RBIMPL_ATTR_CONSTEXPR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_CONSTEXPR_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief #RBIMPL_ATTR_CONSTEXPR. + */ +#include "ruby/internal/has/feature.h" +#include "ruby/internal/compiler_is.h" + +/** @cond INTERNAL_MACRO */ +#if ! defined(__cplusplus) +# /* Makes no sense. */ +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 0 +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 0 + +#elif defined(__cpp_constexpr) +# /* https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations */ +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 (__cpp_constexpr >= 200704L) +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 (__cpp_constexpr >= 201304L) + +#elif RBIMPL_COMPILER_SINCE(MSVC, 19, 0, 0) +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 RBIMPL_COMPILER_SINCE(MSVC, 19, 00, 00) +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 RBIMPL_COMPILER_SINCE(MSVC, 19, 11, 00) + +#elif RBIMPL_COMPILER_SINCE(SunPro, 5, 13, 0) +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 (__cplusplus >= 201103L) +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 (__cplusplus >= 201402L) + +#elif RBIMPL_COMPILER_SINCE(GCC, 4, 9, 0) +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 (__cplusplus >= 201103L) +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 (__cplusplus >= 201402L) + +#elif RBIMPL_HAS_FEATURE(cxx_relaxed_constexpr) +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 1 +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 1 + +#elif RBIMPL_HAS_FEATURE(cxx_constexpr) +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 1 +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 0 + +#else +# /* :FIXME: icpc must have constexpr but don't know how to detect. */ +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 0 +# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 0 +#endif +/** @endcond */ + +/** Wraps (or simulates) C++11 `constexpr`. */ +#if RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 +# define RBIMPL_ATTR_CONSTEXPR(_) constexpr + +#elif RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 +# define RBIMPL_ATTR_CONSTEXPR(_) RBIMPL_ATTR_CONSTEXPR_ ## _ +# define RBIMPL_ATTR_CONSTEXPR_CXX11 constexpr +# define RBIMPL_ATTR_CONSTEXPR_CXX14 /* void */ + +#else +# define RBIMPL_ATTR_CONSTEXPR(_) /* void */ +#endif + +/** Enables #RBIMPL_ATTR_CONSTEXPR if and only if. ! #RUBY_DEBUG. */ +#if !RUBY_DEBUG +# define RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(_) RBIMPL_ATTR_CONSTEXPR(_) +#else +# define RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(_) /* void */ +#endif + +#endif /* RBIMPL_ATTR_CONSTEXPR_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/deprecated.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/deprecated.h new file mode 100644 index 0000000..e1bbdbd --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/deprecated.h @@ -0,0 +1,75 @@ +#ifndef RBIMPL_ATTR_DEPRECATED_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_DEPRECATED_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_DEPRECATED. + */ +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/has/c_attribute.h" +#include "ruby/internal/has/cpp_attribute.h" +#include "ruby/internal/has/declspec_attribute.h" +#include "ruby/internal/has/extension.h" + +/** Wraps (or simulates) `[[deprecated]]` */ +#if defined(__COVERITY__) +/* Coverity Scan emulates gcc but seems not to support this attribute correctly */ +# define RBIMPL_ATTR_DEPRECATED(msg) + +#elif RBIMPL_HAS_EXTENSION(attribute_deprecated_with_message) +# define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__ msg)) + +#elif defined(__cplusplus) && RBIMPL_COMPILER_SINCE(GCC, 10, 1, 0) && RBIMPL_COMPILER_BEFORE(GCC, 10, 3, 0) +# /* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95302 */ +# define RBIMPL_ATTR_DEPRECATED(msg) /* disable until they fix this bug */ + +#elif RBIMPL_COMPILER_SINCE(GCC, 4, 5, 0) +# define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__ msg)) + +#elif RBIMPL_COMPILER_SINCE(Intel, 13, 0, 0) +# define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__ msg)) + +#elif RBIMPL_HAS_ATTRIBUTE(deprecated) /* but not with message. */ +# define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__)) + +#elif RBIMPL_COMPILER_SINCE(MSVC, 14, 0, 0) +# define RBIMPL_ATTR_DEPRECATED(msg) __declspec(deprecated msg) + +#elif RBIMPL_HAS_DECLSPEC_ATTRIBUTE(deprecated) +# define RBIMPL_ATTR_DEPRECATED(msg) __declspec(deprecated) + +#elif RBIMPL_HAS_CPP_ATTRIBUTE(deprecated) +# define RBIMPL_ATTR_DEPRECATED(msg) [[deprecated msg]] + +#elif RBIMPL_HAS_C_ATTRIBUTE(deprecated) +# define RBIMPL_ATTR_DEPRECATED(msg) [[deprecated msg]] + +#else +# define RBIMPL_ATTR_DEPRECATED(msg) /* void */ +#endif + +/** This is when a function is used internally (for backwards compatibility + * etc.), but extension libraries must consider it deprecated. */ +#if defined(RUBY_EXPORT) +# define RBIMPL_ATTR_DEPRECATED_EXT(msg) /* void */ +#else +# define RBIMPL_ATTR_DEPRECATED_EXT(msg) RBIMPL_ATTR_DEPRECATED(msg) +#endif + +#endif /* RBIMPL_ATTR_DEPRECATED_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/diagnose_if.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/diagnose_if.h new file mode 100644 index 0000000..cadc6ce --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/diagnose_if.h @@ -0,0 +1,42 @@ +#ifndef RBIMPL_ATTR_DIAGNOSE_IF_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_DIAGNOSE_IF_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_DIAGNOSE_IF. + */ +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/warning_push.h" + +/** Wraps (or simulates) `__attribute__((diagnose_if))` */ +#if RBIMPL_COMPILER_BEFORE(Clang, 5, 0, 0) +# /* https://bugs.llvm.org/show_bug.cgi?id=34319 */ +# define RBIMPL_ATTR_DIAGNOSE_IF(_, __, ___) /* void */ + +#elif RBIMPL_HAS_ATTRIBUTE(diagnose_if) +# define RBIMPL_ATTR_DIAGNOSE_IF(_, __, ___) \ + RBIMPL_WARNING_PUSH() \ + RBIMPL_WARNING_IGNORED(-Wgcc-compat) \ + __attribute__((__diagnose_if__(_, __, ___))) \ + RBIMPL_WARNING_POP() + +#else +# define RBIMPL_ATTR_DIAGNOSE_IF(_, __, ___) /* void */ +#endif + +#endif /* RBIMPL_ATTR_DIAGNOSE_IF_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/enum_extensibility.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/enum_extensibility.h new file mode 100644 index 0000000..eb0d5b6 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/enum_extensibility.h @@ -0,0 +1,32 @@ +#ifndef RBIMPL_ATTR_ENUM_EXTENSIBILITY_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_ENUM_EXTENSIBILITY_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief #RBIMPL_ATTR_ENUM_EXTENSIBILITY. + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((enum_extensibility))` */ +#if RBIMPL_HAS_ATTRIBUTE(enum_extensibility) +# define RBIMPL_ATTR_ENUM_EXTENSIBILITY(_) __attribute__((__enum_extensibility__(_))) +#else +# define RBIMPL_ATTR_ENUM_EXTENSIBILITY(_) /* void */ +#endif + +#endif /* RBIMPL_ATTR_ENUM_EXTENSIBILITY_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/error.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/error.h new file mode 100644 index 0000000..2ed388a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/error.h @@ -0,0 +1,32 @@ +#ifndef RBIMPL_ATTR_ERROR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_ERROR_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_ERROR. + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((error))` */ +#if RBIMPL_HAS_ATTRIBUTE(error) +# define RBIMPL_ATTR_ERROR(msg) __attribute__((__error__ msg)) +#else +# define RBIMPL_ATTR_ERROR(msg) /* void */ +#endif + +#endif /* RBIMPL_ATTR_ERROR_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/flag_enum.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/flag_enum.h new file mode 100644 index 0000000..3053d75 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/flag_enum.h @@ -0,0 +1,33 @@ +#ifndef RBIMPL_ATTR_FLAG_ENUM_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_FLAG_ENUM_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_FLAG_ENUM. + * @see https://clang.llvm.org/docs/AttributeReference.html#flag_enum + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((flag_enum)` */ +#if RBIMPL_HAS_ATTRIBUTE(flag_enum) +# define RBIMPL_ATTR_FLAG_ENUM() __attribute__((__flag_enum__)) +#else +# define RBIMPL_ATTR_FLAG_ENUM() /* void */ +#endif + +#endif /* RBIMPLATTR_FLAG_ENUM_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/forceinline.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/forceinline.h new file mode 100644 index 0000000..b7daafe --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/forceinline.h @@ -0,0 +1,40 @@ +#ifndef RBIMPL_ATTR_FORCEINLINE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_FORCEINLINE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_FORCEINLINE. + */ +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/has/attribute.h" + +/** + * Wraps (or simulates) `__forceinline`. MSVC complains on declarations like + * `static inline __forceinline void foo()`. It seems MSVC's `inline` and + * `__forceinline` are mutually exclusive. We have to mimic that behaviour for + * non-MSVC compilers. + */ +#if RBIMPL_COMPILER_SINCE(MSVC, 12, 0, 0) +# define RBIMPL_ATTR_FORCEINLINE() __forceinline +#elif RBIMPL_HAS_ATTRIBUTE(always_inline) +# define RBIMPL_ATTR_FORCEINLINE() __attribute__((__always_inline__)) inline +#else +# define RBIMPL_ATTR_FORCEINLINE() inline +#endif + +#endif /* RBIMPL_ATTR_FORCEINLINE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/format.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/format.h new file mode 100644 index 0000000..b3488ee --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/format.h @@ -0,0 +1,38 @@ +#ifndef RBIMPL_ATTR_FORMAT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_FORMAT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_FORMAT. + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((format))` */ +#if RBIMPL_HAS_ATTRIBUTE(format) +# define RBIMPL_ATTR_FORMAT(x, y, z) __attribute__((__format__(x, y, z))) +#else +# define RBIMPL_ATTR_FORMAT(x, y, z) /* void */ +#endif + +#if defined(__MINGW_PRINTF_FORMAT) +# define RBIMPL_PRINTF_FORMAT __MINGW_PRINTF_FORMAT +#else +# define RBIMPL_PRINTF_FORMAT __printf__ +#endif + +#endif /* RBIMPL_ATTR_FORMAT_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/maybe_unused.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/maybe_unused.h new file mode 100644 index 0000000..3ee8be4 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/maybe_unused.h @@ -0,0 +1,38 @@ +#ifndef RBIMPL_ATTR_MAYBE_UNUSED_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_MAYBE_UNUSED_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_MAYBE_UNUSED. + */ +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/has/c_attribute.h" +#include "ruby/internal/has/cpp_attribute.h" + +/** Wraps (or simulates) `[[maybe_unused]]` */ +#if RBIMPL_HAS_CPP_ATTRIBUTE(maybe_unused) +# define RBIMPL_ATTR_MAYBE_UNUSED() [[maybe_unused]] +#elif RBIMPL_HAS_C_ATTRIBUTE(maybe_unused) +# define RBIMPL_ATTR_MAYBE_UNUSED() [[maybe_unused]] +#elif RBIMPL_HAS_ATTRIBUTE(unused) +# define RBIMPL_ATTR_MAYBE_UNUSED() __attribute__((__unused__)) +#else +# define RBIMPL_ATTR_MAYBE_UNUSED() /* void */ +#endif + +#endif /* RBIMPL_ATTR_MAYBE_UNUSED */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/noalias.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/noalias.h new file mode 100644 index 0000000..0790ef6 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/noalias.h @@ -0,0 +1,69 @@ +#ifndef RBIMPL_ATTR_NOALIAS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_NOALIAS_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_NOALIAS. + * + * ### Q&A ### + * + * - Q: There are seemingly similar attributes named #RBIMPL_ATTR_CONST, + * #RBIMPL_ATTR_PURE, and #RBIMPL_ATTR_NOALIAS. What are the difference? + * + * - A: Allowed operations are different. + * + * - #RBIMPL_ATTR_CONST ... Functions attributed by this are not allowed to + * read/write _any_ pointers at all (there are exceptional situations + * when reading a pointer is possible but forget that; they are too + * exceptional to be useful). Just remember that everything pointer- + * related are NG. + * + * - #RBIMPL_ATTR_PURE ... Functions attributed by this can read any + * nonvolatile pointers, but no writes are allowed at all. The ability + * to read _any_ nonvolatile pointers makes it possible to mark ::VALUE- + * taking functions as being pure, as long as they are read-only. + * + * - #RBIMPL_ATTR_NOALIAS ... Can both read/write, but only through + * pointers passed to the function as parameters. This is a typical + * situation when you create a C++ non-static member function which only + * concerns `this`. No global variables are allowed to read/write. So + * this is not a super-set of being pure. If you want to read something, + * that has to be passed to the function as a pointer. ::VALUE -taking + * functions thus cannot be attributed as such. + */ +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/has/declspec_attribute.h" + +/** Wraps (or simulates) `__declspec((noalias))` */ +#if RBIMPL_COMPILER_BEFORE(Clang, 12, 0, 0) +# /* +# * `::llvm::Attribute::ArgMemOnly` was buggy before. Maybe because nobody +# * actually seriously used it. It seems they somehow mitigated the situation +# * in LLVM 12. Still not found the exact changeset which fiexed the +# * attribute, though. +# * +# * :FIXME: others (armclang, xlclang, ...) can also be affected? +# */ +# define RBIMPL_ATTR_NOALIAS() /* void */ +#elif RBIMPL_HAS_DECLSPEC_ATTRIBUTE(noalias) +# define RBIMPL_ATTR_NOALIAS() __declspec(noalias) +#else +# define RBIMPL_ATTR_NOALIAS() /* void */ +#endif + +#endif /* RBIMPL_ATTR_NOALIAS_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/nodiscard.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/nodiscard.h new file mode 100644 index 0000000..c3ae118 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/nodiscard.h @@ -0,0 +1,45 @@ +#ifndef RBIMPL_ATTR_NODISCARD_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_NODISCARD_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_NODISCARD. + */ +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/has/c_attribute.h" +#include "ruby/internal/has/cpp_attribute.h" + +/** + * Wraps (or simulates) `[[nodiscard]]`. In C++ (at least since C++20) a + * nodiscard attribute can have a message why the result shall not be ignored. + * However GCC attribute and SAL annotation cannot take them. + */ +#if RBIMPL_HAS_CPP_ATTRIBUTE(nodiscard) +# define RBIMPL_ATTR_NODISCARD() [[nodiscard]] +#elif RBIMPL_HAS_C_ATTRIBUTE(nodiscard) +# define RBIMPL_ATTR_NODISCARD() [[nodiscard]] +#elif RBIMPL_HAS_ATTRIBUTE(warn_unused_result) +# define RBIMPL_ATTR_NODISCARD() __attribute__((__warn_unused_result__)) +#elif defined(_Check_return_) +# /* Take SAL definition. */ +# define RBIMPL_ATTR_NODISCARD() _Check_return_ +#else +# define RBIMPL_ATTR_NODISCARD() /* void */ +#endif + +#endif /* RBIMPL_ATTR_NODISCARD_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/noexcept.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/noexcept.h new file mode 100644 index 0000000..ea3001d --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/noexcept.h @@ -0,0 +1,91 @@ +#ifndef RBIMPL_ATTR_NOEXCEPT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_NOEXCEPT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_NOEXCEPT. + * + * This isn't actually an attribute in C++ but who cares... + * + * Mainly due to aesthetic reasons, this one is rarely used in the project. + * But can be handy on occasions, especially when a function's noexcept-ness + * depends on its calling functions. + * + * ### Q&A ### + * + * - Q: Can a function that raises Ruby exceptions be attributed `noexcept`? + * + * - A: Yes. `noexcept` is about C++ exceptions, not Ruby's. They don't + * interface each other. You can safely attribute a function that raises + * Ruby exceptions as `noexcept`. + * + * - Q: How, then, can I assert that a function I wrote doesn't raise any Ruby + * exceptions? + * + * - A: `__attribute__((__leaf__))` is for that purpose. A function attributed + * as leaf can still throw C++ exceptions, but not Ruby's. Note however, + * that it's extremely difficult -- if not impossible -- to assert that a + * function doesn't raise any Ruby exceptions at all. Use of that + * attribute is not recommended; mere mortals can't properly use that by + * hand. + * + * - Q: Does it make sense to attribute an inline function `noexcept`? + * + * - A: I thought so before. But no, I don't think they are useful any longer. + * + * - When an inline function attributed `noexcept` actually doesn't throw + * any exceptions at all: these days I don't see any difference in + * generated assembly by adding/removing this attribute. C++ compilers + * get smarter and smarter. Today they can infer if it actually throws + * or not without any annotations by humans (correct me if I'm wrong). + * + * - When an inline function attributed `noexcepr` actually _does_ throw an + * exception: they have to call `std::terminate` then (C++ standard + * mandates so). This means exception handling routines are actually + * enforced, not omitted. This doesn't impact runtime performance (The + * Itanium C++ ABI has zero-cost exception handling), but does impact on + * generated binary size. This is bad. + */ +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/has/feature.h" + +/** Wraps (or simulates) C++11 `noexcept` */ +#if ! defined(__cplusplus) +# /* Doesn't make sense. */ +# define RBIMPL_ATTR_NOEXCEPT(_) /* void */ + +#elif RBIMPL_HAS_FEATURE(cxx_noexcept) +# define RBIMPL_ATTR_NOEXCEPT(_) noexcept(noexcept(_)) + +#elif defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__ +# define RBIMPL_ATTR_NOEXCEPT(_) noexcept(noexcept(_)) + +#elif defined(__INTEL_CXX11_MODE__) +# define RBIMPL_ATTR_NOEXCEPT(_) noexcept(noexcept(_)) + +#elif RBIMPL_COMPILER_SINCE(MSVC, 19, 0, 0) +# define RBIMPL_ATTR_NOEXCEPT(_) noexcept(noexcept(_)) + +#elif __cplusplus >= 201103L +# define RBIMPL_ATTR_NOEXCEPT(_) noexcept(noexcept(_)) + +#else +# define RBIMPL_ATTR_NOEXCEPT(_) /* void */ +#endif + +#endif /* RBIMPL_ATTR_NOEXCEPT_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/noinline.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/noinline.h new file mode 100644 index 0000000..b7605a0 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/noinline.h @@ -0,0 +1,35 @@ +#ifndef RBIMPL_ATTR_NOINLINE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_NOINLINE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_NOINLINE. + */ +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/has/declspec_attribute.h" + +/** Wraps (or simulates) `__declspec(noinline)` */ +#if RBIMPL_HAS_DECLSPEC_ATTRIBUTE(noinline) +# define RBIMPL_ATTR_NOINLINE() __declspec(noinline) +#elif RBIMPL_HAS_ATTRIBUTE(noinline) +# define RBIMPL_ATTR_NOINLINE() __attribute__((__noinline__)) +#else +# define RBIMPL_ATTR_NOINLINE() /* void */ +#endif + +#endif /* RBIMPL_ATTR_NOINLINE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/nonnull.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/nonnull.h new file mode 100644 index 0000000..778d5be --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/nonnull.h @@ -0,0 +1,34 @@ +#ifndef RBIMPL_ATTR_NONNULL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_NONNULL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_NONNULL. + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((nonnull))` */ +#if RBIMPL_HAS_ATTRIBUTE(nonnull) +# define RBIMPL_ATTR_NONNULL(list) __attribute__((__nonnull__ list)) +# define RBIMPL_NONNULL_ARG(arg) RBIMPL_ASSERT_NOTHING +#else +# define RBIMPL_ATTR_NONNULL(list) /* void */ +# define RBIMPL_NONNULL_ARG(arg) RUBY_ASSERT(arg) +#endif + +#endif /* RBIMPL_ATTR_NONNULL_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/noreturn.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/noreturn.h new file mode 100644 index 0000000..5839212 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/noreturn.h @@ -0,0 +1,48 @@ +#ifndef RBIMPL_ATTR_NORETURN_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_NORETURN_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_NORETURN. + */ +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/has/cpp_attribute.h" +#include "ruby/internal/has/declspec_attribute.h" + +/** Wraps (or simulates) `[[noreturn]]` */ +#if RBIMPL_HAS_DECLSPEC_ATTRIBUTE(noreturn) +# define RBIMPL_ATTR_NORETURN() __declspec(noreturn) + +#elif RBIMPL_HAS_ATTRIBUTE(noreturn) +# define RBIMPL_ATTR_NORETURN() __attribute__((__noreturn__)) + +#elif RBIMPL_HAS_CPP_ATTRIBUTE(noreturn) +# define RBIMPL_ATTR_NORETURN() [[noreturn]] + +#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112) +# define RBIMPL_ATTR_NORETURN() _Noreturn + +#elif defined(_Noreturn) +# /* glibc has this macro. */ +# define RBIMPL_ATTR_NORETURN() _Noreturn + +#else +# define RBIMPL_ATTR_NORETURN() /* void */ +#endif + +#endif /* RBIMPL_ATTR_NORETURN_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/pure.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/pure.h new file mode 100644 index 0000000..015711b --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/pure.h @@ -0,0 +1,43 @@ +#ifndef RBIMPL_ATTR_PURE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_PURE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_PURE. + */ +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/has/attribute.h" +#include "ruby/assert.h" + +/** Wraps (or simulates) `__attribute__((pure))` */ +#if RBIMPL_HAS_ATTRIBUTE(pure) +# define RBIMPL_ATTR_PURE() __attribute__((__pure__)) +#elif RBIMPL_COMPILER_SINCE(SunPro, 5, 10, 0) +# define RBIMPL_ATTR_PURE() _Pragma("does_not_write_global_data") +#else +# define RBIMPL_ATTR_PURE() /* void */ +#endif + +/** Enables #RBIMPL_ATTR_PURE if and only if. ! #RUBY_DEBUG. */ +#if !RUBY_DEBUG +# define RBIMPL_ATTR_PURE_UNLESS_DEBUG() RBIMPL_ATTR_PURE() +#else +# define RBIMPL_ATTR_PURE_UNLESS_DEBUG() /* void */ +#endif + +#endif /* RBIMPL_ATTR_PURE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/restrict.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/restrict.h new file mode 100644 index 0000000..e391041 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/restrict.h @@ -0,0 +1,44 @@ +#ifndef RBIMPL_ATTR_RESTRICT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_RESTRICT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_RESTRICT. + */ +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/has/attribute.h" + +/* :FIXME: config.h includes conflicting `#define restrict`. MSVC can be + * detected using `RBIMPL_COMPILER_SINCE()`, but Clang & family cannot use + * `__has_declspec_attribute()` which involves macro substitution. */ + +/** Wraps (or simulates) `__declspec(restrict)` */ +#if RBIMPL_COMPILER_SINCE(MSVC, 14, 0, 0) +# define RBIMPL_ATTR_RESTRICT() __declspec(re ## strict) + +#elif RBIMPL_HAS_ATTRIBUTE(malloc) +# define RBIMPL_ATTR_RESTRICT() __attribute__((__malloc__)) + +#elif RBIMPL_COMPILER_SINCE(SunPro, 5, 10, 0) +# define RBIMPL_ATTR_RESTRICT() _Pragma("returns_new_memory") + +#else +# define RBIMPL_ATTR_RESTRICT() /* void */ +#endif + +#endif /* RBIMPL_ATTR_RESTRICT_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/returns_nonnull.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/returns_nonnull.h new file mode 100644 index 0000000..5d6f1d1 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/returns_nonnull.h @@ -0,0 +1,37 @@ +#ifndef RBIMPL_ATTR_RETURNS_NONNULL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_RETURNS_NONNULL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_RETURNS_NONNULL. + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((returns_nonnull))` */ +#if defined(_Ret_nonnull_) +# /* Take SAL definition. */ +# define RBIMPL_ATTR_RETURNS_NONNULL() _Ret_nonnull_ + +#elif RBIMPL_HAS_ATTRIBUTE(returns_nonnull) +# define RBIMPL_ATTR_RETURNS_NONNULL() __attribute__((__returns_nonnull__)) + +#else +# define RBIMPL_ATTR_RETURNS_NONNULL() /* void */ +#endif + +#endif /* RBIMPL_ATTR_RETURNS_NONNULL_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/warning.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/warning.h new file mode 100644 index 0000000..e5ced26 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/warning.h @@ -0,0 +1,32 @@ +#ifndef RBIMPL_ATTR_WARNING_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_WARNING_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_WARNING. + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((warning))` */ +#if RBIMPL_HAS_ATTRIBUTE(warning) +# define RBIMPL_ATTR_WARNING(msg) __attribute__((__warning__ msg)) +#else +# define RBIMPL_ATTR_WARNING(msg) /* void */ +#endif + +#endif /* RBIMPL_ATTR_WARNING_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/weakref.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/weakref.h new file mode 100644 index 0000000..f118bb6 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/attr/weakref.h @@ -0,0 +1,32 @@ +#ifndef RBIMPL_ATTR_WEAKREF_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ATTR_WEAKREF_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ATTR_WEAKREF. + */ +#include "ruby/internal/has/attribute.h" + +/** Wraps (or simulates) `__attribute__((weakref))` */ +#if RBIMPL_HAS_ATTRIBUTE(weakref) +# define RBIMPL_ATTR_WEAKREF(sym) __attribute__((__weakref__(# sym))) +#else +# define RBIMPL_ATTR_WEAKREF(sym) /* void */ +#endif + +#endif /* RBIMPL_ATTR_WEAKREF_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/cast.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/cast.h new file mode 100644 index 0000000..a31fddb --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/cast.h @@ -0,0 +1,50 @@ +#ifndef RBIMPL_CAST_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_CAST_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines RBIMPL_CAST. + * + * This casting macro makes sense only inside of other macros that are part of + * public headers. They could be used from C++, and C-style casts could issue + * warnings. Ruby internals are pure C so they should not bother. + */ +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/has/warning.h" +#include "ruby/internal/warning_push.h" + +#if ! defined(__cplusplus) +# define RBIMPL_CAST(expr) (expr) + +#elif RBIMPL_COMPILER_SINCE(GCC, 4, 6, 0) +# /* g++ has -Wold-style-cast since 1997 or so, but its _Pragma is broken. */ +# /* See https://gcc.godbolt.org/z/XWhU6J */ +# define RBIMPL_CAST(expr) (expr) +# pragma GCC diagnostic ignored "-Wold-style-cast" + +#elif RBIMPL_HAS_WARNING("-Wold-style-cast") +# define RBIMPL_CAST(expr) \ + RBIMPL_WARNING_PUSH() \ + RBIMPL_WARNING_IGNORED(-Wold-style-cast) \ + (expr) \ + RBIMPL_WARNING_POP() + +#else +# define RBIMPL_CAST(expr) (expr) +#endif + +#endif /* RBIMPL_CAST_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is.h new file mode 100644 index 0000000..7070b03 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is.h @@ -0,0 +1,45 @@ +#ifndef RBIMPL_COMPILER_IS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_COMPILER_IS_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_COMPILER_IS. + */ + +/** + * @brief Checks if the compiler is of given brand. + * @param cc Compiler brand, like `MSVC`. + * @retval true It is. + * @retval false It isn't. + */ +#define RBIMPL_COMPILER_IS(cc) RBIMPL_COMPILER_IS_ ## cc + +#include "ruby/internal/compiler_is/apple.h" +#include "ruby/internal/compiler_is/clang.h" +#include "ruby/internal/compiler_is/gcc.h" +#include "ruby/internal/compiler_is/intel.h" +#include "ruby/internal/compiler_is/msvc.h" +#include "ruby/internal/compiler_is/sunpro.h" +/* :TODO: Other possible compilers to support: + * + * - IBM XL: recent XL are clang-backended so some tweaks like we do for + * Apple's might be needed. + * + * - ARM's armclang: ditto, it can be clang-backended. */ + +#endif /* RBIMPL_COMPILER_IS_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/apple.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/apple.h new file mode 100644 index 0000000..a81f1f2 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/apple.h @@ -0,0 +1,40 @@ +#ifndef RBIMPL_COMPILER_IS_APPLE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_COMPILER_IS_APPLE_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines RBIMPL_COMPILER_IS_Apple. + * + * Apple ships clang. Problem is, its `__clang_major__` etc. are not the + * upstream LLVM version, but XCode's. We have to think Apple's is distinct + * from LLVM's, when it comes to compiler detection business in this header + * file. + */ +#if ! defined(__clang__) +# define RBIMPL_COMPILER_IS_Apple 0 + +#elif ! defined(__apple_build_version__) +# define RBIMPL_COMPILER_IS_Apple 0 + +#else +# define RBIMPL_COMPILER_IS_Apple 1 +# define RBIMPL_COMPILER_VERSION_MAJOR __clang_major__ +# define RBIMPL_COMPILER_VERSION_MINOR __clang_minor__ +# define RBIMPL_COMPILER_VERSION_PATCH __clang_patchlevel__ +#endif + +#endif /* RBIMPL_COMPILER_IS_APPLE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/clang.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/clang.h new file mode 100644 index 0000000..169ff78 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/clang.h @@ -0,0 +1,37 @@ +#ifndef RBIMPL_COMPILER_IS_CLANG_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_COMPILER_IS_CLANG_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines RBIMPL_COMPILER_IS_Clang. + */ +#include "ruby/internal/compiler_is/apple.h" + +#if ! defined(__clang__) +# define RBIMPL_COMPILER_IS_Clang 0 + +#elif RBIMPL_COMPILER_IS(Apple) +# define RBIMPL_COMPILER_IS_Clang 0 + +#else +# define RBIMPL_COMPILER_IS_Clang 1 +# define RBIMPL_COMPILER_VERSION_MAJOR __clang_major__ +# define RBIMPL_COMPILER_VERSION_MINOR __clang_minor__ +# define RBIMPL_COMPILER_VERSION_PATCH __clang_patchlevel__ +#endif + +#endif /* RBIMPL_COMPILER_IS_CLANG_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/gcc.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/gcc.h new file mode 100644 index 0000000..accc80e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/gcc.h @@ -0,0 +1,45 @@ +#ifndef RBIMPL_COMPILER_IS_GCC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_COMPILER_IS_GCC_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines RBIMPL_COMPILER_IS_GCC. + */ +#include "ruby/internal/compiler_is/apple.h" +#include "ruby/internal/compiler_is/clang.h" +#include "ruby/internal/compiler_is/intel.h" + +#if ! defined(__GNUC__) +# define RBIMPL_COMPILER_IS_GCC 0 + +#elif RBIMPL_COMPILER_IS(Apple) +# define RBIMPL_COMPILER_IS_GCC 0 + +#elif RBIMPL_COMPILER_IS(Clang) +# define RBIMPL_COMPILER_IS_GCC 0 + +#elif RBIMPL_COMPILER_IS(Intel) +# define RBIMPL_COMPILER_IS_GCC 0 + +#else +# define RBIMPL_COMPILER_IS_GCC 1 +# define RBIMPL_COMPILER_VERSION_MAJOR __GNUC__ +# define RBIMPL_COMPILER_VERSION_MINOR __GNUC_MINOR__ +# define RBIMPL_COMPILER_VERSION_PATCH __GNUC_PATCHLEVEL__ +#endif + +#endif /* RBIMPL_COMPILER_IS_GCC_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/intel.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/intel.h new file mode 100644 index 0000000..377946a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/intel.h @@ -0,0 +1,40 @@ +#ifndef RBIMPL_COMPILER_IS_INTEL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_COMPILER_IS_INTEL_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines RBIMPL_COMPILER_IS_Intel. + */ +#if ! defined(__INTEL_COMPILER) +# define RBIMPL_COMPILER_IS_Intel 0 + +#elif ! defined(__INTEL_COMPILER_UPDATE) +# define RBIMPL_COMPILER_IS_Intel 1 +# /* __INTEL_COMPILER = XXYZ */ +# define RBIMPL_COMPILER_VERSION_MAJOR (__INTEL_COMPILER / 100) +# define RBIMPL_COMPILER_VERSION_MINOR (__INTEL_COMPILER % 100 / 10) +# define RBIMPL_COMPILER_VERSION_PATCH (__INTEL_COMPILER % 10) + +#else +# define RBIMPL_COMPILER_IS_Intel 1 +# /* __INTEL_COMPILER = XXYZ */ +# define RBIMPL_COMPILER_VERSION_MAJOR (__INTEL_COMPILER / 100) +# define RBIMPL_COMPILER_VERSION_MINOR (__INTEL_COMPILER % 100 / 10) +# define RBIMPL_COMPILER_VERSION_PATCH __INTEL_COMPILER_UPDATE +#endif + +#endif /* RBIMPL_COMPILER_IS_INTEL_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/msvc.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/msvc.h new file mode 100644 index 0000000..8a864ea --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/msvc.h @@ -0,0 +1,56 @@ +#ifndef RBIMPL_COMPILER_IS_MSVC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_COMPILER_IS_MSVC_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines RBIMPL_COMPILER_IS_MSVC. + */ +#include "ruby/internal/compiler_is/clang.h" +#include "ruby/internal/compiler_is/intel.h" + +#if ! defined(_MSC_VER) +# define RBIMPL_COMPILER_IS_MSVC 0 + +#elif RBIMPL_COMPILER_IS(Clang) +# define RBIMPL_COMPILER_IS_MSVC 0 + +#elif RBIMPL_COMPILER_IS(Intel) +# define RBIMPL_COMPILER_IS_MSVC 0 + +#elif _MSC_VER >= 1400 +# define RBIMPL_COMPILER_IS_MSVC 1 +# /* _MSC_FULL_VER = XXYYZZZZZ */ +# define RBIMPL_COMPILER_VERSION_MAJOR (_MSC_FULL_VER / 10000000) +# define RBIMPL_COMPILER_VERSION_MINOR (_MSC_FULL_VER % 10000000 / 100000) +# define RBIMPL_COMPILER_VERSION_PATCH (_MSC_FULL_VER % 100000) + +#elif defined(_MSC_FULL_VER) +# define RBIMPL_COMPILER_IS_MSVC 1 +# /* _MSC_FULL_VER = XXYYZZZZ */ +# define RBIMPL_COMPILER_VERSION_MAJOR (_MSC_FULL_VER / 1000000) +# define RBIMPL_COMPILER_VERSION_MINOR (_MSC_FULL_VER % 1000000 / 10000) +# define RBIMPL_COMPILER_VERSION_PATCH (_MSC_FULL_VER % 10000) + +#else +# define RBIMPL_COMPILER_IS_MSVC 1 +# /* _MSC_VER = XXYY */ +# define RBIMPL_COMPILER_VERSION_MAJOR (_MSC_VER / 100) +# define RBIMPL_COMPILER_VERSION_MINOR (_MSC_VER % 100) +# define RBIMPL_COMPILER_VERSION_PATCH 0 +#endif + +#endif /* RBIMPL_COMPILER_IS_MSVC_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/sunpro.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/sunpro.h new file mode 100644 index 0000000..c11c845 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_is/sunpro.h @@ -0,0 +1,54 @@ +#ifndef RBIMPL_COMPILER_IS_SUNPRO_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_COMPILER_IS_SUNPRO_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines RBIMPL_COMPILER_IS_SunPro. + */ +#if ! (defined(__SUNPRO_C) || defined(__SUNPRO_CC)) +# define RBIMPL_COMPILER_IS_SunPro 0 + +#elif defined(__SUNPRO_C) && __SUNPRO_C >= 0x5100 +# define RBIMPL_COMPILER_IS_SunPro 1 +# /* __SUNPRO_C = 0xXYYZ */ +# define RBIMPL_COMPILER_VERSION_MAJOR (__SUNPRO_C >> 12) +# define RBIMPL_COMPILER_VERSION_MINOR ((__SUNPRO_C >> 8 & 0xF) * 10 + (__SUNPRO_C >> 4 & 0xF)) +# define RBIMPL_COMPILER_VERSION_PATCH (__SUNPRO_C & 0xF) + +#elif defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x5100 +# define RBIMPL_COMPILER_IS_SunPro 1 +# /* __SUNPRO_CC = 0xXYYZ */ +# define RBIMPL_COMPILER_VERSION_MAJOR (__SUNPRO_CC >> 12) +# define RBIMPL_COMPILER_VERSION_MINOR ((__SUNPRO_CC >> 8 & 0xF) * 10 + (__SUNPRO_CC >> 4 & 0xF)) +# define RBIMPL_COMPILER_VERSION_PATCH (__SUNPRO_CC & 0xF) + +#elif defined(__SUNPRO_C) +# define RBIMPL_COMPILER_IS_SunPro 1 +# /* __SUNPRO_C = 0xXYZ */ +# define RBIMPL_COMPILER_VERSION_MAJOR (__SUNPRO_C >> 8) +# define RBIMPL_COMPILER_VERSION_MINOR (__SUNPRO_C >> 4 & 0xF) +# define RBIMPL_COMPILER_VERSION_PATCH (__SUNPRO_C & 0xF) + +#else +# define RBIMPL_COMPILER_IS_SunPro 1 +# /* __SUNPRO_CC = 0xXYZ */ +# define RBIMPL_COMPILER_VERSION_MAJOR (__SUNPRO_CC >> 8) +# define RBIMPL_COMPILER_VERSION_MINOR (__SUNPRO_CC >> 4 & 0xF) +# define RBIMPL_COMPILER_VERSION_PATCH (__SUNPRO_CC & 0xF) +#endif + +#endif /* RBIMPL_COMPILER_IS_SUNPRO_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_since.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_since.h new file mode 100644 index 0000000..1929032 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/compiler_since.h @@ -0,0 +1,61 @@ +#ifndef RBIMPL_COMPILER_SINCE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_COMPILER_SINCE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_COMPILER_SINCE. + */ +#include "ruby/internal/compiler_is.h" + +/** + * @brief Checks if the compiler is of given brand and is newer than or equal + * to the passed version. + * @param cc Compiler brand, like `MSVC`. + * @param x Major version. + * @param y Minor version. + * @param z Patchlevel. + * @retval true cc >= x.y.z. + * @retval false otherwise. + */ +#define RBIMPL_COMPILER_SINCE(cc, x, y, z) \ + (RBIMPL_COMPILER_IS(cc) && \ + ((RBIMPL_COMPILER_VERSION_MAJOR > (x)) || \ + ((RBIMPL_COMPILER_VERSION_MAJOR == (x)) && \ + ((RBIMPL_COMPILER_VERSION_MINOR > (y)) || \ + ((RBIMPL_COMPILER_VERSION_MINOR == (y)) && \ + (RBIMPL_COMPILER_VERSION_PATCH >= (z))))))) + +/** + * @brief Checks if the compiler is of given brand and is older than the + * passed version. + * @param cc Compiler brand, like `MSVC`. + * @param x Major version. + * @param y Minor version. + * @param z Patchlevel. + * @retval true cc < x.y.z. + * @retval false otherwise. + */ +#define RBIMPL_COMPILER_BEFORE(cc, x, y, z) \ + (RBIMPL_COMPILER_IS(cc) && \ + ((RBIMPL_COMPILER_VERSION_MAJOR < (x)) || \ + ((RBIMPL_COMPILER_VERSION_MAJOR == (x)) && \ + ((RBIMPL_COMPILER_VERSION_MINOR < (y)) || \ + ((RBIMPL_COMPILER_VERSION_MINOR == (y)) && \ + (RBIMPL_COMPILER_VERSION_PATCH < (z))))))) + +#endif /* RBIMPL_COMPILER_SINCE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/config.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/config.h new file mode 100644 index 0000000..aa63376 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/config.h @@ -0,0 +1,155 @@ +#ifndef RBIMPL_CONFIG_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_CONFIG_H +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Thin wrapper to ruby/config.h + */ +#include "ruby/config.h" + +#ifdef RUBY_EXTCONF_H +# include RUBY_EXTCONF_H +#endif + +#include "ruby/internal/compiler_since.h" + +#undef HAVE_PROTOTYPES +#define HAVE_PROTOTYPES 1 + +#undef HAVE_STDARG_PROTOTYPES +#define HAVE_STDARG_PROTOTYPES 1 + +#undef TOKEN_PASTE +#define TOKEN_PASTE(x,y) x##y + +#if defined(__cplusplus) +#/* __builtin_choose_expr and __builtin_types_compatible aren't available +# * on C++. See https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html */ +# undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P +# undef HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P + +/* HAVE_VA_ARGS_MACRO is for C. C++ situations might be different. */ +# undef HAVE_VA_ARGS_MACRO +# if __cplusplus >= 201103L +# define HAVE_VA_ARGS_MACRO +# elif defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__ +# define HAVE_VA_ARGS_MACRO +# elif defined(__INTEL_CXX11_MODE__) +# define HAVE_VA_ARGS_MACRO +# elif RBIMPL_COMPILER_SINCE(MSVC, 16, 0, 0) +# define HAVE_VA_ARGS_MACRO +# else +# /* NG, not known. */ +# endif +#endif + +#if RBIMPL_COMPILER_BEFORE(GCC, 4, 9, 0) +# /* See https://bugs.ruby-lang.org/issues/14221 */ +# undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P +#endif + +#if RBIMPL_COMPILER_BEFORE(GCC, 5, 0, 0) +# /* GCC 4.9.2 reportedly has this feature and is broken. The function is not +# * officially documented below. Seems we should not use it. +# * https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/Other-Builtins.html */ +# undef HAVE_BUILTIN___BUILTIN_ALLOCA_WITH_ALIGN +#endif + +#if defined(__SUNPRO_CC) +# /* Oracle Developer Studio 12.5: GCC compatibility guide says it supports +# * statement expressions. But to our knowledge they support the extension +# * only for C and not for C++. Prove me wrong. Am happy to support them if +# * there is a way. */ +# undef HAVE_STMT_AND_DECL_IN_EXPR +#endif + +#ifndef STRINGIZE0 +# define STRINGIZE(expr) STRINGIZE0(expr) +# define STRINGIZE0(expr) #expr +#endif + +#ifdef AC_APPLE_UNIVERSAL_BUILD +# undef WORDS_BIGENDIAN +# ifdef __BIG_ENDIAN__ +# define WORDS_BIGENDIAN +# endif +#endif + +#ifndef DLEXT_MAXLEN +# define DLEXT_MAXLEN 4 +#endif + +#ifndef RUBY_PLATFORM +# define RUBY_PLATFORM "unknown-unknown" +#endif + +#ifdef UNALIGNED_WORD_ACCESS +# /* Take that. */ +#elif defined(__i386) +# define UNALIGNED_WORD_ACCESS 1 +#elif defined(__i386__) +# define UNALIGNED_WORD_ACCESS 1 +#elif defined(_M_IX86) +# define UNALIGNED_WORD_ACCESS 1 +#elif defined(__x86_64) +# define UNALIGNED_WORD_ACCESS 1 +#elif defined(__x86_64__) +# define UNALIGNED_WORD_ACCESS 1 +#elif defined(_M_AMD64) +# define UNALIGNED_WORD_ACCESS 1 +#elif defined(__powerpc64__) +# define UNALIGNED_WORD_ACCESS 1 +#elif defined(__POWERPC__) // __POWERPC__ is defined for ppc and ppc64 on Darwin +# define UNALIGNED_WORD_ACCESS 1 +#elif defined(__aarch64__) +# define UNALIGNED_WORD_ACCESS 1 +#elif defined(__mc68020__) +# define UNALIGNED_WORD_ACCESS 1 +#else +# define UNALIGNED_WORD_ACCESS 0 +#endif + +/* Detection of __VA_OPT__ */ +#if ! defined(HAVE_VA_ARGS_MACRO) +# undef HAVE___VA_OPT__ + +#elif defined(__cplusplus) +# if __cplusplus > 201703L +# define HAVE___VA_OPT__ +# else +# undef HAVE___VA_OPT__ +# endif +#else +# /* Idea taken from: https://stackoverflow.com/a/48045656 */ +# define RBIMPL_TEST3(q, w, e, ...) e +# define RBIMPL_TEST2(...) RBIMPL_TEST3(__VA_OPT__(,),1,0,0) +# define RBIMPL_TEST1() RBIMPL_TEST2("ruby") +# if RBIMPL_TEST1() +# define HAVE___VA_OPT__ +# else +# undef HAVE___VA_OPT__ +# endif +# undef RBIMPL_TEST1 +# undef RBIMPL_TEST2 +# undef RBIMPL_TEST3 +#endif /* HAVE_VA_ARGS_MACRO */ + +#ifndef USE_RVARGC +# define USE_RVARGC 1 +#endif + +#endif /* RBIMPL_CONFIG_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/constant_p.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/constant_p.h new file mode 100644 index 0000000..92d69cb --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/constant_p.h @@ -0,0 +1,38 @@ +#ifndef RBIMPL_CONSTANT_P_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_CONSTANT_P_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_CONSTANT_P. + * + * Note that __builtin_constant_p can be applicable inside of inline functions, + * according to GCC manual. Clang lacks that feature, though. + * + * @see https://bugs.llvm.org/show_bug.cgi?id=4898 + * @see https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html + */ +#include "ruby/internal/has/builtin.h" + +/** Wraps (or simulates) `__builtin_constant_p` */ +#if RBIMPL_HAS_BUILTIN(__builtin_constant_p) +# define RBIMPL_CONSTANT_P(expr) __builtin_constant_p(expr) +#else +# define RBIMPL_CONSTANT_P(expr) 0 +#endif + +#endif /* RBIMPL_CONSTANT_P_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core.h new file mode 100644 index 0000000..3f4561c --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core.h @@ -0,0 +1,35 @@ +#ifndef RBIMPL_CORE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_CORE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Core data structures, definitions and manipulations. + */ +#include "ruby/internal/core/rarray.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/core/rbignum.h" +#include "ruby/internal/core/rclass.h" +#include "ruby/internal/core/rdata.h" +#include "ruby/internal/core/rfile.h" +#include "ruby/internal/core/rhash.h" +#include "ruby/internal/core/robject.h" +#include "ruby/internal/core/rregexp.h" +#include "ruby/internal/core/rstring.h" +#include "ruby/internal/core/rstruct.h" +#include "ruby/internal/core/rtypeddata.h" +#endif /* RBIMPL_CORE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rarray.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rarray.h new file mode 100644 index 0000000..c3bb40b --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rarray.h @@ -0,0 +1,585 @@ +#ifndef RBIMPL_RARRAY_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RARRAY_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines struct ::RArray. + */ +#include "ruby/internal/arithmetic/long.h" +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/constexpr.h" +#include "ruby/internal/attr/maybe_unused.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/fl_type.h" +#include "ruby/internal/rgengc.h" +#include "ruby/internal/stdbool.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" +#include "ruby/assert.h" + +/** + * @private + * @warning Do not touch this macro. + * @warning It is an implementation detail. + * @warning The value of this macro must match for ruby itself and all + * extension libraries, otherwise serious memory corruption shall + * occur. + */ +#ifndef USE_TRANSIENT_HEAP +# define USE_TRANSIENT_HEAP 1 +#endif + +/** + * Convenient casting macro. + * + * @param obj An object, which is in fact an ::RArray. + * @return The passed object casted to ::RArray. + */ +#define RARRAY(obj) RBIMPL_CAST((struct RArray *)(obj)) +/** @cond INTERNAL_MACRO */ +#define RARRAY_EMBED_FLAG RARRAY_EMBED_FLAG +#define RARRAY_EMBED_LEN_MASK RARRAY_EMBED_LEN_MASK +#define RARRAY_EMBED_LEN_MAX RARRAY_EMBED_LEN_MAX +#define RARRAY_EMBED_LEN_SHIFT RARRAY_EMBED_LEN_SHIFT +#if USE_TRANSIENT_HEAP +# define RARRAY_TRANSIENT_FLAG RARRAY_TRANSIENT_FLAG +#else +# define RARRAY_TRANSIENT_FLAG 0 +#endif +/** @endcond */ +#define RARRAY_LEN rb_array_len /**< @alias{rb_array_len} */ +#define RARRAY_CONST_PTR rb_array_const_ptr /**< @alias{rb_array_const_ptr} */ +#define RARRAY_CONST_PTR_TRANSIENT rb_array_const_ptr_transient /**< @alias{rb_array_const_ptr_transient} */ + +/** @cond INTERNAL_MACRO */ +#if defined(__fcc__) || defined(__fcc_version) || \ + defined(__FCC__) || defined(__FCC_VERSION) +/* workaround for old version of Fujitsu C Compiler (fcc) */ +# define FIX_CONST_VALUE_PTR(x) ((const VALUE *)(x)) +#else +# define FIX_CONST_VALUE_PTR(x) (x) +#endif + +#define RARRAY_EMBED_LEN RARRAY_EMBED_LEN +#define RARRAY_LENINT RARRAY_LENINT +#define RARRAY_TRANSIENT_P RARRAY_TRANSIENT_P +#define RARRAY_ASET RARRAY_ASET +#define RARRAY_PTR RARRAY_PTR +/** @endcond */ + +/** + * @private + * + * Bits that you can set to ::RBasic::flags. + * + * @warning These enums are not the only bits we use for arrays. + * + * @internal + * + * Unlike strings, flag usages for arrays are scattered across the entire + * source codes. @shyouhei doesn't know the complete list. But what is listed + * here is at least incomplete. + */ +enum ruby_rarray_flags { + /** + * This flag has something to do with memory footprint. If the array is + * "small" enough, ruby tries to be creative to abuse padding bits of + * struct ::RArray for storing its contents. This flag denotes that + * situation. + * + * @warning This bit has to be considered read-only. Setting/clearing + * this bit without corresponding fix up must cause immediate + * SEGV. Also, internal structures of an array change + * dynamically and transparently throughout of its lifetime. + * Don't assume it being persistent. + * + * @internal + * + * 3rd parties must not be aware that there even is more than one way to + * store array elements. It was a bad idea to expose this to them. + */ + RARRAY_EMBED_FLAG = RUBY_FL_USER1, + + /* RUBY_FL_USER2 is for ELTS_SHARED */ + + /** + * When an array employs embedded strategy (see ::RARRAY_EMBED_FLAG), these + * bits are used to store the number of elements actually filled into + * ::RArray::ary. + * + * @internal + * + * 3rd parties must not be aware that there even is more than one way to + * store array elements. It was a bad idea to expose this to them. + */ +#if USE_RVARGC + RARRAY_EMBED_LEN_MASK = RUBY_FL_USER9 | RUBY_FL_USER8 | RUBY_FL_USER7 | RUBY_FL_USER6 | + RUBY_FL_USER5 | RUBY_FL_USER4 | RUBY_FL_USER3 +#else + RARRAY_EMBED_LEN_MASK = RUBY_FL_USER4 | RUBY_FL_USER3 +#endif + +#if USE_TRANSIENT_HEAP + , + + /** + * This flag has something to do with an array's "transiency". A transient + * array is an array of young generation (of generational GC), who stores + * its elements inside of dedicated memory pages called a transient heap. + * Not every young generation share that storage scheme, but elder + * generations must no join. + * + * @internal + * + * 3rd parties must not be aware that there even is more than one way to + * store array elements. It was a bad idea to expose this to them. + */ + RARRAY_TRANSIENT_FLAG = RUBY_FL_USER13 +#endif +}; + +/** + * This is an enum because GDB wants it (rather than a macro). People need not + * bother. + */ +enum ruby_rarray_consts { + /** Where ::RARRAY_EMBED_LEN_MASK resides. */ + RARRAY_EMBED_LEN_SHIFT = RUBY_FL_USHIFT + 3 + +#if !USE_RVARGC + , + + /** Max possible number elements that can be embedded. */ + RARRAY_EMBED_LEN_MAX = RBIMPL_EMBED_LEN_MAX_OF(VALUE) +#endif +}; + +/** Ruby's array. */ +struct RArray { + + /** Basic part, including flags and class. */ + struct RBasic basic; + + /** Array's specific fields. */ + union { + + /** + * Arrays that use separated memory region for elements use this + * pattern. + */ + struct { + + /** Number of elements of the array. */ + long len; + + /** Auxiliary info. */ + union { + + /** + * Capacity of `*ptr`. A continuous memory region of at least + * `capa` elements is expected to exist at `*ptr`. This can be + * bigger than `len`. + */ + long capa; + + /** + * Parent of the array. Nowadays arrays can share their + * backend memory regions each other, constructing gigantic + * nest of objects. This situation is called "shared", and + * this is the field to control such properties. + */ +#if defined(__clang__) /* <- clang++ is sane */ || \ + !defined(__cplusplus) /* <- C99 is sane */ || \ + (__cplusplus > 199711L) /* <- C++11 is sane */ + const +#endif + VALUE shared_root; + } aux; + + /** + * Pointer to the C array that holds the elements of the array. In + * the old days each array had dedicated memory regions. That is + * no longer true today, but there still are arrays of such + * properties. This field could be used to point such things. + */ + const VALUE *ptr; + } heap; + + /** + * Embedded elements. When an array is short enough, it uses this area + * to store its elements. In this case the length is encoded into the + * flags. + */ +#if USE_RVARGC + /* This is a length 1 array because: + * 1. GCC has a bug that does not optimize C flexible array members + * (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102452) + * 2. Zero length arrays are not supported by all compilers + */ + const VALUE ary[1]; +#else + const VALUE ary[RARRAY_EMBED_LEN_MAX]; +#endif + } as; +}; + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * @private + * + * Declares a section of code where raw pointers are used. This is an + * implementation detail of #RARRAY_PTR_USE. People don't use it directly. + * + * @param[in] ary An object of ::RArray. + * @return `ary`'s backend C array. + */ +VALUE *rb_ary_ptr_use_start(VALUE ary); + +/** + * @private + * + * Declares an end of a section formerly started by rb_ary_ptr_use_start(). + * This is an implementation detail of #RARRAY_PTR_USE. People don't use it + * directly. + * + * @param[in] a An object of ::RArray. + */ +void rb_ary_ptr_use_end(VALUE a); + +#if USE_TRANSIENT_HEAP +/** + * Destructively converts an array of transient backend into ordinal one. + * + * @param[out] a An object of ::RArray. + * @pre `a` must be a transient array. + * @post `a` gets out of transient heap, destructively. + */ +void rb_ary_detransient(VALUE a); +#endif +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries the length of the array. + * + * @param[in] ary Array in question. + * @return Its number of elements. + * @pre `ary` must be an instance of ::RArray, and must has its + * ::RARRAY_EMBED_FLAG flag set. + * + * @internal + * + * This was a macro before. It was inevitable to be public, since macros are + * global constructs. But should it be forever? Now that it is a function, + * @shyouhei thinks it could just be eliminated, hidden into implementation + * details. + */ +static inline long +RARRAY_EMBED_LEN(VALUE ary) +{ + RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY); + RBIMPL_ASSERT_OR_ASSUME(RB_FL_ANY_RAW(ary, RARRAY_EMBED_FLAG)); + + VALUE f = RBASIC(ary)->flags; + f &= RARRAY_EMBED_LEN_MASK; + f >>= RARRAY_EMBED_LEN_SHIFT; + return RBIMPL_CAST((long)f); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +/** + * Queries the length of the array. + * + * @param[in] a Array in question. + * @return Its number of elements. + * @pre `a` must be an instance of ::RArray. + */ +static inline long +rb_array_len(VALUE a) +{ + RBIMPL_ASSERT_TYPE(a, RUBY_T_ARRAY); + + if (RB_FL_ANY_RAW(a, RARRAY_EMBED_FLAG)) { + return RARRAY_EMBED_LEN(a); + } + else { + return RARRAY(a)->as.heap.len; + } +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Identical to rb_array_len(), except it differs for the return type. + * + * @param[in] ary Array in question. + * @exception rb_eRangeError Too long. + * @return Its number of elements. + * @pre `ary` must be an instance of ::RArray. + * + * @internal + * + * This API seems redundant but has actual usages. + */ +static inline int +RARRAY_LENINT(VALUE ary) +{ + return rb_long2int(RARRAY_LEN(ary)); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries if the array is a transient array. + * + * @param[in] ary Array in question. + * @retval true Yes it is. + * @retval false No it isn't. + * @pre `ary` must be an instance of ::RArray. + * + * @internal + * + * @shyouhei doesn't understand the benefit of this function called from + * extension libraries. + */ +static inline bool +RARRAY_TRANSIENT_P(VALUE ary) +{ + RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY); + +#if USE_TRANSIENT_HEAP + return RB_FL_ANY_RAW(ary, RARRAY_TRANSIENT_FLAG); +#else + return false; +#endif +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +/** + * @private + * + * This is an implementation detail of RARRAY_PTR(). People do not use it + * directly. + * + * @param[in] a An object of ::RArray. + * @return Its backend storage. + */ +static inline const VALUE * +rb_array_const_ptr_transient(VALUE a) +{ + RBIMPL_ASSERT_TYPE(a, RUBY_T_ARRAY); + + if (RB_FL_ANY_RAW(a, RARRAY_EMBED_FLAG)) { + return FIX_CONST_VALUE_PTR(RARRAY(a)->as.ary); + } + else { + return FIX_CONST_VALUE_PTR(RARRAY(a)->as.heap.ptr); + } +} + +#if ! USE_TRANSIENT_HEAP +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +#endif +/** + * @private + * + * This is an implementation detail of RARRAY_PTR(). People do not use it + * directly. + * + * @param[in] a An object of ::RArray. + * @return Its backend storage. + * @post `a` is not a transient array. + */ +static inline const VALUE * +rb_array_const_ptr(VALUE a) +{ + RBIMPL_ASSERT_TYPE(a, RUBY_T_ARRAY); + +#if USE_TRANSIENT_HEAP + if (RARRAY_TRANSIENT_P(a)) { + rb_ary_detransient(a); + } +#endif + return rb_array_const_ptr_transient(a); +} + +/** + * @private + * + * This is an implementation detail of #RARRAY_PTR_USE. People do not use it + * directly. + * + * @param[in] a An object of ::RArray. + * @param[in] allow_transient Whether `a` can be transient or not. + * @return Its backend storage. + * @post `a` is not a transient array unless `allow_transient`. + */ +static inline VALUE * +rb_array_ptr_use_start(VALUE a, + RBIMPL_ATTR_MAYBE_UNUSED() + int allow_transient) +{ + RBIMPL_ASSERT_TYPE(a, RUBY_T_ARRAY); + +#if USE_TRANSIENT_HEAP + if (!allow_transient) { + if (RARRAY_TRANSIENT_P(a)) { + rb_ary_detransient(a); + } + } +#endif + + return rb_ary_ptr_use_start(a); +} + +/** + * @private + * + * This is an implementation detail of #RARRAY_PTR_USE. People do not use it + * directly. + * + * @param[in] a An object of ::RArray. + * @param[in] allow_transient Whether `a` can be transient or not. + */ +static inline void +rb_array_ptr_use_end(VALUE a, + RBIMPL_ATTR_MAYBE_UNUSED() + int allow_transient) +{ + RBIMPL_ASSERT_TYPE(a, RUBY_T_ARRAY); + rb_ary_ptr_use_end(a); +} + +/** + * @private + * + * This is an implementation detail of #RARRAY_PTR_USE. People do not use it + * directly. + */ +#define RBIMPL_RARRAY_STMT(flag, ary, var, expr) do { \ + RBIMPL_ASSERT_TYPE((ary), RUBY_T_ARRAY); \ + const VALUE rbimpl_ary = (ary); \ + VALUE *var = rb_array_ptr_use_start(rbimpl_ary, (flag)); \ + expr; \ + rb_array_ptr_use_end(rbimpl_ary, (flag)); \ +} while (0) + +/** + * @private + * + * This is an implementation detail of #RARRAY_PTR_USE. People do not use it + * directly. + */ +#define RARRAY_PTR_USE_END(a) rb_array_ptr_use_end(a, 0) + +/** + * Declares a section of code where raw pointers are used. In case you need to + * touch the raw C array instead of polite CAPIs, then that operation shall be + * wrapped using this macro. + * + * ```CXX + * const auto ary = rb_eval_string("[...]"); + * const auto len = RARRAY_LENINT(ary); + * const auto symwrite = rb_intern("write"); + * + * RARRAY_PTR_USE(ary, ptr, { + * rb_funcallv(rb_stdout, symwrite, len, ptr); + * }); + * ``` + * + * @param ary An object of ::RArray. + * @param ptr_name A variable name which points the C array in `expr`. + * @param expr The expression that touches `ptr_name`. + * + * @internal + * + * For historical reasons use of this macro is not enforced. There are + * extension libraries in the wild which call RARRAY_PTR() without it. We want + * them use it... Maybe some transition path can be implemented later. + */ +#define RARRAY_PTR_USE(ary, ptr_name, expr) \ + RBIMPL_RARRAY_STMT(0, ary, ptr_name, expr) + +/** + * Identical to #RARRAY_PTR_USE, except the pointer can be a transient one. + * + * @param ary An object of ::RArray. + * @param ptr_name A variable name which points the C array in `expr`. + * @param expr The expression that touches `ptr_name`. + */ +#define RARRAY_PTR_USE_TRANSIENT(ary, ptr_name, expr) \ + RBIMPL_RARRAY_STMT(1, ary, ptr_name, expr) + +/** + * Wild use of a C pointer. This function accesses the backend storage + * directly. This is slower than #RARRAY_PTR_USE_TRANSIENT. It exercises + * extra manoeuvres to protect our generational GC. Use of this function is + * considered archaic. Use a modern way instead. + * + * @param[in] ary An object of ::RArray. + * @return The backend C array. + * + * @internal + * + * That said... there are extension libraries in the wild who uses it. We + * cannot but continue supporting. + */ +static inline VALUE * +RARRAY_PTR(VALUE ary) +{ + RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY); + + VALUE tmp = RB_OBJ_WB_UNPROTECT_FOR(ARRAY, ary); + return RBIMPL_CAST((VALUE *)RARRAY_CONST_PTR(tmp)); +} + +/** + * Assigns an object in an array. + * + * @param[out] ary Destination array object. + * @param[in] i Index of `ary`. + * @param[in] v Arbitrary ruby object. + * @pre `ary` must be an instance of ::RArray. + * @pre `ary`'s length must be longer than or equal to `i`. + * @pre `i` must be greater than or equal to zero. + * @post `ary`'s `i`th element is set to `v`. + */ +static inline void +RARRAY_ASET(VALUE ary, long i, VALUE v) +{ + RARRAY_PTR_USE_TRANSIENT(ary, ptr, + RB_OBJ_WRITE(ary, &ptr[i], v)); +} + +/** + * @deprecated + * + * :FIXME: we want to convert RARRAY_AREF into an inline function (to add rooms + * for more sanity checks). However there were situations where the address of + * this macro is taken i.e. &RARRAY_AREF(...). They cannot be possible if this + * is not a macro. Such usages are abuse, and we eliminated them internally. + * However we are afraid of similar things to remain in the wild. This macro + * remains as it is due to that. If we could warn such usages we can set a + * transition path, but currently no way is found to do so. + */ +#define RARRAY_AREF(a, i) RARRAY_CONST_PTR_TRANSIENT(a)[i] + +#endif /* RBIMPL_RARRAY_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rbasic.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rbasic.h new file mode 100644 index 0000000..4617f74 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rbasic.h @@ -0,0 +1,158 @@ +#ifndef RBIMPL_RBASIC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RBASIC_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines struct ::RBasic. + */ +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/constexpr.h" +#include "ruby/internal/attr/forceinline.h" +#include "ruby/internal/attr/noalias.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/special_consts.h" +#include "ruby/internal/value.h" +#include "ruby/assert.h" + +/** + * Convenient casting macro. + * + * @param obj Arbitrary Ruby object. + * @return The passed object casted to ::RBasic. + */ +#define RBASIC(obj) RBIMPL_CAST((struct RBasic *)(obj)) +/** @cond INTERNAL_MACRO */ +#define RBASIC_CLASS RBASIC_CLASS +#define RBIMPL_RVALUE_EMBED_LEN_MAX 3 +#define RVALUE_EMBED_LEN_MAX RVALUE_EMBED_LEN_MAX +#define RBIMPL_EMBED_LEN_MAX_OF(T) \ + RBIMPL_CAST((int)(sizeof(VALUE[RBIMPL_RVALUE_EMBED_LEN_MAX]) / (sizeof(T)))) +/** @endcond */ + +/** + * This is an enum because GDB wants it (rather than a macro). People need not + * bother. + */ +enum ruby_rvalue_flags { + /** Max possible number of objects that can be embedded. */ + RVALUE_EMBED_LEN_MAX = RBIMPL_RVALUE_EMBED_LEN_MAX +}; + +/** + * Ruby's object's, base components. Every single ruby objects have them in + * common. + */ +struct +RUBY_ALIGNAS(SIZEOF_VALUE) +RBasic { + + /** + * Per-object flags. Each ruby objects have their own characteristics + * apart from their classes. For instance whether an object is frozen or + * not is not controlled by its class. This is where such properties are + * stored. + * + * @see enum ::ruby_fl_type + * + * @note This is ::VALUE rather than an enum for alignment purpose. Back + * in the 1990s there were no such thing like `_Alignas` in C. + */ + VALUE flags; + + /** + * Class of an object. Every object has its class. Also, everything is an + * object in Ruby. This means classes are also objects. Classes have + * their own classes, classes of classes have their classes, too ... and + * it recursively continues forever. + * + * Also note the `const` qualifier. In ruby an object cannot "change" its + * class. + */ + const VALUE klass; + +#ifdef __cplusplus + public: + RBIMPL_ATTR_CONSTEXPR(CXX11) + RBIMPL_ATTR_ARTIFICIAL() + RBIMPL_ATTR_FORCEINLINE() + RBIMPL_ATTR_NOALIAS() + /** + * We need to define this explicit constructor because the field `klass` is + * const-qualified above, which effectively defines the implicit default + * constructor as "deleted" (as of C++11) -- No way but to define one by + * ourselves. + */ + RBasic() : + flags(RBIMPL_VALUE_NULL), + klass(RBIMPL_VALUE_NULL) + { + } +#endif +}; + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * Make the object invisible from Ruby code. + * + * It is useful to let Ruby's GC manage your internal data structure -- The + * object keeps being managed by GC, but `ObjectSpace.each_object` never yields + * the object. + * + * Note that the object also lose a way to call a method on it. + * + * @param[out] obj A Ruby object. + * @return The passed object. + * @post The object is destructively modified to be invisible. + * @see rb_obj_reveal + */ +VALUE rb_obj_hide(VALUE obj); + +/** + * Make a hidden object visible again. + * + * It is the caller's responsibility to pass the right `klass` which `obj` + * originally used to belong to. + * + * @param[out] obj A Ruby object. + * @param[in] klass Class of `obj`. + * @return Passed `obj`. + * @pre `obj` was previously hidden. + * @post `obj`'s class is `klass`. + * @see rb_obj_hide + */ +VALUE rb_obj_reveal(VALUE obj, VALUE klass); /* do not use this API to change klass information */ +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries the class of an object. + * + * @param[in] obj An object. + * @return Its class. + */ +static inline VALUE +RBASIC_CLASS(VALUE obj) +{ + RBIMPL_ASSERT_OR_ASSUME(! RB_SPECIAL_CONST_P(obj)); + return RBASIC(obj)->klass; +} + +#endif /* RBIMPL_RBASIC_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rbignum.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rbignum.h new file mode 100644 index 0000000..1d31743 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rbignum.h @@ -0,0 +1,80 @@ +#ifndef RBIMPL_RBIGNUM_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RBIGNUM_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to manipulate struct RBignum. + * @note The struct RBignum itself is opaque. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" +#include "ruby/internal/stdbool.h" + +#define RBIGNUM_SIGN rb_big_sign /**< @alias{rb_big_sign} */ + +/** @cond INTERNAL_MACRO */ +#define RBIGNUM_POSITIVE_P RBIGNUM_POSITIVE_P +#define RBIGNUM_NEGATIVE_P RBIGNUM_NEGATIVE_P +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * The "sign" of a bignum. + * + * @param[in] num An object of RBignum. + * @retval 1 It is greater than or equal to zero. + * @retval 0 It is less than zero. + * + * @internal + * + * Implementation wise, unlike fixnums (which are 2's complement), bignums are + * signed magnitude system. Theoretically it could be possible to have + * negative zero instances. But in reality there is no way to create such + * thing. Nobody ever needed that kind of insanity. + */ +int rb_big_sign(VALUE num); +RBIMPL_SYMBOL_EXPORT_END() + +/** + * Checks if the bignum is positive. + * @param[in] b An object of RBignum. + * @retval false `b` is less than zero. + * @retval true Otherwise. + */ +static inline bool +RBIGNUM_POSITIVE_P(VALUE b) +{ + RBIMPL_ASSERT_TYPE(b, RUBY_T_BIGNUM); + return RBIGNUM_SIGN(b); +} + +/** + * Checks if the bignum is negative. + * @param[in] b An object of RBignum. + * @retval true `b` is less than zero. + * @retval false Otherwise. + */ +static inline bool +RBIGNUM_NEGATIVE_P(VALUE b) +{ + RBIMPL_ASSERT_TYPE(b, RUBY_T_BIGNUM); + return ! RBIGNUM_POSITIVE_P(b); +} + +#endif /* RBIMPL_RBIGNUM_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rclass.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rclass.h new file mode 100644 index 0000000..b0b6bfc --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rclass.h @@ -0,0 +1,93 @@ +#ifndef RBIMPL_RCLASS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RCLASS_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to manipulate struct RClass. + * @note The struct RClass itself is opaque. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/cast.h" + +/** @cond INTERNAL_MACRO */ +#define RMODULE_IS_REFINEMENT RMODULE_IS_REFINEMENT +/** @endcond */ + +/** + * Convenient casting macro. + * + * @param obj An object, which is in fact an RClass. + * @return The passed object casted to RClass. + */ +#define RCLASS(obj) RBIMPL_CAST((struct RClass *)(obj)) + +/** @alias{RCLASS} */ +#define RMODULE RCLASS + +/** @alias{rb_class_get_superclass} */ +#define RCLASS_SUPER rb_class_get_superclass + +/** + * @private + * + * Bits that you can set to ::RBasic::flags. + * + * @internal + * + * Why is it here, given RClass itself is not? + */ +enum ruby_rmodule_flags { + /** + * This flag has something to do with refinements. A module created using + * rb_mod_refine() has this flag set. This is the bit which controls + * difference between normal inclusion versus refinements. + */ + RMODULE_IS_REFINEMENT = RUBY_FL_USER3 +}; + +struct RClass; /* Opaque, declared here for RCLASS() macro. */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * Returns the superclass of a class. + * @param[in] klass An object of RClass. + * @retval RUBY_Qfalse `klass` has no super class. + * @retval otherwise Raw superclass of `klass` + * @see rb_class_superclass + * + * ### Q&A ### + * + * - Q: How can a class have no super class? + * + * - A: `klass` could be a module. Or it could be ::rb_cBasicObject. + * + * - Q: What do you mean by "raw" superclass? + * + * - A: This is a really good question. The answer is that this function + * returns something different from what you would normally expect. On + * occasions ruby inserts hidden classes in a hierarchy of class + * inheritance behind-the-scene. Such classes are called "iclass"es and + * distinguished using ::RUBY_T_ICLASS in C level. They are truly + * transparent from Ruby level but can be accessed from C, by using this + * API. + */ +VALUE rb_class_get_superclass(VALUE klass); +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_RCLASS_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rdata.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rdata.h new file mode 100644 index 0000000..43ab3c0 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rdata.h @@ -0,0 +1,386 @@ +#ifndef RBIMPL_RDATA_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RDATA_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines struct ::RData. + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/attr/warning.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/fl_type.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" +#include "ruby/defines.h" + +/** @cond INTERNAL_MACRO */ +#ifdef RUBY_UNTYPED_DATA_WARNING +# /* Take that. */ +#elif defined(RUBY_EXPORT) +# define RUBY_UNTYPED_DATA_WARNING 1 +#else +# define RUBY_UNTYPED_DATA_WARNING 0 +#endif + +#define RBIMPL_DATA_FUNC(f) RBIMPL_CAST((void (*)(void *))(f)) +#define RBIMPL_ATTRSET_UNTYPED_DATA_FUNC() \ + RBIMPL_ATTR_WARNING(("untyped Data is unsafe; use TypedData instead")) \ + RBIMPL_ATTR_DEPRECATED(("by TypedData")) + +#define RBIMPL_MACRO_SELECT(x, y) x ## y +#define RUBY_MACRO_SELECT(x, y) RBIMPL_MACRO_SELECT(x, y) +/** @endcond */ + +/** + * Convenient casting macro. + * + * @param obj An object, which is in fact an ::RData. + * @return The passed object casted to ::RData. + */ +#define RDATA(obj) RBIMPL_CAST((struct RData *)(obj)) + +/** + * Convenient getter macro. + * + * @param obj An object, which is in fact an ::RData. + * @return The passed object's ::RData::data field. + */ +#define DATA_PTR(obj) RDATA(obj)->data + +/** + * This is a value you can set to ::RData::dfree. Setting this means the data + * was allocated using ::ruby_xmalloc() (or variants), and shall be freed using + * ::ruby_xfree(). + * + * @warning Do not use this if you want to use system malloc, because the + * system and Ruby might or might not share the same malloc + * implementation. + */ +#define RUBY_DEFAULT_FREE RBIMPL_DATA_FUNC(-1) + +/** + * This is a value you can set to ::RData::dfree. Setting this means the data + * is managed by someone else, like, statically allocated. Of course you are + * on your own then. + */ +#define RUBY_NEVER_FREE RBIMPL_DATA_FUNC(0) + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define RUBY_UNTYPED_DATA_FUNC(f) f RBIMPL_ATTRSET_UNTYPED_DATA_FUNC() + +/* +#define RUBY_DATA_FUNC(func) ((void (*)(void*))(func)) +*/ + +/** + * This is the type of callbacks registered to ::RData. The argument is the + * `data` field. + */ +typedef void (*RUBY_DATA_FUNC)(void*); + +/** + * @deprecated + * + * Old "untyped" user data. It has roughly the same usage as struct + * ::RTypedData, but lacked several features such as support for compaction GC. + * Use of this struct is not recommended any longer. If it is dead necessary, + * please inform the core devs about your usage. + * + * @internal + * + * @shyouhei tried to add RBIMPL_ATTR_DEPRECATED for this type but that yielded + * too many warnings in the core. Maybe we want to retry later... Just add + * deprecated document for now. + */ +struct RData { + + /** Basic part, including flags and class. */ + struct RBasic basic; + + /** + * This function is called when the object is experiencing GC marks. If it + * contains references to other Ruby objects, you need to mark them also. + * Otherwise GC will smash your data. + * + * @see rb_gc_mark() + * @warning This is called during GC runs. Object allocations are + * impossible at that moment (that is why GC runs). + */ + RUBY_DATA_FUNC dmark; + + /** + * This function is called when the object is no longer used. You need to + * do whatever necessary to avoid memory leaks. + * + * @warning This is called during GC runs. Object allocations are + * impossible at that moment (that is why GC runs). + */ + RUBY_DATA_FUNC dfree; + + /** Pointer to the actual C level struct that you want to wrap. */ + void *data; +}; + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * This is the primitive way to wrap an existing C struct into ::RData. + * + * @param[in] klass Ruby level class of the returning object. + * @param[in] datap Pointer to the target C struct. + * @param[in] dmark Mark function. + * @param[in] dfree Free function. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return An allocated object that wraps `datap`. + */ +VALUE rb_data_object_wrap(VALUE klass, void *datap, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree); + +/** + * Identical to rb_data_object_wrap(), except it allocates a new data region + * internally instead of taking an existing one. The allocation is done using + * ruby_calloc(). Hence it makes no sense to pass anything other than + * ::RUBY_DEFAULT_FREE to the last argument. + * + * @param[in] klass Ruby level class of the returning object. + * @param[in] size Requested size of memory to allocate. + * @param[in] dmark Mark function. + * @param[in] dfree Free function. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return An allocated object that wraps a new `size` byte region. + */ +VALUE rb_data_object_zalloc(VALUE klass, size_t size, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree); + +/** + * @private + * Documented in include/ruby/internal/globals.h + */ +RUBY_EXTERN VALUE rb_cObject; +RBIMPL_SYMBOL_EXPORT_END() + +/** + * Converts sval, a pointer to your struct, into a Ruby object. + * + * @param klass A ruby level class. + * @param mark Mark function. + * @param free Free function. + * @param sval A pointer to your struct. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return A created Ruby object. + */ +#define Data_Wrap_Struct(klass, mark, free, sval) \ + rb_data_object_wrap( \ + (klass), \ + (sval), \ + RBIMPL_DATA_FUNC(mark), \ + RBIMPL_DATA_FUNC(free)) + +/** + * @private + * + * This is an implementation detail of #Data_Make_Struct. People don't use it + * directly. + * + * @param result Variable name of created Ruby object. + * @param klass Ruby level class of the object. + * @param type Type name of the C struct. + * @param size Size of the C struct. + * @param mark Mark function. + * @param free Free function. + * @param sval Variable name of created C struct. + */ +#define Data_Make_Struct0(result, klass, type, size, mark, free, sval) \ + VALUE result = rb_data_object_zalloc( \ + (klass), \ + (size), \ + RBIMPL_DATA_FUNC(mark), \ + RBIMPL_DATA_FUNC(free)); \ + (sval) = RBIMPL_CAST((type *)DATA_PTR(result)); \ + RBIMPL_CAST(/*suppress unused variable warnings*/(void)(sval)) + +/** + * Identical to #Data_Wrap_Struct, except it allocates a new data region + * internally instead of taking an existing one. The allocation is done using + * ruby_calloc(). Hence it makes no sense to pass anything other than + * ::RUBY_DEFAULT_FREE to the `free` argument. + * + * @param klass Ruby level class of the returning object. + * @param type Type name of the C struct. + * @param mark Mark function. + * @param free Free function. + * @param sval Variable name of created C struct. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return A created Ruby object. + */ +#ifdef HAVE_STMT_AND_DECL_IN_EXPR +#define Data_Make_Struct(klass, type, mark, free, sval) \ + RB_GNUC_EXTENSION({ \ + Data_Make_Struct0( \ + data_struct_obj, \ + klass, \ + type, \ + sizeof(type), \ + mark, \ + free, \ + sval); \ + data_struct_obj; \ + }) +#else +#define Data_Make_Struct(klass, type, mark, free, sval) \ + rb_data_object_make( \ + (klass), \ + RBIMPL_DATA_FUNC(mark), \ + RBIMPL_DATA_FUNC(free), \ + RBIMPL_CAST((void **)&(sval)), \ + sizeof(type)) +#endif + +/** + * Obtains a C struct from inside of a wrapper Ruby object. + * + * @param obj An instance of ::RData. + * @param type Type name of the C struct. + * @param sval Variable name of obtained C struct. + * @return Unwrapped C struct that `obj` holds. + */ +#define Data_Get_Struct(obj, type, sval) \ + ((sval) = RBIMPL_CAST((type*)rb_data_object_get(obj))) + +RBIMPL_ATTRSET_UNTYPED_DATA_FUNC() +/** + * @private + * + * This is an implementation detail of rb_data_object_wrap(). People don't use + * it directly. + * + * @param[in] klass Ruby level class of the returning object. + * @param[in] ptr Pointer to the target C struct. + * @param[in] mark Mark function. + * @param[in] free Free function. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return An allocated object that wraps `datap`. + */ +static inline VALUE +rb_data_object_wrap_warning(VALUE klass, void *ptr, RUBY_DATA_FUNC mark, RUBY_DATA_FUNC free) +{ + return rb_data_object_wrap(klass, ptr, mark, free); +} + +/** + * @private + * + * This is an implementation detail of #Data_Get_Struct. People don't use it + * directly. + * + * @param[in] obj An instance of ::RData. + * @return Unwrapped C struct that `obj` holds. + */ +static inline void * +rb_data_object_get(VALUE obj) +{ + Check_Type(obj, RUBY_T_DATA); + return DATA_PTR(obj); +} + +RBIMPL_ATTRSET_UNTYPED_DATA_FUNC() +/** + * @private + * + * This is an implementation detail of #Data_Get_Struct. People don't use it + * directly. + * + * @param[in] obj An instance of ::RData. + * @return Unwrapped C struct that `obj` holds. + */ +static inline void * +rb_data_object_get_warning(VALUE obj) +{ + return rb_data_object_get(obj); +} + +#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P) +# define rb_data_object_wrap_warning(klass, ptr, mark, free) \ + RB_GNUC_EXTENSION( \ + __builtin_choose_expr( \ + __builtin_constant_p(klass) && !(klass), \ + rb_data_object_wrap(klass, ptr, mark, free), \ + (rb_data_object_wrap_warning)(klass, ptr, mark, free))) +#endif + +/** + * This is an implementation detail of #Data_Make_Struct. People don't use it + * directly. + * + * @param[in] klass Ruby level class of the returning object. + * @param[in] mark_func Mark function. + * @param[in] free_func Free function. + * @param[in] datap Variable of created C struct. + * @param[in] size Requested size of allocation. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return A created Ruby object. + * @post `*datap` holds the created C struct. + */ +static inline VALUE +rb_data_object_make(VALUE klass, RUBY_DATA_FUNC mark_func, RUBY_DATA_FUNC free_func, void **datap, size_t size) +{ + Data_Make_Struct0(result, klass, void, size, mark_func, free_func, *datap); + return result; +} + +RBIMPL_ATTR_DEPRECATED(("by: rb_data_object_wrap")) +/** @deprecated This function was renamed to rb_data_object_wrap(). */ +static inline VALUE +rb_data_object_alloc(VALUE klass, void *data, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree) +{ + return rb_data_object_wrap(klass, data, dmark, dfree); +} + +/** @cond INTERNAL_MACRO */ +#define rb_data_object_wrap_0 rb_data_object_wrap +#define rb_data_object_wrap_1 rb_data_object_wrap_warning +#define rb_data_object_wrap_2 rb_data_object_wrap_ /* Used here vvvv */ +#define rb_data_object_wrap RUBY_MACRO_SELECT(rb_data_object_wrap_2, RUBY_UNTYPED_DATA_WARNING) +#define rb_data_object_get_0 rb_data_object_get +#define rb_data_object_get_1 rb_data_object_get_warning +#define rb_data_object_get_2 rb_data_object_get_ /* Used here vvvv */ +#define rb_data_object_get RUBY_MACRO_SELECT(rb_data_object_get_2, RUBY_UNTYPED_DATA_WARNING) +#define rb_data_object_make_0 rb_data_object_make +#define rb_data_object_make_1 rb_data_object_make_warning +#define rb_data_object_make_2 rb_data_object_make_ /* Used here vvvv */ +#define rb_data_object_make RUBY_MACRO_SELECT(rb_data_object_make_2, RUBY_UNTYPED_DATA_WARNING) +/** @endcond */ +#endif /* RBIMPL_RDATA_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rfile.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rfile.h new file mode 100644 index 0000000..f8dddde --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rfile.h @@ -0,0 +1,51 @@ +#ifndef RBIMPL_RFILE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RFILE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines struct ::RFile. + */ +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/cast.h" + +/* rb_io_t is in ruby/io.h. The header file has historically not been included + * into ruby/ruby.h. We follow that tradition. */ +struct rb_io_t; + +/** + * Ruby's File and IO. Ruby's IO are not just file descriptors. They have + * buffers. They also have encodings. Various information are controlled + * using this struct. + */ +struct RFile { + + /** Basic part, including flags and class. */ + struct RBasic basic; + + /** IO's specific fields. */ + struct rb_io_t *fptr; +}; + +/** + * Convenient casting macro. + * + * @param obj An object, which is in fact an ::RFile. + * @return The passed object casted to ::RFile. + */ +#define RFILE(obj) RBIMPL_CAST((struct RFile *)(obj)) +#endif /* RBIMPL_RFILE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rhash.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rhash.h new file mode 100644 index 0000000..61d2c15 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rhash.h @@ -0,0 +1,144 @@ +#ifndef RBIMPL_RHASH_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RHASH_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to manipulate struct RHash. + * @note The struct RHash itself is opaque. + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#if !defined RUBY_EXPORT && !defined RUBY_NO_OLD_COMPATIBILITY +# include "ruby/backward.h" +#endif + +/** + * Retrieves the internal table. + * + * @param[in] h An instance of RHash. + * @pre `h` must be of ::RUBY_T_HASH. + * @return A struct st_table which has the contents of this hash. + * @note Nowadays as Ruby evolved over ages, RHash has multiple backend + * storage engines. `h`'s backend is not guaranteed to be a + * st_table. This function creates one when necessary. + */ +#define RHASH_TBL(h) rb_hash_tbl(h, __FILE__, __LINE__) + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + * + * @internal + * + * Declaration of rb_hash_iter_lev() is at include/ruby/backward.h. + */ +#define RHASH_ITER_LEV(h) rb_hash_iter_lev(h) + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + * + * @internal + * + * Declaration of rb_hash_ifnone() is at include/ruby/backward.h. + */ +#define RHASH_IFNONE(h) rb_hash_ifnone(h) + +/** + * Queries the size of the hash. Size here means the number of keys that the + * hash stores. + * + * @param[in] h An instance of RHash. + * @pre `h` must be of ::RUBY_T_HASH. + * @return The size of the hash. + */ +#define RHASH_SIZE(h) rb_hash_size_num(h) + +/** + * Checks if the hash is empty. + * + * @param[in] h An instance of RHash. + * @pre `h` must be of ::RUBY_T_HASH. + * @retval true It is. + * @retval false It isn't. + */ +#define RHASH_EMPTY_P(h) (RHASH_SIZE(h) == 0) + +/** + * Destructively updates the default value of the hash. + * + * @param[out] h An instance of RHash. + * @param[in] ifnone Arbitrary default value. + * @pre `h` must be of ::RUBY_T_HASH. + * + * @internal + * + * But why you can set this, given rb_hash_ifnone() doesn't exist? + */ +#define RHASH_SET_IFNONE(h, ifnone) rb_hash_set_ifnone((VALUE)h, ifnone) + +struct st_table; /* in ruby/st.h */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * This is the implementation detail of #RHASH_SIZE. People don't call this + * directly. + * + * @param[in] hash An instance of RHash. + * @pre `hash` must be of ::RUBY_T_HASH. + * @return The size of the hash. + */ +size_t rb_hash_size_num(VALUE hash); + +/** + * This is the implementation detail of #RHASH_TBL. People don't call this + * directly. + * + * @param[in] hash An instance of RHash. + * @param[in] file The `__FILE__`. + * @param[in] line The `__LINE__`. + * @pre `hash` must be of ::RUBY_T_HASH. + * @return Table that has the contents of the hash. + */ +struct st_table *rb_hash_tbl(VALUE hash, const char *file, int line); + +/** + * This is the implementation detail of #RHASH_SET_IFNONE. People don't call + * this directly. + * + * @param[out] hash An instance of RHash. + * @param[in] ifnone Arbitrary default value. + * @pre `hash` must be of ::RUBY_T_HASH. + */ +VALUE rb_hash_set_ifnone(VALUE hash, VALUE ifnone); +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_RHASH_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rmatch.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rmatch.h new file mode 100644 index 0000000..2d2fd89 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rmatch.h @@ -0,0 +1,146 @@ +#ifndef RBIMPL_RMATCH_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RMATCH_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines struct ::RMatch. + */ +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" +#include "ruby/assert.h" + +/** + * Convenient casting macro. + * + * @param obj An object, which is in fact an ::RMatch. + * @return The passed object casted to ::RMatch. + */ +#define RMATCH(obj) RBIMPL_CAST((struct RMatch *)(obj)) +/** @cond INTERNAL_MACRO */ +#define RMATCH_REGS RMATCH_REGS +/** @endcond */ + +struct re_patter_buffer; /* a.k.a. OnigRegexType, defined in onigmo.h */ +struct re_registers; /* Also in onigmo.h */ + +/** + * @old{re_pattern_buffer} + * + * @internal + * + * @shyouhei wonders: is anyone actively using this typedef ...? + */ +typedef struct re_pattern_buffer Regexp; + +/** + * Represents the region of a capture group. This is basically for caching + * purpose. re_registers have similar concepts (`beg` and `end`) but they are + * in `ptrdiff_t*`. In order for us to implement `MatchData#offset` that info + * has to be converted to offset integers. This is the struct to hold such + * things. + * + * @internal + * + * But why on earth it has to be visible from extension libraries? + */ +struct rmatch_offset { + long beg; /**< Beginning of a group. */ + long end; /**< End of a group. */ +}; + +/** Represents a match. */ +struct rmatch { + /** + * "Registers" of a match. This is a quasi-opaque struct that holds + * execution result of a match. Roughly resembles `&~`. + */ + struct re_registers regs; + + /** Capture group offsets, in C array. */ + struct rmatch_offset *char_offset; + + /** Number of ::rmatch_offset that ::rmatch::char_offset holds. */ + int char_offset_num_allocated; +}; + +/** + * Regular expression execution context. When a regular expression "matches" + * to a string, it generates capture groups etc. This struct holds that info. + * Visible from Ruby as an instance of `MatchData`. + * + * @note There is no way for extension libraries to manually generate this + * struct except by actually exercising the match operation of a regular + * expression. + */ +struct RMatch { + + /** Basic part, including flags and class. */ + struct RBasic basic; + + /** + * The target string that the match was made against. + */ + VALUE str; + + /** + * The result of this match. + */ + struct rmatch *rmatch; + + /** + * The expression of this match. + */ + VALUE regexp; /* RRegexp */ +}; + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries the raw ::re_registers. + * + * @param[in] match A match object + * @pre `match` must be of ::RMatch. + * @return Its execution result. + * @note Good. So you are aware of the fact that it could return NULL. + * Yes. It actually does. This is a really bizarre thing. The + * situation is about `String#gsub` and its family. They take + * strings as arguments, like `"foo".sub("bar", "baz")`. On such + * situations, in order to optimise memory allocations, these + * methods do not involve regular expressions at all. They just + * sequentially scan the receiver. Okay. The story begins here. + * Even when they do not kick our regexp engine, there must be + * backref objects e.g. `$&`. But how? You know what? Ruby fakes + * them. It allocates an empty ::RMatch and behaves as if there + * were execution contexts. In reality there weren't. No + * ::re_registers are allocated then. There is no way for this + * function but to return NULL for those fake ::RMatch. This is + * the reason for the nullability of this function. + */ +static inline struct re_registers * +RMATCH_REGS(VALUE match) +{ + RBIMPL_ASSERT_TYPE(match, RUBY_T_MATCH); + RBIMPL_ASSERT_OR_ASSUME(RMATCH(match)->rmatch != NULL); + return &RMATCH(match)->rmatch->regs; +} + +#endif /* RBIMPL_RMATCH_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/robject.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/robject.h new file mode 100644 index 0000000..b1c2e1b --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/robject.h @@ -0,0 +1,176 @@ +#ifndef RBIMPL_ROBJECT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ROBJECT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines struct ::RObject. + */ +#include "ruby/internal/config.h" + +#ifdef HAVE_STDINT_H +# include +#endif + +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/fl_type.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" + +/** + * Convenient casting macro. + * + * @param obj An object, which is in fact an ::RObject. + * @return The passed object casted to ::RObject. + */ +#define ROBJECT(obj) RBIMPL_CAST((struct RObject *)(obj)) +/** @cond INTERNAL_MACRO */ +#define ROBJECT_EMBED_LEN_MAX ROBJECT_EMBED_LEN_MAX +#define ROBJECT_EMBED ROBJECT_EMBED +#define ROBJECT_IV_CAPACITY ROBJECT_IV_CAPACITY +#define ROBJECT_IVPTR ROBJECT_IVPTR +/** @endcond */ + +/** + * @private + * + * Bits that you can set to ::RBasic::flags. + */ +enum ruby_robject_flags { + /** + * This flag has something to do with memory footprint. If the object is + * "small" enough, ruby tries to be creative to abuse padding bits of + * struct ::RObject for storing instance variables. This flag denotes that + * situation. + * + * @warning This bit has to be considered read-only. Setting/clearing + * this bit without corresponding fix up must cause immediate + * SEGV. Also, internal structures of an object change + * dynamically and transparently throughout of its lifetime. + * Don't assume it being persistent. + * + * @internal + * + * 3rd parties must not be aware that there even is more than one way to + * store instance variables. Might better be hidden. + */ + ROBJECT_EMBED = RUBY_FL_USER1 +}; + +#if !USE_RVARGC +/** + * This is an enum because GDB wants it (rather than a macro). People need not + * bother. + */ +enum ruby_robject_consts { + /** Max possible number of instance variables that can be embedded. */ + ROBJECT_EMBED_LEN_MAX = RBIMPL_EMBED_LEN_MAX_OF(VALUE) +}; +#endif + +struct st_table; + +/** + * Ruby's ordinal objects. Unless otherwise special cased, all predefined and + * user-defined classes share this struct to hold their instances. + */ +struct RObject { + + /** Basic part, including flags and class. */ + struct RBasic basic; + + /** Object's specific fields. */ + union { + + /** + * Object that use separated memory region for instance variables use + * this pattern. + */ + struct { + /** Pointer to a C array that holds instance variables. */ + VALUE *ivptr; + + /** + * This is a table that holds instance variable name to index + * mapping. Used when accessing instance variables using names. + * + * @internal + * + * This is a shortcut for `RCLASS_IV_INDEX_TBL(rb_obj_class(obj))`. + */ + struct rb_id_table *iv_index_tbl; + } heap; + +#if USE_RVARGC + /* Embedded instance variables. When an object is small enough, it + * uses this area to store the instance variables. + * + * This is a length 1 array because: + * 1. GCC has a bug that does not optimize C flexible array members + * (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102452) + * 2. Zero length arrays are not supported by all compilers + */ + VALUE ary[1]; +#else + /** + * Embedded instance variables. When an object is small enough, it + * uses this area to store the instance variables. + */ + VALUE ary[ROBJECT_EMBED_LEN_MAX]; +#endif + } as; +}; + +/* Offsets for YJIT */ +#ifndef __cplusplus +static const int32_t ROBJECT_OFFSET_AS_HEAP_IVPTR = offsetof(struct RObject, as.heap.ivptr); +static const int32_t ROBJECT_OFFSET_AS_HEAP_IV_INDEX_TBL = offsetof(struct RObject, as.heap.iv_index_tbl); +static const int32_t ROBJECT_OFFSET_AS_ARY = offsetof(struct RObject, as.ary); +#endif + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries the instance variables. + * + * @param[in] obj Object in question. + * @return Its instance variables, in C array. + * @pre `obj` must be an instance of ::RObject. + * + * @internal + * + * @shyouhei finds no reason for this to be visible from extension libraries. + */ +static inline VALUE * +ROBJECT_IVPTR(VALUE obj) +{ + RBIMPL_ASSERT_TYPE(obj, RUBY_T_OBJECT); + + struct RObject *const ptr = ROBJECT(obj); + + if (RB_FL_ANY_RAW(obj, ROBJECT_EMBED)) { + return ptr->as.ary; + } + else { + return ptr->as.heap.ivptr; + } +} + +#endif /* RBIMPL_ROBJECT_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rregexp.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rregexp.h new file mode 100644 index 0000000..cf54a39 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rregexp.h @@ -0,0 +1,168 @@ +#ifndef RBIMPL_RREGEXP_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RREGEXP_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines struct ::RRegexp. + */ +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/core/rstring.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" + +/** + * Convenient casting macro. + * + * @param obj An object, which is in fact an ::RRegexp. + * @return The passed object casted to ::RRegexp. + */ +#define RREGEXP(obj) RBIMPL_CAST((struct RRegexp *)(obj)) + +/** + * Convenient accessor macro. + * + * @param obj An object, which is in fact an ::RRegexp. + * @return The passed object's pattern buffer. + */ +#define RREGEXP_PTR(obj) (RREGEXP(obj)->ptr) +/** @cond INTERNAL_MACRO */ +#define RREGEXP_SRC RREGEXP_SRC +#define RREGEXP_SRC_PTR RREGEXP_SRC_PTR +#define RREGEXP_SRC_LEN RREGEXP_SRC_LEN +#define RREGEXP_SRC_END RREGEXP_SRC_END +/** @endcond */ + +struct re_patter_buffer; /* a.k.a. OnigRegexType, defined in onigmo.h */ + +/** + * Ruby's regular expression. A regexp is compiled into its own intermediate + * representation. This one holds that info. Regexp "match" operation then + * executes that IR. + */ +struct RRegexp { + + /** Basic part, including flags and class. */ + struct RBasic basic; + + /** + * The pattern buffer. This is a quasi-opaque struct that holds compiled + * intermediate representation of the regular expression. + * + * @note Compilation of a regexp could be delayed until actual match. + */ + struct re_pattern_buffer *ptr; + + /** Source code of this expression. */ + const VALUE src; + + /** + * Reference count. A regexp match can take extraordinarily long time to + * run. Ruby's regular expression is heavily extended and not a regular + * language any longer; runs in NP-time in practice. Now, Ruby also has + * threads and GVL. In order to prevent long GVL lockup, our regexp engine + * can release it on occasions. This means that multiple threads can touch + * a regular expressions at once. That itself is okay. But their cleanup + * phase shall wait for all the concurrent runs, to prevent use-after-free + * situation. This field is used to count such threads that are executing + * this particular pattern buffer. + * + * @warning Of course, touching this field from extension libraries causes + * catastrophic effects. Just leave it. + */ + unsigned long usecnt; +}; + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Convenient getter function. + * + * @param[in] rexp The regular expression in question. + * @return The source code of the regular expression. + * @pre `rexp` must be of ::RRegexp. + */ +static inline VALUE +RREGEXP_SRC(VALUE rexp) +{ + RBIMPL_ASSERT_TYPE(rexp, RUBY_T_REGEXP); + VALUE ret = RREGEXP(rexp)->src; + RBIMPL_ASSERT_TYPE(ret, RUBY_T_STRING); + return ret; +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Convenient getter function. + * + * @param[in] rexp The regular expression in question. + * @return The source code of the regular expression, in C's string. + * @pre `rexp` must be of ::RRegexp. + * + * @internal + * + * It seems nobody uses this function in the wild. Subject to hide? + */ +static inline char * +RREGEXP_SRC_PTR(VALUE rexp) +{ + return RSTRING_PTR(RREGEXP_SRC(rexp)); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Convenient getter function. + * + * @param[in] rexp The regular expression in question. + * @return The length of the source code of the regular expression. + * @pre `rexp` must be of ::RRegexp. + * + * @internal + * + * It seems nobody uses this function in the wild. Subject to hide? + */ +static inline long +RREGEXP_SRC_LEN(VALUE rexp) +{ + return RSTRING_LEN(RREGEXP_SRC(rexp)); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Convenient getter function. + * + * @param[in] rexp The regular expression in question. + * @return The end of the source code of the regular expression. + * @pre `rexp` must be of ::RRegexp. + * + * @internal + * + * It seems nobody uses this function in the wild. Subject to hide? + */ +static inline char * +RREGEXP_SRC_END(VALUE rexp) +{ + return RSTRING_END(RREGEXP_SRC(rexp)); +} + +#endif /* RBIMPL_RREGEXP_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rstring.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rstring.h new file mode 100644 index 0000000..e394ab7 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rstring.h @@ -0,0 +1,578 @@ +#ifndef RBIMPL_RSTRING_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RSTRING_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines struct ::RString. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/arithmetic/long.h" +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/fl_type.h" +#include "ruby/internal/value_type.h" +#include "ruby/internal/warning_push.h" +#include "ruby/assert.h" + +/** + * Convenient casting macro. + * + * @param obj An object, which is in fact an ::RString. + * @return The passed object casted to ::RString. + */ +#define RSTRING(obj) RBIMPL_CAST((struct RString *)(obj)) + +/** @cond INTERNAL_MACRO */ +#define RSTRING_NOEMBED RSTRING_NOEMBED +#if !USE_RVARGC +#define RSTRING_EMBED_LEN_MASK RSTRING_EMBED_LEN_MASK +#define RSTRING_EMBED_LEN_SHIFT RSTRING_EMBED_LEN_SHIFT +#define RSTRING_EMBED_LEN_MAX RSTRING_EMBED_LEN_MAX +#endif +#define RSTRING_FSTR RSTRING_FSTR +#define RSTRING_EMBED_LEN RSTRING_EMBED_LEN +#define RSTRING_LEN RSTRING_LEN +#define RSTRING_LENINT RSTRING_LENINT +#define RSTRING_PTR RSTRING_PTR +#define RSTRING_END RSTRING_END +/** @endcond */ + +/** + * @name Conversion of Ruby strings into C's + * + * @{ + */ + +/** + * Ensures that the parameter object is a String. This is done by calling its + * `to_str` method. + * + * @param[in,out] v Arbitrary Ruby object. + * @exception rb_eTypeError No implicit conversion defined. + * @post `v` is a String. + */ +#define StringValue(v) rb_string_value(&(v)) + +/** + * Identical to #StringValue, except it returns a `char*`. + * + * @param[in,out] v Arbitrary Ruby object. + * @exception rb_eTypeError No implicit conversion defined. + * @return Converted Ruby string's backend C string. + * @post `v` is a String. + */ +#define StringValuePtr(v) rb_string_value_ptr(&(v)) + +/** + * Identical to #StringValuePtr, except it additionally checks for the contents + * for viability as a C string. Ruby can accept wider range of contents as + * strings, compared to C. This function is to check that. + * + * @param[in,out] v Arbitrary Ruby object. + * @exception rb_eTypeError No implicit conversion defined. + * @exception rb_eArgError String is not C-compatible. + * @return Converted Ruby string's backend C string. + * @post `v` is a String. + */ +#define StringValueCStr(v) rb_string_value_cstr(&(v)) + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define SafeStringValue(v) StringValue(v) + +/** + * Identical to #StringValue, except it additionally converts the string's + * encoding to default external encoding. Ruby has a concept called encodings. + * A string can have different encoding than the environment expects. Someone + * has to make sure its contents be converted to something suitable. This is + * that routine. Call it when necessary. + * + * @param[in,out] v Arbitrary Ruby object. + * @exception rb_eTypeError No implicit conversion defined. + * @return Converted Ruby string's backend C string. + * @post `v` is a String. + * + * @internal + * + * Not sure but it seems this macro does not raise on encoding + * incompatibilities? Doesn't sound right to @shyouhei. + */ +#define ExportStringValue(v) do { \ + StringValue(v); \ + (v) = rb_str_export(v); \ +} while (0) + +/** @} */ + +/** + * @private + * + * Bits that you can set to ::RBasic::flags. + * + * @warning These enums are not the only bits we use for strings. + * + * @internal + * + * Actually all bits through FL_USER1 to FL_USER19 are used for strings. Why + * only this tiny part of them are made public here? @shyouhei can find no + * reason. + */ +enum ruby_rstring_flags { + + /** + * This flag has something to do with memory footprint. If the string is + * short enough, ruby tries to be creative to abuse padding bits of struct + * ::RString for storing contents. If this flag is set that string does + * _not_ do that, to resort to good old fashioned external allocation + * strategy instead. + * + * @warning This bit has to be considered read-only. Setting/clearing + * this bit without corresponding fix up must cause immediate + * SEGV. Also, internal structures of a string change + * dynamically and transparently throughout of its lifetime. + * Don't assume it being persistent. + * + * @internal + * + * 3rd parties must not be aware that there even is more than one way to + * store a string. Might better be hidden. + */ + RSTRING_NOEMBED = RUBY_FL_USER1, + +#if !USE_RVARGC + /** + * When a string employs embedded strategy (see ::RSTRING_NOEMBED), these + * bits are used to store the number of bytes actually filled into + * ::RString::ary. + * + * @internal + * + * 3rd parties must not be aware that there even is more than one way to + * store a string. Might better be hidden. + */ + RSTRING_EMBED_LEN_MASK = RUBY_FL_USER2 | RUBY_FL_USER3 | RUBY_FL_USER4 | + RUBY_FL_USER5 | RUBY_FL_USER6, +#endif + + /* Actually, string encodings are also encoded into the flags, using + * remaining bits.*/ + + /** + * This flag has something to do with infamous "f"string. What is a + * fstring? Well it is a special subkind of strings that is immutable, + * deduped globally, and managed by our GC. It is much like a Symbol (in + * fact Symbols are dynamic these days and are backended using fstrings). + * This concept has been silently introduced at some point in 2.x era. + * Since then it gained wider acceptance in the core. But extension + * libraries could not know that until very recently. Strings of this flag + * live in a special Limbo deep inside of the interpreter. Never try to + * manipulate it by hand. + * + * @internal + * + * Fstrings are not the only variant strings that we implement today. + * Other things are behind-the-scene. This is the only one that is visible + * from extension library. There is no clear reason why it has to be. + * Given there are more "polite" ways to create fstrings, it seems this bit + * need not be exposed to extension libraries. Might better be hidden. + */ + RSTRING_FSTR = RUBY_FL_USER17 +}; + +#if !USE_RVARGC +/** + * This is an enum because GDB wants it (rather than a macro). People need not + * bother. + */ +enum ruby_rstring_consts { + /** Where ::RSTRING_EMBED_LEN_MASK resides. */ + RSTRING_EMBED_LEN_SHIFT = RUBY_FL_USHIFT + 2, + + /** Max possible number of characters that can be embedded. */ + RSTRING_EMBED_LEN_MAX = RBIMPL_EMBED_LEN_MAX_OF(char) - 1 +}; +#endif + +/** + * Ruby's String. A string in ruby conceptually has these information: + * + * - Encoding of the string. + * - Length of the string. + * - Contents of the string. + * + * It is worth noting that a string is _not_ an array of characters in ruby. + * It has never been. In 1.x a string was an array of integers. Since 2.x a + * string is no longer an array of anything. A string is a string -- just like + * a Time is not an integer. + */ +struct RString { + + /** Basic part, including flags and class. */ + struct RBasic basic; + + /** String's specific fields. */ + union { + + /** + * Strings that use separated memory region for contents use this + * pattern. + */ + struct { + + /** + * Length of the string, not including terminating NUL character. + * + * @note This is in bytes. + */ + long len; + + /** + * Pointer to the contents of the string. In the old days each + * string had dedicated memory regions. That is no longer true + * today, but there still are strings of such properties. This + * field could be used to point such things. + */ + char *ptr; + + /** Auxiliary info. */ + union { + + /** + * Capacity of `*ptr`. A continuous memory region of at least + * `capa` bytes is expected to exist at `*ptr`. This can be + * bigger than `len`. + */ + long capa; + + /** + * Parent of the string. Nowadays strings can share their + * contents each other, constructing gigantic nest of objects. + * This situation is called "shared", and this is the field to + * control such properties. + */ + VALUE shared; + } aux; + } heap; + + /** Embedded contents. */ + struct { +#if USE_RVARGC + long len; + /* This is a length 1 array because: + * 1. GCC has a bug that does not optimize C flexible array members + * (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102452) + * 2. Zero length arrays are not supported by all compilers + */ + char ary[1]; +#else + /** + * When a string is short enough, it uses this area to store the + * contents themselves. This was impractical in the 20th century, + * but these days 64 bit machines can typically hold 24 bytes here. + * Could be sufficiently large. In this case the length is encoded + * into the flags. + */ + char ary[RSTRING_EMBED_LEN_MAX + 1]; +#endif + } embed; + } as; +}; + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * Identical to rb_check_string_type(), except it raises exceptions in case of + * conversion failures. + * + * @param[in] obj Target object. + * @exception rb_eTypeError No implicit conversion to String. + * @return Return value of `obj.to_str`. + * @see rb_io_get_io + * @see rb_ary_to_ary + */ +VALUE rb_str_to_str(VALUE obj); + +/** + * Identical to rb_str_to_str(), except it fills the passed pointer with the + * converted object. + * + * @param[in,out] ptr Pointer to a variable of target object. + * @exception rb_eTypeError No implicit conversion to String. + * @return Return value of `obj.to_str`. + * @post `*ptr` is the return value. + */ +VALUE rb_string_value(volatile VALUE *ptr); + +/** + * Identical to rb_str_to_str(), except it returns the converted string's + * backend memory region. + * + * @param[in,out] ptr Pointer to a variable of target object. + * @exception rb_eTypeError No implicit conversion to String. + * @post `*ptr` is the return value of `obj.to_str`. + * @return Pointer to the contents of the return value. + */ +char *rb_string_value_ptr(volatile VALUE *ptr); + +/** + * Identical to rb_string_value_ptr(), except it additionally checks for the + * contents for viability as a C string. Ruby can accept wider range of + * contents as strings, compared to C. This function is to check that. + * + * @param[in,out] ptr Pointer to a variable of target object. + * @exception rb_eTypeError No implicit conversion to String. + * @exception rb_eArgError String is not C-compatible. + * @post `*ptr` is the return value of `obj.to_str`. + * @return Pointer to the contents of the return value. + */ +char *rb_string_value_cstr(volatile VALUE *ptr); + +/** + * Identical to rb_str_to_str(), except it additionally converts the string + * into default external encoding. Ruby has a concept called encodings. A + * string can have different encoding than the environment expects. Someone + * has to make sure its contents be converted to something suitable. This is + * that routine. Call it when necessary. + * + * @param[in] obj Target object. + * @exception rb_eTypeError No implicit conversion to String. + * @return Converted ruby string of default external encoding. + */ +VALUE rb_str_export(VALUE obj); + +/** + * Identical to rb_str_export(), except it converts into the locale encoding + * instead. + * + * @param[in] obj Target object. + * @exception rb_eTypeError No implicit conversion to String. + * @return Converted ruby string of locale encoding. + */ +VALUE rb_str_export_locale(VALUE obj); + +RBIMPL_ATTR_ERROR(("rb_check_safe_str() and Check_SafeStr() are obsolete; use StringValue() instead")) +/** + * @private + * + * @deprecated This function once was a thing in the old days, but makes no + * sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + */ +void rb_check_safe_str(VALUE); + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define Check_SafeStr(v) rb_check_safe_str(RBIMPL_CAST((VALUE)(v))) + +/** + * @private + * + * Prints diagnostic message to stderr when RSTRING_PTR or RSTRING_END + * is NULL. + * + * @param[in] func The function name where encountered NULL pointer. + */ +void rb_debug_rstring_null_ptr(const char *func); +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries the length of the string. + * + * @param[in] str String in question. + * @return Its length, in bytes. + * @pre `str` must be an instance of ::RString, and must has its + * ::RSTRING_NOEMBED flag off. + * + * @internal + * + * This was a macro before. It was inevitable to be public, since macros are + * global constructs. But should it be forever? Now that it is a function, + * @shyouhei thinks it could just be eliminated, hidden into implementation + * details. + */ +static inline long +RSTRING_EMBED_LEN(VALUE str) +{ + RBIMPL_ASSERT_TYPE(str, RUBY_T_STRING); + RBIMPL_ASSERT_OR_ASSUME(! RB_FL_ANY_RAW(str, RSTRING_NOEMBED)); + +#if USE_RVARGC + long f = RSTRING(str)->as.embed.len; + return f; +#else + VALUE f = RBASIC(str)->flags; + f &= RSTRING_EMBED_LEN_MASK; + f >>= RSTRING_EMBED_LEN_SHIFT; + return RBIMPL_CAST((long)f); +#endif +} + +RBIMPL_WARNING_PUSH() +#if RBIMPL_COMPILER_IS(Intel) +RBIMPL_WARNING_IGNORED(413) +#endif + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * @private + * + * "Expands" an embedded string into an ordinal one. This is a function that + * returns aggregated type. The returned struct always has its `as.heap.len` + * an `as.heap.ptr` fields set appropriately. + * + * This is an implementation detail that 3rd parties should never bother. + */ +static inline struct RString +rbimpl_rstring_getmem(VALUE str) +{ + RBIMPL_ASSERT_TYPE(str, RUBY_T_STRING); + + if (RB_FL_ANY_RAW(str, RSTRING_NOEMBED)) { + return *RSTRING(str); + } + else { + /* Expecting compilers to optimize this on-stack struct away. */ + struct RString retval; + retval.as.heap.len = RSTRING_EMBED_LEN(str); + retval.as.heap.ptr = RSTRING(str)->as.embed.ary; + return retval; + } +} + +RBIMPL_WARNING_POP() + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries the length of the string. + * + * @param[in] str String in question. + * @return Its length, in bytes. + * @pre `str` must be an instance of ::RString. + */ +static inline long +RSTRING_LEN(VALUE str) +{ + return rbimpl_rstring_getmem(str).as.heap.len; +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries the contents pointer of the string. + * + * @param[in] str String in question. + * @return Pointer to its contents. + * @pre `str` must be an instance of ::RString. + */ +static inline char * +RSTRING_PTR(VALUE str) +{ + char *ptr = rbimpl_rstring_getmem(str).as.heap.ptr; + + if (RB_UNLIKELY(! ptr)) { + /* :BEWARE: @shyouhei thinks that currently, there are rooms for this + * function to return NULL. In the 20th century that was a pointless + * concern. However struct RString can hold fake strings nowadays. It + * seems no check against NULL are exercised around handling of them + * (one of such usages is located in marshal.c, which scares + * @shyouhei). Better check here for maximum safety. + * + * Also, this is not rb_warn() because RSTRING_PTR() can be called + * during GC (see what obj_info() does). rb_warn() needs to allocate + * Ruby objects. That is not possible at this moment. */ + rb_debug_rstring_null_ptr("RSTRING_PTR"); + } + + return ptr; +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries the end of the contents pointer of the string. + * + * @param[in] str String in question. + * @return Pointer to its end of contents. + * @pre `str` must be an instance of ::RString. + */ +static inline char * +RSTRING_END(VALUE str) +{ + struct RString buf = rbimpl_rstring_getmem(str); + + if (RB_UNLIKELY(! buf.as.heap.ptr)) { + /* Ditto. */ + rb_debug_rstring_null_ptr("RSTRING_END"); + } + + return &buf.as.heap.ptr[buf.as.heap.len]; +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Identical to RSTRING_LEN(), except it differs for the return type. + * + * @param[in] str String in question. + * @exception rb_eRangeError Too long. + * @return Its length, in bytes. + * @pre `str` must be an instance of ::RString. + * + * @internal + * + * This API seems redundant but has actual usages. + */ +static inline int +RSTRING_LENINT(VALUE str) +{ + return rb_long2int(RSTRING_LEN(str)); +} + +/** + * Convenient macro to obtain the contents and length at once. + * + * @param str String in question. + * @param ptrvar Variable where its contents is stored. + * @param lenvar Variable where its length is stored. + */ +#ifdef HAVE_STMT_AND_DECL_IN_EXPR +# define RSTRING_GETMEM(str, ptrvar, lenvar) \ + __extension__ ({ \ + struct RString rbimpl_str = rbimpl_rstring_getmem(str); \ + (ptrvar) = rbimpl_str.as.heap.ptr; \ + (lenvar) = rbimpl_str.as.heap.len; \ + }) +#else +# define RSTRING_GETMEM(str, ptrvar, lenvar) \ + ((ptrvar) = RSTRING_PTR(str), \ + (lenvar) = RSTRING_LEN(str)) +#endif /* HAVE_STMT_AND_DECL_IN_EXPR */ +#endif /* RBIMPL_RSTRING_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rstruct.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rstruct.h new file mode 100644 index 0000000..69be487 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rstruct.h @@ -0,0 +1,121 @@ +#ifndef RBIMPL_RSTRUCT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RSTRUCT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to manipulate struct RStruct. + * @note The struct RStruct itself is opaque. + */ +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" +#include "ruby/internal/arithmetic/long.h" +#include "ruby/internal/arithmetic/int.h" +#if !defined RUBY_EXPORT && !defined RUBY_NO_OLD_COMPATIBILITY +# include "ruby/backward.h" +#endif + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + * + * @internal + * + * Declaration of rb_struct_ptr() is at include/ruby/backward.h. + */ +#define RSTRUCT_PTR(st) rb_struct_ptr(st) +/** @cond INTERNAL_MACRO */ +#define RSTRUCT_LEN RSTRUCT_LEN +#define RSTRUCT_SET RSTRUCT_SET +#define RSTRUCT_GET RSTRUCT_GET +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * Returns the number of struct members. + * + * @param[in] st An instance of RStruct. + * @return The number of members of `st`. + * @pre `st` must be of ::RUBY_T_STRUCT. + */ +VALUE rb_struct_size(VALUE st); + +/** + * Resembles `Struct#[]`. + * + * @param[in] st An instance of RStruct. + * @param[in] k Index a.k.a. key of the struct. + * @exception rb_eTypeError `k` is neither Numeric, Symbol, nor String. + * @exception rb_eIndexError Numerical index out of range. + * @exception rb_eNameError No such key. + * @return The member stored at `k` in `st`. + * @pre `st` must be of ::RUBY_T_STRUCT. + */ +VALUE rb_struct_aref(VALUE st, VALUE k); + +/** + * Resembles `Struct#[]=`. + * + * @param[out] st An instance of RStruct. + * @param[in] k Index a.k.a. key of the struct. + * @param[in] v Value to store. + * @exception rb_eTypeError `k` is neither Numeric, Symbol, nor String. + * @exception rb_eIndexError Numerical index out of range. + * @exception rb_eNameError No such key. + * @return Passed `v`. + * @pre `st` must be of ::RUBY_T_STRUCT. + * @post `v` is stored at `k` in `st`. + */ +VALUE rb_struct_aset(VALUE st, VALUE k, VALUE v); +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_ARTIFICIAL() +/** @copydoc rb_struct_size() */ +static inline long +RSTRUCT_LEN(VALUE st) +{ + RBIMPL_ASSERT_TYPE(st, RUBY_T_STRUCT); + + return RB_NUM2LONG(rb_struct_size(st)); +} + +RBIMPL_ATTR_ARTIFICIAL() +/** @copydoc rb_struct_aset() */ +static inline VALUE +RSTRUCT_SET(VALUE st, int k, VALUE v) +{ + RBIMPL_ASSERT_TYPE(st, RUBY_T_STRUCT); + + return rb_struct_aset(st, INT2NUM(k), (v)); +} + +RBIMPL_ATTR_ARTIFICIAL() +/** @copydoc rb_struct_aref() */ +static inline VALUE +RSTRUCT_GET(VALUE st, int k) +{ + RBIMPL_ASSERT_TYPE(st, RUBY_T_STRUCT); + + return rb_struct_aref(st, INT2NUM(k)); +} + +#endif /* RBIMPL_RSTRUCT_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rtypeddata.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rtypeddata.h new file mode 100644 index 0000000..bbf2088 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/core/rtypeddata.h @@ -0,0 +1,604 @@ +#ifndef RBIMPL_RTYPEDDATA_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RTYPEDDATA_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines struct ::RTypedData. + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#include "ruby/internal/assume.h" +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/flag_enum.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/core/rdata.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/error.h" +#include "ruby/internal/fl_type.h" +#include "ruby/internal/stdbool.h" +#include "ruby/internal/value_type.h" + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define HAVE_TYPE_RB_DATA_TYPE_T 1 + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define HAVE_RB_DATA_TYPE_T_FUNCTION 1 + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define HAVE_RB_DATA_TYPE_T_PARENT 1 + +/** + * This is a value you can set to ::rb_data_type_struct::dfree. Setting this + * means the data was allocated using ::ruby_xmalloc() (or variants), and shall + * be freed using ::ruby_xfree(). + * + * @warning Do not use this if you want to use system malloc, because the + * system and Ruby might or might not share the same malloc + * implementation. + */ +#define RUBY_TYPED_DEFAULT_FREE RUBY_DEFAULT_FREE + +/** + * This is a value you can set to ::rb_data_type_struct::dfree. Setting this + * means the data is managed by someone else, like, statically allocated. Of + * course you are on your own then. + */ +#define RUBY_TYPED_NEVER_FREE RUBY_NEVER_FREE + +/** + * Convenient casting macro. + * + * @param obj An object, which is in fact an ::RTypedData. + * @return The passed object casted to ::RTypedData. + */ +#define RTYPEDDATA(obj) RBIMPL_CAST((struct RTypedData *)(obj)) + +/** + * Convenient getter macro. + * + * @param v An object, which is in fact an ::RTypedData. + * @return The passed object's ::RTypedData::data field. + */ +#define RTYPEDDATA_DATA(v) (RTYPEDDATA(v)->data) + +/** @old{rb_check_typeddata} */ +#define Check_TypedStruct(v, t) \ + rb_check_typeddata(RBIMPL_CAST((VALUE)(v)), (t)) + +/** @cond INTERNAL_MACRO */ +#define RTYPEDDATA_P RTYPEDDATA_P +#define RTYPEDDATA_TYPE RTYPEDDATA_TYPE +#define RUBY_TYPED_FREE_IMMEDIATELY RUBY_TYPED_FREE_IMMEDIATELY +#define RUBY_TYPED_FROZEN_SHAREABLE RUBY_TYPED_FROZEN_SHAREABLE +#define RUBY_TYPED_WB_PROTECTED RUBY_TYPED_WB_PROTECTED +#define RUBY_TYPED_PROMOTED1 RUBY_TYPED_PROMOTED1 +/** @endcond */ + +/** + * @private + * + * Bits for rb_data_type_struct::flags. + */ +enum +RBIMPL_ATTR_FLAG_ENUM() +rbimpl_typeddata_flags { + /** + * This flag has something to do with Ruby's global interpreter lock. For + * maximum safety, Ruby locks the entire VM during GC. However your + * callback functions could unintentionally unlock it, for instance when + * they try to flush an IO buffer. Such operations are dangerous (threads + * then run alongside of GC). By default, to prevent those scenario, + * callbacks are deferred until the GC engine is 100% sure threads can run. + * This flag skips that; structs with it are deallocated during the sweep + * phase. + * + * Using this flag needs deep understanding of both GC and threads. You + * would better leave it unspecified. + */ + RUBY_TYPED_FREE_IMMEDIATELY = 1, + + /** + * This flag has something to do with Ractor. Multiple Ractors run without + * protecting each other. Sharing an object among Ractors is basically + * dangerous, disabled by default. This flag is used to bypass that + * restriction. but setting it is not enough. In addition to do so, an + * object also has to be frozen, and be passed to + * rb_ractor_make_shareable() before being actually shareable. Of course, + * you have to manually prevent race conditions then. + * + * Using this flag needs deep understanding of multithreaded programming. + * You would better leave it unspecified. + */ + RUBY_TYPED_FROZEN_SHAREABLE = RUBY_FL_SHAREABLE, + + /** + * This flag has something to do with our garbage collector. These days + * ruby objects are "generational". There are those who are young and + * those who are old. Young objects are prone to die; monitored relatively + * extensively by the garbage collector. OTOH old objects tend to live + * longer. They are relatively rarely considered. This basically works. + * But there is one tweak that has to be exercised. When an elder object + * has reference(s) to younger one(s), that referenced objects must not + * die. In order to detect additions of such references, old generations + * are protected by write barriers. It is a very difficult hack to + * appropriately insert write barriers everywhere. This mechanism is + * disabled by default for 3rd party extensions (they never get aged). By + * specifying this flag you can enable the generational feature to your + * data structure. Of course, you have to manually insert write barriers + * then. + * + * Using this flag needs deep understanding of GC internals, often at the + * level of source code. You would better leave it unspecified. + */ + RUBY_TYPED_WB_PROTECTED = RUBY_FL_WB_PROTECTED, /* THIS FLAG DEPENDS ON Ruby version */ + + /** + * This flag is mysterious. It seems nobody is currently using it. The + * intention of this flag is also unclear. We need further investigations. + */ + RUBY_TYPED_PROMOTED1 = RUBY_FL_PROMOTED1 /* THIS FLAG DEPENDS ON Ruby version */ +}; + +/** + * This is the struct that holds necessary info for a struct. It roughly + * resembles a Ruby level class; multiple objects can share a ::rb_data_type_t + * instance. + */ +typedef struct rb_data_type_struct rb_data_type_t; + +/** @copydoc rb_data_type_t */ +struct rb_data_type_struct { + + /** + * Name of structs of this kind. This is used for diagnostic purposes. + * This has to be unique in the process, but doesn't has to be a valid + * C/Ruby identifier. + */ + const char *wrap_struct_name; + + /** Function pointers. Resembles C++ `vtbl`.*/ + struct { + + /** + * This function is called when the object is experiencing GC marks. + * If it contains references to other Ruby objects, you need to mark + * them also. Otherwise GC will smash your data. + * + * @see rb_gc_mark() + * @warning This is called during GC runs. Object allocations are + * impossible at that moment (that is why GC runs). + */ + RUBY_DATA_FUNC dmark; + + /** + * This function is called when the object is no longer used. You need + * to do whatever necessary to avoid memory leaks. + * + * @warning This is called during GC runs. Object allocations are + * impossible at that moment (that is why GC runs). + */ + RUBY_DATA_FUNC dfree; + + /** + * This function is to query the size of the underlying memory regions. + * + * @internal + * + * This function has only one usage, which is form inside of + * `ext/objspace`. + */ + size_t (*dsize)(const void *); + + /** + * This function is called when the object is relocated. Like + * ::rb_data_type_struct::dmark, you need to update references to Ruby + * objects inside of your structs. + * + * @see rb_gc_location() + * @warning This is called during GC runs. Object allocations are + * impossible at that moment (that is why GC runs). + */ + RUBY_DATA_FUNC dcompact; + + /** + * This field is reserved for future extension. For now, it must be + * filled with zeros. + */ + void *reserved[1]; /* For future extension. + This array *must* be filled with ZERO. */ + } function; + + /** + * Parent of this class. Sometimes C structs have inheritance-like + * relationships. An example is `struct sockaddr` and its family. If you + * design such things, make ::rb_data_type_t for each of them and connect + * using this field. Ruby can then transparently cast your data back and + * forth when you call #TypedData_Get_Struct(). + * + * ```CXX + * struct parent { }; + * static inline const rb_data_type_t parent_type = { + * .wrap_struct_name = "parent", + * }; + * + * struct child: public parent { }; + * static inline const rb_data_type_t child_type = { + * .wrap_struct_name = "child", + * .parent = &parent_type, + * }; + * + * // This function can take both parent_class and child_class. + * static inline struct parent * + * get_parent(VALUE v) + * { + * struct parent *p; + * TypedData_Get_Struct(v, parent_type, struct parent, p); + * return p; + * } + * ``` + */ + const rb_data_type_t *parent; + + /** + * Type-specific static data. This area can be used for any purpose by a + * programmer who define the type. Ruby does not manage this at all. + */ + void *data; /* This area can be used for any purpose + by a programmer who define the type. */ + + /** + * Type-specific behavioural characteristics. This is a bitfield. It is + * an EXTREMELY WISE IDEA to leave this field blank. It is designed so + * that setting zero is the safest thing to do. If you risk to set any + * bits on, you have to know exactly what you are doing. + * + * @internal + * + * Why it has to be a ::VALUE? @shyouhei doesn't understand the design. + */ + VALUE flags; /* RUBY_FL_WB_PROTECTED */ +}; + +/** + * "Typed" user data. By using this, extension libraries can wrap a C struct + * to make it visible from Ruby. For instance if you have a `struct timeval`, + * and you want users to use it, + * + * ```CXX + * static inline const rb_data_type_t timeval_type = { + * // Note that unspecified fields are 0-filled by default. + * .wrap_struct_name = "timeval", + * .function = { + * .dmark = nullptr, // no need to mark + * .dfree = RUBY_TYPED_DEFAULT_FREE, // use ruby_xfree() + * .dsize = [](auto) { + * return sizeof(struct timeval); + * }, + * }, + * }; + * + * extern "C" void + * Init_timeval(void) + * { + * auto klass = rb_define_class("YourName", rb_cObject); + * + * rb_define_alloc_func(klass, [](auto klass) { + * struct timeval *t; + * auto ret = TypedData_Make_Struct( + * klass, struct timeval, &timeval_type, t); + * + * if (auto i = gettimeofday(t, nullptr); i == -1) { + * rb_sys_fail("gettimeofday(3)"); + * } + * else { + * return ret; + * } + * }); + * } + * ``` + */ +struct RTypedData { + + /** The part that all ruby objects have in common. */ + struct RBasic basic; + + /** + * This field stores various information about how Ruby should handle a + * data. This roughly resembles a Ruby level class (apart from method + * definition etc.) + */ + const rb_data_type_t *type; + + /** + * This has to be always 1. + * + * @internal + * + * Why, then, this is not a const ::VALUE? + */ + VALUE typed_flag; + + /** Pointer to the actual C level struct that you want to wrap. */ + void *data; +}; + +RBIMPL_SYMBOL_EXPORT_BEGIN() +RBIMPL_ATTR_NONNULL((3)) +/** + * This is the primitive way to wrap an existing C struct into ::RTypedData. + * + * @param[in] klass Ruby level class of the returning object. + * @param[in] datap Pointer to the target C struct. + * @param[in] type The characteristics of the passed data. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return An allocated object that wraps `datap`. + */ +VALUE rb_data_typed_object_wrap(VALUE klass, void *datap, const rb_data_type_t *type); + +/** + * Identical to rb_data_typed_object_wrap(), except it allocates a new data + * region internally instead of taking an existing one. The allocation is done + * using ruby_calloc(). Hence it makes no sense for `type->function.dfree` to + * be anything other than ::RUBY_TYPED_DEFAULT_FREE. + * + * @param[in] klass Ruby level class of the returning object. + * @param[in] size Requested size of memory to allocate. + * @param[in] type The characteristics of the passed data. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return An allocated object that wraps a new `size` byte region. + */ +VALUE rb_data_typed_object_zalloc(VALUE klass, size_t size, const rb_data_type_t *type); + +/** + * Checks for the domestic relationship between the two. + * + * @param[in] child A data type supposed to be a child of `parent`. + * @param[in] parent A data type supposed to be a parent of `child`. + * @retval true `child` is a descendent of `parent`. + * @retval false Otherwise. + * + * @internal + * + * You can path NULL to both arguments, don't know what that means though. + */ +int rb_typeddata_inherited_p(const rb_data_type_t *child, const rb_data_type_t *parent); + +/** + * Checks if the given object is of given kind. + * + * @param[in] obj An instance of ::RTypedData. + * @param[in] data_type Expected data type of `obj`. + * @retval true `obj` is of `data_type`. + * @retval false Otherwise. + */ +int rb_typeddata_is_kind_of(VALUE obj, const rb_data_type_t *data_type); + +/** + * Identical to rb_typeddata_is_kind_of(), except it raises exceptions instead + * of returning false. + * + * @param[in] obj An instance of ::RTypedData. + * @param[in] data_type Expected data type of `obj`. + * @exception rb_eTypeError obj is not of `data_type`. + * @return Unwrapped C struct that `obj` holds. + * @post Upon successful return `obj`'s type is guaranteed `data_type`. + */ +void *rb_check_typeddata(VALUE obj, const rb_data_type_t *data_type); +RBIMPL_SYMBOL_EXPORT_END() + +/** + * Converts sval, a pointer to your struct, into a Ruby object. + * + * @param klass A ruby level class. + * @param data_type The type of `sval`. + * @param sval A pointer to your struct. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return A created Ruby object. + */ +#define TypedData_Wrap_Struct(klass,data_type,sval)\ + rb_data_typed_object_wrap((klass),(sval),(data_type)) + +/** + * @private + * + * This is an implementation detail of #TypedData_Make_Struct. People don't + * use it directly. + * + * @param result Variable name of created Ruby object. + * @param klass Ruby level class of the object. + * @param type Type name of the C struct. + * @param size Size of the C struct. + * @param data_type The data type describing `type`. + * @param sval Variable name of created C struct. + */ +#define TypedData_Make_Struct0(result, klass, type, size, data_type, sval) \ + VALUE result = rb_data_typed_object_zalloc(klass, size, data_type); \ + (sval) = RBIMPL_CAST((type *)RTYPEDDATA_DATA(result)); \ + RBIMPL_CAST(/*suppress unused variable warnings*/(void)(sval)) + +/** + * Identical to #TypedData_Wrap_Struct, except it allocates a new data region + * internally instead of taking an existing one. The allocation is done using + * ruby_calloc(). Hence it makes no sense for `data_type->function.dfree` to + * be anything other than ::RUBY_TYPED_DEFAULT_FREE. + * + * @param klass Ruby level class of the object. + * @param type Type name of the C struct. + * @param data_type The data type describing `type`. + * @param sval Variable name of created C struct. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return A created Ruby object. + */ +#ifdef HAVE_STMT_AND_DECL_IN_EXPR +#define TypedData_Make_Struct(klass, type, data_type, sval) \ + RB_GNUC_EXTENSION({ \ + TypedData_Make_Struct0( \ + data_struct_obj, \ + klass, \ + type, \ + sizeof(type), \ + data_type, \ + sval); \ + data_struct_obj; \ + }) +#else +#define TypedData_Make_Struct(klass, type, data_type, sval) \ + rb_data_typed_object_make( \ + (klass), \ + (data_type), \ + RBIMPL_CAST((void **)&(sval)), \ + sizeof(type)) +#endif + +/** + * Obtains a C struct from inside of a wrapper Ruby object. + * + * @param obj An instance of ::RTypedData. + * @param type Type name of the C struct. + * @param data_type The data type describing `type`. + * @param sval Variable name of obtained C struct. + * @exception rb_eTypeError `obj` is not a kind of `data_type`. + * @return Unwrapped C struct that `obj` holds. + */ +#define TypedData_Get_Struct(obj,type,data_type,sval) \ + ((sval) = RBIMPL_CAST((type *)rb_check_typeddata((obj), (data_type)))) + +RBIMPL_ATTR_PURE() +RBIMPL_ATTR_ARTIFICIAL() +/** + * @private + * + * This is an implementation detail of Check_Type(). People don't use it + * directly. + * + * @param[in] obj Object in question + * @retval true `obj` is an instance of ::RTypedData. + * @retval false `obj` is an instance of ::RData. + * @pre `obj` must be a Ruby object of ::RUBY_T_DATA. + */ +static inline bool +rbimpl_rtypeddata_p(VALUE obj) +{ + return RTYPEDDATA(obj)->typed_flag == 1; +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks whether the passed object is ::RTypedData or ::RData. + * + * @param[in] obj Object in question + * @retval true `obj` is an instance of ::RTypedData. + * @retval false `obj` is an instance of ::RData. + * @pre `obj` must be a Ruby object of ::RUBY_T_DATA. + */ +static inline bool +RTYPEDDATA_P(VALUE obj) +{ +#if RUBY_DEBUG + if (RB_UNLIKELY(! RB_TYPE_P(obj, RUBY_T_DATA))) { + Check_Type(obj, RUBY_T_DATA); + RBIMPL_UNREACHABLE_RETURN(false); + } +#endif + + return rbimpl_rtypeddata_p(obj); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/* :TODO: can this function be __attribute__((returns_nonnull)) or not? */ +/** + * Queries for the type of given object. + * + * @param[in] obj Object in question + * @return Data type struct that corresponds to `obj`. + * @pre `obj` must be an instance of ::RTypedData. + */ +static inline const struct rb_data_type_struct * +RTYPEDDATA_TYPE(VALUE obj) +{ +#if RUBY_DEBUG + if (RB_UNLIKELY(! RTYPEDDATA_P(obj))) { + rb_unexpected_type(obj, RUBY_T_DATA); + RBIMPL_UNREACHABLE_RETURN(NULL); + } +#endif + + return RTYPEDDATA(obj)->type; +} + +/** + * While we don't stop you from using this function, it seems to be an + * implementation detail of #TypedData_Make_Struct, which is preferred over + * this one. + * + * @param[in] klass Ruby level class of the returning object. + * @param[in] type The data type + * @param[out] datap Return pointer. + * @param[in] size Size of the C struct. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eNoMemError Out of memory. + * @return A created Ruby object. + * @post `*datap` points to the C struct wrapped by the returned object. + */ +static inline VALUE +rb_data_typed_object_make(VALUE klass, const rb_data_type_t *type, void **datap, size_t size) +{ + TypedData_Make_Struct0(result, klass, void, size, type, *datap); + return result; +} + +RBIMPL_ATTR_DEPRECATED(("by: rb_data_typed_object_wrap")) +/** @deprecated This function was renamed to rb_data_typed_object_wrap(). */ +static inline VALUE +rb_data_typed_object_alloc(VALUE klass, void *datap, const rb_data_type_t *type) +{ + return rb_data_typed_object_wrap(klass, datap, type); +} + +#endif /* RBIMPL_RTYPEDDATA_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/ctype.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/ctype.h new file mode 100644 index 0000000..0f7ca6c --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/ctype.h @@ -0,0 +1,545 @@ +#ifndef RBIMPL_CTYPE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_CTYPE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Our own, locale independent, character handling routines. + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/constexpr.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" + +/** + * @name Old character classification macros + * + * What is this #ISPRINT business? Well, according to our VCS and some + * internet surfing, it appears that the initial intent of these macros were to + * mimic codes appear in common in several GNU projects. As far as @shyouhei + * detects they seem to originate GNU regex (that standalone one rather than + * Gnulib or Glibc), and at least date back to 1995. + * + * Let me lawfully quote from a GNU coreutils commit + * https://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=49803907f5dbd7646184a8912c9db9b09dcd0f22 + * + * > Jim Meyering writes: + * > + * > "... Some ctype macros are valid only for character codes that + * > isascii says are ASCII (SGI's IRIX-4.0.5 is one such system --when + * > using /bin/cc or gcc but without giving an ansi option). So, all + * > ctype uses should be through macros like ISPRINT... If + * > STDC_HEADERS is defined, then autoconf has verified that the ctype + * > macros don't need to be guarded with references to isascii. ... + * > Defining isascii to 1 should let any compiler worth its salt + * > eliminate the && through constant folding." + * > + * > Bruno Haible adds: + * > + * > "... Furthermore, isupper(c) etc. have an undefined result if c is + * > outside the range -1 <= c <= 255. One is tempted to write isupper(c) + * > with c being of type `char', but this is wrong if c is an 8-bit + * > character >= 128 which gets sign-extended to a negative value. + * > The macro ISUPPER protects against this as well." + * + * So the intent was to reroute old problematic systems that no longer exist. + * At the same time the problems described above no longer hurt us, because we + * decided to completely avoid using system-provided isupper etc. to reinvent + * the wheel. These macros are entirely legacy; please ignore them. + * + * But let me also put stress that GNU people are wise; they use those macros + * only inside of their own implementations and never let them be public. On + * the other hand ruby has thoughtlessly publicised them to 3rd party libraries + * since its beginning, which is a very bad idea. These macros are too easy to + * get conflicted with definitions elsewhere. + * + * New programs should stick to the `rb_` prefixed names. + * + * @note It seems we just mimic the API. We do not share their implementation + * with GPL-ed programs. + * + * @{ + */ +#ifndef ISPRINT +# define ISASCII rb_isascii /**< @old{rb_isascii}*/ +# define ISPRINT rb_isprint /**< @old{rb_isprint}*/ +# define ISGRAPH rb_isgraph /**< @old{rb_isgraph}*/ +# define ISSPACE rb_isspace /**< @old{rb_isspace}*/ +# define ISUPPER rb_isupper /**< @old{rb_isupper}*/ +# define ISLOWER rb_islower /**< @old{rb_islower}*/ +# define ISALNUM rb_isalnum /**< @old{rb_isalnum}*/ +# define ISALPHA rb_isalpha /**< @old{rb_isalpha}*/ +# define ISDIGIT rb_isdigit /**< @old{rb_isdigit}*/ +# define ISXDIGIT rb_isxdigit /**< @old{rb_isxdigit}*/ +# define ISBLANK rb_isblank /**< @old{rb_isblank}*/ +# define ISCNTRL rb_iscntrl /**< @old{rb_iscntrl}*/ +# define ISPUNCT rb_ispunct /**< @old{rb_ispunct}*/ +#endif + +#define TOUPPER rb_toupper /**< @old{rb_toupper}*/ +#define TOLOWER rb_tolower /**< @old{rb_tolower}*/ +#define STRCASECMP st_locale_insensitive_strcasecmp /**< @old{st_locale_insensitive_strcasecmp}*/ +#define STRNCASECMP st_locale_insensitive_strncasecmp /**< @old{st_locale_insensitive_strncasecmp}*/ +#define STRTOUL ruby_strtoul /**< @old{ruby_strtoul}*/ + +/** @} */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** @name locale insensitive functions + * @{ + */ + +/* In descriptions below, `the POSIX Locale` and `the "C" locale` are tactfully + * used as to whether the described function mimics POSIX or C99. */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Our own locale-insensitive version of `strcasecmp(3)`. The "case" here + * always means that of the POSIX Locale. It doesn't depend on runtime locale + * settings. + * + * @param[in] s1 Comparison LHS. + * @param[in] s2 Comparison RHS. + * @retval -1 `s1` is "less" than `s2`. + * @retval 0 Both strings converted into lowercase would be identical. + * @retval 1 `s1` is "greater" than `s2`. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + */ +int st_locale_insensitive_strcasecmp(const char *s1, const char *s2); + +RBIMPL_ATTR_NONNULL(()) +/** + * Our own locale-insensitive version of `strcnasecmp(3)`. The "case" here + * always means that of the POSIX Locale. It doesn't depend on runtime locale + * settings. + * + * @param[in] s1 Comparison LHS. + * @param[in] s2 Comparison RHS. + * @param[in] n Comparison shall stop after first `n` bytes are scanned. + * @retval -1 `s1` is "less" than `s2`. + * @retval 0 Both strings converted into lowercase would be identical. + * @retval 1 `s1` is "greater" than `s2`. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning This function is _not_ timing safe. + */ +int st_locale_insensitive_strncasecmp(const char *s1, const char *s2, size_t n); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Our own locale-insensitive version of `strtoul(3)`. The conversion is done + * as if the current locale is set to the "C" locale, no matter actual runtime + * locale settings. + * + * @note This is needed because `strtoul("i", 0, 36)` would return zero + * if it is locale sensitive and the current locale is `tr_TR`. + * @param[in] str String of digits, optionally preceded with whitespaces + * (ignored) and optionally `+` or `-` sign. + * @param[out] endptr NULL, or an arbitrary pointer (overwritten on return). + * @param[in] base `2` to `36` inclusive for each base, or special case + * `0` to detect the base from the contents of the string. + * @return Converted integer, casted to unsigned long. + * @post If `endptr` is not NULL, it is updated to point the first such + * byte where conversion failed. + * @note This function sets `errno` on failure. + * - `EINVAL`: Passed `base` is out of range. + * - `ERANGE`: Converted integer is out of range of `long`. + * @warning As far as @shyouhei reads ISO/IEC 9899:2018 section 7.22.1.4, a + * conforming `strtoul` implementation shall render `ERANGE` + * whenever it finds the input string represents a negative + * integer. Such thing can never be representable using `unsigned + * long`. However this implementation does not honour that + * language. It just casts such negative value to the return + * type, resulting a very big return value. This behaviour is at + * least questionable. But we can no longer change that at this + * point. + * @note Not only does this function works under the "C" locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + */ +unsigned long ruby_strtoul(const char *str, char **endptr, int base); +RBIMPL_SYMBOL_EXPORT_END() + +/* + * We are making the functions below to return `int` instead of `bool`. They + * have been as such since their birth at 5f237d79033b2109afb768bc889611fa9630. + */ + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `isascii(3)`. + * + * @param[in] c Byte in question to query. + * @retval false `c` is out of range of ASCII character set. + * @retval true Yes it is. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isascii(int c) +{ + return '\0' <= c && c <= '\x7f'; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `isupper(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in IEEE 1003.1 section 7.3.1.1 "upper". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isupper(int c) +{ + return 'A' <= c && c <= 'Z'; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `islower(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in IEEE 1003.1 section 7.3.1.1 "lower". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_islower(int c) +{ + return 'a' <= c && c <= 'z'; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `isalpha(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in either IEEE 1003.1 section 7.3.1.1 + * "upper" or "lower". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isalpha(int c) +{ + return rb_isupper(c) || rb_islower(c); +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `isdigit(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in IEEE 1003.1 section 7.3.1.1 "digit". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isdigit(int c) +{ + return '0' <= c && c <= '9'; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `isalnum(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in either IEEE 1003.1 section 7.3.1.1 + * "upper", "lower", or "digit". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isalnum(int c) +{ + return rb_isalpha(c) || rb_isdigit(c); +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `isxdigit(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in IEEE 1003.1 section 7.3.1.1 "xdigit". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isxdigit(int c) +{ + return rb_isdigit(c) || ('A' <= c && c <= 'F') || ('a' <= c && c <= 'f'); +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `isblank(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in IEEE 1003.1 section 7.3.1.1 "blank". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isblank(int c) +{ + return c == ' ' || c == '\t'; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `isspace(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in IEEE 1003.1 section 7.3.1.1 "space". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isspace(int c) +{ + return c == ' ' || ('\t' <= c && c <= '\r'); +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `iscntrl(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in IEEE 1003.1 section 7.3.1.1 "cntrl". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_iscntrl(int c) +{ + return ('\0' <= c && c < ' ') || c == '\x7f'; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Identical to rb_isgraph(), except it also returns true for `' '`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in either IEEE 1003.1 section 7.3.1.1 + * "upper", "lower", "digit", "punct", or a `' '`. + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isprint(int c) +{ + return ' ' <= c && c <= '\x7e'; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `ispunct(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in IEEE 1003.1 section 7.3.1.1 "punct". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_ispunct(int c) +{ + return !rb_isalnum(c); +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `isgraph(3)`. + * + * @param[in] c Byte in question to query. + * @retval true `c` is listed in either IEEE 1003.1 section 7.3.1.1 + * "upper", "lower", "digit", or "punct". + * @retval false Anything else. + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_isgraph(int c) +{ + return '!' <= c && c <= '\x7e'; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `tolower(3)`. + * + * @param[in] c Byte in question to convert. + * @retval c The byte is not listed in in IEEE 1003.1 section + * 7.3.1.1 "upper". + * @retval otherwise Byte converted using the map defined in IEEE 1003.1 + * section 7.3.1 "tolower". + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_tolower(int c) +{ + return rb_isupper(c) ? (c|0x20) : c; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Our own locale-insensitive version of `toupper(3)`. + * + * @param[in] c Byte in question to convert. + * @retval c The byte is not listed in in IEEE 1003.1 section + * 7.3.1.1 "lower". + * @retval otherwise Byte converted using the map defined in IEEE 1003.1 + * section 7.3.1 "toupper". + * @note Not only does this function works under the POSIX Locale, but + * also assumes its execution character set be what ruby calls an + * ASCII-compatible character set; which does not include for + * instance EBCDIC or UTF-16LE. + * @warning `c` is an int. This means that when you pass a `char` value + * here, it experiences "integer promotion" as defined in ISO/IEC + * 9899:2018 section 6.3.1.1 paragraph 1. + */ +static inline int +rb_toupper(int c) +{ + return rb_islower(c) ? (c&0x5f) : c; +} + +/** @} */ +#endif /* RBIMPL_CTYPE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/dllexport.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/dllexport.h new file mode 100644 index 0000000..08a2622 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/dllexport.h @@ -0,0 +1,112 @@ +#ifndef RBIMPL_DLLEXPORT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_DLLEXPORT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Tweaking visibility of C variables/functions. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/compiler_is.h" + +/** + * Declaration of externally visible global variables. Here "externally" means + * they should be visible from extension libraries. Depending on operating + * systems (dynamic linkers, to be precise), global variables inside of a DLL + * may or may not be visible form outside of that DLL by default. This + * declaration manually tweaks that default and ensures the declared variable + * be truly globally visible. + * + * ```CXX + * extern VALUE foo; // hidden on some OS + * RUBY_EXTERN VALUE foo; // ensure visible + * ``` + */ +#undef RUBY_EXTERN +#if defined(MJIT_HEADER) && defined(_WIN32) +# define RUBY_EXTERN extern __declspec(dllimport) +#elif defined(RUBY_EXPORT) +# define RUBY_EXTERN extern +#elif defined(_WIN32) +# define RUBY_EXTERN extern __declspec(dllimport) +#else +# define RUBY_EXTERN extern +#endif + +#ifndef RUBY_SYMBOL_EXPORT_BEGIN +# define RUBY_SYMBOL_EXPORT_BEGIN /* begin */ +#endif + +#ifndef RUBY_SYMBOL_EXPORT_END +# define RUBY_SYMBOL_EXPORT_END /* end */ +#endif + +#ifndef RUBY_FUNC_EXPORTED +# define RUBY_FUNC_EXPORTED /* void */ +#endif + +/** + * @cond INTERNAL_MACRO + * + * These MJIT related macros are placed here because translate_mjit_header can + * need them. Extension libraries should not touch. + */ + +/* These macros are used for functions which are exported only for MJIT + and NOT ensured to be exported in future versions. */ + +#if ! defined(MJIT_HEADER) +# define MJIT_FUNC_EXPORTED RUBY_FUNC_EXPORTED +#elif ! RBIMPL_COMPILER_IS(MSVC) +# define MJIT_FUNC_EXPORTED RUBY_FUNC_EXPORTED +#else +# define MJIT_FUNC_EXPORTED static +#endif + +#define MJIT_SYMBOL_EXPORT_BEGIN RUBY_SYMBOL_EXPORT_BEGIN +#define MJIT_SYMBOL_EXPORT_END RUBY_SYMBOL_EXPORT_END + +/* On mswin, MJIT header transformation can't be used since cl.exe can't output + preprocessed output preserving macros. So this `MJIT_STATIC` is needed + to force non-static function to static on MJIT header to avoid symbol conflict. */ +#ifdef MJIT_HEADER +# define MJIT_STATIC static +#else +# define MJIT_STATIC +#endif + +/** @endcond */ + +/** Shortcut macro equivalent to `RUBY_SYMBOL_EXPORT_BEGIN extern "C" {`. + * \@shyouhei finds it handy. */ +#if defined(__DOXYGEN__) +# define RBIMPL_SYMBOL_EXPORT_BEGIN() /* void */ +#elif defined(__cplusplus) +# define RBIMPL_SYMBOL_EXPORT_BEGIN() RUBY_SYMBOL_EXPORT_BEGIN extern "C" { +#else +# define RBIMPL_SYMBOL_EXPORT_BEGIN() RUBY_SYMBOL_EXPORT_BEGIN +#endif + +/** Counterpart of #RBIMPL_SYMBOL_EXPORT_BEGIN */ +#if defined(__DOXYGEN__) +# define RBIMPL_SYMBOL_EXPORT_END() /* void */ +#elif defined(__cplusplus) +# define RBIMPL_SYMBOL_EXPORT_END() } RUBY_SYMBOL_EXPORT_END +#else +# define RBIMPL_SYMBOL_EXPORT_END() RUBY_SYMBOL_EXPORT_END +#endif +#endif /* RBIMPL_DLLEXPORT_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/dosish.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/dosish.h new file mode 100644 index 0000000..7d354dd --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/dosish.h @@ -0,0 +1,89 @@ +#ifndef RBIMPL_DOSISH_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_DOSISH_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Support for so-called dosish systems. + */ +#ifdef __CYGWIN__ +#undef _WIN32 +#endif + +#if defined(_WIN32) +/* + DOSISH mean MS-Windows style filesystem. + But you should use more precise macros like DOSISH_DRIVE_LETTER, PATH_SEP, + ENV_IGNORECASE or CASEFOLD_FILESYSTEM. + */ +#define DOSISH 1 +# define DOSISH_DRIVE_LETTER +#endif + +#ifdef _WIN32 +#include "ruby/win32.h" +#endif + +/** The delimiter of `PATH` environment variable. */ +#if defined(DOSISH) +#define PATH_SEP ";" +#else +#define PATH_SEP ":" +#endif + +/** Identical to #PATH_SEP, except it is of type `char`. */ +#define PATH_SEP_CHAR PATH_SEP[0] + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + * + * @internal + * + * For historical interests: there was an operating system called Human68k + * which used an environment variable called `"path"` for this purpose. + */ +#define PATH_ENV "PATH" + +#if defined(DOSISH) +#define ENV_IGNORECASE +#endif + +/** + * Stone age assumption was that an operating system supports only one file + * system at a moment. This macro was to detect if such (one and only) file + * system has case sensitivity. This assumption is largely not true any + * longer; most operating systems can mount many kinds of file systems side by + * side. Also there are file systems that do or do not ignore cases depending + * on configuration (e.g. EXT4's `casefold` feature). + * + * This macro is still used internally (for instance Ruby level constant + * `File::FNM_SYSCASE` depends on it), but it is basically a wrong idea for you + * to use it today. Please just find another way. + */ +#ifndef CASEFOLD_FILESYSTEM +# if defined DOSISH +# define CASEFOLD_FILESYSTEM 1 +# else +# define CASEFOLD_FILESYSTEM 0 +# endif +#endif + +#endif /* RBIMPL_DOSISH_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/coderange.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/coderange.h new file mode 100644 index 0000000..7a81208 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/coderange.h @@ -0,0 +1,202 @@ +#ifndef RUBY_INTERNAL_ENCODING_CODERANGE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERNAL_ENCODING_CODERANGE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines for code ranges. + */ + +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/fl_type.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** What rb_enc_str_coderange() returns. */ +enum ruby_coderange_type { + + /** The object's coderange is unclear yet. */ + RUBY_ENC_CODERANGE_UNKNOWN = 0, + + /** The object holds 0 to 127 inclusive and nothing else. */ + RUBY_ENC_CODERANGE_7BIT = ((int)RUBY_FL_USER8), + + /** The object's encoding and contents are consistent each other */ + RUBY_ENC_CODERANGE_VALID = ((int)RUBY_FL_USER9), + + /** The object holds invalid/malformed/broken character(s). */ + RUBY_ENC_CODERANGE_BROKEN = ((int)(RUBY_FL_USER8|RUBY_FL_USER9)), + + /** Where the coderange resides. */ + RUBY_ENC_CODERANGE_MASK = (RUBY_ENC_CODERANGE_7BIT| + RUBY_ENC_CODERANGE_VALID| + RUBY_ENC_CODERANGE_BROKEN) +}; + +RBIMPL_ATTR_CONST() +/** + * @private + * + * This is an implementation detail of #RB_ENC_CODERANGE_CLEAN_P. People don't + * use it directly. + * + * @param[in] cr An enum ::ruby_coderange_type. + * @retval 1 It is. + * @retval 0 It isn't. + */ +static inline int +rb_enc_coderange_clean_p(int cr) +{ + return (cr ^ (cr >> 1)) & RUBY_ENC_CODERANGE_7BIT; +} + +RBIMPL_ATTR_CONST() +/** + * Queries if a code range is "clean". "Clean" in this context means it is + * known and valid. + * + * @param[in] cr An enum ::ruby_coderange_type. + * @retval 1 It is. + * @retval 0 It isn't. + */ +static inline bool +RB_ENC_CODERANGE_CLEAN_P(enum ruby_coderange_type cr) +{ + return rb_enc_coderange_clean_p(cr); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +/** + * Queries the (inline) code range of the passed object. The object must be + * capable of having inline encoding. Using this macro needs deep + * understanding of bit level object binary layout. + * + * @param[in] obj Target object. + * @return An enum ::ruby_coderange_type. + */ +static inline enum ruby_coderange_type +RB_ENC_CODERANGE(VALUE obj) +{ + VALUE ret = RB_FL_TEST_RAW(obj, RUBY_ENC_CODERANGE_MASK); + + return RBIMPL_CAST((enum ruby_coderange_type)ret); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +/** + * Queries the (inline) code range of the passed object is + * ::RUBY_ENC_CODERANGE_7BIT. The object must be capable of having inline + * encoding. Using this macro needs deep understanding of bit level object + * binary layout. + * + * @param[in] obj Target object. + * @retval 1 It is ascii only. + * @retval 0 Otherwise (including cases when the range is not known). + */ +static inline bool +RB_ENC_CODERANGE_ASCIIONLY(VALUE obj) +{ + return RB_ENC_CODERANGE(obj) == RUBY_ENC_CODERANGE_7BIT; +} + +/** + * Destructively modifies the passed object so that its (inline) code range is + * the passed one. The object must be capable of having inline encoding. + * Using this macro needs deep understanding of bit level object binary layout. + * + * @param[out] obj Target object. + * @param[out] cr An enum ::ruby_coderange_type. + * @post `obj`'s code range is `cr`. + */ +static inline void +RB_ENC_CODERANGE_SET(VALUE obj, enum ruby_coderange_type cr) +{ + RB_FL_UNSET_RAW(obj, RUBY_ENC_CODERANGE_MASK); + RB_FL_SET_RAW(obj, cr); +} + +/** + * Destructively clears the passed object's (inline) code range. The object + * must be capable of having inline encoding. Using this macro needs deep + * understanding of bit level object binary layout. + * + * @param[out] obj Target object. + * @post `obj`'s code range is ::RUBY_ENC_CODERANGE_UNKNOWN. + */ +static inline void +RB_ENC_CODERANGE_CLEAR(VALUE obj) +{ + RB_FL_UNSET_RAW(obj, RUBY_ENC_CODERANGE_MASK); +} + +RBIMPL_ATTR_CONST() +/* assumed ASCII compatibility */ +/** + * "Mix" two code ranges into one. This is handy for instance when you + * concatenate two strings into one. Consider one of then is valid but the + * other isn't. The result must be invalid. This macro computes that kind of + * mixture. + * + * @param[in] a An enum ::ruby_coderange_type. + * @param[in] b Another enum ::ruby_coderange_type. + * @return The `a` "and" `b`. + */ +static inline enum ruby_coderange_type +RB_ENC_CODERANGE_AND(enum ruby_coderange_type a, enum ruby_coderange_type b) +{ + if (a == RUBY_ENC_CODERANGE_7BIT) { + return b; + } + else if (a != RUBY_ENC_CODERANGE_VALID) { + return RUBY_ENC_CODERANGE_UNKNOWN; + } + else if (b == RUBY_ENC_CODERANGE_7BIT) { + return RUBY_ENC_CODERANGE_VALID; + } + else { + return b; + } +} + +#define ENC_CODERANGE_MASK RUBY_ENC_CODERANGE_MASK /**< @old{RUBY_ENC_CODERANGE_MASK} */ +#define ENC_CODERANGE_UNKNOWN RUBY_ENC_CODERANGE_UNKNOWN /**< @old{RUBY_ENC_CODERANGE_UNKNOWN} */ +#define ENC_CODERANGE_7BIT RUBY_ENC_CODERANGE_7BIT /**< @old{RUBY_ENC_CODERANGE_7BIT} */ +#define ENC_CODERANGE_VALID RUBY_ENC_CODERANGE_VALID /**< @old{RUBY_ENC_CODERANGE_VALID} */ +#define ENC_CODERANGE_BROKEN RUBY_ENC_CODERANGE_BROKEN /**< @old{RUBY_ENC_CODERANGE_BROKEN} */ +#define ENC_CODERANGE_CLEAN_P(cr) RB_ENC_CODERANGE_CLEAN_P(cr) /**< @old{RB_ENC_CODERANGE_CLEAN_P} */ +#define ENC_CODERANGE(obj) RB_ENC_CODERANGE(obj) /**< @old{RB_ENC_CODERANGE} */ +#define ENC_CODERANGE_ASCIIONLY(obj) RB_ENC_CODERANGE_ASCIIONLY(obj) /**< @old{RB_ENC_CODERANGE_ASCIIONLY} */ +#define ENC_CODERANGE_SET(obj,cr) RB_ENC_CODERANGE_SET(obj,cr) /**< @old{RB_ENC_CODERANGE_SET} */ +#define ENC_CODERANGE_CLEAR(obj) RB_ENC_CODERANGE_CLEAR(obj) /**< @old{RB_ENC_CODERANGE_CLEAR} */ +#define ENC_CODERANGE_AND(a, b) RB_ENC_CODERANGE_AND(a, b) /**< @old{RB_ENC_CODERANGE_AND} */ +#define ENCODING_CODERANGE_SET(obj, encindex, cr) RB_ENCODING_CODERANGE_SET(obj, encindex, cr) /**< @old{RB_ENCODING_CODERANGE_SET} */ + +/** @cond INTERNAL_MACRO */ +#define RB_ENC_CODERANGE RB_ENC_CODERANGE +#define RB_ENC_CODERANGE_AND RB_ENC_CODERANGE_AND +#define RB_ENC_CODERANGE_ASCIIONLY RB_ENC_CODERANGE_ASCIIONLY +#define RB_ENC_CODERANGE_CLEAN_P RB_ENC_CODERANGE_CLEAN_P +#define RB_ENC_CODERANGE_CLEAR RB_ENC_CODERANGE_CLEAR +#define RB_ENC_CODERANGE_SET RB_ENC_CODERANGE_SET +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_INTERNAL_ENCODING_CODERANGE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/ctype.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/ctype.h new file mode 100644 index 0000000..05c314a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/ctype.h @@ -0,0 +1,258 @@ +#ifndef RUBY_INTERNAL_ENCODING_CTYPE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERNAL_ENCODING_CTYPE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to query chacater types. + */ + +#include "ruby/onigmo.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/encoding/encoding.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Queries if the passed pointer points to a newline character. What is a + * newline and what is not depends on the passed encoding. + * + * @param[in] p Pointer to a possibly-middle of a character. + * @param[in] end End of the string. + * @param[in] enc Encoding. + * @retval false It isn't. + * @retval true It is. + */ +static inline bool +rb_enc_is_newline(const char *p, const char *e, rb_encoding *enc) +{ + OnigUChar *up = RBIMPL_CAST((OnigUChar *)p); + OnigUChar *ue = RBIMPL_CAST((OnigUChar *)e); + + return ONIGENC_IS_MBC_NEWLINE(enc, up, ue); +} + +/** + * Queries if the passed code point is of passed character type in the passed + * encoding. The "character type" here is a set of macros defined in onigmo.h, + * like `ONIGENC_CTYPE_PUNCT`. + * + * @param[in] c An `OnigCodePoint` value. + * @param[in] t An `OnigCtype` value. + * @param[in] enc A `rb_encoding*` value. + * @retval true `c` is of `t` in `enc`. + * @retval false Otherwise. + */ +static inline bool +rb_enc_isctype(OnigCodePoint c, OnigCtype t, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_CTYPE(enc, c, t); +} + +/** + * Identical to rb_isascii(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval false `c` is out of range of ASCII character set in `enc`. + * @retval true Otherwise. + * + * @internal + * + * `enc` is ignored. This is at least an intentional implementation detail + * (not a bug). But there could be rooms for future extensions. + */ +static inline bool +rb_enc_isascii(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_ASCII(c); +} + +/** + * Identical to rb_isalpha(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval true `enc` classifies `c` as "ALPHA". + * @retval false Otherwise. + */ +static inline bool +rb_enc_isalpha(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_ALPHA(enc, c); +} + +/** + * Identical to rb_islower(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval true `enc` classifies `c` as "LOWER". + * @retval false Otherwise. + */ +static inline bool +rb_enc_islower(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_LOWER(enc, c); +} + +/** + * Identical to rb_isupper(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval true `enc` classifies `c` as "UPPER". + * @retval false Otherwise. + */ +static inline bool +rb_enc_isupper(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_UPPER(enc, c); +} + +/** + * Identical to rb_iscntrl(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval true `enc` classifies `c` as "CNTRL". + * @retval false Otherwise. + */ +static inline bool +rb_enc_iscntrl(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_CNTRL(enc, c); +} + +/** + * Identical to rb_ispunct(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval true `enc` classifies `c` as "PUNCT". + * @retval false Otherwise. + */ +static inline bool +rb_enc_ispunct(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_PUNCT(enc, c); +} + +/** + * Identical to rb_isalnum(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval true `enc` classifies `c` as "ANUM". + * @retval false Otherwise. + */ +static inline bool +rb_enc_isalnum(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_ALNUM(enc, c); +} + +/** + * Identical to rb_isprint(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval true `enc` classifies `c` as "PRINT". + * @retval false Otherwise. + */ +static inline bool +rb_enc_isprint(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_PRINT(enc, c); +} + +/** + * Identical to rb_isspace(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval true `enc` classifies `c` as "PRINT". + * @retval false Otherwise. + */ +static inline bool +rb_enc_isspace(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_SPACE(enc, c); +} + +/** + * Identical to rb_isdigit(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @retval true `enc` classifies `c` as "DIGIT". + * @retval false Otherwise. + */ +static inline bool +rb_enc_isdigit(OnigCodePoint c, rb_encoding *enc) +{ + return ONIGENC_IS_CODE_DIGIT(enc, c); +} + +RBIMPL_ATTR_CONST() +/** + * Identical to rb_toupper(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @return `c`'s (Ruby's definition of) upper case counterpart. + * + * @internal + * + * As `RBIMPL_ATTR_CONST` implies this function ignores `enc`. + */ +int rb_enc_toupper(int c, rb_encoding *enc); + +RBIMPL_ATTR_CONST() +/** + * Identical to rb_tolower(), except it additionally takes an encoding. + * + * @param[in] c A code point. + * @param[in] enc An encoding. + * @return `c`'s (Ruby's definition of) lower case counterpart. + * + * @internal + * + * As `RBIMPL_ATTR_CONST` implies this function ignores `enc`. + */ +int rb_enc_tolower(int c, rb_encoding *enc); + +RBIMPL_SYMBOL_EXPORT_END() + +/** @cond INTERNAL_MACRO */ +#define rb_enc_is_newline rb_enc_is_newline +#define rb_enc_isalnum rb_enc_isalnum +#define rb_enc_isalpha rb_enc_isalpha +#define rb_enc_isascii rb_enc_isascii +#define rb_enc_isctype rb_enc_isctype +#define rb_enc_isdigit rb_enc_isdigit +#define rb_enc_islower rb_enc_islower +#define rb_enc_isprint rb_enc_isprint +#define rb_enc_iscntrl rb_enc_iscntrl +#define rb_enc_ispunct rb_enc_ispunct +#define rb_enc_isspace rb_enc_isspace +#define rb_enc_isupper rb_enc_isupper +/** @endcond */ + +#endif /* RUBY_INTERNAL_ENCODING_CTYPE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/encoding.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/encoding.h new file mode 100644 index 0000000..4748ca8 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/encoding.h @@ -0,0 +1,1060 @@ +#ifndef RUBY_INTERNAL_ENCODING_ENCODING_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERNAL_ENCODING_ENCODING_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines ::rb_encoding + */ + +#include "ruby/oniguruma.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/attr/noalias.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/attr/returns_nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/fl_type.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * `Encoding` class. + * + * @ingroup object + */ +RUBY_EXTERN VALUE rb_cEncoding; + +/** + * @private + * + * Bit constants used when embedding encodings into ::RBasic::flags. Extension + * libraries must not bother such things. + */ +enum ruby_encoding_consts { + + /** Max possible number of embeddable encodings. */ + RUBY_ENCODING_INLINE_MAX = 127, + + /** Where inline encodings reside. */ + RUBY_ENCODING_SHIFT = (RUBY_FL_USHIFT+10), + + /** Bits we use to store inline encodings. */ + RUBY_ENCODING_MASK = (RUBY_ENCODING_INLINE_MAX<> RUBY_ENCODING_SHIFT; + + return RBIMPL_CAST((int)ret); +} + +#define ENCODING_SET_INLINED(obj,i) RB_ENCODING_SET_INLINED(obj,i) /**< @old{RB_ENCODING_SET_INLINED} */ +#define ENCODING_SET(obj,i) RB_ENCODING_SET(obj,i) /**< @old{RB_ENCODING_SET} */ +#define ENCODING_GET_INLINED(obj) RB_ENCODING_GET_INLINED(obj) /**< @old{RB_ENCODING_GET_INLINED} */ +#define ENCODING_GET(obj) RB_ENCODING_GET(obj) /**< @old{RB_ENCODING_GET} */ +#define ENCODING_IS_ASCII8BIT(obj) RB_ENCODING_IS_ASCII8BIT(obj) /**< @old{RB_ENCODING_IS_ASCII8BIT} */ +#define ENCODING_MAXNAMELEN RUBY_ENCODING_MAXNAMELEN /**< @old{RUBY_ENCODING_MAXNAMELEN} */ + +/** + * The type of encoding. Our design here is we take Oniguruma/Onigmo's + * multilingualisation schema as our base data structure. + */ +typedef const OnigEncodingType rb_encoding; + +RBIMPL_ATTR_NOALIAS() +/** + * Converts a character option to its encoding. It only supports a very + * limited set of Japanese encodings due to its Japanese origin. Ruby still + * has this in-core for backwards compatibility. But new codes must not bother + * such concept like one-character encoding option. Consider deprecated in + * practice. + * + * @param[in] c One of `['n', 'e', 's', 'u', 'i', 'x', 'm']`. + * @param[out] option Return buffer. + * @param[out] kcode Return buffer. + * @retval 1 `c` understood properly. + * @retval 0 `c` is not understood. + * @post `option` is a ::OnigOptionType. + * @post `kcode` is an enum `ruby_preserved_encindex`. + * + * @internal + * + * `kcode` is opaque because `ruby_preserved_encindex` is not visible from + * extension libraries. But who cares? + */ +int rb_char_to_option_kcode(int c, int *option, int *kcode); + +/** + * Creates a new encoding, using the passed one as a template. + * + * @param[in] name Name of the creating encoding. + * @param[in] src Template. + * @exception rb_eArgError Duplicated or malformed `name`. + * @return Replicated new encoding's index. + * @post Encoding named `name` is created as a copy of `src`, whose index + * is the return value. + * + * @internal + * + * `name` can be `NULL`, but that just raises an exception. OTOH it seems no + * sanity check is done against `src`...? + */ +int rb_enc_replicate(const char *name, rb_encoding *src); + +/** + * Creates a new "dummy" encoding. Roughly speaking, an encoding is dummy when + * it is stateful. Notable example of dummy encoding are those defined in + * ISO/IEC 2022 + * + * @param[in] name Name of the creating encoding. + * @exception rb_eArgError Duplicated or malformed `name`. + * @return New dummy encoding's index. + * @post Encoding named `name` is created, whose index is the return + * value. + */ +int rb_define_dummy_encoding(const char *name); + +RBIMPL_ATTR_PURE() +/** + * Queries if the passed encoding is dummy. + * + * @param[in] enc Encoding in question. + * @retval 1 It is. + * @retval 0 It isn't. + */ +int rb_enc_dummy_p(rb_encoding *enc); + +RBIMPL_ATTR_PURE() +/** + * Queries the index of the encoding. An encoding's index is a Ruby-local + * concept. It is a (sequential) number assigned to each encoding. + * + * @param[in] enc Encoding in question. + * @return Its index. + * @note You can pass null pointers to this function. It is equivalent + * to rb_usascii_encindex() then. + */ +int rb_enc_to_index(rb_encoding *enc); + +/** + * Queries the index of the encoding of the passed object, if any. + * + * @param[in] obj Object in question. + * @retval -1 `obj` is incapable of having an encoding. + * @retval otherwise `obj`'s encoding's index. + */ +int rb_enc_get_index(VALUE obj); + +/** + * @alias{rb_enc_get_index} + * + * @internal + * + * Implementation wise this is not a verbatim alias of rb_enc_get_index(). But + * the API is consistent. Don't bother. + */ +static inline int +RB_ENCODING_GET(VALUE obj) +{ + int encindex = RB_ENCODING_GET_INLINED(obj); + + if (encindex == RUBY_ENCODING_INLINE_MAX) { + return rb_enc_get_index(obj); + } + else { + return encindex; + } +} + +/** + * Destructively assigns an encoding (via its index) to an object. + * + * @param[out] obj Object in question. + * @param[in] encindex An encoding index. + * @exception rb_eFrozenError `obj` is frozen. + * @exception rb_eArgError `obj` is incapable of having an encoding. + * @exception rb_eEncodingError `encindex` is out of bounds. + * @exception rb_eLoadError Failed to load the encoding. + */ +void rb_enc_set_index(VALUE obj, int encindex); + +/** @alias{rb_enc_set_index} */ +static inline void +RB_ENCODING_SET(VALUE obj, int encindex) +{ + rb_enc_set_index(obj, encindex); +} + +/** + * This is #RB_ENCODING_SET + RB_ENC_CODERANGE_SET combo. The object must be + * capable of having inline encoding. Using this macro needs deep + * understanding of bit level object binary layout. + * + * @param[out] obj Target object. + * @param[in] encindex Encoding in encindex format. + * @param[in] cr An enum ::ruby_coderange_type. + * @post `obj`'s encoding is `encindex`. + * @post `obj`'s code range is `cr`. + */ +static inline void +RB_ENCODING_CODERANGE_SET(VALUE obj, int encindex, enum ruby_coderange_type cr) +{ + RB_ENCODING_SET(obj, encindex); + RB_ENC_CODERANGE_SET(obj, cr); +} + +RBIMPL_ATTR_PURE() +/** + * Queries if the passed object can have its encoding. + * + * @param[in] obj Object in question. + * @retval 1 It can. + * @retval 0 It cannot. + */ +int rb_enc_capable(VALUE obj); + +/** + * Queries the index of the encoding. + * + * @param[in] name Name of the encoding to find. + * @exception rb_eArgError No such encoding named `name`. + * @retval -1 `name` exists, but unable to load. + * @retval otherwise Index of encoding named `name`. + */ +int rb_enc_find_index(const char *name); + +/** + * Registers an "alias" name. In the wild, an encoding can be called using + * multiple names. For instance an encoding known as `"CP932"` is also called + * `"SJIS"` on occasions. This API registers such relationships. + * + * @param[in] alias New name. + * @param[in] orig Old name. + * @exception rb_eArgError `alias` is duplicated or malformed. + * @retval -1 Failed to load `orig`. + * @retval otherwise The index of `orig` and `alias`. + * @post `alias` is a synonym of `orig`. They refer to the identical + * encoding. + */ +int rb_enc_alias(const char *alias, const char *orig); + +/** + * Obtains a encoding index from a wider range of objects (than + * rb_enc_find_index()). + * + * @param[in] obj An ::rb_cEncoding, or its name in ::rb_cString. + * @retval -1 `obj` is unexpected type/contents. + * @retval otherwise Index corresponding to `obj`. + */ +int rb_to_encoding_index(VALUE obj); + +/** + * Identical to rb_find_encoding(), except it raises an exception instead of + * returning NULL. + * + * @param[in] obj An ::rb_cEncoding, or its name in ::rb_cString. + * @exception rb_eTypeError `obj` is neither ::rb_cEncoding nor ::rb_cString. + * @exception rb_eArgError `obj` is an unknown encoding name. + * @return Encoding of `obj`. + */ +rb_encoding *rb_to_encoding(VALUE obj); + +/** + * Identical to rb_to_encoding_index(), except the return type. + * + * @param[in] obj An ::rb_cEncoding, or its name in ::rb_cString. + * @exception rb_eTypeError `obj` is neither ::rb_cEncoding nor ::rb_cString. + * @retval NULL No such encoding. + * @return otherwise Encoding of `obj`. + */ +rb_encoding *rb_find_encoding(VALUE obj); + +/** + * Identical to rb_enc_get_index(), except the return type. + * + * @param[in] obj Object in question. + * @retval NULL Obj is incapable of having an encoding. + * @retval otherwise `obj`'s encoding. + */ +rb_encoding *rb_enc_get(VALUE obj); + +/** + * Look for the "common" encoding between the two. One character can or cannot + * be expressed depending on an encoding. This function finds the super-set of + * encodings that satisfy contents of both arguments. If that is impossible + * returns NULL. + * + * @param[in] str1 An object. + * @param[in] str2 Another object. + * @retval NULL No encoding can satisfy both at once. + * @retval otherwise Common encoding between the two. + * @note Arguments can be non-string, e.g. Regexp. + */ +rb_encoding *rb_enc_compatible(VALUE str1, VALUE str2); + +/** + * Identical to rb_enc_compatible(), except it raises an exception instead of + * returning NULL. + * + * @param[in] str1 An object. + * @param[in] str2 Another object. + * @exception rb_eEncCompatError No encoding can satisfy both. + * @return Common encoding between the two. + * @note Arguments can be non-string, e.g. Regexp. + */ +rb_encoding *rb_enc_check(VALUE str1,VALUE str2); + +/** + * Identical to rb_enc_set_index(), except it additionally does contents fix-up + * depending on the passed object. It for instance changes the byte length of + * terminating `U+0000` according to the passed encoding. + * + * @param[out] obj Object in question. + * @param[in] encindex An encoding index. + * @exception rb_eFrozenError `obj` is frozen. + * @exception rb_eArgError `obj` is incapable of having an encoding. + * @exception rb_eEncodingError `encindex` is out of bounds. + * @exception rb_eLoadError Failed to load the encoding. + * @return The passed `obj`. + * @post `obj`'s contents might be fixed according to `encindex`. + */ +VALUE rb_enc_associate_index(VALUE obj, int encindex); + +/** + * Identical to rb_enc_associate_index(), except it takes an encoding itself + * instead of its index. + * + * @param[out] obj Object in question. + * @param[in] enc An encoding. + * @exception rb_eFrozenError `obj` is frozen. + * @exception rb_eArgError `obj` is incapable of having an encoding. + * @return The passed `obj`. + * @post `obj`'s contents might be fixed according to `enc`. + */ +VALUE rb_enc_associate(VALUE obj, rb_encoding *enc); + +/** + * Destructively copies the encoding of the latter object to that of former + * one. It can also be seen as a routine identical to + * rb_enc_associate_index(), except it takes an object's encoding instead of an + * encoding's index. + * + * @param[out] dst Object to modify. + * @param[in] src Object to reference. + * @exception rb_eFrozenError `dst` is frozen. + * @exception rb_eArgError `dst` is incapable of having an encoding. + * @exception rb_eEncodingError `src` is incapable of having an encoding. + * @post `dst`'s encoding is that of `src`'s. + */ +void rb_enc_copy(VALUE dst, VALUE src); + + +/** + * Identical to rb_find_encoding(), except it takes an encoding index instead + * of a Ruby object. + * + * @param[in] idx An encoding index. + * @retval NULL No such encoding. + * @retval otherwise An encoding whose index is `idx`. + */ +rb_encoding *rb_enc_from_index(int idx); + +/** + * Identical to rb_find_encoding(), except it takes a C's string instead of + * Ruby's. + * + * @param[in] name Name of the encoding to query. + * @retval NULL No such encoding. + * @retval otherwise An encoding whose index is `idx`. + */ +rb_encoding *rb_enc_find(const char *name); + +/** + * Queries the (canonical) name of the passed encoding. + * + * @param[in] enc An encoding. + * @return Its name. + */ +static inline const char * +rb_enc_name(rb_encoding *enc) +{ + return enc->name; +} + +/** + * Queries the minimum number of bytes that the passed encoding needs to + * represent a character. For ASCII and compatible encodings this is typically + * 1. There are however encodings whose minimum is not 1; they are + * historically called wide characters. + * + * @param[in] enc An encoding. + * @return Its least possible number of bytes except 0. + */ +static inline int +rb_enc_mbminlen(rb_encoding *enc) +{ + return enc->min_enc_len; +} + +/** + * Queries the maximum number of bytes that the passed encoding needs to + * represent a character. Fixed-width encodings have the same value for this + * one and #rb_enc_mbminlen. However there are variable-width encodings. + * UTF-8, for instance, takes from 1 up to 6 bytes. + * + * @param[in] enc An encoding. + * @return Its maximum possible number of bytes of a character. + */ +static inline int +rb_enc_mbmaxlen(rb_encoding *enc) +{ + return enc->max_enc_len; +} + +/** + * Queries the number of bytes of the character at the passed pointer. + * + * @param[in] p Pointer to a character's first byte. + * @param[in] e End of the string that has `p`. + * @param[in] enc Encoding of the string. + * @return If the character at `p` does not end until `e`, number of bytes + * between `p` and `e`. Otherwise the number of bytes that the + * character at `p` is encoded. + * + * @internal + * + * Strictly speaking there are chances when `p` points to a middle byte of a + * wide character. This function returns "the number of bytes from `p` to + * nearest of either `e` or the next character boundary", if you go strict. + */ +int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc); + +/** + * Identical to rb_enc_mbclen() unless the character at `p` overruns `e`. That + * can happen for instance when you read from a socket and its partial read + * cuts a wide character in-between. In those situations this function + * "estimates" theoretical length of the character in question. Typically it + * tends to be possible to know how many bytes a character needs before + * actually reaching its end; for instance UTF-8 encodes a character's length + * in the first byte of it. This function returns that info. + * + * @note This implies that the string is not broken. + * + * @param[in] p Pointer to the character's first byte. + * @param[in] e End of the string that has `p`. + * @param[in] enc Encoding of the string. + * @return Number of bytes of character at `p`, measured or estimated. + */ +int rb_enc_fast_mbclen(const char *p, const char *e, rb_encoding *enc); + +/** + * Queries the number of bytes of the character at the passed pointer. This + * function returns 3 different types of information: + * + * ```CXX + * auto n = rb_enc_precise_mbclen(p, q, r); + * + * if (ONIGENC_MBCLEN_CHARFOUND_P(n)) { + * // Character found. Normal return. + * auto found_length = ONIGENC_MBCLEN_CHARFOUND_LEN(n); + * } + * else if (ONIGENC_MBCLEN_NEEDMORE_P(n)) { + * // Character overruns past `q`; needs more. + * auto requested_length = ONIGENC_MBCLEN_NEEDMORE_LEN(n); + * } + * else { + * // `p` is broken. + * assert(ONIGENC_MBCLEN_INVALID_P(n)); + * } + * ``` + * + * @param[in] p Pointer to the character's first byte. + * @param[in] e End of the string that has `p`. + * @param[in] enc Encoding of the string. + * @return Encoded read/needed number of bytes (see above). + */ +int rb_enc_precise_mbclen(const char *p, const char *e, rb_encoding *enc); + +#define MBCLEN_CHARFOUND_P(ret) ONIGENC_MBCLEN_CHARFOUND_P(ret) /**< @old{ONIGENC_MBCLEN_CHARFOUND_P} */ +#define MBCLEN_CHARFOUND_LEN(ret) ONIGENC_MBCLEN_CHARFOUND_LEN(ret) /**< @old{ONIGENC_MBCLEN_CHARFOUND_LEN} */ +#define MBCLEN_INVALID_P(ret) ONIGENC_MBCLEN_INVALID_P(ret) /**< @old{ONIGENC_MBCLEN_INVALID_P} */ +#define MBCLEN_NEEDMORE_P(ret) ONIGENC_MBCLEN_NEEDMORE_P(ret) /**< @old{ONIGENC_MBCLEN_NEEDMORE_P} */ +#define MBCLEN_NEEDMORE_LEN(ret) ONIGENC_MBCLEN_NEEDMORE_LEN(ret) /**< @old{ONIGENC_MBCLEN_NEEDMORE_LEN} */ + +/** + * Queries the code point of character pointed by the passed pointer. If that + * code point is included in ASCII that code point is returned. Otherwise -1. + * This can be different from just looking at the first byte. For instance it + * reads 2 bytes in case of UTF-16BE. + * + * @param[in] p Pointer to the character's first byte. + * @param[in] e End of the string that has `p`. + * @param[in] len Return buffer. + * @param[in] enc Encoding of the string. + * @retval -1 The character at `p` is not i ASCII. + * @retval otherwise A code point of the character at `p`. + * @post `len` (if set) is the number of bytes of `p`. + */ +int rb_enc_ascget(const char *p, const char *e, int *len, rb_encoding *enc); + +/** + * Queries the code point of character pointed by the passed pointer. + * Exceptions happen in case of broken input. + * + * @param[in] p Pointer to the character's first byte. + * @param[in] e End of the string that has `p`. + * @param[in] len Return buffer. + * @param[in] enc Encoding of the string. + * @exception rb_eArgError `p` is broken. + * @return Code point of the character pointed by `p`. + * @post `len` (if set) is the number of bytes of `p`. + */ +unsigned int rb_enc_codepoint_len(const char *p, const char *e, int *len, rb_encoding *enc); + +/** + * Queries the code point of character pointed by the passed pointer. + * Exceptions happen in case of broken input. + * + * @deprecated Use rb_enc_codepoint_len() instead. + * @param[in] p Pointer to the character's first byte. + * @param[in] e End of the string that has `p`. + * @param[in] enc Encoding of the string. + * @exception rb_eArgError `p` is broken. + * @return Code point of the character pointed by `p`. + * + * @internal + * + * @matz says in commit 91e5ba1cb865a2385d3e1cbfacd824496898e098 that the line + * below is a "prototype for obsolete function". However even today there + * still are some use cases of it throughout our repository. It seems it has + * its own niche. + */ +static inline unsigned int +rb_enc_codepoint(const char *p, const char *e, rb_encoding *enc) +{ + return rb_enc_codepoint_len(p, e, 0, enc); + /* ^^^ + * This can be `NULL` in C, `nullptr` in C++, and `0` for both. + * We choose the most portable one here. + */ +} + + +/** + * Identical to rb_enc_codepoint(), except it assumes the passed character is + * not broken. + * + * @param[in] p Pointer to the character's first byte. + * @param[in] e End of the string that has `p`. + * @param[in] enc Encoding of the string. + * @return Code point of the character pointed by `p`. + */ +static inline OnigCodePoint +rb_enc_mbc_to_codepoint(const char *p, const char *e, rb_encoding *enc) +{ + const OnigUChar *up = RBIMPL_CAST((const OnigUChar *)p); + const OnigUChar *ue = RBIMPL_CAST((const OnigUChar *)e); + + return ONIGENC_MBC_TO_CODE(enc, up, ue); +} + +/** + * Queries the number of bytes requested to represent the passed code point + * using the passed encoding. + * + * @param[in] code Code point in question. + * @param[in] enc Encoding to convert the code into a byte sequence. + * @exception rb_eArgError `enc` does not glean `code`. + * @return Number of bytes requested to represent `code` using `enc`. + */ +int rb_enc_codelen(int code, rb_encoding *enc); + +/** + * Identical to rb_enc_codelen(), except it returns 0 for invalid code points. + * + * @param[in] c Code point in question. + * @param[in] enc Encoding to convert `c` into a byte sequence. + * @retval 0 `c` is invalid. + * @return otherwise Number of bytes needed for `enc` to encode `c`. + */ +static inline int +rb_enc_code_to_mbclen(int c, rb_encoding *enc) +{ + OnigCodePoint uc = RBIMPL_CAST((OnigCodePoint)c); + + return ONIGENC_CODE_TO_MBCLEN(enc, uc); +} + +/** + * Identical to rb_enc_uint_chr(), except it writes back to the passed buffer + * instead of allocating one. + * + * @param[in] c Code point. + * @param[out] buf Return buffer. + * @param[in] enc Target encoding scheme. + * @retval <= 0 `c` is invalid in `enc`. + * @return otherwise Number of bytes written to `buf`. + * @post `c` is encoded according to `enc`, then written to `buf`. + * + * @internal + * + * The second argument must be typed. But its current usages prevent us from + * being any stricter than this. :FIXME: + */ +static inline int +rb_enc_mbcput(unsigned int c, void *buf, rb_encoding *enc) +{ + OnigCodePoint uc = RBIMPL_CAST((OnigCodePoint)c); + OnigUChar *ubuf = RBIMPL_CAST((OnigUChar *)buf); + + return ONIGENC_CODE_TO_MBC(enc, uc, ubuf); +} + +/** + * Queries the previous (left) character. + * + * @param[in] s Start of the string. + * @param[in] p Pointer to a character. + * @param[in] e End of the string. + * @param[in] enc Encoding. + * @retval NULL No previous character. + * @retval otherwise Pointer to the head of the previous character. + */ +static inline char * +rb_enc_prev_char(const char *s, const char *p, const char *e, rb_encoding *enc) +{ + const OnigUChar *us = RBIMPL_CAST((const OnigUChar *)s); + const OnigUChar *up = RBIMPL_CAST((const OnigUChar *)p); + const OnigUChar *ue = RBIMPL_CAST((const OnigUChar *)e); + OnigUChar *ur = onigenc_get_prev_char_head(enc, us, up, ue); + + return RBIMPL_CAST((char *)ur); +} + +/** + * Queries the left boundary of a character. This function takes a pointer + * that is not necessarily a head of a character, and searches for its head. + * + * @param[in] s Start of the string. + * @param[in] p Pointer to a possibly-middle of a character. + * @param[in] e End of the string. + * @param[in] enc Encoding. + * @return Pointer to the head of the character that contains `p`. + */ +static inline char * +rb_enc_left_char_head(const char *s, const char *p, const char *e, rb_encoding *enc) +{ + const OnigUChar *us = RBIMPL_CAST((const OnigUChar *)s); + const OnigUChar *up = RBIMPL_CAST((const OnigUChar *)p); + const OnigUChar *ue = RBIMPL_CAST((const OnigUChar *)e); + OnigUChar *ur = onigenc_get_left_adjust_char_head(enc, us, up, ue); + + return RBIMPL_CAST((char *)ur); +} + +/** + * Queries the right boundary of a character. This function takes a pointer + * that is not necessarily a head of a character, and searches for its tail. + * + * @param[in] s Start of the string. + * @param[in] p Pointer to a possibly-middle of a character. + * @param[in] e End of the string. + * @param[in] enc Encoding. + * @return Pointer to the end of the character that contains `p`. + */ +static inline char * +rb_enc_right_char_head(const char *s, const char *p, const char *e, rb_encoding *enc) +{ + const OnigUChar *us = RBIMPL_CAST((const OnigUChar *)s); + const OnigUChar *up = RBIMPL_CAST((const OnigUChar *)p); + const OnigUChar *ue = RBIMPL_CAST((const OnigUChar *)e); + OnigUChar *ur = onigenc_get_right_adjust_char_head(enc, us, up, ue); + + return RBIMPL_CAST((char *)ur); +} + +/** + * Scans the string backwards for n characters. + * + * @param[in] s Start of the string. + * @param[in] p Pointer to a character. + * @param[in] e End of the string. + * @param[in] n Steps. + * @param[in] enc Encoding. + * @retval NULL There are no `n` characters left. + * @retval otherwise Pointer to `n` character before `p`. + */ +static inline char * +rb_enc_step_back(const char *s, const char *p, const char *e, int n, rb_encoding *enc) +{ + const OnigUChar *us = RBIMPL_CAST((const OnigUChar *)s); + const OnigUChar *up = RBIMPL_CAST((const OnigUChar *)p); + const OnigUChar *ue = RBIMPL_CAST((const OnigUChar *)e); + const OnigUChar *ur = onigenc_step_back(enc, us, up, ue, n); + + return RBIMPL_CAST((char *)ur); +} + +/** + * @private + * + * This is an implementation detail of rb_enc_asciicompat(). People don't use + * it directly. Just always use rb_enc_asciicompat(). + * + * @param[in] enc Encoding in question. + * @retval 1 It is ASCII compatible. + * @retval 0 It isn't. + */ +static inline int +rb_enc_asciicompat_inline(rb_encoding *enc) +{ + return rb_enc_mbminlen(enc)==1 && !rb_enc_dummy_p(enc); +} + +/** + * Queries if the passed encoding is _in some sense_ compatible with ASCII. + * The concept of ASCII compatibility is nuanced, and private to our + * implementation. For instance SJIS is ASCII compatible to us, despite their + * having different characters at code point `0x5C`. This is based on some + * practical consideration that Japanese people confuses SJIS to be "upper + * compatible" with ASCII (which is in fact a wrong idea, but we just don't go + * strict here). An example of ASCII incompatible encoding is UTF-16. UTF-16 + * shares code points with ASCII, but employs a completely different encoding + * scheme. + * + * @param[in] enc Encoding in question. + * @retval 0 It is incompatible. + * @retval 1 It is compatible. + */ +static inline bool +rb_enc_asciicompat(rb_encoding *enc) +{ + if (rb_enc_mbminlen(enc) != 1) { + return false; + } + else if (rb_enc_dummy_p(enc)) { + return false; + } + else { + return true; + } +} + +/** + * Queries if the passed string is in an ASCII-compatible encoding. + * + * @param[in] str A Ruby's string to query. + * @retval 0 `str` is not a String, or an ASCII-incompatible string. + * @retval 1 Otherwise. + */ +static inline bool +rb_enc_str_asciicompat_p(VALUE str) +{ + rb_encoding *enc = rb_enc_get(str); + + return rb_enc_asciicompat(enc); +} + +/** + * Queries the Ruby-level counterpart instance of ::rb_cEncoding that + * corresponds to the passed encoding. + * + * @param[in] enc An encoding + * @retval RUBY_Qnil `enc` is a null pointer. + * @retval otherwise An instance of ::rb_cEncoding. + */ +VALUE rb_enc_from_encoding(rb_encoding *enc); + +RBIMPL_ATTR_PURE() +/** + * Queries if the passed encoding is either one of UTF-8/16/32. + * + * @note It does not take UTF-7, which we actually support, into account. + * + * @param[in] enc Encoding in question. + * @retval 0 It is not a Unicode variant. + * @retval otherwise It is. + * + * @internal + * + * In reality it returns 1/0, but the value is abstracted as + * `ONIGENC_FLAG_UNICODE`. + */ +int rb_enc_unicode_p(rb_encoding *enc); + +RBIMPL_ATTR_RETURNS_NONNULL() +/** + * Queries the encoding that represents ASCII-8BIT a.k.a. binary. + * + * @return The encoding that represents ASCII-8BIT. + * + * @internal + * + * This can not return NULL once the process properly boots up. + */ +rb_encoding *rb_ascii8bit_encoding(void); + +RBIMPL_ATTR_RETURNS_NONNULL() +/** + * Queries the encoding that represents UTF-8. + * + * @return The encoding that represents UTF-8. + * + * @internal + * + * This can not return NULL once the process properly boots up. + */ +rb_encoding *rb_utf8_encoding(void); + +RBIMPL_ATTR_RETURNS_NONNULL() +/** + * Queries the encoding that represents US-ASCII. + * + * @return The encoding that represents US-ASCII. + * + * @internal + * + * This can not return NULL once the process properly boots up. + */ +rb_encoding *rb_usascii_encoding(void); + +/** + * Queries the encoding that represents the current locale. + * + * @return The encoding that represents the process' locale. + * + * @internal + * + * This is dynamic. If you change the process' locale by e.g. calling + * `setlocale(3)`, that should also change the return value of this function. + * + * There is no official way for Ruby scripts to manipulate locales, though. + */ +rb_encoding *rb_locale_encoding(void); + +/** + * Queries the "filesystem" encoding. This is the encoding that ruby expects + * info from the OS' file system are in. This affects for instance return + * value of rb_dir_getwd(). Most notably on Windows it can be an alias of OS + * codepage. Most notably on Linux users can set this via default external + * encoding. + * + * @return The "filesystem" encoding. + */ +rb_encoding *rb_filesystem_encoding(void); + +/** + * Queries the "default external" encoding. This is used to interact with + * outer-process things such as File. Though not recommended, you can set this + * using rb_enc_set_default_external(). + * + * @return The "default external" encoding. + */ +rb_encoding *rb_default_external_encoding(void); + +/** + * Queries the "default internal" encoding. This could be a null pointer. + * Otherwise, outer-process info are transcoded from default external encoding + * to this one during reading from an IO. + * + * @return The "default internal" encoding (if any). + */ +rb_encoding *rb_default_internal_encoding(void); + +#ifndef rb_ascii8bit_encindex +RBIMPL_ATTR_CONST() +/** + * Identical to rb_ascii8bit_encoding(), except it returns the encoding's index + * instead of the encoding itself. + * + * @return The index of encoding of ASCII-8BIT. + * + * @internal + * + * This happens to be 0. + */ +int rb_ascii8bit_encindex(void); +#endif + +/** + * Queries if the passed object is in ascii 8bit (== binary) encoding. The + * object must be capable of having inline encoding. Using this macro needs + * deep understanding of bit level object binary layout. + * + * @param[in] obj An object to check. + * @retval 1 It is. + * @retval 0 It isn't. + */ +static inline bool +RB_ENCODING_IS_ASCII8BIT(VALUE obj) +{ + return RB_ENCODING_GET_INLINED(obj) == rb_ascii8bit_encindex(); +} + +#ifndef rb_utf8_encindex +RBIMPL_ATTR_CONST() +/** + * Identical to rb_utf8_encoding(), except it returns the encoding's index + * instead of the encoding itself. + * + * @return The index of encoding of UTF-8. + */ +int rb_utf8_encindex(void); +#endif + +#ifndef rb_usascii_encindex +RBIMPL_ATTR_CONST() +/** + * Identical to rb_usascii_encoding(), except it returns the encoding's index + * instead of the encoding itself. + * + * @return The index of encoding of UTF-8. + */ +int rb_usascii_encindex(void); +#endif + +/** + * Identical to rb_locale_encoding(), except it returns the encoding's index + * instead of the encoding itself. + * + * @return The index of the locale encoding. + */ +int rb_locale_encindex(void); + +/** + * Identical to rb_filesystem_encoding(), except it returns the encoding's + * index instead of the encoding itself. + * + * @return The index of the filesystem encoding. + */ +int rb_filesystem_encindex(void); + +/** + * Identical to rb_default_external_encoding(), except it returns the + * Ruby-level counterpart instance of ::rb_cEncoding that corresponds to the + * default external encoding. + * + * @return An instance of ::rb_cEncoding of default external. + */ +VALUE rb_enc_default_external(void); + +/** + * Identical to rb_default_internal_encoding(), except it returns the + * Ruby-level counterpart instance of ::rb_cEncoding that corresponds to the + * default internal encoding. + * + * @return An instance of ::rb_cEncoding of default internal. + */ +VALUE rb_enc_default_internal(void); + +/** + * Destructively assigns the passed encoding as the default external encoding. + * You should not use this API. It has process-global side effects. Also it + * doesn't change encodings of strings that have already been read. + * + * @param[in] encoding Ruby level encoding. + * @exception rb_eArgError `encoding` is ::RUBY_Qnil. + * @post The default external encoding is `encoding`. + */ +void rb_enc_set_default_external(VALUE encoding); + +/** + * Destructively assigns the passed encoding as the default internal encoding. + * You should not use this API. It has process-global side effects. Also it + * doesn't change encodings of strings that have already been read. + * + * @param[in] encoding Ruby level encoding. + * @post The default internal encoding is `encoding`. + * @note Unlike rb_enc_set_default_external() you can pass ::RUBY_Qnil. + */ +void rb_enc_set_default_internal(VALUE encoding); + +/** + * Returns a platform-depended "charmap" of the current locale. This + * information is called a "Codeset name" in IEEE 1003.1 section 13 + * (``). This is a very low-level API. The return value can have + * no corresponding encoding when passed to rb_find_encoding(). + * + * @param[in] klass Ignored for no reason (why...) + * @return The low-level locale charmap, in Ruby's String. + */ +VALUE rb_locale_charmap(VALUE klass); + +RBIMPL_SYMBOL_EXPORT_END() + +/** @cond INTERNAL_MACRO */ +#define RB_ENCODING_GET RB_ENCODING_GET +#define RB_ENCODING_GET_INLINED RB_ENCODING_GET_INLINED +#define RB_ENCODING_IS_ASCII8BIT RB_ENCODING_IS_ASCII8BIT +#define RB_ENCODING_SET RB_ENCODING_SET +#define RB_ENCODING_SET_INLINED RB_ENCODING_SET_INLINED +#define rb_enc_asciicompat rb_enc_asciicompat +#define rb_enc_code_to_mbclen rb_enc_code_to_mbclen +#define rb_enc_codepoint rb_enc_codepoint +#define rb_enc_left_char_head rb_enc_left_char_head +#define rb_enc_mbc_to_codepoint rb_enc_mbc_to_codepoint +#define rb_enc_mbcput rb_enc_mbcput +#define rb_enc_mbmaxlen rb_enc_mbmaxlen +#define rb_enc_mbminlen rb_enc_mbminlen +#define rb_enc_name rb_enc_name +#define rb_enc_prev_char rb_enc_prev_char +#define rb_enc_right_char_head rb_enc_right_char_head +#define rb_enc_step_back rb_enc_step_back +#define rb_enc_str_asciicompat_p rb_enc_str_asciicompat_p +/** @endcond */ + +#endif /* RUBY_INTERNAL_ENCODING_ENCODING_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/pathname.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/pathname.h new file mode 100644 index 0000000..0b5e85a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/pathname.h @@ -0,0 +1,184 @@ +#ifndef RUBY_INTERNAL_ENCODING_PATHNAME_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERNAL_ENCODING_PATHNAME_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to manipulate encodings of pathnames. + */ + +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/encoding/encoding.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() +RBIMPL_ATTR_NONNULL(()) +/** + * Returns a path component directly adjacent to the passed pointer. + * + * ``` + * "/multi/byte/encoded/pathname.txt" + * ^ ^ ^ + * | | +--- end + * | +--- @return + * +--- path + * ``` + * + * @param[in] path Where to start scanning. + * @param[in] end End of the path string. + * @param[in] enc Encoding of the string. + * @return A pointer in the passed string where the next path component + * resides, or `end` if there is no next path component. + */ +char *rb_enc_path_next(const char *path, const char *end, rb_encoding *enc); + +RBIMPL_ATTR_NONNULL(()) +/** + * Seeks for non-prefix part of a pathname. This can be a no-op when the OS + * has no such concept like a path prefix. But there are OSes where path + * prefixes do exist. + * + * ``` + * "C:\multi\byte\encoded\pathname.txt" + * ^ ^ ^ + * | | +--- end + * | +--- @return + * +--- path + * ``` + * + * @param[in] path Where to start scanning. + * @param[in] end End of the path string. + * @param[in] enc Encoding of the string. + * @return A pointer in the passed string where non-prefix part starts, or + * `path` if the OS does not have path prefix. + */ +char *rb_enc_path_skip_prefix(const char *path, const char *end, rb_encoding *enc); + +RBIMPL_ATTR_NONNULL(()) +/** + * Returns the last path component. + * + * ``` + * "/multi/byte/encoded/pathname.txt" + * ^ ^ ^ + * | | +--- end + * | +--- @return + * +--- path + * ``` + * + * @param[in] path Where to start scanning. + * @param[in] end End of the path string. + * @param[in] enc Encoding of the string. + * @return A pointer in the passed string where the last path component + * resides, or `end` if there is no more path component. + */ +char *rb_enc_path_last_separator(const char *path, const char *end, rb_encoding *enc); + +RBIMPL_ATTR_NONNULL(()) +/** + * This just returns the passed end basically. It makes difference in case the + * passed string ends with tons of path separators like the following: + * + * ``` + * "/path/that/ends/with/lots/of/slashes//////////////" + * ^ ^ ^ + * | | +--- end + * | +--- @return + * +--- path + * ``` + * + * @param[in] path Where to start scanning. + * @param[in] end End of the path string. + * @param[in] enc Encoding of the string. + * @return A pointer in the passed string where the trailing path + * separators start, or `end` if there is no trailing path + * separators. + * + * @internal + * + * It seems this function was introduced to mimic what POSIX says about + * `basename(3)`. + */ +char *rb_enc_path_end(const char *path, const char *end, rb_encoding *enc); + +RBIMPL_ATTR_NONNULL((1, 4)) +/** + * Our own encoding-aware version of `basename(3)`. Normally, this function + * returns the last path component of the given name. However in case the + * passed name ends with a path separator, it returns the name of the + * directory, not the last (empty) component. Also if the passed name is a + * root directory, it returns that root directory. Note however that Windows + * filesystem have drive letters, which this function does not return. + * + * @param[in] name Target path. + * @param[out] baselen Return buffer. + * @param[in,out] alllen Number of bytes of `name`. + * @param[enc] enc Encoding of `name`. + * @return The rightmost component of `name`. + * @post `baselen`, if passed, is updated to be the number of bytes + * of the returned basename. + * @post `alllen`, if passed, is updated to be the number of bytes of + * strings not considered as the basename. + */ +const char *ruby_enc_find_basename(const char *name, long *baselen, long *alllen, rb_encoding *enc); + +RBIMPL_ATTR_NONNULL((1, 3)) +/** + * Our own encoding-aware version of `extname`. This function first applies + * rb_enc_path_last_separator() to the passed name and only concerns its return + * value (ignores any parent directories). This function returns complicated + * results: + * + * ```CXX + * auto path = "..."; + * auto len = strlen(path); + * auto ret = ruby_enc_find_extname(path, &len, rb_ascii8bit_encoding()); + * + * switch(len) { + * case 0: + * if (ret == 0) { + * // `path` is a file without extensions. + * } + * else { + * // `path` is a dotfile. + * // `ret` is the file's name. + * } + * break; + * + * case 1: + * // `path` _ends_ with a dot. + * // `ret` is that dot. + * break; + * + * default: + * // `path` has an extension. + * // `ret` is that extension. + * } + * ``` + * + * @param[in] name Target path. + * @param[in,out] len Number of bytes of `name`. + * @param[in] enc Encoding of `name`. + * @return See above. + * @post `len`, if passed, is updated (see above). + */ +const char *ruby_enc_find_extname(const char *name, long *len, rb_encoding *enc); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_INTERNAL_ENCODING_PATHNAME_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/re.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/re.h new file mode 100644 index 0000000..d0de23b --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/re.h @@ -0,0 +1,46 @@ +#ifndef RUBY_INTERNAL_ENCODING_RE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERNAL_ENCODING_RE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to manipulate encodings of symbols. + */ + +#include "ruby/internal/dllexport.h" +#include "ruby/internal/encoding/encoding.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Identical to rb_reg_new(), except it additionally takes an encoding. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @param[in] enc Encoding of `ptr`. + * @param[in] opts Options e.g. ONIG_OPTION_MULTILINE. + * @exception rb_eRegexpError Failed to compile `ptr`. + * @return An allocated new instance of ::rb_cRegexp, of `enc` encoding, + * whose expression is compiled according to `ptr`. + */ +VALUE rb_enc_reg_new(const char *ptr, long len, rb_encoding *enc, int opts); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_INTERNAL_ENCODING_RE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/sprintf.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/sprintf.h new file mode 100644 index 0000000..cb8737b --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/sprintf.h @@ -0,0 +1,78 @@ +#ifndef RUBY_INTERNAL_ENCODING_SPRINTF_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERNAL_ENCODING_SPRINTF_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to manipulate encodings of symbols. + */ +#include "ruby/internal/config.h" +#include +#include "ruby/internal/attr/format.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/encoding/encoding.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) +/** + * Identical to rb_sprintf(), except it additionally takes an encoding. The + * passed encoding rules both the incoming format specifier and the resulting + * string. + * + * @param[in] enc Encoding of `fmt`. + * @param[in] fmt A `printf`-like format specifier. + * @param[in] ... Variadic number of contents to format. + * @return A rendered new instance of ::rb_cString, of `enc` encoding. + */ +VALUE rb_enc_sprintf(rb_encoding *enc, const char *fmt, ...); + +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 0) +/** + * Identical to rb_enc_sprintf(), except it takes a `va_list` instead of + * variadic arguments. It can also be seen as a routine identical to + * rb_vsprintf(), except it additionally takes an encoding. + * + * @param[in] enc Encoding of `fmt`. + * @param[in] fmt A `printf`-like format specifier. + * @param[in] ap Contents to format. + * @return A rendered new instance of ::rb_cString, of `enc` encoding. + */ +VALUE rb_enc_vsprintf(rb_encoding *enc, const char *fmt, va_list ap); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((3)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 4) +/** + * Identical to rb_raise(), except it additionally takes an encoding. + * + * @param[in] enc Encoding of the generating exception. + * @param[in] exc A subclass of ::rb_eException. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * @param[in] ... Contents of the message. + * @exception exc The specified exception. + * @note It never returns. + */ +void rb_enc_raise(rb_encoding *enc, VALUE exc, const char *fmt, ...); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_INTERNAL_ENCODING_SPRINTF_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/string.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/string.h new file mode 100644 index 0000000..6ed7ca1 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/string.h @@ -0,0 +1,346 @@ +#ifndef RUBY_INTERNAL_ENCODING_STRING_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERNAL_ENCODING_STRING_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to manipulate encodings of strings. + */ + +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/encoding/encoding.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/intern/string.h" /* rbimpl_strlen */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Identical to rb_enc_str_new(), except it additionally takes an encoding. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @param[in] enc Encoding of `ptr`. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString, of `len` bytes length, of `enc` + * encoding, whose contents are verbatim copy of `ptr`. + * @pre At least `len` bytes of continuous memory region shall be + * accessible via `ptr`. + * @note `enc` can be a null pointer. It can also be seen as a routine + * identical to rb_usascii_str_new() then. + */ +VALUE rb_enc_str_new(const char *ptr, long len, rb_encoding *enc); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Identical to rb_enc_str_new(), except it assumes the passed pointer is a + * pointer to a C string. It can also be seen as a routine identical to + * rb_str_new_cstr(), except it additionally takes an encoding. + * + * @param[in] ptr A C string. + * @param[in] enc Encoding of `ptr`. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString, of `enc` encoding, whose contents + * are verbatim copy of `ptr`. + * @pre `ptr` must not be a null pointer. + * @pre Because `ptr` is a C string it makes no sense for `enc` to be + * something like UTF-32. + * @note `enc` can be a null pointer. It can also be seen as a routine + * identical to rb_usascii_str_new_cstr() then. + */ +VALUE rb_enc_str_new_cstr(const char *ptr, rb_encoding *enc); + +/** + * Identical to rb_enc_str_new(), except it takes a C string literal. It can + * also be seen as a routine identical to rb_str_new_static(), except it + * additionally takes an encoding. + * + * @param[in] ptr A C string literal. + * @param[in] len `strlen(ptr)`. + * @param[in] enc Encoding of `ptr`. + * @exception rb_eArgError `len` out of range of `size_t`. + * @pre `ptr` must be a C string constant. + * @return An instance of ::rb_cString, of `enc` encoding, whose backend + * storage is the passed C string literal. + * @warning It is a very bad idea to write to a C string literal (often + * immediate SEGV shall occur). Consider return values of this + * function be read-only. + * @note `enc` can be a null pointer. It can also be seen as a routine + * identical to rb_usascii_str_new_static() then. + */ +VALUE rb_enc_str_new_static(const char *ptr, long len, rb_encoding *enc); + +/** + * Identical to rb_enc_str_new(), except it returns a "f"string. It can also + * be seen as a routine identical to rb_interned_str(), except it additionally + * takes an encoding. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @param[in] enc Encoding of `ptr`. + * @exception rb_eArgError `len` is negative. + * @return A found or created instance of ::rb_cString, of `len` bytes + * length, of `enc` encoding, whose contents are identical to that + * of `ptr`. + * @pre At least `len` bytes of continuous memory region shall be + * accessible via `ptr`. + * @note `enc` can be a null pointer. + */ +VALUE rb_enc_interned_str(const char *ptr, long len, rb_encoding *enc); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Identical to rb_enc_str_new_cstr(), except it returns a "f"string. It can + * also be seen as a routine identical to rb_interned_str_cstr(), except it + * additionally takes an encoding. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] enc Encoding of `ptr`. + * @return A found or created instance of ::rb_cString of `enc` encoding, + * whose contents are identical to that of `ptr`. + * @pre At least `len` bytes of continuous memory region shall be + * accessible via `ptr`. + * @note `enc` can be a null pointer. + */ +VALUE rb_enc_interned_str_cstr(const char *ptr, rb_encoding *enc); + +/** + * Counts the number of characters of the passed string, according to the + * passed encoding. This has to be complicated. The passed string could be + * invalid and/or broken. This routine would scan from the beginning til the + * end, byte by byte, to seek out character boundaries. Could be super slow. + * + * @param[in] head Leftmost pointer to the string. + * @param[in] tail Rightmost pointer to the string. + * @param[in] enc Encoding of the string. + * @return Number of characters exist in `head` .. `tail`. The definition + * of "character" depends on the passed `enc`. + */ +long rb_enc_strlen(const char *head, const char *tail, rb_encoding *enc); + +/** + * Queries the n-th character. Like rb_enc_strlen() this function can be fast + * or slow depending on the contents. Don't expect characters to be uniformly + * distributed across the entire string. + * + * @param[in] head Leftmost pointer to the string. + * @param[in] tail Rightmost pointer to the string. + * @param[in] nth Requested index of characters. + * @param[in] enc Encoding of the string. + * @return Pointer to the first byte of the character that is `nth` + * character ahead of `head`, or `tail` if there is no such + * character (OOB etc). The definition of "character" depends on + * the passed `enc`. + */ +char *rb_enc_nth(const char *head, const char *tail, long nth, rb_encoding *enc); + +/** + * Identical to rb_enc_get_index(), except the return type. + * + * @param[in] obj Object in question. + * @exception rb_eTypeError `obj` is incapable of having an encoding. + * @return `obj`'s encoding. + */ +VALUE rb_obj_encoding(VALUE obj); + +/** + * Identical to rb_str_cat(), except it additionally takes an encoding. + * + * @param[out] str Destination object. + * @param[in] ptr Contents to append. + * @param[in] len Length of `src`, in bytes. + * @param[in] enc Encoding of `ptr`. + * @exception rb_eArgError `len` is negative. + * @exception rb_eEncCompatError `enc` is not compatible with `str`. + * @return The passed `dst`. + * @post The contents of `ptr` is copied, transcoded into `dst`'s + * encoding, then pasted into `dst`'s end. + */ +VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc); + +/** + * Encodes the passed code point into a series of bytes. + * + * @param[in] code Code point. + * @param[in] enc Target encoding scheme. + * @exception rb_eRangeError `enc` does not glean `code`. + * @return An instance of ::rb_cString, of `enc` encoding, whose sole + * contents is `code` represented in `enc`. + * @note No way to encode code points bigger than UINT_MAX. + * + * @internal + * + * In other languages, APIs like this one could be seen as the primitive + * routines where encodings' "encode" feature are implemented. However in case + * of Ruby this is not the primitive one. We directly manipulate encoded + * strings. Encoding conversion routines transcode an encoded string directly + * to another one; not via a code point array. + */ +VALUE rb_enc_uint_chr(unsigned int code, rb_encoding *enc); + +/** + * Identical to rb_external_str_new(), except it additionally takes an + * encoding. However the whole point of rb_external_str_new() is to encode a + * string into default external encoding. Being able to specify arbitrary + * encoding just ruins the designed purpose the function meseems. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @param[in] enc Target encoding scheme. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString. In case encoding conversion from + * "default internal" to `enc` is fully defined over the given + * contents, then the return value is a string of `enc` encoding, + * whose contents are the converted ones. Otherwise the string is + * a junk. + * @warning It doesn't raise on a conversion failure and silently ends up in + * a corrupted output. You can know the failure by querying + * `valid_encoding?` of the result object. + * + * @internal + * + * @shyouhei has no idea why this one does not follow the naming convention + * that others obey. It seems to him that this should have been called + * `rb_enc_external_str_new`. + */ +VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *enc); + +/** + * Identical to rb_str_export(), except it additionally takes an encoding. + * + * @param[in] obj Target object. + * @param[in] enc Target encoding. + * @exception rb_eTypeError No implicit conversion to String. + * @return Converted ruby string of `enc` encoding. + */ +VALUE rb_str_export_to_enc(VALUE obj, rb_encoding *enc); + +/** + * Encoding conversion main routine. + * + * @param[in] str String to convert. + * @param[in] from Source encoding. + * @param[in] to Destination encoding. + * @return A copy of `str`, with conversion from `from` to `to` applied. + * @note `from` can be a null pointer. `str`'s encoding is taken then. + * @note `to` can be a null pointer. No-op then. + */ +VALUE rb_str_conv_enc(VALUE str, rb_encoding *from, rb_encoding *to); + +/** + * Identical to rb_str_conv_enc(), except it additionally takes IO encoder + * options. The extra arguments can be constructed using io_extract_modeenc() + * etc. + * + * @param[in] str String to convert. + * @param[in] from Source encoding. + * @param[in] to Destination encoding. + * @param[in] ecflags A set of enum ::ruby_econv_flag_type. + * @param[in] ecopts Optional hash. + * @return A copy of `str`, with conversion from `from` to `to` applied. + * @note `from` can be a null pointer. `str`'s encoding is taken then. + * @note `to` can be a null pointer. No-op then. + * @note `ecopts` can be ::RUBY_Qnil, which is equivalent to passing an + * empty hash. + */ +VALUE rb_str_conv_enc_opts(VALUE str, rb_encoding *from, rb_encoding *to, int ecflags, VALUE ecopts); + +/** + * Scans the passed string to collect its code range. Because a Ruby's string + * is mutable, its contents change from time to time; so does its code range. + * A long-lived string tends to fall back to ::RUBY_ENC_CODERANGE_UNKNOWN. + * This API scans it and re-assigns a fine-grained code range constant. + * + * @param[out] str A string. + * @return An enum ::ruby_coderange_type. + */ +int rb_enc_str_coderange(VALUE str); + +/** + * Scans the passed string until it finds something odd. Returns the number of + * bytes scanned. As the name implies this is suitable for repeated call. One + * of its application is `IO#readlines`. The method reads from its receiver's + * read buffer, maybe more than once, looking for newlines. But "newline" can + * be different among encodings. This API is used to detect broken contents to + * properly mark them as such. + * + * @param[in] str String to scan. + * @param[in] end End of `str`. + * @param[in] enc `str`'s encoding. + * @param[out] cr Return buffer. + * @return Distance between `str` and first such byte where broken. + * @post `cr` has the code range type. + */ +long rb_str_coderange_scan_restartable(const char *str, const char *end, rb_encoding *enc, int *cr); + +/** + * Queries if the passed string is "ASCII only". An ASCII only string is a + * string who doesn't have any non-ASCII characters at all. This doesn't + * necessarily mean the string is in ASCII encoding. For instance a String of + * CP932 encoding can quite much be ASCII only, depending on its contents. + * + * @param[in] str String in question. + * @retval 1 It doesn't have non-ASCII characters. + * @retval 0 It has characters that are out of ASCII. + */ +int rb_enc_str_asciionly_p(VALUE str); + +RBIMPL_ATTR_NONNULL(()) +/** + * Looks for the passed string in the passed buffer. + * + * @param[in] x Buffer that potentially includes `y`. + * @param[in] m Number of bytes of `x`. + * @param[in] y Query string. + * @param[in] n Number of bytes of `y`. + * @param[in] enc Encoding of both `x` and `y`. + * @retval -1 Not found. + * @retval otherwise Found index in `x`. + * @note This API can match at a non-character-boundary. + */ +long rb_memsearch(const void *x, long m, const void *y, long n, rb_encoding *enc); + +/** @cond INTERNAL_MACRO */ +RBIMPL_ATTR_NONNULL(()) +static inline VALUE +rbimpl_enc_str_new_cstr(const char *str, rb_encoding *enc) +{ + long len = rbimpl_strlen(str); + + return rb_enc_str_new_static(str, len, enc); +} + +#define rb_enc_str_new(str, len, enc) \ + ((RBIMPL_CONSTANT_P(str) && \ + RBIMPL_CONSTANT_P(len) ? \ + rb_enc_str_new_static: \ + rb_enc_str_new) ((str), (len), (enc))) + +#define rb_enc_str_new_cstr(str, enc) \ + ((RBIMPL_CONSTANT_P(str) ? \ + rbimpl_enc_str_new_cstr : \ + rb_enc_str_new_cstr) ((str), (enc))) + +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_INTERNAL_ENCODING_STRING_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/symbol.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/symbol.h new file mode 100644 index 0000000..9cd1b0d --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/symbol.h @@ -0,0 +1,100 @@ +#ifndef RUBY_INTERNAL_ENCODING_SYMBOL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERNAL_ENCODING_SYMBOL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Routines to manipulate encodings of symbols. + */ + +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/encoding/encoding.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Identical to rb_intern2(), except it additionally takes an encoding. + * + * @param[in] name The name of the id. + * @param[in] len Length of `name`. + * @param[in] enc `name`'s encoding. + * @exception rb_eRuntimeError Too many symbols. + * @return A (possibly new) id whose value is the given name. + * @note These days Ruby internally has two kinds of symbols + * (static/dynamic). Symbols created using this function would + * become static ones; i.e. would never be garbage collected. It + * is up to you to avoid memory leaks. Think twice before using + * it. + */ +ID rb_intern3(const char *name, long len, rb_encoding *enc); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_symname_p(), except it additionally takes an encoding. + * + * @param[in] str A C string to check. + * @param[in] enc `str`'s encoding. + * @retval 1 It is a valid symbol name. + * @retval 0 It is invalid as a symbol name. + */ +int rb_enc_symname_p(const char *str, rb_encoding *enc); + +/** + * Identical to rb_enc_symname_p(), except it additionally takes the passed + * string's length. This is needed for strings containing NUL bytes, like in + * case of UTF-32. + * + * @param[in] name A C string to check. + * @param[in] len Number of bytes of `str`. + * @param[in] enc `str`'s encoding. + * @retval 1 It is a valid symbol name. + * @retval 0 It is invalid as a symbol name. + */ +int rb_enc_symname2_p(const char *name, long len, rb_encoding *enc); + +/** + * Identical to rb_check_id(), except it takes a pointer to a memory region + * instead of Ruby's string. + * + * @param[in] ptr A pointer to a memory region. + * @param[in] len Number of bytes of `ptr`. + * @param[in] enc Encoding of `ptr`. + * @exception rb_eEncodingError `ptr` contains non-ASCII according to `enc`. + * @retval 0 No such id ever existed in the history. + * @retval otherwise The id that represents the given name. + */ +ID rb_check_id_cstr(const char *ptr, long len, rb_encoding *enc); + +/** + * Identical to rb_check_id_cstr(), except for the return type. It can also be + * seen as a routine identical to rb_check_symbol(), except it takes a pointer + * to a memory region instead of Ruby's string. + * + * @param[in] ptr A pointer to a memory region. + * @param[in] len Number of bytes of `ptr`. + * @param[in] enc Encoding of `ptr`. + * @exception rb_eEncodingError `ptr` contains non-ASCII according to `enc`. + * @retval RUBY_Qnil No such id ever existed in the history. + * @retval otherwise The id that represents the given name. + */ +VALUE rb_check_symbol_cstr(const char *ptr, long len, rb_encoding *enc); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_INTERNAL_ENCODING_SYMBOL_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/transcode.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/transcode.h new file mode 100644 index 0000000..7f26d2e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/encoding/transcode.h @@ -0,0 +1,562 @@ +#ifndef RUBY_INTERNAL_ENCODING_TRANSCODE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_INTERNAL_ENCODING_TRANSCODE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief econv stuff + */ + +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** return value of rb_econv_convert() */ +typedef enum { + + /** + * The conversion stopped when it found an invalid sequence. + */ + econv_invalid_byte_sequence, + + /** + * The conversion stopped when it found a character in the input which + * cannot be representable in the output. + */ + econv_undefined_conversion, + + /** + * The conversion stopped because there is no destination. + */ + econv_destination_buffer_full, + + /** + * The conversion stopped because there is no input. + */ + econv_source_buffer_empty, + + /** + * The conversion stopped after converting everything. This is arguably + * the expected normal end of conversion. + */ + econv_finished, + + /** + * The conversion stopped after writing something to somewhere, before + * reading everything. + */ + econv_after_output, + + /** + * The conversion stopped in middle of reading a character, possibly due to + * a partial read of a socket etc. + */ + econv_incomplete_input +} rb_econv_result_t; + +/** An opaque struct that represents a lowest level of encoding conversion. */ +typedef struct rb_econv_t rb_econv_t; + +/** + * Converts the contents of the passed string from its encoding to the passed + * one. + * + * @param[in] str Target string. + * @param[in] to Destination encoding. + * @param[in] ecflags A set of enum + * ::ruby_econv_flag_type. + * @param[in] ecopts A keyword hash, like + * ::rb_io_t::rb_io_enc_t::ecopts. + * @exception rb_eArgError Not fully converted. + * @exception rb_eInvalidByteSequenceError `str` is malformed. + * @exception rb_eUndefinedConversionError `str` has a character not + * representable using `to`. + * @exception rb_eConversionNotFoundError There is no known conversion from + * `str`'s encoding to `to`. + * @return A string whose encoding is `to`, and whose contents is converted + * contents of `str`. + * @note Use rb_econv_prepare_options() to generate `ecopts`. + */ +VALUE rb_str_encode(VALUE str, VALUE to, int ecflags, VALUE ecopts); + +/** + * Queries if there is more than one way to convert between the passed two + * encodings. Encoding conversion are has_and_belongs_to_many relationships. + * There could be no direct conversion defined for the passed pair. Ruby tries + * to find an indirect way to do so then. For instance ISO-8859-1 has no + * direct conversion to ISO-2022-JP. But there is ISO-8859-1 to UTF-8 + * conversion; then there is UTF-8 to EUC-JP conversion; finally there also is + * EUC-JP to ISO-2022-JP conversion. So in short ISO-8859-1 can be converted + * to ISO-2022-JP using that path. This function returns true. Obviously not + * everything that can be represented using UTF-8 can also be represented using + * EUC-JP. Conversions in practice can fail depending on the actual input, and + * that renders exceptions in case of rb_str_encode(). + * + * @param[in] from_encoding One encoding. + * @param[in] to_encoding Another encoding. + * @retval 0 No way to convert the two. + * @retval 1 At least one way to convert the two. + * + * @internal + * + * Practically @shyouhei knows no way for this function to return 0. It seems + * everything can eventually be converted to/from UTF-8, which connects + * everything. + */ +int rb_econv_has_convpath_p(const char* from_encoding, const char* to_encoding); + +/** + * Identical to rb_econv_prepare_opts(), except it additionally takes the + * initial value of flags. The extra bits are bitwise-ORed to the return + * value. + * + * @param[in] opthash Keyword arguments. + * @param[out] ecopts Return buffer. + * @param[in] ecflags Default set of enum ::ruby_econv_flag_type. + * @exception rb_eArgError Unknown/Broken values passed. + * @return Calculated set of enum ::ruby_econv_flag_type. + * @post `ecopts` holds a hash object suitable for + * ::rb_io_t::rb_io_enc_t::ecopts. + */ +int rb_econv_prepare_options(VALUE opthash, VALUE *ecopts, int ecflags); + +/** + * Splits a keyword arguments hash (that for instance `String#encode` took) + * into a set of enum ::ruby_econv_flag_type and a hash storing replacement + * characters etc. + * + * @param[in] opthash Keyword arguments. + * @param[out] ecopts Return buffer. + * @exception rb_eArgError Unknown/Broken values passed. + * @return Calculated set of enum ::ruby_econv_flag_type. + * @post `ecopts` holds a hash object suitable for + * ::rb_io_t::rb_io_enc_t::ecopts. + */ +int rb_econv_prepare_opts(VALUE opthash, VALUE *ecopts); + +/** + * Creates a new instance of struct ::rb_econv_t. + * + * @param[in] source_encoding Name of an encoding. + * @param[in] destination_encoding Name of another encoding. + * @param[in] ecflags A set of enum ::ruby_econv_flag_type. + * @exception rb_eArgError No such encoding. + * @retval NULL Failed to create a struct ::rb_econv_t. + * @retval otherwise Allocated struct ::rb_econv_t. + * @warning Return value must be passed to rb_econv_close() exactly once. + */ +rb_econv_t *rb_econv_open(const char *source_encoding, const char *destination_encoding, int ecflags); + +/** + * Identical to rb_econv_open(), except it additionally takes a hash of + * optional strings. + * + * + * @param[in] source_encoding Name of an encoding. + * @param[in] destination_encoding Name of another encoding. + * @param[in] ecflags A set of enum ::ruby_econv_flag_type. + * @param[in] ecopts Optional set of strings. + * @exception rb_eArgError No such encoding. + * @retval NULL Failed to create a struct ::rb_econv_t. + * @retval otherwise Allocated struct ::rb_econv_t. + * @warning Return value must be passed to rb_econv_close() exactly once. + */ +rb_econv_t *rb_econv_open_opts(const char *source_encoding, const char *destination_encoding, int ecflags, VALUE ecopts); + +/** + * Converts a string from an encoding to another. + * + * Possible flags are either ::RUBY_ECONV_PARTIAL_INPUT (means the source + * buffer is a part of much larger one), ::RUBY_ECONV_AFTER_OUTPUT (instructs + * the converter to stop after output before input), or both of them. + * + * @param[in,out] ec Conversion specification/state etc. + * @param[in] source_buffer_ptr Target string. + * @param[in] source_buffer_end End of target string. + * @param[out] destination_buffer_ptr Return buffer. + * @param[out] destination_buffer_end End of return buffer. + * @param[in] flags Flags (see above). + * @return The status of the conversion. + * @post `destination_buffer_ptr` holds conversion results. + */ +rb_econv_result_t rb_econv_convert(rb_econv_t *ec, + const unsigned char **source_buffer_ptr, const unsigned char *source_buffer_end, + unsigned char **destination_buffer_ptr, unsigned char *destination_buffer_end, + int flags); + +/** + * Destructs a converter. Note that a converter can have a buffer, and can be + * non-empty. Calling this would lose your data then. + * + * @param[out] ec The converter to destroy. + * @post `ec` is no longer a valid pointer. + */ +void rb_econv_close(rb_econv_t *ec); + +/** + * Assigns the replacement string. The string passed here would appear in + * converted string when it cannot represent its source counterpart. This can + * happen for instance you convert an emoji to ISO-8859-1. + * + * @param[out] ec Target converter. + * @param[in] str Replacement string. + * @param[in] len Number of bytes of `str`. + * @param[in] encname Name of encoding of `str`. + * @retval 0 Success. + * @retval -1 Failure (ENOMEM etc.). + * @post `ec`'s replacement string is set to `str`. + */ +int rb_econv_set_replacement(rb_econv_t *ec, const unsigned char *str, size_t len, const char *encname); + +/** + * "Decorate"s a converter. There are special kind of converters that + * transforms the contents, like replacing CR into CRLF. You can add such + * decorators to a converter using this API. By using this function a + * decorator is prepended at the beginning of a conversion sequence: in case of + * CRLF conversion, newlines are converted before encodings are converted. + * + * @param[out] ec Target converter to decorate. + * @param[in] decorator_name Name of decorator to prepend. + * @retval 0 Success. + * @retval -1 Failure (no such decorator etc.). + * @post Decorator works before encoding conversion happens. + * + * @internal + * + * What is the possible value of the `decorator_name` is not public. You have + * to read through `transcode.c` carefully. + */ +int rb_econv_decorate_at_first(rb_econv_t *ec, const char *decorator_name); + +/** + * Identical to rb_econv_decorate_at_first(), except it adds to the opposite + * direction. For instance CRLF conversion would run _after_ encodings are + * converted. + * + * @param[out] ec Target converter to decorate. + * @param[in] decorator_name Name of decorator to prepend. + * @retval 0 Success. + * @retval -1 Failure (no such decorator etc.). + * @post Decorator works after encoding conversion happens. + */ +int rb_econv_decorate_at_last(rb_econv_t *ec, const char *decorator_name); + +/** + * Creates a `rb_eConverterNotFoundError` exception object (but does not + * raise). + * + * @param[in] senc Name of source encoding. + * @param[in] denc Name of destination encoding. + * @param[in] ecflags A set of enum ::ruby_econv_flag_type. + * @return An instance of `rb_eConverterNotFoundError`. + */ +VALUE rb_econv_open_exc(const char *senc, const char *denc, int ecflags); + +/** + * Appends the passed string to the passed converter's output buffer. This can + * be handy when an encoding needs bytes out of thin air; for instance + * ISO-2022-JP has "shift function" which does not correspond to any + * characters. + * + * @param[out] ec Target converter. + * @param[in] str String to insert. + * @param[in] len Number of bytes of `str`. + * @param[in] str_encoding Encoding of `str`. + * @retval 0 Success. + * @retval -1 Failure (conversion error etc.). + * @note `str_encoding` can be anything, and `str` itself is converted + * when necessary. + */ +int rb_econv_insert_output(rb_econv_t *ec, + const unsigned char *str, size_t len, const char *str_encoding); + +/** + * Queries an encoding name which best suits for rb_econv_insert_output()'s + * last parameter. Strings in this encoding need no conversion when inserted; + * can be both time/space efficient. + * + * @param[in] ec Target converter. + * @return Its encoding for insertion. + */ +const char *rb_econv_encoding_to_insert_output(rb_econv_t *ec); + +/** + * This is a rb_econv_make_exception() + rb_exc_raise() combo. + * + * @param[in] ec (Possibly failed) conversion. + * @exception rb_eInvalidByteSequenceError Invalid byte sequence. + * @exception rb_eUndefinedConversionError Conversion undefined. + * @note This function can return when no error. + */ +void rb_econv_check_error(rb_econv_t *ec); + +/** + * This function makes sense right after rb_econv_convert() returns. As listed + * in ::rb_econv_result_t, rb_econv_convert() can bail out for various reasons. + * This function checks the passed converter's internal state and convert it to + * an appropriate exception object. + * + * @param[in] ec Target converter. + * @retval RUBY_Qnil The converter has no error. + * @retval otherwise Conversion error turned into an exception. + */ +VALUE rb_econv_make_exception(rb_econv_t *ec); + +/** + * Queries if rb_econv_putback() makes sense, i.e. there are invalid byte + * sequences remain in the buffer. + * + * @param[in] ec Target converter. + * @return Number of bytes that can be pushed back. + */ +int rb_econv_putbackable(rb_econv_t *ec); + +/** + * Puts back the bytes. In case of ::econv_invalid_byte_sequence, some of + * those invalid bytes are discarded and the others are buffered to be + * converted later. The latter bytes can be put back using this API. + * + * @param[out] ec Target converter (invalid byte sequence). + * @param[out] p Return buffer. + * @param[in] n Max number of bytes to put back. + * @post At most `n` bytes of what was put back is written to `p`. + */ +void rb_econv_putback(rb_econv_t *ec, unsigned char *p, int n); + +/** + * Queries the passed encoding's corresponding ASCII compatible encoding. "The + * corresponding ASCII compatible encoding" in this context is an ASCII + * compatible encoding which can represent exactly the same character sets as + * the given ASCII incompatible encoding. For instance that of UTF-16LE is + * UTF-8. + * + * @param[in] encname Name of an ASCII incompatible encoding. + * @retval NULL `encname` is already ASCII compatible. + * @retval otherwise The corresponding ASCII compatible encoding. + */ +const char *rb_econv_asciicompat_encoding(const char *encname); + +/** + * Identical to rb_econv_convert(), except it takes Ruby's string instead of + * C's pointer. + * + * @param[in,out] ec Target converter. + * @param[in] src Source string. + * @param[in] flags Flags (see rb_econv_convert). + * @exception rb_eArgError Converted string is too long. + * @exception rb_eInvalidByteSequenceError Invalid byte sequence. + * @exception rb_eUndefinedConversionError Conversion undefined. + * @return The conversion result. + */ +VALUE rb_econv_str_convert(rb_econv_t *ec, VALUE src, int flags); + +/** + * Identical to rb_econv_str_convert(), except it converts only a part of the + * passed string. Can be handy when you for instance want to do line-buffered + * conversion. + * + * @param[in,out] ec Target converter. + * @param[in] src Source string. + * @param[in] byteoff Number of bytes to seek. + * @param[in] bytesize Number of bytes to read. + * @param[in] flags Flags (see rb_econv_convert). + * @exception rb_eArgError Converted string is too long. + * @exception rb_eInvalidByteSequenceError Invalid byte sequence. + * @exception rb_eUndefinedConversionError Conversion undefined. + * @return The conversion result. + */ +VALUE rb_econv_substr_convert(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, int flags); + +/** + * Identical to rb_econv_str_convert(), except it appends the conversion result + * to the additionally passed string instead of creating a new string. It can + * also be seen as a routine identical to rb_econv_append(), except it takes a + * Ruby's string instead of C's pointer. + * + * @param[in,out] ec Target converter. + * @param[in] src Source string. + * @param[in] dst Return buffer. + * @param[in] flags Flags (see rb_econv_convert). + * @exception rb_eArgError Converted string is too long. + * @exception rb_eInvalidByteSequenceError Invalid byte sequence. + * @exception rb_eUndefinedConversionError Conversion undefined. + * @return The conversion result. + */ +VALUE rb_econv_str_append(rb_econv_t *ec, VALUE src, VALUE dst, int flags); + +/** + * Identical to rb_econv_str_append(), except it appends only a part of the + * passed string with conversion. It can also be seen as a routine identical + * to rb_econv_substr_convert(), except it appends the conversion result to the + * additionally passed string instead of creating a new string. + * + * @param[in,out] ec Target converter. + * @param[in] src Source string. + * @param[in] byteoff Number of bytes to seek. + * @param[in] bytesize Number of bytes to read. + * @param[in] dst Return buffer. + * @param[in] flags Flags (see rb_econv_convert). + * @exception rb_eArgError Converted string is too long. + * @exception rb_eInvalidByteSequenceError Invalid byte sequence. + * @exception rb_eUndefinedConversionError Conversion undefined. + * @return The conversion result. + */ +VALUE rb_econv_substr_append(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, VALUE dst, int flags); + +/** + * Converts the passed C's pointer according to the passed converter, then + * append the conversion result to the passed Ruby's string. This way buffer + * overflow is properly avoided to resize the destination properly. + * + * @param[in,out] ec Target converter. + * @param[in] bytesrc Target string. + * @param[in] bytesize Number of bytes of `bytesrc`. + * @param[in] dst Return buffer. + * @param[in] flags Flags (see rb_econv_convert). + * @exception rb_eArgError Converted string is too long. + * @exception rb_eInvalidByteSequenceError Invalid byte sequence. + * @exception rb_eUndefinedConversionError Conversion undefined. + * @return The conversion result. + */ +VALUE rb_econv_append(rb_econv_t *ec, const char *bytesrc, long bytesize, VALUE dst, int flags); + +/** + * This badly named function does not set the destination encoding to binary, + * but instead just nullifies newline conversion decorators if any. Other + * ordinal character conversions still happen after this; something non-binary + * would still be generated. + * + * @param[out] ec Target converter to modify. + * @post Any newline conversions, if any, would be killed. + */ +void rb_econv_binmode(rb_econv_t *ec); + +/** + * This enum is kind of omnibus. Gathers various constants. + */ +enum ruby_econv_flag_type { + + /** + * @name Flags for rb_econv_open() + * + * @{ + */ + + /** Mask for error handling related bits. */ + RUBY_ECONV_ERROR_HANDLER_MASK = 0x000000ff, + + /** Special handling of invalid sequences are there. */ + RUBY_ECONV_INVALID_MASK = 0x0000000f, + + /** Invalid sequences shall be replaced. */ + RUBY_ECONV_INVALID_REPLACE = 0x00000002, + + /** Special handling of undefined conversion are there. */ + RUBY_ECONV_UNDEF_MASK = 0x000000f0, + + /** Undefined characters shall be replaced. */ + RUBY_ECONV_UNDEF_REPLACE = 0x00000020, + + /** Undefined characters shall be escaped. */ + RUBY_ECONV_UNDEF_HEX_CHARREF = 0x00000030, + + /** Decorators are there. */ + RUBY_ECONV_DECORATOR_MASK = 0x0001ff00, + + /** Newline converters are there. */ + RUBY_ECONV_NEWLINE_DECORATOR_MASK = 0x00007f00, + + /** (Unclear; seems unused). */ + RUBY_ECONV_NEWLINE_DECORATOR_READ_MASK = 0x00000f00, + + /** (Unclear; seems unused). */ + RUBY_ECONV_NEWLINE_DECORATOR_WRITE_MASK = 0x00007000, + + /** Universal newline mode. */ + RUBY_ECONV_UNIVERSAL_NEWLINE_DECORATOR = 0x00000100, + + /** CR to CRLF conversion shall happen. */ + RUBY_ECONV_CRLF_NEWLINE_DECORATOR = 0x00001000, + + /** CRLF to CR conversion shall happen. */ + RUBY_ECONV_CR_NEWLINE_DECORATOR = 0x00002000, + + /** CRLF to LF conversion shall happen. */ + RUBY_ECONV_LF_NEWLINE_DECORATOR = 0x00004000, + + /** Texts shall be XML-escaped. */ + RUBY_ECONV_XML_TEXT_DECORATOR = 0x00008000, + + /** Texts shall be AttrValue escaped */ + RUBY_ECONV_XML_ATTR_CONTENT_DECORATOR = 0x00010000, + + /** (Unclear; seems unused). */ + RUBY_ECONV_STATEFUL_DECORATOR_MASK = 0x00f00000, + + /** Texts shall be AttrValue escaped. */ + RUBY_ECONV_XML_ATTR_QUOTE_DECORATOR = 0x00100000, + + /** Newline decorator's default. */ + RUBY_ECONV_DEFAULT_NEWLINE_DECORATOR = +#if defined(RUBY_TEST_CRLF_ENVIRONMENT) || defined(_WIN32) + RUBY_ECONV_CRLF_NEWLINE_DECORATOR, +#else + 0, +#endif + +#define ECONV_ERROR_HANDLER_MASK RUBY_ECONV_ERROR_HANDLER_MASK /**< @old{RUBY_ECONV_ERROR_HANDLER_MASK} */ +#define ECONV_INVALID_MASK RUBY_ECONV_INVALID_MASK /**< @old{RUBY_ECONV_INVALID_MASK} */ +#define ECONV_INVALID_REPLACE RUBY_ECONV_INVALID_REPLACE /**< @old{RUBY_ECONV_INVALID_REPLACE} */ +#define ECONV_UNDEF_MASK RUBY_ECONV_UNDEF_MASK /**< @old{RUBY_ECONV_UNDEF_MASK} */ +#define ECONV_UNDEF_REPLACE RUBY_ECONV_UNDEF_REPLACE /**< @old{RUBY_ECONV_UNDEF_REPLACE} */ +#define ECONV_UNDEF_HEX_CHARREF RUBY_ECONV_UNDEF_HEX_CHARREF /**< @old{RUBY_ECONV_UNDEF_HEX_CHARREF} */ +#define ECONV_DECORATOR_MASK RUBY_ECONV_DECORATOR_MASK /**< @old{RUBY_ECONV_DECORATOR_MASK} */ +#define ECONV_NEWLINE_DECORATOR_MASK RUBY_ECONV_NEWLINE_DECORATOR_MASK /**< @old{RUBY_ECONV_NEWLINE_DECORATOR_MASK} */ +#define ECONV_NEWLINE_DECORATOR_READ_MASK RUBY_ECONV_NEWLINE_DECORATOR_READ_MASK /**< @old{RUBY_ECONV_NEWLINE_DECORATOR_READ_MASK} */ +#define ECONV_NEWLINE_DECORATOR_WRITE_MASK RUBY_ECONV_NEWLINE_DECORATOR_WRITE_MASK /**< @old{RUBY_ECONV_NEWLINE_DECORATOR_WRITE_MASK} */ +#define ECONV_UNIVERSAL_NEWLINE_DECORATOR RUBY_ECONV_UNIVERSAL_NEWLINE_DECORATOR /**< @old{RUBY_ECONV_UNIVERSAL_NEWLINE_DECORATOR} */ +#define ECONV_CRLF_NEWLINE_DECORATOR RUBY_ECONV_CRLF_NEWLINE_DECORATOR /**< @old{RUBY_ECONV_CRLF_NEWLINE_DECORATOR} */ +#define ECONV_CR_NEWLINE_DECORATOR RUBY_ECONV_CR_NEWLINE_DECORATOR /**< @old{RUBY_ECONV_CR_NEWLINE_DECORATOR} */ +#define ECONV_LF_NEWLINE_DECORATOR RUBY_ECONV_LF_NEWLINE_DECORATOR /**< @old{RUBY_ECONV_LF_NEWLINE_DECORATOR} */ +#define ECONV_XML_TEXT_DECORATOR RUBY_ECONV_XML_TEXT_DECORATOR /**< @old{RUBY_ECONV_XML_TEXT_DECORATOR} */ +#define ECONV_XML_ATTR_CONTENT_DECORATOR RUBY_ECONV_XML_ATTR_CONTENT_DECORATOR /**< @old{RUBY_ECONV_XML_ATTR_CONTENT_DECORATOR} */ +#define ECONV_STATEFUL_DECORATOR_MASK RUBY_ECONV_STATEFUL_DECORATOR_MASK /**< @old{RUBY_ECONV_STATEFUL_DECORATOR_MASK} */ +#define ECONV_XML_ATTR_QUOTE_DECORATOR RUBY_ECONV_XML_ATTR_QUOTE_DECORATOR /**< @old{RUBY_ECONV_XML_ATTR_QUOTE_DECORATOR} */ +#define ECONV_DEFAULT_NEWLINE_DECORATOR RUBY_ECONV_DEFAULT_NEWLINE_DECORATOR /**< @old{RUBY_ECONV_DEFAULT_NEWLINE_DECORATOR} */ + /** @} */ + + /** + * @name Flags for rb_econv_convert() + * + * @{ + */ + + /** Indicates the input is a part of much larger one. */ + RUBY_ECONV_PARTIAL_INPUT = 0x00020000, + + /** Instructs the converter to stop after output. */ + RUBY_ECONV_AFTER_OUTPUT = 0x00040000, +#define ECONV_PARTIAL_INPUT RUBY_ECONV_PARTIAL_INPUT /**< @old{RUBY_ECONV_PARTIAL_INPUT} */ +#define ECONV_AFTER_OUTPUT RUBY_ECONV_AFTER_OUTPUT /**< @old{RUBY_ECONV_AFTER_OUTPUT} */ + + RUBY_ECONV_FLAGS_PLACEHOLDER /**< Placeholder (not used) */ +}; + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_INTERNAL_ENCODING_TRANSCODE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/error.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/error.h new file mode 100644 index 0000000..49e2276 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/error.h @@ -0,0 +1,582 @@ +#ifndef RBIMPL_ERROR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ERROR_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Declares ::rb_raise(). + */ +#include "ruby/internal/attr/cold.h" +#include "ruby/internal/attr/format.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +/** + * @defgroup exception Exception handlings + * @{ + */ + +/** + * Warning categories. A warning issued using this API can be selectively + * requested / suppressed by the end-users. For instance passing + * `-W:no-deprecated` to the ruby process would suppress those warnings in + * deprecated category. + * + * @warning There is no way to declare a new category (for now). + */ +typedef enum { + /** Category unspecified. */ + RB_WARN_CATEGORY_NONE, + + /** Warning is for deprecated features. */ + RB_WARN_CATEGORY_DEPRECATED, + + /** Warning is for experimental features. */ + RB_WARN_CATEGORY_EXPERIMENTAL, + + RB_WARN_CATEGORY_ALL_BITS = 0x6 /* no RB_WARN_CATEGORY_NONE bit */ +} rb_warning_category_t; + +/** for rb_readwrite_sys_fail first argument */ +enum rb_io_wait_readwrite {RB_IO_WAIT_READABLE, RB_IO_WAIT_WRITABLE}; +/** @cond INTERNAL_MACRO */ +#define RB_IO_WAIT_READABLE RB_IO_WAIT_READABLE +#define RB_IO_WAIT_WRITABLE RB_IO_WAIT_WRITABLE +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * This is the same as `$!` in Ruby. + * + * @retval RUBY_Qnil Not handling exceptions at the moment. + * @retval otherwise The current exception in the current thread. + * @ingroup exception + */ +VALUE rb_errinfo(void); + +/** + * Sets the current exception (`$!`) to the given value. + * + * @param[in] err An instance of ::rb_eException, or ::RUBY_Qnil. + * @exception rb_eTypeError What is given was neither ::rb_eException nor + * ::RUBY_Qnil. + * @note Use rb_raise() instead to raise `err`. This function just + * assigns the given object to the global variable. + * @ingroup exception + */ +void rb_set_errinfo(VALUE err); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) +/** + * Exception entry point. By calling this function the execution of your + * program gets interrupted to "raise" an exception up to the callee entities. + * Programs could "rescue" that exception, or could "ensure" some part of them. + * If nobody cares about such things, the raised exception reaches at the top + * of execution. This yields abnormal end of the process. + * + * @param[in] exc A subclass of ::rb_eException. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * @exception exc The specified exception. + * @note It never returns. + */ +void rb_raise(VALUE exc, const char *fmt, ...); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((1)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2) +/** + * Raises the unsung "fatal" exception. This is considered severe. Nobody can + * rescue the exception. Once raised, process termination is inevitable. + * However ensure clauses still run, so that resources are properly cleaned up. + * + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * @exception rb_eFatal An exception that you cannot rescue. + * @note It never returns. + */ +void rb_fatal(const char *fmt, ...); + +RBIMPL_ATTR_COLD() +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((1)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2) +/** + * Interpreter panic switch. Immediate process termination without any + * synchronisations shall occur. LOTS of internal states, stack traces, and + * even machine registers are displayed if possible for debugging purposes + * then. + * + * @warning Do not use this API. + * @warning You are not expected to use this API. + * @warning Why not just fix your code instead of calling this API? + * @warning It was a bad idea to expose this API to extension libraries at + * the first place. We just cannot delete it at this point for + * backwards compatibility. That doesn't mean everyone are + * welcomed to call this function at will. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * @note It never returns. + */ +void rb_bug(const char *fmt, ...); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL(()) +/** + * This is a wrapper of rb_bug() which automatically constructs appropriate + * message from the passed errno. + * + * @param[in] msg Additional message to display. + * @exception err C level errno. + * @note It never returns. + */ +void rb_bug_errno(const char *msg, int err); + +RBIMPL_ATTR_NORETURN() +/** + * Converts a C errno into a Ruby exception, then raises it. For instance: + * + * ```CXX + * static VALUE + * foo(VALUE argv) + * { + * const auto cmd = StringValueCStr(argv); + * const auto waitr = system(cmd); + * if (waitr == -1) { + * rb_sys_fail("system(3posix)"); // <-------------- this + * } + * else { + * return INT2FIX(fd); + * } + * } + * ``` + * + * @param[in] msg Additional message to raise. + * @exception rb_eSystemCallError An exception representing errno. + * @note It never returns. + */ +void rb_sys_fail(const char *msg); + +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_sys_fail(), except it takes the message in Ruby's String + * instead of C's. + * + * @param[in] msg Additional message to raise. + * @exception rb_eSystemCallError An exception representing errno. + * @note It never returns. + */ +void rb_sys_fail_str(VALUE msg); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((2)) +/** + * Identical to rb_sys_fail(), except it takes additional module to extend the + * exception object before raising. + * + * @param[in] mod A ::rb_cModule instance. + * @param[in] msg Additional message to raise. + * @exception rb_eSystemCallError An exception representing errno. + * @note It never returns. + * + * @internal + * + * Does anybody use it? + */ +void rb_mod_sys_fail(VALUE mod, const char *msg); + +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_mod_sys_fail(), except it takes the message in Ruby's String + * instead of C's. + * + * @param[in] mod A ::rb_cModule instance. + * @param[in] msg Additional message to raise. + * @exception rb_eSystemCallError An exception representing errno. + * @note It never returns. + */ +void rb_mod_sys_fail_str(VALUE mod, VALUE msg); + +RBIMPL_ATTR_NORETURN() +/** + * Raises appropriate exception using the parameters. + * + * In Ruby level there are rb_eEAGAINWaitReadable etc. This function maps the + * given parameter to an appropriate exception class, then raises it. + * + * @param[in] waiting Reason for the IO to wait. + * @param[in] msg Additional message to raise. + * @exception rb_eEAGAINWaitWritable + * @exception rb_eEWOULDBLOCKWaitWritable + * @exception rb_eEINPROGRESSWaitWritable + * @exception rb_eEAGAINWaitReadable + * @exception rb_eEWOULDBLOCKWaitReadable + * @exception rb_eEINPROGRESSWaitReadable + * @exception rb_eSystemCallError + * @note It never returns. + */ +void rb_readwrite_sys_fail(enum rb_io_wait_readwrite waiting, const char *msg); + +RBIMPL_ATTR_NORETURN() +/** + * Breaks from a block. Because you are using a CAPI this is not as intuitive + * as it sounds. In order for this function to properly work, make a + * ::rb_block_call_func_t function that calls it internally, and pass that + * function to rb_block_call(). + * + * @exception rb_eLocalJumpError Called from outside of a block. + * @note It never returns. + */ +void rb_iter_break(void); + +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_iter_break(), except it additionally takes the "value" of + * this breakage. It will be the evaluation result of the iterator. This is + * kind of complicated; you cannot see this as a "return from a block" + * behaviour. Take a look at this example: + * + * ```ruby + * def foo(q) + * puts(w = yield(q)) + * puts(e = yield(w)) + * puts(r = yield(e)) + * puts(t = yield(r)) + * puts(y = yield(t)) + * return "howdy!" + * end + * + * x = foo(0) {|i| + * if i > 2 + * break "hello!" + * else + * next i + 1 + * end + * } + * + * puts x + * ``` + * + * This script outputs 1, 2, 3, and hello. Note that the value passed to break + * becomes the return value of foo method, not the value of yield. This is + * confusing, but can be handy on occasions e.g. when you want to bring a + * local variable out of a block. + * + * @param[in] val The value of the iterator. + * @exception rb_eLocalJumpError Called from outside of a block. + * @note It never returns. + */ +void rb_iter_break_value(VALUE val); + +RBIMPL_ATTR_NORETURN() +/** + * Terminates the current execution context. This API is the entry point of a + * "well-mannered" termination sequence. When called from an extension + * library, it raises ::rb_eSystemExit exception. Programs could rescue that + * exception. Can cancel process exit then. Otherwise, that exception results + * in a process termination with the status passed to this function. + * + * @param[in] status Exit status, see also exit(3). + * @exception rb_eSystemExit Exception representing the exit status. + * @note It never returns. + * + * @internal + * + * "When called from an extension library"? You might wonder. In fact there + * are chances for this function to be called from outside of it, for instance + * when dlopen(3) failed. In case it is not possible for this function to + * raise an exception, it does not (silently enters to process cleanup). But + * that is a kind of implementation detail which extension library authors + * should not bother. + */ +void rb_exit(int status); + +RBIMPL_ATTR_NORETURN() +/** + * @exception rb_eNotImpError + * @note It never returns. + */ +void rb_notimplement(void); + +/** + * Creates an exception object that represents the given C errno. + * + * @param[in] err C level errno. + * @param[in] msg Additional message. + * @retval rb_eSystemCallError An exception for the errno. + */ +VALUE rb_syserr_new(int err, const char * msg); + +/** + * Identical to rb_syserr_new(), except it takes the message in Ruby's String + * instead of C's. + * + * @param[in] n C level errno. + * @param[in] arg Additional message. + * @retval rb_eSystemCallError An exception for the errno. + */ +VALUE rb_syserr_new_str(int n, VALUE arg); + +RBIMPL_ATTR_NORETURN() +/** + * Raises appropriate exception that represents a C errno. + * + * @param[in] err C level errno. + * @param[in] msg Additional message to raise. + * @exception rb_eSystemCallError An exception representing `err`. + * @note It never returns. + */ +void rb_syserr_fail(int err, const char *msg); + +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_syserr_fail(), except it takes the message in Ruby's String + * instead of C's. + * + * @param[in] err C level errno. + * @param[in] msg Additional message to raise. + * @exception rb_eSystemCallError An exception representing `err`. + * @note It never returns. + */ +void rb_syserr_fail_str(int err, VALUE msg); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_mod_sys_fail(), except it does not depend on C global + * variable errno. Pass it explicitly. + * + * @param[in] mod A ::rb_cModule instance. + * @param[in] err C level errno. + * @param[in] msg Additional message to raise. + * @exception rb_eSystemCallError An exception representing `err`. + * @note It never returns. + */ +void rb_mod_syserr_fail(VALUE mod, int err, const char *msg); + +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_mod_syserr_fail(), except it takes the message in Ruby's + * String instead of C's. + * + * @param[in] mod A ::rb_cModule instance. + * @param[in] err C level errno. + * @param[in] msg Additional message to raise. + * @exception rb_eSystemCallError An exception representing `err`. + * @note It never returns. + */ +void rb_mod_syserr_fail_str(VALUE mod, int err, VALUE msg); + +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_readwrite_sys_fail(), except it does not depend on C global + * variable errno. Pass it explicitly. + * + * @param[in] waiting Reason for the IO to wait. + * @param[in] err C level errno. + * @param[in] msg Additional message to raise. + * @exception rb_eEAGAINWaitWritable + * @exception rb_eEWOULDBLOCKWaitWritable + * @exception rb_eEINPROGRESSWaitWritable + * @exception rb_eEAGAINWaitReadable + * @exception rb_eEWOULDBLOCKWaitReadable + * @exception rb_eEINPROGRESSWaitReadable + * @exception rb_eSystemCallError + * @note It never returns. + */ +void rb_readwrite_syserr_fail(enum rb_io_wait_readwrite waiting, int err, const char *msg); + +RBIMPL_ATTR_COLD() +RBIMPL_ATTR_NORETURN() +/** + * Fails with the given object's type incompatibility to the type. + * + * It seems this function is visible from extension libraries only because + * RTYPEDDATA_TYPE() uses it on RUBY_DEBUG. So you can basically ignore it; + * use some other fine-grained method instead. + * + * @param[in] self The object in question. + * @param[in] t Expected type of the object. + * @exception rb_eTypeError `self` not in type `t`. + * @note It never returns. + * @note The second argument must have been an enum ::ruby_value_type, + * but for historical reasons it remains to be an int (in other + * words we see no benefits fixing this bug). + */ +void rb_unexpected_type(VALUE self, int t); + +/** + * @private + * + * This is an implementation detail of #ruby_verbose. Please don't use it + * directly. + * + * @retval Qnil Interpreter is quiet. + * @retval Qfalse Interpreter is kind of chatty. + * @retval otherwise Interpreter is very verbose. + */ +VALUE *rb_ruby_verbose_ptr(void); + +/** + * @private + * + * This is an implementation detail of #ruby_debug. Please don't use it + * directly. + * + * @retval Qnil Interpreter not in debug mode. + * @retval Qfalse Interpreter not in debug mode. + * @retval otherwise Interpreter is in debug mode. + */ +VALUE *rb_ruby_debug_ptr(void); + +/** + * This variable controls whether the interpreter is in debug mode. Setting + * this to some truthy value is equivalent to passing `-W` flag to the + * interpreter. Setting this to ::Qfalse is equivalent to passing `-W1` flag + * to the interpreter. Setting this to ::Qnil is equivalent to passing `-W0` + * flag to the interpreter. + * + * @retval Qnil Interpreter is quiet. + * @retval Qfalse Interpreter is kind of chatty. + * @retval otherwise Interpreter is very verbose. + */ +#define ruby_verbose (*rb_ruby_verbose_ptr()) + +/** + * This variable controls whether the interpreter is in debug mode. Setting + * this to some truthy value is equivalent to passing `-d` flag to the + * interpreter. + * + * @retval Qnil Interpreter not in debug mode. + * @retval Qfalse Interpreter not in debug mode. + * @retval otherwise Interpreter is in debug mode. + */ +#define ruby_debug (*rb_ruby_debug_ptr()) + +/* reports if `-W' specified */ +RBIMPL_ATTR_NONNULL((1)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2) +/** + * Issues a warning. + * + * In ruby, warnings these days are tightly coupled with the rb_mWarning + * constant and its `warn` singleton method. This CAPI is just a thin wrapper + * of it; everything passed are formatted like what rb_sprintf() does, then + * passed through to the method. Programs can have their own `def + * Warning.warn` at will to do whatever they want, from ignoring the warnings + * at all to sinking them to some BigQuery data set via a Fluentd cluster. By + * default, the method just emits its passed contents to ::rb_stderr using + * rb_io_write(). + * + * @note This function is affected by the `-W` flag. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +void rb_warning(const char *fmt, ...); + +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) +/** + * Identical to rb_warning(), except it takes additional "category" parameter. + * + * @param[in] cat Name of a known category. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + */ +void rb_category_warning(rb_warning_category_t cat, const char *fmt, ...); + +RBIMPL_ATTR_NONNULL((1, 3)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 4) +/** + * Issues a compile-time warning that happens at `__file__:__line__`. Purpose + * of this function being exposed to CAPI is unclear. + * + * @note This function is affected by the `-W` flag. + * @param[in] file The path corresponding to Ruby level `__FILE__`. + * @param[in] line The number corresponding to Ruby level `__LINE__`. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + */ +void rb_compile_warning(const char *file, int line, const char *fmt, ...); + +RBIMPL_ATTR_NONNULL((1)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2) +/** + * Identical to rb_sys_fail(), except it does not raise an exception to render + * a warning instead. + * + * @note This function is affected by the `-W` flag. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + */ +void rb_sys_warning(const char *fmt, ...); + +/* reports always */ +RBIMPL_ATTR_COLD() +RBIMPL_ATTR_NONNULL((1)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2) +/** + * Identical to rb_warning(), except it reports always regardless of runtime + * `-W` flag. + * + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + */ +void rb_warn(const char *fmt, ...); + +RBIMPL_ATTR_COLD() +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) +/** + * Identical to rb_category_warning(), except it reports always regardless of + * runtime `-W` flag. + * + * @param[in] cat Category e.g. deprecated. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + */ +void rb_category_warn(rb_warning_category_t cat, const char *fmt, ...); + +RBIMPL_ATTR_NONNULL((1, 3)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 4) +/** + * Identical to rb_compile_warning(), except it reports always regardless of + * runtime `-W` flag. + * + * @param[in] file The path corresponding to Ruby level `__FILE__`. + * @param[in] line The number corresponding to Ruby level `__LINE__`. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + */ +void rb_compile_warn(const char *file, int line, const char *fmt, ...); + +RBIMPL_ATTR_NONNULL((2, 4)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 4, 5) +/** + * Identical to rb_compile_warn(), except it also accepts category. + * + * @param[in] cat Category e.g. deprecated. + * @param[in] file The path corresponding to Ruby level `__FILE__`. + * @param[in] line The number corresponding to Ruby level `__LINE__`. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + */ +void rb_category_compile_warn(rb_warning_category_t cat, const char *file, int line, const char *fmt, ...); + +/** @} */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_ERROR_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/eval.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/eval.h new file mode 100644 index 0000000..5bcbb97 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/eval.h @@ -0,0 +1,400 @@ +#ifndef RBIMPL_EVAL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_EVAL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Declares ::rb_eval_string(). + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +RBIMPL_ATTR_NONNULL(()) +/** + * Evaluates the given string. + * + * In case it is called from within a C-backended method, the evaluation is + * done under the current binding. However there can be no method. On such + * situation this function evaluates in an isolated binding, like `require` + * runs in a separate one. + * + * `__FILE__` will be `"(eval)"`, and `__LINE__` starts from 1 in the + * evaluation. + * + * @param[in] str Ruby code to evaluate. + * @exception rb_eException Raises an exception on error. + * @return The evaluated result. + * + * @internal + * + * @shyouhei's old tale about the birth and growth of this function: + * + * At the beginning, there was no rb_eval_string(). @shyouhei heard that + * @shugo, author of Apache httpd's mod_ruby module, requested @matz for this + * API. He wanted a way so that mod_ruby can evaluate ruby scripts one by one, + * separately, in each different contexts. So this function was made. It was + * designed to be a global interpreter entry point like ruby_run_node(). + * + * The way it is implemented however allows extension libraries (not just + * programs like Apache httpd) to call this function. Because its name says + * nothing about the initial design, people started to think of it as an + * orthodox way to call ruby level `eval` method from their extension + * libraries. Even our `extension.rdoc` has had a description of this function + * basically according to this understanding. + * + * The old (mod_ruby like) usage still works. But over time, usages of this + * function from extension libraries got popular, while mod_ruby faded out; is + * no longer maintained now. Devs decided to actively support both. This + * function now auto-detects how it is called, and switches how it works + * depending on it. + * + * @see https://bugs.ruby-lang.org/issues/18780 + */ +VALUE rb_eval_string(const char *str); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Identical to rb_eval_string(), except it avoids potential global escapes. + * Such global escapes include exceptions, `throw`, `break`, for example. + * + * It first evaluates the given string as rb_eval_string() does. If no global + * escape occurred during the evaluation, it returns the result and `*state` is + * zero. Otherwise, it returns some undefined value and sets `*state` to + * nonzero. If state is `NULL`, it is not set in both cases. + * + * @param[in] str Ruby code to evaluate. + * @param[out] state State of execution. + * @return The evaluated result if succeeded, an undefined value if + * otherwise. + * @post `*state` is set to zero if succeeded. Nonzero otherwise. + * @warning You have to clear the error info with `rb_set_errinfo(Qnil)` if + * you decide to ignore the caught exception. + * @see rb_eval_string + * @see rb_protect + * + * @internal + * + * The "undefined value" described above is in fact ::RUBY_Qnil for now. But + * @shyouhei doesn't think that we would never change that. + * + * Though not a part of our public API, `state` is in fact an + * enum ruby_tag_type. You can see the potential "nonzero" values by looking + * at vm_core.h. + */ +VALUE rb_eval_string_protect(const char *str, int *state); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Identical to rb_eval_string_protect(), except it evaluates the given string + * under a module binding in an isolated binding. This is the same as a + * binding for loaded libraries on `rb_load(something, true)`. + * + * @param[in] str Ruby code to evaluate. + * @param[out] state State of execution. + * @return The evaluated result if succeeded, an undefined value if + * otherwise. + * @post `*state` is set to zero if succeeded. Nonzero otherwise. + * @warning You have to clear the error info with `rb_set_errinfo(Qnil)` if + * you decide to ignore the caught exception. + * @see rb_eval_string + */ +VALUE rb_eval_string_wrap(const char *str, int *state); + +/** + * Calls a method. Can call both public and private methods. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] n Number of arguments that follow. + * @param[in] ... Arbitrary number of method arguments. + * @exception rb_eNoMethodError No such method. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + */ +VALUE rb_funcall(VALUE recv, ID mid, int n, ...); + +/** + * Identical to rb_funcall(), except it takes the method arguments as a C + * array. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @exception rb_eNoMethodError No such method. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + */ +VALUE rb_funcallv(VALUE recv, ID mid, int argc, const VALUE *argv); + +/** + * Identical to rb_funcallv(), except you can specify how to handle the last + * element of the given array. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eNoMethodError No such method. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + */ +VALUE rb_funcallv_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat); + +/** + * Identical to rb_funcallv(), except it only takes public methods into + * account. This is roughly Ruby's `Object#public_send`. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @exception rb_eNoMethodError No such method. + * @exception rb_eNoMethodError The method is private or protected. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + */ +VALUE rb_funcallv_public(VALUE recv, ID mid, int argc, const VALUE *argv); + +/** + * Identical to rb_funcallv_public(), except you can specify how to handle the + * last element of the given array. It can also be seen as a routine identical + * to rb_funcallv_kw(), except it only takes public methods into account. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eNoMethodError No such method. + * @exception rb_eNoMethodError The method is private or protected. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + */ +VALUE rb_funcallv_public_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat); + +/** + * @deprecated This is an old name of rb_funcallv(). Provided here for + * backwards compatibility to 2.x programs (introduced in 2.1). + * It is not a good name. Please don't use it any longer. + */ +#define rb_funcall2 rb_funcallv + +/** + * @deprecated This is an old name of rb_funcallv_public(). Provided here + * for backwards compatibility to 2.x programs (introduced in + * 2.1). It is not a good name. Please don't use it any longer. + */ +#define rb_funcall3 rb_funcallv_public + +/** + * Identical to rb_funcallv_public(), except you can pass the passed block. + * + * Sometimes you want to "pass" a block parameter form one method to another. + * Suppose you have this Ruby method `foo`: + * + * ```ruby + * def foo(x, y, &z) + * x.open(y, &z) + * end + * ``` + * + * And suppose you want to translate this into C. Then + * rb_funcall_passing_block() function is usable in this situation. + * + * ```CXX + * VALUE + * foo_translated_into_C(VALUE self, VALUE x, VALUE y) + * { + * const auto open = rb_intern("open"); + * + * return rb_funcall_passing_block(x, open, 1, &y); + * } + * ``` + * + * @see rb_yield_block + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @exception rb_eNoMethodError No such method. + * @exception rb_eNoMethodError The method is private or protected. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + */ +VALUE rb_funcall_passing_block(VALUE recv, ID mid, int argc, const VALUE *argv); + +/** + * Identical to rb_funcallv_passing_block(), except you can specify how to + * handle the last element of the given array. It can also be seen as a + * routine identical to rb_funcallv_public_kw(), except you can pass the passed + * block. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eNoMethodError No such method. + * @exception rb_eNoMethodError The method is private or protected. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + */ +VALUE rb_funcall_passing_block_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat); + +/** + * Identical to rb_funcallv_public(), except you can pass a block. A block + * here basically is an instance of ::rb_cProc. If you want to exercise + * `to_proc` conversion, do so before passing it here. However nil and symbols + * are special-case allowed. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] procval An instance of Proc, Symbol, or NilClass. + * @exception rb_eNoMethodError No such method. + * @exception rb_eNoMethodError The method is private or protected. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + * + * @internal + * + * Implementation-wise, `procval` is in fact a "block handler" object. You + * could also pass an IFUNC (block_handler_ifunc) here to say precise. --- But + * AFAIK there is no 3rd party way to even know that there are objects called + * IFUNC behind-the-scene. + */ +VALUE rb_funcall_with_block(VALUE recv, ID mid, int argc, const VALUE *argv, VALUE procval); + +/** + * Identical to rb_funcallv_with_block(), except you can specify how to handle + * the last element of the given array. It can also be seen as a routine + * identical to rb_funcallv_public_kw(), except you can pass a block. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] procval An instance of Proc, Symbol, or NilClass. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eNoMethodError No such method. + * @exception rb_eNoMethodError The method is private or protected. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + */ +VALUE rb_funcall_with_block_kw(VALUE recv, ID mid, int argc, const VALUE *argv, VALUE procval, int kw_splat); + +/** + * This resembles ruby's `super`. + * + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @exception rb_eNoMethodError No super method are there. + * @exception rb_eException Any exceptions happen inside. + * @return What the super method evaluates to. + */ +VALUE rb_call_super(int argc, const VALUE *argv); + +/** + * Identical to rb_call_super(), except you can specify how to handle the last + * element of the given array. + * + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eNoMethodError No super method are there. + * @exception rb_eException Any exceptions happen inside. + * @return What the super method evaluates to. + */ +VALUE rb_call_super_kw(int argc, const VALUE *argv, int kw_splat); + +/** + * This resembles ruby's `self`. + * + * @exception rb_eRuntimeError Called from outside of method context. + * @return Current receiver. + */ +VALUE rb_current_receiver(void); + +RBIMPL_ATTR_NONNULL((2)) +/** + * Keyword argument deconstructor. + * + * Retrieves argument values bound to keywords, which directed by `table` into + * `values`, deleting retrieved entries from `keyword_hash` along the way. + * First `required` number of IDs referred by `table` are mandatory, and + * succeeding `optional` (`-optional-1` if `optional` is negative) number of + * IDs are optional. If a mandatory key is not contained in `keyword_hash`, + * raises ::rb_eArgError. If an optional key is not present in `keyword_hash`, + * the corresponding element in `values` is set to ::RUBY_Qundef. If + * `optional` is negative, rest of `keyword_hash` are ignored, otherwise raises + * ::rb_eArgError. + * + * @warning Handling keyword arguments in the C API is less efficient than + * handling them in Ruby. Consider using a Ruby wrapper method + * around a non-keyword C function. + * @see https://bugs.ruby-lang.org/issues/11339 + * @param[out] keyword_hash Target hash to deconstruct. + * @param[in] table List of keywords that you are interested in. + * @param[in] required Number of mandatory keywords. + * @param[in] optional Number of optional keywords (can be negative). + * @param[out] values Buffer to be filled. + * @exception rb_eArgError Absence of a mandatory keyword. + * @exception rb_eArgError Found an unknown keyword. + * @return Number of found values that are stored into `values`. + */ +int rb_get_kwargs(VALUE keyword_hash, const ID *table, int required, int optional, VALUE *values); + +RBIMPL_ATTR_NONNULL(()) +/** + * Splits a hash into two. + * + * Takes a hash of various keys, and split it into symbol-keyed parts and + * others. Symbol-keyed part becomes the return value. What remains are + * returned as a new hash object stored at the argument pointer. + * + * @param[in,out] orighash Pointer to a target hash to split. + * @return An extracted keyword hash. + * @post Upon successful return `orighash` points to another hash + * object, whose contents are the remainder of the operation. + * @note The argument hash object is not modified. + */ +VALUE rb_extract_keywords(VALUE *orighash); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_EVAL_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/event.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/event.h new file mode 100644 index 0000000..04b137a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/event.h @@ -0,0 +1,154 @@ +#ifndef RBIMPL_EVENT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_EVENT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Debugging and tracing APIs. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +/* These macros are not enums because they are wider than int.*/ + +/** + * @name Traditional set_trace_func events + * + * @{ + */ +#define RUBY_EVENT_NONE 0x0000 /**< No events. */ +#define RUBY_EVENT_LINE 0x0001 /**< Encountered a new line. */ +#define RUBY_EVENT_CLASS 0x0002 /**< Encountered a new class. */ +#define RUBY_EVENT_END 0x0004 /**< Encountered an end of a class clause. */ +#define RUBY_EVENT_CALL 0x0008 /**< A method, written in Ruby, is called. */ +#define RUBY_EVENT_RETURN 0x0010 /**< Encountered a `return` statement. */ +#define RUBY_EVENT_C_CALL 0x0020 /**< A method, written in C, is called. */ +#define RUBY_EVENT_C_RETURN 0x0040 /**< Return from a method, written in C. */ +#define RUBY_EVENT_RAISE 0x0080 /**< Encountered a `raise` statement. */ +#define RUBY_EVENT_ALL 0x00ff /**< Bitmask of traditional events. */ + +/** @} */ + +/** + * @name TracePoint extended events + * + * @{ + */ +#define RUBY_EVENT_B_CALL 0x0100 /**< Encountered an `yield` statement. */ +#define RUBY_EVENT_B_RETURN 0x0200 /**< Encountered a `next` statement. */ +#define RUBY_EVENT_THREAD_BEGIN 0x0400 /**< Encountered a new thread. */ +#define RUBY_EVENT_THREAD_END 0x0800 /**< Encountered an end of a thread. */ +#define RUBY_EVENT_FIBER_SWITCH 0x1000 /**< Encountered a `Fiber#yield`. */ +#define RUBY_EVENT_SCRIPT_COMPILED 0x2000 /**< Encountered an `eval`. */ +#define RUBY_EVENT_TRACEPOINT_ALL 0xffff /**< Bitmask of extended events. */ + +/** @} */ + +/** + * @name Special events + * + * @internal + * + * These bits are actually used internally. See vm_core.h if you are curious. + * + * @endinternal + * + * @{ + */ +#define RUBY_EVENT_RESERVED_FOR_INTERNAL_USE 0x030000 /**< Opaque bits. */ + +/** @} */ + +/** + * @name Internal events + * + * @shyouhei's understanding is that some of them are visible from extension + * libraries because of `ext/objspace`. But it seems that doesn't describe + * everything? The ultimate reason why they are here remains unclear. + * + * @{ + */ +#define RUBY_INTERNAL_EVENT_SWITCH 0x040000 /**< Thread switched. */ +#define RUBY_EVENT_SWITCH 0x040000 /**< @old{RUBY_INTERNAL_EVENT_SWITCH} */ + /* 0x080000 */ +#define RUBY_INTERNAL_EVENT_NEWOBJ 0x100000 /**< Object allocated. */ +#define RUBY_INTERNAL_EVENT_FREEOBJ 0x200000 /**< Object swept. */ +#define RUBY_INTERNAL_EVENT_GC_START 0x400000 /**< GC started. */ +#define RUBY_INTERNAL_EVENT_GC_END_MARK 0x800000 /**< GC ended mark phase. */ +#define RUBY_INTERNAL_EVENT_GC_END_SWEEP 0x1000000 /**< GC ended sweep phase. */ +#define RUBY_INTERNAL_EVENT_GC_ENTER 0x2000000 /**< `gc_enter()` is called. */ +#define RUBY_INTERNAL_EVENT_GC_EXIT 0x4000000 /**< `gc_exit()` is called. */ +#define RUBY_INTERNAL_EVENT_OBJSPACE_MASK 0x7f00000 /**< Bitmask of GC events. */ +#define RUBY_INTERNAL_EVENT_MASK 0xffff0000 /**< Bitmask of internal events. */ + +/** @} */ + +/** + * Represents event(s). As the name implies events are bit flags. + */ +typedef uint32_t rb_event_flag_t; + +/** + * Type of event hooks. When an event happens registered functions are kicked + * with appropriate parameters. + * + * @param[in] evflag The kind of event that happened. + * @param[in] data The `data` passed to rb_add_event_hook(). + * @param[in] self Current receiver. + * @param[in] mid Name of the current method. + * @param[in] klass Current class. + */ +typedef void (*rb_event_hook_func_t)(rb_event_flag_t evflag, VALUE data, VALUE self, ID mid, VALUE klass); + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define RB_EVENT_HOOKS_HAVE_CALLBACK_DATA 1 + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Registers an event hook function. + * + * @param[in] func A callback. + * @param[in] events A set of events that `func` should run. + * @param[in] data Passed as-is to `func`. + */ +void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data); + +/** + * Removes the passed function from the list of event hooks. + * + * @param[in] func A callback. + * @return Number of deleted event hooks. + * @note As multiple events can share the same `func` it is quite + * possible for the return value to become more than one. + * + * @internal + * + * @shyouhei doesn't know if this is an Easter egg or an official feature, but + * you can pass 0 to the argument. That effectively swipes everything out from + * the hook list. + */ +int rb_remove_event_hook(rb_event_hook_func_t func); +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_EVENT_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/fl_type.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/fl_type.h new file mode 100644 index 0000000..7383426 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/fl_type.h @@ -0,0 +1,948 @@ +#ifndef RBIMPL_FL_TYPE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_FL_TYPE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines enum ::ruby_fl_type. + */ +#include "ruby/internal/config.h" /* for ENUM_OVER_INT */ +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/attr/flag_enum.h" +#include "ruby/internal/attr/forceinline.h" +#include "ruby/internal/attr/noalias.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/compiler_since.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/has/extension.h" +#include "ruby/internal/special_consts.h" +#include "ruby/internal/stdbool.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" +#include "ruby/assert.h" +#include "ruby/defines.h" + +/** @cond INTERNAL_MACRO */ +#if RBIMPL_HAS_EXTENSION(enumerator_attributes) +# define RBIMPL_HAVE_ENUM_ATTRIBUTE 1 +#elif RBIMPL_COMPILER_SINCE(GCC, 6, 0, 0) +# define RBIMPL_HAVE_ENUM_ATTRIBUTE 1 +#endif + +#ifdef ENUM_OVER_INT +# define RBIMPL_WIDER_ENUM 1 +#elif SIZEOF_INT * CHAR_BIT > 12+19+1 +# define RBIMPL_WIDER_ENUM 1 +#else +# define RBIMPL_WIDER_ENUM 0 +#endif +/** @endcond */ + +#define FL_SINGLETON RBIMPL_CAST((VALUE)RUBY_FL_SINGLETON) /**< @old{RUBY_FL_SINGLETON} */ +#define FL_WB_PROTECTED RBIMPL_CAST((VALUE)RUBY_FL_WB_PROTECTED) /**< @old{RUBY_FL_WB_PROTECTED} */ +#define FL_PROMOTED0 RBIMPL_CAST((VALUE)RUBY_FL_PROMOTED0) /**< @old{RUBY_FL_PROMOTED0} */ +#define FL_PROMOTED1 RBIMPL_CAST((VALUE)RUBY_FL_PROMOTED1) /**< @old{RUBY_FL_PROMOTED1} */ +#define FL_FINALIZE RBIMPL_CAST((VALUE)RUBY_FL_FINALIZE) /**< @old{RUBY_FL_FINALIZE} */ +#define FL_TAINT RBIMPL_CAST((VALUE)RUBY_FL_TAINT) /**< @old{RUBY_FL_TAINT} */ +#define FL_SHAREABLE RBIMPL_CAST((VALUE)RUBY_FL_SHAREABLE) /**< @old{RUBY_FL_SHAREABLE} */ +#define FL_UNTRUSTED RBIMPL_CAST((VALUE)RUBY_FL_UNTRUSTED) /**< @old{RUBY_FL_UNTRUSTED} */ +#define FL_SEEN_OBJ_ID RBIMPL_CAST((VALUE)RUBY_FL_SEEN_OBJ_ID) /**< @old{RUBY_FL_SEEN_OBJ_ID} */ +#define FL_EXIVAR RBIMPL_CAST((VALUE)RUBY_FL_EXIVAR) /**< @old{RUBY_FL_EXIVAR} */ +#define FL_FREEZE RBIMPL_CAST((VALUE)RUBY_FL_FREEZE) /**< @old{RUBY_FL_FREEZE} */ + +#define FL_USHIFT RBIMPL_CAST((VALUE)RUBY_FL_USHIFT) /**< @old{RUBY_FL_USHIFT} */ + +#define FL_USER0 RBIMPL_CAST((VALUE)RUBY_FL_USER0) /**< @old{RUBY_FL_USER0} */ +#define FL_USER1 RBIMPL_CAST((VALUE)RUBY_FL_USER1) /**< @old{RUBY_FL_USER1} */ +#define FL_USER2 RBIMPL_CAST((VALUE)RUBY_FL_USER2) /**< @old{RUBY_FL_USER2} */ +#define FL_USER3 RBIMPL_CAST((VALUE)RUBY_FL_USER3) /**< @old{RUBY_FL_USER3} */ +#define FL_USER4 RBIMPL_CAST((VALUE)RUBY_FL_USER4) /**< @old{RUBY_FL_USER4} */ +#define FL_USER5 RBIMPL_CAST((VALUE)RUBY_FL_USER5) /**< @old{RUBY_FL_USER5} */ +#define FL_USER6 RBIMPL_CAST((VALUE)RUBY_FL_USER6) /**< @old{RUBY_FL_USER6} */ +#define FL_USER7 RBIMPL_CAST((VALUE)RUBY_FL_USER7) /**< @old{RUBY_FL_USER7} */ +#define FL_USER8 RBIMPL_CAST((VALUE)RUBY_FL_USER8) /**< @old{RUBY_FL_USER8} */ +#define FL_USER9 RBIMPL_CAST((VALUE)RUBY_FL_USER9) /**< @old{RUBY_FL_USER9} */ +#define FL_USER10 RBIMPL_CAST((VALUE)RUBY_FL_USER10) /**< @old{RUBY_FL_USER10} */ +#define FL_USER11 RBIMPL_CAST((VALUE)RUBY_FL_USER11) /**< @old{RUBY_FL_USER11} */ +#define FL_USER12 RBIMPL_CAST((VALUE)RUBY_FL_USER12) /**< @old{RUBY_FL_USER12} */ +#define FL_USER13 RBIMPL_CAST((VALUE)RUBY_FL_USER13) /**< @old{RUBY_FL_USER13} */ +#define FL_USER14 RBIMPL_CAST((VALUE)RUBY_FL_USER14) /**< @old{RUBY_FL_USER14} */ +#define FL_USER15 RBIMPL_CAST((VALUE)RUBY_FL_USER15) /**< @old{RUBY_FL_USER15} */ +#define FL_USER16 RBIMPL_CAST((VALUE)RUBY_FL_USER16) /**< @old{RUBY_FL_USER16} */ +#define FL_USER17 RBIMPL_CAST((VALUE)RUBY_FL_USER17) /**< @old{RUBY_FL_USER17} */ +#define FL_USER18 RBIMPL_CAST((VALUE)RUBY_FL_USER18) /**< @old{RUBY_FL_USER18} */ +#define FL_USER19 RBIMPL_CAST((VALUE)(unsigned int)RUBY_FL_USER19) /**< @old{RUBY_FL_USER19} */ + +#define ELTS_SHARED RUBY_ELTS_SHARED /**< @old{RUBY_ELTS_SHARED} */ +#define RB_OBJ_FREEZE rb_obj_freeze_inline /**< @alias{rb_obj_freeze_inline} */ + +/** @cond INTERNAL_MACRO */ +#define RUBY_ELTS_SHARED RUBY_ELTS_SHARED +#define RB_FL_ABLE RB_FL_ABLE +#define RB_FL_ALL RB_FL_ALL +#define RB_FL_ALL_RAW RB_FL_ALL_RAW +#define RB_FL_ANY RB_FL_ANY +#define RB_FL_ANY_RAW RB_FL_ANY_RAW +#define RB_FL_REVERSE RB_FL_REVERSE +#define RB_FL_REVERSE_RAW RB_FL_REVERSE_RAW +#define RB_FL_SET RB_FL_SET +#define RB_FL_SET_RAW RB_FL_SET_RAW +#define RB_FL_TEST RB_FL_TEST +#define RB_FL_TEST_RAW RB_FL_TEST_RAW +#define RB_FL_UNSET RB_FL_UNSET +#define RB_FL_UNSET_RAW RB_FL_UNSET_RAW +#define RB_OBJ_FREEZE_RAW RB_OBJ_FREEZE_RAW +#define RB_OBJ_FROZEN RB_OBJ_FROZEN +#define RB_OBJ_FROZEN_RAW RB_OBJ_FROZEN_RAW +#define RB_OBJ_INFECT RB_OBJ_INFECT +#define RB_OBJ_INFECT_RAW RB_OBJ_INFECT_RAW +#define RB_OBJ_TAINT RB_OBJ_TAINT +#define RB_OBJ_TAINTABLE RB_OBJ_TAINTABLE +#define RB_OBJ_TAINTED RB_OBJ_TAINTED +#define RB_OBJ_TAINTED_RAW RB_OBJ_TAINTED_RAW +#define RB_OBJ_TAINT_RAW RB_OBJ_TAINT_RAW +#define RB_OBJ_UNTRUST RB_OBJ_TAINT +#define RB_OBJ_UNTRUSTED RB_OBJ_TAINTED +/** @endcond */ + +/** + * @defgroup deprecated_macros Deprecated macro APIs + * @{ + * These macros are deprecated. Prefer their `RB_`-prefixed versions. + */ +#define FL_ABLE RB_FL_ABLE /**< @old{RB_FL_ABLE} */ +#define FL_ALL RB_FL_ALL /**< @old{RB_FL_ALL} */ +#define FL_ALL_RAW RB_FL_ALL_RAW /**< @old{RB_FL_ALL_RAW} */ +#define FL_ANY RB_FL_ANY /**< @old{RB_FL_ANY} */ +#define FL_ANY_RAW RB_FL_ANY_RAW /**< @old{RB_FL_ANY_RAW} */ +#define FL_REVERSE RB_FL_REVERSE /**< @old{RB_FL_REVERSE} */ +#define FL_REVERSE_RAW RB_FL_REVERSE_RAW /**< @old{RB_FL_REVERSE_RAW} */ +#define FL_SET RB_FL_SET /**< @old{RB_FL_SET} */ +#define FL_SET_RAW RB_FL_SET_RAW /**< @old{RB_FL_SET_RAW} */ +#define FL_TEST RB_FL_TEST /**< @old{RB_FL_TEST} */ +#define FL_TEST_RAW RB_FL_TEST_RAW /**< @old{RB_FL_TEST_RAW} */ +#define FL_UNSET RB_FL_UNSET /**< @old{RB_FL_UNSET} */ +#define FL_UNSET_RAW RB_FL_UNSET_RAW /**< @old{RB_FL_UNSET_RAW} */ +#define OBJ_FREEZE RB_OBJ_FREEZE /**< @old{RB_OBJ_FREEZE} */ +#define OBJ_FREEZE_RAW RB_OBJ_FREEZE_RAW /**< @old{RB_OBJ_FREEZE_RAW} */ +#define OBJ_FROZEN RB_OBJ_FROZEN /**< @old{RB_OBJ_FROZEN} */ +#define OBJ_FROZEN_RAW RB_OBJ_FROZEN_RAW /**< @old{RB_OBJ_FROZEN_RAW} */ +#define OBJ_INFECT RB_OBJ_INFECT /**< @old{RB_OBJ_INFECT} */ +#define OBJ_INFECT_RAW RB_OBJ_INFECT_RAW /**< @old{RB_OBJ_INFECT_RAW} */ +#define OBJ_TAINT RB_OBJ_TAINT /**< @old{RB_OBJ_TAINT} */ +#define OBJ_TAINTABLE RB_OBJ_TAINTABLE /**< @old{RB_OBJ_TAINT_RAW} */ +#define OBJ_TAINTED RB_OBJ_TAINTED /**< @old{RB_OBJ_TAINTED} */ +#define OBJ_TAINTED_RAW RB_OBJ_TAINTED_RAW /**< @old{RB_OBJ_TAINTED_RAW} */ +#define OBJ_TAINT_RAW RB_OBJ_TAINT_RAW /**< @old{RB_OBJ_TAINT_RAW} */ +#define OBJ_UNTRUST RB_OBJ_UNTRUST /**< @old{RB_OBJ_TAINT} */ +#define OBJ_UNTRUSTED RB_OBJ_UNTRUSTED /**< @old{RB_OBJ_TAINTED} */ +/** @} */ + +/** + * This is an enum because GDB wants it (rather than a macro). People need not + * bother. + */ +enum ruby_fl_ushift { + /** + * Number of bits in ::ruby_fl_type that are _not_ open to users. This is + * an implementation detail. Please ignore. + */ + RUBY_FL_USHIFT = 12 +}; + +/* > The expression that defines the value of an enumeration constant shall be + * > an integer constant expression that has a value representable as an `int`. + * + * -- ISO/IEC 9899:2018 section 6.7.2.2 + * + * So ENUM_OVER_INT situation is an extension to the standard. Note however + * that we do not support 16 bit `int` environment. */ +RB_GNUC_EXTENSION +/** + * The flags. Each ruby objects have their own characteristics apart from + * their classes. For instance whether an object is frozen or not is not + * controlled by its class. This is the type that represents such properties. + * + * @note About the `FL_USER` terminology: the "user" here does not necessarily + * mean only you. For instance struct ::RString instances use these + * bits to cache their encodings etc. Devs discussed about this topic, + * reached their consensus that ::RUBY_T_DATA is the only valid data + * structure that can use these bits; other data structures including + * ::RUBY_T_OBJECT use these bits for their own purpose. See also + * https://bugs.ruby-lang.org/issues/18059 + */ +enum +RBIMPL_ATTR_FLAG_ENUM() +ruby_fl_type { + + /** + * @deprecated This flag once was a thing back in the old days, but makes + * no sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + * + * @internal + * + * The reality is our GC no longer remembers write barriers inside of each + * objects, to use dedicated bitmap instead. But this flag is still used + * internally. The current usages of this flag should be something + * different, which is unclear to @shyouhei. + */ + RUBY_FL_WB_PROTECTED = (1<<5), + + /** + * This flag has something to do with our garbage collector. These days + * ruby objects are "generational". There are those who are young and + * those who are old. Young objects are prone to die; monitored relatively + * extensively by the garbage collector. OTOH old objects tend to live + * longer. They are relatively rarely considered. This flag is set when a + * object experienced promotion i.e. survived a garbage collection. + * + * @internal + * + * But honestly, @shyouhei doesn't think this flag should be visible from + * 3rd parties. It must be an implementation detail that they should never + * know. Might better be hidden. + */ + RUBY_FL_PROMOTED0 = (1<<5), + + /** + * This flag has something to do with our garbage collector. These days + * ruby objects are "generational". There are those who are young and + * those who are old. Young objects are prone to die; monitored relatively + * extensively by the garbage collector. OTOH old objects tend to live + * longer. They are relatively rarely considered. This flag is set when a + * object experienced two promotions i.e. survived garbage collections + * twice. + * + * @internal + * + * But honestly, @shyouhei doesn't think this flag should be visible from + * 3rd parties. It must be an implementation detail that they should never + * know. Might better be hidden. + */ + RUBY_FL_PROMOTED1 = (1<<6), + + /** + * This flag has something to do with our garbage collector. These days + * ruby objects are "generational". There are those who are young and + * those who are old. Young objects are prone to die; monitored relatively + * extensively by the garbage collector. OTOH old objects tend to live + * longer. They are relatively rarely considered. This flag is set when a + * object experienced promotions i.e. survived more than one garbage + * collections. + * + * @internal + * + * But honestly, @shyouhei doesn't think this flag should be visible from + * 3rd parties. It must be an implementation detail that they should never + * know. Might better be hidden. + */ + RUBY_FL_PROMOTED = RUBY_FL_PROMOTED0 | RUBY_FL_PROMOTED1, + + /** + * This flag has something to do with finalisers. A ruby object can have + * its finaliser, which is another object that evaluates when the target + * object is about to die. This flag is used to denote that there is an + * attached finaliser. + * + * @internal + * + * But honestly, @shyouhei doesn't think this flag should be visible from + * 3rd parties. It must be an implementation detail that they should never + * know. Might better be hidden. + */ + RUBY_FL_FINALIZE = (1<<7), + + /** + * @deprecated This flag once was a thing back in the old days, but makes + * no sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + */ + RUBY_FL_TAINT + +#if defined(RBIMPL_HAVE_ENUM_ATTRIBUTE) + RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea.")) +#elif defined(_MSC_VER) +# pragma deprecated(RUBY_FL_TAINT) +#endif + + = (1<<8), + + /** + * This flag has something to do with Ractor. Multiple Ractors run without + * protecting each other. Sharing an object among Ractors are basically + * dangerous, disabled by default. This flag is used to bypass that + * restriction. Of course, you have to manually prevent race conditions + * then. + * + * This flag needs deep understanding of multithreaded programming. You + * would better not use it. + */ + RUBY_FL_SHAREABLE = (1<<8), + + /** + * @deprecated This flag once was a thing back in the old days, but makes + * no sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + */ + RUBY_FL_UNTRUSTED + +#if defined(RBIMPL_HAVE_ENUM_ATTRIBUTE) + RBIMPL_ATTR_DEPRECATED(("trustedness turned out to be a wrong idea.")) +#elif defined(_MSC_VER) +# pragma deprecated(RUBY_FL_UNTRUSTED) +#endif + + = (1<<8), + + /** + * This flag has something to do with object IDs. Unlike in the old days, + * an object's object ID (that a user can query using `Object#object_id`) + * is no longer its physical address represented using Ruby level integers. + * It is now a monotonic-increasing integer unrelated to the underlying + * memory arrangement. Object IDs are assigned when necessary; objects are + * born without one, and will eventually have such property when queried. + * The interpreter has to manage which one is which. This is the flag that + * helps the management. Objects with this flag set are the ones with + * object IDs assigned. + * + * @internal + * + * But honestly, @shyouhei doesn't think this flag should be visible from + * 3rd parties. It must be an implementation detail that they should never + * know. Might better be hidden. + */ + RUBY_FL_SEEN_OBJ_ID = (1<<9), + + /** + * This flag has something to do with instance variables. 3rd parties need + * not know, but there are several ways to store an object's instance + * variables. Objects with this flag use so-called "generic" backend + * storage. This distinction is purely an implementation detail. People + * need not be aware of this working behind-the-scene. + * + * @internal + * + * As of writing everything except ::RObject and RModule use this scheme. + */ + RUBY_FL_EXIVAR = (1<<10), + + /** + * This flag has something to do with data immutability. When this flag is + * set an object is considered "frozen". No modification are expected to + * happen beyond that point for the particular object. Immutability is + * basically considered to be a good property these days. Library authors + * are expected to obey. Test this bit before you touch a data structure. + * + * @see rb_check_frozen() + */ + RUBY_FL_FREEZE = (1<<11), + +/** (@shyouhei doesn't know how to excude this macro from doxygen). */ +#define RBIMPL_FL_USER_N(n) RUBY_FL_USER##n = (1<<(RUBY_FL_USHIFT+n)) + RBIMPL_FL_USER_N(0), /**< User-defined flag. */ + RBIMPL_FL_USER_N(1), /**< User-defined flag. */ + RBIMPL_FL_USER_N(2), /**< User-defined flag. */ + RBIMPL_FL_USER_N(3), /**< User-defined flag. */ + RBIMPL_FL_USER_N(4), /**< User-defined flag. */ + RBIMPL_FL_USER_N(5), /**< User-defined flag. */ + RBIMPL_FL_USER_N(6), /**< User-defined flag. */ + RBIMPL_FL_USER_N(7), /**< User-defined flag. */ + RBIMPL_FL_USER_N(8), /**< User-defined flag. */ + RBIMPL_FL_USER_N(9), /**< User-defined flag. */ + RBIMPL_FL_USER_N(10), /**< User-defined flag. */ + RBIMPL_FL_USER_N(11), /**< User-defined flag. */ + RBIMPL_FL_USER_N(12), /**< User-defined flag. */ + RBIMPL_FL_USER_N(13), /**< User-defined flag. */ + RBIMPL_FL_USER_N(14), /**< User-defined flag. */ + RBIMPL_FL_USER_N(15), /**< User-defined flag. */ + RBIMPL_FL_USER_N(16), /**< User-defined flag. */ + RBIMPL_FL_USER_N(17), /**< User-defined flag. */ + RBIMPL_FL_USER_N(18), /**< User-defined flag. */ +#ifdef ENUM_OVER_INT + RBIMPL_FL_USER_N(19), /**< User-defined flag. */ +#else +# define RUBY_FL_USER19 (RBIMPL_VALUE_ONE<<(RUBY_FL_USHIFT+19)) +#endif +#undef RBIMPL_FL_USER_N +#undef RBIMPL_WIDER_ENUM + + /** + * This flag has something to do with data structures. Over time, ruby + * evolved to reduce memory footprints. One of such attempt is so-called + * copy-on-write, which delays duplication of resources until ultimately + * necessary. Some data structures share this scheme. For example + * multiple instances of struct ::RArray could point identical memory + * region in common, as long as they don't differ. As people favour + * immutable style of programming than before, this situation is getting + * more and more common. Because such "shared" memory regions have nuanced + * ownership by nature, each structures need special care for them. This + * flag is used to distinguish such shared constructs. + * + * @internal + * + * But honestly, @shyouhei doesn't think this flag should be visible from + * 3rd parties. It must be an implementation detail that they should never + * know. Might better be hidden. + */ + RUBY_ELTS_SHARED = RUBY_FL_USER2, + + /** + * This flag has something to do with an object's class. There are kind of + * classes called "singleton class", each of which have exactly one + * instance. What is interesting about singleton classes is that they are + * created _after_ their instance were instantiated, like this: + * + * ```ruby + * foo = Object.new # foo is an instance of Object... + * bar = foo.singleton_class # foo is now an instance of bar. + * ``` + * + * Here as you see `bar` is a singleton class of `foo`, which is injected + * into `foo`'s inheritance tree in a different statement (== distinct + * sequence point). In order to achieve this property singleton classes + * are special-cased in the interpreter. There is one bit flag that + * distinguishes if a class is a singleton class or not, and this is it. + * + * @internal + * + * But honestly, @shyouhei doesn't think this flag should be visible from + * 3rd parties. It must be an implementation detail that they should never + * know. Might better be hidden. + */ + RUBY_FL_SINGLETON = RUBY_FL_USER0, +}; + +enum { + /** + * @deprecated This flag once was a thing back in the old days, but makes + * no sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + */ + RUBY_FL_DUPPED + +#if defined(RBIMPL_HAVE_ENUM_ATTRIBUTE) + RBIMPL_ATTR_DEPRECATED(("It seems there is no actual usage of this enum.")) +#elif defined(_MSC_VER) +# pragma deprecated(RUBY_FL_DUPPED) +#endif + + = (int)RUBY_T_MASK | (int)RUBY_FL_EXIVAR +}; + +#undef RBIMPL_HAVE_ENUM_ATTRIBUTE + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * This is an implementation detail of #RB_OBJ_FREEZE(). People don't use it + * directly. + * + * @param[out] klass A singleton class. + * @post `klass` gets frozen. + */ +void rb_freeze_singleton_class(VALUE klass); +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_FORCEINLINE() +/** + * Checks if the object is flaggable. There are some special cases (most + * notably ::RUBY_Qfalse) where appending a flag to an object is not possible. + * This function can detect that. + * + * @param[in] obj Object in question + * @retval true It is flaggable. + * @retval false No it isn't. + */ +static bool +RB_FL_ABLE(VALUE obj) +{ + if (RB_SPECIAL_CONST_P(obj)) { + return false; + } + else if (RB_TYPE_P(obj, RUBY_T_NODE)) { + return false; + } + else { + return true; + } +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * This is an implenentation detail of RB_FL_TEST(). 3rd parties need not use + * this. Just always use RB_FL_TEST(). + * + * @param[in] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @pre The object must not be an enum ::ruby_special_consts. + * @return `obj`'s flags, masked by `flags`. + */ +static inline VALUE +RB_FL_TEST_RAW(VALUE obj, VALUE flags) +{ + RBIMPL_ASSERT_OR_ASSUME(RB_FL_ABLE(obj)); + return RBASIC(obj)->flags & flags; +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Tests if the given flag(s) are set or not. You can pass multiple flags at + * once: + * + * ```CXX + * auto obj = rb_eval_string("..."); + * if (RB_FL_TEST(obj, RUBY_FL_FREEZE | RUBY_FL_SHAREABLE)) { + * printf("Ractor ready!\n"); + * } + * ``` + * + * @param[in] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @return `obj`'s flags, masked by `flags`. + * @note It is intentional for this function to return ::VALUE. The + * return value could be passed to RB_FL_STE() etc. + */ +static inline VALUE +RB_FL_TEST(VALUE obj, VALUE flags) +{ + if (RB_FL_ABLE(obj)) { + return RB_FL_TEST_RAW(obj, flags); + } + else { + return RBIMPL_VALUE_NULL; + } +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * This is an implenentation detail of RB_FL_ANY(). 3rd parties need not use + * this. Just always use RB_FL_ANY(). + * + * @param[in] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @retval true The object has any of the flags set. + * @retval false No it doesn't at all. + * @pre The object must not be an enum ::ruby_special_consts. + */ +static inline bool +RB_FL_ANY_RAW(VALUE obj, VALUE flags) +{ + return RB_FL_TEST_RAW(obj, flags); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Identical to RB_FL_TEST(), except it returns bool. + * + * @param[in] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @retval true The object has any of the flags set. + * @retval false No it doesn't at all. + */ +static inline bool +RB_FL_ANY(VALUE obj, VALUE flags) +{ + return RB_FL_TEST(obj, flags); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * This is an implenentation detail of RB_FL_ALL(). 3rd parties need not use + * this. Just always use RB_FL_ALL(). + * + * @param[in] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @retval true The object has all of the flags set. + * @retval false The object lacks any of the flags. + * @pre The object must not be an enum ::ruby_special_consts. + */ +static inline bool +RB_FL_ALL_RAW(VALUE obj, VALUE flags) +{ + return RB_FL_TEST_RAW(obj, flags) == flags; +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Identical to RB_FL_ANY(), except it mandates all passed flags be set. + * + * @param[in] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @retval true The object has all of the flags set. + * @retval false The object lacks any of the flags. + */ +static inline bool +RB_FL_ALL(VALUE obj, VALUE flags) +{ + return RB_FL_TEST(obj, flags) == flags; +} + +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_ARTIFICIAL() +/** + * @private + * + * This is an implenentation detail of RB_FL_SET(). 3rd parties need not use + * this. Just always use RB_FL_SET(). + * + * @param[out] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @post `obj` has `flags` set. + * + * @internal + * + * This is function is here to annotate a part of RB_FL_SET_RAW() as + * `__declspec(noalias)`. + */ +static inline void +rbimpl_fl_set_raw_raw(struct RBasic *obj, VALUE flags) +{ + obj->flags |= flags; +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * This is an implenentation detail of RB_FL_SET(). 3rd parties need not use + * this. Just always use RB_FL_SET(). + * + * @param[out] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @post `obj` has `flags` set. + */ +static inline void +RB_FL_SET_RAW(VALUE obj, VALUE flags) +{ + RBIMPL_ASSERT_OR_ASSUME(RB_FL_ABLE(obj)); + rbimpl_fl_set_raw_raw(RBASIC(obj), flags); +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Sets the given flag(s). + * + * ```CXX + * auto v = rb_eval_string("..."); + * RB_FL_SET(v, RUBY_FL_FREEZE); + * ``` + * + * @param[out] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @post `obj` has `flags` set. + */ +static inline void +RB_FL_SET(VALUE obj, VALUE flags) +{ + if (RB_FL_ABLE(obj)) { + RB_FL_SET_RAW(obj, flags); + } +} + +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_ARTIFICIAL() +/** + * @private + * + * This is an implenentation detail of RB_FL_UNSET(). 3rd parties need not use + * this. Just always use RB_FL_UNSET(). + * + * @param[out] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @post `obj` has `flags` cleared. + * + * @internal + * + * This is function is here to annotate a part of RB_FL_UNSET_RAW() as + * `__declspec(noalias)`. + */ +static inline void +rbimpl_fl_unset_raw_raw(struct RBasic *obj, VALUE flags) +{ + obj->flags &= ~flags; +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * This is an implenentation detail of RB_FL_UNSET(). 3rd parties need not use + * this. Just always use RB_FL_UNSET(). + * + * @param[out] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @post `obj` has `flags` cleared. + */ +static inline void +RB_FL_UNSET_RAW(VALUE obj, VALUE flags) +{ + RBIMPL_ASSERT_OR_ASSUME(RB_FL_ABLE(obj)); + rbimpl_fl_unset_raw_raw(RBASIC(obj), flags); +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Clears the given flag(s). + * + * @param[out] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @post `obj` has `flags` cleard. + */ +static inline void +RB_FL_UNSET(VALUE obj, VALUE flags) +{ + if (RB_FL_ABLE(obj)) { + RB_FL_UNSET_RAW(obj, flags); + } +} + +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_ARTIFICIAL() +/** + * @private + * + * This is an implenentation detail of RB_FL_REVERSE(). 3rd parties need not + * use this. Just always use RB_FL_REVERSE(). + * + * @param[out] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @post `obj` has `flags` reversed. + * + * @internal + * + * This is function is here to annotate a part of RB_FL_REVERSE_RAW() as + * `__declspec(noalias)`. + */ +static inline void +rbimpl_fl_reverse_raw_raw(struct RBasic *obj, VALUE flags) +{ + obj->flags ^= flags; +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * This is an implenentation detail of RB_FL_REVERSE(). 3rd parties need not + * use this. Just always use RB_FL_REVERSE(). + * + * @param[out] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @post `obj` has `flags` cleared. + */ +static inline void +RB_FL_REVERSE_RAW(VALUE obj, VALUE flags) +{ + RBIMPL_ASSERT_OR_ASSUME(RB_FL_ABLE(obj)); + rbimpl_fl_reverse_raw_raw(RBASIC(obj), flags); +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Reverses the flags. This function is here mainly for symmetry on set/unset. + * Rarely used in practice. + * + * @param[out] obj Object in question. + * @param[in] flags A set of enum ::ruby_fl_type. + * @post `obj` has `flags` reversed. + */ +static inline void +RB_FL_REVERSE(VALUE obj, VALUE flags) +{ + if (RB_FL_ABLE(obj)) { + RB_FL_REVERSE_RAW(obj, flags); + } +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea.")) +/** + * @deprecated This function once was a thing in the old days, but makes no + * sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + * + * @param[in] obj Object in question. + * @return false always. + */ +static inline bool +RB_OBJ_TAINTABLE(VALUE obj) +{ + return false; +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea.")) +/** + * @deprecated This function once was a thing in the old days, but makes no + * sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + * + * @param[in] obj Object in question. + * @return false always. + */ +static inline VALUE +RB_OBJ_TAINTED_RAW(VALUE obj) +{ + return false; +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea.")) +/** + * @deprecated This function once was a thing in the old days, but makes no + * sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + * + * @param[in] obj Object in question. + * @return false always. + */ +static inline bool +RB_OBJ_TAINTED(VALUE obj) +{ + return false; +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea.")) +/** + * @deprecated This function once was a thing in the old days, but makes no + * sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + * + * @param[in] obj Object in question. + */ +static inline void +RB_OBJ_TAINT_RAW(VALUE obj) +{ + return; +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea.")) +/** + * @deprecated This function once was a thing in the old days, but makes no + * sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + * + * @param[in] obj Object in question. + */ +static inline void +RB_OBJ_TAINT(VALUE obj) +{ + return; +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea.")) +/** + * @deprecated This function once was a thing in the old days, but makes no + * sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + * + * @param[in] dst Victim object. + * @param[in] src Infectant object. + */ +static inline void +RB_OBJ_INFECT_RAW(VALUE dst, VALUE src) +{ + return; +} + +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea.")) +/** + * @deprecated This function once was a thing in the old days, but makes no + * sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + * + * @param[in] dst Victim object. + * @param[in] src Infectant object. + */ +static inline void +RB_OBJ_INFECT(VALUE dst, VALUE src) +{ + return; +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * This is an implenentation detail of RB_OBJ_FROZEN(). 3rd parties need not + * use this. Just always use RB_OBJ_FROZEN(). + * + * @param[in] obj Object in question. + * @retval RUBY_FL_FREEZE Yes it is. + * @retval 0 No it isn't. + * + * @internal + * + * It is intentional not to return bool here. There is a place in ruby core + * (namely `class.c:singleton_class_of()`) where return value of this function + * is passed to RB_FL_SET_RAW(). + */ +static inline VALUE +RB_OBJ_FROZEN_RAW(VALUE obj) +{ + return RB_FL_TEST_RAW(obj, RUBY_FL_FREEZE); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks if an object is frozen. + * + * @param[in] obj Object in question. + * @retval true Yes it is. + * @retval false No it isn't. + */ +static inline bool +RB_OBJ_FROZEN(VALUE obj) +{ + if (! RB_FL_ABLE(obj)) { + return true; + } + else { + return RB_OBJ_FROZEN_RAW(obj); + } +} + +RBIMPL_ATTR_ARTIFICIAL() +/** + * This is an implenentation detail of RB_OBJ_FREEZE(). 3rd parties need not + * use this. Just always use RB_OBJ_FREEZE(). + * + * @param[out] obj Object in question. + */ +static inline void +RB_OBJ_FREEZE_RAW(VALUE obj) +{ + RB_FL_SET_RAW(obj, RUBY_FL_FREEZE); +} + +RUBY_SYMBOL_EXPORT_BEGIN +void rb_obj_freeze_inline(VALUE obj); +RUBY_SYMBOL_EXPORT_END + +#endif /* RBIMPL_FL_TYPE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/gc.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/gc.h new file mode 100644 index 0000000..66fc14e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/gc.h @@ -0,0 +1,57 @@ +#ifndef RBIMPL_GC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_GC_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Registering values to the GC. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Inform the garbage collector that `valptr` points to a live Ruby object that + * should not be moved. Note that extensions should use this API on global + * constants instead of assuming constants defined in Ruby are always alive. + * Ruby code can remove global constants. + */ +void rb_gc_register_address(VALUE *valptr); + +/** + * An alias for `rb_gc_register_address()`. + */ +void rb_global_variable(VALUE *); + +/** + * Inform the garbage collector that a pointer previously passed to + * `rb_gc_register_address()` no longer points to a live Ruby object. + */ +void rb_gc_unregister_address(VALUE *valptr); + +/** + * Inform the garbage collector that `object` is a live Ruby object that should + * not be moved. + * + * See also: rb_gc_register_address() + */ +void rb_gc_register_mark_object(VALUE object); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_GC_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/glob.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/glob.h new file mode 100644 index 0000000..adbccbd --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/glob.h @@ -0,0 +1,113 @@ +#ifndef RBIMPL_GLOB_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_GLOB_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Declares ::rb_glob(). + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Type of a glob callback function. Called every time glob scans a path. + * + * @param[in] path The path in question. + * @param[in] arg The argument passed to rb_glob(). + * @param[in] enc Encoding of the path. + * @retval -1 Not enough memory to do the operation. + * @retval 0 Operation successful. + * @retval otherwise Opaque exception state. + * @note You can use rb_protect() to generate the return value. + * + * @internal + * + * This is a wrong design. Type of `enc` should have been `rb_encoding*` + * instead of just `void*`. But we cannot change the API any longer. + * + * Though not a part of our public API, the "opaque exception state" is in fact + * an enum ruby_tag_type. You can see the potential "otherwise" values by + * looking at vm_core.h. + */ +typedef int ruby_glob_func(const char *path, VALUE arg, void *enc); + +RBIMPL_ATTR_NONNULL(()) +/** + * The "glob" operator. Expands the given pattern against the actual local + * filesystem, then iterates over the expanded filenames by calling the + * callback function. + * + * @param[in] pattern A glob pattern. + * @param[in] func Identical to ruby_glob_func, except it can raise + * exceptions instead of returning opaque state. + * @param[in] arg Extra argument passed to func. + * @exception rb_eException Can propagate what `func` raises. + * @note The language accepted as the pattern is not a regular + * expression. It resembles shell's glob. + */ +void rb_glob(const char *pattern, void (*func)(const char *path, VALUE arg, void *enc), VALUE arg); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_glob(), except it returns opaque exception states instead of + * raising exceptions. + * + * @param[in] pattern A glob pattern. + * @param[in] flags No, you are not allowed to use this. Just pass 0. + * @param[in] func A callback function. + * @param[in] arg Extra argument passed to func. + * @return Return value of `func`. + * + * @internal + * + * This function is completely broken by design... Not only is there no sane + * way to pass flags, but there also is no sane way to know what a return value + * is meant to be. + * + * Though not a part of our public API, and @shyouhei thinks it's a failure not + * to be a public API, the flags can be `FNM_EXTGLOB`, `FNM_DOTMATCH` etc. + * Look at dir.c for the list. + * + * Though not a part of our public API, the return value is in fact an + * enum ruby_tag_type. You can see the potential values by looking at + * vm_core.h. + */ +int ruby_glob(const char *pattern, int flags, ruby_glob_func *func, VALUE arg); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to ruby_glob(), @shyouhei currently suspects. Historically you + * had to call this function instead of ruby_glob() if the pattern included + * "{x,y,...}" syntax. However since commit 0f63d961169989a7f6dcf7c0487fe29da, + * ruby_glob() also supports that syntax. It seems as of writing these two + * functions provide basically the same functionality in a different + * implementation. Is this analysis right? Correct me! :FIXME: + * + * @param[in] pattern A glob pattern. + * @param[in] flags No, you are not allowed to use this. Just pass 0. + * @param[in] func A callback function. + * @param[in] arg Extra argument passed to func. + * @return Return value of `func`. + */ +int ruby_brace_glob(const char *pattern, int flags, ruby_glob_func *func, VALUE arg); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_GLOB_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/globals.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/globals.h new file mode 100644 index 0000000..5a414fc --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/globals.h @@ -0,0 +1,209 @@ +#ifndef RBIMPL_GLOBALS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_GLOBALS_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Ruby-level global variables / constants, visible from C. + */ +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/fl_type.h" +#include "ruby/internal/special_consts.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" + +/** + * @defgroup object Core objects and their operations + * + * @internal + * + * There are several questionable constants listed in this header file. They + * are intentionally left untouched for purely academic backwards compatibility + * concerns. But for instance do any one of 3rd party extension libraries even + * need to know that there is NameError::Message? + * + * @endinternal + * + * @{ + */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define RUBY_INTEGER_UNIFICATION 1 + +RUBY_EXTERN VALUE rb_mKernel; /**< `Kernel` module. */ +RUBY_EXTERN VALUE rb_mComparable; /**< `Comparable` module. */ +RUBY_EXTERN VALUE rb_mEnumerable; /**< `Enumerable` module. */ +RUBY_EXTERN VALUE rb_mErrno; /**< `Errno` module. */ +RUBY_EXTERN VALUE rb_mFileTest; /**< `FileTest` module. */ +RUBY_EXTERN VALUE rb_mGC; /**< `GC` module. */ +RUBY_EXTERN VALUE rb_mMath; /**< `Math` module. */ +RUBY_EXTERN VALUE rb_mProcess; /**< `Process` module. */ +RUBY_EXTERN VALUE rb_mWaitReadable; /**< `IO::WaitReadable` module. */ +RUBY_EXTERN VALUE rb_mWaitWritable; /**< `IO::WaitReadable` module. */ + +RUBY_EXTERN VALUE rb_cBasicObject; /**< `BasicObject` class. */ +RUBY_EXTERN VALUE rb_cObject; /**< `Object` class. */ +RUBY_EXTERN VALUE rb_cArray; /**< `Array` class. */ +RUBY_EXTERN VALUE rb_cBinding; /**< `Binding` class. */ +RUBY_EXTERN VALUE rb_cClass; /**< `Class` class. */ +RUBY_EXTERN VALUE rb_cDir; /**< `Dir` class. */ +RUBY_EXTERN VALUE rb_cEncoding; /**< `Encoding` class. */ +RUBY_EXTERN VALUE rb_cEnumerator; /**< `Enumerator` class. */ +RUBY_EXTERN VALUE rb_cFalseClass; /**< `FalseClass` class. */ +RUBY_EXTERN VALUE rb_cFile; /**< `File` class. */ +RUBY_EXTERN VALUE rb_cComplex; /**< `Complex` class. */ +RUBY_EXTERN VALUE rb_cFloat; /**< `Float` class. */ +RUBY_EXTERN VALUE rb_cHash; /**< `Hash` class. */ +RUBY_EXTERN VALUE rb_cIO; /**< `IO` class. */ +RUBY_EXTERN VALUE rb_cInteger; /**< `Module` class. */ +RUBY_EXTERN VALUE rb_cMatch; /**< `MatchData` class. */ +RUBY_EXTERN VALUE rb_cMethod; /**< `Method` class. */ +RUBY_EXTERN VALUE rb_cModule; /**< `Module` class. */ +RUBY_EXTERN VALUE rb_cRefinement; /**< `Refinement` class. */ +RUBY_EXTERN VALUE rb_cNameErrorMesg; /**< `NameError::Message` class. */ +RUBY_EXTERN VALUE rb_cNilClass; /**< `NilClass` class. */ +RUBY_EXTERN VALUE rb_cNumeric; /**< `Numeric` class. */ +RUBY_EXTERN VALUE rb_cProc; /**< `Proc` class. */ +RUBY_EXTERN VALUE rb_cRandom; /**< `Random` class. */ +RUBY_EXTERN VALUE rb_cRange; /**< `Range` class. */ +RUBY_EXTERN VALUE rb_cRational; /**< `Rational` class. */ +RUBY_EXTERN VALUE rb_cRegexp; /**< `Regexp` class. */ +RUBY_EXTERN VALUE rb_cStat; /**< `File::Stat` class. */ +RUBY_EXTERN VALUE rb_cString; /**< `String` class. */ +RUBY_EXTERN VALUE rb_cStruct; /**< `Struct` class. */ +RUBY_EXTERN VALUE rb_cSymbol; /**< `Sumbol` class. */ +RUBY_EXTERN VALUE rb_cThread; /**< `Thread` class. */ +RUBY_EXTERN VALUE rb_cTime; /**< `Time` class. */ +RUBY_EXTERN VALUE rb_cTrueClass; /**< `TrueClass` class. */ +RUBY_EXTERN VALUE rb_cUnboundMethod; /**< `UnboundMethod` class. */ + +/** + * @} + * @addtogroup exception + * @{ + */ + +RUBY_EXTERN VALUE rb_eException; /**< Mother of all exceptions. */ +RUBY_EXTERN VALUE rb_eStandardError; /**< `StandardError` exception. */ +RUBY_EXTERN VALUE rb_eSystemExit; /**< `SystemExit` exception. */ +RUBY_EXTERN VALUE rb_eInterrupt; /**< `Interrupt` exception. */ +RUBY_EXTERN VALUE rb_eSignal; /**< `SignalException` exception. */ +RUBY_EXTERN VALUE rb_eFatal; /**< `fatal` exception. */ +RUBY_EXTERN VALUE rb_eArgError; /**< `ArgumentError` exception. */ +RUBY_EXTERN VALUE rb_eEOFError; /**< `EOFError` exception. */ +RUBY_EXTERN VALUE rb_eIndexError; /**< `IndexError` exception. */ +RUBY_EXTERN VALUE rb_eStopIteration; /**< `StopIteration` exception. */ +RUBY_EXTERN VALUE rb_eKeyError; /**< `KeyError` exception. */ +RUBY_EXTERN VALUE rb_eRangeError; /**< `RangeError` exception. */ +RUBY_EXTERN VALUE rb_eIOError; /**< `IOError` exception. */ +RUBY_EXTERN VALUE rb_eRuntimeError; /**< `RuntimeError` exception. */ +RUBY_EXTERN VALUE rb_eFrozenError; /**< `FrozenError` exception. */ +RUBY_EXTERN VALUE rb_eSecurityError; /**< `SecurityError` exception. */ +RUBY_EXTERN VALUE rb_eSystemCallError; /**< `SystemCallError` exception. */ +RUBY_EXTERN VALUE rb_eThreadError; /**< `ThreadError` exception. */ +RUBY_EXTERN VALUE rb_eTypeError; /**< `TypeError` exception. */ +RUBY_EXTERN VALUE rb_eZeroDivError; /**< `ZeroDivisionError` exception. */ +RUBY_EXTERN VALUE rb_eNotImpError; /**< `NotImplementedError` exception. */ +RUBY_EXTERN VALUE rb_eNoMemError; /**< `NoMemoryError` exception. */ +RUBY_EXTERN VALUE rb_eNoMethodError; /**< `NoMethodError` exception. */ +RUBY_EXTERN VALUE rb_eFloatDomainError; /**< `FloatDomainError` exception. */ +RUBY_EXTERN VALUE rb_eLocalJumpError; /**< `LocalJumpError` exception. */ +RUBY_EXTERN VALUE rb_eSysStackError; /**< `SystemStackError` exception. */ +RUBY_EXTERN VALUE rb_eRegexpError; /**< `RegexpError` exception. */ +RUBY_EXTERN VALUE rb_eEncodingError; /**< `EncodingError` exception. */ +RUBY_EXTERN VALUE rb_eEncCompatError; /**< `Encoding::CompatibilityError` exception. */ +RUBY_EXTERN VALUE rb_eNoMatchingPatternError; /**< `NoMatchingPatternError` exception. */ +RUBY_EXTERN VALUE rb_eNoMatchingPatternKeyError; /**< `NoMatchingPatternKeyError` exception. */ + +RUBY_EXTERN VALUE rb_eScriptError; /**< `ScriptError` exception. */ +RUBY_EXTERN VALUE rb_eNameError; /**< `NameError` exception. */ +RUBY_EXTERN VALUE rb_eSyntaxError; /**< `SyntaxError` exception. */ +RUBY_EXTERN VALUE rb_eLoadError; /**< `LoadError` exception. */ + +RUBY_EXTERN VALUE rb_eMathDomainError; /**< `Math::DomainError` exception. */ + +/** + * @} + * @addtogroup object + * @{ + */ + +RUBY_EXTERN VALUE rb_stdin; /**< `STDIN` constant. */ +RUBY_EXTERN VALUE rb_stdout; /**< `STDOUT` constant. */ +RUBY_EXTERN VALUE rb_stderr; /**< `STDERR` constant. */ + +RBIMPL_ATTR_PURE() +/** + * Object to class mapping function. Every object have its class. This + * function obtains that. + * + * @param[in] obj Target object to query. + * @return The class of the given object. + * + * @internal + * + * This function is a super-duper hot path. Optimised targeting modern C + * compilers and x86_64 architecture. + */ +static inline VALUE +rb_class_of(VALUE obj) +{ + if (! RB_SPECIAL_CONST_P(obj)) { + return RBASIC_CLASS(obj); + } + else if (obj == RUBY_Qfalse) { + return rb_cFalseClass; + } + else if (obj == RUBY_Qnil) { + return rb_cNilClass; + } + else if (obj == RUBY_Qtrue) { + return rb_cTrueClass; + } + else if (RB_FIXNUM_P(obj)) { + return rb_cInteger; + } + else if (RB_STATIC_SYM_P(obj)) { + return rb_cSymbol; + } + else if (RB_FLONUM_P(obj)) { + return rb_cFloat; + } + +#if !RUBY_DEBUG + RBIMPL_UNREACHABLE_RETURN(Qfalse); +#else + RUBY_ASSERT_FAIL("unexpected type"); +#endif +} + +#define CLASS_OF rb_class_of /**< @old{rb_class_of} */ + +RBIMPL_SYMBOL_EXPORT_END() + +/** @} */ + +#endif /* RBIMPL_GLOBALS_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/attribute.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/attribute.h new file mode 100644 index 0000000..f068a65 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/attribute.h @@ -0,0 +1,163 @@ +#ifndef RBIMPL_HAS_ATTRIBUTE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_HAS_ATTRIBUTE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_HAS_ATTRIBUTE. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/compiler_since.h" + +#if defined(__has_attribute) +# if __has_attribute(pure) || RBIMPL_COMPILER_IS(GCC) +# /* FreeBSD's defines its own *broken* version of +# * __has_attribute. Cygwin copied that content to be a victim of the +# * broken-ness. We don't take them into account. */ +# define RBIMPL_HAVE___HAS_ATTRIBUTE 1 +# endif +#endif + +/** Wraps (or simulates) `__has_attribute`. */ +#if defined(RBIMPL_HAVE___HAS_ATTRIBUTE) +# define RBIMPL_HAS_ATTRIBUTE(_) __has_attribute(_) + +#elif RBIMPL_COMPILER_IS(GCC) +# /* GCC <= 4 lack __has_attribute predefined macro, while have attributes +# * themselves. We can simulate the macro like the following: */ +# define RBIMPL_HAS_ATTRIBUTE(_) (RBIMPL_HAS_ATTRIBUTE_ ## _) +# define RBIMPL_HAS_ATTRIBUTE_aligned RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0) +# define RBIMPL_HAS_ATTRIBUTE_alloc_size RBIMPL_COMPILER_SINCE(GCC, 4, 3, 0) +# define RBIMPL_HAS_ATTRIBUTE_artificial RBIMPL_COMPILER_SINCE(GCC, 4, 3, 0) +# define RBIMPL_HAS_ATTRIBUTE_always_inline RBIMPL_COMPILER_SINCE(GCC, 3, 1, 0) +# define RBIMPL_HAS_ATTRIBUTE_cdecl RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0) +# define RBIMPL_HAS_ATTRIBUTE_cold RBIMPL_COMPILER_SINCE(GCC, 4, 3, 0) +# define RBIMPL_HAS_ATTRIBUTE_const RBIMPL_COMPILER_SINCE(GCC, 2, 6, 0) +# define RBIMPL_HAS_ATTRIBUTE_deprecated RBIMPL_COMPILER_SINCE(GCC, 3, 1, 0) +# define RBIMPL_HAS_ATTRIBUTE_dllexport RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0) +# define RBIMPL_HAS_ATTRIBUTE_dllimport RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0) +# define RBIMPL_HAS_ATTRIBUTE_error RBIMPL_COMPILER_SINCE(GCC, 4, 3, 0) +# define RBIMPL_HAS_ATTRIBUTE_format RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0) +# define RBIMPL_HAS_ATTRIBUTE_hot RBIMPL_COMPILER_SINCE(GCC, 4, 3, 0) +# define RBIMPL_HAS_ATTRIBUTE_leaf RBIMPL_COMPILER_SINCE(GCC, 4, 6, 0) +# define RBIMPL_HAS_ATTRIBUTE_malloc RBIMPL_COMPILER_SINCE(GCC, 3, 0, 0) +# define RBIMPL_HAS_ATTRIBUTE_no_address_safety_analysis RBIMPL_COMPILER_SINCE(GCC, 4, 8, 0) +# define RBIMPL_HAS_ATTRIBUTE_no_sanitize_address RBIMPL_COMPILER_SINCE(GCC, 4, 8, 0) +# define RBIMPL_HAS_ATTRIBUTE_no_sanitize_undefined RBIMPL_COMPILER_SINCE(GCC, 4, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_noinline RBIMPL_COMPILER_SINCE(GCC, 3, 1, 0) +# define RBIMPL_HAS_ATTRIBUTE_nonnull RBIMPL_COMPILER_SINCE(GCC, 3, 3, 0) +# define RBIMPL_HAS_ATTRIBUTE_noreturn RBIMPL_COMPILER_SINCE(GCC, 2, 5, 0) +# define RBIMPL_HAS_ATTRIBUTE_nothrow RBIMPL_COMPILER_SINCE(GCC, 3, 3, 0) +# define RBIMPL_HAS_ATTRIBUTE_pure RBIMPL_COMPILER_SINCE(GCC, 2,96, 0) +# define RBIMPL_HAS_ATTRIBUTE_returns_nonnull RBIMPL_COMPILER_SINCE(GCC, 4, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_returns_twice RBIMPL_COMPILER_SINCE(GCC, 4, 1, 0) +# define RBIMPL_HAS_ATTRIBUTE_stdcall RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0) +# define RBIMPL_HAS_ATTRIBUTE_unused RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0) +# define RBIMPL_HAS_ATTRIBUTE_visibility RBIMPL_COMPILER_SINCE(GCC, 3, 3, 0) +# define RBIMPL_HAS_ATTRIBUTE_warn_unused_result RBIMPL_COMPILER_SINCE(GCC, 3, 4, 0) +# define RBIMPL_HAS_ATTRIBUTE_warning RBIMPL_COMPILER_SINCE(GCC, 4, 3, 0) +# define RBIMPL_HAS_ATTRIBUTE_weak RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0) +# /* Note that "0, 0, 0" might be inaccurate. */ + +#elif RBIMPL_COMPILER_IS(SunPro) +# /* Oracle Solaris Studio 12.4 (cc version 5.11) introduced __has_attribute. +# * Before that, following attributes were available. */ +# /* See https://docs.oracle.com/cd/F24633_01/index.html */ +# define RBIMPL_HAS_ATTRIBUTE(_) (RBIMPL_HAS_ATTRIBUTE_ ## _) +# define RBIMPL_HAS_ATTRIBUTE_alias RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_aligned RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_always_inline RBIMPL_COMPILER_SINCE(SunPro, 5, 10, 0) +# define RBIMPL_HAS_ATTRIBUTE_const RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_constructor RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_destructor RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_malloc RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_noinline RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_noreturn RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_packed RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_pure RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_returns_twice RBIMPL_COMPILER_SINCE(SunPro, 5, 10, 0) +# define RBIMPL_HAS_ATTRIBUTE_vector_size RBIMPL_COMPILER_SINCE(SunPro, 5, 10, 0) +# define RBIMPL_HAS_ATTRIBUTE_visibility RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) +# define RBIMPL_HAS_ATTRIBUTE_weak RBIMPL_COMPILER_SINCE(SunPro, 5, 9, 0) + +#elif defined (_MSC_VER) +# define RBIMPL_HAS_ATTRIBUTE(_) 0 +# /* Fallback below doesn't work: see win32/Makefile.sub */ + +#else +# /* Take config.h definition when available. */ +# define RBIMPL_HAS_ATTRIBUTE(_) ((RBIMPL_HAS_ATTRIBUTE_ ## _)+0) +# ifdef ALWAYS_INLINE +# define RBIMPL_HAS_ATTRIBUTE_always_inline 1 +# endif +# ifdef FUNC_CDECL +# define RBIMPL_HAS_ATTRIBUTE_cdecl 1 +# endif +# ifdef CONSTFUNC +# define RBIMPL_HAS_ATTRIBUTE_const 1 +# endif +# ifdef DEPRECATED +# define RBIMPL_HAS_ATTRIBUTE_deprecated 1 +# endif +# ifdef ERRORFUNC +# define RBIMPL_HAS_ATTRIBUTE_error 1 +# endif +# ifdef FUNC_FASTCALL +# define RBIMPL_HAS_ATTRIBUTE_fastcall 1 +# endif +# ifdef PUREFUNC +# define RBIMPL_HAS_ATTRIBUTE_pure 1 +# endif +# ifdef NO_ADDRESS_SAFETY_ANALYSIS +# define RBIMPL_HAS_ATTRIBUTE_no_address_safety_analysis 1 +# endif +# ifdef NO_SANITIZE +# define RBIMPL_HAS_ATTRIBUTE_no_sanitize 1 +# endif +# ifdef NO_SANITIZE_ADDRESS +# define RBIMPL_HAS_ATTRIBUTE_no_sanitize_address 1 +# endif +# ifdef NOINLINE +# define RBIMPL_HAS_ATTRIBUTE_noinline 1 +# endif +# ifdef RBIMPL_FUNC_NONNULL +# define RBIMPL_HAS_ATTRIBUTE_nonnull 1 +# endif +# ifdef NORETURN +# define RBIMPL_HAS_ATTRIBUTE_noreturn 1 +# endif +# ifdef FUNC_OPTIMIZED +# define RBIMPL_HAS_ATTRIBUTE_optimize 1 +# endif +# ifdef FUNC_STDCALL +# define RBIMPL_HAS_ATTRIBUTE_stdcall 1 +# endif +# ifdef MAYBE_UNUSED +# define RBIMPL_HAS_ATTRIBUTE_unused 1 +# endif +# ifdef WARN_UNUSED_RESULT +# define RBIMPL_HAS_ATTRIBUTE_warn_unused_result 1 +# endif +# ifdef WARNINGFUNC +# define RBIMPL_HAS_ATTRIBUTE_warning 1 +# endif +# ifdef WEAK +# define RBIMPL_HAS_ATTRIBUTE_weak 1 +# endif +#endif + +#endif /* RBIMPL_HAS_ATTRIBUTE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/builtin.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/builtin.h new file mode 100644 index 0000000..243ba2a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/builtin.h @@ -0,0 +1,117 @@ +#ifndef RBIMPL_HAS_BUILTIN_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_HAS_BUILTIN_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_HAS_BUILTIN. + */ +#include "ruby/internal/config.h" +#include "ruby/internal/compiler_since.h" + +#if defined(__has_builtin) +# if RBIMPL_COMPILER_IS(Intel) +# /* :TODO: Intel C Compiler has __has_builtin (since 19.1 maybe?), and is +# * reportedly broken. We have to skip them. However the situation can +# * change. They might improve someday. We need to revisit here later. */ +# elif RBIMPL_COMPILER_IS(GCC) && ! __has_builtin(__builtin_alloca) +# /* FreeBSD's defines its own *broken* version of +# * __has_builtin. Cygwin copied that content to be a victim of the +# * broken-ness. We don't take them into account. */ +# else +# define RBIMPL_HAVE___HAS_BUILTIN 1 +# endif +#endif + +/** Wraps (or simulates) `__has_builtin`. */ +#if defined(RBIMPL_HAVE___HAS_BUILTIN) +# define RBIMPL_HAS_BUILTIN(_) __has_builtin(_) + +#elif RBIMPL_COMPILER_IS(GCC) +# /* :FIXME: Historically GCC has had tons of builtins, but it implemented +# * __has_builtin only since GCC 10. This section can be made more +# * granular. */ +# /* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66970 */ +# define RBIMPL_HAS_BUILTIN(_) (RBIMPL_HAS_BUILTIN_ ## _) +# define RBIMPL_HAS_BUILTIN___builtin_add_overflow RBIMPL_COMPILER_SINCE(GCC, 5, 1, 0) +# define RBIMPL_HAS_BUILTIN___builtin_alloca RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0) +# define RBIMPL_HAS_BUILTIN___builtin_alloca_with_align RBIMPL_COMPILER_SINCE(GCC, 6, 1, 0) +# define RBIMPL_HAS_BUILTIN___builtin_assume 0 +# /* See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52624 for bswap16. */ +# define RBIMPL_HAS_BUILTIN___builtin_bswap16 RBIMPL_COMPILER_SINCE(GCC, 4, 8, 0) +#ifndef __OpenBSD__ +# define RBIMPL_HAS_BUILTIN___builtin_bswap32 RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_bswap64 RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +#endif +# define RBIMPL_HAS_BUILTIN___builtin_clz RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_clzl RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_clzll RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_constant_p RBIMPL_COMPILER_SINCE(GCC, 2,95, 3) +# define RBIMPL_HAS_BUILTIN___builtin_ctz RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_ctzl RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_ctzll RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_expect RBIMPL_COMPILER_SINCE(GCC, 3, 0, 0) +# define RBIMPL_HAS_BUILTIN___builtin_mul_overflow RBIMPL_COMPILER_SINCE(GCC, 5, 1, 0) +# define RBIMPL_HAS_BUILTIN___builtin_mul_overflow_p RBIMPL_COMPILER_SINCE(GCC, 7, 0, 0) +# define RBIMPL_HAS_BUILTIN___builtin_popcount RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_popcountl RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_popcountll RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0) +# define RBIMPL_HAS_BUILTIN___builtin_rotateleft32 0 +# define RBIMPL_HAS_BUILTIN___builtin_rotateleft64 0 +# define RBIMPL_HAS_BUILTIN___builtin_rotateright32 0 +# define RBIMPL_HAS_BUILTIN___builtin_rotateright64 0 +# define RBIMPL_HAS_BUILTIN___builtin_sub_overflow RBIMPL_COMPILER_SINCE(GCC, 5, 1, 0) +# define RBIMPL_HAS_BUILTIN___builtin_unreachable RBIMPL_COMPILER_SINCE(GCC, 4, 5, 0) +# /* Note that "0, 0, 0" might be inaccurate. */ + +#else +# /* Take config.h definition when available */ +# define RBIMPL_HAS_BUILTIN(_) ((RBIMPL_HAS_BUILTIN_ ## _)+0) +# define RBIMPL_HAS_BUILTIN___builtin_add_overflow HAVE_BUILTIN___BUILTIN_ADD_OVERFLOW +# define RBIMPL_HAS_BUILTIN___builtin_alloca 0 +# define RBIMPL_HAS_BUILTIN___builtin_alloca_with_align HAVE_BUILTIN___BUILTIN_ALLOCA_WITH_ALIGN +# define RBIMPL_HAS_BUILTIN___builtin_assume 0 +# define RBIMPL_HAS_BUILTIN___builtin_assume_aligned HAVE_BUILTIN___BUILTIN_ASSUME_ALIGNED +# define RBIMPL_HAS_BUILTIN___builtin_bswap16 HAVE_BUILTIN___BUILTIN_BSWAP16 +# define RBIMPL_HAS_BUILTIN___builtin_bswap32 HAVE_BUILTIN___BUILTIN_BSWAP32 +# define RBIMPL_HAS_BUILTIN___builtin_bswap64 HAVE_BUILTIN___BUILTIN_BSWAP64 +# define RBIMPL_HAS_BUILTIN___builtin_clz HAVE_BUILTIN___BUILTIN_CLZ +# define RBIMPL_HAS_BUILTIN___builtin_clzl HAVE_BUILTIN___BUILTIN_CLZL +# define RBIMPL_HAS_BUILTIN___builtin_clzll HAVE_BUILTIN___BUILTIN_CLZLL +# define RBIMPL_HAS_BUILTIN___builtin_constant_p HAVE_BUILTIN___BUILTIN_CONSTANT_P +# define RBIMPL_HAS_BUILTIN___builtin_ctz HAVE_BUILTIN___BUILTIN_CTZ +# define RBIMPL_HAS_BUILTIN___builtin_ctzl 0 +# define RBIMPL_HAS_BUILTIN___builtin_ctzll HAVE_BUILTIN___BUILTIN_CTZLL +# define RBIMPL_HAS_BUILTIN___builtin_expect HAVE_BUILTIN___BUILTIN_EXPECT +# define RBIMPL_HAS_BUILTIN___builtin_mul_overflow HAVE_BUILTIN___BUILTIN_MUL_OVERFLOW +# define RBIMPL_HAS_BUILTIN___builtin_mul_overflow_p HAVE_BUILTIN___BUILTIN_MUL_OVERFLOW_P +# define RBIMPL_HAS_BUILTIN___builtin_popcount HAVE_BUILTIN___BUILTIN_POPCOUNT +# define RBIMPL_HAS_BUILTIN___builtin_popcountl 0 +# define RBIMPL_HAS_BUILTIN___builtin_rotateleft32 0 +# define RBIMPL_HAS_BUILTIN___builtin_rotateleft64 0 +# define RBIMPL_HAS_BUILTIN___builtin_rotateright32 0 +# define RBIMPL_HAS_BUILTIN___builtin_rotateright64 0 +# define RBIMPL_HAS_BUILTIN___builtin_popcountll HAVE_BUILTIN___BUILTIN_POPCOUNTLL +# define RBIMPL_HAS_BUILTIN___builtin_sub_overflow HAVE_BUILTIN___BUILTIN_SUB_OVERFLOW +# if defined(HAVE___BUILTIN_UNREACHABLE) +# define RBIMPL_HAS_BUILTIN___builtin_unreachable 1 +# else +# define RBIMPL_HAS_BUILTIN___builtin_unreachable 0 +# endif +#endif + +#endif /* RBIMPL_HAS_BUILTIN_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/c_attribute.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/c_attribute.h new file mode 100644 index 0000000..c5c4886 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/c_attribute.h @@ -0,0 +1,38 @@ +#ifndef RBIMPL_HAS_C_ATTRIBUTE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_HAS_C_ATTRIBUTE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_HAS_C_ATTRIBUTE. + */ + +/** Wraps (or simulates) `__has_c_attribute`. */ +#if defined(__cplusplus) +# /* Makes no sense. */ +# define RBIMPL_HAS_C_ATTRIBUTE(_) 0 + +#elif defined(__has_c_attribute) +# define RBIMPL_HAS_C_ATTRIBUTE(_) __has_c_attribute(_) + +#else +# /* As of writing everything that lacks __has_c_attribute also completely +# * lacks C2x attributes as well. Might change in future? */ +# define RBIMPL_HAS_C_ATTRIBUTE(_) 0 +#endif + +#endif /* RBIMPL_HAS_C_ATTRIBUTE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/cpp_attribute.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/cpp_attribute.h new file mode 100644 index 0000000..6a393b1 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/cpp_attribute.h @@ -0,0 +1,86 @@ +#ifndef RBIMPL_HAS_CPP_ATTRIBUTE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_HAS_CPP_ATTRIBUTE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_HAS_CPP_ATTRIBUTE. + */ +#include "ruby/internal/compiler_is.h" +#include "ruby/internal/compiler_since.h" + +/** @cond INTERNAL_MACRO */ +#if RBIMPL_COMPILER_IS(SunPro) +# /* Oracle Developer Studio 12.5's C++ preprocessor is reportedly broken. We +# * could simulate __has_cpp_attribute like below, but don't know the exact +# * list of which version supported which attribute. Just kill everything for +# * now. If you can please :FIXME: */ +# /* https://unicode-org.atlassian.net/browse/ICU-12893 */ +# /* https://github.com/boostorg/config/pull/95 */ +# define RBIMPL_HAS_CPP_ATTRIBUTE0(_) 0 + +#elif defined(__has_cpp_attribute) +# define RBIMPL_HAS_CPP_ATTRIBUTE0(_) __has_cpp_attribute(_) + +#elif RBIMPL_COMPILER_IS(MSVC) +# /* MSVC has never updated its __cplusplus since forever (unless specified +# * explicitly by a compiler flag). They also lack __has_cpp_attribute until +# * 2019. However, they do have attributes since 2015 or so. */ +# /* https://docs.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance */ +# define RBIMPL_HAS_CPP_ATTRIBUTE0(_) (RBIMPL_HAS_CPP_ATTRIBUTE_ ## _) +# define RBIMPL_HAS_CPP_ATTRIBUTE_noreturn 200809 * RBIMPL_COMPILER_SINCE(MSVC, 19, 00, 0) +# define RBIMPL_HAS_CPP_ATTRIBUTE_carries_dependency 200809 * RBIMPL_COMPILER_SINCE(MSVC, 19, 00, 0) +# define RBIMPL_HAS_CPP_ATTRIBUTE_deprecated 201309 * RBIMPL_COMPILER_SINCE(MSVC, 19, 10, 0) +# define RBIMPL_HAS_CPP_ATTRIBUTE_fallthrough 201603 * RBIMPL_COMPILER_SINCE(MSVC, 19, 10, 0) +# define RBIMPL_HAS_CPP_ATTRIBUTE_maybe_unused 201603 * RBIMPL_COMPILER_SINCE(MSVC, 19, 11, 0) +# define RBIMPL_HAS_CPP_ATTRIBUTE_nodiscard 201603 * RBIMPL_COMPILER_SINCE(MSVC, 19, 11, 0) + +#elif RBIMPL_COMPILER_BEFORE(Clang, 3, 6, 0) +# /* Clang 3.6.0 introduced __has_cpp_attribute. Prior to that following +# * attributes were already there. */ +# /* https://clang.llvm.org/cxx_status.html */ +# define RBIMPL_HAS_CPP_ATTRIBUTE0(_) (RBIMPL_HAS_CPP_ATTRIBUTE_ ## _) +# define RBIMPL_HAS_CPP_ATTRIBUTE_noreturn 200809 * RBIMPL_COMPILER_SINCE(Clang, 3, 3, 0) +# define RBIMPL_HAS_CPP_ATTRIBUTE_deprecated 201309 * RBIMPL_COMPILER_SINCE(Clang, 3, 4, 0) + +#elif RBIMPL_COMPILER_BEFORE(GCC, 5, 0, 0) +# /* GCC 5+ have __has_cpp_attribute, while 4.x had following attributes. */ +# /* https://gcc.gnu.org/projects/cxx-status.html */ +# define RBIMPL_HAS_CPP_ATTRIBUTE0(_) (RBIMPL_HAS_CPP_ATTRIBUTE_ ## _) +# define RBIMPL_HAS_CPP_ATTRIBUTE_noreturn 200809 * RBIMPL_COMPILER_SINCE(GCC, 4, 8, 0) +# define RBIMPL_HAS_CPP_ATTRIBUTE_deprecated 201309 * RBIMPL_COMPILER_SINCE(GCC, 4, 9, 0) + +#else +# /* :FIXME: +# * Candidate compilers to list here: +# * - icpc: They have __INTEL_CXX11_MODE__. +# */ +# define RBIMPL_HAS_CPP_ATTRIBUTE0(_) 0 +#endif +/** @endcond */ + +/** Wraps (or simulates) `__has_cpp_attribute`. */ +#if ! defined(__cplusplus) +# /* Makes no sense. */ +# define RBIMPL_HAS_CPP_ATTRIBUTE(_) 0 +#else +# /* GCC needs workarounds. See https://gcc.godbolt.org/z/jdz3pa */ +# define RBIMPL_HAS_CPP_ATTRIBUTE(_) \ + ((RBIMPL_HAS_CPP_ATTRIBUTE0(_) <= __cplusplus) ? RBIMPL_HAS_CPP_ATTRIBUTE0(_) : 0) +#endif + +#endif /* RBIMPL_HAS_CPP_ATTRIBUTE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/declspec_attribute.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/declspec_attribute.h new file mode 100644 index 0000000..1c526da --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/declspec_attribute.h @@ -0,0 +1,47 @@ +#ifndef RBIMPL_HAS_DECLSPEC_ATTRIBUTE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_HAS_DECLSPEC_ATTRIBUTE. + */ +#include "ruby/internal/compiler_since.h" + +/** Wraps (or simulates) `__has_declspec_attribute`. */ +#if defined(__has_declspec_attribute) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE(_) __has_declspec_attribute(_) +#else +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE(_) (RBIMPL_HAS_DECLSPEC_ATTRIBUTE_ ## _) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_align RBIMPL_COMPILER_SINCE(MSVC, 8, 0, 0) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_deprecated RBIMPL_COMPILER_SINCE(MSVC,13, 0, 0) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_dllexport RBIMPL_COMPILER_SINCE(MSVC, 8, 0, 0) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_dllimport RBIMPL_COMPILER_SINCE(MSVC, 8, 0, 0) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_empty_bases RBIMPL_COMPILER_SINCE(MSVC,19, 0, 23918) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_noalias RBIMPL_COMPILER_SINCE(MSVC, 8, 0, 0) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_noinline RBIMPL_COMPILER_SINCE(MSVC,13, 0, 0) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_noreturn RBIMPL_COMPILER_SINCE(MSVC,11, 0, 0) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_nothrow RBIMPL_COMPILER_SINCE(MSVC, 8, 0, 0) +# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_restrict RBIMPL_COMPILER_SINCE(MSVC,14, 0, 0) +# /* Note that "8, 0, 0" might be inaccurate. */ +# if ! defined(__cplusplus) +# /* Clang has this in both C/C++, but MSVC has this in C++ only.*/ +# undef RBIMPL_HAS_DECLSPEC_ATTRIBUTE_nothrow +# endif +#endif + +#endif /* RBIMPL_HAS_DECLSPEC_ATTRIBUTE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/extension.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/extension.h new file mode 100644 index 0000000..da8c0d3 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/extension.h @@ -0,0 +1,33 @@ +#ifndef RBIMPL_HAS_EXTENSION_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_HAS_EXTENSION_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_HAS_EXTENSION. + */ +#include "ruby/internal/has/feature.h" + +/** Wraps (or simulates) `__has_extension`. */ +#if defined(__has_extension) +# define RBIMPL_HAS_EXTENSION(_) __has_extension(_) +#else +# /* Pre-3.0 clang had __has_feature but not __has_extension. */ +# define RBIMPL_HAS_EXTENSION(_) RBIMPL_HAS_FEATURE(_) +#endif + +#endif /* RBIMPL_HAS_EXTENSION_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/feature.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/feature.h new file mode 100644 index 0000000..7be8d27 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/feature.h @@ -0,0 +1,31 @@ +#ifndef RBIMPL_HAS_FEATURE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_HAS_FEATURE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_HAS_FEATURE. + */ + +/** Wraps (or simulates) `__has_feature`. */ +#if defined(__has_feature) +# define RBIMPL_HAS_FEATURE(_) __has_feature(_) +#else +# define RBIMPL_HAS_FEATURE(_) 0 +#endif + +#endif /* RBIMPL_HAS_FEATURE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/warning.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/warning.h new file mode 100644 index 0000000..12d7db1 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/has/warning.h @@ -0,0 +1,31 @@ +#ifndef RBIMPL_HAS_WARNING_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_HAS_WARNING_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_HAS_WARNING. + */ + +/** Wraps (or simulates) `__has_warning`. */ +#if defined(__has_warning) +# define RBIMPL_HAS_WARNING(_) __has_warning(_) +#else +# define RBIMPL_HAS_WARNING(_) 0 +#endif + +#endif /* RBIMPL_HAS_WARNING_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/array.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/array.h new file mode 100644 index 0000000..2262c6f --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/array.h @@ -0,0 +1,657 @@ +#ifndef RBIMPL_INTERN_ARRAY_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_ARRAY_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cArray. + */ +#include "ruby/internal/attr/noalias.h" +#include "ruby/internal/attr/noexcept.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* array.c */ + +RBIMPL_ATTR_NONNULL(()) +RBIMPL_ATTR_NOALIAS() +/** + * Fills the memory region with a series of ::RUBY_Qnil. + * + * @param[out] buf Buffer to squash. + * @param[in] len Number of objects of `buf`. + * @post `buf` is filled with ::RUBY_Qnil. + */ +void rb_mem_clear(VALUE *buf, long len) + RBIMPL_ATTR_NOEXCEPT(true) + ; + +/** + * Identical to rb_ary_new_from_values(), except it expects exactly two + * parameters. + * + * @param[in] car Arbitrary ruby object. + * @param[in] cdr Arbitrary ruby object. + * @return An allocated new array, of length 2, whose contents are the + * passed objects. + */ +VALUE rb_assoc_new(VALUE car, VALUE cdr); + +/** + * Try converting an object to its array representation using its `to_ary` + * method, if any. If there is no such thing, returns ::RUBY_Qnil. + * + * @param[in] obj Arbitrary ruby object to convert. + * @exception rb_eTypeError `obj.to_ary` returned something non-Array. + * @retval RUBY_Qnil No conversion from `obj` to array defined. + * @retval otherwise Converted array representation of `obj`. + * @see rb_io_check_io + * @see rb_check_string_type + * @see rb_check_hash_type + */ +VALUE rb_check_array_type(VALUE obj); + +/** + * Allocates a new, empty array. + * + * @return An allocated new array, whose length is 0. + */ +VALUE rb_ary_new(void); + +/** + * Identical to rb_ary_new(), except it additionally specifies how many rooms + * of objects it should allocate. This way you can create an array whose + * capacity is bigger than the length of it. If you can say that an array + * grows to a specific amount, this could be effective than resizing an array + * over and over again and again. + * + * @param[in] capa Designed capacity of the generating array. + * @return An empty array, whose capacity is `capa`. + */ +VALUE rb_ary_new_capa(long capa); + +/** + * Constructs an array from the passed objects. + * + * @param[in] n Number of passed objects. + * @param[in] ... Arbitrary ruby objects, filled into the returning array. + * @return An array of size `n`, whose contents are the passed objects. + */ +VALUE rb_ary_new_from_args(long n, ...); + +/** + * Identical to rb_ary_new_from_args(), except how objects are passed. + * + * @param[in] n Number of objects of `elts`. + * @param[in] elts Arbitrary ruby objects, filled into the returning array. + * @return An array of size `n`, whose contents are the passed objects. + */ +VALUE rb_ary_new_from_values(long n, const VALUE *elts); + +/** + * Allocates a hidden (no class) empty array. + * + * @param[in] capa Designed capacity of the array. + * @return A hidden, empty array. + * @see rb_obj_hide() + */ +VALUE rb_ary_hidden_new(long capa); +#define rb_ary_tmp_new rb_ary_hidden_new + +/** + * Destroys the given array for no reason. + * + * @warning DO NOT USE IT. + * @warning Leave this task to our GC. + * @warning It was a wrong indea at the first place to let you know about it. + * + * @param[out] ary The array to be executed. + * @post The given array no longer exists. + * @note Maybe `Array#clear` could be what you want. + * + * @internal + * + * Should have moved this to `internal/array.h`. + */ +void rb_ary_free(VALUE ary); + +/** + * Declares that the array is about to be modified. This for instance let the + * array have a dedicated backend storage. + * + * @param[out] ary Array about to be modified. + * @exception rb_eFrozenError `ary` is frozen. + * @post Upon successful return the passed array is eligible to be + * modified. + */ +void rb_ary_modify(VALUE ary); + +/** @alias{rb_obj_freeze} */ +VALUE rb_ary_freeze(VALUE obj); + +RBIMPL_ATTR_PURE() +/** + * Queries if the passed two arrays share the same backend storage. A use-case + * for knowing such property is to take a snapshot of an array (using + * e.g. rb_ary_replace()), then check later if that snapshot still shares the + * storage with the original. Taking a snapshot is ultra-cheap. If nothing + * happens the impact shall be minimal. But if someone modifies the original, + * that entity shall pay the cost of copy-on-write. You can detect that using + * this API. + * + * @param[in] lhs Comparison LHS. + * @param[in] rhs Comparison RHS. + * @retval RUBY_Qtrue They share the same backend storage. + * @retval RUBY_Qfalse They are distinct. + * @pre Both arguments must be of ::RUBY_T_ARRAY. + */ +VALUE rb_ary_shared_with_p(VALUE lhs, VALUE rhs); + +/** + * Queries element(s) of an array. This is complicated! Refer `Array#slice` + * document for the complete description of how it behaves. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Up to 2 objects. + * @param[in] ary Target array. + * @exception rb_eTypeError `argv` (or its part) includes non-Integer. + * @exception rb_eRangeError rb_cArithSeq is passed, and is OOB. + * @return An element (if requested), or an array of elements (if + * requested), or ::RUBY_Qnil (if index OOB). + * + * @internal + * + * ```rbs + * # "int" is ::Integer or `#to_int`, defined in builtin.rbs + * + * class ::Array[unchecked out T] + * def slice + * : (int i) -> T? + * | (int beg, int len) -> ::Array[T]? + * | (Range[int] r) -> ::Array[T]? + * | (ArithmeticSequence as) -> ::Array[T]? # This also raises RagneError. + * end + * ``` + */ +VALUE rb_ary_aref(int argc, const VALUE *argv, VALUE ary); + +/** + * Obtains a part of the passed array. + * + * @param[in] ary Target array. + * @param[in] beg Subpart index. + * @param[in] len Requested length of returning array. + * @retval RUBY_Qnil Requested range out of bounds of `ary`. + * @retval otherwise An allocated new array whose contents are `ary`'s + * `beg` to `len`. + * @note Return array can be shorter than `len` when for instance + * `[0, 1, 2, 3]`'s 4th to 1,000,000,000th is requested. + */ +VALUE rb_ary_subseq(VALUE ary, long beg, long len); + +/** + * Destructively stores the passed value to the passed array's passed index. + * It also resizes the array's backend storage so that the requested index is + * not out of bounds. + * + * @param[out] ary Target array to modify. + * @param[in] key Where to store `val`. + * @param[in] val What to store at `key`. + * @exception rb_eFrozenError `ary` is frozen. + * @exception rb_eIndexError `key` is negative. + * @post `ary`'s `key`th position is occupied with `val`. + * @post Depending on `key` and previous length of `ary` this operation + * can also create a series of "hole" positions inside of the + * backend storage. They are filled with ::RUBY_Qnil. + */ +void rb_ary_store(VALUE ary, long key, VALUE val); + +/** + * Duplicates an array. + * + * @param[in] ary Target to duplicate. + * @return An allocated new array whose contents are identical to `ary`. + * + * @internal + * + * Not sure why this has to be something different from `ary_make_shared_copy`, + * which seems much efficient. + */ +VALUE rb_ary_dup(VALUE ary); + +/** + * I guess there is no use case of this function in extension libraries, but + * this is a routine identical to rb_ary_dup(). This makes the most sense when + * the passed array is formerly hidden by rb_obj_hide(). + * + * @param[in] ary An array, possibly hidden. + * @return A duplicated new instance of ::rb_cArray. + */ +VALUE rb_ary_resurrect(VALUE ary); + +/** + * Force converts an object to an array. It first tries its `#to_ary` method. + * Takes the result if any. Otherwise creates an array of size 1 whose sole + * element is the passed object. + * + * @param[in] obj Arbitrary ruby object. + * @return An array representation of `obj`. + * @note Unlike rb_str_to_str() which is a variant of + * rb_check_string_type(), rb_ary_to_ary() is not a variant of + * rb_check_array_type(). + */ +VALUE rb_ary_to_ary(VALUE obj); + +/** + * Converts an array into a human-readable string. Historically its behaviour + * changed over time. Currently it is identical to calling `inspect` method. + * This behaviour is from that of python (!!) circa 2006. + * + * @param[in] ary Array to inspect. + * @return Recursively inspected representation of `ary`. + * @see `[ruby-dev:29520]` + */ +VALUE rb_ary_to_s(VALUE ary); + +/** + * Destructively appends multiple elements at the end of the array. + * + * @param[out] ary Where to push `train`. + * @param[in] train Arbitrary ruby objects to push to `ary`. + * @param[in] len Number of objects of `train`. + * @exception rb_eIndexError `len` too large. + * @exception rb_eFrozenError `ary` is frozen. + * @return The passed `ary`. + * @post `ary` has contents from `train` appended at its end. + */ +VALUE rb_ary_cat(VALUE ary, const VALUE *train, long len); + +/** + * Special case of rb_ary_cat() that it adds only one element. + * + * @param[out] ary Where to push `elem`. + * @param[in] elem Arbitrary ruby object to push. + * @exception rb_eFrozenError `ary` is frozen. + * @return The passed `ary`. + * @post `ary` has `elem` appended at its end. + */ +VALUE rb_ary_push(VALUE ary, VALUE elem); + +/** + * Destructively deletes an element from the end of the passed array and + * returns what was deleted. + * + * @param[out] ary Target array to modify. + * @exception rb_eFrozenError `ary` is frozen. + * @return What was at the end of `ary`, or ::RUBY_Qnil if there is + * nothing to remove. + * @post `ary`'s last element, if any, is removed. + * @note There is no way to distinguish whether `ary` was an 1-element + * array whose content was ::RUBY_Qnil, or was empty. + */ +VALUE rb_ary_pop(VALUE ary); + +/** + * Destructively deletes an element from the beginning of the passed array and + * returns what was deleted. It can also be seen as a routine identical to + * rb_ary_pop(), except which side of the array to scrub. + * + * @param[out] ary Target array to modify. + * @exception rb_eFrozenError `ary` is frozen. + * @return What was at the beginning of `ary`, or ::RUBY_Qnil if there is + * nothing to remove. + * @post `ary`'s first element, if any, is removed. As the name implies + * everything else remaining in `ary` gets moved towards `ary`'s + * beginning. + * @note There is no way to distinguish whether `ary` was an 1-element + * array whose content was ::RUBY_Qnil, or was empty. + */ +VALUE rb_ary_shift(VALUE ary); + +/** + * Destructively prepends the passed item at the beginning of the passed array. + * It can also be seen as a routine identical to rb_ary_push(), except which + * side of the array to modify. + * + * @param[out] ary Target array to modify. + * @param[in] elem Arbitrary ruby object to unshift. + * @exception rb_eFrozenError `ary` is frozen. + * @return The passed `ary`. + * @post `ary` has `elem` prepended at this beginning. + */ +VALUE rb_ary_unshift(VALUE ary, VALUE elem); + +RBIMPL_ATTR_PURE() +/** + * Queries an element of an array. When passed offset is negative it counts + * backwards. + * + * @param[in] ary An array to look into. + * @param[in] off Offset (can be negative). + * @return ::RUBY_Qnil when `off` is out of bounds of `ary`. Otherwise + * what is stored at `off`-th position of `ary`. + * @note `ary`'s `off`-th element can happen to be ::RUBY_Qnil. + */ +VALUE rb_ary_entry(VALUE ary, long off); + +/** + * Iteratively yields each element of the passed array to the implicitly passed + * block if any. In case there is no block given, an enumerator that does the + * thing is generated instead. + * + * @param[in] ary Array to iterate over. + * @retval ary Passed block was evaluated. + * @retval otherwise An instance of ::rb_cEnumerator for `Array#each`. + */ +VALUE rb_ary_each(VALUE ary); + +/** + * Recursively stringises the elements of the passed array, flattens that + * result, then joins the sequence using the passed separator. + * + * @param[in] ary Target array to convert. + * @param[in] sep Separator. Either a string, or ::RUBY_Qnil + * if you want no separator. + * @exception rb_eArgError Infinite recursion in `ary`. + * @exception rb_eTypeError `sep` is not a string. + * @exception rb_eEncCompatError Strings do not agree with their encodings. + * @return An instance of ::rb_cString which concatenates stringised + * contents of `ary`, using `sep` as separator. + */ +VALUE rb_ary_join(VALUE ary, VALUE sep); + +/** + * _Destructively_ reverses the passed array in-place. + * + * @warning This is `Array#reverse!`, not `Array#reverse`. + * @param[out] ary Target array to modify. + * @exception rb_eFrozenError `ary` is frozen. + * @return Passed `ary`. + * @post `ary` is reversed. + */ +VALUE rb_ary_reverse(VALUE ary); + +/** + * _Destructively_ rotates the passed array in-place to towards its end. The + * amount can be negative. Would rotate to the opposite direction then. + * + * @warning This is `Array#rotate!`, not `Array#rotate`. + * @param[out] ary Target array to modify. + * @param[in] rot Amount of rotation. + * @exception rb_eFrozenError `ary` is frozen. + * @retval RUBY_Qnil Not rotated. + * @retval ary Rotated. + * @post `ary` is rotated. + */ +VALUE rb_ary_rotate(VALUE ary, long rot); + +/** + * Creates a copy of the passed array, whose elements are sorted according to + * their `<=>` result. + * + * @param[in] ary Array to sort. + * @exception rb_eArgError Comparison not defined among elements. + * @exception rb_eRuntimeError Infinite recursion in `<=>`. + * @return A copy of `ary`, sorted. + * @note As of writing this function uses `qsort` as backend algorithm, + * which means the result is unstable (in terms of sort stability). + */ +VALUE rb_ary_sort(VALUE ary); + +/** + * Destructively sorts the passed array in-place, according to each elements' + * `<=>` result. + * + * @param[in] ary Target array to modify. + * @exception rb_eArgError Comparison not defined among elements. + * @exception rb_eRuntimeError Infinite recursion in `<=>`. + * @return Passed `ary`. + * @post `ary` is sorted. + * @note As of writing this function uses `qsort` as backend algorithm, + * which means the result is unstable (in terms of sort stability). + */ +VALUE rb_ary_sort_bang(VALUE ary); + +/** + * Destructively removes elements from the passed array, so that there would be + * no elements inside that satisfy `==` relationship with the passed object. + * Returns the last deleted element if any. But in case there was nothing to + * delete it gets complicated. It checks for the implicitly passed block. If + * there is a block the return value would be what the block evaluates to. + * Otherwise it resorts to ::RUBY_Qnil. + * + * @param[out] ary Target array to modify. + * @param[in] elem Template object to match against each element. + * @exception rb_eFrozenError `ary` is frozen. + * @return What was deleted, or what was the block returned, or + * ::RUBY_Qnil (see above). + * @post All elements that have `==` relationship with `elem` are purged + * from `ary`. Elements shift their positions so that `ary` gets + * compact. + * + * @internal + * + * Internally there also is `rb_ary_delete_same`, which compares by identity. + */ +VALUE rb_ary_delete(VALUE ary, VALUE elem); + +/** + * Destructively removes an element which resides at the specific index of the + * passed array. Unlike rb_ary_stre() the index can be negative, which means + * the index counts backwards from the array's tail. + * + * @param[out] ary Target array to modify. + * @param[in] pos Position (can be negative). + * @exception rb_eFrozenError `ary` is frozen. + * @return What was deleted, or ::RUBY_Qnil in case of OOB. + * @post `ary`'s `pos`-th element is deleted if any. + * @note There is no way to distinguish whether `pos` is out of bound, + * or `pos` did exist but stored ::RUBY_Qnil as an ordinal value. + */ +VALUE rb_ary_delete_at(VALUE ary, long pos); + +/** + * Destructively removes everything form an array. + * + * @param[out] ary Target array to modify. + * @exception rb_eFrozenError `ary` is frozen. + * @return The passed `ary`. + * @post `ary` is an empty array. + */ +VALUE rb_ary_clear(VALUE ary); + +/** + * Creates a new array, concatenating the former to the latter. + * + * @param[in] lhs Source array #1. + * @param[in] rhs Source array #2. + * @exception rb_eIndexError Result array too big. + * @return A new array containing `rhs` concatenated to `lhs`. + * @note This operation doesn't commute. Don't get confused by the + * "plus" terminology. For historical reasons there are some + * noncommutative `+`s in Ruby. This is one of such things. There + * has been a long discussion around `+`s in programming languages. + * + * @internal + * + * rb_ary_concat() is not a destructive version of rb_ary_plus(). They raise + * different exceptions. Don't know why though. + */ +VALUE rb_ary_plus(VALUE lhs, VALUE rhs); + +/** + * Destructively appends the contents of latter into the end of former. + * + * @param[out] lhs Destination array. + * @param[in] rhs Source array. + * @exception rb_eFrozenError `lhs` is frozen. + * @exception rb_eIndexError Result array too big. + * @exception rb_eTypeError `rhs` doesn't respond to `#to_ary`. + * @return The passed `lhs`. + * @post `lhs` has contents of `rhs` appended to its end. + */ +VALUE rb_ary_concat(VALUE lhs, VALUE rhs); + +/** + * Looks up the passed key, assuming the passed array is an alist. An "alist" + * here is a list of "association"s, much like that of Emacs. Emacs has + * `assoc` function that behaves exactly the same as this one. + * + * ```ruby + * # This is an example of aliist. + * auto_mode_alist = [ + * [ /\.[ch]\z/, :"c-mode" ], + * [ /\.[ch]pp\z/, :"c++-mode" ], + * [ /\.awk\z/, :"awk-mode" ], + * [ /\.cs\z/, :"csharp-mode" ], + * [ /\.go\z/, :"go-mode" ], + * [ /\.java\z/, :"java-mode" ], + * [ /\.pas\z/, :"pascal-mode" ], + * [ /\.rs\z/, :"rust-mode" ], + * [ /\.txt\z/, :"text-mode" ], + * ] + * ``` + * + * This function scans the passed array looking for an element, which itself is + * an array, whose first element is the passed key. If no such element is + * found, returns ::RUBY_Qnil. + * + * Although this function expects the passed array be an array of arrays, it + * can happily accept non-array elements; it just ignores such things. + * + * @param[in] alist An array of arrays. + * @param[in] key Needle. + * @retval RUBY_Qnil Nothing was found. + * @retval otherwise An element in `alist` whose first element is in `==` + * relationship with `key`. + */ +VALUE rb_ary_assoc(VALUE alist, VALUE key); + +/** + * Identical to rb_ary_assoc(), except it scans the passed array from the + * opposite direction. + * + * @param[in] alist An array of arrays. + * @param[in] key Needle. + * @retval RUBY_Qnil Nothing was found. + * @retval otherwise An element in `alist` whose first element is in `==` + * relationship with `key`. + */ +VALUE rb_ary_rassoc(VALUE alist, VALUE key); + +/** + * Queries if the passed array has the passed entry. + * + * @param[in] ary Target array to scan. + * @param[in] elem Target array to find. + * @retval RUBY_Qfalse No element in `ary` is in `==` relationship with + * `elem`. + * @retval RUBY_Qtrue There is at least one element in `ary` which is in + * `==` relationship with `elem`. + * + * @internal + * + * This is the only function in the entire C API that is named using third + * person singular form of a verb (except #ISASCII etc., which are not our + * naming). The counterpart Ruby API of this function is `Array#include?`. + */ +VALUE rb_ary_includes(VALUE ary, VALUE elem); + +/** + * Recursively compares each elements of the two arrays one-by-one using `<=>`. + * + * @param[in] lhs Comparison LHS. + * @param[in] rhs Comparison RHS. + * @retval RUBY_Qnil `lhs` and `rhs` are not comparable. + * @retval -1 `lhs` is less than `rhs`. + * @retval 0 They are equal. + * @retval 1 `rhs` is less then `lhs`. + */ +VALUE rb_ary_cmp(VALUE lhs, VALUE rhs); + +/** + * Replaces the contents of the former object with the contents of the latter. + * + * @param[out] copy Destination object. + * @param[in] orig Source object. + * @exception rb_eTypeError `orig` has no implicit conversion to Array. + * @exception rb_eFrozenError `copy` is frozen. + * @return The passed `copy`. + * @post `copy`'s former components are abandoned. It now has the + * identical length and contents to `orig`. + */ +VALUE rb_ary_replace(VALUE copy, VALUE orig); + +/** + * This _was_ a generalisation of `Array#values_at`, `Struct#values_at`, and + * `MatchData#values_at`. It begun its life as a refactoring effort. However + * as Ruby evolves over time, as of writing none of aforementioned methods + * share their implementations at all. This function is not deprecated; still + * works as it has been. But it is now kind of like a rudimentum. + * + * This function takes an object, which is a receiver, and a series of + * "indices", which are either integers, or ranges of integers. Calls the + * passed callback for each of those indices, along with the receiver. This + * callback is expected to do something like rb_ary_aref(), rb_struct_aref(), + * etc. In case of a range index rb_range_beg_len() expands the range. + * Finally return values of the callback are gathered as an array, then + * returned. + * + * @param[in] obj Arbitrary ruby object. + * @param[in] olen "Length" of `obj`. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv List of "indices", described above. + * @param[in] func Callback function. + * @return A new instance of ::rb_cArray gathering `func`outputs. + * + * @internal + * + * `Array#values_at` no longer uses this function. There is no reason apart + * from historical ones to list this function here. + */ +VALUE rb_get_values_at(VALUE obj, long olen, int argc, const VALUE *argv, VALUE (*func)(VALUE obj, long oidx)); + +/** + * Expands or shrinks the passed array to the passed length. + * + * @param[out] ary An array to modify. + * @param[in] len Desired length of `ary`. + * @exception rb_eFrozenError `ary` is frozen. + * @exception rb_eIndexError `len` too long. + * @return The passed `ary`. + * @post `ary`'s length is `len`. + * @post Depending on `len` and previous length of `ary` this operation + * can also create a series of "hole" positions inside of the + * backend storage. They are filled with ::RUBY_Qnil. + * + * @internal + * + * `len` is signed. Intentional or...? + */ +VALUE rb_ary_resize(VALUE ary, long len); + +#define rb_ary_new2 rb_ary_new_capa /**< @old{rb_ary_new_capa} */ +#define rb_ary_new3 rb_ary_new_from_args /**< @old{rb_ary_new_from_args} */ +#define rb_ary_new4 rb_ary_new_from_values /**< @old{rb_ary_new_from_values} */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_ARRAY_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/bignum.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/bignum.h new file mode 100644 index 0000000..43d6801 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/bignum.h @@ -0,0 +1,846 @@ +#ifndef RBIMPL_INTERN_BIGNUM_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_BIGNUM_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to so-called rb_cBignum. + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/backward/2/long_long.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* bignum.c */ + +/** + * Allocates a bignum object. + * + * @param[in] len Length of the bignum's backend storage, in words. + * @param[in] sign Sign of the bignum. + * @return An allocated new bignum instance. + * @note This only allocates an object, doesn't fill its value in. + * + * @internal + * + * @shyouhei finds it hard to use from extension libraries. `len` is per + * `BDIGIT` but its definition is hidden. + */ +VALUE rb_big_new(size_t len, int sign); + +/** + * Queries if the passed bignum instance is a "bigzro". What is a bigzero? + * Well, bignums are for very big integers, but can also represent tiny ones + * like -1, 0, 1. Bigzero are instances of bignums whose values are zero. + * Knowing if a bignum is bigzero can be handy on occasions, like for instance + * detecting division by zero situation. + * + * @param[in] x A bignum. + * @retval 1 It is a bigzero. + * @retval 0 Otherwise. + */ +int rb_bigzero_p(VALUE x); + +/** + * Duplicates the given bignum. + * + * @param[in] num A bignum. + * @return An allocated bignum, who is equivalent to `num`. + */ +VALUE rb_big_clone(VALUE num); + +/** + * Destructively modify the passed bignum into 2's complement representation. + * + * @note By default bignums are in signed magnitude system. + * + * @param[out] num A bignum to modify. + */ +void rb_big_2comp(VALUE num); + +/** + * Normalises the passed bignum. It for instance returns a fixnum of the same + * value if fixnum can represent that number. + * + * @param[out] x Target bignum (can be destructively modified). + * @return An integer of the identical value (can be `x` itself). + */ +VALUE rb_big_norm(VALUE x); + +/** + * Destructively resizes the backend storage of the passed bignum. + * + * @param[out] big A bignum. + * @param[in] len New length of `big`'s backend, in words. + */ +void rb_big_resize(VALUE big, size_t len); + +RBIMPL_ATTR_NONNULL(()) +/** + * Parses C's string to convert into a Ruby's integer. It understands prefixes + * (e.g. `0x`) and underscores. + * + * @param[in] str Stringised representation of the return value. + * @param[in] base Base of conversion. Must be `-36..36` inclusive, + * except `1`. `2..36` means the conversion is done + * according to it, with unmatched prefix understood + * as a part of the result. `-36..-2` means the + * conversion honours prefix when present, or use + * `-base` when absent. `0` is equivalent to `-10`. + * `-1` mandates a prefix. `1` is an error. + * @param[in] badcheck Whether to raise ::rb_eArgError on failure. If + * `0` is passed here this function can return + * `INT2FIX(0)` for parse errors. + * @exception rb_eArgError Failed to parse (and `badcheck` is truthy). + * @return An instance of ::rb_cInteger, which is a numeric interpretation + * of what is written in `str`. + * + * @internal + * + * Not sure if it intentionally accepts `base == -1` or is just buggy. Nobody + * practically uses negative bases these days. + */ +VALUE rb_cstr_to_inum(const char *str, int base, int badcheck); + +/** + * Identical to rb_cstr2inum(), except it takes Ruby's strings instead of C's. + * + * @param[in] str Stringised representation of the return + * value. + * @param[in] base Base of conversion. Must be `-36..36` + * inclusive, except `1`. `2..36` means the + * conversion is done according to it, with + * unmatched prefix understood as a part of the + * result. `-36..-2` means the conversion + * honours prefix when present, or use `-base` + * when absent. `0` is equivalent to `-10`. + * `-1` mandates a prefix. `1` is an error. + * @param[in] badcheck Whether to raise ::rb_eArgError on failure. + * If `0` is passed here this function can + * return `INT2FIX(0)` for parse errors. + * @exception rb_eArgError Failed to parse (and `badcheck` is truthy). + * @exception rb_eTypeError `str` is not a string. + * @exception rb_eEncCompatError `str` is not ASCII compatible. + * @return An instance of ::rb_cInteger, which is a numeric interpretation + * of what is written in `str`. + */ +VALUE rb_str_to_inum(VALUE str, int base, int badcheck); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_cstr_to_inum(), except the second argument controls the base + * and badcheck at once. It basically doesn't raise for parse errors, unless + * the base is zero. + * + * This is an older API. New codes might prefer rb_cstr_to_inum(). + * + * @param[in] str Stringised representation of the return value. + * @param[in] base Base of conversion. Must be `-36..36` inclusive, + * except `1`. `2..36` means the conversion is done + * according to it, with unmatched prefix understood + * as a part of the result. `-36..-2` means the + * conversion honours prefix when present, or use + * `-base` when absent. `0` is equivalent to `-10`. + * `-1` mandates a prefix. `1` is an error. + * @exception rb_eArgError Failed to parse (and `base` is zero). + * @return An instance of ::rb_cInteger, which is a numeric interpretation + * of what is written in `str`. + */ +VALUE rb_cstr2inum(const char *str, int base); + +/** + * Identical to rb_str_to_inum(), except the second argument controls the base + * and badcheck at once. It can also be seen as a routine identical to + * rb_cstr2inum(), except it takes Ruby's strings instead of C's. + * + * This is an older API. New codes might prefer rb_cstr_to_inum(). + * + * @param[in] str Stringised representation of the return + * value. + * @param[in] base Base of conversion. Must be `-36..36` + * inclusive, except `1`. `2..36` means the + * conversion is done according to it, with + * unmatched prefix understood as a part of the + * result. `-36..-2` means the conversion + * honours prefix when present, or use `-base` + * when absent. `0` is equivalent to `-10`. + * `-1` mandates a prefix. `1` is an error. + * @exception rb_eArgError Failed to parse (and `base` is zero). + * @exception rb_eTypeError `str` is not a string. + * @exception rb_eEncCompatError `str` is not ASCII compatible. + * @return An instance of ::rb_cInteger, which is a numeric interpretation + * of what is written in `str`. + */ +VALUE rb_str2inum(VALUE str, int base); + +/** + * Generates a place-value representation of the passed integer. + * + * @param[in] x An integer to stringify. + * @param[in] base `2` to `36` inclusive for each radix. + * @exception rb_eArgError `base` is out of range. + * @exception rb_eRangeError `x` is too big, cannot represent in string. + * @return An instance of ::rb_cString which represents `x`. + */ +VALUE rb_big2str(VALUE x, int base); + +/** + * Converts a bignum into C's `long`. + * + * @param[in] x A bignum. + * @exception rb_eRangeError `x` is out of range of `long`. + * @return The passed value converted into C's `long`. + */ +long rb_big2long(VALUE x); + +/** @alias{rb_big2long} */ +#define rb_big2int(x) rb_big2long(x) + +/** + * Converts a bignum into C's `unsigned long`. + * + * @param[in] x A bignum. + * @exception rb_eRangeError `x` is out of range of `unsigned long`. + * @return The passed value converted into C's `unsigned long`. + * + * @internal + * + * This function can generate a very large positive integer for a negative + * input. For instance applying Ruby's -4,611,686,018,427,387,905 to this + * function yields C's 13,835,058,055,282,163,711 on my machine. This is how + * it has been. Cannot change any longer. + */ +unsigned long rb_big2ulong(VALUE x); + +/** @alias{rb_big2long} */ +#define rb_big2uint(x) rb_big2ulong(x) + +#if HAVE_LONG_LONG +/** + * Converts a bignum into C's `long long`. + * + * @param[in] x A bignum. + * @exception rb_eRangeError `x` is out of range of `long long`. + * @return The passed value converted into C's `long long`. + */ +LONG_LONG rb_big2ll(VALUE); + +/** + * Converts a bignum into C's `unsigned long long`. + * + * @param[in] x A bignum. + * @exception rb_eRangeError `x` is out of range of `unsigned long long`. + * @return The passed value converted into C's `unsigned long long`. + * + * @internal + * + * This function can generate a very large positive integer for a negative + * input. For instance applying Ruby's -4,611,686,018,427,387,905 to this + * function yields C's 13,835,058,055,282,163,711 on my machine. This is how + * it has been. Cannot change any longer. + */ +unsigned LONG_LONG rb_big2ull(VALUE); + +#endif /* HAVE_LONG_LONG */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Converts a bignum into a series of its parts. + * + * @param[in] val An integer. + * @param[out] buf Return buffer. + * @param[in] num_longs Number of words of `buf`. + * @exception rb_eTypeError `val` doesn't respond to `#to_int`. + * @post `buf` is filled with `val`'s 2's complement representation, in + * the host CPU's native byte order, from least significant word + * towards the most significant one, for `num_longs` words. + * @note The "pack" terminology comes from `Array#pack`. + */ +void rb_big_pack(VALUE val, unsigned long *buf, long num_longs); + +RBIMPL_ATTR_NONNULL(()) +/** + * Constructs a (possibly very big) bignum from a series of integers. `buf[0]` + * would be the return value's least significant word; `buf[num_longs-1]` would + * be that of most significant. + * + * @param[in] buf A series of integers. + * @param[in] num_longs Number of words of `buf`. + * @exception rb_eArgError Result would be too big. + * @return An instance of ::rb_cInteger which is an "unpack"-ed value of + * the parameters. + * @note The "unpack" terminology comes from `String#pack`. + */ +VALUE rb_big_unpack(unsigned long *buf, long num_longs); + +/* pack.c */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Encodes a Unicode codepoint into its UTF-8 representation. + * + * @param[out] buf Return buffer, must at least be 6 bytes width. + * @param[in] uv An Unicode codepoint. + * @exception rb_eRangeError `uv` is out of Unicode. + * @return Number of bytes written to `buf` + * @post `buf` holds a UTF-8 representation of `uv`. + */ +int rb_uv_to_utf8(char buf[6], unsigned long uv); + +/* bignum.c */ + +/** + * Converts a C's `double` into a bignum. + * + * @param[in] d A value to convert. + * @exception rb_eFloatDomainError `d` is Inf/NaN. + * @return An instance of ::rb_cInteger whose value is approximately `d`. + * + * @internal + * + * @shyouhei is not sure if the result is guaranteed to be the nearest integer + * of `d`. + */ +VALUE rb_dbl2big(double d); + +/** + * Converts a bignum into C's `double`. + * + * @param[in] x A bignum. + * @return The passed value converted into C's `double`. + * + * @internal + * + * @shyouhei is not sure if the result is guaranteed to be `x`'s nearest value + * that a `double` can represent. + */ +double rb_big2dbl(VALUE x); + +/** + * Compares the passed two bignums. + * + * @param[in] lhs Comparison LHS. + * @param[in] rhs Comparison RHS. + * @retval -1 `rhs` is bigger than `lhs`. + * @retval 0 They are identical. + * @retval 1 `lhs` is bigger than `rhs`. + * @see rb_num_coerce_cmp() + */ +VALUE rb_big_cmp(VALUE lhs, VALUE rhs); + +/** + * Equality, in terms of `==`. This checks if the _value_ is the same, not the + * identity. For instance `1 == 1.0` must hold. + * + * @param[in] lhs Comparison LHS. + * @param[in] rhs Comparison RHS. + * @retval RUBY_Qtrue They are the same. + * @retval RUBY_Qfalse They are different. + */ +VALUE rb_big_eq(VALUE lhs, VALUE rhs); + +/** + * Equality, in terms of `eql?`. Unlike rb_big_eq() it does not convert + * ::rb_cFloat etc. This function returns ::RUBY_Qtrue if and only if both + * parameters are bignums, which represent the identical numerical value. + * + * @param[in] lhs Comparison LHS. + * @param[in] rhs Comparison RHS. + * @retval RUBY_Qtrue They are identical. + * @retval RUBY_Qfalse They are distinct. + */ +VALUE rb_big_eql(VALUE lhs, VALUE rhs); + +/** + * Performs addition of the passed two objects. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x + y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_big_plus(VALUE x, VALUE y); + +/** + * Performs subtraction of the passed two objects. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x - y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_big_minus(VALUE x, VALUE y); + +/** + * Performs multiplication of the passed two objects. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x * y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_big_mul(VALUE x, VALUE y); + +/** + * Performs division of the passed two objects. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x / y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_big_div(VALUE x, VALUE y); + +/** + * Performs "integer division". This is different from rb_big_div(). + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x.div y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_big_idiv(VALUE x, VALUE y); + +/** + * Performs modulo of the passed two objects. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x % y` evaluates to. + * @see rb_num_coerce_bin() + * + * @internal + * + * There also is `rb_big_remainder()` internally, which is different from this + * one. + */ +VALUE rb_big_modulo(VALUE x, VALUE y); + +/** + * Performs "divmod" operation. The operation in bignum's context is that it + * calculates rb_big_idiv() and rb_big_modulo() at once. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x.divmod y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_big_divmod(VALUE x, VALUE y); + +/** + * Raises `x` to the powerof `y`. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x ** y` evaluates to. + * @see rb_num_coerce_bin() + * @note This can return an instance of ::rb_cFloat, even when both `x` + * and `y` are bignums. Or an instance of ::rb_cRational, when for + * instance `y` is negative. + */ +VALUE rb_big_pow(VALUE x, VALUE y); + +/** + * Performs bitwise and of the passed two objects. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x & y` evaluates to. + * @see rb_num_coerce_bit() + */ +VALUE rb_big_and(VALUE x, VALUE y); + +/** + * Performs bitwise or of the passed two objects. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x | y` evaluates to. + * @see rb_num_coerce_bit() + */ +VALUE rb_big_or(VALUE x, VALUE y); + +/** + * Performs exclusive or of the passed two objects. + * + * @param[in] x A bignum. + * @param[in] y Arbitrary ruby object. + * @return What `x ^ y` evaluates to. + * @see rb_num_coerce_bit() + */ +VALUE rb_big_xor(VALUE x, VALUE y); + +/** + * Performs shift left. + * + * @param[in] x A bignum. + * @param[in] y Shift amount. + * @exception rb_eTypeError `y` is not an integer. + * @exception rb_eArgError `y` is too big. + * @return `x` shifted left to `y` bits. + * @note `y` can be negative. Shifts right then. + */ +VALUE rb_big_lshift(VALUE x, VALUE y); + +/** + * Performs shift right. + * + * @param[in] x A bignum. + * @param[in] y Shift amount. + * @exception rb_eTypeError `y` is not an integer. + * @return `x` shifted right to `y` bits. + * @note This is arithmetic. Because bignums are not bitfields there is + * no shift right logical operator. + */ +VALUE rb_big_rshift(VALUE x, VALUE y); + +/** + * @name Flags for rb_integer_pack()/rb_integer_unpack() + * @{ + */ + +/** Stores/interprets the most significant word as the first word. */ +#define INTEGER_PACK_MSWORD_FIRST 0x01 + +/** Stores/interprets the least significant word as the first word. */ +#define INTEGER_PACK_LSWORD_FIRST 0x02 + +/** + * Stores/interprets the most significant byte in a word as the first byte in + * the word. + */ +#define INTEGER_PACK_MSBYTE_FIRST 0x10 + +/** + * Stores/interprets the least significant byte in a word as the first byte in + * the word. + */ +#define INTEGER_PACK_LSBYTE_FIRST 0x20 + +/** + * Means either #INTEGER_PACK_MSBYTE_FIRST or #INTEGER_PACK_LSBYTE_FIRST, + * depending on the host processor's endian. + */ +#define INTEGER_PACK_NATIVE_BYTE_ORDER 0x40 + +/** Uses 2's complement representation. */ +#define INTEGER_PACK_2COMP 0x80 + +/** Uses "generic" implementation (handy on test). */ +#define INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION 0x400 + +/** + * Always generates a bignum object even if the integer can be representable + * using fixnum scheme (unpack only) + */ +#define INTEGER_PACK_FORCE_BIGNUM 0x100 + +/** + * Interprets the input as a signed negative number (unpack only). If not + * specified returns a positive number. + */ +#define INTEGER_PACK_NEGATIVE 0x200 + +/** Little endian combination. */ +#define INTEGER_PACK_LITTLE_ENDIAN \ + (INTEGER_PACK_LSWORD_FIRST | \ + INTEGER_PACK_LSBYTE_FIRST) + +/** Big endian combination */ +#define INTEGER_PACK_BIG_ENDIAN \ + (INTEGER_PACK_MSWORD_FIRST | \ + INTEGER_PACK_MSBYTE_FIRST) + +/** @} */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Exports an integer into a buffer. This function fills the buffer specified + * by `words` and `numwords` as `val` in the format specified by `wordsize`, + * `nails` and `flags`. + * + * @param[in] val Integer or integer-like object which has + * `#to_int` method. + * @param[out] words Return buffer. + * @param[in] numwords Number of words of `words`. + * @param[in] wordsize Number of bytes per word. + * @param[in] nails Number of padding bits in a word. Most + * significant nails bits of each word are filled + * by zero. + * @param[in] flags Bitwise or of constants whose name starts + * "INTEGER_PACK_". + * @exception rb_eTypeError `val` doesn't respond to `#to_int`. + * + * Possible flags are: + * + * - #INTEGER_PACK_MSWORD_FIRST: + * Stores the most significant word as the first word. + * + * - #INTEGER_PACK_LSWORD_FIRST: + * Stores the least significant word as the first word. + * + * - #INTEGER_PACK_MSBYTE_FIRST: + * Stores the most significant byte in a word as the first byte in the + * word. + * + * - #INTEGER_PACK_LSBYTE_FIRST: + * Stores the least significant byte in a word as the first byte in the + * word. + * + * - #INTEGER_PACK_NATIVE_BYTE_ORDER: + * Either #INTEGER_PACK_MSBYTE_FIRST or #INTEGER_PACK_LSBYTE_FIRST + * corresponding to the host's endian. + * + * - #INTEGER_PACK_2COMP: + * Uses 2's complement representation. + * + * - #INTEGER_PACK_LITTLE_ENDIAN: Shorthand of + * `INTEGER_PACK_LSWORD_FIRST|INTEGER_PACK_LSBYTE_FIRST`. + * + * - #INTEGER_PACK_BIG_ENDIAN: Shorthand of + * `INTEGER_PACK_MSWORD_FIRST|INTEGER_PACK_MSBYTE_FIRST`. + * + * - #INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION: + * Uses generic implementation (for test and debug). + * + * This function fills the buffer specified by `words` as `val`'s 2's + * complement representation if #INTEGER_PACK_2COMP is specified in `flags`. + * Otherwise it fills `words` as `abs(val)` and signedness is returned via the + * return value. + * + * @return The signedness and overflow condition. The overflow condition + * depends on #INTEGER_PACK_2COMP. + * + * When #INTEGER_PACK_2COMP is not specified: + * + * - `-2` : + * Negative overflow. `val <= -2**(numwords*(wordsize*CHAR_BIT-nails))` + * + * - `-1` : + * Negative without overflow. + * `-2**(numwords*(wordsize*CHAR_BIT-nails)) < val < 0` + * + * - `0` : zero. `val == 0` + * + * - `1` : + * Positive without overflow. + * `0 < val < 2**(numwords*(wordsize*CHAR_BIT-nails))` + * + * - `2` : + * Positive overflow. `2**(numwords*(wordsize*CHAR_BIT-nails)) <= val` + * + * When #INTEGER_PACK_2COMP is specified: + * + * - `-2` : + * Negative overflow. `val < -2**(numwords*(wordsize*CHAR_BIT-nails))` + * + * - `-1` : + * Negative without overflow. + * `-2**(numwords*(wordsize*CHAR_BIT-nails)) <= val < 0` + * + * - `0` : zero. `val == 0` + * + * - `1` : + * Positive without overflow. + * `0 < val < 2**(numwords*(wordsize*CHAR_BIT-nails))` + * + * - `2` : + * Positive overflow. `2**(numwords*(wordsize*CHAR_BIT-nails)) <= val` + * + * The value, `-2**(numwords*(wordsize*CHAR_BIT-nails))`, is representable in + * 2's complement representation but not representable in absolute value. So + * `-1` is returned for the value if #INTEGER_PACK_2COMP is specified but + * returns `-2` if #INTEGER_PACK_2COMP is not specified. + * + * The least significant words are filled in the buffer when overflow occur. + */ +int rb_integer_pack(VALUE val, void *words, size_t numwords, size_t wordsize, size_t nails, int flags); + +RBIMPL_ATTR_NONNULL(()) +/** + * Import an integer from a buffer. + * + * @param[in] words Buffer to import. + * @param[in] numwords Number of words of `words`. + * @param[in] wordsize Number of bytes per word. + * @param[in] nails Number of padding bits in a word. Most + * significant nails bits of each word are ignored. + * @param[in] flags Bitwise or of constants whose name starts + * "INTEGER_PACK_". + * @exception rb_eArgError `numwords * wordsize` too big. + * + * Possible flags are: + * + * - #INTEGER_PACK_MSWORD_FIRST: + * Interpret the first word as the most significant word. + * + * - #INTEGER_PACK_LSWORD_FIRST: + * Interpret the first word as the least significant word. + * + * - #INTEGER_PACK_MSBYTE_FIRST: + * Interpret the first byte in a word as the most significant byte in the + * word. + * + * - #INTEGER_PACK_LSBYTE_FIRST: + * Interpret the first byte in a word as the least significant byte in + * the word. + * + * - #INTEGER_PACK_NATIVE_BYTE_ORDER: + * Either #INTEGER_PACK_MSBYTE_FIRST or #INTEGER_PACK_LSBYTE_FIRST + * corresponding to the host's endian. + * + * - #INTEGER_PACK_2COMP: + * Uses 2's complement representation. + * + * - #INTEGER_PACK_LITTLE_ENDIAN: Shorthand of + * `INTEGER_PACK_LSWORD_FIRST|INTEGER_PACK_LSBYTE_FIRST` + * + * - #INTEGER_PACK_BIG_ENDIAN: Shorthand of + * `INTEGER_PACK_MSWORD_FIRST|INTEGER_PACK_MSBYTE_FIRST` + * + * - #INTEGER_PACK_FORCE_BIGNUM: + * Returns a bignum even if its value is representable as a fixnum. + * + * - #INTEGER_PACK_NEGATIVE: + * Returns a non-positive value. (Returns a non-negative value if not + * specified.) + * + * - #INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION: + * Uses generic implementation (for test and debug). + * + * @return An instance of ::rb_cInteger whose value is the interpreted + * `words`. The range of the result value depends on + * #INTEGER_PACK_2COMP and #INTEGER_PACK_NEGATIVE. + * + * When #INTEGER_PACK_2COMP is not set: + * + * - `0 <= val < 2**(numwords*(wordsize*CHAR_BIT-nails))` if + * `!INTEGER_PACK_NEGATIVE` + * + * - `-2**(numwords*(wordsize*CHAR_BIT-nails)) < val <= 0` if + * `INTEGER_PACK_NEGATIVE` + * + * When #INTEGER_PACK_2COMP is set: + * + * - `-2**(numwords*(wordsize*CHAR_BIT-nails)-1)` `<= val <=` + * `2**(numwords*(wordsize*CHAR_BIT-nails)-1)-1` if + * `!INTEGER_PACK_NEGATIVE` + * + * - `-2**(numwords*(wordsize*CHAR_BIT-nails)) <= val <= -1` if + * `INTEGER_PACK_NEGATIVE` + * + * Passing #INTEGER_PACK_2COMP without #INTEGER_PACK_NEGATIVE means sign + * extension. #INTEGER_PACK_2COMP with #INTEGER_PACK_NEGATIVE means assuming + * the higher bits are `1`. + * + * Note that this function returns 0 when `numwords` is zero and + * #INTEGER_PACK_2COMP is set but #INTEGER_PACK_NEGATIVE is not set. + */ +VALUE rb_integer_unpack(const void *words, size_t numwords, size_t wordsize, size_t nails, int flags); + +/** + * Calculates the number of bytes needed to represent the absolute value of the + * passed integer. + * + * @param[in] val Integer or integer-like object which has + * `#to_int` method. + * @param[out] nlz_bits_ret Number of leading zero bits in the most + * significant byte is returned if not `NULL`. + * @exception rb_eTypeError `val` doesn't respond to `#to_int`. + * @return `((val_numbits * CHAR_BIT + CHAR_BIT - 1) / CHAR_BIT)`, where + * val_numbits is the number of bits of `abs(val)`. + * @post If `nlz_bits_ret` is not `NULL`, + * `(return_value * CHAR_BIT - val_numbits)` is stored in + * `*nlz_bits_ret`. In this case, + * `0 <= *nlz_bits_ret < CHAR_BIT`. + * + * This function should not overflow. + */ +size_t rb_absint_size(VALUE val, int *nlz_bits_ret); + +/** + * Calculates the number of words needed represent the absolute value of the + * passed integer. Unlike rb_absint_size() this function can overflow. It + * returns `(size_t)-1` then. + * + * @param[in] val Integer or integer-like object which has + * `#to_int` method. + * @param[in] word_numbits Number of bits per word. + * @param[out] nlz_bits_ret Number of leading zero bits in the most + * significant word is returned if not `NULL`. + * @exception rb_eTypeError `val` doesn't respond to `#to_int`. + * @retval (size_t)-1 Overflowed. + * @retval otherwise + `((val_numbits * CHAR_BIT + word_numbits - 1) / word_numbits)`, + * where val_numbits is the number of bits of `abs(val)`. + * @post If `nlz_bits_ret` is not `NULL` and there is no overflow, + * `(return_value * word_numbits - val_numbits)` is stored in + * `*nlz_bits_ret`. In this case, + * `0 <= *nlz_bits_ret < word_numbits.` + * + */ +size_t rb_absint_numwords(VALUE val, size_t word_numbits, size_t *nlz_bits_ret); + +/** + * Tests `abs(val)` consists only of a bit or not. + * + * @param[in] val Integer or integer-like object which has + * `#to_int` method. + * @exception rb_eTypeError `val` doesn't respond to `#to_int`. + * @retval 1 `abs(val) == 1 << n` for some `n >= 0`. + * @retval 0 Otherwise. + * + * rb_absint_singlebit_p() can be used to determine required buffer size for + * rb_integer_pack() used with #INTEGER_PACK_2COMP (two's complement). + * + * Following example calculates number of bits required to represent val in + * two's complement number, without sign bit. + * + * ```CXX + * size_t size; + * int neg = FIXNUM_P(val) ? FIX2LONG(val) < 0 : BIGNUM_NEGATIVE_P(val); + * size = rb_absint_numwords(val, 1, NULL) + * if (size == (size_t)-1) ...overflow... + * if (neg && rb_absint_singlebit_p(val)) + * size--; + * ``` + * + * Following example calculates number of bytes required to represent val in + * two's complement number, with sign bit. + * + * ```CXX + * size_t size; + * int neg = FIXNUM_P(val) ? FIX2LONG(val) < 0 : BIGNUM_NEGATIVE_P(val); + * int nlz_bits; + * size = rb_absint_size(val, &nlz_bits); + * if (nlz_bits == 0 && !(neg && rb_absint_singlebit_p(val))) + * size++; + * ``` + */ +int rb_absint_singlebit_p(VALUE val); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_BIGNUM_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/class.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/class.h new file mode 100644 index 0000000..0fb2d00 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/class.h @@ -0,0 +1,394 @@ +#ifndef RBIMPL_INTERN_CLASS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_CLASS_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cClass/::rb_cModule. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/backward/2/stdarg.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* class.c */ + +/** + * Creates a new, anonymous class. + * + * @param[in] super What would become a parent class. + * @exception rb_eTypeError `super` is not something inheritable. + * @return An anonymous class that inherits `super`. + */ +VALUE rb_class_new(VALUE super); + +/** + * The comment that comes with this function says `:nodoc:`. Not sure what + * that means though. + * + * @param[out] clone Destination object. + * @param[in] orig Source object. + * @exception rb_eTypeError Cannot copy `orig`. + * @return The passed `clone`. + */ +VALUE rb_mod_init_copy(VALUE clone, VALUE orig); + +/** + * Asserts that the given class can derive a child class. A class might or + * might not be able to do so; for instance a singleton class cannot. + * + * @param[in] super Possible super class. + * @exception rb_eTypeError No it cannot. + * @post Upon successful return `super` can derive. + */ +void rb_check_inheritable(VALUE super); + +/** + * This is a very badly designed API that creates an anonymous class. + * + * @param[in] id Discarded for no reason (why...). + * @param[in] super What would become a parent class. 0 means + * ::rb_cObject. + * @exception rb_eTypeError `super` is not something inheritable. + * @return An anonymous class that inherits `super`. + * @warning You must explicitly name the return value. + */ +VALUE rb_define_class_id(ID id, VALUE super); + +/** + * Identical to rb_define_class_under(), except it takes the name in ::ID + * instead of C's string. + * + * @param[out] outer A class which contains the new class. + * @param[in] id Name of the new class + * @param[in] super A class from which the new class will derive. + * 0 means ::rb_cObject. + * @exception rb_eTypeError The constant name `id` is already taken but the + * constant is not a class. + * @exception rb_eTypeError The class is already defined but the class can + * not be reopened because its superclass is not + * `super`. + * @exception rb_eArgError `super` is NULL. + * @return The created class. + * @post `outer::id` refers the returned class. + * @note If a class named `id` is already defined and its superclass is + * `super`, the function just returns the defined class. + * @note The compaction GC does not move classes returned by this + * function. + */ +VALUE rb_define_class_id_under(VALUE outer, ID id, VALUE super); + +/** + * Creates a new, anonymous module. + * + * @return An anonymous module. + */ +VALUE rb_module_new(void); + + +/** + * Creates a new, anonymous refinement. + * + * @return An anonymous refinement. + */ +VALUE rb_refinement_new(void); + +/** + * This is a very badly designed API that creates an anonymous module. + * + * @param[in] id Discarded for no reason (why...). + * @return An anonymous module. + * @warning You must explicitly name the return value. + */ +VALUE rb_define_module_id(ID id); + +/** + * Identical to rb_define_module_under(), except it takes the name in ::ID + * instead of C's string. + * + * @param[out] outer A class which contains the new module. + * @param[in] id Name of the new module + * @exception rb_eTypeError The constant name `id` is already taken but the + * constant is not a module. + * @return The created module. + * @post `outer::id` refers the returned module. + * @note The compaction GC does not move classes returned by this + * function. + */ +VALUE rb_define_module_id_under(VALUE outer, ID id); + +/** + * Queries the list of included modules. It can also be seen as a routine to + * first call rb_mod_ancestors(), then rejects non-modules from the return + * value. + * + * @param[in] mod Class or Module. + * @return An array of modules that are either included or prepended in any + * of `mod`'s ancestry tree (including itself). + */ +VALUE rb_mod_included_modules(VALUE mod); + +/** + * Queries if the passed module is included by the module. It can also be seen + * as a routine to first call rb_mod_included_modules(), then see if the return + * value contains the passed module. + * + * @param[in] child A Module. + * @param[in] parent Another Module. + * @exception rb_eTypeError `child` is not an instance of ::rb_cModule. + * @retval RUBY_Qtrue `parent` is either included or prepended in any + * of `child`'s ancestry tree (including itself). + * @return RUBY_Qfalse Otherwise. + */ +VALUE rb_mod_include_p(VALUE child, VALUE parent); + +/** + * Queries the module's ancestors. This routine gathers classes and modules + * that the passed module either inherits, includes, or prepends, then + * recursively applies that routine again and again to the collected entries + * until the list doesn't grow up. + * + * @param[in] mod A module or a class. + * @return An array of classes or modules that `mod` possibly recursively + * inherits, includes, or prepends. + * + * @internal + * + * Above description is written in a recursive language but in practice it + * computes the return value iteratively. + */ +VALUE rb_mod_ancestors(VALUE mod); + +/** + * Queries the class's descendants. This routine gathers classes that are + * subclasses of the given class (or subclasses of those subclasses, etc.), + * returning an array of classes that have the given class as an ancestor. + * The returned array does not include the given class or singleton classes. + * + * @param[in] klass A class. + * @return An array of classes where `klass` is an ancestor. + * + * @internal + */ +VALUE rb_class_descendants(VALUE klass); + +/** + * Queries the class's direct descendants. This routine gathers classes that are + * direct subclasses of the given class, + * returning an array of classes that have the given class as a superclass. + * The returned array does not include singleton classes. + * + * @param[in] klass A class. + * @return An array of classes where `klass` is the `superclass`. + * + * @internal + */ +VALUE rb_class_subclasses(VALUE klass); + + +/** + * Returns the attached object for a singleton class. + * If the given class is not a singleton class, raises a TypeError. + * + * @param[in] klass A class. + * @return The object which has the singleton class `klass`. + * + * @internal + */ +VALUE rb_class_attached_object(VALUE klass); + +/** + * Generates an array of symbols, which are the list of method names defined in + * the passed class. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Array of at most one object, which controls (if + * any) whether the return array includes the names + * of methods defined in ancestors or not. + * @param[in] mod A module or a class. + * @exception rb_eArgError `argc` out of range. + * @return An array of symbols collecting names of instance methods that + * are not private, defined at `mod`. + */ +VALUE rb_class_instance_methods(int argc, const VALUE *argv, VALUE mod); + +/** + * Identical to rb_class_instance_methods(), except it returns names of methods + * that are public only. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Array of at most one object, which controls (if + * any) whether the return array includes the names + * of methods defined in ancestors or not. + * @param[in] mod A module or a class. + * @exception rb_eArgError `argc` out of range. + * @return An array of symbols collecting names of instance methods that + * are public, defined at `mod`. + */ +VALUE rb_class_public_instance_methods(int argc, const VALUE *argv, VALUE mod); + +/** + * Identical to rb_class_instance_methods(), except it returns names of methods + * that are protected only. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Array of at most one object, which controls (if + * any) whether the return array includes the names + * of methods defined in ancestors or not. + * @param[in] mod A module or a class. + * @exception rb_eArgError `argc` out of range. + * @return An array of symbols collecting names of instance methods that + * are protected, defined at `mod`. + */ +VALUE rb_class_protected_instance_methods(int argc, const VALUE *argv, VALUE mod); + +/** + * Identical to rb_class_instance_methods(), except it returns names of methods + * that are private only. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Array of at most one object, which controls (if + * any) whether the return array includes the names + * of methods defined in ancestors or not. + * @param[in] mod A module or a class. + * @exception rb_eArgError `argc` out of range. + * @return An array of symbols collecting names of instance methods that + * are protected, defined at `mod`. + */ +VALUE rb_class_private_instance_methods(int argc, const VALUE *argv, VALUE mod); + +/** + * Identical to rb_class_instance_methods(), except it returns names of + * singleton methods instead of instance methods. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Array of at most one object, which controls (if + * any) whether the return array includes the names + * of methods defined in ancestors or not. + * @param[in] obj Arbitrary ruby object. + * @exception rb_eArgError `argc` out of range. + * @return An array of symbols collecting names of instance methods that + * are not private, defined at the singleton class of `obj`. + */ +VALUE rb_obj_singleton_methods(int argc, const VALUE *argv, VALUE obj); + +/** + * Identical to rb_define_method(), except it takes the name of the method in + * ::ID instead of C's string. + * + * @param[out] klass A module or a class. + * @param[in] mid Name of the function. + * @param[in] func The method body. + * @param[in] arity The number of parameters. See @ref defmethod. + * @note There are in fact 18 different prototypes for func. + * @see ::ruby::backward::cxxanyargs::define_method::rb_define_method_id + */ +void rb_define_method_id(VALUE klass, ID mid, VALUE (*func)(ANYARGS), int arity); + +/* vm_method.c */ + +/** + * Inserts a method entry that hides previous method definition of the given + * name. This is not a deletion of a method. Method of the same name defined + * in a parent class is kept invisible in this way. + * + * @param[out] mod The module to insert an undef. + * @param[in] mid Name of the undef. + * @exception rb_eTypeError `klass` is a non-module. + * @exception rb_eFrozenError `klass` is frozen. + * @exception rb_eNameError No such method named `klass#name`. + * @post `klass#name` is undefined. + * @see rb_undef_method + * + * @internal + * + * @shyouhei doesn't understand why this is not the ::ID -taking variant of + * rb_undef_method(), given rb_remove_method() has its ::ID -taking counterpart + * named rb_remove_method_id(). + */ +void rb_undef(VALUE mod, ID mid); + +/* class.c */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_define_method(), except it defines a protected method. + * + * @param[out] klass A module or a class. + * @param[in] mid Name of the function. + * @param[in] func The method body. + * @param[in] arity The number of parameters. See @ref defmethod. + * @note There are in fact 18 different prototypes for func. + * @see ::ruby::backward::cxxanyargs::define_method::rb_define_protected_method + */ +void rb_define_protected_method(VALUE klass, const char *mid, VALUE (*func)(ANYARGS), int arity); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_define_method(), except it defines a private method. + * + * @param[out] klass A module or a class. + * @param[in] mid Name of the function. + * @param[in] func The method body. + * @param[in] arity The number of parameters. See @ref defmethod. + * @note There are in fact 18 different prototypes for func. + * @see ::ruby::backward::cxxanyargs::define_method::rb_define_protected_method + */ +void rb_define_private_method(VALUE klass, const char *mid, VALUE (*func)(ANYARGS), int arity); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_define_method(), except it defines a singleton method. + * + * @param[out] obj Arbitrary ruby object. + * @param[in] mid Name of the function. + * @param[in] func The method body. + * @param[in] arity The number of parameters. See @ref defmethod. + * @note There are in fact 18 different prototypes for func. + * @see ::ruby::backward::cxxanyargs::define_method::rb_define_singleton_method + */ +void rb_define_singleton_method(VALUE obj, const char *mid, VALUE(*func)(ANYARGS), int arity); + +/** + * Finds or creates the singleton class of the passed object. + * + * @param[out] obj Arbitrary ruby object. + * @exception rb_eTypeError `obj` cannot have its singleton class. + * @return A (possibly newly allocated) instance of ::rb_cClass. + * @post `obj` has its singleton class, which is the return value. + * @post In case `obj` is a class, the returned singleton class also has + * its own singleton class in order to keep consistency of the + * inheritance structure of metaclasses. + * @note A new singleton class will be created if `obj` did not have + * one. + * @note The singleton classes for ::RUBY_Qnil, ::RUBY_Qtrue, and + * ::RUBY_Qfalse are ::rb_cNilClass, ::rb_cTrueClass, and + * ::rb_cFalseClass respectively. + * + * @internal + * + * You can _create_ a singleton class of a frozen object. Intentional or ...? + * + * Nowadays there are wider range of objects who cannot have singleton classes + * than before. For instance some string instances cannot for some reason. + */ +VALUE rb_singleton_class(VALUE obj); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_CLASS_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/compar.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/compar.h new file mode 100644 index 0000000..dc3b377 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/compar.h @@ -0,0 +1,62 @@ +#ifndef RBIMPL_INTERN_COMPAR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_COMPAR_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_mComparable. + */ +#include "ruby/internal/attr/cold.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* bignum.c */ + +/** + * Canonicalises the passed `val`, which is the return value of `a <=> b`, into + * C's `{-1, 0, 1}`. This can be handy when you implement a callback function + * to pass to `qsort(3)` etc. + * + * @param[in] val Return value of a space ship operator. + * @param[in] a Comparison LHS. + * @param[in] b Comparison RHS. + * @exception rb_eArgError `a` and `b` are not comparable each other. + * @retval -1 `val` is less than zero. + * @retval 0 `val` is equal to zero. + * @retval 1 `val` is greater than zero. + */ +int rb_cmpint(VALUE val, VALUE a, VALUE b); + +/* compar.c */ + +RBIMPL_ATTR_COLD() +RBIMPL_ATTR_NORETURN() +/** + * Raises "comparison failed" error. + * + * @param[in] a Comparison LHS. + * @param[in] b Comparison RHS. + * @exception rb_eArgError `a` and `b` are not comparable each other. + */ +void rb_cmperr(VALUE a, VALUE b); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_COMPAR_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/complex.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/complex.h new file mode 100644 index 0000000..e111bd8 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/complex.h @@ -0,0 +1,253 @@ +#ifndef RBIMPL_INTERN_COMPLEX_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_COMPLEX_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cComplex. + */ +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/arithmetic/long.h" /* INT2FIX is here. */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* complex.c */ + +/** + * Identical to rb_complex_new(), except it assumes both arguments are not + * instances of ::rb_cComplex. It is thus dangerous for extension libraries. + * + * @param[in] real Real part, in any numeric except Complex. + * @param[in] imag Imaginary part, in any numeric except Complex. + * @return An instance of ::rb_cComplex whose value is `real + (imag)i`. + */ +VALUE rb_complex_raw(VALUE real, VALUE imag); + +/** + * Shorthand of `x+0i`. It practically converts `x` into a Complex of the + * identical value. + * + * @param[in] x Any numeric except Complex. + * @return An instance of ::rb_cComplex, whose value is `x + 0i`. + */ +#define rb_complex_raw1(x) rb_complex_raw((x), INT2FIX(0)) + +/** @alias{rb_complex_raw} */ +#define rb_complex_raw2(x,y) rb_complex_raw((x), (y)) + +/** + * Constructs a Complex, by first multiplying the imaginary part with `1i` then + * adds it to the real part. This definition doesn't need both arguments be + * real numbers. It can happily combine two instances of ::rb_cComplex (with + * rotating the latter one). + * + * @param[in] real An instance of ::rb_cNumeric. + * @param[in] imag Another instance of ::rb_cNumeric. + * @return An instance of ::rb_cComplex whose value is `imag * 1i + real`. + */ +VALUE rb_complex_new(VALUE real, VALUE imag); + +/** + * Shorthand of `x+0i`. It practically converts `x` into a Complex of the + * identical value. + * + * @param[in] x Any numeric value. + * @return An instance of ::rb_cComplex, whose value is `x + 0i`. + */ +#define rb_complex_new1(x) rb_complex_new((x), INT2FIX(0)) + +/** @alias{rb_complex_new} */ +#define rb_complex_new2(x,y) rb_complex_new((x), (y)) + +/** + * Constructs a Complex using polar representations. Unlike rb_complex_new() + * it makes no sense to pass non-real instances to this function. + * + * @param[in] abs Magnitude, in any numeric except Complex. + * @param[in] arg Angle, in radians, in any numeric except Complex. + * @return An instance of ::rb_cComplex which denotes the given polar + * coordinates. + */ +VALUE rb_complex_new_polar(VALUE abs, VALUE arg); + +RBIMPL_ATTR_DEPRECATED(("by: rb_complex_new_polar")) +/** @old{rb_complex_new_polar} */ +VALUE rb_complex_polar(VALUE abs, VALUE arg); + +RBIMPL_ATTR_PURE() +/** + * Queries the real part of the passed Complex. + * + * @param[in] z An instance of ::rb_cComplex. + * @return Its real part, which is an instance of ::rb_cNumeric. + */ +VALUE rb_complex_real(VALUE z); + +RBIMPL_ATTR_PURE() +/** + * Queries the imaginary part of the passed Complex. + * + * @param[in] z An instance of ::rb_cComplex. + * @return Its imaginary part, which is an instance of ::rb_cNumeric. + */ +VALUE rb_complex_imag(VALUE z); + +/** + * Performs addition of the passed two objects. + * + * @param[in] x An instance of ::rb_cComplex. + * @param[in] y Arbitrary ruby object. + * @return What `x + y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_complex_plus(VALUE x, VALUE y); + +/** + * Performs subtraction of the passed two objects. + * + * @param[in] x An instance of ::rb_cComplex. + * @param[in] y Arbitrary ruby object. + * @return What `x - y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_complex_minus(VALUE x, VALUE y); + +/** + * Performs multiplication of the passed two objects. + * + * @param[in] x An instance of ::rb_cComplex. + * @param[in] y Arbitrary ruby object. + * @return What `x * y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_complex_mul(VALUE x, VALUE y); + +/** + * Performs division of the passed two objects. + * + * @param[in] x An instance of ::rb_cComplex. + * @param[in] y Arbitrary ruby object. + * @return What `x / y` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_complex_div(VALUE x, VALUE y); + +/** + * Performs negation of the passed object. + * + * @param[in] z An instance of ::rb_cComplex. + * @return What `-z` evaluates to. + */ +VALUE rb_complex_uminus(VALUE z); + +/** + * Performs complex conjugation of the passed object. + * + * @param[in] z An instance of ::rb_cComplex. + * @return Its complex conjugate, in ::rb_cComplex. + */ +VALUE rb_complex_conjugate(VALUE z); + +/** + * Queries the absolute (or the magnitude) of the passed object. + * + * @param[in] z An instance of ::rb_cComplex. + * @return Its magnitude, in ::rb_cFloat. + */ +VALUE rb_complex_abs(VALUE z); + +/** + * Queries the argument (or the angle) of the passed object. + * + * @param[in] z An instance of ::rb_cComplex. + * @return Its magnitude, in ::rb_cFloat. + */ +VALUE rb_complex_arg(VALUE z); + +/** + * Performs exponentiation of the passed two objects. + * + * @param[in] base An instance of ::rb_cComplex. + * @param[in] exp Arbitrary ruby object. + * @return What `base ** exp` evaluates to. + * @see rb_num_coerce_bin() + */ +VALUE rb_complex_pow(VALUE base, VALUE exp); + +/** + * Identical to rb_complex_new(), except it takes the arguments as C's double + * instead of Ruby's object. + * + * @param[in] real Real part. + * @param[in] imag Imaginary part. + * @return An instance of ::rb_cComplex whose value is `real + (imag)i`. + */ +VALUE rb_dbl_complex_new(double real, double imag); + +/** @alias{rb_complex_plus} */ +#define rb_complex_add rb_complex_plus + +/** @alias{rb_complex_minus} */ +#define rb_complex_sub rb_complex_minus + +/** @alias{rb_complex_uminus} */ +#define rb_complex_nagate rb_complex_uminus + +/** + * Converts various values into a Complex. This function accepts: + * + * - Instances of ::rb_cComplex (taken as-is), + * - Instances of ::rb_cNumeric (adds `0i`), + * - Instances of ::rb_cString (parses), + * - Other objects that respond to `#to_c`. + * + * It (possibly recursively) applies `#to_c` until both sides become a Complex + * value, then computes `imag * 1i + real`. + * + * As a special case, passing ::RUBY_Qundef to `imag` is the same as passing + * `RB_INT2NUM(0)`. + * + * @param[in] real Real part (see above). + * @param[in] imag Imaginary part (see above). + * @exception rb_eTypeError Passed something not described above. + * @return An instance of ::rb_cComplex whose value is `1i * imag + real`. + * + * @internal + * + * This was the implementation of `Kernel#Complex` before, but they diverged. + */ +VALUE rb_Complex(VALUE real, VALUE imag); + +/** + * Shorthand of `x+0i`. It practically converts `x` into a Complex of the + * identical value. + * + * @param[in] x ::rb_cNumeric, ::rb_cString, or something that responds to + * `#to_c`. + * @return An instance of ::rb_cComplex, whose value is `x + 0i`. + */ +#define rb_Complex1(x) rb_Complex((x), INT2FIX(0)) + +/** @alias{rb_Complex} */ +#define rb_Complex2(x,y) rb_Complex((x), (y)) + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_COMPLEX_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/cont.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/cont.h new file mode 100644 index 0000000..32647f4 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/cont.h @@ -0,0 +1,282 @@ +#ifndef RBIMPL_INTERN_CONT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_CONT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to rb_cFiber. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/iterator.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* cont.c */ + +/** + * Creates a Fiber instance from a C-backended block. + * + * @param[in] func A function, to become the fiber's body. + * @param[in] callback_obj Passed as-is to `func`. + * @return An allocated new instance of rb_cFiber, which is ready to be + * "resume"d. + */ +VALUE rb_fiber_new(rb_block_call_func_t func, VALUE callback_obj); + +/** + * Creates a Fiber instance from a C-backended block with the specified + * storage. + * + * If the given storage is Qundef or Qtrue, this function is equivalent to + * rb_fiber_new() which inherits storage from the current fiber. + * + * Specifying Qtrue is experimental and may be changed in the future. + * + * If the given storage is Qnil, this function will lazy initialize the + * internal storage which starts of empty (without any inheritance). + * + * Otherwise, the given storage is used as the internal storage. + * + * @param[in] func A function, to become the fiber's body. + * @param[in] callback_obj Passed as-is to `func`. + * @param[in] storage The way to set up the storage for the fiber. + * @return An allocated new instance of rb_cFiber, which is ready to be + * "resume"d. + */ +VALUE rb_fiber_new_storage(rb_block_call_func_t func, VALUE callback_obj, VALUE storage); + +/** + * Queries the fiber which is calling this function. Any ruby execution + * context has its fiber, either explicitly or implicitly. + * + * @return The current fiber. + */ +VALUE rb_fiber_current(void); + +/** + * Queries the liveness of the passed fiber. "Alive" in this context means + * that the fiber can still be resumed. Once it reaches is its end of + * execution, this function returns ::RUBY_Qfalse. + * + * @param[in] fiber A target fiber. + * @retval RUBY_Qtrue It is. + * @retval RUBY_Qfalse It isn't. + */ +VALUE rb_fiber_alive_p(VALUE fiber); + +/** + * Queries if an object is a fiber. + * + * @param[in] obj Arbitrary ruby object. + * @retval RUBY_Qtrue It is. + * @retval RUBY_Qfalse It isn't. + */ +VALUE rb_obj_is_fiber(VALUE obj); + +/** + * Resumes the execution of the passed fiber, either from the point at which + * the last rb_fiber_yield() was called if any, or at the beginning of the + * fiber body if it is the first call to this function. + * + * Other arguments are passed into the fiber's body, either as return values of + * rb_fiber_yield() in case it switches to there, or as the block parameter of + * the fiber body if it switches to the beginning of the fiber. + * + * The return value of this function is either the value passed to previous + * rb_fiber_yield() call, or the ultimate evaluated value of the entire fiber + * body if the execution reaches the end of it. + * + * When an exception happens inside of a fiber it propagates to this function. + * + * ```ruby + * f = Fiber.new do |i| + * puts " =>> #{i}" + * puts " <-- #{i + 1}" + * j = Fiber.yield(i + 1) + * puts " =>> #{j}" + * puts " <-- #{j + 1}" + * next j + 1 + * end + * + * puts "[a] <-- 1" + * p = f.resume(1) + * puts "[b] =>> #{p}" + * puts "[c] <-- #{p + 1}" + * q = f.resume(p + 1) + * puts "[d] =>> #{q}" + * ``` + * + * Above program executes in `[a] [b] [c] [d]`. + * + * @param[out] fiber The fiber to resume. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Passed (somehow) to `fiber`. + * @exception rb_eFiberError `fib` is terminated etc. + * @exception rb_eException Any exceptions happen in `fiber`. + * @return (See above) + * @note This function _does_ return. + * + * @internal + * + * @shyouhei expected this function to raise ::rb_eFrozenError for frozen + * fibers but it doesn't in practice. Intentional or ...? + */ +VALUE rb_fiber_resume(VALUE fiber, int argc, const VALUE *argv); + +/** + * Identical to rb_fiber_resume(), except you can specify how to handle the + * last element of the given array. + * + * @param[out] fiber The fiber to resume. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Passed (somehow) to `fiber`. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eFiberError `fiber` is terminated etc. + * @exception rb_eException Any exceptions happen in `fiber`. + * @return Either what was yielded or the last value of the fiber body. + */ +VALUE rb_fiber_resume_kw(VALUE fiber, int argc, const VALUE *argv, int kw_splat); + +/** + * Yields the control back to the point where the current fiber was resumed. + * The passed objects would be the return value of rb_fiber_resume(). This + * fiber then suspends its execution until next time it is resumed. + * + * This function can also raise arbitrary exceptions injected from outside of + * the fiber using rb_fiber_raise(). + * + * ```ruby + * exc = Class.new Exception + * + * f = Fiber.new do + * Fiber.yield + * rescue exc => e + * puts e.message + * end + * + * f.resume + * f.raise exc, "Hi!" + * ``` + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Passed to rb_fiber_resume(). + * @exception rb_eException (See above) + * @return (See rb_fiber_resume() for details) + */ +VALUE rb_fiber_yield(int argc, const VALUE *argv); + +/** + * Identical to rb_fiber_yield(), except you can specify how to handle the last + * element of the given array. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Passed to rb_fiber_resume(). + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eException What was raised using `Fiber#raise`. + * @return (See rb_fiber_resume() for details) + */ +VALUE rb_fiber_yield_kw(int argc, const VALUE *argv, int kw_splat); + +/** + * Transfers control to another fiber, resuming it from where it last stopped + * or starting it if it was not resumed before. The calling fiber will be + * suspended much like in a call to rb_fiber_yield(). + * + * The fiber which receives the transfer call treats it much like a resume + * call. Arguments passed to transfer are treated like those passed to resume. + * + * The two style of control passing to and from fiber (one is rb_fiber_resume() + * and rb_fiber_yield(), another is rb_fiber_transfer() to and from fiber) + * can't be freely mixed. + * + * - If the Fiber's lifecycle had started with transfer, it will never be + * able to yield or be resumed control passing, only finish or transfer + * back. (It still can resume other fibers that are allowed to be + * resumed.) + * + * - If the Fiber's lifecycle had started with resume, it can yield or + * transfer to another Fiber, but can receive control back only the way + * compatible with the way it was given away: if it had transferred, it + * only can be transferred back, and if it had yielded, it only can be + * resumed back. After that, it again can transfer or yield. + * + * If those rules are broken, rb_eFiberError is raised. + * + * For an individual Fiber design, yield/resume is easier to use (the Fiber + * just gives away control, it doesn't need to think about who the control is + * given to), while transfer is more flexible for complex cases, allowing to + * build arbitrary graphs of Fibers dependent on each other. + * + * @param[out] fiber Explicit control destination. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Passed to rb_fiber_resume(). + * @exception rb_eFiberError (See above) + * @exception rb_eException What was raised using `Fiber#raise`. + * @return (See rb_fiber_resume() for details) + */ +VALUE rb_fiber_transfer(VALUE fiber, int argc, const VALUE *argv); + +/** + * Identical to rb_fiber_transfer(), except you can specify how to handle the + * last element of the given array. + * + * @param[out] fiber Explicit control destination. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Passed to rb_fiber_resume(). + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eFiberError (See above) + * @exception rb_eException What was raised using `Fiber#raise`. + * @return (See rb_fiber_resume() for details) + */ +VALUE rb_fiber_transfer_kw(VALUE fiber, int argc, const VALUE *argv, int kw_splat); + +/** + * Identical to rb_fiber_resume() but instead of resuming normal execution of + * the passed fiber, it raises the given exception in it. From inside of the + * fiber this would be seen as if rb_fiber_yield() raised. + * + * This function does return in case the passed fiber gracefully handled the + * passed exception. But if it does not, the raised exception propagates out + * of the passed fiber; this function then does not return. + * + * Parameters are passed to rb_make_exception() to create an exception object. + * See its document for what are allowed here. + * + * It is a failure to call this function against a fiber which is resuming, + * have never run yet, or has already finished running. + * + * @param[out] fiber Where exception is raised. + * @param[in] argc Passed as-is to rb_make_exception(). + * @param[in] argv Passed as-is to rb_make_exception(). + * @exception rb_eFiberError `fiber` is terminated etc. + * @return (See rb_fiber_resume() for details) + */ +VALUE rb_fiber_raise(VALUE fiber, int argc, const VALUE *argv); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_CONT_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/dir.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/dir.h new file mode 100644 index 0000000..da1873e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/dir.h @@ -0,0 +1,42 @@ +#ifndef RBIMPL_INTERN_DIR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_DIR_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cDir. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* dir.c */ + +/** + * Queries the path of the current working directory of the current process. + * + * @return An instance of ::rb_cString that holds the working directory. + * @note The returned string is in "filesystem" encoding. Most notably on + * Linux this is an alias of default external encoding. Most notably + * on Windows it can be an alias of OS codepage. + */ +VALUE rb_dir_getwd(void); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_DIR_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/enum.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/enum.h new file mode 100644 index 0000000..215ad82 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/enum.h @@ -0,0 +1,73 @@ +#ifndef RBIMPL_INTERN_ENUM_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_ENUM_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_mEnumerable. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* enum.c */ + +/** + * Basically identical to rb_ary_new_form_values(), except it returns something + * different when `argc` < 2. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arbitrary objects. + * @retval RUBY_Qnil `argc` is zero. + * @retval argv[0] `argc` is one. + * @retval otherwise Otherwise. + * + * @internal + * + * What is this business? Well, this function is about `yield`'s taking + * multiple values. Consider following user-defined class: + * + * ```ruby + * class Foo + * include Enumerable + * + * def each + * yield :q, :w, :e, :r + * end + * end + * + * Foo.new.each_with_object([]) do |i, j| + * j << i # ^^^ <- What to expect for `i`? + * end + * ``` + * + * Here, `Foo#each_with_object` is in fact `Enumerable#each_with_object`, which + * doesn't know what would be yielded. Yet, it has to take a block of arity 2. + * This function is used here, to "pack" arbitrary number of yielded objects + * into one. + * + * If people want to implement their own `Enumerable#each_with_object` this API + * can be handy. Though @shyouhei suspects it is relatively rare for 3rd party + * extension libraries to have such things. Also `Enumerable#each_entry` is + * basically this function exposed as a Ruby method. + */ +VALUE rb_enum_values_pack(int argc, const VALUE *argv); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_ENUM_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/enumerator.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/enumerator.h new file mode 100644 index 0000000..20e5d7c --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/enumerator.h @@ -0,0 +1,259 @@ +#ifndef RBIMPL_INTERN_ENUMERATOR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_ENUMERATOR_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cEnumerator. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/intern/eval.h" /* rb_frame_this_func */ +#include "ruby/internal/iterator.h" /* rb_block_given_p */ +#include "ruby/internal/symbol.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * This is the type of functions that rb_enumeratorize_with_size() expects. In + * theory an enumerator can have indefinite number of elements, but in practice + * it often is the case we can compute the size of an enumerator beforehand. + * If your enumerator has such property, supply a function that calculates such + * values. + * + * @param[in] recv The original receiver of the enumerator. + * @param[in] argv Arguments passed to `Object#enum_for` etc. + * @param[in] eobj The enumerator object. + * @return The size of `eobj`, in ::rb_cNumeric, or ::RUBY_Qnil if the size + * is not known until we actually iterate. + */ +typedef VALUE rb_enumerator_size_func(VALUE recv, VALUE argv, VALUE eobj); + +/** + * Decomposed `Enumerator::ArithmeicSequence`. This is a subclass of + * ::rb_cEnumerator, which represents a sequence of numbers with common + * difference. Internal data structure of the class is opaque to users, but + * you can obtain a decomposed one using rb_arithmetic_sequence_extract(). + */ +typedef struct { + VALUE begin; /**< "Left" or "lowest" endpoint of the sequence. */ + VALUE end; /**< "Right" or "highest" endpoint of the sequence.*/ + VALUE step; /**< Step between a sequence. */ + int exclude_end; /**< Whether the endpoint is open or closed. */ +} rb_arithmetic_sequence_components_t; + +/* enumerator.c */ + +/** + * Constructs an enumerator. This roughly resembles `Object#enum_for`. + * + * @param[in] recv A receiver of `meth`. + * @param[in] meth Method ID in a symbol object. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to `meth`. + * @exception rb_eTypeError `meth` is not an instance of ::rb_cSymbol. + * @return A new instance of ::rb_cEnumerator which, when yielded, + * enumerates by calling `meth` on `recv` with `argv`. + */ +VALUE rb_enumeratorize(VALUE recv, VALUE meth, int argc, const VALUE *argv); + +/** + * Identical to rb_enumeratorize(), except you can additionally specify the + * size function of return value. + * + * @param[in] recv A receiver of `meth`. + * @param[in] meth Method ID in a symbol object. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to `meth`. + * @param[in] func Size calculator. + * @exception rb_eTypeError `meth` is not an instance of ::rb_cSymbol. + * @return A new instance of ::rb_cEnumerator which, when yielded, + * enumerates by calling `meth` on `recv` with `argv`. + * @note `func` can be zero, which means the size is unknown. + */ +VALUE rb_enumeratorize_with_size(VALUE recv, VALUE meth, int argc, const VALUE *argv, rb_enumerator_size_func *func); + +/** + * Identical to rb_enumeratorize_with_func(), except you can specify how to + * handle the last element of the given array. + * + * @param[in] recv A receiver of `meth`. + * @param[in] meth Method ID in a symbol object. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to `meth`. + * @param[in] func Size calculator. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eTypeError `meth` is not an instance of ::rb_cSymbol. + * @return A new instance of ::rb_cEnumerator which, when yielded, + * enumerates by calling `meth` on `recv` with `argv`. + * @note `func` can be zero, which means the size is unknown. + */ +VALUE rb_enumeratorize_with_size_kw(VALUE recv, VALUE meth, int argc, const VALUE *argv, rb_enumerator_size_func *func, int kw_splat); + +RBIMPL_ATTR_NONNULL(()) +/** + * Extracts components of the passed arithmetic sequence. This can be seen as + * an extended version of rb_range_values(). + * + * @param[in] as Target instance of `Enumerator::ArithmericSequence`. + * @param[out] buf Decomposed results buffer. + * @return 0 `as` is not `Enumerator::ArithmericSequence`. + * @return 1 Success. + * @post `buf` is filled. + */ +int rb_arithmetic_sequence_extract(VALUE as, rb_arithmetic_sequence_components_t *buf); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_range_beg_len(), except it takes an instance of + * `Enumerator::ArithmericSequence`. + * + * @param[in] as An `Enumerator::ArithmericSequence` instance. + * @param[out] begp Return value buffer. + * @param[out] lenp Return value buffer. + * @param[out] stepp Return value buffer. + * @param[in] len Updated length. + * @param[in] err In case `len` is out of range... + * - `0`: returns ::RUBY_Qnil. + * - `1`: raises ::rb_eRangeError. + * - `2`: `beg` and `len` expanded accordingly. + * @exception rb_eRangeError `as` cannot fit into `long`. + * @retval RUBY_Qfalse `as` is not `Enumerator::ArithmericSequence`. + * @retval RUBY_Qnil `len` is out of `as` but `err` is zero. + * @retval RUBY_Qtrue Otherwise. + * @post `beg` is the (possibly updated) left endpoint. + * @post `len` is the (possibly updated) length of the range. + * + * @internal + * + * Currently no 3rd party applications of this function is found. But that can + * be because this function is relatively new. + */ +VALUE rb_arithmetic_sequence_beg_len_step(VALUE as, long *begp, long *lenp, long *stepp, long len, int err); + +RBIMPL_SYMBOL_EXPORT_END() + +/** @cond INTERNAL_MACRO */ +#ifndef RUBY_EXPORT +# define rb_enumeratorize_with_size(obj, id, argc, argv, size_fn) \ + rb_enumeratorize_with_size(obj, id, argc, argv, (rb_enumerator_size_func *)(size_fn)) +# define rb_enumeratorize_with_size_kw(obj, id, argc, argv, size_fn, kw_splat) \ + rb_enumeratorize_with_size_kw(obj, id, argc, argv, (rb_enumerator_size_func *)(size_fn), kw_splat) +#endif +/** @endcond */ + +/** + * This is an implementation detail of #RETURN_SIZED_ENUMERATOR(). You could + * use it directly, but can hardly be handy. + * + * @param[in] obj A receiver. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to the current method. + * @param[in] size_fn Size calculator. + * @return A new instance of ::rb_cEnumerator which, when yielded, + * enumerates by calling the current method on `recv` with `argv`. + */ +#define SIZED_ENUMERATOR(obj, argc, argv, size_fn) \ + rb_enumeratorize_with_size((obj), ID2SYM(rb_frame_this_func()), \ + (argc), (argv), (size_fn)) + +/** + * This is an implementation detail of #RETURN_SIZED_ENUMERATOR_KW(). You + * could use it directly, but can hardly be handy. + * + * @param[in] obj A receiver. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to the current method. + * @param[in] size_fn Size calculator. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @return A new instance of ::rb_cEnumerator which, when yielded, + * enumerates by calling the current method on `recv` with `argv`. + */ +#define SIZED_ENUMERATOR_KW(obj, argc, argv, size_fn, kw_splat) \ + rb_enumeratorize_with_size_kw((obj), ID2SYM(rb_frame_this_func()), \ + (argc), (argv), (size_fn), (kw_splat)) + +/** + * This roughly resembles `return enum_for(__callee__) unless block_given?`. + * + * @param[in] obj A receiver. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to the current method. + * @param[in] size_fn Size calculator. + * @note This macro may return inside. + */ +#define RETURN_SIZED_ENUMERATOR(obj, argc, argv, size_fn) do { \ + if (!rb_block_given_p()) \ + return SIZED_ENUMERATOR(obj, argc, argv, size_fn); \ + } while (0) + + +/** + * Identical to #RETURN_SIZED_ENUMERATOR(), except you can specify how to + * handle the last element of the given array. + * + * @param[in] obj A receiver. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to the current method. + * @param[in] size_fn Size calculator. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @note This macro may return inside. + */ +#define RETURN_SIZED_ENUMERATOR_KW(obj, argc, argv, size_fn, kw_splat) do { \ + if (!rb_block_given_p()) \ + return SIZED_ENUMERATOR_KW(obj, argc, argv, size_fn, kw_splat); \ + } while (0) + +/** + * Identical to #RETURN_SIZED_ENUMERATOR(), except its size is unknown. + * + * @param[in] obj A receiver. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to the current method. + * @note This macro may return inside. + */ +#define RETURN_ENUMERATOR(obj, argc, argv) \ + RETURN_SIZED_ENUMERATOR(obj, argc, argv, 0) + +/** + * Identical to #RETURN_SIZED_ENUMERATOR_KW(), except its size is unknown. It + * can also be seen as a routine identical to #RETURN_ENUMERATOR(), except you + * can specify how to handle the last element of the given array. + * + * @param[in] obj A receiver. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to the current method. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @note This macro may return inside. + */ +#define RETURN_ENUMERATOR_KW(obj, argc, argv, kw_splat) \ + RETURN_SIZED_ENUMERATOR_KW(obj, argc, argv, 0, kw_splat) + +#endif /* RBIMPL_INTERN_ENUMERATOR_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/error.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/error.h new file mode 100644 index 0000000..9c153cb --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/error.h @@ -0,0 +1,287 @@ +#ifndef RBIMPL_INTERN_ERROR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_ERROR_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_eException. + */ +#include "ruby/internal/attr/format.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/fl_type.h" +#include "ruby/backward/2/assume.h" + +/** + * This macro is used in conjunction with rb_check_arity(). If you pass it to + * the function's last (max) argument, that means the function does not check + * upper limit. + */ +#define UNLIMITED_ARGUMENTS (-1) + +#define rb_exc_new2 rb_exc_new_cstr /**< @old{rb_exc_new_cstr} */ +#define rb_exc_new3 rb_exc_new_str /**< @old{rb_exc_new_str} */ + +/** @cond INTERNAL_MACRO */ +#define rb_check_arity rb_check_arity +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* error.c */ + +/** + * Creates an instance of the passed exception class. + * + * @param[in] etype A subclass of ::rb_eException. + * @param[in] ptr Buffer contains error message. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eTypeError `etype` is not a class. + * @exception rb_eArgError `len` is negative. + * @return An instance of `etype`. + * @pre At least `len` bytes of continuous memory region shall be + * accessible via `ptr`. + * + * @internal + * + * This function works for non-exception classes as well, as long as they take + * one string argument. + */ +VALUE rb_exc_new(VALUE etype, const char *ptr, long len); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_exc_new(), except it assumes the passed pointer is a pointer + * to a C string. + * + * @param[in] etype A subclass of ::rb_eException. + * @param[in] str A C string (becomes an error message). + * @exception rb_eTypeError `etype` is not a class. + * @return An instance of `etype`. + */ +VALUE rb_exc_new_cstr(VALUE etype, const char *str); + +/** + * Identical to rb_exc_new_cstr(), except it takes a Ruby's string instead of + * C's. + * + * @param[in] etype A subclass of ::rb_eException. + * @param[in] str An instance of ::rb_cString. + * @exception rb_eTypeError `etype` is not a class. + * @return An instance of `etype`. + */ +VALUE rb_exc_new_str(VALUE etype, VALUE str); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((1)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2) +/** + * Raises an instance of ::rb_eLoadError. + * + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * @exception rb_eLoadError Always raises this. + * @note It never returns. + * + * @internal + * + * Who needs this? Except ruby itself? + */ +void rb_loaderror(const char *fmt, ...); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) +/** + * Identical to rb_loaderror(), except it additionally takes which file is + * unable to load. The path can be obtained later using `LoadError#path` of + * the raising exception. + * + * @param[in] path What failed. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * @exception rb_eLoadError Always raises this. + * @note It never returns. + */ +void rb_loaderror_with_path(VALUE path, const char *fmt, ...); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) +/** + * Raises an instance of ::rb_eNameError. The name can be obtained later using + * `NameError#name` of the raising exception. + * + * @param[in] name What failed. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * @exception rb_eNameError Always raises this. + * @note It never returns. + */ +void rb_name_error(ID name, const char *fmt, ...); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) +/** + * Identical to rb_name_error(), except it takes a ::VALUE instead of ::ID. + * + * @param[in] name What failed. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * @exception rb_eNameError Always raises this. + * @note It never returns. + */ +void rb_name_error_str(VALUE name, const char *fmt, ...); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) +/** + * Raises an instance of ::rb_eFrozenError. The object can be obtained later + * using `FrozenError#receiver` of the raising exception. + * + * @param[in] recv What is frozen. + * @param[in] fmt Format specifier string compatible with rb_sprintf(). + * @exception rb_eFrozenError Always raises this. + * @note It never returns. + * + * @internal + * + * Note however, that it is often not possible to inspect a frozen object, + * because the inspection itself could be forbidden by the frozen-ness. + */ +void rb_frozen_error_raise(VALUE recv, const char *fmt, ...); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL(()) +/** + * Honestly I don't understand the name, but it raises an instance of + * ::rb_eArgError. + * + * @param[in] str A message. + * @param[in] type Another message. + * @exception rb_eArgError Always raises this. + * @note It never returns. + */ +void rb_invalid_str(const char *str, const char *type); + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_frozen_error_raise(), except its raising exception has a + * message like "can't modify frozen /what/". + * + * @param[in] what What was frozen. + * @exception rb_eFrozenError Always raises this. + * @note It never returns. + */ +void rb_error_frozen(const char *what); + +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_error_frozen(), except it takes arbitrary Ruby object + * instead of C's string. + * + * @param[in] what What was frozen. + * @exception rb_eFrozenError Always raises this. + * @note It never returns. + */ +void rb_error_frozen_object(VALUE what); + +/** + * Queries if the passed object is frozen. + * + * @param[in] obj Target object to test frozen-ness. + * @exception rb_eFrozenError It is frozen. + * @post Upon successful return it is guaranteed _not_ frozen. + */ +void rb_check_frozen(VALUE obj); + +/** + * Ensures that the passed object can be `initialize_copy` relationship. When + * you implement your own one you would better call this at the right beginning + * of your implementation. + * + * @param[in] obj Destination object. + * @param[in] orig Source object. + * @exception rb_eFrozenError `obj` is frozen. + * @post Upon successful return obj is guaranteed safe to copy orig. + */ +void rb_check_copyable(VALUE obj, VALUE orig); + +RBIMPL_ATTR_NORETURN() +/** + * @private + * + * This is an implementation detail of rb_scan_args(). You don't have to + * bother. + * + * @pre `argc` is out of range of `min`..`max`, both inclusive. + * @param[in] argc Arbitrary integer. + * @param[in] min Minimum allowed `argc`. + * @param[in] max Maximum allowed `argc`. + * @exception rb_eArgError Always. + */ +MJIT_STATIC void rb_error_arity(int argc, int min, int max); + +RBIMPL_SYMBOL_EXPORT_END() + +/** + * @deprecated + * + * Does anyone use this? Remain not deleted for compatibility. + */ +#define rb_check_frozen_internal(obj) do { \ + VALUE frozen_obj = (obj); \ + if (RB_UNLIKELY(RB_OBJ_FROZEN(frozen_obj))) { \ + rb_error_frozen_object(frozen_obj); \ + } \ + } while (0) + +/** @alias{rb_check_frozen} */ +static inline void +rb_check_frozen_inline(VALUE obj) +{ + if (RB_UNLIKELY(RB_OBJ_FROZEN(obj))) { + rb_error_frozen_object(obj); + } +} + +/** @alias{rb_check_frozen} */ +#define rb_check_frozen rb_check_frozen_inline + +/** + * Ensures that the passed integer is in the passed range. When you can use + * rb_scan_args() that is preferred over this one (powerful, descriptive). But + * it can have its own application area. + * + * @param[in] argc Arbitrary integer. + * @param[in] min Minimum allowed `argv`. + * @param[in] max Maximum allowed `argv`, or `UNLIMITED_ARGUMENTS`. + * @exception rb_eArgError `argc` out of range. + * @return The passed `argc`. + * @post Upon successful return `argc` is in range of `min`..`max`, both + * inclusive. + */ +static inline int +rb_check_arity(int argc, int min, int max) +{ + if ((argc < min) || (max != UNLIMITED_ARGUMENTS && argc > max)) + rb_error_arity(argc, min, max); + return argc; +} + +#endif /* RBIMPL_INTERN_ERROR_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/eval.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/eval.h new file mode 100644 index 0000000..2230f7a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/eval.h @@ -0,0 +1,222 @@ +#ifndef RBIMPL_INTERN_EVAL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_EVAL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Pre-1.9 era evaluator APIs (now considered miscellaneous). + */ +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* eval.c */ +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_raise(), except it raises the passed exception instance as- + * is instead of creating new one. + * + * @param[in] exc An instance of a subclass of ::rb_eException. + * @exception exc What is passed. + * @exception rb_eTypeError `exc` is not an exception. + * @note It never returns. + * + * @internal + * + * Wellll actually, it can take more than what is described above. This + * function tries to call `exception` method of the passed object. If that + * function returns an exception object that is used instead. + */ +void rb_exc_raise(VALUE exc); + +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_fatal(), except it raises the passed exception instance as- + * is instead of creating new one. + * + * @param[in] exc An instance of a subclass of ::rb_eException. + * @exception exc What is passed. + * @note It never returns. + * + * @internal + * + * You know what...? Using this API you can make arbitrary exceptions, like + * `RuntimeError`, that doesn't interface with `rescue` clause. This is very + * confusing. + */ +void rb_exc_fatal(VALUE exc); + +/* process.c */ + +RBIMPL_ATTR_NORETURN() +/** + * Identical to rb_exit(), except how arguments are passed. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Contains at most one of the following: + * - ::RUBY_Qtrue - means `EXIT_SUCCESS`. + * - ::RUBY_Qfalse - means `EXIT_FAILURE`. + * - Numerical value - takes that value. + * @exception rb_eArgError Wrong `argc`. + * @exception rb_eSystemExit Exception representing the exit status. + * @note It never returns. + */ +VALUE rb_f_exit(int argc, const VALUE *argv); + +RBIMPL_ATTR_NORETURN() +/** + * This is similar to rb_f_exit(). In fact on some situation it internally + * calls rb_exit(). But can be very esoteric on occasions. + * + * It takes up to one argument. If an argument is passed, it tries to display + * that. Otherwise if there is `$!`, displays that exception instead. It + * finally raise ::rb_eSystemExit in both cases. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Contains at most one string-ish object. + * @exception rb_eArgError Wrong `argc`. + * @exception rb_eTypeError No conversion from `argv[0]` to String. + * @exception rb_eSystemExit Exception representing `EXIT_FAILURE`. + * @note It never returns. + */ +VALUE rb_f_abort(int argc, const VALUE *argv); + +/* eval.c*/ + +RBIMPL_ATTR_NORETURN() +/** + * Raises an instance of ::rb_eInterrupt. + * + * @exception rb_eInterrupt Always raises this exception. + * @note It never returns. + */ +void rb_interrupt(void); + +/** + * Queries the name of the Ruby level method that is calling this function. + * The "name" in this context is the one assigned to the function for the first + * time (note that methods can have multiple names via aliases). + * + * @retval 0 There is no method (e.g. toplevel context). + * @retval otherwise The name of the current method. + */ +ID rb_frame_this_func(void); + +RBIMPL_ATTR_NORETURN() +/** + * This function is to re-throw global escapes. Such global escapes include + * exceptions, `throw`, `break`, for example. + * + * It makes sense only when used in conjunction with "protect" series APIs + * e.g. rb_protect(), rb_load_protect(), rb_eval_string_protect(), etc. In + * case these functions experience global escapes, they fill their opaque + * `state` return buffer. You can ignore such escapes. But if you decide + * otherwise, you have to somehow escape globally again. This function is used + * for that purpose. + * + * @param[in] state Opaque state of execution. + * @note It never returns. + * + * @internal + * + * Though not a part of our public API, `state` is in fact an enum + * ruby_tag_type. You can see the potential values by looking at vm_core.h. + */ +void rb_jump_tag(int state); + +/** + * Calls `initialize` method of the passed object with the passed arguments. + * It also forwards the implicitly passed block to the method. + * + * @param[in] obj Receiver object. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Passed as-is to `obj.initialize`. + * @exception rb_eException Any exceptions happen inside. + */ +void rb_obj_call_init(VALUE obj, int argc, const VALUE *argv); + +/** + * Identical to rb_obj_call_init(), except you can specify how to handle the + * last element of the given array. + * + * @param[in] obj Receiver object. + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Passed as-is to `obj.initialize`. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eNoMethodError No such method. + * @exception rb_eException Any exceptions happen inside. + */ +void rb_obj_call_init_kw(VALUE, int, const VALUE*, int); + +/** + * Identical to rb_frame_this_func(), except it returns the named used to call + * the method. + * + * @retval 0 There is no method (e.g. toplevel context). + * @retval otherwise The name of the current method. + */ +ID rb_frame_callee(void); + +/** + * Constructs an exception object from the list of arguments, in a manner + * similar to Ruby's `raise`. This function can take: + * + * - No arguments at all, i.e. `argc == 0`. This is not a failure. It + * returns ::RUBY_Qnil then. + * + * - An object, which is an instance of ::rb_cString. In this case an + * instance of ::rb_eRuntimeError whose message is the passed string is + * created then returned. + * + * - An object, which responds to `exception` method, and optionally its + * argument, and optionally its backtrace. For example instances of + * subclasses of ::rb_eException have this method. What is returned from + * the method is returned. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv 0 up to 3 objects. + * @exception rb_eArgError Wrong `argc`. + * @exception rb_eTypeError `argv[0].exception` returned non-exception. + * @return An instance of a subclass of ::rb_eException. + * + * @internal + * + * Historically this was _the_ way `raise` converted its arguments to an + * exception. However they diverged. + */ +VALUE rb_make_exception(int argc, const VALUE *argv); + +/* eval_jump.c */ + +/** + * Registers a function that shall run on process exit. Registered functions + * run in reverse-chronological order, mixed with syntactic `END` block and + * `Kernel#at_exit`. + * + * @param[in] func Function to run at process exit. + * @param[in] arg Passed as-is to `func`. + */ +void rb_set_end_proc(void (*func)(VALUE arg), VALUE arg); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_EVAL_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/file.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/file.h new file mode 100644 index 0000000..79820fd --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/file.h @@ -0,0 +1,213 @@ +#ifndef RBIMPL_INTERN_FILE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_FILE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cFile. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* file.c */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_file_expand_path(), except how arguments are passed. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Filename, and base directory, in that order. + * @exception rb_eArgError Wrong `argc`. + * @exception rb_eTypeError Non-string passed. + * @exception rb_eEncCompatError No conversion from arguments to a path. + * @return Expanded path. + * + * @internal + * + * It seems nobody actually uses this function right now. Maybe delete it? + */ +VALUE rb_file_s_expand_path(int argc, const VALUE *argv); + +/** + * Identical to rb_file_absolute_path(), except it additionally understands + * `~`. If a given pathname starts with `~someone/`, that part expands to the + * user's home directory (or that of current process' owner's in case of `~/`). + * + * @param[in] fname Relative file name. + * @param[in] dname Lookup base directory name, or in case + * ::RUBY_Qnil is passed the process' current + * working directory is assumed. + * @exception rb_eArgError Home directory is not absolute. + * @exception rb_eTypeError Non-string passed. + * @exception rb_eEncCompatError No conversion from arguments to a path. + * @return Expanded path. + */ +VALUE rb_file_expand_path(VALUE fname, VALUE dname); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_file_absolute_path(), except how arguments are passed. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Filename, and base directory, in that order. + * @exception rb_eArgError Wrong `argc`. + * @exception rb_eTypeError Non-string passed. + * @exception rb_eEncCompatError No conversion from arguments to a path. + * @return Expanded path. + * + * @internal + * + * It seems nobody actually uses this function right now. Maybe delete it? + */ +VALUE rb_file_s_absolute_path(int argc, const VALUE *argv); + +/** + * Maps a relative path to its absolute representation. Relative paths are + * referenced from the passed directory name, or from the process' current + * working directory in case ::RUBY_Qnil is passed. + * + * @param[in] fname Relative file name. + * @param[in] dname Lookup base directory name, or in case + * ::RUBY_Qnil is passed the process' current + * working directory is assumed. + * @exception rb_eArgError Strings contain NUL bytes. + * @exception rb_eTypeError Non-string passed. + * @exception rb_eEncCompatError No conversion from arguments to a path. + * @return Expanded path. + */ +VALUE rb_file_absolute_path(VALUE fname, VALUE dname); + +/** + * Strips a file path's last component (and trailing separators if any). This + * function is relatively simple on POSIX environments; just splits the input + * with `/`, strips the last one, if something remains joins them again, + * otherwise the return value is `"."`. However when it comes to Windows this + * function is quite very much complicated. We have to take UNC etc. into + * account. So for instance `"C:foo"`'s dirname is `"C:."`. + * + * @param[in] fname File name to strip. + * @exception rb_eTypeError `fname` is not a String. + * @exception rb_eArgError `fname` contains NUL bytes. + * @exception rb_eEncCompatError `fname`'s encoding is not path-compat. + * @return A dirname of `fname`. + * @note This is a "pure" operation; it computes the return value solely + * from the passed object and never does any file IO. + */ +VALUE rb_file_dirname(VALUE fname); + +RBIMPL_ATTR_NONNULL(()) +/** + * Resolves a feature's path. This function takes for instance `"json"` and + * `[".so", ".rb"]`, and iterates over the `$LOAD_PATH` to see if there is + * either `json.so` or `json.rb` in the directory. + * + * This is not what everything `require` does, but at least `require` is built + * on top of it. + * + * @param[in,out] feature File to search, and return buffer. + * @param[in] exts List of file extensions. + * @exception rb_eTypeError `feature` is not a String. + * @exception rb_eArgError `feature` contains NUL bytes. + * @exception rb_eEncCompatError `feature`'s encoding is not path-compat. + * @retval 0 Not found + * @retval otherwise Found index in `ext`, plus one. + * @post `*feature` is a resolved path. + */ +int rb_find_file_ext(VALUE *feature, const char *const *exts); + +/** + * Identical to rb_find_file_ext(), except it takes a feature name and is + * extension at once, e.g. `"json.rb"`. This difference is much like how + * `require` and `load` are different. + * + * @param[in] path A path relative to `$LOAD_PATH`. + * @exception rb_eTypeError `path` is not a String. + * @exception rb_eArgError `path` contains NUL bytes. + * @exception rb_eEncCompatError `path`'s encoding is not path-compat. + * @return Expanded path. + */ +VALUE rb_find_file(VALUE path); + +/** + * Queries if the given path is either a directory, or a symlink that + * (potentially recursively) points to such thing. + * + * @param[in] _ Ignored (why...?) + * @param[in] path String, or IO. In case of IO it issues + * `fstat(2)` instead of `stat(2)`. + * @exception rb_eFrozenError `path` is a frozen IO (why...?) + * @exception rb_eTypeError `path` is neither String nor IO. + * @exception rb_eArgError `path` contains NUL bytes. + * @exception rb_eEncCompatError `path`'s encoding is not path-compat. + * @retval RUBY_Qtrue `path` is a directory. + * @retval RUBY_Qfalse Otherwise. + */ +VALUE rb_file_directory_p(VALUE _, VALUE path); + +/** + * Converts a string into an "OS Path" encoding, if any. In most operating + * systems there are no such things like per-OS default encoding of filename. + * For them this function is no-op. However most notably on MacOS, pathnames + * are UTF-8 encoded. It converts the given string into such encoding. + * + * @param[in] path An instance of ::rb_cString. + * @exception rb_eEncCompatError `path`'s encoding is not path-compat. + * @return `path`'s contents converted to the OS' path encoding. + */ +VALUE rb_str_encode_ospath(VALUE path); + +RBIMPL_ATTR_NONNULL(()) +RBIMPL_ATTR_PURE() +/** + * Queries if the given path is an absolute path. On POSIX environments it is + * as easy as `path[0] == '/'`. However on Windows, drive letters and UNC + * paths are also taken into account. + * + * @param[in] path A possibly relative path string. + * @retval 1 `path` is absolute. + * @retval 0 `path` is relative. + */ +int rb_is_absolute_path(const char *path); + +/** + * Queries the file size of the given file. Because this function calls + * `fstat(2)` internally, it is a failure to pass a closed file to this + * function. + * + * This function flushes the passed file's buffer if any. Can take time. + * + * @param[in] file A file object. + * @exception rb_eFrozenError `file` is frozen. + * @exception rb_eIOError `file` is closed. + * @exception rb_eSystemCallError Permission denied etc. + * @exception rb_eNoMethodError The given non-file object doesn't respond + * to `#size`. + * @return The size of the passed file. + * @note Passing a non-regular file such as a UNIX domain socket to this + * function is not a failure. But the return value is + * unpredictable. POSIX's `` states that "the use of + * this field is unspecified" then. + */ +rb_off_t rb_file_size(VALUE file); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_FILE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/gc.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/gc.h new file mode 100644 index 0000000..2ee1d25 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/gc.h @@ -0,0 +1,392 @@ +#ifndef RBIMPL_INTERN_GC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_GC_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_mGC. + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include /* size_t */ +#endif + +#ifdef HAVE_SYS_TYPES_H +# include /* ssize_t */ +#endif + +#include "ruby/internal/attr/cold.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* gc.c */ + +RBIMPL_ATTR_COLD() +RBIMPL_ATTR_NORETURN() +/** + * Triggers out-of-memory error. If possible it raises ::rb_eNoMemError. But + * because we are running out of memory that is not always doable. This + * function tries hard to show something, but ultimately can die silently. + * + * @exception rb_eNoMemError Raises it if possible. + */ +void rb_memerror(void); + +RBIMPL_ATTR_PURE() +/** + * Queries if the GC is busy. + * + * @retval 0 It isn't. + * @retval 1 It is. + */ +int rb_during_gc(void); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Marks objects between the two pointers. This is one of the GC utility + * functions that you can call when you design your own + * ::rb_data_type_struct::dmark. + * + * @pre Continuous memory region from `start` to `end` shall be fully + * addressable. + * @param[out] start Pointer to an array of objects. + * @param[out] end Pointer that terminates the array of objects. + * @post Objects from `start` (included) to `end` (excluded) are marked. + * + * @internal + * + * `end` can be NULL... But that just results in no-op. + */ +void rb_gc_mark_locations(const VALUE *start, const VALUE *end); + +/** + * Identical to rb_mark_hash(), except it marks only values of the table and + * leave their associated keys unmarked. This is one of the GC utility + * functions that you can call when you design your own + * ::rb_data_type_struct::dmark. + * + * @warning Of course it can break GC. Leave it unused if unsure. + * @param[in] tbl A table to mark. + * @post Values stored in `tbl` are marked. + */ +void rb_mark_tbl(struct st_table *tbl); + +/** + * Identical to rb_mark_tbl(), except it marks objects using + * rb_gc_mark_movable(). This is one of the GC utility functions that you can + * call when you design your own ::rb_data_type_struct::dmark. + * + * @warning Of course it can break GC. Leave it unused if unsure. + * @param[in] tbl A table to mark. + * @post Values stored in `tbl` are marked. + */ +void rb_mark_tbl_no_pin(struct st_table *tbl); + +/** + * Identical to rb_mark_hash(), except it marks only keys of the table and + * leave their associated values unmarked. This is one of the GC utility + * functions that you can call when you design your own + * ::rb_data_type_struct::dmark. + * + * @warning Of course it can break GC. Leave it unused if unsure. + * @param[in] tbl A table to mark. + * @post Keys stored in `tbl` are marked. + */ +void rb_mark_set(struct st_table *tbl); + +/** + * Marks keys and values associated inside of the given table. This is one of + * the GC utility functions that you can call when you design your own + * ::rb_data_type_struct::dmark. + * + * @param[in] tbl A table to mark. + * @post Objects stored in `tbl` are marked. + */ +void rb_mark_hash(struct st_table *tbl); + +/** + * Updates references inside of tables. After you marked values using + * rb_mark_tbl_no_pin(), the objects inside of the table could of course be + * moved. This function is to fixup those references. You can call this from + * your ::rb_data_type_struct::dcompact. + * + * @param[out] ptr A table that potentially includes moved references. + * @post Moved references, if any, are corrected. + */ +void rb_gc_update_tbl_refs(st_table *ptr); + +/** + * Identical to rb_gc_mark(), except it allows the passed value be a + * non-object. For instance pointers to different type of memory regions are + * allowed here. Such values are silently ignored. This is one of the GC + * utility functions that you can call when you design your own + * ::rb_data_type_struct::dmark. + * + * @param[out] obj A possible object. + * @post `obj` is marked, if possible. + */ +void rb_gc_mark_maybe(VALUE obj); + +/** + * Marks an object. This is one of the GC utility functions that you can call + * when you design your own ::rb_data_type_struct::dmark. + * + * @param[out] obj Arbitrary Ruby object. + * @post `obj` is marked. + */ +void rb_gc_mark(VALUE obj); + +/** + * Maybe this is the only function provided for C extensions to control the + * pinning of objects, so let us describe it in detail. These days Ruby's GC + * is copying. As far as an object's physical address is guaranteed unused, it + * can move around the object space. Our GC engine rearranges these objects + * after it reclaims unreachable objects from our object space, so that the + * space is compact (improves memory locality). This is called the + * "compaction" phase, and works well most of the time... as far as there are + * no C extensions. C extensions complicate the scenario because Ruby core + * cannot detect any use of the physical address of an object inside of C + * functions. In order to prevent memory corruptions, objects observable from + * C extensions are "pinned"; they stick to where they are born until they die, + * just in case any C extensions touch their raw pointers. This variant of + * scheme is called "Mostly-Copying" garbage collector. Authors of C + * extensions, however, can extremely carefully write them to become + * compaction-aware. To do so avoid referring to a Ruby object from inside of + * your struct in the first place. But if that is not possible, use this + * function from your ::rb_data_type_struct::dmark then. This way objects + * marked using it are considered movable. If you chose this way you have to + * manually fix up locations of such moved pointers using rb_gc_location(). + * + * @see Bartlett, Joel F., "Compacting Garbage Collection with Ambiguous + * Roots", ACM SIGPLAN Lisp Pointers Volume 1 Issue 6 pp. 3-12, + * April-May-June, 1988. https://doi.org/10.1145/1317224.1317225 + * + * @param[in] obj Object that is movable. + * @post Values stored in `tbl` are marked. + */ +void rb_gc_mark_movable(VALUE obj); + +/** + * Finds a new "location" of an object. An object can be moved on compaction. + * This function projects its new abode, or just returns the passed object if + * not moved. This is one of the GC utility functions that you can call when + * you design your own ::rb_data_type_struct::dcompact. + * + * @param[in] obj An object, possibly already moved to somewhere else. + * @return An object, which holds the current contents of former `obj`. + */ +VALUE rb_gc_location(VALUE obj); + +/** + * Asserts that the passed object is no longer needed. Such objects are + * reclaimed sooner or later so this function is not mandatory. But sometimes + * you can know from your application knowledge that an object is surely dead + * at some point. Calling this as a hint can be a polite way. + * + * @param[out] obj Object, dead. + * @pre `obj` have never been passed to this function before. + * @post `obj` could be invalidated. + * @warning It is a failure to pass an object multiple times to this + * function. + * @deprecated This is now a no-op function. + */ +RBIMPL_ATTR_DEPRECATED(("this is now a no-op function")) +void rb_gc_force_recycle(VALUE obj); + +/** + * Triggers a GC process. This was the only GC entry point that we had at the + * beginning. Over time our GC evolved. Now what this function does is just a + * very simplified variation of the entire GC algorithms. A series of + * procedures kicked by this API is called a "full" GC. + * + * - It immediately scans the entire object space to sort the dead. + * - It immediately reclaims any single dead bodies to reuse later. + * + * It is worth noting that the procedures above do not include evaluations of + * finalisers. They run later. + * + * @internal + * + * Finalisers are deferred until we can handle interrupts. See + * `rb_postponed_job_flush` in vm_trace.c. + * + * Of course there are GC that are not "full". For instance this one and the + * GC which runs when we are running out of memory are different. See + * `gc_profile_record_flag` defined in gc.c for the kinds of GC. + * + * In spite of the name this is not what everything that a GC can trigger. As + * of writing it seems this function does not trigger compaction. But this + * might change in future. + */ +void rb_gc(void); + +/** + * Copy&paste an object's finaliser to another. This is one of the GC utility + * functions that you can call when you design your own `initialize_copy`, + * `initialize_dup`, `initialize_clone`. + * + * @param[out] dst Destination object. + * @param[in] src Source object. + * @post `dst` and `src` share the same finaliser. + * + * @internal + * + * But isn't it easier for you to call super, and let `Object#initialize_copy` + * call this function instead? + */ +void rb_gc_copy_finalizer(VALUE dst, VALUE src); + +/** + * (Re-) enables GC. This makes sense only after you called rb_gc_disable(). + * + * @retval RUBY_Qtrue GC was disabled before. + * @retval RUBY_Qfalse GC was enabled before. + * @post GC is enabled. + * + * @internal + * + * This is one of such exceptional functions that does not raise both Ruby + * exceptions and C++ exceptions. + */ +VALUE rb_gc_enable(void); + +/** + * Disables GC. This prevents automatic GC runs when the process is running + * out of memory. Such situations shall result in rb_memerror(). However this + * does not prevent users from manually invoking rb_gc(). That should work. + * People abused this by disabling GC at the beginning of an event loop, + * process events without GC overheads, then manually force reclaiming garbage + * at the bottom of the loop. However because our GC is now much smarter than + * just calling rb_gc(), this technique is proven to be sub-optimal these days. + * It is believed that there is currently practically no needs of this + * function. + * + * @retval RUBY_Qtrue GC was disabled before. + * @retval RUBY_Qfalse GC was enabled before. + * @post GC is disabled. + */ +VALUE rb_gc_disable(void); + +/** + * Identical to rb_gc(), except the return value. + * + * @return Always returns ::RUBY_Qnil. + */ +VALUE rb_gc_start(void); + +/** + * Assigns a finaliser for an object. Each objects can have objects (typically + * blocks) that run immediately after that object dies. They are called + * finalisers of an object. This function associates a finaliser object with a + * target object. + * + * @note Note that finalisers run _after_ the object they finalise dies. You + * cannot for instance call its methods. + * @note If your finaliser references the object it finalises that object + * loses any chance to become a garbage; effectively leaks memory until + * the end of the process. + * + * @param[in] obj Target to finalise. + * @param[in] block Something `call`able. + * @exception rb_eRuntimeError Somehow `obj` cannot have finalisers. + * @exception rb_eFrozenError `obj` is frozen. + * @exception rb_eArgError `block` doesn't respond to `call`. + * @return The passed `block`. + * @post `block` runs after `obj` dies. + */ +VALUE rb_define_finalizer(VALUE obj, VALUE block); + +/** + * Modifies the object so that it has no finalisers at all. This function is + * mainly provided for symmetry. No practical usages can be thought of. + * + * @param[out] obj Object to clear its finalisers. + * @exception rb_eFrozenError `obj` is frozen. + * @return The passed `obj`. + * @post `obj` has no finalisers. + * @note There is no way to undefine a specific part of many finalisers + * that `obj` could have. All you can do is to clear them all. + */ +VALUE rb_undefine_finalizer(VALUE obj); + +/** + * Identical to rb_gc_stat(), with "count" parameter. + * + * @return Lifetime total number of runs of GC. + */ +size_t rb_gc_count(void); + +/** + * Obtains various GC related profiles. The parameter can be either a Symbol + * or a Hash. If a Hash is passed, it is filled with everything currently + * available. If a Symbol is passed just that portion is returned. + * + * Possible variations of keys you can pass here change from version to + * version. You can get the list of known keys by passing an empty hash and + * let it be filled. + * + * @param[in,out] key_or_buf A Symbol, or a Hash. + * @exception rb_eTypeError Neither Symbol nor Hash. + * @exception rb_eFrozenError Frozen hash is passed. + * @return In case a Hash is passed it returns 0. Otherwise the + * profile value associated with the given key is returned. + * @post In case a Hash is passed it is filled with values. + */ +size_t rb_gc_stat(VALUE key_or_buf); + +/** + * Obtains various info regarding the most recent GC run. This includes for + * instance the reason of the GC. The parameter can be either a Symbol or a + * Hash. If a Hash is passed, it is filled with everything currently + * available. If a Symbol is passed just that portion is returned. + * + * Possible variations of keys you can pass here change from version to + * version. You can get the list of known keys by passing an empty hash and + * let it be filled. + * + * @param[in,out] key_or_buf A Symbol, or a Hash. + * @exception rb_eTypeError Neither Symbol nor Hash. + * @exception rb_eFrozenError Frozen hash is passed. + * @return In case a Hash is passed it returns that hash. Otherwise + * the profile value associated with the given key is returned. + * @post In case a Hash is passed it is filled with values. + */ +VALUE rb_gc_latest_gc_info(VALUE key_or_buf); + +/** + * Informs that there are external memory usages. Our GC runs when we are + * running out of memory. The amount of memory, however, can increase/decrease + * behind-the-scene. For instance DLLs can allocate memories using `mmap(2)` + * etc, which are opaque to us. Registering such external allocations using + * this function enables proper detection of how much memories an object used + * as a whole. That will trigger GCs more often than it would otherwise. You + * can also pass negative numbers here, to indicate that such external + * allocations are gone. + * + * @param[in] diff Amount of memory increased(+)/decreased(-). + */ +void rb_gc_adjust_memory_usage(ssize_t diff); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_GC_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/hash.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/hash.h new file mode 100644 index 0000000..af8dfd5 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/hash.h @@ -0,0 +1,320 @@ +#ifndef RBIMPL_INTERN_HASH_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_HASH_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cHash. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/st.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* hash.c */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_st_foreach(), except it raises exceptions when the callback + * function tampers the table during iterating over it. + * + * @param[in] st Table to iterate over. + * @param[in] func Callback function to apply. + * @param[in] arg Passed as-is to `func`. + * @exception rb_eRuntimeError `st` was tampered during iterating. + * + * @internal + * + * This is declared here because exceptions are Ruby level concept. + * + * This is in fact a very thin wrapper of rb_st_foreach_check(). + */ +void rb_st_foreach_safe(struct st_table *st, st_foreach_callback_func *func, st_data_t arg); + +/** @alias{rb_st_foreach_safe} */ +#define st_foreach_safe rb_st_foreach_safe + +/** + * Try converting an object to its hash representation using its `to_hash` + * method, if any. If there is no such thing, returns ::RUBY_Qnil. + * + * @param[in] obj Arbitrary ruby object to convert. + * @exception rb_eTypeError `obj.to_hash` returned something non-Hash. + * @retval RUBY_Qnil No conversion from `obj` to hash defined. + * @retval otherwise Converted hash representation of `obj`. + * @see rb_io_check_io + * @see rb_check_array_type + * @see rb_check_string_type + * + * @internal + * + * There is no rb_hash_to_hash() that analogous to rb_str_to_str(). + * Intentional or ...? + */ +VALUE rb_check_hash_type(VALUE obj); + +RBIMPL_ATTR_NONNULL(()) +/** + * Iterates over a hash. This basically does the same thing as + * rb_st_foreach(). But because the passed hash is a Ruby object, its keys and + * values are both Ruby objects. + * + * @param[in] hash An instance of ::rb_cHash to iterate over. + * @param[in] func Callback function to yield. + * @param[in] arg Passed as-is to `func`. + * @exception rb_eRuntimeError `hash` was tampered during iterating. + */ +void rb_hash_foreach(VALUE hash, int (*func)(VALUE key, VALUE val, VALUE arg), VALUE arg); + +/** + * Calculates a message authentication code of the passed object. The return + * value is a very small integer used as an index of a key of a table. In + * order to calculate the value this function calls `#hash` method of the + * passed object. Ruby provides you a default implementation. But if you + * implement your class in C, that default implementation cannot know the + * underlying data structure. You must implement your own `#hash` method then, + * which must return an integer of uniform distribution in a sufficiently + * instant manner. + * + * @param[in] obj Arbitrary Ruby object. + * @exception rb_eTypeError `obj.hash` returned something non-Integer. + * @return A small integer. + * @note `#hash` can return very big integers, but they get truncated. + */ +VALUE rb_hash(VALUE obj); + +/** + * Creates a new, empty hash object. + * + * @return An allocated new instance of ::rb_cHash. + */ +VALUE rb_hash_new(void); + +/** + * Identical to rb_hash_new(), except it additionally specifies how many keys + * it is expected to contain. This way you can create a hash that is large enough + * for your need. For large hashes it means it won't need to be reallocated and + * rehashed as much, improving performance. + * + * @param[in] capa Designed capacity of the hash. + * @return An empty Hash, whose capacity is `capa`. + */ +VALUE rb_hash_new_capa(long capa); + +/** + * Duplicates a hash. + * + * @param[in] hash An instance of ::rb_cHash. + * @return An allocated new instance of ::rb_cHash, whose contents are + * a verbatim copy of from `hash`. + */ +VALUE rb_hash_dup(VALUE hash); + +/** @alias{rb_obj_freeze} */ +VALUE rb_hash_freeze(VALUE obj); + +/** + * Queries the given key in the given hash table. If there is the key in the + * hash, returns the value associated with the key. Otherwise it returns the + * "default" value (defined per hash table). + * + * @param[in] hash Hash table to look into. + * @param[in] key Hash key to look for. + * @return Either the value associated with the key, or the default one if + * absent. + */ +VALUE rb_hash_aref(VALUE hash, VALUE key); + +/** + * Identical to rb_hash_aref(), except it always returns ::RUBY_Qnil for + * misshits. + * + * @param[in] hash Hash table to look into. + * @param[in] key Hash key to look for. + * @return Either the value associated with the key, or ::RUBY_Qnil if + * absent. + * @note A hash can store ::RUBY_Qnil as an ordinary value. You cannot + * distinguish whether the key is missing, or just its associated + * value happens to be ::RUBY_Qnil, as far as you use this API. + */ +VALUE rb_hash_lookup(VALUE hash, VALUE key); + +/** + * Identical to rb_hash_lookup(), except you can specify what to return on + * misshits. This is much like 2-arguments version of `Hash#fetch`. + * + * ```CXX + * VALUE hash; + * VALUE key; + * VALUE tmp = rb_obj_alloc(rb_cObject); + * VALUE val = rb_hash_lookup2(hash, key, tmp); + * if (val == tmp) { + * printf("misshit"); + * } + * else { + * printf("hit"); + * } + * ``` + * + * @param[in] hash Hash table to look into. + * @param[in] key Hash key to look for. + * @param[in] def Default value. + * @retval def `hash` does not have `key`. + * @retval otherwise The value associated with `key`. + */ +VALUE rb_hash_lookup2(VALUE hash, VALUE key, VALUE def); + +/** + * Identical to rb_hash_lookup(), except it yields the (implicitly) passed + * block instead of returning ::RUBY_Qnil. + * + * @param[in] hash Hash table to look into. + * @param[in] key Hash key to look for. + * @exception rb_eKeyError No block given. + * @return Either the value associated with the key, or what the block + * evaluates to if absent. + */ +VALUE rb_hash_fetch(VALUE hash, VALUE key); + +/** + * Inserts or replaces ("upsert"s) the objects into the given hash table. This + * basically associates the given value with the given key. On duplicate key + * this function updates its associated value with the given one. Otherwise it + * inserts the association at the end of the table. + * + * @param[out] hash Target hash table to modify. + * @param[in] key Arbitrary Ruby object. + * @param[in] val A value to be associated with `key`. + * @exception rb_eFrozenError `hash` is frozen. + * @return The passed `val` + * @post `val` is associated with `key` in `hash`. + */ +VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val); + +/** + * Swipes everything out of the passed hash table. + * + * @param[out] hash Target to clear. + * @exception rb_eFrozenError `hash`is frozen. + * @return The passed `hash` + * @post `hash` has no contents. + */ +VALUE rb_hash_clear(VALUE hash); + +/** + * Deletes each entry for which the block returns a truthy value. If there is + * no block given, it returns an enumerator that does the thing. + * + * @param[out] hash Target hash to modify. + * @exception rb_eFrozenError `hash` is frozen. + * @retval hash The hash is modified. + * @retval otherwise An instance of ::rb_cEnumerator that does it. + */ +VALUE rb_hash_delete_if(VALUE hash); + +/** + * Deletes the passed key from the passed hash table, if any. + * + * @param[out] hash Target hash to modify. + * @param[in] key Key to delete. + * @retval RUBY_Qnil `hash` has no such key as `key`. + * @retval otherwise What was associated with `key`. + * @post `hash` has no such key as `key`. + */ +VALUE rb_hash_delete(VALUE hash, VALUE key); + +/** + * Inserts a list of key-value pairs into a hash table at once. It is + * semantically identical to repeatedly calling rb_hash_aset(), but can be + * faster than that. + * + * @param[in] argc Length of `argv`, must be even. + * @param[in] argv A list of key, value, key, value, ... + * @param[out] hash Target hash table to modify. + * @post `hash` has contents from `argv`. + * @note `argv` is allowed to be NULL as long as `argc` is zero. + * + * @internal + * + * What happens for duplicated keys? Well it silently discards older ones to + * accept the newest (rightmost) one. This behaviour also mimics repeated call + * of rb_hash_aset(). + */ +void rb_hash_bulk_insert(long argc, const VALUE *argv, VALUE hash); + +/** + * Type of callback functions to pass to rb_hash_update_by(). + * + * @param[in] newkey A key of the table. + * @param[in] oldkey Value associated with `key` in hash1. + * @param[in] value Value associated with `key` in hash2. + * @return Either one of the passed values to take. + */ +typedef VALUE rb_hash_update_func(VALUE newkey, VALUE oldkey, VALUE value); + +/** + * Destructively merges two hash tables into one. It resolves key conflicts by + * calling the passed function and take its return value. + * + * @param[out] hash1 Target hash to be modified. + * @param[in] hash2 A hash to merge into `hash1`. + * @param[in] func Conflict reconciler. + * @exception rb_eFrozenError `hash1` is frozen. + * @exception rb_eRuntimeError `hash2` is updated instead. + * @return The passed `hash1`. + * @post Contents of `hash2` is merged into `hash1`. + * @note You can pass zero to `func`. This means values from `hash2` + * are always taken. + */ +VALUE rb_hash_update_by(VALUE hash1, VALUE hash2, rb_hash_update_func *func); + +/* file.c */ + +/** + * This function is mysterious. What it does is not immediately obvious. Also + * what it does seems platform dependent. + * + * @param[in] path A local path. + * @retval 0 The "check" succeeded. + * @retval otherwise The "check" failed. + */ +int rb_path_check(const char *path); + +/* hash.c */ + +/** + * Destructively removes every environment variables of the running process. + * + * @return The `ENV` object. + * @post The process has no environment variables. + */ +VALUE rb_env_clear(void); + +/** + * Identical to #RHASH_SIZE(), except it returns the size in Ruby's integer + * instead of C's. + * + * @param[in] hash A hash object. + * @return The size of the hash. + */ +VALUE rb_hash_size(VALUE hash); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_HASH_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/io.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/io.h new file mode 100644 index 0000000..02c2497 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/io.h @@ -0,0 +1,661 @@ +#ifndef RBIMPL_INTERN_IO_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_IO_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cIO. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* io.c */ + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define rb_defout rb_stdout + +/* string.c */ /* ...why? moved in commit de7161526014b781468cea5d84411e23be */ + +/** + * The field separator character for inputs, or the `$;`. This affects how + * `String#split` works. You can set this via the `-F` command line option. + * You can also assign arbitrary ruby objects programmatically, but it makes + * best sense for you to assign a regular expression here. + * + * @internal + * + * Tidbit: "fs" comes from AWK's `FS` variable. + */ +RUBY_EXTERN VALUE rb_fs; + +/* io.c */ /* ...why? given rb_fs is in string.c? */ + +/** + * The field separator character for outputs, or the `$,`. This affects how + * `Array#join` works. + * + * @deprecated Assigning anything other than ::RUBY_Qnil to this variable is + * deprecated. + */ +RUBY_EXTERN VALUE rb_output_fs; + +/** + * The record separator character for inputs, or the `$/`. This affects how + * `IO#gets` works. You can set this via the `-0` command line option. + * + * @deprecated Assigning anything other than ::RUBY_Qnil to this variable is + * deprecated. + * + * @internal + * + * Tidbit: "rs" comes from AWK's `RS` variable. + */ +RUBY_EXTERN VALUE rb_rs; + +/** + * This is the default value of ::rb_rs, i.e. `"\n"`. It seems it has always + * been just a newline string since the beginning. Not sure why C codes has to + * use this, given there is no way for ruby programs to interface. + * + * Also it has not been deprecated for unknown reasons. + */ +RUBY_EXTERN VALUE rb_default_rs; + +/** + * The record separator character for outputs, or the `$\`. This affects how + * `IO#print` works. + * + * @deprecated Assigning anything other than ::RUBY_Qnil to this variable is + * deprecated. + */ +RUBY_EXTERN VALUE rb_output_rs; + +/** + * Writes the given string to the given IO. + * + * @param[out] io An IO, opened for writing. + * @param[in] str A String-like object to write to `io`. + * @exception rb_eIOError `io` isn't opened for writing. + * @exception rb_eFrozenError `io` is frozen. + * @exception rb_eTypeError No conversion from `str` to String. + * @exception rb_eSystemCallError `write(2)` failed for some reason. + * @return The number of bytes written to the `io`. + * @post `str` (up to the length of return value) is written to `io`. + * @note This function blocks. + * @note Partial write is a thing. It must be at least questionable not + * to check the return value. + * + * @internal + * + * Above description is in fact inaccurate. This function can take arbitrary + * objects, and calls their `write` method. What is written above in fact + * describes how `IO#write` works. You can pass StringIO etc. here, and would + * work completely differently. + */ +VALUE rb_io_write(VALUE io, VALUE str); + +/** + * Reads a "line" from the given IO. A line here means a chunk of characters + * which is terminated by either `"\n"` or an EOF. + * + * @param[in,out] io An IO, opened for reading. + * @exception rb_eIOError `io` isn't opened for reading. + * @exception rb_eFrozenError `io` is frozen. + * @retval RUBY_Qnil `io` is at EOF. + * @retval otherwise An instance of ::rb_cString. + * @post `io` is read. + * @note Unlike `IO#gets` it doesn't set `$_`. + * @note Unlike `IO#gets` it doesn't consider `$/`. + */ +VALUE rb_io_gets(VALUE io); + +/** + * Reads a byte from the given IO. + * + * @note In Ruby a "byte" always means an 8 bit integer ranging from + * 0 to 255 inclusive. + * @param[in,out] io An IO, opened for reading. + * @exception rb_eIOError `io` is not opened for reading. + * @exception rb_eFrozenError `io` is frozen. + * @retval RUBY_Qnil `io` is at EOF. + * @retval otherwise An instance of ::rb_cInteger. + * @post `io` is read. + * + * @internal + * + * Of course there was a function called `rb_io_getc()`. It was removed in + * commit a25fbe3b3e531bbe479f344af24eaf9d2eeae6ea. + */ +VALUE rb_io_getbyte(VALUE io); + +/** + * "Unget"s a string. This function pushes back the passed string onto the + * passed IO, such that a subsequent buffered read will return it. If the + * passed content is in fact an integer, a single character string of that + * codepoint of the encoding of the IO will be pushed back instead. + * + * It might be counter-intuitive but this function can push back multiple + * characters at once. Also this function can be called multiple times on a + * same IO. Also a "character" can be wider than a byte, depending on the + * encoding of the IO. + * + * @param[out] io An IO, opened for reading. + * @param[in] c Either a String, or an Integer. + * @exception rb_eIOError `io` is not opened for reading. + * @exception rb_eFrozenError `io` is frozen. + * @exception rb_eTypeError No conversion from `c` to ::rb_cString. + * @return Always returns ::RUBY_Qnil. + * + * @internal + * + * Why there is ungetc, given there is no getc? + */ +VALUE rb_io_ungetc(VALUE io, VALUE c); + +/** + * Identical to rb_io_ungetc(), except it doesn't take the encoding of the + * passed IO into account. When an integer is passed, it just casts that value + * to C's `unsigned char`, and pushes that back. + * + * @param[out] io An IO, opened for reading. + * @param[in] b Either a String, or an Integer. + * @exception rb_eIOError `io` is not opened for reading. + * @exception rb_eFrozenError `io` is frozen. + * @exception rb_eTypeError No conversion from `b` to ::rb_cString. + * @return Always returns ::RUBY_Qnil. + */ +VALUE rb_io_ungetbyte(VALUE io, VALUE b); + +/** + * Closes the IO. Any buffered contents are flushed to the operating system. + * Any future operations against the IO would raise ::rb_eIOError. In case the + * io was created using `IO.popen`, it also sets the `$?`. + * + * @param[out] io Target IO to close. + * @return Always returns ::RUBY_Qnil. + * @post `$?` is set in case IO is a pipe. + * @post No operations are possible against `io` any further. + * @note This can block to flush the contents. + * @note This can wake other threads up, especially those who are + * `select()`-ing the passed IO. + * @note Multiple invocations of this function over the same IO again + * and again is not an error, since Ruby 2.3. + * + * @internal + * + * You can close a frozen IO... Is this intentional? + */ +VALUE rb_io_close(VALUE io); + +/** + * Flushes any buffered data within the passed IO to the underlying operating + * system. + * + * @param[out] io Target IO to flush. + * @exception rb_eIOError `io` is closed. + * @exception rb_eFrozenError `io` is frozen. + * @exception rb_eSystemCallError `write(2)` failed for some reason. + * @return The passed `io`. + * @post `io`'s buffers are empty. + * @note This operation also discards the read buffer. Should basically + * be harmless, but in an esoteric situation like when user pushed + * something different from what was read using `ungetc`, this + * operation in fact changes the behaviour of the `io`. + * @note Buffering is difficult. This operation flushes the data from + * our userspace to the kernel, but that doesn't always mean you + * can expect them stored persistently onto your hard drive. + */ +VALUE rb_io_flush(VALUE io); + +/** + * Queries if the passed IO is at the end of file. "The end of file" here mans + * that there are no more data to read. This function blocks until the read + * buffer is filled in, and if that operation reached the end of file, it still + * returns ::RUBY_Qfalse (because there are data yet in that buffer). It + * returns ::RUBY_Qtrue once after the buffer is cleared. + * + * @param[in,out] io Target io to query. + * @exception rb_eIOError `io` is not opened for reading. + * @exception rb_eFrozenError `io` is frozen. + * @retval RUBY_Qfalse There are things yet to be read. + * @retval RUBY_Qtrue "The end of file" situation. + */ +VALUE rb_io_eof(VALUE io); + +/** + * Sets the binmode. This operation nullifies the effect of textmode (newline + * conversion from `"\r\n"` to `"\n"` or vice versa). Note that it doesn't + * stop character encodings conversions. For instance an IO created using: + * + * ```ruby + * File.open( + * "/dev/urandom", + * textmode: true, + * external_encoding: Encoding::GB18030, + * internal_encoding: Encoding::Windows_31J) + * ``` + * + * has both newline and character conversions. If you pass such IO to this + * function, only the `textmode:true` part is cancelled. Texts read through + * the IO would still be encoded in Windows-31J; texts written to the IO will + * be encoded in GB18030. + * + * @param[out] io Target IO to modify. + * @exception rb_eFrozenError `io` is frozen. + * @return The passed `io`. + * @post `io` is in binmode. + * @note There is no equivalent operation in Ruby. You can do this only + * in C. + */ +VALUE rb_io_binmode(VALUE io); + +/** + * Forces no conversions be applied to the passed IO. Unlike rb_io_binmode(), + * this cancels any newline conversions as well as encoding conversions. Any + * texts read/written through the IO will be the verbatim binary contents. + * + * @param[out] io Target IO to modify. + * @exception rb_eFrozenError `io` is frozen. + * @return The passed `io`. + * @post `io` is in binmode. Both external/internal encoding are set to + * rb_ascii8bit_encoding(). + * @note This is the implementation of `IO#binmode`. + */ +VALUE rb_io_ascii8bit_binmode(VALUE io); + +/** + * Identical to rb_io_write(), except it always returns the passed IO. + * + * @param[out] io An IO, opened for writing. + * @param[in] str A String-like object to write to `io`. + * @exception rb_eIOError `io` isn't opened for writing. + * @exception rb_eFrozenError `io` is frozen. + * @exception rb_eTypeError No conversion from `str` to String. + * @exception rb_eSystemCallError `write(2)` failed. + * @return The passed `io`. + * @post `str` is written to `io`. + * @note This function blocks. + * + * @internal + * + * As rb_io_write(), above description is a fake. + */ +VALUE rb_io_addstr(VALUE io, VALUE str); + +/** + * This is a rb_f_sprintf() + rb_io_write() combo. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv A format string followed by its arguments. + * @param[out] io An IO, opened for writing. + * @exception rb_eIOError `io` isn't opened for writing. + * @exception rb_eFrozenError `io` is frozen. + * @exception rb_eTypeError No conversion from `str` to String. + * @exception rb_eSystemCallError `write(2)` failed. + * @return Always returns ::RUBY_Qnil. + * @post `argv` is formatted, then written to `io`. + * @note This function blocks. + * + * @internal + * + * As rb_io_write(), above descriptions include fakes. + */ +VALUE rb_io_printf(int argc, const VALUE *argv, VALUE io); + +/** + * Iterates over the passed array to apply rb_io_write() individually. If + * there is `$,`, this function inserts the string in middle of each + * iterations. If there is `$\`, this function appends the string at the end. + * If the array is empty, this function outputs `$_`. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv An array of strings to display. + * @param[out] io An IO, opened for writing. + * @exception rb_eIOError `io` isn't opened for writing. + * @exception rb_eFrozenError `io` is frozen. + * @exception rb_eTypeError No conversion from `str` to String. + * @exception rb_eSystemCallError `write(2)` failed. + * @return Always returns ::RUBY_Qnil. + * @post `argv` is written to `io`. + * @note This function blocks. + * @note This function calls rb_io_write() multiple times. Which means, + * it is not an atomic operation. Outputs from multiple threads + * can interleave. + * + * @internal + * + * As rb_io_write(), above descriptions include fakes. + */ +VALUE rb_io_print(int argc, const VALUE *argv, VALUE io); + +/** + * Iterates over the passed array to apply rb_io_write() individually. Unlike + * rb_io_print(), this function prints a newline per each element. It also + * flattens the passed array (OTOH rb_io_print() just resorts to + * rb_ary_to_s()). + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv An array of strings to display. + * @param[out] io An IO, opened for writing. + * @exception rb_eIOError `io` isn't opened for writing. + * @exception rb_eFrozenError `io` is frozen. + * @exception rb_eTypeError No conversion from `str` to String. + * @exception rb_eSystemCallError `write(2)` failed. + * @return Always returns ::RUBY_Qnil. + * @post `argv` is written to `io`. + * @note This function blocks. + * @note This function calls rb_io_write() multiple times. Which means, + * it is not an atomic operation. Outputs from multiple threads + * can interleave. + * + * @internal + * + * As rb_io_write(), above descriptions include fakes. + */ +VALUE rb_io_puts(int argc, const VALUE *argv, VALUE io); + +/** + * Creates an IO instance whose backend is the given file descriptor. C + * extension libraries sometimes have file descriptors created elsewhere (maybe + * deep inside of another shared library), which they want ruby programs to + * handle. This function is handy for such situations. + * + * @param[in] fd Target file descriptor. + * @param[in] flags Flags, e.g. `O_CREAT|O_EXCL` + * @param[in] path The path of the file that backs `fd`, for diagnostics. + * @return An allocated instance of ::rb_cIO. + * @note Leave `path` NULL if you don't know. + */ +VALUE rb_io_fdopen(int fd, int flags, const char *path); + +RBIMPL_ATTR_NONNULL(()) +/** + * Opens a file located at the given path. + * + * `fmode` is a C string that represents the open mode. It can be one of: + * + * - `r` (means `O_RDONLY`), + * - `w` (means `O_WRONLY | O_TRUNC | O_CREAT`), + * - `a` (means `O_WRONLY | O_APPEND | O_CREAT`), + * + * Followed by zero or more combinations of: + * + * - `b` (means `_O_BINARY`), + * - `t` (means `_O_TEXT`), + * - `+` (means `O_RDWR`), + * - `x` (means `O_TRUNC`), or + * - `:[BOM|]enc[:enc]` (see below). + * + * This last one specifies external (and internal if any) encodings, + * respectively. If optional `BOM|` is specified and the specified external + * encoding is capable of expressing BOMs, opening file's contents' byte order + * is auto-detected using the mechanism. + * + * So for instance, fmode of `"rt|BOM:utf-16le:utf-8"` specifies that... + * + * - the physical representation of the contents of the file is in UTF-16; + * - honours its BOM but assumes little endian if absent; + * - opens the file for reading; + * - what is read is converted into UTF-8; + * - with newlines cannibalised to `\n`. + * + * @param[in] fname Path to open. + * @param[in] fmode Mode specifier much like `fopen(3)`. + * @exception rb_eArgError `fmode` contradicted (e.g. `"bt"`). + * @exception rb_eSystemCallError `open(2)` failed for some reason. + * @return An instance of ::rb_cIO. + */ +VALUE rb_file_open(const char *fname, const char *fmode); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_file_open(), except it takes the pathname as a Ruby's string + * instead of C's. In case the passed Ruby object is a non-String it tries to + * call `#to_path`. + * + * @param[in] fname Path to open. + * @param[in] fmode Mode specifier much like `fopen(3)`. + * @exception rb_eTypeError `fname` is not a String. + * @exception rb_eEncCompatError `fname` is not ASCII-compatible. + * @exception rb_eArgError `fmode` contradicted (e.g. `"bt"`). + * @exception rb_eSystemCallError `open(2)` failed for some reason. + * @return An instance of ::rb_cIO. + */ +VALUE rb_file_open_str(VALUE fname, const char *fmode); + +/** + * Much like rb_io_gets(), but it reads from the mysterious ARGF object. ARGF + * in this context can be seen as a virtual IO which concatenates contents of + * the files passed to the process via the ARGV, or just STDIN if there are no + * such files. + * + * Unlike rb_io_gets() this function sets `$_`. + * + * @exception rb_eFrozenError ARGF resorts to STDIN but it is frozen. + * @retval RUBY_Qnil ARGF is at EOF. + * @retval otherwise An instance of ::rb_cString. + * @post ARGF is read. + * @post `$_` is set. + * + * @internal + * + * In reality, this function can call `ARGF.gets`. Its redefinition can affect + * the behaviour. + * + * Also, you can tamper ARGV on-the-fly in middle of ARGF usages: + * + * ``` + * gets # Reads the first file. + * ARGV << '/proc/self/limits' # Adds a file. + * gets # Can read from /proc/self/limits. + * ``` + */ +VALUE rb_gets(void); + +RBIMPL_ATTR_NONNULL(()) +/** + * Writes the given error message to somewhere applicable. On Windows it goes + * to the console. On POSIX environments it goes to the standard error. + * + * @warning IT IS A BAD IDEA to use this function form your C extensions. + * It is often annoying when GUI applications write to consoles; + * users don't want to look at there. Programmers also want to + * control the cause of the message itself, like by rescuing an + * exception. Just let ruby handle errors. That must be better than + * going your own way. + * + * @param[in] str Error message to display. + * @post `str` is written to somewhere. + * + * @internal + * + * AFAIK this function is listed here without marked deprecated because there + * are usages of this function in the wild. + */ +void rb_write_error(const char *str); + +/** + * Identical to rb_write_error(), except it additionally takes the message's + * length. Necessary when you want to handle wide characters. + * + * @param[in] str Error message to display. + * @param[in] len Length of `str`, in bytes. + * @post `str` is written to somewhere. + */ +void rb_write_error2(const char *str, long len); + +/** + * Closes everything. In case of POSIX environments, a child process inherits + * its parent's opened file descriptors. Which is nowadays considered as one + * of the UNIX mistakes. This function closes such inherited file descriptors. + * When your C extension needs to have a child process, don't forget to call + * this from your child process right before exec. + * + * @param[in] lowfd Lower bound of FDs (you want STDIN to remain, no?). + * @param[in] maxhint Hint of max FDs. + * @param[in] noclose_fds A hash, whose keys are an allowlist. + * + * @internal + * + * As of writing, in spite of the name, this function does not actually close + * anything. It just sets `FD_CLOEXEC` for everything and let `execve(2)` to + * atomically close them at once. This is because as far as we know there are + * no such platform that has `fork(2)` but lacks `FD_CLOEXEC`. + * + * Because this function is expected to run on a forked process it is entirely + * async-signal-safe. + */ +void rb_close_before_exec(int lowfd, int maxhint, VALUE noclose_fds); + +RBIMPL_ATTR_NONNULL(()) +/** + * This is an rb_cloexec_pipe() + rb_update_max_fd() combo. + * + * @param[out] pipes Return buffer. Must at least hold 2 elements. + * @retval 0 Successful creation of a pipe. + * @retval -1 Failure in underlying system call(s). + * @post `pipes` is filled with file descriptors. + * @post `errno` is set on failure. + */ +int rb_pipe(int *pipes); + +/** + * Queries if the given FD is reserved or not. Occasionally Ruby interpreter + * opens files for its own purposes. Use this function to prevent touching + * such behind-the-scene descriptors. + * + * @param[in] fd Target file descriptor. + * @retval 1 `fd` is reserved. + * @retval 0 Otherwise. + */ +int rb_reserved_fd_p(int fd); + +/** @alias{rb_reserved_fd_p} */ +#define RB_RESERVED_FD_P(fd) rb_reserved_fd_p(fd) + +/** + * Opens a file that closes on exec. In case of POSIX environments, a child + * process inherits its parent's opened file descriptors. Which is nowadays + * considered as one of the UNIX mistakes. This function opens a file + * descriptor as `open(2)` does, but additionally instructs the operating + * system that we don't want it be seen from child processes. + * + * @param[in] pathname File path to open. + * @param[in] flags Open mode, as in `open(2)`. + * @param[in] mode File mode, in case of `O_CREAT`. + * @retval -1 `open(2)` failed for some reason. + * @retval otherwise An allocated new file descriptor. + * @note This function does not raise. + * + * @internal + * + * Whether this function can take NULL or not depends on the underlying open(2) + * system call implementation but @shyouhei doesn't think it's worth trying. + */ +int rb_cloexec_open(const char *pathname, int flags, mode_t mode); + +/** + * Identical to rb_cloexec_fcntl_dupfd(), except it implies minfd is 3. + * + * @param[in] oldfd File descriptor to duplicate. + * @retval -1 `dup2(2)` failed for some reason. + * @retval otherwise An allocated new file descriptor. + * @note This function does not raise. + */ +int rb_cloexec_dup(int oldfd); + +/** + * Identical to rb_cloexec_dup(), except you can specify the destination file + * descriptor. If the destination is already squatted by another file + * descriptor that gets silently closed without any warnings. (This is a spec + * requested by POSIX.) + * + * @param[in] oldfd File descriptor to duplicate. + * @param[in] newfd Return value destination. + * @retval -1 `dup2(2)` failed for some reason. + * @retval newfd An allocated new file descriptor. + * @post Whatever sat at `newfd` gets closed with no notifications. + * @post In case return value is -1 `newfd` is untouched. + * @note This function does not raise. + */ +int rb_cloexec_dup2(int oldfd, int newfd); + +RBIMPL_ATTR_NONNULL(()) +/** + * Opens a pipe with closing on exec. In case of POSIX environments, a child + * process inherits its parent's opened file descriptors. Which is nowadays + * considered as one of the UNIX mistakes. This function opens a pipe as + * `pipe(2)` does, but additionally instructs the operating system that we + * don't want the duplicated FDs be seen from child processes. + * + * @param[out] fildes Return buffer. Must at least hold 2 elements. + * @retval 0 Successful creation of a pipe. + * @retval -1 Failure in underlying system call(s). + * @post `pipes` is filled with file descriptors. + * @post `errno` is set on failure. + */ +int rb_cloexec_pipe(int fildes[2]); + +/** + * Duplicates a file descriptor with closing on exec. In case of POSIX + * environments, a child process inherits its parent's opened file descriptors. + * Which is nowadays considered as one of the UNIX mistakes. This function + * duplicates a file descriptor as `dup(2)` does, but additionally instructs + * the operating system that we don't want the duplicated FD be seen from child + * processes. + * + * @param[in] fd File descriptor to duplicate. + * @param[in] minfd Minimum allowed FD to return. + * @retval -1 `dup(2)` failed for some reason. + * @retval otherwise An allocated new file descriptor. + * @note This function does not raise. + * + * `minfd` is handy when for instance STDERR is closed but you don't want to + * use fd 2. + */ +int rb_cloexec_fcntl_dupfd(int fd, int minfd); + +/** + * Informs the interpreter that the passed fd can be the max. This information + * is used from rb_close_before_exec(). + * + * @param[in] fd An open FD, which can be large. + */ +void rb_update_max_fd(int fd); + +/** + * Sets or clears the close-on-exec flag of the passed file descriptor to the + * desired state. STDIN, STDOUT, STDERR are the exceptional file descriptors + * that shall remain open. All others are to be closed on exec. When a C + * extension library opens a file descriptor using anything other than + * rb_cloexec_open() etc., that file descriptor shall experience this function. + * + * @param[in] fd An open file descriptor. + */ +void rb_fd_fix_cloexec(int fd); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_IO_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/load.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/load.h new file mode 100644 index 0000000..288a16c --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/load.h @@ -0,0 +1,218 @@ +#ifndef RBIMPL_INTERN_LOAD_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_LOAD_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_f_require(). + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* load.c */ + +/** + * Loads and executes the Ruby program in the given file. + * + * If the path is an absolute path (e.g. starts with `'/'`), the file will be + * loaded directly using the absolute path. If the path is an explicit + * relative path (e.g. starts with `'./'` or `'../'`), the file will be loaded + * using the relative path from the current directory. Otherwise, the file + * will be searched for in the library directories listed in the `$LOAD_PATH`. + * If the file is found in a directory, this function will attempt to load the + * file relative to that directory. If the file is not found in any of the + * directories in the `$LOAD_PATH`, the file will be loaded using the relative + * path from the current directory. + * + * If the file doesn't exist when there is an attempt to load it, a LoadError + * will be raised. + * + * If the `wrap` parameter is true, the loaded script will be executed under an + * anonymous module, protecting the calling program's global namespace. In no + * circumstance will any local variables in the loaded file be propagated to + * the loading environment. + * + * @param[in] path Pathname of a file to load. + * @param[in] wrap Either to load under an anonymous module. + * @exception rb_eTypeError `path` is not a string. + * @exception rb_eArgError `path` is broken as a pathname. + * @exception rb_eEncCompatError `path` is incompatible with pathnames. + * @exception rb_eLoadError `path` not found. + * @exception rb_eException Any exceptions while loading the contents. + * + * @internal + * + * It seems this function is under the rule of bootsnap's regime? + */ +void rb_load(VALUE path, int wrap); + +/** + * Identical to rb_load(), except it avoids potential global escapes. Such + * global escapes include exceptions, `throw`, `break`, for example. + * + * It first evaluates the given file as rb_load() does. If no global escape + * occurred during the evaluation, it `*state` is set to zero on return. + * Otherwise, it sets `*state` to nonzero. If state is `NULL`, it is not set + * in both cases. + * + * @param[in] path Pathname of a file to load. + * @param[in] wrap Either to load under an anonymous module. + * @param[out] state State of execution. + * @post `*state` is set to zero if succeeded. Nonzero otherwise. + * @warning You have to clear the error info with `rb_set_errinfo(Qnil)` if + * you decide to ignore the caught exception. + * @see rb_load + * @see rb_protect + * + * @internal + * + * Though not a part of our public API, `state` is in fact an + * enum ruby_tag_type. You can see the potential "nonzero" values by looking + * at vm_core.h. + */ +void rb_load_protect(VALUE path, int wrap, int *state); + +RBIMPL_ATTR_NONNULL(()) +/** + * Queries if the given feature has already been loaded into the execution + * context. The "feature" head are things like `"json"` or `"socket"`. + * + * @param[in] feature Name of a library you want to know about. + * @retval 1 Yes there is. + * @retval 0 Not yet. + */ +int rb_provided(const char *feature); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Identical to rb_provided(), except it additionally returns the "canonical" + * name of the loaded feature. This can be handy when for instance you want to + * know the actually loaded library is either `foo.rb` or `foo.so`. + * + * @param[in] feature Name of a library you want to know about. + * @param[out] loading Return buffer. + * @retval 1 Yes there is. + * @retval 0 Not yet. + */ +int rb_feature_provided(const char *feature, const char **loading); + +RBIMPL_ATTR_NONNULL(()) +/** + * Declares that the given feature is already provided by someone else. This + * API can be handy when you have an extension called `foo.so` which, when + * required, also provides functionality of `bar.so`. + * + * @param[in] feature Name of a library which had already been provided. + * @post No further `require` would search `feature`. + */ +void rb_provide(const char *feature); + +/** + * Identical to rb_require_string(), except it ignores the first argument for + * no reason. There seems to be no reason for 3rd party extension libraries to + * use it. + * + * @param[in] self Ignored. Can be anything. + * @param[in] feature Name of a feature, e.g. `"json"`. + * @exception rb_eLoadError No such feature. + * @exception rb_eRuntimeError `$"` is frozen; unable to push. + * @retval RUBY_Qtrue The feature is loaded for the first time. + * @retval RUBY_Qfalse The feature has already been loaded. + * @post `$"` is updated. + */ +VALUE rb_f_require(VALUE self, VALUE feature); + +/** + * Finds and loads the given feature, if absent. + * + * If the feature is an absolute path (e.g. starts with `'/'`), the feature + * will be loaded directly using the absolute path. If the feature is an + * explicit relative path (e.g. starts with `'./'` or `'../'`), the feature + * will be loaded using the relative path from the current directory. + * Otherwise, the feature will be searched for in the library directories + * listed in the `$LOAD_PATH`. + * + * If the feature has the extension `".rb"`, it is loaded as a source file; if + * the extension is `".so"`, `".o"`, or `".dll"`, or the default shared library + * extension on the current platform, Ruby loads the shared library as a Ruby + * extension. Otherwise, Ruby tries adding `".rb"`, `".so"`, and so on to the + * name until found. If the file named cannot be found, a LoadError will be + * raised. + * + * For extension libraries the given feature may use any shared library + * extension. For example, on Linux you can require `"socket.dll"` to actually + * load `socket.so`. + * + * The absolute path of the loaded file is added to `$LOADED_FEATURES`. A file + * will not be loaded again if its path already appears in there. + * + * Any constants or globals within the loaded source file will be available in + * the calling program's global namespace. However, local variables will not + * be propagated to the loading environment. + * + * @param[in] feature Name of a feature, e.g. `"json"`. + * @exception rb_eLoadError No such feature. + * @exception rb_eRuntimeError `$"` is frozen; unable to push. + * @retval RUBY_Qtrue The feature is loaded for the first time. + * @retval RUBY_Qfalse The feature has already been loaded. + * @post `$"` is updated. + */ +VALUE rb_require_string(VALUE feature); + +/** + * @name extension configuration + * @{ + */ + +/** + * Asserts that the extension library that calls this function is aware of + * Ractor. Multiple Ractors run without protecting each other. This doesn't + * interface well with C programs, unless designed with an in-depth + * understanding of how Ractors work. Extension libraries are shut out from + * Ractors by default. This API is to bypass that restriction. Once after it + * was called, successive calls to rb_define_method() etc. become definitions + * of methods that are aware of Ractors. The amendment would be in effect + * until the end of rb_require_string() etc. + * + * @param[in] flag Either the library is aware of Ractors or not. + * @post Methods would be callable form Ractors, if `flag` is true. + */ +void rb_ext_ractor_safe(bool flag); + +/** @alias{rb_ext_ractor_safe} */ +#define RB_EXT_RACTOR_SAFE(f) rb_ext_ractor_safe(f) + +/** + * This macro is to provide backwards compatibility. It must be safe to do + * something like: + * + * ```CXX + * #ifdef HAVE_RB_EXT_RACTOR_SAFE + * rb_ext_ractor_safe(true); + * #endif + * ``` + */ +#define HAVE_RB_EXT_RACTOR_SAFE 1 + +/** @} */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_LOAD_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/marshal.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/marshal.h new file mode 100644 index 0000000..118d78a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/marshal.h @@ -0,0 +1,112 @@ +#ifndef RBIMPL_INTERN_MARSHAL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_MARSHAL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to rb_mMarshal. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* marshal.c */ + +/** + * Serialises the given object and all its referring objects, to write them + * down to the passed port. + * + * @param[in] obj Target object to dump. + * @param[out] port IO-like destination buffer. + * @exception rb_eTypeError `obj` cannot be dumped for some reason. + * @exception rb_eRuntimeError `obj` was tampered during dumping. + * @exception rb_eArgError Traversal too deep. + * @return The passed `port` as-is. + * @post Serialised representation of `obj` is written to `port`. + * @note `port` is basically an IO but StringIO is also possible. + */ +VALUE rb_marshal_dump(VALUE obj, VALUE port); + +/** + * Deserialises a previous output of rb_marshal_dump() into a network of + * objects. + * + * @param[in,out] port Either IO or String. + * @exception rb_eTypeError `port` is in unexpected type. + * @exception rb_eArgError Contents of `port` is broken. + * @return Object(s) rebuilt using the info from `port`. + * + * SECURITY CONSIDERATIONS + * ======================== + * + * @warning By design, rb_marshal_load() can deserialise almost any + * class loaded into the Ruby process. In many cases this can + * lead to remote code execution if the Marshal data is loaded + * from an untrusted source. + * @warning As a result, rb_marshal_load() is not suitable as a general + * purpose serialisation format and you should never unmarshal + * user supplied input or other untrusted data. + * @warning If you need to deserialise untrusted data, use JSON or + * another serialisation format that is only able to load + * simple, 'primitive' types such as String, Array, Hash, etc. + * Never allow user input to specify arbitrary types to + * deserialise into. + */ +VALUE rb_marshal_load(VALUE port); + +/** + * Marshal format compatibility layer. Over time, classes evolve, so that + * their internal data structure change drastically. For instance an instance + * of ::rb_cRange was made of ::RUBY_T_OBJECT in 1.x., but in 3.x it is a + * ::RUBY_T_STRUCT now. In order to keep binary compatibility, we "fake" the + * marshalled representation to stick to old types. This is the API to enable + * that manoeuvre. Here is how: + * + * First, because you are going to keep backwards compatibility, you need to + * retain the old implementation of your class. Rename it, and keep the class + * somewhere (for instance rb_register_global_address() could help). Next + * create your new class. Do whatever you want. + * + * Then, this is the key point. Create two new "bridge" functions that convert + * the structs back and forth: + * + * - the "dumper" function that takes an instance of the new class, and + * returns an instance of the old one. This is called from + * rb_marshal_dump(), to keep it possible for old programs to read your new + * data. + * + * - the "loader" function that takes two arguments, new one and old one, in + * that order. rb_marshal_load() calls this function when it finds a + * representation of the retained old class. The old one passed to this + * function is the reconstructed instance of the old class. + * Reverse-engineer that to modify the new one, to have the identical + * contents. + * + * Finally, connect all of them using this function. + * + * @param[in] newclass The class that needs conversion. + * @param[in] oldclass Old implementation of `newclass`. + * @param[in] dumper Function that converts `newclass` to `oldclass`. + * @param[in] loader Function that converts `oldclass` to `newclass`. + * @exception rb_eTypeError `newclass` has no allocator. + */ +void rb_marshal_define_compat(VALUE newclass, VALUE oldclass, VALUE (*dumper)(VALUE), VALUE (*loader)(VALUE, VALUE)); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_MARSHAL_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/numeric.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/numeric.h new file mode 100644 index 0000000..30863fb --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/numeric.h @@ -0,0 +1,208 @@ +#ifndef RBIMPL_INTERN_NUMERIC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_NUMERIC_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cNumeric. + */ +#include "ruby/internal/attr/cold.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define RB_NUM_COERCE_FUNCS_NEED_OPID 1 + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* numeric.c */ + +RBIMPL_ATTR_NORETURN() +RBIMPL_ATTR_COLD() +/** + * Just always raises an exception. + * + * @exception rb_eZeroDivError Division by zero error. + */ +void rb_num_zerodiv(void); + +/** + * @name Coercion operators. + * + * What is a coercion? Well Ruby is basically an OOPL but it also has + * arithmetic operators. They are implemented in OO manners. For instance + * `a+b` is a binary operation `+`, whose receiver is `a`, and whose (sole) + * argument is `b`. + * + * The problem is, you often want `a+b == b+a` to hold. That is easy if both + * `a` and `b` belongs to the same class... Ensuring `1 + 2 == 2 + 1` is kind + * of intuitive. But if you want `1.0 + 2 == 2 + 1.0`, things start getting + * complicated. `1.0+2` is `Float#+`, while `2+1.0` is `Integer#+`. In order + * to achieve the equality Float's and Integer's methods must agree with their + * behaviours. + * + * Now. Floats versus Integers situation is still controllable because they + * are both built-in. But in Ruby you can define your own numeric classes. + * BigDecimal, which is a rubygems gem distributed along with the interpreter, + * is one of such examples. Rational was another such example before. In + * short you cannot create list of all possible combination of the classes that + * could be the operand of `+` operator. Then how do we achieve the + * commutativity? + * + * Here comes the concept of coercion. If a definition of an operator + * encounters an object which is unknown to the author, just assumes that the + * unknown object knows how to handle the situation. So for instance when + * `1+x` has unknown `x`, it lets the `x` handle this. + * + * ```ruby + * class Foo + * def +(x) + * if we_know_what_is_x? then + * ... # handle here + * else + * y, z = x.coerce self + * return y + z + * end + * end + * end + * ``` + * + * The `x.coerce` method returns a 2-element array which are "casted" versions + * of `x` and `self`. + * + * @{ + */ + +/** + * Coerced binary operation. This function first coerces the two objects, then + * applies the operation. + * + * @param[in] lhs LHS operand. + * @param[in] rhs RHS operand. + * @param[in] op Operator method name. + * @exception rb_eTypeError Coercion failed for some reason. + * @return `lhs op rhs`, in a coerced way. + */ +VALUE rb_num_coerce_bin(VALUE lhs, VALUE rhs, ID op); + +/** + * Identical to rb_num_coerce_bin(), except for return values. This function + * best suits for comparison operators e.g. `<=>`. + * + * @param[in] lhs LHS operand. + * @param[in] rhs RHS operand. + * @param[in] op Operator method name. + * @retval RUBY_Qnil Coercion failed for some reason. + * @retval otherwise `lhs op rhs`, in a coerced way. + */ +VALUE rb_num_coerce_cmp(VALUE lhs, VALUE rhs, ID op); + +/** + * Identical to rb_num_coerce_cmp(), except for return values. This function + * best suits for relationship operators e.g. `<=`. + * + * @param[in] lhs LHS operand. + * @param[in] rhs RHS operand. + * @param[in] op Operator method name. + * @exception rb_eArgError Coercion failed for some reason. + * @return `lhs op rhs`, in a coerced way. + */ +VALUE rb_num_coerce_relop(VALUE lhs, VALUE rhs, ID op); + +/** + * This one is optimised for bitwise operations, but the API is identical to + * rb_num_coerce_bin(). + * + * @param[in] lhs LHS operand. + * @param[in] rhs RHS operand. + * @param[in] op Operator method name. + * @exception rb_eArgError Coercion failed for some reason. + * @return `lhs op rhs`, in a coerced way. + */ +VALUE rb_num_coerce_bit(VALUE lhs, VALUE rhs, ID op); + +/** @} */ + +/** + * Converts a numeric value into a Fixnum. This is not a preserving + * conversion; for instance 1.5 would be converted into 1. + * + * @param[in] val A numeric object. + * @exception rb_eTypeError No conversion from `val` to Integer. + * @exception rb_eRangeError `val` out of range. + * @return A fixnum converted from `val`. + * + * @internal + * + * This seems used from nowhere? + */ +VALUE rb_num2fix(VALUE val); + +/** + * Generates a place-value representation of the given Fixnum, with given + * radix. + * + * @param[in] val A fixnum to stringify. + * @param[in] base `2` to `36` inclusive for each radix. + * @exception rb_eArgError `base` is out of range. + * @return An instance of ::rb_cString representing `val`. + * @pre `val` must be a Fixnum (no checks performed). + */ +VALUE rb_fix2str(VALUE val, int base); + +RBIMPL_ATTR_CONST() +/** + * Compares two `double`s. Handy when implementing a spaceship operator. + * + * @param[in] lhs A value. + * @param[in] rhs Another value. + * @retval RB_INT2FIX(-1) `lhs` is "bigger than" `rhs`. + * @retval RB_INT2FIX(1) `rhs` is "bigger than" `lhs`. + * @retval RB_INT2FIX(0) They are equal. + * @retval RUBY_Qnil Not comparable, e.g. NaN. + */ +VALUE rb_dbl_cmp(double lhs, double rhs); + +/** + * Raises the passed `x` to the power of `y`. + * + * @note The return value can be really big. + * @note Also the return value can be really small, in case `x` is a + * negative number. + * @param[in] x A number. + * @param[in] y Another number. + * @retval Inf Cannot express the result. + * @retval 1 Either `y` is 0 or `x` is 1. + * @retval otherwise An instance of ::rb_cInteger whose value is `x ** y`. + * + * @internal + * + * This function returns Infinity when `y` is big enough not to fit into a + * Fixnum. Warning is issued then. + */ +RUBY_EXTERN VALUE rb_int_positive_pow(long x, unsigned long y); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_NUMERIC_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/object.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/object.h new file mode 100644 index 0000000..b9ffa57 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/object.h @@ -0,0 +1,501 @@ +#ifndef RBIMPL_INTERN_OBJECT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_OBJECT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cObject. + */ +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * This macro is (used but) mysterious. Why on earth do we need this? + * + * - `obj != orig` check is done anyways inside of rb_obj_init_copy(). + * - rb_obj_init_copy() returns something. No need are there to add `, 1`. + */ +#define RB_OBJ_INIT_COPY(obj, orig) \ + ((obj) != (orig) && (rb_obj_init_copy((obj), (orig)), 1)) +/** @old{RB_OBJ_INIT_COPY} */ +#define OBJ_INIT_COPY(obj, orig) RB_OBJ_INIT_COPY(obj, orig) + +/* object.c */ + +/** + * Identical to rb_class_new_instance(), except it passes the passed keywords + * if any to the `#initialize` method. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] klass An instance of ::rb_cClass. + * @exception rb_eTypeError `klass`'s allocator is undefined. + * @exception rb_eException Any exceptions can happen inside. + * @return An allocated new instance of `klass`. + * @note This is _the_ implementation of `Object.new`. + */ +VALUE rb_class_new_instance_pass_kw(int argc, const VALUE *argv, VALUE klass); + +/** + * Allocates, then initialises an instance of the given class. It first calls + * the passed class' allocator to obtain an uninitialised object, then calls + * its initialiser with the remaining arguments. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arguments passed to `#initialize`. + * @param[in] klass An instance of ::rb_cClass. + * @exception rb_eTypeError `klass`'s allocator is undefined. + * @exception rb_eException Any exceptions can happen inside. + * @return An allocated new instance of `klass`. + */ +VALUE rb_class_new_instance(int argc, const VALUE *argv, VALUE klass); + +/** + * Identical to rb_class_new_instance(), except you can specify how to handle + * the last element of the given array. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] klass An instance of ::rb_cClass. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eTypeError `klass`'s allocator is undefined. + * @exception rb_eException Any exceptions can happen inside. + * @return An allocated new instance of `klass`. + */ +VALUE rb_class_new_instance_kw(int argc, const VALUE *argv, VALUE klass, int kw_splat); + +/** + * Checks for equality of the passed objects, in terms of `Object#eql?`. + * + * @param[in] lhs Comparison left hand side. + * @param[in] rhs Comparison right hand side. + * @retval non-zero They are equal. + * @retval 0 Otherwise. + * @note This function actually calls `lhs.eql?(rhs)` so you cannot + * implement your class' `#eql?` method using it. + */ +int rb_eql(VALUE lhs, VALUE rhs); + +/** + * Generates a textual representation of the given object. + * + * @param[in] obj Arbitrary ruby object. + * @return An instance of ::rb_cString that represents `obj`. + * @note This is the default implementation of `Object#to_s` that each + * subclasses want to override. + */ +VALUE rb_any_to_s(VALUE obj); + +/** + * Generates a human-readable textual representation of the given object. This + * is largely similar to Ruby level `Object#inspect` but not the same; it + * additionally escapes the inspection result so that the string be compatible + * with that of default internal (or default external, if absent). + * + * @param[in] obj Arbitrary ruby object. + * @return An instance of ::rb_cString that represents `obj`. + */ +VALUE rb_inspect(VALUE obj); + +/** + * Queries if the given object is a direct instance of the given class. + * + * @param[in] obj Arbitrary ruby object. + * @param[in] klass An instance of ::rb_cModule. + * @exception rb_eTypeError `klass` is neither module nor class. + * @retval RUBY_Qtrue `obj` is an instance of `klass`. + * @retval RUBY_Qfalse Otherwise. + */ +VALUE rb_obj_is_instance_of(VALUE obj, VALUE klass); + +/** + * Queries if the given object is an instance (of possibly descendants) of the + * given class. + * + * @param[in] obj Arbitrary ruby object. + * @param[in] klass An instance of ::rb_cModule. + * @exception rb_eTypeError `klass` is neither module nor class. + * @retval RUBY_Qtrue `obj` is a `klass`. + * @retval RUBY_Qfalse Otherwise. + */ +VALUE rb_obj_is_kind_of(VALUE obj, VALUE klass); + +/** + * Allocates an instance of the given class. + * + * @param[in] klass A class to instantiate. + * @exception rb_eTypeError `klass` is not a class. + * @return An allocated, not yet initialised instance of `klass`. + * @note It calls the allocator defined by rb_define_alloc_func(). You + * cannot use this function to define an allocator. Use + * rb_newobj_of(), #TypedData_Make_Struct or others, instead. + * @note Usually prefer rb_class_new_instance() to rb_obj_alloc() and + * rb_obj_call_init(). + * @see rb_class_new_instance() + * @see rb_obj_call_init() + * @see rb_define_alloc_func() + * @see rb_newobj_of() + * @see #TypedData_Make_Struct + */ +VALUE rb_obj_alloc(VALUE klass); + +/** + * Produces a shallow copy of the given object. Its list of instance variables + * are copied, but not the objects they reference. It also copies the frozen + * value state. + * + * @param[in] obj Arbitrary ruby object. + * @exception rb_eException `#initialize_copy` can raise anything. + * @return A "clone" of `obj`. + * + * @internal + * + * Unlike ruby-level `Object#clone`, there is no way to control the frozen-ness + * of the return value. + */ +VALUE rb_obj_clone(VALUE obj); + +/** + * Duplicates the given object. This does almost the same thing as + * rb_obj_clone() do. However it does not copy the singleton class (if any). + * It also doesn't copy frozen-ness. + * + * @param[in] obj Arbitrary ruby object. + * @exception rb_eException `#initialize_copy` can raise anything. + * @return A shallow copy of `obj`. + */ +VALUE rb_obj_dup(VALUE obj); + +/** + * Default implementation of `#initialize_copy`, `#initialize_dup` and + * `#initialize_clone`. It does almost nothing. Just raises exceptions for + * checks. + * + * @param[in] dst The destination object. + * @param[in] src The source object. + * @exception rb_eFrozenError `dst` is frozen. + * @exception rb_eTypeError `dst` and `src` have different classes. + * @return Always returns `dst`. + */ +VALUE rb_obj_init_copy(VALUE src, VALUE dst); + +/** + * Just calls rb_obj_freeze_inline() inside. Does this make any sens to + * extension libraries? + * + * @param[out] obj Object to freeze. + * @return Verbatim `obj`. + */ +VALUE rb_obj_freeze(VALUE obj); + +RBIMPL_ATTR_PURE() +/** + * Just calls RB_OBJ_FROZEN() inside. Does this make any sens to extension + * libraries? + * + * @param[in] obj Object in question. + * @retval RUBY_Qtrue Yes it is. + * @retval RUBY_Qfalse No it isn't. + */ +VALUE rb_obj_frozen_p(VALUE obj); + +/* gc.c */ + +/** + * Finds or creates an integer primary key of the given object. In the old + * days this function was a purely arithmetic operation that maps the + * underlying memory address where the object resides into a Ruby's integer. + * Some time around 2.x this changed. It no longer relates its return values + * to C level pointers. This function assigns some random number to the given + * object if absent. The same number will be returned on all subsequent + * requests. No two active objects share a number. + * + * @param[in] obj Arbitrary ruby object. + * @return An instance of ::rb_cInteger which is an "identifier" of `obj`. + * + * @internal + * + * The "some random number" is in fact a monotonic-increasing process-global + * unique integer, much like an `INTEGER AUTO_INCREMENT PRIMARY KEY` column in + * a MySQL table. + */ +VALUE rb_obj_id(VALUE obj); + +RBIMPL_ATTR_CONST() +/** + * Identical to rb_obj_id(), except it hesitates from allocating a new instance + * of ::rb_cInteger. rb_obj_id() could allocate ::RUBY_T_BIGNUM objects. That + * allocation might perhaps impact negatively. On such situations, this + * function instead returns one-shot temporary small integers that need no + * allocations at all. The values are guaranteed unique at the moment, but no + * future promise is made; could be reused. Use of this API should be very + * instant. It is a failure to store the returned integer to somewhere else. + * + * In short it is difficult to use. + * + * @param[in] obj Arbitrary ruby object. + * @return An instance of ::rb_cInteger unique at the moment. + * + * @internal + * + * This is roughly the old behaviour of rb_obj_id(). + */ +VALUE rb_memory_id(VALUE obj); + +/* object.c */ + +RBIMPL_ATTR_PURE() +/** + * Finds a "real" class. As the name implies there are class objects that are + * surreal. This function takes a class, traverses its ancestry tree, and + * returns its nearest ancestor which is neither a module nor a singleton + * class. + * + * @param[in] klass An instance of ::rb_cClass. + * @retval RUBY_Qfalse No real class in `klass`' ancestry tree. + * @retval klass `klass` itself is a real class. + * @retval otherwise Nearest ancestor of `klass` who is real. + */ +VALUE rb_class_real(VALUE klass); + +RBIMPL_ATTR_PURE() +/** + * Determines if the given two modules are relatives. + * + * @param[in] scion Possible subclass. + * @param[in] ascendant Possible superclass. + * @exception rb_eTypeError `ascendant` is not a module. + * @retval RUBY_Qtrue `scion` inherits, or is equal to `ascendant`. + * @retval RUBY_Qfalse `ascendant` inherits `scion`. + * @retval RUBY_Qnil They are not relatives. + */ +VALUE rb_class_inherited_p(VALUE scion, VALUE ascendant); + +RBIMPL_ATTR_PURE() +/** + * Queries the parent of the given class. + * + * @param[in] klass A child class. + * @exception rb_eTypeError `klass` is a `Class.allocate`. + * @retval RUBY_Qfalse `klass` has no superclass. + * @retval otherwise `klass`' superclass. + * + * @internal + * + * Is there any class except ::rb_cBasicObject, that has no superclass? + */ +VALUE rb_class_superclass(VALUE klass); + +RBIMPL_ATTR_NONNULL(()) +/** + * Converts an object into another type. Calls the specified conversion method + * if necessary. + * + * @param[in] val An object to convert. + * @param[in] type A value of enum ::ruby_value_type. + * @param[in] name Name to display on error (e.g. "Array"). + * @param[in] mid Conversion method (e.g. "to_ary"). + * @exception rb_eTypeError Failed to convert. + * @return An object of the specified type. + */ +VALUE rb_convert_type(VALUE val, int type, const char *name, const char *mid); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_convert_type(), except it returns ::RUBY_Qnil instead of + * raising exceptions, in case of conversion failure. It still raises + * exceptions for various reasons, like when the conversion method itself + * raises, though. + * + * @param[in] val An object to convert. + * @param[in] type A value of enum ::ruby_value_type. + * @param[in] name Name to display on error (e.g. "Array"). + * @param[in] mid Conversion method (e.g. "to_ary"). + * @exception rb_eTypeError The `mid` does not generate `type`. + * @retval RUBY_Qnil No conversion defined. + * @retval otherwise An object of the specified type. + */ +VALUE rb_check_convert_type(VALUE val, int type, const char *name, const char *mid); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_check_convert_type(), except the return value type is fixed + * to ::rb_cInteger. + * + * @param[in] val An object to convert. + * @param[in] mid Conversion method (e.g. "to_ary"). + * @exception rb_eTypeError The `mid` does not generate an integer. + * @retval RUBY_Qnil No conversion defined. + * @retval otherwise An instance of ::rb_cInteger. + */ +VALUE rb_check_to_integer(VALUE val, const char *mid); + +/** + * This is complicated. + * + * - When the passed object is already an instance of ::rb_cFloat, just + * returns it as-is. + * + * - When the passed object is something numeric, the function tries to + * convert it using `#to_f` method. + * + * - If that conversion fails (this happens for instance when the numeric + * is a complex) it returns ::RUBY_Qnil. + * + * - Otherwise returns the conversion result. + * + * - Otherwise it also returns ::RUBY_Qnil. + * + * @param[in] val An object to convert. + * @retval RUBY_Qnil Conversion from `val` to float is undefined. + * @retval otherwise Converted result. + */ +VALUE rb_check_to_float(VALUE val); + +/** + * Identical to rb_check_to_int(), except it raises in case of conversion + * mismatch. + * + * @param[in] val An object to convert. + * @exception rb_eTypeError `#to_int` does not generate an integer. + * @return An instance of ::rb_cInteger. + */ +VALUE rb_to_int(VALUE val); + +/** + * Identical to rb_check_to_integer(), except it uses `#to_int` for conversion. + * + * @param[in] val An object to convert. + * @exception rb_eTypeError `#to_int` does not return an integer. + * @retval RUBY_Qnil No conversion defined. + * @retval otherwise An instance of ::rb_cInteger. + */ +VALUE rb_check_to_int(VALUE val); + +/** + * This is the logic behind `Kernel#Integer`. Numeric types are converted + * directly, with floating point numbers being truncated. Strings are + * interpreted strictly; only leading/trailing whitespaces, plus/minus sign, + * radix indicators such as `0x`, digits, and underscores are allowed. + * Anything else are converted by first trying `#to_int`, then `#to_i`. + * + * This is slightly stricter than `String#to_i`. + * + * @param[in] val An object to convert. + * @exception rb_eArgError Malformed `val` passed. + * @exception rb_eTypeError No conversion defined. + * @return An instance of ::rb_cInteger. + */ +VALUE rb_Integer(VALUE val); + +/** + * Identical to rb_check_to_float(), except it raises on error. + * + * @param[in] val An object to convert. + * @exception rb_eTypeError No conversion defined. + * @return An instance of ::rb_cFloat. + */ +VALUE rb_to_float(VALUE val); + +/** + * This is the logic behind `Kernel#Float`. Numeric types are converted + * directly to the nearest value that a Float can represent. Strings are + * interpreted strictly; only leading/trailing whitespaces are allowed except + * what `strtod` understands. Anything else are converted using `#to_f`. + * + * This is slightly stricter than `String#to_f`. + * + * @param[in] val An object to convert. + * @exception rb_eArgError Malformed `val` passed. + * @exception rb_eTypeError No conversion defined. + * @return An instance of ::rb_cFloat. + */ +VALUE rb_Float(VALUE val); + +/** + * This is the logic behind `Kernel#String`. Arguments are converted by first + * trying `#to_str`, then `#to_s`. + * + * @param[in] val An object to convert. + * @exception rb_eTypeError No conversion defined. + * @return An instance of ::rb_cString. + */ +VALUE rb_String(VALUE val); + +/** + * This is the logic behind `Kernel#Array`. Arguments are converted by first + * trying `#to_ary`, then `#to_a`, and if both failed, returns an array of + * length 1 that contains the passed argument as the sole contents. + * + * @param[in] val An object to convert. + * @return An instance of ::rb_cArray. + */ +VALUE rb_Array(VALUE val); + +/** + * This is the logic behind `Kernel#Hash`. Arguments are converted by first + * trying `#to_hash`. if it failed, and the argument is either ::RUBY_Qnil or + * an empty array, returns an empty hash. Otherwise an exception is raised. + * + * @param[in] val An object to convert. + * @exception rb_eTypeError No conversion defined. + * @return An instance of ::rb_cHash. + */ +VALUE rb_Hash(VALUE val); + +RBIMPL_ATTR_NONNULL(()) +/** + * Converts a textual representation of a real number into a numeric, which is + * the nearest value that the return type can represent, of the value that the + * argument represents. This is in fact a 2-in-1 function whose behaviour can + * be controlled using the second (mode) argument. If the mode is zero, this + * function is in "historical" mode which only understands "floating-constant" + * defined at ISO/IEC 9899:1990 section 6.1.3.1. If the mode is nonzero, it is + * in "extended" mode, which also accepts "hexadecimal-floating-constant" + * defined at ISO/IEC 9899:2018 section 6.4.4.2. + * + * @param[in] str A textual representation of a real number. + * @param[in] mode Conversion mode, as described above. + * @exception rb_eArgError Malformed `str` passed. + * @see https://bugs.ruby-lang.org/issues/2969 + * @note Null pointers are allowed, and it returns 0.0 then. + */ +double rb_cstr_to_dbl(const char *str, int mode); + +/** + * Identical to rb_cstr_to_dbl(), except it accepts a Ruby's string instead of + * C's. + * + * @param[in] str A textual representation of a real number. + * @param[in] mode Conversion mode, as described in rb_cstr_to_dbl(). + * @exception rb_eArgError Malformed `str` passed. + * @see https://bugs.ruby-lang.org/issues/2969 + */ +double rb_str_to_dbl(VALUE str, int mode); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_OBJECT_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/parse.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/parse.h new file mode 100644 index 0000000..7c4e992 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/parse.h @@ -0,0 +1,194 @@ +#ifndef RBIMPL_INTERN_PARSE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_PARSE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cSymbol. + */ +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* symbol.c */ + +/** + * Calculates an ID of attribute writer. For instance it returns `:foo=` when + * passed `:foo`. + * + * @param[in] id An id. + * @exception rb_eNameError `id` is not for attributes (e.g. operator). + * @return Calculated name of attribute writer. + */ +ID rb_id_attrset(ID id); + +RBIMPL_ATTR_CONST() +/** + * Classifies the given ID, then sees if it is a constant. In case an ID is in + * Unicode (likely), its "constant"-ness is determined if its first character + * is either upper case or title case. Otherwise it is detected if case- + * folding the first character changes its case or not. + * + * @param[in] id An id to classify. + * @retval 1 It is a constant. + * @retval 0 It isn't. + */ +int rb_is_const_id(ID id); + +RBIMPL_ATTR_CONST() +/** + * Classifies the given ID, then sees if it is a global variable. A global + * variable must start with `$`. + * + * @param[in] id An id to classify. + * @retval 1 It is a global variable. + * @retval 0 It isn't. + */ +int rb_is_global_id(ID id); + +RBIMPL_ATTR_CONST() +/** + * Classifies the given ID, then sees if it is an instance variable. An + * instance variable must start with `@`, but not `@@`. + * + * @param[in] id An id to classify. + * @retval 1 It is an instance variable. + * @retval 0 It isn't. + */ +int rb_is_instance_id(ID id); + +RBIMPL_ATTR_CONST() +/** + * Classifies the given ID, then sees if it is an attribute writer. An + * attribute writer is otherwise a local variable, except it ends with `=`. + * + * @param[in] id An id to classify. + * @retval 1 It is an attribute writer. + * @retval 0 It isn't. + */ +int rb_is_attrset_id(ID id); + +RBIMPL_ATTR_CONST() +/** + * Classifies the given ID, then sees if it is a class variable. A class + * variable is must start with `@@`. + * + * @param[in] id An id to classify. + * @retval 1 It is a class variable. + * @retval 0 It isn't. + */ +int rb_is_class_id(ID id); + +RBIMPL_ATTR_CONST() +/** + * Classifies the given ID, then sees if it is a local variable. A local + * variable starts with a lowercase character, followed by some alphanumeric + * characters or `_`, then ends with anything other than `!`, `?`, or `=`. + * + * @param[in] id An id to classify. + * @retval 1 It is a local variable. + * @retval 0 It isn't. + */ +int rb_is_local_id(ID id); + +RBIMPL_ATTR_CONST() +/** + * Classifies the given ID, then sees if it is a junk ID. An ID with no + * special syntactic structure is considered junk. This category includes for + * instance punctuation. + * + * @param[in] id An id to classify. + * @retval 1 It is a junk. + * @retval 0 It isn't. + */ +int rb_is_junk_id(ID); + +RBIMPL_ATTR_NONNULL(()) +/** + * Sees if the passed C string constructs a valid syntactic symbol. Invalid + * ones for instance includes whitespaces. + * + * @param[in] str A C string to check. + * @retval 1 It is a valid symbol name. + * @retval 0 It is invalid as a symbol name. + */ +int rb_symname_p(const char *str); + +/* vm.c */ + +/** + * Queries the last match, or `Regexp.last_match`, or the `$~`. You don't have + * to use it, because in reality you can get `$~` using rb_gv_get() as usual. + * + * @retval RUBY_Qnil The method has not ran a regular expression. + * @retval otherwise An instance of ::rb_cMatch. + */ +VALUE rb_backref_get(void); + +/** + * Updates `$~`. You don't have to use it, because in reality you can set `$~` + * using rb_gv_set() as usual. + * + * @param[in] md Arbitrary Ruby object. + * @post The passed object is assigned to `$~`. + * + * @internal + * + * Yes, this function bypasses the Check_Type() that would normally prevent + * evil souls from assigning evil objects to `$~`. Use of this function is a + * really bad smell. + */ +void rb_backref_set(VALUE md); + +/** + * Queries the last line, or the `$_`. You don't have to use it, because in + * reality you can get `$_` using rb_gv_get() as usual. + * + * @retval RUBY_Qnil There has never been a "line" yet. + * @retval otherwise The last set `$_` value. + */ +VALUE rb_lastline_get(void); + +/** + * Updates `$_`. You don't have to use it, because in reality you can set `$_` + * using rb_gv_set() as usual. + * + * @param[in] str Arbitrary Ruby object. + * @post The passed object is assigned to `$_`. + * + * @internal + * + * Unlike `$~`, you can assign non-strings to `$_`, even from ruby scripts. + */ +void rb_lastline_set(VALUE str); + +/* symbol.c */ + +/** + * Collects every single bits of symbols that have ever interned in the entire + * history of the current process. + * + * @return An array that contains all symbols that have ever existed. + */ +VALUE rb_sym_all_symbols(void); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_PARSE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/proc.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/proc.h new file mode 100644 index 0000000..b8c3c5e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/proc.h @@ -0,0 +1,353 @@ +#ifndef RBIMPL_INTERN_PROC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_PROC_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cProc. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/iterator.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* proc.c */ + +/** + * Constructs a Proc object from implicitly passed components. When a ruby + * method is called with a block, that block is not explicitly passed around + * using C level function parameters. This function gathers all the necessary + * info to turn them into a Ruby level instance of ::rb_cProc. + * + * @exception rb_eArgError There is no passed block. + * @return An instance of ::rb_cProc. + */ +VALUE rb_block_proc(void); + +/** + * Identical to rb_proc_new(), except it returns a lambda. + * + * @exception rb_eArgError There is no passed block. + * @return An instance of ::rb_cProc. + */ +VALUE rb_block_lambda(void); + +/** + * This is an rb_iterate() + rb_block_proc() combo. + * + * ```CXX + * VALUE + * my_own_iterator(RB_BLOCK_CALL_FUNC_ARGLIST(y, c)) + * { + * const auto plus = rb_intern("+"); + * return rb_funcall(c, plus, 1, y); + * } + * + * VALUE + * my_own_method(VALUE self) + * { + * return rb_proc_new(my_own_iterator, self); + * } + * ``` + * + * @param[in] func A backend function of a proc. + * @param[in] callback_arg Passed to `func`'s callback_arg. + * @return A C-backended proc object. + * + */ +VALUE rb_proc_new(rb_block_call_func_t func, VALUE callback_arg); + +/** + * Queries if the given object is a proc. + * + * @note This is about the object's data structure, not its class etc. + * @param[in] recv Object in question. + * @retval RUBY_Qtrue It is a proc. + * @retval RUBY_Qfalse Otherwise. + */ +VALUE rb_obj_is_proc(VALUE recv); + +/** + * Evaluates the passed proc with the passed arguments. + * + * @param[in] recv The proc to call. + * @param[in] args An instance of ::RArray which is the arguments. + * @exception rb_eException Any exceptions happen inside. + * @return What the proc evaluates to. + */ +VALUE rb_proc_call(VALUE recv, VALUE args); + +/** + * Identical to rb_proc_call(), except you can specify how to handle the last + * element of the given array. + * + * @param[in] recv The proc to call. + * @param[in] args An instance of ::RArray which is the arguments. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `args`' last is not a keyword argument. + * - RB_PASS_KEYWORDS `args`' last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eException Any exceptions happen inside. + * @return What the proc evaluates to. + */ +VALUE rb_proc_call_kw(VALUE recv, VALUE args, int kw_splat); + +/** + * Identical to rb_proc_call(), except you can additionally pass another proc + * object, as a block. Nowadays procs can take blocks: + * + * ```ruby + * l = -> (positional, optional=nil, *rest, kwarg:, **kwrest, &block) { + * # ... how can we pass this `&block`? ^^^^^^ + * } + * ``` + * + * And this function is to pass one to such procs. + * + * @param[in] recv The proc to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of proc arguments. + * @param[in] proc Proc as a passed block. + * @exception rb_eException Any exceptions happen inside. + * @return What the proc evaluates to. + */ +VALUE rb_proc_call_with_block(VALUE recv, int argc, const VALUE *argv, VALUE proc); + +/** + * Identical to rb_proc_call_with_block(), except you can specify how to handle + * the last element of the given array. It can also be seen as a routine + * identical to rb_proc_call_kw(), except you can additionally pass another + * proc object as a block. + * + * @param[in] recv The proc to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of proc arguments. + * @param[in] proc Proc as a passed block. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `args`' last is not a keyword argument. + * - RB_PASS_KEYWORDS `args`' last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eException Any exceptions happen inside. + * @return What the proc evaluates to. + */ +VALUE rb_proc_call_with_block_kw(VALUE recv, int argc, const VALUE *argv, VALUE proc, int kw_splat); + +/** + * Queries the number of mandatory arguments of the given Proc. If its block + * is declared to take no arguments, returns `0`. If the block is known to + * take exactly `n` arguments, returns `n`. If the block has optional + * arguments, returns `-n-1`, where `n` is the number of mandatory arguments, + * with the exception for blocks that are not lambdas and have only a finite + * number of optional arguments; in this latter case, returns `n`. Keyword + * arguments will be considered as a single additional argument, that argument + * being mandatory if any keyword argument is mandatory. + * + * @param[in] recv Target Proc object. + * @retval 0 It takes no arguments. + * @retval >0 It takes exactly this number of arguments. + * @retval <0 It takes optional arguments. + */ +int rb_proc_arity(VALUE recv); + +/** + * Queries if the given object is a lambda. Instances of ::rb_cProc are either + * lambda or proc. They differ in several points. This function can + * distinguish them without actually evaluating their contents. + * + * @param[in] recv Target proc object. + * @retval RUBY_Qtrue It is a lambda. + * @retval RUBY_Qfalse Otherwise. + */ +VALUE rb_proc_lambda_p(VALUE recv); + +/** + * Snapshots the current execution context and turn it into an instance of + * ::rb_cBinding. + * + * @return An instance of ::rb_cBinding. + */ +VALUE rb_binding_new(void); + +/** + * Creates a method object. A method object is a proc-like object that you can + * "call". Note that a method object snapshots the method at the time the + * object is created: + * + * ```ruby + * class Foo + * def foo + * return 1 + * end + * end + * + * obj = Foo.new.method(:foo) + * + * class Foo + * def foo + * return 2 + * end + * end + * + * obj.call # => 1, not 2. + * ``` + * + * @param[in] recv Receiver of the method. + * @param[in] mid Method name, in either String or Symbol. + * @exception rb_eNoMethodError No such method. + * @return An instance of ::rb_cMethod. + */ +VALUE rb_obj_method(VALUE recv, VALUE mid); + +/** + * Queries if the given object is a method. + * + * @note This is about the object's data structure, not its class etc. + * @param[in] recv Object in question. + * @retval RUBY_Qtrue It is a method. + * @retval RUBY_Qfalse Otherwise. + */ +VALUE rb_obj_is_method(VALUE recv); + +/** + * Evaluates the passed method with the passed arguments. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] recv The method object to call. + * @exception rb_eTypeError `recv` is not a method. + * @exception rb_eException Any exceptions happen inside. + * @return What the method returns. + */ +VALUE rb_method_call(int argc, const VALUE *argv, VALUE recv); + +/** + * Identical to rb_method_call(), except you can specify how to handle the last + * element of the given array. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] recv The method object to call. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `args`' last is not a keyword argument. + * - RB_PASS_KEYWORDS `args`' last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eTypeError `recv` is not a method. + * @exception rb_eException Any exceptions happen inside. + * @return What the method returns. + */ +VALUE rb_method_call_kw(int argc, const VALUE *argv, VALUE recv, int kw_splat); + +/** + * Identical to rb_proc_call(), except you can additionally pass a proc as a + * block. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] recv The method object to call. + * @param[in] proc Proc as a passed block. + * @exception rb_eTypeError `recv` is not a method. + * @exception rb_eException Any exceptions happen inside. + * @return What the method returns. + */ +VALUE rb_method_call_with_block(int argc, const VALUE *argv, VALUE recv, VALUE proc); + +/** + * Identical to rb_method_call_with_block(), except you can specify how to + * handle the last element of the given array. It can also be seen as a + * routine identical to rb_method_call_kw(), except you can additionally pass + * another proc object as a block. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] recv The method object to call. + * @param[in] proc Proc as a passed block. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `args`' last is not a keyword argument. + * - RB_PASS_KEYWORDS `args`' last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @exception rb_eTypeError `recv` is not a method. + * @exception rb_eException Any exceptions happen inside. + * @return What the method returns. + */ +VALUE rb_method_call_with_block_kw(int argc, const VALUE *argv, VALUE recv, VALUE proc, int kw_splat); + +/** + * Queries the number of mandatory arguments of the method defined in the given + * module. If it is declared to take no arguments, returns `0`. If it takes + * exactly `n` arguments, returns `n`. If it has optional arguments, returns + * `-n-1`, where `n` is the number of mandatory arguments. Keyword arguments + * will be considered as a single additional argument, that argument being + * mandatory if any keyword argument is mandatory. + * + * @param[in] mod Namespace to search a method for. + * @param[in] mid Method id. + * @retval 0 It takes no arguments. + * @retval >0 It takes exactly this number of arguments. + * @retval <0 It takes optional arguments. + */ +int rb_mod_method_arity(VALUE mod, ID mid); + +/** + * Identical to rb_mod_method_arity(), except it searches for singleton methods + * rather than instance methods. + * + * @param[in] obj Object to search for a singleton method. + * @param[in] mid Method id. + * @retval 0 It takes no arguments. + * @retval >0 It takes exactly this number of arguments. + * @retval <0 It takes optional arguments. + */ +int rb_obj_method_arity(VALUE obj, ID mid); + +/* eval.c */ + +RBIMPL_ATTR_NONNULL((1)) +/** + * Protects a function call from potential global escapes from the function. + * Such global escapes include exceptions, `throw`, `break`, for example. + * + * It first calls the function func with `args` as the argument. If no global + * escape occurred during the function, it returns the result and `*state` is + * zero. Otherwise, it returns ::RUBY_Qnil and sets `*state` to nonzero. If + * `state` is `NULL`, it is not set in both cases. + * + * @param[in] func A function that potentially escapes globally. + * @param[in] args Passed as-is to `func`. + * @param[out] state State of execution. + * @return What `func` returns, or an undefined value when it did not + * return. + * @post `*state` is set to zero if succeeded. Nonzero otherwise. + * @warning You have to clear the error info with `rb_set_errinfo(Qnil)` if + * you decide to ignore the caught exception. + * @see rb_eval_string_protect() + * @see rb_load_protect() + * + * @internal + * + * The "undefined value" described above is in fact ::RUBY_Qnil for now. But + * @shyouhei doesn't think that we would never change that. + * + * Though not a part of our public API, `state` is in fact an + * enum ruby_tag_type. You can see the potential "nonzero" values by looking + * at vm_core.h. + */ +VALUE rb_protect(VALUE (*func)(VALUE args), VALUE args, int *state); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_PROC_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/process.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/process.h new file mode 100644 index 0000000..7a7b24e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/process.h @@ -0,0 +1,273 @@ +#ifndef RBIMPL_INTERN_PROCESS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_PROCESS_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_mProcess. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/config.h" /* rb_pid_t is defined here. */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* process.c */ + +/** + * Sets the "last status", or the `$?`. + * + * @param[in] status The termination status, as defined in `waitpid(3posix)`. + * @param[in] pid The last child of the current process. + * @post `$?` is updated. + */ +void rb_last_status_set(int status, rb_pid_t pid); + +/** + * Queries the "last status", or the `$?`. + * + * @retval RUBY_Qnil The current thread has no dead children. + * @retval otherwise An instance of Process::Status describing the status of + * the child that was most recently `wait`-ed. + */ +VALUE rb_last_status_get(void); + +RBIMPL_ATTR_NONNULL(()) +/** + * Executes a shell command. + * + * @warning THIS FUNCTION RETURNS on error! + * @param[in] cmd Passed to the shell. + * @retval -1 Something prevented the command execution. + * @post Upon successful execution this function doesn't return. + * @post In case it returns the `errno` is set properly. + */ +int rb_proc_exec(const char *cmd); + +RBIMPL_ATTR_NORETURN() +/** + * Replaces the current process by running the given external command. This is + * the implementation of `Kernel#exec`. + * + * @param[in] argc Number of objects in `argv`. + * @param[in] argv Command and its options to execute. + * @exception rb_eTypeError Invalid options e.g. non-String argv. + * @exception rb_eArgError Invalid options e.g. redirection cycle. + * @exception rb_eNotImpError Not implemented e.g. no `setuid(2)`. + * @exception rb_eRuntimeError `Process::UID.switch` in operation. + * @exception rb_eSystemCallError `execve(2)` failed. + * @warning This function doesn't return. + * @warning On failure it raises. On success the process is replaced. + * + * @internal + * + * @shyouhei have to say that the rdoc for `Kernel#exec` is fairly incomplete. + * AFAIK this function ultimately takes the following signature: + * + * ```rbs + * type boolx = bool | nil # != `boolish` + * + * type rlim_t = Integer # rlim_cur + * | [ Integer, Integer ] # rlim_cur, rlim_max + * + * type uid_t = String # e.g. "root" + * | Integer # e.g. 0 + * + * type gid_t = String # e.g. "wheel" + * | Integer # e.g. 0 + * + * type fmode = String # e.g. "rb" + * | Integer # e.g. O_RDONLY | O_BINARY + * + * type mode_t = Integer # e.g. 0644 + * + * type pgrp = true # Creates a dedicated pgroup + * | 0 # ditto + * | nil # Uses the current one + * | Integer # Uses this specific pgroup + * + * type fd = :in # STDIN + * | :out # STDOUT + * | :err # STDERR + * | IO # This specific IO + * | Integer # A file descriptor of this # + * + * type src = fd | [ fd ] + * type dst = :close # Intuitive + * | fd # Intuitive + * | String # Open a file at this path + * | [ String ] # ... using O_RDONLY + * | [ String, fmode ] # ... using this mode + * | [ String, fmode, mode_t ] # ... with a permission + * | [ :child, fd ] # fd of child side + * + * type redir = Hash[ src, dst ] + * + * # ---- + * + * # Key-value pair of environment variables + * type envp = Hash[ String, String ] + * + * # Actual name (and the name passed to the subprocess if any) + * type arg0 = String | [ String, String ] + * + * # Arbitrary string parameters + * type argv = String + * + * # Exec options: + * type argh = redir | { + * chdir: String, # Working directory + * close_others: boolx, # O_CLOEXEC like behaviour + * gid: gid_t, # setegid(2) + * pgrooup: pgrp, # setpgrp(2) + * rlimit_as: rlim_t, # setrlimit(2) + * rlimit_core: rlim_t, # ditto + * rlimit_cpu: rlim_t, # ditto + * rlimit_data: rlim_t, # ditto + * rlimit_fsize: rlim_t, # ditto + * rlimit_memlock: rlim_t, # ditto + * rlimit_msgqueue: rlim_t, # ditto + * rlimit_nice: rlim_t, # ditto + * rlimit_nofile: rlim_t, # ditto + * rlimit_nproc: rlim_t, # ditto + * rlimit_rss: rlim_t, # ditto + * rlimit_rtprio: rlim_t, # ditto + * rlimit_rttime: rlim_t, # ditto + * rlimit_sbsize: rlim_t, # ditto + * rlimit_sigpending: rlim_t, # ditto + * rlimit_stack: rlim_t, # ditto + * uid: uid_t, # seteuid(2) + * umask: mode_t, # umask(2) + * unsetenv_others: boolx # Unset everything except the passed envp + * } + * + * # ==== + * + * class Kernel + * def self?.exec + * : ( arg0 cmd, *argv args ) -> void + * | ( arg0 cmd, *argv args, argh opts) -> void + * | (envp env, arg0 cmd, *argv args ) -> void + * | (envp env, arg0 cmd, *argv args, argh opts) -> void + * end + * ``` + */ +VALUE rb_f_exec(int argc, const VALUE *argv); + +/** + * Waits for a process, with releasing GVL. + * + * @param[in] pid Process ID. + * @param[out] status The wait status is filled back. + * @param[in] flags Wait options. + * @retval -1 System call failed, errno set. + * @retval 0 WNOHANG but no waitable children. + * @retval otherwise A process ID that was `wait()`-ed. + * @post Upon successful return `status` is updated to have the process' + * status. + * @note `status` can be NULL. + * @note The arguments are passed through to underlying system call(s). + * Can have special meanings. For instance passing `(rb_pid_t)-1` + * to `pid` means it waits for any processes, under + * POSIX-compliant situations. + */ +rb_pid_t rb_waitpid(rb_pid_t pid, int *status, int flags); + +/** + * This is a shorthand of rb_waitpid without status and flags. It has been + * like this since the very beginning. The initial revision already did the + * same thing. Not sure why, then, it has been named `syswait`. AFAIK this is + * different from how `wait(3posix)` works. + * + * @param[in] pid Passed to rb_waitpid(). + */ +void rb_syswait(rb_pid_t pid); + +/** + * Identical to rb_f_exec(), except it spawns a child process instead of + * replacing the current one. + * + * @param[in] argc Number of objects in `argv`. + * @param[in] argv Command and its options to execute. + * @exception rb_eTypeError Invalid options e.g. non-String argv. + * @exception rb_eArgError Invalid options e.g. redirection cycle. + * @exception rb_eNotImpError Not implemented e.g. no `setuid(2)`. + * @exception rb_eRuntimeError `Process::UID.switch` in operation. + * @retval -1 Child process died for some reason. + * @retval otherwise The ID of the born child. + * + * @internal + * + * This is _really_ identical to rb_f_exec() until ultimately calling the + * system call. Almost everything are shared among these two (and + * rb_f_system()). + */ +rb_pid_t rb_spawn(int argc, const VALUE *argv); + +/** + * Identical to rb_spawn(), except you can additionally know the detailed + * situation in case of abnormal parturitions. + * + * @param[in] argc Number of objects in `argv`. + * @param[in] argv Command and its options to execute. + * @param[out] errbuf Error description write-back buffer. + * @param[in] buflen Number of bytes of `errbuf`, including NUL. + * @exception rb_eTypeError Invalid options e.g. non-String argv. + * @exception rb_eArgError Invalid options e.g. redirection cycle. + * @exception rb_eNotImpError Not implemented e.g. no `setuid(2)`. + * @exception rb_eRuntimeError `Process::UID.switch` in operation. + * @retval -1 Child process died for some reason. + * @retval otherwise The ID of the born child. + * @post In case of `-1`, at most `buflen` bytes of the reason why is + * written back to `errbuf`. + */ +rb_pid_t rb_spawn_err(int argc, const VALUE *argv, char *errbuf, size_t buflen); + +/** + * Gathers info about resources consumed by the current process. + * + * @param[in] _ Not used. Pass anything. + * @return An instance of `Process::Tms`. + * + * @internal + * + * This function might or might not exist depending on `./confiugre` result. + * It must be a portability hell. Better not use. + */ +VALUE rb_proc_times(VALUE _); + +/** + * "Detaches" a subprocess. In POSIX systems every child processes that a + * process creates must be `wait(2)`-ed. A child process that died yet has not + * been waited so far is called a "zombie", which more or less consumes + * resources. This function automates reclamation of such processes. Once + * after this function successfully returns you can basically forget about the + * child process. + * + * @param[in] pid Process to wait. + * @return An instance of ::rb_cThread which is `waitpid(2)`-ing `pid`. + * @post You can just forget about the return value. GC reclaims it. + * @post You can know the exit status by querying `#value` of the + * return value (which is a blocking operation). + */ +VALUE rb_detach_process(rb_pid_t pid); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_PROCESS_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/random.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/random.h new file mode 100644 index 0000000..5577f53 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/random.h @@ -0,0 +1,116 @@ +#ifndef RBIMPL_INTERN_RANDOM_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_RANDOM_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief MT19937 backended pseudo random number generator. + * @see Matsumoto, M., Nishimura, T., "Mersenne Twister: A 623- + * dimensionally equidistributed uniform pseudorandom number + * generator", ACM Trans. on Modeling and Computer Simulation, 8 + * (1): pp 3-30, 1998. https://doi.org/10.1145/272991.272995 + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* random.c */ + +/** + * Generates a 32 bit random number. + * + * @return A random number. + * @note Now that we have ractors, the RNG behind this function is + * per-ractor. + */ +unsigned int rb_genrand_int32(void); + +/** + * Generates a `double` random number. + * + * @return A random number. + * @note This function shares the RNG with rb_genrand_int32(). + */ +double rb_genrand_real(void); + +/** + * Resets the RNG behind rb_genrand_int32()/rb_genrand_real(). + * + * @post The (now per-ractor) default RNG's internal state is cleared. + */ +void rb_reset_random_seed(void); + +/** + * Generates a String of random bytes. + * + * @param[in,out] rnd An instance of ::rb_cRandom. + * @param[in] n Requested number of bytes. + * @return An instance of ::rb_cString, of binary, of `n` bytes length, + * whose contents are random bits. + * + * @internal + * + * @shyouhei doesn't know if this is an Easter egg or an official feature, but + * this function can take a wider range of objects, such as `Socket::Ifaddr`. + * The arguments are just silently ignored and the default RNG is used instead, + * if they are non-RNG. + */ +VALUE rb_random_bytes(VALUE rnd, long n); + +/** + * Identical to rb_genrand_int32(), except it generates using the passed RNG. + * + * @param[in,out] rnd An instance of ::rb_cRandom. + * @return A random number. + */ +unsigned int rb_random_int32(VALUE rnd); + +/** + * Identical to rb_genrand_real(), except it generates using the passed RNG. + * + * @param[in,out] rnd An instance of ::rb_cRandom. + * @return A random number. + */ +double rb_random_real(VALUE rnd); + +/** + * Identical to rb_genrand_ulong_limited(), except it generates using the + * passed RNG. + * + * @param[in,out] rnd An instance of ::rb_cRandom. + * @param[in] limit Max possible return value. + * @return A random number, distributed in `[0, limit]` interval. + * @note Note it can return `limit`. + * @note Whether the return value distributes uniformly in the + * interval or not depends on how the argument RNG behaves; at + * least in case of MT19937 it does. + */ +unsigned long rb_random_ulong_limited(VALUE rnd, unsigned long limit); + +/** + * Generates a random number whose upper limit is `i`. + * + * @param[in] i Max possible return value. + * @return A random number, uniformly distributed in `[0, limit]` interval. + * @note Note it can return `i`. + */ +unsigned long rb_genrand_ulong_limited(unsigned long i); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_RANDOM_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/range.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/range.h new file mode 100644 index 0000000..1f7d7c3 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/range.h @@ -0,0 +1,89 @@ +#ifndef RBIMPL_INTERN_RANGE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_RANGE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cRange. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* range.c */ + +/** + * Creates a new Range. + * + * @param[in] beg "Left" or "lowest" endpoint of the range. + * @param[in] end "Right" or "highest" endpoint of the range. + * @param[in] excl Whether the range is open-ended. + * @exception rb_eArgError `beg` and `end` are not comparable. + * @note These days both endpoints can be ::RUBY_Qnil, which means that + * endpoint is unbound. + */ +VALUE rb_range_new(VALUE beg, VALUE end, int excl); + +RBIMPL_ATTR_NONNULL(()) +/** + * Deconstructs a numerical range. As the arguments are `long` based, it + * expects everything are in the `long` domain. + * + * @param[in] range A range of numerical endpoints. + * @param[out] begp Return value buffer. + * @param[out] lenp Return value buffer. + * @param[in] len Updated length. + * @param[in] err In case `len` is out of range... + * - `0`: returns ::RUBY_Qnil. + * - `1`: raises ::rb_eRangeError. + * - `2`: `beg` and `len` expanded accordingly. + * @exception rb_eTypeError `range` is not a numerical range. + * @exception rb_eRangeError `range` cannot fit into `long`. + * @retval RUBY_Qfalse `range` is not an ::rb_cRange. + * @retval RUBY_Qnil `len` is out of `range` but `err` is zero. + * @retval RUBY_Qtrue Otherwise. + * @post `beg` is the (possibly updated) left endpoint. + * @post `len` is the (possibly updated) length of the range. + * + * @internal + * + * The complex error handling switch reflects the fact that `Array#[]=` and + * `String#[]=` behave differently when they take ranges. + */ +VALUE rb_range_beg_len(VALUE range, long *begp, long *lenp, long len, int err); + +RBIMPL_ATTR_NONNULL(()) +/** + * Deconstructs a range into its components. + * + * @param[in] range Range or range-ish object. + * @param[out] begp Return value buffer. + * @param[out] endp Return value buffer. + * @param[out] exclp Return value buffer. + * @retval RUBY_Qfalse `range` is not an instance of ::rb_cRange. + * @retval RUBY_Qtrue Argument pointers are updated. + * @post `*begp` is the left endpoint of the range. + * @post `*endp` is the right endpoint of the range. + * @post `*exclp` is whether the range is open-ended or not. + */ +int rb_range_values(VALUE range, VALUE *begp, VALUE *endp, int *exclp); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_RANGE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/rational.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/rational.h new file mode 100644 index 0000000..ff4beca --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/rational.h @@ -0,0 +1,172 @@ +#ifndef RBIMPL_INTERN_RATIONAL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_RATIONAL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cRational. + */ +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/arithmetic/long.h" /* INT2FIX is here. */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* rational.c */ + +/** + * Identical to rb_rational_new(), except it skips argument validations. It is + * thus dangerous for extension libraries. For instance `1/0r` could be + * constructed using this. + * + * @param[in] num Numerator, an instance of ::rb_cInteger. + * @param[in] den Denominator, an instance of ::rb_cInteger. + * @exception rb_eTypeError Either argument is not an Integer. + * @return An instance of ::rb_cRational whose value is `(num/den)r`. + */ +VALUE rb_rational_raw(VALUE num, VALUE den); + +/** + * Shorthand of `(x/1)r`. As `x` is already an Integer, it practically + * converts it into a Rational of the identical value. + * + * @param[in] x An instance of ::rb_cInteger. + * @return An instance of ::rb_cRational, whose value is `(x/1)r`. + */ +#define rb_rational_raw1(x) rb_rational_raw((x), INT2FIX(1)) + +/** @alias{rb_rational_raw} */ +#define rb_rational_raw2(x,y) rb_rational_raw((x), (y)) + +/** + * Constructs a Rational, with reduction. This returns for instance `(2/3)r` + * for `rb_rational_new(INT2NUM(-384), INT2NUM(-576))`. + * + * @param[in] num Numerator, an instance of ::rb_cInteger. + * @param[in] den Denominator, an instance of ::rb_cInteger. + * @exception rb_eZeroDivError `den` is zero. + * @return An instance of ::rb_cRational whose value is `(num/den)r`. + */ +VALUE rb_rational_new(VALUE num, VALUE den); + +/** + * Shorthand of `(x/1)r`. As `x` is already an Integer, it practically + * converts it into a Rational of the identical value. + * + * @param[in] x An instance of ::rb_cInteger. + * @return An instance of ::rb_cRational, whose value is `(x/1)r`. + */ +#define rb_rational_new1(x) rb_rational_new((x), INT2FIX(1)) + +/** @alias{rb_rational_new} */ +#define rb_rational_new2(x,y) rb_rational_new((x), (y)) + +/** + * Converts various values into a Rational. This function accepts: + * + * - Instances of ::rb_cInteger (taken as-is), + * - Instances of ::rb_cRational (taken as-is), + * - Instances of ::rb_cFloat (applies `#to_r`), + * - Instances of ::rb_cComplex (applies `#to_r`), + * - Instances of ::rb_cString (applies `#to_r`), + * - Other objects that respond to `#to_r`. + * + * It (possibly recursively) applies `#to_r` until both sides become either + * Integer or Rational, then divides them. + * + * As a special case, passing ::RUBY_Qundef to `den` is the same as passing + * `RB_INT2NUM(1)`. + * + * @param[in] num Numerator (see above). + * @param[in] den Denominator (see above). + * @exception rb_eTypeError Passed something not described above. + * @exception rb_eFloatDomainError `#to_r` produced Nan/Inf. + * @exception rb_eZeroDivError `#to_r` produced zero for `den`. + * @return An instance of ::rb_cRational whose value is `(num/den)r`. + * + * @internal + * + * This was the implementation of `Kernel#Rational` before, but they diverged. + */ +VALUE rb_Rational(VALUE num, VALUE den); + +/** + * Shorthand of `(x/1)r`. It practically converts it into a Rational of the + * identical value. + * + * @param[in] x ::rb_cInteger, ::rb_cRational, or something that responds to + * `#to_r`. + * @return An instance of ::rb_cRational, whose value is `(x/1)r`. + */ +#define rb_Rational1(x) rb_Rational((x), INT2FIX(1)) + +/** @alias{rb_Rational} */ +#define rb_Rational2(x,y) rb_Rational((x), (y)) + +RBIMPL_ATTR_PURE() +/** + * Queries the numerator of the passed Rational. + * + * @param[in] rat An instance of ::rb_cRational. + * @return Its numerator part, which is an instance of ::rb_cInteger. + */ +VALUE rb_rational_num(VALUE rat); + +RBIMPL_ATTR_PURE() +/** + * Queries the denominator of the passed Rational. + * + * @param[in] rat An instance of ::rb_cRational. + * @return Its denominator part, which is an instance of ::rb_cInteger + * greater than or equal to one.. + */ +VALUE rb_rational_den(VALUE rat); + +/** + * Simplified approximation of a float. It returns a rational `rat` which + * satisfies: + * + * ``` + * flt - |prec| <= rat <= flt + |prec| + * ``` + * + * ```ruby + * 3.141592.rationalize(0.001) # => (201/64)r + * 3.141592.rationalize(0.01)' # => (22/7)r + * 3.141592.rationalize(0.1)' # => (16/5)r + * 3.141592.rationalize(1)' # => (3/1)r + * ``` + * + * @param[in] flt An instance of ::rb_cFloat to rationalise. + * @param[in] prec Another ::rb_cFloat, which is the "precision". + * @return Approximation of `flt`, in ::rb_cRational. + */ +VALUE rb_flt_rationalize_with_prec(VALUE flt, VALUE prec); + +/** + * Identical to rb_flt_rationalize_with_prec(), except it auto-detects + * appropriate precision depending on the passed value. + * + * @param[in] flt An instance of ::rb_cFloat to rationalise. + * @return Approximation of `flt`, in ::rb_cRational. + */ +VALUE rb_flt_rationalize(VALUE flt); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_RATIONAL_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/re.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/re.h new file mode 100644 index 0000000..31f5593 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/re.h @@ -0,0 +1,249 @@ +#ifndef RBIMPL_INTERN_RE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_RE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cRegexp. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* re.c */ + +/** + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + * + * @internal + * + * This was a function that switched between memcmp and rb_memcicmp depending + * on then-called `ruby_ignorecase`, or the `$=` global variable. That feature + * was abandoned in sometime around version 1.9.0. + */ +#define rb_memcmp memcmp + +/** + * Identical to st_locale_insensitive_strcasecmp(), except it is timing safe + * and returns something different. + * + * @param[in] s1 Comparison LHS. + * @param[in] s2 Comparison RHS. + * @param[in] n Comparison shall stop after first `n` bytes are scanned. + * @retval <0 `s1` is "less" than `s2`. + * @retval 0 Both sides converted into lowercase would be identical. + * @retval >0 `s1` is "greater" than `s2`. + * @note The "case" here means that of the POSIX Locale. + * + * @internal + * + * Can accept NULLs as long as n is also 0, and returns 0. + */ +int rb_memcicmp(const void *s1,const void *s2, long n); + +/** + * Asserts that the given MatchData is "occupied". MatchData shares its + * backend storages with its Regexp object. But programs can destructively + * tamper its contents. Calling this function beforehand shall prevent such + * modifications to spill over into other objects. + * + * @param[out] md Target instance of ::rb_cMatch. + * @post The object is "busy". + * + * @internal + * + * There is rb_match_unbusy internally, but extension libraries are left unable + * to do so. + */ +void rb_match_busy(VALUE md); + +/** + * Identical to rb_reg_nth_match(), except it just returns Boolean. This could + * skip allocating a returning string, resulting in reduced memory footprints + * if applicable. + * + * @param[in] n Match index. + * @param[in] md An instance of ::rb_cMatch. + * @exception rb_eTypeError `md` is not initialised. + * @retval RUBY_Qnil There is no `n`-th capture. + * @retval RUBY_Qfalse There is a `n`-th capture and is empty. + * @retval RUBY_Qtrue There is a `n`-th capture that has something. + * + * @internal + * + * @shyouhei wonders: why there are both rb_reg_match_defined() and + * rb_match_nth_defined, which are largely the same things, but do not share + * their implementations at all? + */ +VALUE rb_reg_nth_defined(int n, VALUE md); + +/** + * Queries the nth captured substring. + * + * @param[in] n Match index. + * @param[in] md An instance of ::rb_cMatch. + * @exception rb_eTypeError `md` is not initialised. + * @retval RUBY_Qnil There is no `n`-th capture. + * @retval otherwise An allocated instance of ::rb_cString containing + * the contents captured. + */ +VALUE rb_reg_nth_match(int n, VALUE md); + +/** + * Queries the index of the given named capture. Captures could be named. But + * that doesn't mean named ones are not indexed. A regular expression can mix + * named and non-named captures, and they are all indexed. This function + * converts from a name to its index. + * + * @param[in] match An instance of ::rb_cMatch. + * @param[in] backref Capture name, in String, Symbol, or Numeric. + * @exception rb_eIndexError No such named capture. + * @return The index of the given name. + */ +int rb_reg_backref_number(VALUE match, VALUE backref); + +/** + * This just returns the argument, stringified. What a poor name. + * + * @param[in] md An instance of ::rb_cMatch. + * @return Its 0th capture (i.e. entire matched string). + */ +VALUE rb_reg_last_match(VALUE md); + +/** + * The portion of the original string before the given match. + * + * @param[in] md An instance of ::rb_cMatch. + * @return Its "prematch". This is perl's ``$```. + */ +VALUE rb_reg_match_pre(VALUE md); + +/** + * The portion of the original string after the given match. + * + * @param[in] md An instance of ::rb_cMatch. + * @return Its "postmatch". This is perl's `$'`. + */ +VALUE rb_reg_match_post(VALUE md); + +/** + * The portion of the original string that captured at the very last. + * + * @param[in] md An instance of ::rb_cMatch. + * @return Its "lastmatch". This is perl's `$+`. + */ +VALUE rb_reg_match_last(VALUE md); + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define HAVE_RB_REG_NEW_STR 1 + +/** + * Identical to rb_reg_new(), except it takes the expression in Ruby's string + * instead of C's. + * + * @param[in] src Source code in String. + * @param[in] opts Options e.g. ONIG_OPTION_MULTILINE. + * @exception rb_eRegexpError `src` and `opts` do not interface. + * @return Allocated new instance of ::rb_cRegexp. + */ +VALUE rb_reg_new_str(VALUE src, int opts); + +RBIMPL_ATTR_NONNULL(()) +/** + * Creates a new Regular expression. + * + * @param[in] src Source code. + * @param[in] len `strlen(src)`. + * @param[in] opts Options e.g. ONIG_OPTION_MULTILINE. + * @return Allocated new instance of ::rb_cRegexp. + */ +VALUE rb_reg_new(const char *src, long len, int opts); + +/** + * Allocates an instance of ::rb_cRegexp. + * + * @private + * + * Nobody should call this function. Regular expressions that are not + * initialised must not exist in the wild. + */ +VALUE rb_reg_alloc(void); + +/** + * Initialises an instance of ::rb_cRegexp. + * + * @private + * + * This just raises for ordinal regexp objects. Extension libraries must not + * use. + */ +VALUE rb_reg_init_str(VALUE re, VALUE s, int options); + +/** + * This is the match operator. + * + * @param[in] re An instance of ::rb_cRegexp. + * @param[in] str An instance of ::rb_cString. + * @exception rb_eTypeError `str` is not a string. + * @exception rb_eRegexpError Error inside of Onigmo (unlikely). + * @retval RUBY_Qnil Match failed. + * @retval otherwise Matched position (character index inside of + * `str`). + * @post `Regexp.last_match` is updated. + * @post `$&`, `$~`, etc., are updated. + * @note If you do this in ruby, named captures are assigned to local + * variable of the local scope. But that doesn't happen here. The + * assignment is done by the interpreter. + */ +VALUE rb_reg_match(VALUE re, VALUE str); + +/** + * Identical to rb_reg_match(), except it matches against rb_lastline_get() + * (or, the `$_`). + * + * @param[in] re An instance of ::rb_cRegexp. + * @exception rb_eRegexpError Error inside of Onigmo (unlikely). + * @retval RUBY_Qnil Match failed or `$_` is absent. + * @retval otherwise Matched position (character index inside of + * `$_`). + * @post `Regexp.last_match` is updated. + * @post `$&`, `$~`, etc., are updated. + */ +VALUE rb_reg_match2(VALUE re); + +/** + * Queries the options of the passed regular expression. + * + * @param[in] re An instance of ::rb_cRegexp. + * @return Its options. + * @note Possible return values are defined in Onigmo.h. + */ +int rb_reg_options(VALUE re); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_RE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/ruby.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/ruby.h new file mode 100644 index 0000000..efe6142 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/ruby.h @@ -0,0 +1,77 @@ +#ifndef RBIMPL_INTERN_RUBY_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_RUBY_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Process-global APIs. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* ruby.c */ +/** @alias{rb_get_argv} */ +#define rb_argv rb_get_argv() + +/** + * The value of `$0` at process bootup. + * + * @note This is just a snapshot of `$0`, not the backend storage of it. `$0` + * could become something different because it is a writable global + * variable. Modifying it for instance affects `ps(1)` output. Don't + * assume they are synced. + */ +RUBY_EXTERN VALUE rb_argv0; + +/* io.c */ + +/** + * Queries the arguments passed to the current process that you can access from + * Ruby as `ARGV`. + * + * @return An array of strings containing arguments passed to the process. + */ +VALUE rb_get_argv(void); + +/* ruby.c */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Loads the given file. This function opens the given pathname for reading, + * parses the contents as a Ruby script, and returns an opaque "node" pointer. + * You can then pass it to ruby_run_node() for evaluation. + * + * @param[in] file File name, or "-" to read from stdin. + * @return Opaque "node" pointer. + */ +void *rb_load_file(const char *file); + +/** + * Identical to rb_load_file(), except it takes the argument as a Ruby's string + * instead of C's. + * + * @param[in] file File name, or "-" to read from stdin. + * @return Opaque "node" pointer. + */ +void *rb_load_file_str(VALUE file); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_RUBY_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/select.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/select.h new file mode 100644 index 0000000..fabc287 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/select.h @@ -0,0 +1,86 @@ +#ifndef RBIMPL_INTERN_SELECT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_SELECT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs to provide ::rb_fd_select(). + * @note Functions and structs defined in this header file are not + * necessarily ruby-specific. They don't need ::VALUE etc. + */ +#include "ruby/internal/config.h" + +#ifdef HAVE_SYS_TYPES_H +# include /* for NFDBITS (BSD Net/2) */ +#endif + +#include "ruby/internal/dllexport.h" + +/* thread.c */ +#if defined(NFDBITS) && defined(HAVE_RB_FD_INIT) +# include "ruby/internal/intern/select/largesize.h" +#elif defined(_WIN32) +# include "ruby/internal/intern/select/win32.h" +# /** Does nothing (defined for compatibility). */ +# define rb_fd_resize(n, f) ((void)(f)) +#else +# include "ruby/internal/intern/select/posix.h" +# /** Does nothing (defined for compatibility). */ +# define rb_fd_resize(n, f) ((void)(f)) +#endif + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +struct timeval; + +/** + * Waits for multiple file descriptors at once. This is basically a wrapper of + * system-provided select() with releasing GVL, to allow other Ruby threads run + * in parallel. + * + * @param[in] nfds Max FD in everything passed, plus one. + * @param[in,out] rfds Set of FDs to wait for reads. + * @param[in,out] wfds Set of FDs to wait for writes. + * @param[in,out] efds Set of FDs to wait for OOBs. + * @param[in,out] timeout Max blocking duration. + * @retval -1 Failed, errno set. + * @retval 0 Timeout exceeded. + * @retval otherwise Total number of file descriptors returned. + * @post `rfds` contains readable FDs. + * @post `wfds` contains writable FDs. + * @post `efds` contains exceptional FDs. + * @post `timeout` is the time left. + * @note All pointers are allowed to be null pointers. + * + * Although backend threads can run in parallel of this function, touching a + * file descriptor from multiple threads could be problematic. For instance + * what happens when a thread closes a file descriptor that is selected by + * someone else, vastly varies among operating systems. You would better avoid + * touching an fd from more than one threads. + * + * @internal + * + * Although any file descriptors are possible here, it makes completely no + * sense to pass a descriptor that is not `O_NONBLOCK`. If you want to know + * the reason for this limitatuon in detail, you might find this thread super + * interesting: https://lkml.org/lkml/2004/10/6/117 + */ +int rb_thread_fd_select(int nfds, rb_fdset_t *rfds, rb_fdset_t *wfds, rb_fdset_t *efds, struct timeval *timeout); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_SELECT_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/select/largesize.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/select/largesize.h new file mode 100644 index 0000000..d65f088 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/select/largesize.h @@ -0,0 +1,214 @@ +#ifndef RBIMPL_INTERN_SELECT_LARGESIZE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_SELECT_LARGESIZE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs to provide ::rb_fd_select(). + * + * Several Unix platforms support file descriptors bigger than FD_SETSIZE in + * `select(2)` system call. + * + * - Linux 2.2.12 (?) + * + * - NetBSD 1.2 (src/sys/kern/sys_generic.c:1.25) + * `select(2)` documents how to allocate fd_set dynamically. + * http://netbsd.gw.com/cgi-bin/man-cgi?select++NetBSD-4.0 + * + * - FreeBSD 2.2 (src/sys/kern/sys_generic.c:1.19) + * + * - OpenBSD 2.0 (src/sys/kern/sys_generic.c:1.4) + * `select(2)` documents how to allocate fd_set dynamically. + * http://www.openbsd.org/cgi-bin/man.cgi?query=select&manpath=OpenBSD+4.4 + * + * - Solaris 8 has `select_large_fdset` + * + * - Mac OS X 10.7 (Lion) + * `select(2)` returns `EINVAL` if `nfds` is greater than `FD_SET_SIZE` and + * `_DARWIN_UNLIMITED_SELECT` (or `_DARWIN_C_SOURCE`) isn't defined. + * http://developer.apple.com/library/mac/#releasenotes/Darwin/SymbolVariantsRelNotes/_index.html + * + * When `fd_set` is not big enough to hold big file descriptors, it should be + * allocated dynamically. Note that this assumes `fd_set` is structured as + * bitmap. + * + * `rb_fd_init` allocates the memory. + * `rb_fd_term` frees the memory. + * `rb_fd_set` may re-allocate bitmap. + * + * So `rb_fd_set` doesn't reject file descriptors bigger than `FD_SETSIZE`. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" + +/**@cond INTERNAL_MACRO */ +#define rb_fd_ptr rb_fd_ptr +#define rb_fd_max rb_fd_max +/** @endcond */ + +struct timeval; + +/** + * The data structure which wraps the fd_set bitmap used by select(2). This + * allows Ruby to use FD sets larger than that allowed by historic limitations + * on modern platforms. + */ +typedef struct { + int maxfd; /**< Maximum allowed number of FDs. */ + fd_set *fdset; /**< File descriptors buffer */ +} rb_fdset_t; + +RBIMPL_SYMBOL_EXPORT_BEGIN() +RBIMPL_ATTR_NONNULL(()) +/** + * (Re-)initialises a fdset. One must be initialised before other `rb_fd_*` + * operations. Analogous to calling `malloc(3)` to allocate an `fd_set`. + * + * @param[out] f An fdset to squash. + * @post `f` holds no file descriptors. + */ +void rb_fd_init(rb_fdset_t *f); + +RBIMPL_ATTR_NONNULL(()) +/** + * Destroys the ::rb_fdset_t, releasing any memory and resources it used. It + * must be reinitialised using rb_fd_init() before future use. Analogous to + * calling `free(3)` to release memory for an `fd_set`. + * + * @param[out] f An fdset to squash. + * @post `f` holds no file descriptors. + */ +void rb_fd_term(rb_fdset_t *f); + +RBIMPL_ATTR_NONNULL(()) +/** + * Wipes out the current set of FDs. + * + * @param[out] f The fdset to clear. + * @post `f` has no FDs. + */ +void rb_fd_zero(rb_fdset_t *f); + +RBIMPL_ATTR_NONNULL(()) +/** + * Sets an fd to a fdset. + * + * @param[in] fd A file descriptor. + * @param[out] f Target fdset. + * @post `f` holds `fd`. + */ +void rb_fd_set(int fd, rb_fdset_t *f); + +RBIMPL_ATTR_NONNULL(()) +/** + * Releases a specific FD from the given fdset. + * + * @param[in] fd Target FD. + * @param[out] f The fdset that holds `fd`. + * @post `f` doesn't hold n. + */ +void rb_fd_clr(int fd, rb_fdset_t *f); + +RBIMPL_ATTR_NONNULL(()) +RBIMPL_ATTR_PURE() +/** + * Queries if the given FD is in the given set. + * + * @param[in] fd Target FD. + * @param[in] f The fdset to scan. + * @retval 1 Yes there is. + * @retval 0 No there isn't. + * @see http://www.freebsd.org/cgi/query-pr.cgi?pr=91421 + */ +int rb_fd_isset(int fd, const rb_fdset_t *f); + +/** + * Destructively overwrites an fdset with another. + * + * @param[out] dst Target fdset. + * @param[in] src Source fdset. + * @param[in] max Maximum number of file descriptors to copy. + * @post `dst` is a copy of `src`. + */ +void rb_fd_copy(rb_fdset_t *dst, const fd_set *src, int max); + +/** + * Identical to rb_fd_copy(), except it copies unlimited number of file + * descriptors. + * + * @param[out] dst Target fdset. + * @param[in] src Source fdset. + * @post `dst` is a copy of `src`. + */ +void rb_fd_dup(rb_fdset_t *dst, const rb_fdset_t *src); + +/** + * Waits for multiple file descriptors at once. + * + * @param[in] nfds Max FD in everything passed, plus one. + * @param[in,out] rfds Set of FDs to wait for reads. + * @param[in,out] wfds Set of FDs to wait for writes. + * @param[in,out] efds Set of FDs to wait for OOBs. + * @param[in,out] timeout Max blocking duration. + * @retval -1 Failed, errno set. + * @retval 0 Timeout exceeded. + * @retval otherwise Total number of file descriptors returned. + * @post `rfds` contains readable FDs. + * @post `wfds` contains writable FDs. + * @post `efds` contains exceptional FDs. + * @post `timeout` is the time left. + * @note All pointers are allowed to be null pointers. + */ +int rb_fd_select(int nfds, rb_fdset_t *rfds, rb_fdset_t *wfds, rb_fdset_t *efds, struct timeval *timeout); +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_NONNULL(()) +RBIMPL_ATTR_PURE() +/** + * Raw pointer to `fd_set`. + * + * @param[in] f Target fdset. + * @retval NULL `f` is already terminated by rb_fd_term(). + * @retval otherwise Underlying fd_set. + * + * @internal + * + * Extension library must not touch raw pointers. It was a bad idea to let + * them use it. + */ +static inline fd_set * +rb_fd_ptr(const rb_fdset_t *f) +{ + return f->fdset; +} + +RBIMPL_ATTR_NONNULL(()) +RBIMPL_ATTR_PURE() +/** + * It seems this function has no use. Maybe just remove? + * + * @param[in] f A set. + * @return Number of file descriptors stored. + */ +static inline int +rb_fd_max(const rb_fdset_t *f) +{ + return f->maxfd; +} + +#endif /* RBIMPL_INTERN_SELECT_LARGESIZE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/select/posix.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/select/posix.h new file mode 100644 index 0000000..0a9b0b2 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/select/posix.h @@ -0,0 +1,144 @@ +#ifndef RBIMPL_INTERN_SELECT_POSIX_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_SELECT_POSIX_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs to provide ::rb_fd_select(). + */ +#include "ruby/internal/config.h" + +#ifdef HAVE_SYS_SELECT_H +# include /* for select(2) (modern POSIX) */ +#endif + +#ifdef HAVE_UNISTD_H +# include /* for select(2) (archaic UNIX) */ +#endif + +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/noalias.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" + +/** + * The data structure which wraps the fd_set bitmap used by `select(2)`. This + * allows Ruby to use FD sets larger than what has been historically allowed on + * modern platforms. + * + * @internal + * + * ... but because this header file is included only when the system is with + * that "historic restrictions", this is nothing more than an alias of fd_set. + */ +typedef fd_set rb_fdset_t; + +/** Clears the given ::rb_fdset_t. */ +#define rb_fd_zero FD_ZERO + +/** Sets the given fd to the ::rb_fdset_t. */ +#define rb_fd_set FD_SET + +/** Unsets the given fd from the ::rb_fdset_t. */ +#define rb_fd_clr FD_CLR + +/** Queries if the given fd is in the ::rb_fdset_t. */ +#define rb_fd_isset FD_ISSET + +/** Initialises the :given :rb_fdset_t. */ +#define rb_fd_init FD_ZERO + +/** Waits for multiple file descriptors at once. */ +#define rb_fd_select select + +/**@cond INTERNAL_MACRO */ +#define rb_fd_copy rb_fd_copy +#define rb_fd_dup rb_fd_dup +#define rb_fd_ptr rb_fd_ptr +#define rb_fd_max rb_fd_max +/** @endcond */ + +RBIMPL_ATTR_NONNULL(()) +RBIMPL_ATTR_NOALIAS() +/** + * Destructively overwrites an fdset with another. + * + * @param[out] dst Target fdset. + * @param[in] src Source fdset. + * @param[in] n Unused parameter. + * @post `dst` is a copy of `src`. + */ +static inline void +rb_fd_copy(rb_fdset_t *dst, const fd_set *src, int n) +{ + *dst = *src; +} + +RBIMPL_ATTR_NONNULL(()) +RBIMPL_ATTR_NOALIAS() +/** + * Destructively overwrites an fdset with another. + * + * @param[out] dst Target fdset. + * @param[in] src Source fdset. + * @post `dst` is a copy of `src`. + */ +static inline void +rb_fd_dup(rb_fdset_t *dst, const fd_set *src) +{ + *dst = *src; +} + +RBIMPL_ATTR_PURE() +/* :TODO: can this function be __attribute__((returns_nonnull)) or not? */ +/** + * Raw pointer to `fd_set`. + * + * @param[in] f Target fdset. + * @return Underlying fd_set. + * + * @internal + * + * Extension library must not touch raw pointers. It was a bad idea to let + * them use it. + */ +static inline fd_set * +rb_fd_ptr(rb_fdset_t *f) +{ + return f; +} + +RBIMPL_ATTR_CONST() +/** + * It seems this function has no use. Maybe just remove? + * + * @param[in] f A set. + * @return Number of file descriptors stored. + */ +static inline int +rb_fd_max(const rb_fdset_t *f) +{ + return FD_SETSIZE; +} + +/** @cond INTERNAL_MACRO */ +/* :FIXME: What are these? They don't exist for sibling implementations. */ +#define rb_fd_init_copy(d, s) (*(d) = *(s)) +#define rb_fd_term(f) ((void)(f)) +/** @endcond */ + +#endif /* RBIMPL_INTERN_SELECT_POSIX_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/select/win32.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/select/win32.h new file mode 100644 index 0000000..edaf7a8 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/select/win32.h @@ -0,0 +1,259 @@ +#ifndef RBIMPL_INTERN_SELECT_WIN32_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_SELECT_WIN32_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs to provide ::rb_fd_select(). + */ +#include "ruby/internal/dosish.h" /* for rb_w32_select */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/attr/noalias.h" +#include "ruby/internal/dllexport.h" +#include "ruby/assert.h" + +/**@cond INTERNAL_MACRO */ +#define rb_fd_zero rb_fd_zero +#define rb_fd_clr rb_fd_clr +#define rb_fd_isset rb_fd_isset +#define rb_fd_copy rb_fd_copy +#define rb_fd_dup rb_fd_dup +#define rb_fd_ptr rb_fd_ptr +#define rb_fd_max rb_fd_max +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +struct timeval; + +/** + * The data structure which wraps the fd_set bitmap used by select(2). This + * allows Ruby to use FD sets larger than that allowed by historic limitations + * on modern platforms. + */ +typedef struct { + int capa; /**< Maximum allowed number of FDs. */ + fd_set *fdset; /**< File descriptors buffer. */ +} rb_fdset_t; + +RBIMPL_ATTR_NONNULL(()) +/** + * (Re-)initialises a fdset. One must be initialised before other `rb_fd_*` + * operations. Analogous to calling `malloc(3)` to allocate an `fd_set`. + * + * @param[out] f An fdset to squash. + * @post `f` holds no file descriptors. + * + * @internal + * + * Can't this leak memory if the same `f` is passed twice...? + */ +void rb_fd_init(rb_fdset_t *f); + +RBIMPL_ATTR_NONNULL(()) +/** + * Destroys the ::rb_fdset_t, releasing any memory and resources it used. It + * must be reinitialised using rb_fd_init() before future use. Analogous to + * calling `free(3)` to release memory for an `fd_set`. + * + * @param[out] f An fdset to squash. + * @post `f` holds no file descriptors. + */ +void rb_fd_term(rb_fdset_t *f); + +RBIMPL_ATTR_NONNULL(()) +/** + * Sets an fd to a fdset. + * + * @param[in] fd A file descriptor. + * @param[out] f Target fdset. + * @post `f` holds `fd`. + */ +void rb_fd_set(int fd, rb_fdset_t *f); + +RBIMPL_ATTR_NONNULL(()) +/** + * Destructively overwrites an fdset with another. + * + * @param[out] dst Target fdset. + * @param[in] src Source fdset. + * @param[in] max Maximum number of file descriptors to copy. + * @post `dst` is a copy of `src`. + */ +void rb_w32_fd_copy(rb_fdset_t *dst, const fd_set *src, int max); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_w32_fd_copy(), except it copies unlimited number of file + * descriptors. + * + * @param[out] dst Target fdset. + * @param[in] src Source fdset. + * @post `dst` is a copy of `src`. + */ +void rb_w32_fd_dup(rb_fdset_t *dst, const rb_fdset_t *src); + +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_NONNULL(()) +RBIMPL_ATTR_NOALIAS() +/** + * Wipes out the current set of FDs. + * + * @param[out] f The fdset to clear. + * @post `f` has no FDs. + */ +static inline void +rb_fd_zero(rb_fdset_t *f) +{ + f->fdset->fd_count = 0; +} + +RBIMPL_ATTR_NONNULL(()) +/** + * Releases a specific FD from the given fdset. + * + * @param[in] n Target FD. + * @param[out] f The fdset that holds `n`. + * @post `f` doesn't hold n. + */ +static inline void +rb_fd_clr(int n, rb_fdset_t *f) +{ + rb_w32_fdclr(n, f->fdset); +} + +RBIMPL_ATTR_NONNULL(()) +/** + * Queries if the given FD is in the given set. + * + * @param[in] n Target FD. + * @param[in] f The fdset to scan. + * @retval 1 Yes there is. + * @retval 0 No there isn't. + */ +static inline int +rb_fd_isset(int n, rb_fdset_t *f) +{ + return rb_w32_fdisset(n, f->fdset); +} + +RBIMPL_ATTR_NONNULL(()) +/** + * Destructively overwrites an fdset with another. + * + * @param[out] dst Target fdset. + * @param[in] src Source fdset. + * @param[in] n Maximum number of file descriptors to copy. + * @post `dst` is a copy of `src`. + */ +static inline void +rb_fd_copy(rb_fdset_t *dst, const fd_set *src, int n) +{ + rb_w32_fd_copy(dst, src, n); +} + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_fd_copy(), except it copies unlimited number of file + * descriptors. + * + * @param[out] dst Target fdset. + * @param[in] src Source fdset. + * @post `dst` is a copy of `src`. + */ +static inline void +rb_fd_dup(rb_fdset_t *dst, const rb_fdset_t *src) +{ + rb_w32_fd_dup(dst, src); +} + +/** + * Waits for multiple file descriptors at once. + * + * @param[in] n Max FD in everything passed, plus one. + * @param[in,out] rfds Set of FDs to wait for reads. + * @param[in,out] wfds Set of FDs to wait for writes. + * @param[in,out] efds Set of FDs to wait for OOBs. + * @param[in,out] timeout Max blocking duration. + * @retval -1 Failed, errno set. + * @retval 0 Timeout exceeded. + * @retval otherwise Total number of file descriptors returned. + * @post `rfds` contains readable FDs. + * @post `wfds` contains writable FDs. + * @post `efds` contains exceptional FDs. + * @post `timeout` is the time left. + * @note All pointers are allowed to be null pointers. + * + * @internal + * + * This can wait for `SOCKET` and `HANDLE` at once. In order to achieve that + * property we heavily touch the internals of MSVCRT. We `CreateFile` a + * `"NUL"` alongside of a socket and directly manipulate its `struct ioinfo`. + * This is of course a very dirty hack. If we could design the API today we + * could use `CancellIoEx`. But we are older than that Win32 API. + */ +static inline int +rb_fd_select(int n, rb_fdset_t *rfds, rb_fdset_t *wfds, rb_fdset_t *efds, struct timeval *timeout) +{ + return rb_w32_select( + n, + rfds ? rfds->fdset : NULL, + wfds ? wfds->fdset : NULL, + efds ? efds->fdset : NULL, + timeout); +} + +RBIMPL_ATTR_NONNULL(()) +RBIMPL_ATTR_PURE() +/** + * Raw pointer to `fd_set`. + * + * @param[in] f Target fdset. + * @retval NULL `f` is already terminated by rb_fd_term(). + * @retval otherwise Underlying fd_set. + * + * @internal + * + * Extension library must not touch raw pointers. It was a bad idea to let + * them use it. + */ +static inline fd_set * +rb_fd_ptr(const rb_fdset_t *f) +{ + return f->fdset; +} + +RBIMPL_ATTR_NONNULL(()) +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +/** + * It seems this function has no use. Maybe just remove? + * + * @param[in] f A set. + * @return Number of file descriptors stored. + */ +static inline int +rb_fd_max(const rb_fdset_t *f) +{ + const fd_set *p = f->fdset; + + RBIMPL_ASSERT_OR_ASSUME(p); + return p->fd_count; +} + +#endif /* RBIMPL_INTERN_SELECT_WIN32_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/signal.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/signal.h new file mode 100644 index 0000000..84f7558 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/signal.h @@ -0,0 +1,152 @@ +#ifndef RBIMPL_INTERN_SIGNAL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_SIGNAL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Signal handling APIs. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* signal.c */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Sends a signal ("kills") to processes. + * + * The first argument is the signal, either in: + * + * - Numerical representation (e.g. `9`), or + * - Textual representation of canonical (e.g. `:SIGKILL`) name or + * abbreviated (e.g. `:KILL`) name, either in ::rb_cSymbol or ::rb_cString. + * + * All the remaining arguments are numerical representations of process IDs. + * This function iterates over them to send the specified signal. + * + * You can specify both negative PIDs and negative signo to this function: + * + * ``` + * sig \ pid | >= 1 | == 0 | == -1 | <= -2 + * ===========+======+======+=======+======= + * > 0 | #1 | #2 | #3 | #4 + * == 0 | #5 | #6 | #7 | #8 + * < 0 | #9 | #10 | #11 + * ``` + * + * - Case #1: When signo and PID are both positive, this function sends the + * specified signal to the specified process (intuitive). + * + * - Case #2: When signo is positive and PID is zero, this function sends + * that signal to the current process group. + * + * - Case #3: When signo is positive and PID is -1, this function sends that + * signal to everything that the current process is allowed to kill. + * + * - Case #4: When signo is positive and PID is negative (but not -1), this + * function sends that signal to every processes in a process group, whose + * process group ID is the absolute value of the passed PID. + * + * - Case #5: When signo is zero and PID is positive, this function just + * checks for the existence of the specified process and doesn't send + * anything to anyone. In case the process is absent `Errno::ESRCH` is + * raised. + * + * - Case #6: When signo and PID are both zero, this function checks for the + * existence of the current process group. And it must do. This function + * is effectively a no-op then. + * + * - Case #7: When signo is zero and PID is -1, this function checks if there + * is any other process that the current process can kill. At least init + * (PID 1) must exist, so this must not fail. + * + * - Case #8: When signo is zero and PID is negative (but not -1), this + * function checks if there is a process group whose process group ID is + * the absolute value of the passed PID. In case the process group is + * absent `Errno::ESRCH` is raised. + * + * - Case #9: When signo is negative and PID is positive, this function sends + * the absolute value of the passed signo to the process group specified as + * the PID. + * + * - Case #10: When signo is negative and PID is zero, it is highly expected + * that this function sends the absolute value of the passed signo to the + * current process group. Strictly speaking, IEEE Std 1003.1-2017 + * specifies that this (`killpg(3posix)` with an argument of zero) is an + * undefined behaviour. But no operating system is known so far that does + * things differently. + * + * - Case #11: When signo and PID are both negative, the behaviour of this + * function depends on how `killpg(3)` works. On Linux, it seems such + * attempt is strictly prohibited and `Errno::EINVAL` is raised. But on + * macOS, it seems it tries to to send the signal actually to the process + * group. + * + * @note Above description is in fact different from how `kill(2)` works. + * We interpret the passed arguments before passing them through to + * system calls. + * @param[in] argc Number of objects in `argv`. + * @param[in] argv Signal, followed by target PIDs. + * @exception rb_eArgError Unknown signal name. + * @exception rb_eSystemCallError Various errors sending signal to processes. + * @return Something numeric. The meaning of this return value is unclear. + * It seems in case of #1 above, this could be the body count. But + * other cases remain mysterious. + */ +VALUE rb_f_kill(int argc, const VALUE *argv); + +/* This must be private, @shyouhei guesses. */ +#ifdef POSIX_SIGNAL +#define posix_signal ruby_posix_signal +void (*posix_signal(int, void (*)(int)))(int); +#endif + +RBIMPL_ATTR_PURE() +/** + * Queries the name of the signal. It returns for instance `"KILL"` for + * SIGKILL. + * + * @param[in] signo Signal number to query. + * @retval 0 No such signal. + * @retval otherwise A pointer to a static C string that is the name of + * the signal. + * @warning Don't free the return value. + */ +const char *ruby_signal_name(int signo); + +/** + * Pretends as if there was no custom signal handler. This function sets the + * signal action to SIG_DFL, then kills itself. + * + * @param[in] sig The signal. + * @post Previous signal handler is lost. + * @post Passed signal is sent to the current process. + * + * @internal + * + * @shyouhei doesn't understand the needs of this function being visible from + * extension libraries. + */ +void ruby_default_signal(int sig); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_SIGNAL_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/sprintf.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/sprintf.h new file mode 100644 index 0000000..aedc0f9 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/sprintf.h @@ -0,0 +1,159 @@ +#ifndef RBIMPL_INTERN_SPRINTF_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_SPRINTF_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Our own private `printf(3)`. + */ +#include "ruby/internal/attr/format.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* sprintf.c */ + +/** + * Identical to rb_str_format(), except how the arguments are arranged. + * + * @param[in] argc Number of objects of `argv`. + * @param[in] argv A format string, followed by its arguments. + * @return A rendered new instance of ::rb_cString. + * + * @internal + * + * You can safely pass NULL to `argv`. Doesn't make any sense though. + */ +VALUE rb_f_sprintf(int argc, const VALUE *argv); + +RBIMPL_ATTR_NONNULL((1)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2) +/** + * Ruby's extended `sprintf(3)`. We ended up reinventing the entire `printf` + * business because we don't want to depend on locales. OS-provided `printf` + * routines might or might not, which caused instabilities of the result + * strings. + * + * The format sequence is a mixture of format specifiers and other verbatim + * contents. Each format specifier starts with a `%`, and has the following + * structure: + * + * ``` + * %[flags][width][.precision][length]conversion + * ``` + * + * This function supports flags of ` `, `#`, `+`, `-`, `0`, width of + * non-negative decimal integer and `*`, precision of non-negative decimal + * integers and `*`, length of `L`, `h`, `t`, `z`, `l`, `ll`, `q`, conversions + * of `A`, `D`, `E`, `G`, `O`, `U`, `X`, `a`, `c`, `d`, `e`, `f`, `g`, `i`, + * `n`, `o`, `p`, `s`, `u`, `x`, and `%`. In case of `_WIN32` it also supports + * `I`. And additionally, it supports magical `PRIsVALUE` macro that can + * stringise arbitrary Ruby objects: + * + * ```CXX + * rb_sprintf("|%"PRIsVALUE"|", RUBY_Qtrue); // => "|true|" + * rb_sprintf("%+"PRIsVALUE, rb_stdin); // => "#>" + * ``` + * + * @param[in] fmt A `printf`-like format specifier. + * @param[in] ... Variadic number of contents to format. + * @return A rendered new instance of ::rb_cString. + * + * @internal + * + * :FIXME: We can improve this document. + */ +VALUE rb_sprintf(const char *fmt, ...); + +RBIMPL_ATTR_NONNULL((1)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 0) +/** + * Identical to rb_sprintf(), except it takes a `va_list`. + * + * @param[in] fmt A `printf`-like format specifier. + * @param[in] ap Contents to format. + * @return A rendered new instance of ::rb_cString. + */ +VALUE rb_vsprintf(const char *fmt, va_list ap); + +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) +/** + * Identical to rb_sprintf(), except it renders the output to the specified + * object rather than creating a new one. + * + * @param[out] dst String to modify. + * @param[in] fmt A `printf`-like format specifier. + * @param[in] ... Variadic number of contents to format. + * @exception rb_eTypeError `dst` is not a String. + * @return Passed `dst`. + * @post `dst` has the rendered output appended to its end. + */ +VALUE rb_str_catf(VALUE dst, const char *fmt, ...); + +RBIMPL_ATTR_NONNULL((2)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 0) +/** + * Identical to rb_str_catf(), except it takes a `va_list`. It can also be + * seen as a routine identical to rb_vsprintf(), except it renders the output + * to the specified object rather than creating a new one. + * + * @param[out] dst String to modify. + * @param[in] fmt A `printf`-like format specifier. + * @param[in] ap Contents to format. + * @exception rb_eTypeError `dst` is not a String. + * @return Passed `dst`. + * @post `dst` has the rendered output appended to its end. + */ +VALUE rb_str_vcatf(VALUE dst, const char *fmt, va_list ap); + +/** + * Formats a string. + * + * Returns the string resulting from applying `fmt` to `argv`. The format + * sequence is a mixture of format specifiers and other verbatim contents. + * Each format specifier starts with a `%`, and has the following structure: + * + * ``` + * %[flags][width][.precision]type + * ``` + * + * ... which is different from that of rb_sprintf(). Because ruby has no + * `short` or `long`, there is no way to specify a "length" of an argument. + * + * This function supports flags of ` `, `#`, `+`, `-`, `<>`, `{}`, with of + * non-negative decimal integer and `$`, `*`, precision of non-negative decimal + * integer and `$`, `*`, type of `A`, `B`, `E`, `G`, `X`, `a`, `b`, `c`, `d`, + * `e`, `f`, `g`, `i`, `o`, `p`, `s`, `u`, `x`, `%`. This list is also + * (largely the same but) not identical to that of rb_sprintf(). + * + * @param[in] argc Number of objects in `argv`. + * @param[in] argv Format arguments. + * @param[in] fmt A printf-like format specifier. + * @exception rb_eTypeError `fmt` is not a string. + * @exception rb_eArgError Failed to parse `fmt`. + * @return A rendered new instance of ::rb_cString. + * @note Everything it takes must be Ruby objects. + * + */ +VALUE rb_str_format(int argc, const VALUE *argv, VALUE fmt); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_SPRINTF_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/string.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/string.h new file mode 100644 index 0000000..3083125 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/string.h @@ -0,0 +1,1757 @@ +#ifndef RBIMPL_INTERN_STRING_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_STRING_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cString. + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#ifdef HAVE_STRING_H +# include +#endif + +#ifdef HAVE_STDINT_H +# include +#endif + +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/constant_p.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/variable.h" /* rb_gvar_setter_t */ +#include "ruby/st.h" /* st_index_t */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* string.c */ + +/** + * Allocates an instance of ::rb_cString. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString, of `len` bytes length, of + * "binary" encoding, whose contents are verbatim copy of `ptr`. + * @pre At least `len` bytes of continuous memory region shall be + * accessible via `ptr`. + */ +VALUE rb_str_new(const char *ptr, long len); + +/** + * Identical to rb_str_new(), except it assumes the passed pointer is a pointer + * to a C string. + * + * @param[in] ptr A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @exception rb_eArgError `ptr` is a null pointer. + * @return An instance of ::rb_cString, of "binary" encoding, whose + * contents are verbatim copy of `ptr`. + * @pre `ptr` must not be a null pointer. + */ +VALUE rb_str_new_cstr(const char *ptr); + +/** + * Identical to rb_str_new_cstr(), except it takes a Ruby's string instead of + * C's. Implementation wise it creates a string that shares the backend memory + * region with the receiver. So the name. But there is no way for extension + * libraries to know if a string is of such variant. + * + * @param[in] str An object of ::RString. + * @return An allocated instance of ::rb_cString, which shares the + * encoding, length, and contents with the passed string. + * @pre `str` must not be any arbitrary object except ::RString. + * @note Use #StringValue to enforce the precondition. + */ +VALUE rb_str_new_shared(VALUE str); + +/** + * Creates a frozen copy of the string, if necessary. This function does + * nothing when the passed string is already frozen. Otherwise, it allocates a + * copy of it, which is frozen. The passed string is untouched either ways. + * + * @param[in] str An object of ::RString. + * @return Something frozen. + * @pre `str` must not be any arbitrary object except ::RString. + * @note Use #StringValue to enforce the precondition. + */ +VALUE rb_str_new_frozen(VALUE str); + +/** + * Identical to rb_str_new(), except it takes the class of the allocating + * object. + * + * @param[in] obj A string-ish object. + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of the class of `obj`, of `len` bytes length, of + * "binary" encoding, whose contents are verbatim copy of `ptr`. + * @pre At least `len` bytes of continuous memory region shall be + * accessible via `ptr`. + * + * @internal + * + * Why it doesn't take an instance of ::rb_cClass? + */ +VALUE rb_str_new_with_class(VALUE obj, const char *ptr, long len); + +/** + * Identical to rb_str_new(), except it generates a string of "default + * external" encoding. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString. In case encoding conversion from + * "default internal" to "default external" is fully defined over + * the given contents, then the return value is a string of + * "default external" encoding, whose contents are the converted + * ones. Otherwise the string is a junk. + * @warning It doesn't raise on a conversion failure and silently ends up in + * a corrupted output. You can know the failure by querying + * `valid_encoding?` of the result object. + */ +VALUE rb_external_str_new(const char *ptr, long len); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_external_str_new(), except it assumes the passed pointer is + * a pointer to a C string. It can also be seen as a routine identical to + * rb_str_new_cstr(), except it generates a string of "default external" + * encoding. + * + * @param[in] ptr A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString. In case encoding conversion from + * "default internal" to "default external" is fully defined over + * the given contents, then the return value is a string of + * "default external" encoding, whose contents are the converted + * ones. Otherwise the string is a junk. + * @warning It doesn't raise on a conversion failure and silently ends up in + * a corrupted output. You can know the failure by querying + * `valid_encoding?` of the result object. + * @pre `ptr` must not be a null pointer. + */ +VALUE rb_external_str_new_cstr(const char *ptr); + +/** + * Identical to rb_str_new(), except it generates a string of "locale" + * encoding. It can also be seen as a routine identical to + * rb_external_str_new(), except it generates a string of "locale" encoding + * instead of "default external" encoding. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString. In case encoding conversion from + * "default internal" to "locale" is fully defined over the given + * contents, then the return value is a string of "locale" + * encoding, whose contents are the converted ones. Otherwise the + * string is a junk. + * @warning It doesn't raise on a conversion failure and silently ends up in + * a corrupted output. You can know the failure by querying + * `valid_encoding?` of the result object. + */ +VALUE rb_locale_str_new(const char *ptr, long len); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_locale_str_new(), except it assumes the passed pointer is a + * pointer to a C string. It can also be seen as a routine identical to + * rb_external_str_new_cstr(), except it generates a string of "locale" + * encoding instead of "default external". + * + * @param[in] ptr A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString. In case encoding conversion from + * "default internal" to "locale" is fully defined over the given + * contents, then the return value is a string of "locale" + * encoding, whose contents are the converted ones. Otherwise the + * string is a junk. + * @warning It doesn't raise on a conversion failure and silently ends up in + * a corrupted output. You can know the failure by querying + * `valid_encoding?` of the result object. + * @pre `ptr` must not be a null pointer. + */ +VALUE rb_locale_str_new_cstr(const char *ptr); + +/** + * Identical to rb_str_new(), except it generates a string of "filesystem" + * encoding. It can also be seen as a routine identical to + * rb_external_str_new(), except it generates a string of "filesystem" encoding + * instead of "default external" encoding. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString. In case encoding conversion from + * "default internal" to "filesystem" is fully defined over the + * given contents, then the return value is a string of + * "filesystem" encoding, whose contents are the converted ones. + * Otherwise the string is a junk. + * @warning It doesn't raise on a conversion failure and silently ends up in + * a corrupted output. You can know the failure by querying + * `valid_encoding?` of the result object. + */ +VALUE rb_filesystem_str_new(const char *ptr, long len); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_filesystem_str_new(), except it assumes the passed pointer + * is a pointer to a C string. It can also be seen as a routine identical to + * rb_external_str_new_cstr(), except it generates a string of "filesystem" + * encoding instead of "default external". + * + * @param[in] ptr A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString. In case encoding conversion from + * "default internal" to "filesystem" is fully defined over the + * given contents, then the return value is a string of + * "filesystem" encoding, whose contents are the converted ones. + * Otherwise the string is a junk. + * @warning It doesn't raise on a conversion failure and silently ends up in + * a corrupted output. You can know the failure by querying + * `valid_encoding?` of the result object. + * @pre `ptr` must not be a null pointer. + */ +VALUE rb_filesystem_str_new_cstr(const char *ptr); + +/** + * Allocates a "string buffer". A string buffer here is an instance of + * ::rb_cString, whose capacity is bigger than the length of it. If you can + * say that a string grows to a specific amount of bytes, this could be + * effective than resizing a string over and over again and again. + * + * @param[in] capa Designed capacity of the generating string. + * @return An empty string, of "binary" encoding, whose capacity is `capa`. + */ +VALUE rb_str_buf_new(long capa); + +RBIMPL_ATTR_NONNULL(()) +/** + * This is a rb_str_buf_new() + rb_str_buf_cat() combo. + * + * @param[in] ptr A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString, of "binary" encoding, whose + * contents are verbatim copy of `ptr`. + * @pre `ptr` must not be a null pointer. + * + * @internal + * + * This must be identical to rb_str_new_cstr(), except done in inefficient way? + * @shyouhei doesn't understand why this is not a simple alias. + */ +VALUE rb_str_buf_new_cstr(const char *ptr); + +/** + * Allocates a "temporary" string. This is a hidden empty string. Handy on + * occasions. + * + * @param[in] len Designed length of the string. + * @return A hidden, empty string. + * @see rb_obj_hide() + */ +VALUE rb_str_tmp_new(long len); + +/** + * Identical to rb_str_new(), except it generates a string of "US ASCII" + * encoding. This is different from rb_external_str_new(), not only for the + * output encoding, but also it doesn't convert the contents. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString, of `len` bytes length, of + * "US ASCII" encoding, whose contents are verbatim copy of `ptr`. + */ +VALUE rb_usascii_str_new(const char *ptr, long len); + +/** + * Identical to rb_str_new_cstr(), except it generates a string of "US ASCII" + * encoding. It can also be seen as a routine Identical to + * rb_usascii_str_new(), except it assumes the passed pointer is a pointer to a + * C string. + * + * @param[in] ptr A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @exception rb_eArgError `ptr` is a null pointer. + * @return An instance of ::rb_cString, of "US ASCII" encoding, whose + * contents are verbatim copy of `ptr`. + * @pre `ptr` must not be a null pointer. + */ +VALUE rb_usascii_str_new_cstr(const char *ptr); + +/** + * Identical to rb_str_new(), except it generates a string of "UTF-8" encoding. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString, of `len` bytes length, of + * "UTF-8" encoding, whose contents are verbatim copy of `ptr`. + */ +VALUE rb_utf8_str_new(const char *ptr, long len); + +/** + * Identical to rb_str_new_cstr(), except it generates a string of "UTF-8" + * encoding. It can also be seen as a routine Identical to + * rb_usascii_str_new(), except it assumes the passed pointer is a pointer to a + * C string. + * + * @param[in] ptr A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @exception rb_eArgError `ptr` is a null pointer. + * @return An instance of ::rb_cString, of "UTF-8" encoding, whose contents + * are verbatim copy of `ptr`. + * @pre `ptr` must not be a null pointer. + */ +VALUE rb_utf8_str_new_cstr(const char *ptr); + +/** + * @name Special strings that are backended by C string literals. + * + * *_str_new_static functions are intended for C string literals. + * They require memory in the range [ptr, ptr+len] to always be readable. + * Note that this range covers a total of len + 1 bytes. + * + * @{ + */ + +/** + * Identical to rb_str_new(), except it takes a C string literal. + * + * @param[in] ptr A C string literal. + * @param[in] len `strlen(ptr)`. + * @exception rb_eArgError `len` out of range of `size_t`. + * @pre `ptr` must be a C string constant. + * @return An instance of ::rb_cString, of "binary" encoding, whose backend + * storage is the passed C string literal. + * @warning It is a very bad idea to write to a C string literal (often + * immediate SEGV shall occur). Consider return values of this + * function be read-only. + * + * @internal + * + * Surprisingly it can take NULL, and generates an empty string. + */ +VALUE rb_str_new_static(const char *ptr, long len); + +/** + * Identical to rb_str_new_static(), except it generates a string of "US ASCII" + * encoding instead of "binary". It can also be seen as a routine identical to + * rb_usascii_str_new(), except it takes a C string literal. + * + * @param[in] ptr A C string literal. + * @param[in] len `strlen(ptr)`. + * @exception rb_eArgError `len` out of range of `size_t`. + * @pre `ptr` must be a C string constant. + * @return An instance of ::rb_cString, of "US ASCII" encoding, whose + * backend storage is the passed C string literal. + * @warning It is a very bad idea to write to a C string literal (often + * immediate SEGV shall occur). Consider return values of this + * function be read-only. + */ +VALUE rb_usascii_str_new_static(const char *ptr, long len); + +/** + * Identical to rb_str_new_static(), except it generates a string of "UTF-8" + * encoding instead of "binary". It can also be seen as a routine identical to + * rb_utf8_str_new(), except it takes a C string literal. + * + * @param[in] ptr A C string literal. + * @param[in] len `strlen(ptr)`. + * @exception rb_eArgError `len` out of range of `size_t`. + * @pre `ptr` must be a C string constant. + * @return An instance of ::rb_cString, of "UTF-8" encoding, whose backend + * storage is the passed C string literal. + * @warning It is a very bad idea to write to a C string literal (often + * immediate SEGV shall occur). Consider return values of this + * function be read-only. + */ +VALUE rb_utf8_str_new_static(const char *ptr, long len); + +/** @} */ + +/** + * Identical to rb_interned_str(), except it takes a Ruby's string instead of + * C's. It can also be seen as a routine identical to to rb_str_new_shared(), + * except it returns an infamous "f"string. + * + * @param[in] str An object of ::RString. + * @return An instance of ::rb_cString, either cached or allocated, which + * has the identical encoding, length, and contents with the passed + * string. + * @pre `str` must not be any arbitrary object except ::RString. + * @note Use #StringValue to enforce the precondition. + * + * @internal + * + * It actually finds or creates a fstring of the needed property, and + * destructively modifies the receiver behind-the-scene so that it becomes a + * shared string whose parent is the returning fstring. + */ +VALUE rb_str_to_interned_str(VALUE str); + +/** + * Identical to rb_str_new(), except it returns an infamous "f"string. What is + * a fstring? Well it is a special subkind of strings that is immutable, + * deduped globally, and managed by our GC. It is much like a Symbol (in fact + * Symbols are dynamic these days and are backended using fstrings). This + * concept has been silently introduced at some point in 2.x era. Since then + * it gained wider acceptance in the core. Starting from 3.x extension + * libraries can also generate ones. + * + * @param[in] ptr A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eArgError `len` is negative. + * @return A found or created instance of ::rb_cString, of `len` bytes + * length, of "binary" encoding, whose contents are identical to + * that of `ptr`. + * @pre At least `len` bytes of continuous memory region shall be + * accessible via `ptr`. + */ +VALUE rb_interned_str(const char *ptr, long len); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_interned_str(), except it assumes the passed pointer is a + * pointer to a C's string. It can also be seen as a routine identical to to + * rb_str_to_interned_str(), except it takes a C's string instead of Ruby's. + * Or it can also be seen as a routine identical to rb_str_new_cstr(), except + * it returns an infamous "f"string. + * + * @param[in] ptr A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString, of "binary" encoding, whose + * contents are verbatim copy of `ptr`. + * @pre `ptr` must not be a null pointer. + */ +VALUE rb_interned_str_cstr(const char *ptr); + +/** + * Destroys the given string for no reason. + * + * @warning DO NOT USE IT. + * @warning Leave this task to our GC. + * @warning It was a bad idea at the first place to let you know about it. + * + * @param[out] str The string to be executed. + * @post The given string no longer exists. + * @note Maybe `String#clear` could be what you want. + * + * @internal + * + * Should have moved this to `internal/string.h`. + */ +void rb_str_free(VALUE str); + +/** + * Replaces the contents of the former with the latter. + * + * @param[out] dst Destination object. + * @param[in] src Source object. + * @pre Both objects must not be any arbitrary objects except + * ::RString. + * @post `dst`'s former components are abandoned. It now has the + * identical encoding, length, and contents to `src`. + * @see rb_str_replace() + * + * @internal + * + * @shyouhei doesn't understand why this is useful to extension libraries. + * Just use rb_str_replace(). What's wrong with that? + */ +void rb_str_shared_replace(VALUE dst, VALUE src); + +/** + * Identical to rb_str_cat_cstr(), except it takes Ruby's string instead of + * C's. It can also be seen as a routine identical to rb_str_shared_replace(), + * except it appends instead of replaces. + * + * @param[out] dst Destination object. + * @param[in] src Source object. + * @exception rb_eEncCompatError Can't mix the encodings. + * @exception rb_eArgError Result string too big. + * @return The passed `dst`. + * @pre Both objects must not be any arbitrary objects except + * ::RString. + * @post `dst` has the contents of `src` appended, with encoding + * converted into `dst`'s one, into the end of `dst`. + */ +VALUE rb_str_buf_append(VALUE dst, VALUE src); + +/** @alias{rb_str_cat} */ +VALUE rb_str_buf_cat(VALUE, const char*, long); + +/** @alias{rb_str_cat_cstr} */ +VALUE rb_str_buf_cat2(VALUE, const char*); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_str_cat_cstr(), except it additionally assumes the source + * string be a NUL terminated ASCII string. + * + * @param[out] dst Destination object. + * @param[in] src Source string. + * @exception rb_eArgError Result string too big. + * @return The passed `dst`. + * @pre `dst` must not be any arbitrary object except ::RString. + * @pre `src` must be a NUL terminated ASCII string. + * @post `dst` has the contents of `src` appended, with encoding + * converted into `dst`'s one, into the end of `dst`. + */ +VALUE rb_str_buf_cat_ascii(VALUE dst, const char *src); + +/** + * Try converting an object to its stringised representation using its `to_s` + * method, if any. If there is no such thing, it resorts to rb_any_to_s() + * output. + * + * @param[in] obj Arbitrary ruby object to stringise. + * @return An instance of ::rb_cString. + */ +VALUE rb_obj_as_string(VALUE obj); + +/** + * Try converting an object to its stringised representation using its `to_str` + * method, if any. If there is no such thing, returns ::RUBY_Qnil. + * + * @param[in] obj Arbitrary ruby object to stringise. + * @exception rb_eTypeError `obj.to_str` returned something non-String. + * @retval RUBY_Qnil No conversion from obj to String defined. + * @return otherwise Stringised representation of `obj`. + * @see rb_io_check_io + * @see rb_check_array_type + * @see rb_check_hash_type + */ +VALUE rb_check_string_type(VALUE obj); + +/** + * Asserts that the given string's encoding is (Ruby's definition of) ASCII + * compatible. + * + * @param[in] obj An instance of ::rb_cString. + * @exception rb_eEncCompatError `obj` is ASCII incompatible. + * + * @internal + * + * @shyouhei doesn't know if this is an Easter egg or an official feature, but + * this function can in fact take non-strings such as Symbols, Regexps, IOs, + * etc. However if something unsupported is passed, it causes SEGV. It seems + * the feature is kind of untested. + */ +void rb_must_asciicompat(VALUE obj); + +/** + * Duplicates a string. + * + * @param[in] str String in question to duplicate. + * @return A duplicated new instance. + * @pre `str` must be of ::RString. + */ +VALUE rb_str_dup(VALUE str); + +/** + * I guess there is no use case of this function in extension libraries, but + * this is a routine identical to rb_str_dup(), except it always creates an + * instance of ::rb_cString regardless of the given object's class. This makes + * the most sense when the passed string is formerly hidden by rb_obj_hide(). + * + * @param[in] str A string, possibly hidden. + * @return A duplicated new instance of ::rb_cString. + */ +VALUE rb_str_resurrect(VALUE str); + +/** + * Obtains a "temporary lock" of the string. This advisory locking mechanism + * prevents other cooperating threads from tampering the receiver. The same + * thing could be done via freeze mechanism, but this one can also be unlocked + * using rb_str_unlocktmp(). + * + * @param[out] str String to lock. + * @exception rb_eRuntimeError `str` already locked. + * @return The given string. + * @post The string is locked. + */ +VALUE rb_str_locktmp(VALUE str); + +/** + * Releases a lock formerly obtained by rb_str_locktmp(). + * + * @param[out] str String to unlock. + * @exception rb_eRuntimeError `str` already unlocked. + * @return The given string. + * @post The string is locked. + */ +VALUE rb_str_unlocktmp(VALUE str); + +/** @alias{rb_str_new_frozen} */ +VALUE rb_str_dup_frozen(VALUE); + +/** @alias{rb_str_new_frozen} */ +#define rb_str_dup_frozen rb_str_new_frozen + +/** + * Generates a new string, concatenating the former to the latter. It can also + * be seen as a routine identical to rb_str_append(), except it doesn't tamper + * the passed strings to create a new one instead. + * + * @param[in] lhs Source string #1. + * @param[in] rhs Source string #2. + * @exception rb_eEncCompatError Can't mix the encodings. + * @exception rb_eArgError Result string too big. + * @return A new string containing `rhs` concatenated to `lhs`. + * @pre Both objects must not be any arbitrary objects except ::RString. + * @note This operation doesn't commute. Don't get confused by the + * "plus" terminology. For historical reasons there are some + * noncommutative `+`s in Ruby. This is one of such things. There + * has been a long discussion around `+`s in programming languages. + */ +VALUE rb_str_plus(VALUE lhs, VALUE rhs); + +/** + * Repetition of a string. + * + * @param[in] str String to repeat. + * @param[in] num Count, something numeric. + * @exception rb_eArgError `num` is negative. + * @return A new string repeating `num` times of `str`. + */ +VALUE rb_str_times(VALUE str, VALUE num); + +/** + * Byte offset to character offset conversion. This makes sense when the + * receiver is in a multibyte encoding. The string's i-th character does not + * always sit at its i-th byte. This function scans the contents to find the + * character index that matches the byte index. Generally speaking this is an + * `O(n)` operation. Could be slow. + * + * @param[in] str The string to scan. + * @param[in] pos Offset, in bytes. + * @return Offset, in characters. + */ +long rb_str_sublen(VALUE str, long pos); + +/** + * This is the implementation of two-argumented `String#slice`. + * + * - Returns the substring of the given `len` found in `str` at offset `beg`: + * + * ```ruby + * 'foo'[0, 2] # => "fo" + * 'foo'[0, 0] # => "" + * ``` + * + * - Counts backward from the end of `str` if `beg` is negative: + * + * ```ruby + * 'foo'[-2, 2] # => "oo" + * ``` + * + * - Special case: returns a new empty string if `beg` is equal to the length + * of `str`: + * + * ```ruby + * 'foo'[3, 2] # => "" + * ``` + * + * - Returns a null pointer if `beg` is out of range: + * + * ```ruby + * 'foo'[4, 2] # => nil + * 'foo'[-4, 2] # => nil + * ``` + * + * - Returns the trailing substring of `str` if `len` is large: + * + * ```ruby + * 'foo'[1, 50] # => "oo" + * ``` + * + * - Returns a null pointer if `len` is negative: + * + * ```ruby + * 'foo'[0, -1] # => nil + * ``` + * + * @param[in] str The string to slice. + * @param[in] beg Requested offset of the substring. + * @param[in] len Requested length of the substring. + * @retval RUBY_Qnil Parameters out of range. + * @retval otherwise A new string whose contents is the specified + * substring of `str`. + * @pre `str` must not be any arbitrary objects except ::RString. + */ +VALUE rb_str_substr(VALUE str, long beg, long len); + +/** + * Identical to rb_str_substr(), except the numbers are interpreted as byte + * offsets instead of character offsets. + * + * @param[in] str The string to slice. + * @param[in] beg Requested offset of the substring. + * @param[in] len Requested length of the substring. + * @return A new string whose contents is the specified substring of `str`. + * @pre `str` must not be any arbitrary objects except ::RString. + * @pre `beg` and `len` must not point to OOB contents. + */ +VALUE rb_str_subseq(VALUE str, long beg, long len); + +/** + * Identical to rb_str_substr(), except it returns a C's string instead of + * Ruby's. + * + * @param[in] str The string to slice. + * @param[in] beg Requested offset of the substring. + * @param[in,out] len Requested length of the substring. + * @retval NULL Parameters out of range. + * @retval otherwise A pointer inside of `str`'s backend storage where + * the specified substring exist. + * @pre `str` must not be any arbitrary objects except ::RString. + * @post `len` is updated to have the length of the return value. + */ +char *rb_str_subpos(VALUE str, long beg, long *len); + +/** + * Declares that the string is about to be modified. This for instance let the + * string have a dedicated backend storage. + * + * @param[out] str String about to be modified. + * @exception rb_eRuntimeError `str` is `locktmp`-ed. + * @exception rb_eFrozenError `str` is frozen. + * @pre `str` must not be any arbitrary objects except ::RString. + * @post Upon successful return the passed string is eligible to be + * modified. + */ +void rb_str_modify(VALUE str); + +/** + * Identical to rb_str_modify(), except it additionally expands the capacity of + * the receiver. + * + * @param[out] str Target string to modify. + * @param[in] capa Additional capacity to add. + * @exception rb_eArgError `capa` is negative. + * @exception rb_eRuntimeError `str` is `locktmp`-ed. + * @exception rb_eFrozenError `str` is frozen. + * @pre `str` must not be any arbitrary objects except ::RString. + * @post Upon successful return the passed string is modified so that + * its capacity is increased for `capa` bytes. + */ +void rb_str_modify_expand(VALUE str, long capa); + +/** + * This is the implementation of `String#freeze`. + * + * @param[out] str Target string to freeze. + * @return The passed string. + * @post Upon successful return the passed string is frozen. + */ +VALUE rb_str_freeze(VALUE str); + +/** + * Overwrites the length of the string. Typically this is used to shrink a + * string that was formerly expanded. + * + * ```CXX + * extern int fd; + * auto str = rb_eval_string("'...'"); + * rb_str_modify_expand(str, BUFSIZ); + * if (auto len = recv(fd, RSTRING_PTR(str), BUFSIZ, 0); len >= 0) { + * rb_str_set_len(str, len); + * } + * else { + * rb_sys_fail("recv(2)"); + * } + * ``` + * + * @param[out] str String to shrink. + * @param[in] len New length of the string. + * @exception rb_eRuntimeError `str` is `locktmp`-ed. + * @exception rb_eFrozenError `str` is frozen. + * @pre `str` must not be any arbitrary objects except ::RString. + * @post Upon successful return `str`'s length is set to `len`. + */ +void rb_str_set_len(VALUE str, long len); + +/** + * Overwrites the length of the string. In contrast to rb_str_set_len(), this + * function can also expand a string. + * + * @param[out] str String to shrink. + * @param[in] len New length of the string. + * @exception rb_eArgError `len` is negative. + * @exception rb_eRuntimeError `str` is `locktmp`-ed. + * @exception rb_eFrozenError `str` is frozen. + * @return The passed `str`. + * @pre `str` must not be any arbitrary objects except ::RString. + * @post Upon successful return `str` is either expanded or shrunken to + * have its length be `len`. + */ +VALUE rb_str_resize(VALUE str, long len); + +/** + * Destructively appends the passed contents to the string. + * + * @param[out] dst Destination object. + * @param[in] src Contents to append. + * @param[in] srclen Length of `src`. + * @exception rb_eArgError `srclen` is negative. + * @return The passed `dst`. + * @pre `dst` must not be any arbitrary objects except ::RString. + * @post `dst` has the contents of `ptr` appended. + */ +VALUE rb_str_cat(VALUE dst, const char *src, long srclen); + +/** + * Identical to rb_str_cat(), except it assumes the passed pointer is a pointer + * to a C string. + * + * @param[out] dst Destination object. + * @param[in] src Contents to append. + * @exception rb_eArgError Result string too big. + * @exception rb_eArgError `src` is a null pointer. + * @return The passed `dst`. + * @pre `dst` must not be any arbitrary objects except ::RString. + * @pre `src` must not be a null pointer. + * @post `dst` has the contents of `src` appended. + */ +VALUE rb_str_cat_cstr(VALUE dst, const char *src); + +/** @alias{rb_str_cat_cstr} */ +VALUE rb_str_cat2(VALUE, const char*); + +/** + * Identical to rb_str_buf_append(), except it converts the right hand side + * before concatenating. + * + * @param[out] dst Destination object. + * @param[in] src Source object. + * @exception rb_eEncCompatError Can't mix the encodings. + * @exception rb_eArgError Result string too big. + * @return The passed `dst`. + * @pre `dst` must not be any arbitrary objects except ::RString. + * @post `dst` has the contents of `src` appended, with encoding + * converted into `dst`'s one, into the end of `dst`. + */ +VALUE rb_str_append(VALUE dst, VALUE src); + +/** + * Identical to rb_str_append(), except it also accepts an integer as a + * codepoint. This resembles `String#<<`. + * + * @param[out] dst Destination object. + * @param[in] src Source object, String or Numeric. + * @exception rb_eRangeError Source numeric is out of range. + * @exception rb_eEncCompatError Source string too long. + * @exception rb_eArgError Result string too big. + * @return The passed `dst`. + * @pre `dst` must not be any arbitrary objects except ::RString. + * @post `dst` has the contents of `src` appended, with encoding + * converted into `dst`'s one, into the end of `dst`. + */ +VALUE rb_str_concat(VALUE dst, VALUE src); + +/* random.c */ + +/** + * This is a universal hash function. + * + * @warning This function changes its value per process. + * @param[in] ptr Target message. + * @param[in] len Length of `ptr` in bytes. + * @return A pseudorandom number suitable for Hash's hash value. + * @see Aumasson, JP., Bernstein, D.J., "SipHash: A Fast Short-Input + * PRF", In proceedings of 13th International Conference on + * Cryptology in India (INDOCRYPT 2012), LNCS 7668, pp. 489-508, + * 2012. http://doi.org/10.1007/978-3-642-34931-7_28 +*/ +st_index_t rb_memhash(const void *ptr, long len); + +/** + * Starts a series of hashing. Suppose you have a struct: + * + * ```CXX + * struct foo_tag { + * unsigned char bar; + * uint32_t baz; + * }; + * ``` + * + * It is not a wise idea to call rb_memhash() over it, because there could be + * padding bits. Instead you should explicitly iterate over each fields: + * + * ```CXX + * foo_tag foo = { 0, 0, }; + * st_index_t hash = 0; + * + * hash = rb_hash_start(0); + * hash = rb_hash_uint(hash, foo.bar); + * hash = rb_hash_uint32(hash, foo.baz); + * hash = rb_hash_end(hash); + * ``` + * + * @param[in] i Initial value. + * @return A hash value. + */ +st_index_t rb_hash_start(st_index_t i); + +/** @alias{st_hash_uint32} */ +#define rb_hash_uint32(h, i) st_hash_uint32((h), (i)) + +/** @alias{st_hash_uint} */ +#define rb_hash_uint(h, i) st_hash_uint((h), (i)) + +/** @alias{st_hash_end} */ +#define rb_hash_end(h) st_hash_end(h) + +/* string.c */ + +/** + * Calculates a hash value of a string. This is one of the two functions that + * constructs struct ::st_hash_type. + * + * @param[in] str An object of ::RString. + * @return A hash value. + * @pre `str` must not be any arbitrary object except ::RString. + * + * @internal + * + * Although safe to call, there must be no particular use case of this function + * for extension libraries. Only ruby internals must know about it. + * + * This is not a simple alias of rb_memhash(), because it considers the passed + * string's encoding as well as its contents. + */ +st_index_t rb_str_hash(VALUE str); + +/** + * Compares two strings. This is one of the two functions that constructs + * struct ::st_hash_type. + * + * @param[in] str1 A string. + * @param[in] str2 Another string. + * @retval 1 They have identical contents, length, and encodings. + * @retval 0 Otherwise. + * @pre Both objects must not be any arbitrary objects except + * ::RString. + * + * @internal + * + * In contrast to rb_str_hash(), this could be handy for comparison that only + * concerns equality. rb_str_cmp() returns 1, 0, -1. + */ +int rb_str_hash_cmp(VALUE str1, VALUE str2); + +/** + * Checks if two strings are comparable each other or not. Because + * rb_str_cmp() must return "lesser than" or "greater than" information, + * comparing two strings needs a stricter restriction. Both sides must be in a + * same set of strings which have total order. This is to check that property. + * Intuitive it sounds? But they can have different encodings. A character + * and another might or might not appear in the same order in their codepoints. + * It is complicated than you think. + * + * @param[in] str1 A string. + * @param[in] str2 Another string. + * @retval 1 They agree on a total order. + * @retval 0 Otherwise. + * @pre Both objects must not be any arbitrary objects except + * ::RString. + */ +int rb_str_comparable(VALUE str1, VALUE str2); + +/** + * Compares two strings, as in `strcmp(3)`. This does not consider the current + * locale, but considers the encodings of both sides instead. + * + * @param[in] lhs A string. + * @param[in] rhs Another string. + * @retval -1 `lhs` is "bigger than" `rhs`. + * @retval 1 `rhs` is "bigger than" `lhs`. + * @retval 0 Otherwise, e.g. not comparable. + * @pre Both objects must not be any arbitrary objects except + * ::RString. + */ +int rb_str_cmp(VALUE lhs, VALUE rhs); + +/** + * Equality of two strings. + * + * If `str2` is not a String, it resorts to `str2 == str1`. Otherwise if they + * are not comparable, returns ::RUBY_Qfalse. Otherwise if they have the same + * contents and the length, returns ::RUBY_Qtrue. Otherwise, returns + * ::RUBY_Qfalse. + * + * @param[in] str1 A string. + * @param[in] str2 Another string. + * @retval RUBY_Qtrue They are equal. + * @retval RUBY_Qfalse They are either different, or not comparable. + */ +VALUE rb_str_equal(VALUE str1, VALUE str2); + +/** + * Shrinks the given string for the given number of bytes. + * + * @param[out] str String to squash. + * @param[in] len Number of bytes to reduce. + * @exception rb_eRuntimeError `str` is `locktmp`-ed. + * @exception rb_eFrozenError `str` is frozen. + * @return The passed `str`. + * @pre `str` must not be any arbitrary objects except ::RString. + * @post `str` is shrunken. + * @warning Can break a multibyte character in middle. + * + * @internal + * + * What if `len` is negative? + */ +VALUE rb_str_drop_bytes(VALUE str, long len); + +/** + * Replaces some (or all) of the contents of the given string. This is the + * implementation of three-argumented `String#[]=`. + * + * @param[out] dst Target string to update. + * @param[in] beg Offset of the affected portion. + * @param[in] len Length of the affected portion. + * @param[in] src Object to be assigned. + * @exception rb_eTypeError `src` has no implicit conversion to String. + * @exception rb_eIndexError `len` is negative, or `beg` is OOB. + * @exception rb_eRuntimeError `dst` is `locktmp`-ed. + * @exception rb_eFrozenError `dst` is frozen. + * @note Unlike rb_str_substr(), this function raises. + * @post A portion of `dst` from `beg` to `len` is the stringised + * representation of `src`. If that replacement string is not the + * same length as the portion it is replacing, `dst` will be + * resized accordingly. + */ +void rb_str_update(VALUE dst, long beg, long len, VALUE src); + +/** + * Replaces the contents of the former object with the stringised contents of + * the latter. + * + * @param[out] dst Destination object. + * @param[in] src Source object. + * @exception rb_eTypeError `src` has no implicit conversion to String. + * @exception rb_eRuntimeError `dst` is `locktmp`-ed. + * @exception rb_eFrozenError `dst` is frozen. + * @return The passed `dst`. + * @pre `dst` must not be any arbitrary object except ::RString. + * @post `dst`'s former components are abandoned. It now has the + * identical encoding, length, and contents to `src`. + */ +VALUE rb_str_replace(VALUE dst, VALUE src); + +/** + * Generates a "readable" version of the receiver. + * + * @warning The output is _insecure_. Never feed one to `eval`. + * @warning The output is not always in the same encoding as the given one. + * @warning A character might or might not be escaped, depending on the + * result encoding. + * @param[in] str String to inspect. + * @return Its inspection, either in default internal encoding if any, or + * in default external encoding otherwise. + * @see rb_str_dump() + * + * @internal + * + * This is a (silent) fix of an actual vulnerability feeding `inspect` output + * strings to `eval`: + * https://github.com/hiki/hiki/commit/8771a6e25198e264a2bf9dc1c102fea2cc8ff975 + * + * ... and its advisory: + * http://hikiwiki.org/en/advisory20040712.html + */ +VALUE rb_str_inspect(VALUE str); + +/** + * "Inverse" of rb_eval_string(). Returns a quoted version of the string. All + * non-printing characters are replaced by `\uNNNN` or `\xHH` notation and all + * special characters are escaped. The result string is guaranteed to render a + * string of the same contents when passed to `eval` and friends. + * + * @param[in] str String to dump. + * @exception rb_eRuntimeError Too many escape sequences causes integer + * overflow on the length of the string. + * @return An US-ASCII string that includes all the necessary info to + * reconstruct the original string. + */ +VALUE rb_str_dump(VALUE str); + +/** + * Divides the given string based on the given delimiter. This is the + * 1-argument 0-block version of `String#split`. + * + * @param[in] str Object in question to split. + * @param[in] delim Delimiter, in C string. + * @exception rb_eTypeError `str` has no implicit conversion to String. + * @exception rb_eArgError `delim` is a null pointer. + * @return An array of strings, which are substrings of the passed `str`. + * If `delim` is an empty C string (i.e. `""`), `str` is split into + * each characters. If `delim` is a C string whose sole content is + * a whitespace (i.e. `" "`), `str` is split on whitespaces, with + * leading and trailing whitespace and runs of contiguous + * whitespace characters ignored. Otherwise, `str` is split + * according to `delim`. + */ +VALUE rb_str_split(VALUE str, const char *delim); + +/** + * This is a ::rb_gvar_setter_t that refutes non-string assignments. + * + * @exception rb_eTypeError Passed something non-string. + */ +rb_gvar_setter_t rb_str_setter; + +/* symbol.c */ + +/** + * Identical to rb_to_symbol(), except it assumes the receiver being an + * instance of ::RString. + * + * @param[in] str The name of the id. + * @exception rb_eRuntimeError Too many symbols. + * @return A (possibly new) id whose value is the given `str`. + * @pre `str` must not be any arbitrary object except ::RString. + * @note These days Ruby internally has two kinds of symbols + * (static/dynamic). Symbols created using this function would + * become dynamic ones; i.e. would be garbage collected. It could + * be safer for you to use it than alternatives, when applicable. + */ +VALUE rb_str_intern(VALUE str); + +/* string.c */ + +/** + * This is an rb_sym2str() + rb_str_dup() combo. + * + * @param[in] sym A symbol to query. + * @return A string duplicating the symbol's backend storage. + * + * @internal + * + * This function causes SEGV when the passed value is a static symbol that + * doesn't exist. + */ +VALUE rb_sym_to_s(VALUE sym); + +/** + * Counts the number of characters (not bytes) that are stored inside of the + * given string. This of course depends on its encoding. Also this function + * generally runs in O(n), because for instance you have to scan the entire + * string to know how many characters are there in a UTF-8 string. + * + * @param[in] str Target string to query. + * @return Its number of characters. + */ +long rb_str_strlen(VALUE str); + +/** + * Identical to rb_str_strlen(), except it returns the value in ::rb_cInteger. + * + * @param[in] str Target string to query. + * @return Its number of characters. + */ +VALUE rb_str_length(VALUE); + +/** + * "Inverse" of rb_str_sublen(). This function scans the contents to find the + * byte index that matches the character index. Generally speaking this is an + * `O(n)` operation. Could be slow. + * + * @param[in] str The string to scan. + * @param[in] pos Offset, in characters. + * @return Offset, in bytes. + */ +long rb_str_offset(VALUE str, long pos); + +RBIMPL_ATTR_PURE() +/** + * Queries the capacity of the given string. + * + * @see ::RString::capa + * @param[in] str String in question. + * @return Its capacity. + */ +size_t rb_str_capacity(VALUE str); + +/** + * Shortens `str` and adds three dots, an ellipsis, if it is longer than `len` + * characters. The length of the returned string in characters is less than or + * equal to `len`. If the length of `str` is less than or equal `len`, returns + * `str` itself. The encoding of returned string is equal to that of passed + * one. The class of returned string is equal to that of passed one. + * + * @param[in] str The string to shorten. + * @param[in] len The maximum string length. + * @exception rb_eIndexError `len` is negative. + * @retval str No need to add ellipsis. + * @retval otherwise A new, shortened string. + * @note The length is counted in characters. + */ +VALUE rb_str_ellipsize(VALUE str, long len); + +/** + * "Cleanses" the string. A string has its encoding and its contents. They, + * in practice, do not always fit. There are strings in the wild that are + * "broken"; include bit patterns that are not allowed by its encoding. That + * can happen when a user copy&pasted something bad, network input got + * clobbered by a middleman, cosmic rays hit the physical memory, and many more + * occasions. This function takes such strings, and fills the "broken" portion + * with the passed replacement bit pattern. + * + * This function also takes a ruby block. That is a neat way to do things, but + * can be annoying when the caller function want to use a block for another + * purpose. + * + * @param[in] str Target string to scrub. + * @param[in] repl Replacement string. When it is a string, + * this function takes that as a replacement. + * When it is ::RUBY_Qnil, this function tries + * to yield a block (if any) and takes its + * evaluated value as a replacement. In case + * of ::RUBY_Qnil without a block, this + * function takes an encoding-specific default + * character (`U+FFFD`, for instance) as a last + * resort. + * @exception rb_eTypeError `repl` is neither string nor nil. + * @exception rb_eArgError `repl` itself is broken. + * @exception rb_eEncCompatError `repl` and `str` are incompatible. + * @retval RUBY_Qnil `str` is already clean. + * @retval otherwise A new, clean string. + */ +VALUE rb_str_scrub(VALUE str, VALUE repl); + +/** + * Searches for the "successor" of a string. This function is complicated! + * This is the only function in the entire ruby API (either C or Ruby) that + * generates a string out of thin air. First, the successor to an empty string + * is a new empty string: + * + * ```ruby + * ''.succ # => "" + * ``` + * + * Otherwise the successor is calculated by "incrementing" characters. The + * first character to be incremented is the rightmost alphanumeric: or, if no + * alphanumerics, the rightmost character: + * + * ```ruby + * 'THX1138'.succ # => "THX1139" + * '<>'.succ # => "<>" + * '***'.succ # => '**+' + * ``` + * + * The successor to a digit is another digit, "carrying" to the next-left + * character for a "rollover" from 9 to 0, and prepending another digit if + * necessary: + * + * ```ruby + * '00'.succ # => "01" + * '09'.succ # => "10" + * '99'.succ # => "100" + * '-9'.succ # => "-10" + * ``` + * + * The successor to a letter is another letter of the same case, carrying to + * the next-left character for a rollover, and prepending another same-case + * letter if necessary: + * + * ```ruby + * 'aa'.succ # => "ab" + * 'az'.succ # => "ba" + * 'zz'.succ # => "aaa" + * 'AA'.succ # => "AB" + * 'AZ'.succ # => "BA" + * 'ZZ'.succ # => "AAA" + * ``` + * + * The successor to a non-alphanumeric character is the next character in the + * underlying character set's collating sequence, carrying to the next-left + * character for a rollover, and prepending another character if necessary: + * + * ```ruby + * s = "\u03A1" + * s.succ # => "\u03A3" # There is no such thing like \u03A2. + * s = 255.chr * 3 + * s # => "\xFF\xFF\xFF" + * s.succ # => "\x01\x00\x00\x00" + * ``` + * + * Carrying can occur between and among mixtures of alphanumeric characters: + * + * ```ruby + * s = 'zz99zz99' + * s.succ # => "aaa00aa00" + * s = '99zz99zz' + * s.succ # => "100aa00aa" + * s = '1.9.9' + * s.succ # => "2.0.0" + * ``` + * + * @param[in] orig Predecessor string. + * @return Successor string. + */ +VALUE rb_str_succ(VALUE orig); + +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail. Don't bother. + * + * @param[in] str A C string. + * @return `strlen`, casted to `long`. + */ +static inline long +rbimpl_strlen(const char *str) +{ + return RBIMPL_CAST((long)strlen(str)); +} + +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail. Don't bother. + * + * @param[in] str A C string literal. + * @return Corresponding Ruby string. + */ +static inline VALUE +rbimpl_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_str_new_static(str, len); +} + +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail. Don't bother. + * + * @param[in] str A C string literal. + * @return Corresponding Ruby string. + */ +static inline VALUE +rbimpl_usascii_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_usascii_str_new_static(str, len); +} + +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail. Don't bother. + * + * @param[in] str A C string literal. + * @return Corresponding Ruby string. + */ +static inline VALUE +rbimpl_utf8_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_utf8_str_new_static(str, len); +} + +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail. Don't bother. + * + * @param[in] str A C string literal. + * @return Corresponding Ruby string. + */ +static inline VALUE +rbimpl_external_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_external_str_new(str, len); +} + +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail. Don't bother. + * + * @param[in] str A C string literal. + * @return Corresponding Ruby string. + */ +static inline VALUE +rbimpl_locale_str_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + return rb_locale_str_new(str, len); +} + +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail. Don't bother. + * + * @param[in] str A C string literal. + * @return Corresponding Ruby string. + */ +static inline VALUE +rbimpl_str_buf_new_cstr(const char *str) +{ + long len = rbimpl_strlen(str); + VALUE buf = rb_str_buf_new(len); + return rb_str_buf_cat(buf, str, len); +} + +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail. Don't bother. + * + * @param[out] buf A string buffer. + * @param[in] str A C string literal. + * @return `buf` itself. + */ +static inline VALUE +rbimpl_str_cat_cstr(VALUE buf, const char *str) +{ + long len = rbimpl_strlen(str); + return rb_str_cat(buf, str, len); +} + +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail. Don't bother. + * + * @param[in] exc An exception class. + * @param[in] str A C string literal. + * @return An instance of `exc`. + */ +static inline VALUE +rbimpl_exc_new_cstr(VALUE exc, const char *str) +{ + long len = rbimpl_strlen(str); + return rb_exc_new(exc, str, len); +} + +/** + * Allocates an instance of ::rb_cString. + * + * @param[in] str A memory region of `len` bytes length. + * @param[in] len Length of `ptr`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString, of `len` bytes length, of + * "binary" encoding, whose contents are verbatim copy of `str`. + * @pre At least `len` bytes of continuous memory region shall be + * accessible via `str`. + */ +#define rb_str_new(str, len) \ + ((RBIMPL_CONSTANT_P(str) && \ + RBIMPL_CONSTANT_P(len) ? \ + rb_str_new_static : \ + rb_str_new) ((str), (len))) + +/** + * Identical to #rb_str_new, except it assumes the passed pointer is a pointer + * to a C string. + * + * @param[in] str A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString, of "binary" encoding, whose + * contents are verbatim copy of `str`. + * @pre `str` must not be a null pointer. + */ +#define rb_str_new_cstr(str) \ + ((RBIMPL_CONSTANT_P(str) ? \ + rbimpl_str_new_cstr : \ + rb_str_new_cstr) (str)) + +/** + * Identical to #rb_str_new, except it generates a string of "US ASCII" + * encoding. This is different from rb_external_str_new(), not only for the + * output encoding, but also it doesn't convert the contents. + * + * @param[in] str A memory region of `len` bytes length. + * @param[in] len Length of `str`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString, of `len` bytes length, of + * "US ASCII" encoding, whose contents are verbatim copy of `str`. + */ +#define rb_usascii_str_new(str, len) \ + ((RBIMPL_CONSTANT_P(str) && \ + RBIMPL_CONSTANT_P(len) ? \ + rb_usascii_str_new_static : \ + rb_usascii_str_new) ((str), (len))) + +/** + * Identical to #rb_str_new, except it generates a string of "UTF-8" encoding. + * + * @param[in] str A memory region of `len` bytes length. + * @param[in] len Length of `str`, in bytes, not including the + * terminating NUL character. + * @exception rb_eNoMemError Failed to allocate `len+1` bytes. + * @exception rb_eArgError `len` is negative. + * @return An instance of ::rb_cString, of `len` bytes length, of + * "UTF-8" encoding, whose contents are verbatim copy of `str`. + */ +#define rb_utf8_str_new(str, len) \ + ((RBIMPL_CONSTANT_P(str) && \ + RBIMPL_CONSTANT_P(len) ? \ + rb_utf8_str_new_static : \ + rb_utf8_str_new) ((str), (len))) + +/** + * Identical to #rb_str_new_cstr, except it generates a string of "US ASCII" + * encoding. It can also be seen as a routine Identical to + * #rb_usascii_str_new, except it assumes the passed pointer is a pointer to a + * C string. + * + * @param[in] str A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString, of "US ASCII" encoding, whose + * contents are verbatim copy of `str`. + * @pre `str` must not be a null pointer. + */ +#define rb_usascii_str_new_cstr(str) \ + ((RBIMPL_CONSTANT_P(str) ? \ + rbimpl_usascii_str_new_cstr : \ + rb_usascii_str_new_cstr) (str)) + +/** + * Identical to #rb_str_new_cstr, except it generates a string of "UTF-8" + * encoding. It can also be seen as a routine Identical to #rb_utf8_str_new, + * except it assumes the passed pointer is a pointer to a C string. + * + * @param[in] str A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString, of "UTF-8" encoding, whose contents + * are verbatim copy of `str`. + * @pre `str` must not be a null pointer. + */ +#define rb_utf8_str_new_cstr(str) \ + ((RBIMPL_CONSTANT_P(str) ? \ + rbimpl_utf8_str_new_cstr : \ + rb_utf8_str_new_cstr) (str)) + +/** + * Identical to #rb_str_new_cstr, except it generates a string of "default + * external" encoding. + * + * @param[in] str A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString. In case encoding conversion from + * "default internal" to "default external" is fully defined over + * the given contents, then the return value is a string of + * "default external" encoding, whose contents are the converted + * ones. Otherwise the string is a junk. + * @warning It doesn't raise on a conversion failure and silently ends up in + * a corrupted output. You can know the failure by querying + * `valid_encoding?` of the result object. + * @pre `str` must not be a null pointer. + */ +#define rb_external_str_new_cstr(str) \ + ((RBIMPL_CONSTANT_P(str) ? \ + rbimpl_external_str_new_cstr : \ + rb_external_str_new_cstr) (str)) + +/** + * Identical to #rb_external_str_new_cstr, except it generates a string of + * "locale" encoding instead of "default external". + * + * @param[in] str A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString. In case encoding conversion from + * "default internal" to "locale" is fully defined over the given + * contents, then the return value is a string of "locale" + * encoding, whose contents are the converted ones. Otherwise the + * string is a junk. + * @warning It doesn't raise on a conversion failure and silently ends up in + * a corrupted output. You can know the failure by querying + * `valid_encoding?` of the result object. + * @pre `str` must not be a null pointer. + */ +#define rb_locale_str_new_cstr(str) \ + ((RBIMPL_CONSTANT_P(str) ? \ + rbimpl_locale_str_new_cstr : \ + rb_locale_str_new_cstr) (str)) + +/** + * Identical to #rb_str_new_cstr, except done differently. + * + * @param[in] str A C string. + * @exception rb_eNoMemError Failed to allocate memory. + * @return An instance of ::rb_cString, of "binary" encoding, whose + * contents are verbatim copy of `str`. + * @pre `str` must not be a null pointer. + */ +#define rb_str_buf_new_cstr(str) \ + ((RBIMPL_CONSTANT_P(str) ? \ + rbimpl_str_buf_new_cstr : \ + rb_str_buf_new_cstr) (str)) + +/** + * Identical to rb_str_cat(), except it assumes the passed pointer is a pointer + * to a C string. + * + * @param[out] buf Destination object. + * @param[in] str Contents to append. + * @exception rb_eArgError Result string too big. + * @return The passed `buf`. + * @pre `buf` must not be any arbitrary objects except ::RString. + * @pre `str` must not be a null pointer. + * @post `buf` has the contents of `str` appended. + */ +#define rb_str_cat_cstr(buf, str) \ + ((RBIMPL_CONSTANT_P(str) ? \ + rbimpl_str_cat_cstr : \ + rb_str_cat_cstr) ((buf), (str))) + +/** + * Identical to rb_exc_new(), except it assumes the passed pointer is a pointer + * to a C string. + * + * @param[out] exc A subclass of ::rb_eException. + * @param[in] str Message to raise. + * @return An instance of `exc` whose message is `str`. + * @pre `str` must not be a null pointer. + */ +#define rb_exc_new_cstr(exc, str) \ + ((RBIMPL_CONSTANT_P(str) ? \ + rbimpl_exc_new_cstr : \ + rb_exc_new_cstr) ((exc), (str))) + +#define rb_str_new2 rb_str_new_cstr /**< @old{rb_str_new_cstr} */ +#define rb_str_new3 rb_str_new_shared /**< @old{rb_str_new_shared} */ +#define rb_str_new4 rb_str_new_frozen /**< @old{rb_str_new_frozen} */ +#define rb_str_new5 rb_str_new_with_class /**< @old{rb_str_new_with_class} */ +#define rb_str_buf_new2 rb_str_buf_new_cstr /**< @old{rb_str_buf_new_cstr} */ +#define rb_usascii_str_new2 rb_usascii_str_new_cstr /**< @old{rb_usascii_str_new_cstr} */ +#define rb_str_buf_cat rb_str_cat /**< @alias{rb_str_cat} */ +#define rb_str_buf_cat2 rb_str_cat_cstr /**< @old{rb_usascii_str_new_cstr} */ +#define rb_str_cat2 rb_str_cat_cstr /**< @old{rb_str_cat_cstr} */ + +/** + * Length of a string literal. + * + * @param[in] str A C String literal. + * @return An integer constant expression that represents `str`'s length, + * in bytes, not including the terminating NUL character. + */ +#define rb_strlen_lit(str) (sizeof(str "") - 1) + +/** + * Identical to rb_str_new_static(), except it cannot take string variables. + * + * @param[in] str A C string literal. + * @pre `str` must not be a variable. + * @return An instance of ::rb_cString, of "binary" encoding, whose backend + * storage is the passed C string literal. + * @warning It is a very bad idea to write to a C string literal (often + * immediate SEGV shall occur). Consider return values of this + * function be read-only. + */ +#define rb_str_new_lit(str) rb_str_new_static((str), rb_strlen_lit(str)) + +/** + * Identical to rb_usascii_str_new_static(), except it cannot take string + * variables. + * + * @param[in] str A C string literal. + * @pre `str` must not be a variable. + * @return An instance of ::rb_cString, of "US ASCII" encoding, whose + * backend storage is the passed C string literal. + * @warning It is a very bad idea to write to a C string literal (often + * immediate SEGV shall occur). Consider return values of this + * function be read-only. + */ +#define rb_usascii_str_new_lit(str) rb_usascii_str_new_static((str), rb_strlen_lit(str)) + +/** + * Identical to rb_utf8_str_new_static(), except it cannot take string + * variables. + * + * @param[in] str A C string literal. + * @pre `str` must not be a variable. + * @return An instance of ::rb_cString, of "UTF-8" encoding, whose backend + * storage is the passed C string literal. + * @warning It is a very bad idea to write to a C string literal (often + * immediate SEGV shall occur). Consider return values of this + * function be read-only. + */ +#define rb_utf8_str_new_lit(str) rb_utf8_str_new_static((str), rb_strlen_lit(str)) + +/** + * Identical to rb_enc_str_new_static(), except it cannot take string + * variables. + * + * @param[in] str A C string literal. + * @param[in] enc A pointer to an encoding. + * @pre `str` must not be a variable. + * @return An instance of ::rb_cString, of the passed encoding, whose + * backend storage is the passed C string literal. + * @warning It is a very bad idea to write to a C string literal (often + * immediate SEGV shall occur). Consider return values of this + * function be read-only. + */ +#define rb_enc_str_new_lit(str, enc) rb_enc_str_new_static((str), rb_strlen_lit(str), (enc)) + +#define rb_str_new_literal(str) rb_str_new_lit(str) /**< @alias{rb_str_new_lit} */ +#define rb_usascii_str_new_literal(str) rb_usascii_str_new_lit(str) /**< @alias{rb_usascii_str_new_lit} */ +#define rb_utf8_str_new_literal(str) rb_utf8_str_new_lit(str) /**< @alias{rb_utf8_str_new_lit} */ +#define rb_enc_str_new_literal(str, enc) rb_enc_str_new_lit(str, enc) /**< @alias{rb_enc_str_new_lit} */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_STRING_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/struct.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/struct.h new file mode 100644 index 0000000..312cf44 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/struct.h @@ -0,0 +1,203 @@ +#ifndef RBIMPL_INTERN_STRUCT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_STRUCT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cStruct. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/intern/vm.h" /* rb_alloc_func_t */ +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* struct.c */ + +/** + * Creates an instance of the given struct. + * + * @param[in] klass The class of the instance to allocate. + * @param[in] ... The fields. + * @return Allocated instance of `klass`. + * @pre `klass` must be a subclass of ::rb_cStruct. + * @note Number of variadic arguments must much that of the passed klass' + * fields. + */ +VALUE rb_struct_new(VALUE klass, ...); + +/** + * Defines a struct class. + * + * @param[in] name Name of the class. + * @param[in] ... Arbitrary number of `const char*`, terminated by + * zero. Each of which are the name of fields. + * @exception rb_eNameError `name` is not a constant name. + * @exception rb_eTypeError `name` is already taken. + * @exception rb_eArgError Duplicated field name. + * @return The defined class. + * @post Global toplevel constant `name` is defined. + * @note `name` is allowed to be a null pointer. This function creates + * an anonymous struct class then. + * + * @internal + * + * Not seriously checked but it seems this function does not share its + * implementation with how `Struct.new` is implemented...? + */ +VALUE rb_struct_define(const char *name, ...); + +RBIMPL_ATTR_NONNULL((2)) +/** + * Identical to rb_struct_define(), except it defines the class under the + * specified namespace instead of global toplevel. + * + * @param[out] space Namespace that the defining class shall reside. + * @param[in] name Name of the class. + * @param[in] ... Arbitrary number of `const char*`, terminated by + * zero. Each of which are the name of fields. + * @exception rb_eNameError `name` is not a constant name. + * @exception rb_eTypeError `name` is already taken. + * @exception rb_eArgError Duplicated field name. + * @return The defined class. + * @post `name` is a constant under `space`. + * @note In contrast to rb_struct_define(), it doesn't make any sense to + * pass a null pointer to this function. + */ +VALUE rb_struct_define_under(VALUE space, const char *name, ...); + +/** + * Identical to rb_struct_new(), except it takes the field values as a Ruby + * array. + * + * @param[in] klass The class of the instance to allocate. + * @param[in] values Field values. + * @return Allocated instance of `klass`. + * @pre `klass` must be a subclass of ::rb_cStruct. + * @pre `values` must be an instance of struct ::RArray. + */ +VALUE rb_struct_alloc(VALUE klass, VALUE values); + +/** + * Mass-assigns a struct's fields. + * + * @param[out] self An instance of a struct class to squash. + * @param[in] values New values. + * @return ::RUBY_Qnil. + */ +VALUE rb_struct_initialize(VALUE self, VALUE values); + +/** + * Identical to rb_struct_aref(), except it takes ::ID instead of ::VALUE. + * + * @param[in] self An instance of a struct class. + * @param[in] key Key to query. + * @exception rb_eTypeError `self` is not a struct. + * @exception rb_eNameError No such field. + * @return The value stored at `key` in `self`. + */ +VALUE rb_struct_getmember(VALUE self, ID key); + +/** + * Queries the list of the names of the fields of the given struct class. + * + * @param[in] klass A subclass of ::rb_cStruct. + * @return The list of the names of the fields of `klass`. + */ +VALUE rb_struct_s_members(VALUE klass); + +/** + * Queries the list of the names of the fields of the class of the given struct + * object. This is almost the same as calling rb_struct_s_members() over the + * class of the receiver. + * + * @internal + * + * "Almost"? What exactly is the difference? + * + * @endinternal + * + * @param[in] self An instance of a subclass of ::rb_cStruct. + * @return The list of the names of the fields. + */ +VALUE rb_struct_members(VALUE self); + +/** + * Allocates an instance of the given class. This consequential name is of + * course because rb_struct_alloc() not only allocates but also initialises an + * instance. The API design is broken. + * + * @param[in] klass A subclass of ::rb_cStruct. + * @return An allocated instance of `klass`, not initialised. + */ +VALUE rb_struct_alloc_noinit(VALUE klass); + +/** + * Identical to rb_struct_define(), except it does not define accessor methods. + * You have to define them yourself. Forget about the allocator function + * parameter; it is for internal use only. Extension libraries are unable to + * properly allocate a ruby struct, because `RStruct` is opaque. + * + * @internal + * + * Several flags must be set up properly for ::RUBY_T_STRUCT objects, which are + * also missing for extension libraries. + * + * @endinternal + * + * @param[in] name Name of the class. + * @param[in] super Superclass of the defining class. + * @param[in] func Must be 0 for extension libraries. + * @param[in] ... Arbitrary number of `const char*`, terminated by + * zero. Each of which are the name of fields. + * @exception rb_eNameError `name` is not a constant name. + * @exception rb_eTypeError `name` is already taken. + * @exception rb_eArgError Duplicated field name. + * @return The defined class. + * @post Global toplevel constant `name` is defined. + * @note `name` is allowed to be a null pointer. This function creates + * an anonymous struct class then. + */ +VALUE rb_struct_define_without_accessor(const char *name, VALUE super, rb_alloc_func_t func, ...); + +RBIMPL_ATTR_NONNULL((2)) +/** + * Identical to rb_struct_define_without_accessor(), except it defines the + * class under the specified namespace instead of global toplevel. It can also + * be seen as a routine identical to rb_struct_define_under(), except it does + * not define accessor methods. + * + * @param[out] outer Namespace that the defining class shall reside. + * @param[in] class_name Name of the class. + * @param[in] super Superclass of the defining class. + * @param[in] alloc Must be 0 for extension libraries. + * @param[in] ... Arbitrary number of `const char*`, terminated by + * zero. Each of which are the name of fields. + * @exception rb_eNameError `class_name` is not a constant name. + * @exception rb_eTypeError `class_name` is already taken. + * @exception rb_eArgError Duplicated field name. + * @return The defined class. + * @post `class_name` is a constant under `outer`. + * @note In contrast to rb_struct_define_without_accessor(), it doesn't + * make any sense to pass a null name. + */ +VALUE rb_struct_define_without_accessor_under(VALUE outer, const char *class_name, VALUE super, rb_alloc_func_t alloc, ...); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_STRUCT_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/thread.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/thread.h new file mode 100644 index 0000000..716375a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/thread.h @@ -0,0 +1,492 @@ +#ifndef RBIMPL_INTERN_THREAD_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_THREAD_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cThread. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/config.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +struct timeval; + +/* thread.c */ + +/** + * Tries to switch to another thread. This function blocks until the current + * thread re-acquires the GVL. + * + * @exception rb_eInterrupt Operation interrupted. + */ +void rb_thread_schedule(void); + +/** + * Blocks the current thread until the given file descriptor is ready to be + * read. + * + * @param[in] fd A file descriptor. + * @exception rb_eIOError Closed stream. + * @exception rb_eSystemCallError Situations like EBADF. + */ +int rb_thread_wait_fd(int fd); + +/** + * Identical to rb_thread_wait_fd(), except it blocks the current thread until + * the given file descriptor is ready to be written. + * + * @param[in] fd A file descriptor. + * @exception rb_eIOError Closed stream. + * @exception rb_eSystemCallError Situations like EBADF. + */ +int rb_thread_fd_writable(int fd); + +/** + * Notifies a closing of a file descriptor to other threads. Multiple threads + * can wait for the given file descriptor at once. If such file descriptor is + * closed, threads need to start propagating their exceptions. This is the API + * to kick that process. + * + * @param[in] fd A file descriptor. + * @note This function blocks until all the threads waiting for such fd + * have woken up. + */ +void rb_thread_fd_close(int fd); + +/** + * Checks if the thread this function is running is the only thread that is + * currently alive. + * + * @retval 1 Yes it is. + * @retval 0 No it isn't. + * + * @internal + * + * Above description is in fact inaccurate. There are Ractors these days. + */ +int rb_thread_alone(void); + +/** + * Blocks for the given period of time. + * + * @warning This function can be interrupted by signals. + * @param[in] sec Duration in seconds. + * @exception rb_eInterrupt Interrupted. + */ +void rb_thread_sleep(int sec); + +/** + * Blocks indefinitely. + * + * @exception rb_eInterrupt Interrupted. + */ +void rb_thread_sleep_forever(void); + +/** + * Identical to rb_thread_sleep_forever(), except the thread calling this + * function is considered "dead" when our deadlock checker is triggered. + * + * @exception rb_eInterrupt Interrupted. + */ +void rb_thread_sleep_deadly(void); + +/** + * Stops the current thread. This is not the end of the thread's lifecycle. A + * stopped thread can later be woken up. + * + * @exception rb_eThreadError Stopping this thread would deadlock. + * @retval ::RUBY_Qnil Always. + * + * @internal + * + * The return value makes no sense at all. + */ +VALUE rb_thread_stop(void); + +/** + * Marks a given thread as eligible for scheduling. + * + * @note It may still remain blocked on I/O. + * @note This does not invoke the scheduler itself. + * + * @param[out] thread Thread in question to wake up. + * @exception rb_eThreadError Stop flogging a dead horse. + * @return The passed thread. + * @post The passed thread is made runnable. + */ +VALUE rb_thread_wakeup(VALUE thread); + +/** + * Identical to rb_thread_wakeup(), except it doesn't raise on an already + * killed thread. + * + * @param[out] thread A thread to wake up. + * @retval RUBY_Qnil `thread` is already killed. + * @retval otherwise `thread` is alive. + * @post The passed thread is made runnable, unless killed. + */ +VALUE rb_thread_wakeup_alive(VALUE thread); + +/** + * This is a rb_thread_wakeup() + rb_thread_schedule() combo. + * + * @note There is no guarantee that this function yields to the passed + * thread. It may still remain blocked on I/O. + * @param[out] thread Thread in question to wake up. + * @exception rb_eThreadError Stop flogging a dead horse. + * @return The passed thread. + */ +VALUE rb_thread_run(VALUE thread); + +/** + * Terminates the given thread. Unlike a stopped thread, a killed thread could + * never be revived. This function does return, when passed e.g. an already + * killed thread. But if the passed thread is the only one, or a special + * thread called "main", then it also terminates the entire process. + * + * @param[out] thread The thread to terminate. + * @exception rb_eFatal The passed thread is the running thread. + * @exception rb_eSystemExit The passed thread is the last thread. + * @return The passed thread. + * @post Either the passed thread, or the process entirely, is killed. + * + * @internal + * + * It seems killing the main thread also kills the entire process even if there + * are multiple running ractors. No idea why. + */ +VALUE rb_thread_kill(VALUE thread); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Creates a Ruby thread that is backended by a C function. + * + * @param[in] f The function to run on a thread. + * @param[in,out] g Passed through to `f`. + * @exception rb_eThreadError Could not create a ruby thread. + * @exception rb_eSystemCallError Situations like `EPERM`. + * @return Allocated instance of ::rb_cThread. + * @note This doesn't wait for anything. + */ +VALUE rb_thread_create(VALUE (*f)(void *g), void *g); + +/** + * Identical to rb_thread_sleep(), except it takes struct `timeval` instead. + * + * @warning This function can be interrupted by signals. + * @param[in] time Duration. + * @exception rb_eInterrupt Interrupted. + */ +void rb_thread_wait_for(struct timeval time); + +/** + * Obtains the "current" thread. + * + * @return The current thread of the current ractor of the current execution + * context. + * @pre This function must be called from a thread controlled by ruby. + */ +VALUE rb_thread_current(void); + +/** + * Obtains the "main" thread. There are threads called main. Historically the + * (only) main thread was the one which runs when the process boots. Now that + * we have Ractor, there are more than one main threads. + * + * @return The main thread of the current ractor of the current execution + * context. + * @pre This function must be called from a thread controlled by ruby. + */ +VALUE rb_thread_main(void); + +/** + * This badly named function reads from a Fiber local storage. When this + * function was born there was no such thing like a Fiber. The world was + * innocent. But now... This is a Fiber local storage. Sorry. + * + * @param[in] thread Thread that the target Fiber is running. + * @param[in] key The name of the Fiber local storage to read. + * @retval RUBY_Qnil No such storage. + * @retval otherwise The value stored at `key`. + * @note There in fact are "true" thread local storage, but Ruby doesn't + * provide any interface of them to you, C programmers. + */ +VALUE rb_thread_local_aref(VALUE thread, ID key); + +/** + * This badly named function writes to a Fiber local storage. When this + * function was born there was no such thing like a Fiber. The world was + * innocent. But now... This is a Fiber local storage. Sorry. + * + * @param[in] thread Thread that the target Fiber is running. + * @param[in] key The name of the Fiber local storage to write. + * @param[in] val The new value of the storage. + * @exception rb_eFrozenError `thread` is frozen. + * @return The passed `val` as-is. + * @post Fiber local storage `key` has value of `val`. + * @note There in fact are "true" thread local storage, but Ruby doesn't + * provide any interface of them to you, C programmers. + */ +VALUE rb_thread_local_aset(VALUE thread, ID key, VALUE val); + +/** + * A `pthread_atfork(3posix)`-like API. Ruby expects its child processes to + * call this function at the very beginning of their processes. If you plan to + * fork a process don't forget to call it. + */ +void rb_thread_atfork(void); + +/** + * :FIXME: situation of this function is unclear. It seems nobody uses it. + * Maybe a good idea to KonMari. + */ +void rb_thread_atfork_before_exec(void); + +/** + * "Recursion" API entry point. This basically calls the given function with + * the given arguments, but additionally with recursion flag. The flag is set + * to 1 if the execution have already experienced the passed `g` parameter + * before. + * + * @param[in] f The function that possibly recurs. + * @param[in,out] g Passed as-is to `f`. + * @param[in,out] h Passed as-is to `f`. + * @return The return value of f. + */ +VALUE rb_exec_recursive(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE h); + +/** + * Identical to rb_exec_recursive(), except it checks for the recursion on the + * ordered pair of `{ g, p }` instead of just `g`. + * + * @param[in] f The function that possibly recurs. + * @param[in,out] g Passed as-is to `f`. + * @param[in] p Paired object for recursion detection. + * @param[in,out] h Passed as-is to `f`. + */ +VALUE rb_exec_recursive_paired(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE p, VALUE h); + +/** + * Identical to rb_exec_recursive(), except it calls `f` for outermost + * recursion only. Inner recursions yield calls to rb_throw_obj(). + * + * @param[in] f The function that possibly recurs. + * @param[in,out] g Passed as-is to `f`. + * @param[in,out] h Passed as-is to `f`. + * @return The return value of f. + * + * @internal + * + * It seems nobody uses the "it calls rb_throw_obj()" part of this function. + * @shyouhei doesn't understand the needs. + */ +VALUE rb_exec_recursive_outer(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE h); + +/** + * Identical to rb_exec_recursive_outer(), except it checks for the recursion + * on the ordered pair of `{ g, p }` instead of just `g`. It can also be seen + * as a routine identical to rb_exec_recursive_paired(), except it calls `f` + * for outermost recursion only. Inner recursions yield calls to + * rb_throw_obj(). + * + * @param[in] f The function that possibly recurs. + * @param[in,out] g Passed as-is to `f`. + * @param[in] p Paired object for recursion detection. + * @param[in,out] h Passed as-is to `f`. + * + * @internal + * + * It seems nobody uses the "it calls rb_throw_obj()" part of this function. + * @shyouhei doesn't understand the needs. + */ +VALUE rb_exec_recursive_paired_outer(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE p, VALUE h); + +/** + * This is the type of UBFs. An UBF is a function that unblocks a blocking + * region. For instance when a thread is blocking due to `pselect(3posix)`, it + * is highly expected that `pthread_kill(3posix)` can interrupt the system call + * and the thread could revive. Or when a thread is blocking due to + * `waitpid(3posix)`, it is highly expected that killing the waited process + * should suffice. An UBF is a function that does such things. Designing your + * own UBF needs deep understanding of why your blocking region blocks, how + * threads work in ruby, and a matter of luck. It often is the case you simply + * cannot cancel something that had already begun. + * + * @see rb_thread_call_without_gvl() + */ +typedef void rb_unblock_function_t(void *); + +/** + * @private + * + * This is an implementation detail. Must be a mistake to be here. + * + * @internal + * + * Why is this function type different from what rb_thread_call_without_gvl() + * takes? + */ +typedef VALUE rb_blocking_function_t(void *); + +/** + * Checks for interrupts. In ruby, signals are masked by default. You can + * call this function at will to check if there are pending signals. In case + * there are, they would be handled in this function. + * + * If your extension library has a function that takes a long time, consider + * calling it periodically. + * + * @note It might switch to another thread. + */ +void rb_thread_check_ints(void); + +/** + * Checks if the thread's execution was recently interrupted. If called from + * that thread, this function can be used to detect spurious wake-ups. + * + * @param[in] thval Thread in question. + * @retval 0 The thread was not interrupted. + * @retval otherwise The thread was interrupted recently. + * + * @internal + * + * Above description is not a lie. But actually the return value is an opaque + * trap vector. If you know which bit means which, you can know what happened. + */ +int rb_thread_interrupted(VALUE thval); + +/** + * A special UBF for blocking IO operations. You need deep understanding of + * what this actually do before using. Basically you should not use it from + * extension libraries. It is too easy to mess up. + */ +#define RUBY_UBF_IO RBIMPL_CAST((rb_unblock_function_t *)-1) + +/** + * A special UBF for blocking process operations. You need deep understanding + * of what this actually do before using. Basically you should not use it from + * extension libraries. It is too easy to mess up. + */ +#define RUBY_UBF_PROCESS RBIMPL_CAST((rb_unblock_function_t *)-1) + +/* thread_sync.c */ + +/** + * Creates a mutex. + * + * @return An allocated instance of rb_cMutex. + */ +VALUE rb_mutex_new(void); + +/** + * Queries if there are any threads that holds the lock. + * + * @param[in] mutex The mutex in question. + * @retval RUBY_Qtrue The mutex is locked by someone. + * @retval RUBY_Qfalse The mutex is not locked by anyone. + */ +VALUE rb_mutex_locked_p(VALUE mutex); + +/** + * Attempts to lock the mutex, without waiting for other threads to unlock it. + * Failure in locking the mutex can be detected by the return value. + * + * @param[out] mutex The mutex to lock. + * @retval RUBY_Qtrue Successfully locked by the current thread. + * @retval RUBY_Qfalse Otherwise. + * @note This function also returns ::RUBY_Qfalse when the mutex is + * already owned by the calling thread itself. + */ +VALUE rb_mutex_trylock(VALUE mutex); + +/** + * Attempts to lock the mutex. It waits until the mutex gets available. + * + * @param[out] mutex The mutex to lock. + * @exception rb_eThreadError Recursive deadlock situation. + * @return The passed mutex. + * @post The mutex is owned by the current thread. + */ +VALUE rb_mutex_lock(VALUE mutex); + +/** + * Releases the mutex. + * + * @param[out] mutex The mutex to unlock. + * @exception rb_eThreadError The mutex is not owned by the current thread. + * @return The passed mutex. + * @post Upon successful return the passed mutex is no longer owned by + * the current thread. + */ +VALUE rb_mutex_unlock(VALUE mutex); + +/** + * Releases the lock held in the mutex and waits for the period of time; + * reacquires the lock on wakeup. + * + * @pre The lock has to be owned by the current thread beforehand. + * @param[out] self The target mutex. + * @param[in] timeout Duration, in seconds, in ::rb_cNumeric. + * @exception rb_eArgError `timeout` is negative. + * @exception rb_eRangeError `timeout` is out of range of `time_t`. + * @exception rb_eThreadError The mutex is not owned by the current thread. + * @return Number of seconds it actually slept. + * @warning It is a failure not to check the return value. This function + * can return spuriously for various reasons. Maybe other threads + * can rb_thread_wakeup(). Maybe an end user can press the + * Control and C key from the interactive console. On the other + * hand it can also take longer than the specified. The mutex + * could be locked by someone else. It waits then. + * @post Upon successful return the passed mutex is owned by the current + * thread. + * + * @internal + * + * This function is called from `ConditionVariable#wait`. So it is not a + * deprecated feature. However @shyouhei have never seen any similar mutex + * primitive available in any other languages than Ruby. + * + * EDIT: In 2021, @shyouhei asked @ko1 in person about this API. He answered + * that it is his invention. The motivation behind its design is to eliminate + * needs of condition variables as primitives. Unlike other languages, Ruby's + * `ConditionVariable` class was written in pure-Ruby initially. We don't have + * to implement machine-native condition variables in assembly each time we + * port Ruby to a new architecture. This function made it possible. "I felt I + * was a genius when this idea came to me", said @ko1. + * + * `rb_cConditionVariable` is now written in C for speed, though. + */ +VALUE rb_mutex_sleep(VALUE self, VALUE timeout); + +/** + * Obtains the lock, runs the passed function, and releases the lock when it + * completes. + * + * @param[out] mutex The mutex to lock. + * @param[in] func What to do during the mutex is locked. + * @param[in,out] arg Passed as-is to `func`. + */ +VALUE rb_mutex_synchronize(VALUE mutex, VALUE (*func)(VALUE arg), VALUE arg); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_THREAD_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/time.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/time.h new file mode 100644 index 0000000..df48286 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/time.h @@ -0,0 +1,161 @@ +#ifndef RBIMPL_INTERN_TIME_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_TIME_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to ::rb_cTime. + */ +#include "ruby/internal/config.h" + +#ifdef HAVE_TIME_H +# include /* for time_t */ +#endif + +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +struct timespec; +struct timeval; + +/* time.c */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Fills the current time into the given struct. + * + * @param[out] ts Return buffer. + * @exception rb_eSystemCallError Access denied for hardware clock. + * @post Current time is stored in `*ts`. + */ +void rb_timespec_now(struct timespec *ts); + +/** + * Creates an instance of ::rb_cTime with the given time and the local + * timezone. + * + * @param[in] sec Seconds since the UNIX epoch. + * @param[in] usec Subsecond part, in microseconds resolution. + * @exception rb_eRangeError Cannot express the time. + * @return An allocated instance of ::rb_cTime. + */ +VALUE rb_time_new(time_t sec, long usec); + +/** + * Identical to rb_time_new(), except it accepts the time in nanoseconds + * resolution. + * + * @param[in] sec Seconds since the UNIX epoch. + * @param[in] nsec Subsecond part, in nanoseconds resolution. + * @exception rb_eRangeError Cannot express the time. + * @return An allocated instance of ::rb_cTime. + */ +VALUE rb_time_nano_new(time_t sec, long nsec); + +RBIMPL_ATTR_NONNULL(()) +/** + * Creates an instance of ::rb_cTime, with given time and offset. + * + * @param[in] ts Time specifier. + * @param[in] offset Offset specifier, can take following values: + * - `INT_MAX`: `ts` is in local time. + * - `INT_MAX - 1`: `ts` is in UTC. + * - `-86400` to `86400`: fixed timezone. + * @exception rb_eArgError Malformed `offset`. + * @return An allocated instance of ::rb_cTime. + */ +VALUE rb_time_timespec_new(const struct timespec *ts, int offset); + +/** + * Identical to rb_time_timespec_new(), except it takes Ruby values instead of + * C structs. + * + * @param[in] timev Something numeric. Currently Integers, Rationals, + * and Floats are accepted. + * @param[in] off Offset specifier. As of 2.7 this argument is + * heavily extended to take following kinds of + * objects: + * - ::RUBY_Qundef ... means UTC. + * - ::rb_cString ... "+12:34" etc. + * - A mysterious "zone" object. This is largely + * undocumented. However the initial intent was + * that we want to accept + * `ActiveSupport::TimeZone` here. Other gems + * could also be possible... But how to make an + * acceptable class is beyond this document. + * @exception rb_eArgError Malformed `off`. + * @return An allocated instance of ::rb_cTime. + */ +VALUE rb_time_num_new(VALUE timev, VALUE off); + +/** + * Creates a "time interval". This basically converts an instance of + * ::rb_cNumeric into a struct `timeval`, but for instance negative time + * interval must not exist. + * + * @param[in] num An instance of ::rb_cNumeric. + * @exception rb_eArgError `num` is negative. + * @exception rb_eRangeError `num` is out of range of `timeval::tv_sec`. + * @return A struct that represents the identical time to `num`. + */ +struct timeval rb_time_interval(VALUE num); + +/** + * Converts an instance of rb_cTime to a struct timeval that represents the + * identical point of time. It can also take something numeric; would consider + * it as a UNIX time then. + * + * @param[in] time Instance of either ::rb_cTime or ::rb_cNumeric. + * @exception rb_eRangeError `time` is out of range of `timeval::tv_sec`. + * @return A struct that represents the identical time to `num`. + */ +struct timeval rb_time_timeval(VALUE time); + +/** + * Identical to rb_time_timeval(), except for return type. + * + * @param[in] time Instance of either ::rb_cTime or ::rb_cNumeric. + * @exception rb_eRangeError `time` is out of range of `timeval::tv_sec`. + * @return A struct that represents the identical time to `num`. + */ +struct timespec rb_time_timespec(VALUE time); + +/** + * Identical to rb_time_interval(), except for return type. + * + * @param[in] num An instance of ::rb_cNumeric. + * @exception rb_eArgError `num` is negative. + * @exception rb_eRangeError `num` is out of range of `timespec::tv_sec`. + * @return A struct that represents the identical time to `num`. + */ +struct timespec rb_time_timespec_interval(VALUE num); + +/** + * Queries the offset, in seconds between the time zone of the time and the + * UTC. + * + * @param[in] time An instance of ::rb_cTime. + * @return Numeric offset. + */ +VALUE rb_time_utc_offset(VALUE time); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_TIME_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/variable.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/variable.h new file mode 100644 index 0000000..479c395 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/variable.h @@ -0,0 +1,628 @@ +#ifndef RBIMPL_INTERN_VARIABLE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_VARIABLE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to names inside of a Ruby program. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/st.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* variable.c */ + +/** + * Queries the name of a module. + * + * @param[in] mod An instance of ::rb_cModule. + * @retval RUBY_Qnil `mod` is anonymous. + * @retval otherwise `mod` is onymous. + */ +VALUE rb_mod_name(VALUE mod); + +/** + * Identical to rb_mod_name(), except it returns `#` style + * inspection for anonymous modules. + * + * @param[in] mod An instance of ::rb_cModule. + * @return An instance of ::rb_cString representing `mod`'s path. + */ +VALUE rb_class_path(VALUE mod); + +/** + * @alias{rb_mod_name} + * + * @internal + * + * Am I missing something? Why we have the same thing in different names? + */ +VALUE rb_class_path_cached(VALUE mod); + +RBIMPL_ATTR_NONNULL(()) +/** + * Names a class. + * + * @param[out] klass Target module to name. + * @param[out] space Namespace that `klass` shall reside. + * @param[in] name Name of `klass`. + * @post `klass` has `space::klass` name. + */ +void rb_set_class_path(VALUE klass, VALUE space, const char *name); + +/** + * Identical to rb_set_class_path(), except it accepts the name as Ruby's + * string instead of C's. + * + * @param[out] klass Target module to name. + * @param[out] space Namespace that `klass` shall reside. + * @param[in] name Name of `klass`. + * @post `klass` has `space::klass` name. + */ +void rb_set_class_path_string(VALUE klass, VALUE space, VALUE name); + +/** + * Identical to rb_path2class(), except it accepts the path as Ruby's string + * instead of C's. + * + * @param[in] path Path to query. + * @exception rb_eArgError No such constant. + * @exception rb_eTypeError The path resolved to a non-module. + * @return Resolved class. + */ +VALUE rb_path_to_class(VALUE path); + +RBIMPL_ATTR_NONNULL(()) +/** + * Resolves a `Q::W::E::R`-style path string to the actual class it points. + * + * @param[in] path Path to query. + * @exception rb_eArgError No such constant. + * @exception rb_eTypeError The path resolved to a non-module. + * @return Resolved class. + */ +VALUE rb_path2class(const char *path); + +/** + * Queries the name of the given object's class. + * + * @param[in] obj Arbitrary object. + * @return An instance of ::rb_cString representing `obj`'s class' path. + */ +VALUE rb_class_name(VALUE obj); + +/** + * Kicks the autoload procedure as if it was "touched". + * + * @param[out] space Namespace where autoload is defined. + * @param[in] name Name of the autoloaded constant. + * @retval RUBY_Qfalse No such autoload. + * @retval RUBY_Qtrue Autoload successfully initiated. + * @note As an autoloaded library is expected to define `space::name`, + * it is a nature of this function to have process-global side + * effects. + * @note Multiple threads can simultaneously call this API. It blocks + * then. That must not last indefinitely but can take longer than + * you expect. + * + * @internal + * + * @shyouhei has no idea why extension libraries should use this API. + */ +VALUE rb_autoload_load(VALUE space, ID name); + +/** + * Queries if an autoload is defined at a point. + * + * @param[in] space Namespace where autoload is defined. + * @param[in] name Name of the autoloaded constant. + * @retval RUBY_Qnil No such autoload. + * @retval otherwise The feature (path) registered at `space::name`. + */ +VALUE rb_autoload_p(VALUE space, ID name); + +/** + * Traces a global variable. + * + * @param[in] argc Either 1 or 2. + * @param[in] argv Variable name, optionally a Proc. + * @retval RUBY_Qnil No previous tracers. + * @retval otherwise Previous tracers. + * + * @internal + * + * @shyouhei has no idea why extension libraries should use this API. + */ +VALUE rb_f_trace_var(int argc, const VALUE *argv); + +/** + * Deletes the passed tracer from the passed global variable, or if omitted, + * deletes everything. + * + * @param[in] argc Either 1 or 2. + * @param[in] argv Variable name, optionally a Proc. + * @retval RUBY_Qnil No previous tracers. + * @retval otherwise Deleted tracers. + * + * @internal + * + * @shyouhei has no idea why extension libraries should use this API. + */ +VALUE rb_f_untrace_var(int argc, const VALUE *argv); + +/** + * Queries the list of global variables. + * + * @return The list of the name of the global variables. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +VALUE rb_f_global_variables(void); + +/** + * Aliases a global variable. Did you know that you can alias a global + * variable? It is like aliasing methods: + * + * ```ruby + * alias $dst $src + * ``` + * + * This C function does the same thing. + * + * @param[in] dst Destination name. + * @param[in] src Source name. + * @post A global variable named `dst` is defined to be an alias of a + * global variable named `src`. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +void rb_alias_variable(ID dst, ID src); + +/** + * Frees the list of instance variables. 3rd parties need not know, but there + * are several ways to store an object's instance variables, depending on its + * internal structure. This function makes sense when the passed objects is + * using so-called "generic" backend storage. People need not be aware of this + * working behind-the-scenes. + * + * @param[out] obj The object in question. + * + * @internal + * + * This just destroys the given object. @shyouhei has no idea why extension + * libraries should use this API. + */ +void rb_free_generic_ivar(VALUE obj); + +/** + * Identical to rb_iv_get(), except it accepts the name as an ::ID instead of a + * C string. + * + * @param[in] obj Target object. + * @param[in] name Target instance variable to query. + * @retval RUBY_nil No such instance variable. + * @retval otherwise The value assigned to the instance variable. + */ +VALUE rb_ivar_get(VALUE obj, ID name); + +/** + * Identical to rb_iv_set(), except it accepts the name as an ::ID instead of a + * C string. + * + * @param[out] obj Target object. + * @param[in] name Target instance variable. + * @param[in] val Value to assign. + * @exception rb_eFrozenError Can't modify `obj`. + * @exception rb_eArgError `obj` has too many instance variables. + * @return Passed value. + * @post An instance variable named `name` is defined if absent on + * `obj`, whose value is set to `val`. + */ +VALUE rb_ivar_set(VALUE obj, ID name, VALUE val); + +/** + * Queries if the instance variable is defined at the object. This roughly + * resembles `defined?(@name)` in `obj`'s context. + * + * @param[in] obj Target object. + * @param[in] name Target instance variable to query. + * @retval RUBY_Qtrue There is an instance variable. + * @retval RUBY_Qfalse No such instance variable. + */ +VALUE rb_ivar_defined(VALUE obj, ID name); + +/** + * Iterates over an object's instance variables. + * + * @param[in] obj Target object. + * @param[in] func Callback function. + * @param[in] arg Passed as-is to the last argument of `func`. + */ +void rb_ivar_foreach(VALUE obj, int (*func)(ID name, VALUE val, st_data_t arg), st_data_t arg); + +/** + * Number of instance variables defined on an object. + * + * @param[in] obj Target object. + * @return Number of instance variables defined on `obj`. + */ +st_index_t rb_ivar_count(VALUE obj); + +/** + * Identical to rb_ivar_get() + * + * @param[in] obj Target object. + * @param[in] name Target instance variable to query. + * @retval RUBY_nil No such instance variable. + * @retval otherwise The value assigned to the instance variable. + * + * @internal + * + * Am I missing something? Why we have the same thing in different names? + */ +VALUE rb_attr_get(VALUE obj, ID name); + +/** + * Resembles `Object#instance_variables`. + * + * @param[in] obj Target object to query. + * @return An array of instance variable names for the receiver. + * @note Simply defining an accessor does not create the corresponding + * instance variable. + */ +VALUE rb_obj_instance_variables(VALUE obj); + +/** + * Resembles `Object#remove_instance_variable`. + * + * @param[out] obj Target object. + * @param[in] name Variable name to remove, either in Symbol or String. + * @return What was removed. + * @pre Instance variable named `name` is deleted from `obj`. + */ +VALUE rb_obj_remove_instance_variable(VALUE obj, VALUE name); + +/** + * This API is mysterious. It has been there since the initial revision. No + * single bits of documents has ever been written. The function name doesn't + * describe anything. What should be passed to the argument, or what should be + * the return value, are not obvious. Yet it has evolved over time. The + * source code is written in counter-intuitive way (as of 3.0). + * + * Simply put, don't try to understand this API. + */ +void *rb_mod_const_at(VALUE, void*); + +/** + * This is a variant of rb_mod_const_at(). As a result, it is also mysterious. + * It _seems_ it iterates over the ancestry tree of the module. But what that + * means is beyond a human brain. + */ +void *rb_mod_const_of(VALUE, void*); + +/** + * This is another mysterious API that comes with no documents at all. It + * seems it expects some specific data structure for the passed pointer. But + * the details has never been made explicit. It seems nobody should use this + * API. + */ +VALUE rb_const_list(void*); + +/** + * Resembles `Module#constants`. List up the constants defined at the + * receiver. This includes the names of constants in any included modules, + * unless `argv[0]` is ::RUBY_Qfalse. + * + * The implementation makes no guarantees about the order in which the + * constants are yielded. + * + * @param[in] argc Either 0 or 1. + * @param[in] argv Pointer to ::RUBY_Qfalse, if `argc == 1`. + * @param[in] recv Target namespace. + * @return An array of symbols, which are constant names under `recv`. + */ +VALUE rb_mod_constants(int argc, const VALUE *argv, VALUE recv); + +/** + * Resembles `Module#remove_const`. + * + * @param[out] space Target namespace. + * @param[in] name Variable name to remove, either in Symbol or String. + * @return What was removed. + * @pre Constant named `space::name` is deleted. + * @note In case what was removed was in fact a module or a class, this + * operation does not affect its name. Which means when people + * for instance look at it using `p` etc., it still introduces + * itself using the deleted name. Can confuse people. + */ +VALUE rb_mod_remove_const(VALUE space, VALUE name); + +/** + * Queries if the constant is defined at the namespace. + * + * @param[in] space Target namespace. + * @param[in] name Target name to query. + * @retval RUBY_Qtrue There is a constant. + * @retval RUBY_Qfalse No such constant. + * + * @internal + * + * The return values are not typo! This function returns ruby values casted to + * `int`. Completely brain-damaged design. + */ +int rb_const_defined(VALUE space, ID name); + +/** + * Identical to rb_const_defined(), except it doesn't look for parent classes. + * For instance `Array` is a toplevel constant, which is visible from + * everywhere. But this function does not take such things into account. It + * concerns only what is directly defined inside of the given namespace. + * + * @param[in] space Target namespace. + * @param[in] name Target name to query. + * @retval RUBY_Qtrue There is a constant. + * @retval RUBY_Qfalse No such constant. + * + * @internal + * + * The return values are not typo! This function returns ruby values casted to + * `int`. Completely brain-damaged design. + */ +int rb_const_defined_at(VALUE space, ID name); + +/** + * Identical to rb_const_defined(), except it returns false for private + * constants. + * + * @param[in] space Target namespace. + * @param[in] name Target name to query. + * @retval RUBY_Qtrue There is a constant. + * @retval RUBY_Qfalse No such constant. + * + * @internal + * + * What does "from" mean? The name sounds quite cryptic. + * + * The return values are not typo! This function returns ruby values casted to + * `int`. Completely brain-damaged design. + */ +int rb_const_defined_from(VALUE space, ID name); + +/** + * Identical to rb_const_defined(), except it returns the actual defined value. + * + * @param[in] space Target namespace. + * @param[in] name Target name to query. + * @exception rb_eNameError No such constant. + * @return The defined constant. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +VALUE rb_const_get(VALUE space, ID name); + +/** + * Identical to rb_const_defined_at(), except it returns the actual defined + * value. It can also be seen as a routine identical to rb_const_get(), except + * it doesn't look for parent classes. + * + * @param[in] space Target namespace. + * @param[in] name Target name to query. + * @exception rb_eNameError No such constant. + * @return The defined constant. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +VALUE rb_const_get_at(VALUE space, ID name); + +/** + * Identical to rb_const_defined_at(), except it returns the actual defined + * value. It can also be seen as a routine identical to rb_const_get(), except + * it doesn't return a private constant. + * + * @param[in] space Target namespace. + * @param[in] name Target name to query. + * @exception rb_eNameError No such constant. + * @return The defined constant. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +VALUE rb_const_get_from(VALUE space, ID name); + +/** + * Names a constant. + * + * @param[out] space Target namespace. + * @param[in] name Target name to query. + * @param[in] val Value to define. + * @exception rb_eTypeError `space` is not a module. + * @post `name` is a constant under `space`, whose value is `val`. + * @note You can reassign. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +void rb_const_set(VALUE space, ID name, VALUE val); + +/** + * Identical to rb_mod_remove_const(), except it takes the name as ::ID instead + * of ::VALUE. + * + * @param[out] space Target namespace. + * @param[in] name Variable name to remove, either in Symbol or String. + * @return What was removed. + * @pre Constant named `space::name` is deleted. + * @note In case what was removed was in fact a module or a class, this + * operation does not affect its name. Which means when people + * for instance look at it using `p` etc., it still introduces + * itself using the deleted name. Can confuse people. + */ +VALUE rb_const_remove(VALUE space, ID name); + +#if 0 /* EXPERIMENTAL: remove if no problem */ +RBIMPL_ATTR_NORETURN() +/** + * This is the default implementation of `Module#const_missing`. + * + * @param[in] space Target namespace. + * @param[in] name Target name that is nonexistent. + * @exception rb_eNameError Always. + */ +VALUE rb_mod_const_missing(VALUE space, VALUE name); +#endif + +/** + * Queries if the given class has the given class variable. + * + * @param[in] klass Target class. + * @param[in] name Name to query. + * @return RUBY_Qtrue Yes there is. + * @return RUBY_Qfalse No there isn't. + * @pre `klass` must be an instance of rb_cModule. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +VALUE rb_cvar_defined(VALUE klass, ID name); + +/** + * Assigns a value to a class variable. + * + * @param[out] klass Target class. + * @param[in] name Variable name. + * @param[in] val Value to be assigned. + * @post `klass` has a class variable named `name` whose value is `val`. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +void rb_cvar_set(VALUE klass, ID name, VALUE val); + +/** + * Obtains a value from a class variable. + * + * @param[in] klass Target class. + * @param[in] name Variable name. + * @exception rb_eNameError Uninitialised class variable. + * @exception rb_eRuntimeError `[Bug#14541]` situation. + * @return Class variable named `name` under `klass`. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +VALUE rb_cvar_get(VALUE klass, ID name); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_cvar_get(), except it takes additional "front" pointer. + * This extra parameter is a buffer, which will have the class where the + * queried class variable actually resides. + * + * @param[in] klass Target class. + * @param[in] name Variable name. + * @param[out] front Return buffer. + * @exception rb_eNameError Uninitialised class variable. + * @exception rb_eRuntimeError `[Bug#14541]` situation. + * @return Class variable named `name` under `klass`. + * @post `front` has the class object, which is an ancestor of `klass`, + * where the queried class variable actually resides. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +VALUE rb_cvar_find(VALUE klass, ID name, VALUE *front); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_cvar_set(), except it accepts C's string instead of ::ID. + * + * @param[out] klass Target class. + * @param[in] name Variable name. + * @param[in] val Value to be assigned. + * @post `klass` has a class variable named `name` whose value is `val`. + */ +void rb_cv_set(VALUE klass, const char *name, VALUE val); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_cvar_get(), except it accepts C's string instead of ::ID. + * + * @param[in] klass Target class. + * @param[in] name Variable name. + * @exception rb_eNameError Uninitialised class variable. + * @exception rb_eRuntimeError `[Bug#14541]` situation. + * @return Class variable named `name` under `klass`. + */ +VALUE rb_cv_get(VALUE klass, const char *name); + +RBIMPL_ATTR_NONNULL(()) +/** + * @alias{rb_cv_set} + * + * @internal + * + * Am I missing something? Why we have the same thing in different names? + */ +void rb_define_class_variable(VALUE, const char*, VALUE); + +/** + * Resembles `Module#class_variables`. List up the variables defined at the + * receiver. This includes the names of constants in any included modules, + * unless `argv[0]` is ::RUBY_Qfalse. + * + * The implementation makes no guarantees about the order in which the + * constants are yielded. + * + * @param[in] argc Either 0 or 1. + * @param[in] argv Pointer to ::RUBY_Qfalse, if `argc == 1`. + * @param[in] recv Target class. + * @return An array of symbols, which are class variable names under + * `recv`. + */ +VALUE rb_mod_class_variables(int argc, const VALUE *argv, VALUE recv); + +/** + * Resembles `Module#remove_class_variable`. + * + * @param[out] mod Target class. + * @param[in] name Variable name to remove, either in Symbol or String. + * @return What was removed. + * @pre Instance variable named `name` is deleted from `obj`. + */ +VALUE rb_mod_remove_cvar(VALUE mod, VALUE name); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_VARIABLE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/vm.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/vm.h new file mode 100644 index 0000000..76af796 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/intern/vm.h @@ -0,0 +1,431 @@ +#ifndef RBIMPL_INTERN_VM_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERN_VM_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Public APIs related to rb_cRubyVM. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* vm.c */ + +/** + * Resembles `__LINE__`. + * + * @retval 0 Current execution context not in a ruby method. + * @retval otherwise The current line number of the current thread of the + * current ractor of the current execution context. + */ +int rb_sourceline(void); + +/** + * Resembles `__FILE__`. + * + * @retval 0 Current execution context not in a ruby method. + * @retval otherwise The current source path of the current thread of the + * current ractor of the current execution context. + * @note This may or may not be an absolute path. + */ +const char *rb_sourcefile(void); + +/** + * Resembles `__method__`. + * + * @param[out] idp Return buffer for method id. + * @param[out] klassp Return buffer for class. + * @retval 0 Current execution context not in a method. + * @retval 1 Successful return. + * @post Upon successful return `*idp` and `*klassp` are updated to have + * the current method name and its defined class respectively. + * @note Both parameters can be `NULL`. + */ +int rb_frame_method_id_and_class(ID *idp, VALUE *klassp); + +/* vm_eval.c */ + +/** + * Identical to rb_funcallv(), except it returns ::RUBY_Qundef instead of + * raising ::rb_eNoMethodError. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @retval RUBY_Qundef `recv` doesn't respond to `mid`. + * @retval otherwise What the method evaluates to. + */ +VALUE rb_check_funcall(VALUE recv, ID mid, int argc, const VALUE *argv); + +/** + * Identical to rb_check_funcall(), except you can specify how to handle the + * last element of the given array. It can also be seen as a routine identical + * to rb_funcallv_kw(), except it returns ::RUBY_Qundef instead of raising + * ::rb_eNoMethodError. + * + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] argc Number of arguments. + * @param[in] argv Arbitrary number of method arguments. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `argv`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `argv`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @retval RUBY_Qundef `recv` doesn't respond to `mid`. + * @retval otherwise What the method evaluates to. + */ +VALUE rb_check_funcall_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat); + +/** + * This API is practically a variant of rb_proc_call_kw() now. Historically + * when there still was a concept called `$SAFE`, this was an API for that. + * But we no longer have that. This function basically ended its role. It + * just remains here because of no harm. + * + * @param[in] cmd A string, or something callable. + * @param[in] arg Argument passed to the call. + * @param[in] kw_splat Handling of keyword parameters: + * - RB_NO_KEYWORDS `arg`'s last is not a keyword argument. + * - RB_PASS_KEYWORDS `arg`'s last is a keyword argument. + * - RB_PASS_CALLED_KEYWORDS it depends if there is a passed block. + * @return What the command evaluates to. + */ +VALUE rb_eval_cmd_kw(VALUE cmd, VALUE arg, int kw_splat); + +/** + * Identical to rb_funcallv(), except it takes Ruby's array instead of C's. + * @param[in,out] recv Receiver of the method. + * @param[in] mid Name of the method to call. + * @param[in] args An instance of ::RArray. + * @exception rb_eNoMethodError No such method. + * @exception rb_eException Any exceptions happen inside. + * @return What the method evaluates to. + * @pre `args` must be an ::RArray. Call `to_ary` beforehand when + * necessary. + */ +VALUE rb_apply(VALUE recv, ID mid, VALUE args); + +/** + * Evaluates a string containing Ruby source code, or the given block, within + * the context of the receiver. In order to set the context, the variable + * `self` is set to `recv` while the code is executing, giving the code access + * to `recv`'s instance variables and private methods. + * + * When given a block, `recv` is also passed in as the block's only argument. + * + * When given a string, the optional second and third parameters supply a + * filename and starting line number that are used when reporting compilation + * errors. + * + * @param[in] argc Number of objects in `argv` + * @param[in] argv C array of 0 up to 3 elements. + * @param[in] recv The object in question. + * @return What was evaluated. + */ +VALUE rb_obj_instance_eval(int argc, const VALUE *argv, VALUE recv); + +/** + * Executes the given block within the context of the receiver. In order to + * set the context, the variable `self` is set to `recv` while the code is + * executing, giving the code access to `recv`'s instance variables. Arguments + * are passed as block parameters. + * + * @param[in] argc Number of objects in `argv` + * @param[in] argv Arbitrary parameters to be passed to the block. + * @param[in] recv The object in question. + * @return What was evaluated. + * @note Don't confuse this with rb_obj_instance_eval(). The key + * difference is whether you can pass arbitrary parameters to the + * block, like this: + * + * ```ruby + * class Foo + * def initialize + * @foo = 5 + * end + * end + * Foo.new.instance_exec(7) {|i| @foo + i } # => 12 + * ``` + */ +VALUE rb_obj_instance_exec(int argc, const VALUE *argv, VALUE recv); + +/** + * Identical to rb_obj_instance_eval(), except it evaluates within the context + * of module. + * + * @param[in] argc Number of objects in `argv` + * @param[in] argv C array of 0 up to 3 elements. + * @param[in] mod The module in question. + * @pre `mod` must be a Module. + * @return What was evaluated. + */ +VALUE rb_mod_module_eval(int argc, const VALUE *argv, VALUE mod); + +/** + * Identical to rb_obj_instance_exec(), except it evaluates within the context + * of module. + * + * @param[in] argc Number of objects in `argv` + * @param[in] argv Arbitrary parameters to be passed to the block. + * @param[in] mod The module in question. + * @pre `mod` must be a Module. + * @return What was evaluated. + */ +VALUE rb_mod_module_exec(int argc, const VALUE *argv, VALUE mod); + +/* vm_method.c */ + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define HAVE_RB_DEFINE_ALLOC_FUNC 1 + +/** + * This is the type of functions that ruby calls when trying to allocate an + * object. It is sometimes necessary to allocate extra memory regions for an + * object. When you define a class that uses ::RTypedData, it is typically the + * case. On such situations define a function of this type and pass it to + * rb_define_alloc_func(). + * + * @param[in] klass The class that this function is registered. + * @return A newly allocated instance of `klass`. + */ +typedef VALUE (*rb_alloc_func_t)(VALUE klass); + +/** + * Sets the allocator function of a class. + * + * @param[out] klass The class to modify. + * @param[in] func An allocator function for the class. + * @pre `klass` must be an instance of Class. + */ +void rb_define_alloc_func(VALUE klass, rb_alloc_func_t func); + +/** + * Deletes the allocator function of a class. It is sometimes desirable to + * restrict creation of an instance of a class. For example it rarely makes + * sense for a DB adaptor class to allow programmers creating DB row objects + * without querying the DB itself. You can kill sporadic creation of such + * objects then, by nullifying the allocator function using this API. Your + * object shall be allocated using #RB_NEWOBJ_OF() directly. + * + * @param[out] klass The class to modify. + * @pre `klass` must be an instance of Class. + */ +void rb_undef_alloc_func(VALUE klass); + +/** + * Queries the allocator function of a class. + * + * @param[in] klass The class in question. + * @pre `klass` must be an instance of Class. + * @retval 0 No allocator function is registered. + * @retval otherwise The allocator function. + * + * @internal + * + * Who cares? @shyouhei finds no practical usage of the return value. Maybe we + * need KonMari. + */ +rb_alloc_func_t rb_get_alloc_func(VALUE klass); + +/** + * Clears the inline constant caches associated with a particular ID. Extension + * libraries should not bother with such things. Just forget about this API (or + * even, the presence of constant caches). + */ +void rb_clear_constant_cache_for_id(ID id); + +/** + * Resembles `alias`. + * + * @param[out] klass Where to define an alias. + * @param[in] dst New name. + * @param[in] src Existing name. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eFrozenError `klass` is frozen. + * @exception rb_eNameError No such method named `src`. + * @post `klass` has a method named `dst`, which is the identical to its + * method named `src`. + */ +void rb_alias(VALUE klass, ID dst, ID src); + +/** + * This function resembles now-deprecated `Module#attr`. + * + * @param[out] klass Where to define an attribute. + * @param[in] name Name of an instance variable. + * @param[in] need_reader Whether attr_reader is needed. + * @param[in] need_writer Whether attr_writer is needed. + * @param[in] honour_visibility Whether to use the current visibility. + * @exception rb_eTypeError `klass` is not a class. + * @exception rb_eFrozenError `klass` is frozen. + * @post If `need_reader` is set `klass` has a method named `name`. + * @post If `need_writer` is set `klass` has a method named `name=`. + * + * @internal + * + * The three `int` arguments should have been bool, but there was no such thing + * like a bool when K&R was used in this project. + */ +void rb_attr(VALUE klass, ID name, int need_reader, int need_writer, int honour_visibility); + +RBIMPL_ATTR_NONNULL(()) +/** + * Removes a method. Don't confuse this to rb_undef_method(), which doesn't + * remove a method. This one resembles `Module#remove_method`. + * + * @param[out] klass The class to remove a method. + * @param[in] name Name of a method to be removed. + * @exception rb_eTypeError `klass` is a non-module. + * @exception rb_eFrozenError `klass` is frozen. + * @exception rb_eNameError No such method. + * @see rb_undef_method + */ +void rb_remove_method(VALUE klass, const char *name); + +/** + * Identical to rb_remove_method(), except it accepts the method name as ::ID. + * + * @param[out] klass The class to remove a method. + * @param[in] mid Name of a method to be removed. + * @exception rb_eTypeError `klass` is a non-module. + * @exception rb_eFrozenError `klass` is frozen. + * @exception rb_eNameError No such method. + * @see rb_undef + */ +void rb_remove_method_id(VALUE klass, ID mid); + +/** + * Queries if the klass has this method. This function has only one line of + * document in the implementation that states "// deprecated". Don't know what + * that means though. + * + * @param[in] klass The class in question. + * @param[in] id The method name to query. + * @param[in] ex Undocumented magic value. + * @retval false Method not found. + * @retval true There is a method. + * @pre `klass` must be a module. + * + * @internal + * + * @shyouhei has no motivation to describe what should be passed to `ex`. It + * seems this function should just be trashed. + */ +int rb_method_boundp(VALUE klass, ID id, int ex); + +/** + * Well... Let us hesitate from describing what a "basic definition" is. This + * nuanced concept should have been kept private. Just please. Don't touch + * it. This function is a badly distributed random number generator. Right? + * + * @param[in] klass The class in question. + * @param[in] mid The method name in question. + * @retval 1 It is. + * @retval 0 It isn't. + */ +int rb_method_basic_definition_p(VALUE klass, ID mid); + +/** + * Identical to rb_respond_to(), except it additionally takes the visibility + * parameter. This does not make difference unless the object has + * `respond_to?` undefined, but has `respond_to_missing?` defined. That case + * the passed argument becomes the second argument of `respond_to_missing?`. + * + * @param[in] obj The object in question. + * @param[in] mid The method name in question. + * @param[in] private_p This is the second argument of `obj`'s + * `respond_to_missing?`. + * @retval 1 Yes it does. + * @retval 0 No it doesn't. + */ +int rb_obj_respond_to(VALUE obj, ID mid, int private_p); + +/** + * Queries if the object responds to the method. This involves calling the + * object's `respond_to?` method. + * + * @param[in] obj The object in question. + * @param[in] mid The method name in question. + * @retval 1 Yes it does. + * @retval 0 No it doesn't. + */ +int rb_respond_to(VALUE obj, ID mid); + +RBIMPL_ATTR_NORETURN() +/** + * Raises ::rb_eNotImpError. This function is used as an argument to + * rb_define_method() etc. + * + * ```CXX + * rb_define_method(rb_cFoo, "foo", rb_f_notimplement, -1); + * ``` + * + * @param argc Unused parameter. + * @param argv Unused parameter. + * @param obj Unused parameter. + * @param marker Unused parameter. + * @exception rb_eNotImpError Always. + * @return Never returns. + * + * @internal + * + * See also the Q&A section of include/ruby/internal/anyargs.h. + */ +VALUE rb_f_notimplement(int argc, const VALUE *argv, VALUE obj, VALUE marker); +#if !defined(RUBY_EXPORT) && defined(_WIN32) +RUBY_EXTERN VALUE (*const rb_f_notimplement_)(int, const VALUE *, VALUE, VALUE marker); +#define rb_f_notimplement (*rb_f_notimplement_) +#endif + +/* vm_backtrace.c */ + +/** + * Prints the backtrace out to the standard error. This just confuses people + * for no reason. Evil souls must only use it. + * + * @internal + * + * Actually it is very useful when called from an interactive GDB session. + */ +void rb_backtrace(void); + +/** + * Creates the good old fashioned array-of-strings style backtrace info. + * + * @return An array which contains strings, which are the textual + * representations of the backtrace locations of the current thread of + * the current ractor of the current execution context. + * @note Ruby scripts can access more sophisticated + * `Thread::Backtrace::Location`. But it seems there is no way for C + * extensions to use that API. + */ +VALUE rb_make_backtrace(void); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERN_VM_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/interpreter.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/interpreter.h new file mode 100644 index 0000000..662d39c --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/interpreter.h @@ -0,0 +1,304 @@ +#ifndef RBIMPL_INTERPRETER_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_INTERPRETER_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Interpreter embedding APIs. + */ +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * @defgroup embed CRuby Embedding APIs + * + * CRuby interpreter APIs. These are APIs to embed MRI interpreter into your + * program. + * These functions are not a part of Ruby extension library API. + * Extension libraries of Ruby should not depend on these functions. + * + * @{ + */ + +/** + * @defgroup ruby1 ruby(1) implementation + * + * A part of the implementation of ruby(1) command. + * Other programs that embed Ruby interpreter do not always need to use these + * functions. + * + * @{ + */ + +RBIMPL_ATTR_NONNULL(()) +/** + * Initializes the process for libruby. + * + * This function assumes this process is `ruby(1)` and it has just started. + * Usually programs that embed CRuby interpreter may not call this function, + * and may do their own initialization. + * + * @param[in] argc Pointer to process main's `argc`. + * @param[in] argv Pointer to process main's `argv`. + * @warning `argc` and `argv` cannot be `NULL`. + * + * @internal + * + * AFAIK Ruby does write to argv, especially `argv[0][0]`, via setproctitle(3). + * It is intentional that the argument is not const-qualified. + */ +void ruby_sysinit(int *argc, char ***argv); + +/** + * Calls ruby_setup() and check error. + * + * Prints errors and calls exit(3) if an error occurred. + */ +void ruby_init(void); + +/** + * Processes command line arguments and compiles the Ruby source to execute. + * + * This function does: + * - Processes the given command line flags and arguments for `ruby(1)` + * - Compiles the source code from the given argument, `-e` or `stdin`, and + * - Returns the compiled source as an opaque pointer to an internal data + * structure + * + * @param[in] argc Process main's `argc`. + * @param[in] argv Process main's `argv`. + * @return An opaque pointer to the compiled source or an internal special + * value. Pass it to ruby_executable_node() to detect which. + * @see ruby_executable_node + */ +void* ruby_options(int argc, char** argv); + +/** + * Checks the return value of ruby_options(). + * + * ruby_options() sometimes returns a special value to indicate this process + * should immediately exit. This function checks if the case. Also stores the + * exit status that the caller have to pass to exit(3) into `*status`. + * + * @param[in] n A return value of ruby_options(). + * @param[out] status Pointer to the exit status of this process. + * @retval 0 The given value is such a special value. + * @retval otherwise The given opaque pointer is actually a compiled + * source. + */ +int ruby_executable_node(void *n, int *status); + +/** + * Runs the given compiled source and exits this process. + * + * @param[in] n Opaque "node" pointer. + * @retval EXIT_SUCCESS Successfully run the source. + * @retval EXIT_FAILURE An error occurred. + */ +int ruby_run_node(void *n); + +/* version.c */ +/** Prints the version information of the CRuby interpreter to stdout. */ +void ruby_show_version(void); + +#ifndef ruby_show_copyright +/** Prints the copyright notice of the CRuby interpreter to stdout. */ +void ruby_show_copyright(void); +#endif + +/** + * A convenience macro to call ruby_init_stack(). + * Must be placed just after variable declarations. + */ +#define RUBY_INIT_STACK \ + VALUE variable_in_this_stack_frame; \ + ruby_init_stack(&variable_in_this_stack_frame); +/** @} */ + +/** + * Set stack bottom of Ruby implementation. + * + * You must call this function before any heap allocation by Ruby + * implementation. Or GC will break living objects. + * + * @param[in] addr A pointer somewhere on the stack, near its bottom. + */ +void ruby_init_stack(volatile VALUE *addr); + +/** + * Initializes the VM and builtin libraries. + * + * @retval 0 Initialization succeeded. + * @retval otherwise An error occurred. + * + * @internal + * + * Though not a part of our public API, the return value is in fact an enum + * ruby_tag_type. You can see the potential "otherwise" values by looking at + * vm_core.h. + */ +int ruby_setup(void); + +/** + * Destructs the VM. + * + * Runs the VM finalization processes as well as ruby_finalize(), and frees + * resources used by the VM. + * + * @param[in] ex Default value to the return value. + * @retval EXIT_FAILURE An error occurred. + * @retval ex Successful cleanup. + * @note This function does not raise any exception. + */ +int ruby_cleanup(int ex); + +/** + * Runs the VM finalization processes. + * + * `END{}` and procs registered by `Kernel.#at_exit` are executed here. See the + * Ruby language spec for more details. + * + * @note This function is allowed to raise an exception if an error occurred. + */ +void ruby_finalize(void); + +RBIMPL_ATTR_NORETURN() +/** Calls ruby_cleanup() and exits the process. */ +void ruby_stop(int); + +/** + * Checks for stack overflow. + * + * @retval true NG machine stack is about to overflow. + * @retval false OK there still is a room in the stack. + * + * @internal + * + * Does anybody use it? So far @shyouhei have never seen any actual use-case. + */ +int ruby_stack_check(void); + +/** + * Queries what Ruby thinks is the machine stack. Ruby manages a region of + * memory. It calls that area the "machine stack". By calling this function, + * in spite of its name, you can obtain both one end of the stack and its + * length at once. Which means you can know the entire region. + * + * @param[out] topnotch On return the pointer points to the upmost address of + * the macihne stack that Ruby knows. + * @return Length of the machine stack that Ruby knows. + * + * @internal + * + * Does anybody use it? @shyouhei is quite skeptical if this is useful outside + * of the VM. Maybe it was a wrong idea to expose this API to 3rd parties. + */ +size_t ruby_stack_length(VALUE **topnotch); + +/** + * Identical to ruby_run_node(), except it returns an opaque execution status. + * You can pass it to rb_cleanup(). + * + * @param[in] n Opaque "node" pointer. + * @retval 0 Successful end-of-execution. + * @retval otherwise An error occurred. + * + * @internal + * + * Though not a part of our public API, the return value is in fact an enum + * ruby_tag_type. You can see the potential "otherwise" values by looking at + * vm_core.h. + */ +int ruby_exec_node(void *n); + +/** + * Sets the current script name to this value. + * + * This is similar to `$0 = name` in Ruby level but also affects + * `Method#location` and others. + * + * @param[in] name File name to set. + */ +void ruby_script(const char* name); + +/** + * Identical to ruby_script(), except it takes the name as a Ruby String + * instance. + * + * @param[in] name File name to set. + */ +void ruby_set_script_name(VALUE name); + +/** Defines built-in variables */ +void ruby_prog_init(void); + +/** + * Sets argv that ruby understands. Your program might have its own command + * line parameters etc. Handle them as you wish, and pass remaining parts of + * argv here. + * + * @param[in] argc Number of elements of `argv`. + * @param[in] argv Command line arguments. + */ +void ruby_set_argv(int argc, char **argv); + +/** + * Identical to ruby_options(), except it raises ruby-level exceptions on + * failure. + * + * @param[in] argc Process main's `argc`. + * @param[in] argv Process main's `argv`. + * @return An opaque "node" pointer. + */ +void *ruby_process_options(int argc, char **argv); + +/** + * Sets up `$LOAD_PATH`. + * + * @internal + * + * @shyouhei guesses this has to be called at very later stage, at least after + * the birth of object system. But is not exactly sure when. + */ +void ruby_init_loadpath(void); + +/** + * Appends the given path to the end of the load path. + * + * @pre ruby_init_loadpath() must be done beforehand. + * @param[in] path The path you want to push to the load path. + */ +void ruby_incpush(const char *path); + +/** + * Clear signal handlers. + * + * Ruby installs its own signal handler (apart from those which user scripts + * set). This is to clear that. Must be called when the ruby part terminates, + * before switching to your program's own logic. + */ +void ruby_sig_finalize(void); + +/** @} */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_INTERPRETER_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/iterator.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/iterator.h new file mode 100644 index 0000000..5f70646 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/iterator.h @@ -0,0 +1,513 @@ +#ifndef RBIMPL_ITERATOR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_ITERATOR_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Block related APIs. + */ +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define RB_BLOCK_CALL_FUNC_STRICT 1 + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define RUBY_BLOCK_CALL_FUNC_TAKES_BLOCKARG 1 + +/** + * Shim for block function parameters. Historically ::rb_block_call_func_t had + * only two parameters. Over time it evolved to have much more than that. By + * using this macro you can absorb such API differences. + * + * ```CXX + * // This works since 2.1.0 + * VALUE my_own_iterator(RB_BLOCK_CALL_FUNC_ARGLIST(y, c)); + * ``` + */ +#define RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg) \ + VALUE yielded_arg, VALUE callback_arg, int argc, const VALUE *argv, VALUE blockarg + +/** + * This is the type of a function that the interpreter expect for C-backended + * blocks. Blocks are often written in Ruby. But C extensions might want to + * have their own blocks. In order to do so authors have to create a separate + * C function of this type, and pass its pointer to rb_block_call(). + * + * ```CXX + * VALUE + * my_own_iterator(RB_BLOCK_CALL_FUNC_ARGLIST(y, c)) + * { + * const auto plus = rb_intern("+"); + * return rb_funcall(c, plus, 1, y); + * } + * + * VALUE + * my_own_method(VALUE self) + * { + * const auto each = rb_intern("each"); + * return rb_block_call(self, each, 0, 0, my_own_iterator, self); + * } + * ``` + */ +typedef VALUE rb_block_call_func(RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg)); + +/** + * Shorthand type that represents an iterator-written-in-C function pointer. + */ +typedef rb_block_call_func *rb_block_call_func_t; + +/** + * This is a shorthand of calling `obj.each`. + * + * @param[in] obj The receiver. + * @return What `obj.each` returns. + * + * @internal + * + * Does anyone still need it? This API was to use with rb_iterate(), which is + * marked deprecated (see below). Old idiom to call an iterator was: + * + * ```CXX + * VALUE recv; + * VALUE iter_func(ANYARGS); + * VALUE iter_data; + * rb_iterate(rb_each, recv, iter_func, iter_data); + * ``` + */ +VALUE rb_each(VALUE obj); + +/** + * Yields the block. In Ruby there is a concept called a block. You can pass + * one to a method. In a method, when called with a block, you can yield it + * using this function. + * + * ```CXX + * VALUE + * iterate(VALUE self) + * { + * extern int get_n(VALUE); + * extern VALUE get_v(VALUE, VALUE); + * const auto n = get_n(self); + * + * for (int i=0; i + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Memory management stuff. + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#ifdef HAVE_STRING_H +# include +#endif + +#ifdef HAVE_STDINT_H +# include +#endif + +#ifdef HAVE_ALLOCA_H +# include +#endif + +#if defined(_MSC_VER) && defined(_WIN64) +# include +# pragma intrinsic(_umul128) +#endif + +#include "ruby/internal/attr/alloc_size.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/constexpr.h" +#include "ruby/internal/attr/noalias.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/attr/restrict.h" +#include "ruby/internal/attr/returns_nonnull.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/has/builtin.h" +#include "ruby/internal/stdalign.h" +#include "ruby/internal/stdbool.h" +#include "ruby/internal/xmalloc.h" +#include "ruby/backward/2/limits.h" +#include "ruby/backward/2/long_long.h" +#include "ruby/backward/2/assume.h" +#include "ruby/defines.h" + +/** @cond INTENAL_MACRO */ + +/* Make alloca work the best possible way. */ +#if defined(alloca) +# /* Take that. */ +#elif RBIMPL_HAS_BUILTIN(__builtin_alloca) +# define alloca __builtin_alloca +#elif defined(_AIX) +# pragma alloca +#elif defined(__cplusplus) +extern "C" void *alloca(size_t); +#else +extern void *alloca(); +#endif + +/** @endcond */ + +#if defined(__DOXYGEN__) +/** + * @private + * + * Type that is as twice wider as size_t. This is an implementation detail of + * rb_mul_size_overflow(). People should not use it. This is not a good name + * either. + */ +typedef uint128_t DSIZE_T; +#elif defined(HAVE_INT128_T) && SIZEOF_SIZE_T <= 8 +# define DSIZE_T uint128_t +#elif SIZEOF_SIZE_T * 2 <= SIZEOF_LONG_LONG +# define DSIZE_T unsigned LONG_LONG +#endif + +/** + * @private + * + * Maximum possible number of bytes that #RB_ALLOCV can allocate using + * `alloca`. Anything beyond this is allocated using rb_alloc_tmp_buffer(). + * This selection is transparent to users. People don't have to bother. + */ +#ifdef C_ALLOCA +# define RUBY_ALLOCV_LIMIT 0 +#else +# define RUBY_ALLOCV_LIMIT 1024 +#endif + +/** + * Prevents premature destruction of local objects. Ruby's garbage collector + * is conservative; it scans the C level machine stack as well. Possible in- + * use Ruby objects must remain visible on stack, to be properly marked as + * such. However contemporary C compilers do not interface well with this. + * Consider the following example: + * + * ```CXX + * auto s = rb_str_new_cstr(" world"); + * auto sptr = RSTRING_PTR(s); + * auto t = rb_str_new_cstr("hello,"); // Possible GC invocation + * auto u = rb_str_cat_cstr(t, sptr); + * + * RB_GC_GUARD(s); // ensure `s` (and thus `sptr`) do not get GC-ed + * ``` + * + * Here, without the #RB_GC_GUARD, the last use of `s` is _before_ the last use + * of `sptr`. Compilers could thus think `s` and `t` are allowed to overlap. + * That would eliminate `s` from the stack, while `sptr` is still in use. If + * our GC ran at that very moment, `s` gets swept out, which also destroys + * `sptr`. Boom! You got a SEGV. + * + * In order to prevent this scenario #RB_GC_GUARD must be placed _after_ the + * last use of `sptr`. Placing #RB_GC_GUARD before dereferencing `sptr` would + * be of no use. + * + * #RB_GC_GUARD would not be necessary at all in the above example if non- + * inlined function calls are made on the `s` variable after `sptr` is + * dereferenced. Thus, in the above example, calling any un-inlined function + * on `s` such as `rb_str_modify(s);` will ensure `s` stays on the stack or + * register to prevent a GC invocation from prematurely freeing it. + * + * Using the #RB_GC_GUARD macro is preferable to using the `volatile` keyword + * in C. #RB_GC_GUARD has the following advantages: + * + * - the intent of the macro use is clear. + * + * - #RB_GC_GUARD only affects its call site. OTOH `volatile` generates some + * extra code every time the variable is used, hurting optimisation. + * + * - `volatile` implementations may be buggy/inconsistent in some compilers + * and architectures. #RB_GC_GUARD is customisable for broken + * systems/compilers without negatively affecting other systems. + * + * - C++ since C++20 deprecates `volatile`. If you write your extension + * library in that language there is no escape but to use this macro. + * + * @param v A variable of ::VALUE type. + * @post `v` is still alive. + */ +#ifdef __GNUC__ +#define RB_GC_GUARD(v) \ + (*__extension__ ({ \ + volatile VALUE *rb_gc_guarded_ptr = &(v); \ + __asm__("" : : "m"(rb_gc_guarded_ptr)); \ + rb_gc_guarded_ptr; \ + })) +#elif defined _MSC_VER +#define RB_GC_GUARD(v) (*rb_gc_guarded_ptr(&(v))) +#else +#define HAVE_RB_GC_GUARDED_PTR_VAL 1 +#define RB_GC_GUARD(v) (*rb_gc_guarded_ptr_val(&(v),(v))) +#endif + +/* Casts needed because void* is NOT compatible with others in C++. */ + +/** + * Convenient macro that allocates an array of n elements. + * + * @param type Type of array elements. + * @param n Length of the array. + * @exception rb_eNoMemError No space left for allocation. + * @exception rb_eArgError Integer overflow trying to calculate the length + * of continuous memory region of `n` elements of + * `type`. + * @return Storage instance that is capable of storing at least `n` + * elements of type `type`. + * @note It doesn't return NULL, even when `n` is zero. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +#define RB_ALLOC_N(type,n) RBIMPL_CAST((type *)ruby_xmalloc2((n), sizeof(type))) + +/** + * Shorthand of #RB_ALLOC_N with `n=1`. + * + * @param type Type of allocation. + * @exception rb_eNoMemError No space left for allocation. + * @return Storage instance that can hold an `type` object. + * @note It doesn't return NULL. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +#define RB_ALLOC(type) RBIMPL_CAST((type *)ruby_xmalloc(sizeof(type))) + +/** + * Identical to #RB_ALLOC_N() but also nullifies the allocated region before + * returning. + * + * @param type Type of array elements. + * @param n Length of the array. + * @exception rb_eNoMemError No space left for allocation. + * @exception rb_eArgError Integer overflow trying to calculate the length + * of continuous memory region of `n` elements of + * `type`. + * @return Storage instance that is capable of storing at least `n` + * elements of type `type`. + * @post Returned array is filled with zeros. + * @note It doesn't return NULL, even when `n` is zero. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +#define RB_ZALLOC_N(type,n) RBIMPL_CAST((type *)ruby_xcalloc((n), sizeof(type))) + +/** + * Shorthand of #RB_ZALLOC_N with `n=1`. + * + * @param type Type of allocation. + * @exception rb_eNoMemError No space left for allocation. + * @return Storage instance that can hold an `type` object. + * @post Returned object is filled with zeros. + * @note It doesn't return NULL. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +#define RB_ZALLOC(type) (RB_ZALLOC_N(type, 1)) + +/** + * Convenient macro that reallocates an array with a new size. + * + * @param var A variable of `type`, which points to a storage + * instance that was previously returned from + * either + * - ruby_xmalloc(), + * - ruby_xmalloc2(), + * - ruby_xcalloc(), + * - ruby_xrealloc(), or + * - ruby_xrealloc2(). + * @param type Type of allocation. + * @param n Requested new size of each element. + * @exception rb_eNoMemError No space left for allocation. + * @exception rb_eArgError Integer overflow trying to calculate the length + * of continuous memory region of `n` elements of + * `type`. + * @return Storage instance that is capable of storing at least `n` + * elements of type `type`. + * @pre The passed variable must point to a valid live storage instance. + * It is a failure to pass a variable that holds an already-freed + * pointer. + * @note It doesn't return NULL, even when `n` is zero. + * @warning Do not assume anything on the alignment of the return value. + * There is no guarantee that it inherits the passed argument's + * one. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +#define RB_REALLOC_N(var,type,n) \ + ((var) = RBIMPL_CAST((type *)ruby_xrealloc2((void *)(var), (n), sizeof(type)))) + +/** + * @deprecated This macro is dangerous (does not bother stack overflow at + * all). #RB_ALLOCV is the modern way to do the same thing. + * @param type Type of array elements. + * @param n Length of the array. + * @return A pointer on stack. + */ +#define ALLOCA_N(type,n) \ + RBIMPL_CAST((type *)alloca(rbimpl_size_mul_or_raise(sizeof(type), (n)))) + +/** + * Identical to #RB_ALLOCV_N(), except that it allocates a number of bytes and + * returns a void* . + * + * @param v A variable to hold the just-in-case opaque Ruby object. + * @param n Size of allocation, in bytes. + * @return A void pointer to `n` bytes storage. + * @note `n` may be evaluated twice. + */ +#define RB_ALLOCV(v, n) \ + ((n) < RUBY_ALLOCV_LIMIT ? \ + ((v) = 0, alloca(n)) : \ + rb_alloc_tmp_buffer(&(v), (n))) + +/** + * Allocates a memory region, possibly on stack. If the given size exceeds + * #RUBY_ALLOCV_LIMIT, it allocates a dedicated opaque ruby object instead and + * let our GC sweep that region after use. Either way you can fire-and-forget. + * + * ```CXX + * #include + * + * VALUE + * foo(int n) + * { + * VALUE v; + * auto ptr = RB_ALLOCV(struct tms, v, n); + * ... + * // no need to free `ptr`. + * } + * ``` + * + * If you want to be super-duper polite you can also explicitly state the end + * of use of such memory region by calling #RB_ALLOCV_END(). + * + * @param type The type of array elements. + * @param v A variable to hold the just-in-case opaque Ruby object. + * @param n Number of elements requested to allocate. + * @return An array of `n` elements of `type`. + * @note `n` may be evaluated twice. + */ +#define RB_ALLOCV_N(type, v, n) \ + RBIMPL_CAST((type *) \ + (((size_t)(n) < RUBY_ALLOCV_LIMIT / sizeof(type)) ? \ + ((v) = 0, alloca((n) * sizeof(type))) : \ + rb_alloc_tmp_buffer2(&(v), (n), sizeof(type)))) + +/** + * Polite way to declare that the given array is not used any longer. Calling + * this not mandatory. Our GC can baby-sit you. However it is not a very bad + * idea to use it when possible. Doing so could reduce memory footprint. + * + * @param v A variable previously passed to either #RB_ALLOCV/#RB_ALLOCV_N. + */ +#define RB_ALLOCV_END(v) rb_free_tmp_buffer(&(v)) + +/** + * Handy macro to erase a region of memory. + * + * @param p Target pointer. + * @param type Type of `p[0]` + * @param n Length of `p`. + * @return `p`. + * @post First `n` elements of `p` are squashed. + */ +#define MEMZERO(p,type,n) memset((p), 0, rbimpl_size_mul_or_raise(sizeof(type), (n))) + +/** + * Handy macro to call memcpy. + * + * @param p1 Destination pointer. + * @param p2 Source pointer. + * @param type Type of `p2[0]` + * @param n Length of `p2`. + * @return `p1`. + * @post First `n` elements of `p2` are copied into `p1`. + */ +#define MEMCPY(p1,p2,type,n) ruby_nonempty_memcpy((p1), (p2), rbimpl_size_mul_or_raise(sizeof(type), (n))) + +/** + * Handy macro to call memmove. + * + * @param p1 Destination pointer. + * @param p2 Source pointer. + * @param type Type of `p2[0]` + * @param n Length of `p2`. + * @return `p1`. + * @post First `n` elements of `p2` are copied into `p1`. + */ +#define MEMMOVE(p1,p2,type,n) memmove((p1), (p2), rbimpl_size_mul_or_raise(sizeof(type), (n))) + +/** + * Handy macro to call memcmp + * + * @param p1 Target LHS. + * @param p2 Target RHS. + * @param type Type of `p1[0]` + * @param n Length of `p1`. + * @retval <0 `p1` is "less" than `p2`. + * @retval 0 `p1` is equal to `p2`. + * @retval >0 `p1` is "greater" than `p2`. + */ +#define MEMCMP(p1,p2,type,n) memcmp((p1), (p2), rbimpl_size_mul_or_raise(sizeof(type), (n))) + +#define ALLOC_N RB_ALLOC_N /**< @old{RB_ALLOC_N} */ +#define ALLOC RB_ALLOC /**< @old{RB_ALLOC} */ +#define ZALLOC_N RB_ZALLOC_N /**< @old{RB_ZALLOC_N} */ +#define ZALLOC RB_ZALLOC /**< @old{RB_ZALLOC} */ +#define REALLOC_N RB_REALLOC_N /**< @old{RB_REALLOC_N} */ +#define ALLOCV RB_ALLOCV /**< @old{RB_ALLOCV} */ +#define ALLOCV_N RB_ALLOCV_N /**< @old{RB_ALLOCV_N} */ +#define ALLOCV_END RB_ALLOCV_END /**< @old{RB_ALLOCV_END} */ + +/** + * @private + * + * This is an implementation detail of rbimpl_size_mul_overflow(). + * + * @internal + * + * Expecting this struct to be eliminated by function inlinings. This is + * nothing more than std::variant if we could use recent C++, but + * reality is we cannot. + */ +struct rbimpl_size_mul_overflow_tag { + bool left; /**< Whether overflow happened or not. */ + size_t right; /**< Multiplication result. */ +}; + +RBIMPL_SYMBOL_EXPORT_BEGIN() +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((2)) +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail of #RB_ALLOCV(). People don't use this + * directly. + * + * @param[out] store Pointer to a variable. + * @param[in] len Requested number of bytes to allocate. + * @return Allocated `len` bytes array. + * @post `store` holds the corresponding tmp buffer object. + */ +void *rb_alloc_tmp_buffer(volatile VALUE *store, long len); + +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((2,3)) +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail of #RB_ALLOCV_N(). People don't use this + * directly. + * + * @param[out] store Pointer to a variable. + * @param[in] len Requested number of bytes to allocate. + * @param[in] count Number of elements in an array. + * @return Allocated `len` bytes array. + * @post `store` holds the corresponding tmp buffer object. + * + * @internal + * + * Although the meaning of `count` variable is clear, @shyouhei doesn't + * understand its needs. + */ +void *rb_alloc_tmp_buffer_with_count(volatile VALUE *store, size_t len,size_t count); + +/** + * @private + * + * This is an implementation detail of #RB_ALLOCV_END(). People don't use this + * directly. + * + * @param[out] store Pointer to a variable. + * @pre `store` is a NULL, or a pointer to a tmp buffer object. + * @post `*store` is ::RUBY_Qfalse. + * @post The object formerly stored in `store` is destroyed. + */ +void rb_free_tmp_buffer(volatile VALUE *store); + +RBIMPL_ATTR_NORETURN() +/** + * @private + * + * This is an implementation detail of #RB_ALLOCV_N(). People don't use this + * directly. + * + * @param[in] x Arbitrary value. + * @param[in] y Arbitrary value. + * @exception rb_eArgError `x` * `y` would integer overflow. + */ +void ruby_malloc_size_overflow(size_t x, size_t y); + +#ifdef HAVE_RB_GC_GUARDED_PTR_VAL +volatile VALUE *rb_gc_guarded_ptr_val(volatile VALUE *ptr, VALUE val); +#endif +RBIMPL_SYMBOL_EXPORT_END() + +#ifdef _MSC_VER +# pragma optimize("", off) + +/** + * @private + * + * This is an implementation detail of #RB_GC_GUARD(). People don't use this + * directly. + * + * @param[in] ptr A pointer to an on-stack C variable. + * @return `ptr` as-is. + */ +static inline volatile VALUE * +rb_gc_guarded_ptr(volatile VALUE *ptr) +{ + return ptr; +} + +# pragma optimize("", on) +#endif + +/** + * @deprecated This function was an implementation detail of old + * #RB_ALLOCV_N(). We no longer use it. @shyouhei suspects that + * there are no actual usage now. However it was not marked as + * private before. We cannot delete it any longer. + * @param[in] a Arbitrary value. + * @param[in] b Arbitrary value. + * @param[in] max Possible maximum value. + * @param[out] c A pointer to return the computation result. + * @retval 1 `c` is insane. + * @retval 0 `c` is sane. + * @post `c` holds `a` * `b`, but could be overflowed. + */ +static inline int +rb_mul_size_overflow(size_t a, size_t b, size_t max, size_t *c) +{ +#ifdef DSIZE_T + RB_GNUC_EXTENSION DSIZE_T da, db, c2; + da = a; + db = b; + c2 = da * db; + if (c2 > max) return 1; + *c = RBIMPL_CAST((size_t)c2); +#else + if (b != 0 && a > max / b) return 1; + *c = a * b; +#endif + return 0; +} + +#if defined(__DOXYGEN__) +RBIMPL_ATTR_CONSTEXPR(CXX14) +#elif RBIMPL_COMPILER_SINCE(GCC, 7, 0, 0) +RBIMPL_ATTR_CONSTEXPR(CXX14) /* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70507 */ +#elif RBIMPL_COMPILER_SINCE(Clang, 7, 0, 0) +RBIMPL_ATTR_CONSTEXPR(CXX14) /* https://bugs.llvm.org/show_bug.cgi?id=37633 */ +#endif +RBIMPL_ATTR_CONST() +/** + * @private + * + * This is an implementation detail of #RB_ALLOCV_N(). People don't use this + * directly. + * + * @param[in] x Arbitrary value. + * @param[in] y Arbitrary value. + * @return `{ left, right }`, where `left` is whether there is an integer + * overflow or not, and `right` is a (possibly overflowed) result + * of `x` * `y`. + * + * @internal + * + * This is in fact also an implementation detail of ruby_xmalloc2() etc. + */ +static inline struct rbimpl_size_mul_overflow_tag +rbimpl_size_mul_overflow(size_t x, size_t y) +{ + struct rbimpl_size_mul_overflow_tag ret = { false, 0, }; + +#if RBIMPL_HAS_BUILTIN(__builtin_mul_overflow) + ret.left = __builtin_mul_overflow(x, y, &ret.right); + +#elif defined(DSIZE_T) + RB_GNUC_EXTENSION DSIZE_T dx = x; + RB_GNUC_EXTENSION DSIZE_T dy = y; + RB_GNUC_EXTENSION DSIZE_T dz = dx * dy; + ret.left = dz > SIZE_MAX; + ret.right = RBIMPL_CAST((size_t)dz); + +#elif defined(_MSC_VER) && defined(_WIN64) + unsigned __int64 dp = 0; + unsigned __int64 dz = _umul128(x, y, &dp); + ret.left = RBIMPL_CAST((bool)dp); + ret.right = RBIMPL_CAST((size_t)dz); + +#else + /* https://wiki.sei.cmu.edu/confluence/display/c/INT30-C.+Ensure+that+unsigned+integer+operations+do+not+wrap */ + ret.left = (y != 0) && (x > SIZE_MAX / y); + ret.right = x * y; +#endif + + return ret; +} + +/** + * @private + * + * This is an implementation detail of #RB_ALLOCV_N(). People don't use this + * directly. + * + * @param[in] x Arbitrary value. + * @param[in] y Arbitrary value. + * @exception rb_eArgError Multiplication could integer overflow. + * @return `x` * `y`. + * + * @internal + * + * This is in fact also an implementation detail of ruby_xmalloc2() etc. + */ +static inline size_t +rbimpl_size_mul_or_raise(size_t x, size_t y) +{ + struct rbimpl_size_mul_overflow_tag size = + rbimpl_size_mul_overflow(x, y); + + if (RB_LIKELY(! size.left)) { + return size.right; + } + else { + ruby_malloc_size_overflow(x, y); + RBIMPL_UNREACHABLE_RETURN(0); + } +} + +/** + * This is an implementation detail of #RB_ALLOCV_N(). People don't use this + * directly. + * + * @param[out] store Pointer to a variable. + * @param[in] count Number of elements in an array. + * @param[in] elsize Size of each elements. + * @return Region of `count` * `elsize` bytes. + * @post `store` holds the corresponding tmp buffer object. + * + * @internal + * + * We might want to deprecate this function and make a `rbimpl_` counterpart. + */ +static inline void * +rb_alloc_tmp_buffer2(volatile VALUE *store, long count, size_t elsize) +{ + const size_t total_size = rbimpl_size_mul_or_raise(count, elsize); + const size_t cnt = (total_size + sizeof(VALUE) - 1) / sizeof(VALUE); + return rb_alloc_tmp_buffer_with_count(store, total_size, cnt); +} + +RBIMPL_SYMBOL_EXPORT_BEGIN() +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL((1)) +RBIMPL_ATTR_RETURNS_NONNULL() +/* At least since 2004, glibc's annotates memcpy to be + * __attribute__((__nonnull__(1, 2))). However it is safe to pass NULL to the + * source pointer, if n is 0. Let's wrap memcpy. */ +static inline void * +ruby_nonempty_memcpy(void *dest, const void *src, size_t n) +{ + if (n) { + return memcpy(dest, src, n); + } + else { + return dest; + } +} +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_MEMORY_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/method.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/method.h new file mode 100644 index 0000000..19feb0c --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/method.h @@ -0,0 +1,205 @@ +#ifndef RBIMPL_METHOD_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_METHOD_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Creation and modification of Ruby methods. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/backward/2/stdarg.h" + +/** + * @defgroup defmethod Defining methods + * + * There are some APIs to define a method from C. + * These API takes a C function as a method body. + * + * ### Method body functions + * + * Method body functions must return a VALUE and + * can be one of the following form: + * + * #### Fixed number of parameters + * + * This form is a normal C function, excepting it takes + * a receiver object as the first argument. + * + * ```CXX + * static VALUE my_method(VALUE self, VALUE x, VALUE y); + * ``` + * + * #### argc and argv style + * + * This form takes three parameters: argc, argv and self. + * self is the receiver. argc is the number of arguments. + * argv is a pointer to an array of the arguments. + * + * ```CXX + * static VALUE my_method(int argc, VALUE *argv, VALUE self); + * ``` + * + * #### Ruby array style + * + * This form takes two parameters: self and args. + * self is the receiver. args is an Array object which + * contains the arguments. + * + * ```CXX + * static VALUE my_method(VALUE self, VALUE args); + * ``` + * + * ### Number of parameters + * + * Method defining APIs takes the number of parameters which the + * method will takes. This number is called argc. + * argc can be: + * + * - Zero or positive number. + * This means the method body function takes a fixed number of parameters. + * + * - `-1`. + * This means the method body function is "argc and argv" style. + * + * - `-2`. + * This means the method body function is "self and args" style. + * + * @{ + */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines a method. + * + * @param[out] klass A module or a class. + * @param[in] mid Name of the function. + * @param[in] func The method body. + * @param[in] arity The number of parameters. See @ref defmethod. + * @note There are in fact 18 different prototypes for func. + * @see ::ruby::backward::cxxanyargs::define_method::rb_define_method + */ +void rb_define_method(VALUE klass, const char *mid, VALUE (*func)(ANYARGS), int arity); + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines a module function for a module. + * + * @param[out] klass A module or a class. + * @param[in] mid Name of the function. + * @param[in] func The method body. + * @param[in] arity The number of parameters. See @ref defmethod. + * @note There are in fact 18 different prototypes for func. + * @see ::ruby::backward::cxxanyargs::define_method::rb_define_module_function + */ +void rb_define_module_function(VALUE klass, const char *mid, VALUE (*func)(ANYARGS), int arity); + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines a global function. + * + * @param[in] mid Name of the function. + * @param[in] func The method body. + * @param[in] arity The number of parameters. See @ref defmethod. + * @note There are in fact 18 different prototypes for func. + * @see ::ruby::backward::cxxanyargs::define_method::rb_define_global_function + */ +void rb_define_global_function(const char *mid, VALUE (*func)(ANYARGS), int arity); + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines an undef of a method. -- What? + * + * In ruby, there are two separate concepts called "undef" and "remove_method". + * The thing you imagine when you "un-define" a method is remove_method. This + * one on the other hand is masking of a previous method definition. Suppose + * for instance: + * + * ```ruby + * class Foo + * def foo + * end + * end + * + * class Bar < Foo + * def bar + * foo + * end + * end + * + * class Baz < Foo + * undef foo # <--- (*1) + * end + * ``` + * + * This `undef foo` at `(*1)` must not eliminate `Foo#foo`, because that method + * is also used from `Bar#bar`. So instead of physically executing the target + * method, `undef` inserts a special filtering entry to the class (`Baz` this + * case). That entry, when called, acts as if there were no methods at all. + * But the original can still be accessible, via ways like `Bar#bar` above. + * + * @param[out] klass The class to insert an undef. + * @param[in] name Name of the undef. + * @exception rb_eTypeError `klass` is a non-module. + * @exception rb_eFrozenError `klass` is frozen. + * @see rb_remove_method + */ +void rb_undef_method(VALUE klass, const char *name); + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines an alias of a method. + * + * @param[in,out] klass The class which the original method belongs + * to; this is also where the new method will + * belong to. + * @param[in] dst A new name for the method. + * @param[in] src The original name of the method. + * @exception rb_eTypeError `klass` is a non-module. + * @exception rb_eFrozenError `klass` is frozen. + * @exception rb_eNameError There is no such method named as `src` in + * `klass`. + * + * @internal + * + * Above description is in fact a bit inaccurate because it ignores + * Refinements. + */ +void rb_define_alias(VALUE klass, const char *dst, const char *src); + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines public accessor method(s) for an attribute. + * + * @param[out] klass The class which the attribute will belong to. + * @param[in] name Name of the attribute. + * @param[in] read Whether to define a getter method. + * @param[in] write Whether to define a setter method. + * @exception rb_eTypeError `klass` is a non-module. + * @exception rb_eFrozenError `klass` is frozen. + * @exception rb_eNameError `name` invalid as an attr e.g. an operator. + */ +void rb_define_attr(VALUE klass, const char *name, int read, int write); + +/** @} */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_METHOD_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/module.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/module.h new file mode 100644 index 0000000..d678dd2 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/module.h @@ -0,0 +1,177 @@ +#ifndef RBIMPL_MODULE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_MODULE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Creation and modification of Ruby modules. + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" + +/** + * @defgroup class Classes and their hierarchy. + * + * @par Terminology + * - class: same as in Ruby. + * - singleton class: class for a particular object. + * - eigenclass: = singleton class + * - metaclass: class of a class. Metaclass is a kind of singleton class. + * - metametaclass: class of a metaclass. + * - meta^(n)-class: class of a meta^(n-1)-class. + * - attached object: A singleton class knows its unique instance. + * The instance is called the attached object for the singleton class. + * @{ + */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines a top-level class. + * + * @param[in] name Name of the class. + * @param[in] super A class from which the new class will derive. + * @exception rb_eTypeError The constant name `name` is already taken but the + * constant is not a class. + * @exception rb_eTypeError The class is already defined but the class can + * not be reopened because its superclass is not + * `super`. + * @exception rb_eArgError `super` is NULL. + * @return The created class. + * @post Top-level constant named `name` refers the returned class. + * @note If a class named `name` is already defined and its superclass is + * `super`, the function just returns the defined class. + * @note The compaction GC does not move classes returned by this + * function. + * + * @internal + * + * There are classes without names, but you can't pass NULL here. You have to + * use other ways to create one. + */ +VALUE rb_define_class(const char *name, VALUE super); + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines a top-level module. + * + * @param[in] name Name of the module. + * @exception rb_eTypeError The constant name `name` is already taken but the + * constant is not a module. + * @return The created module. + * @post Top-level constant named `name` refers the returned module. + * @note The compaction GC does not move classes returned by this + * function. + * + * @internal + * + * There are modules without names, but you can't pass NULL here. You have to + * use other ways to create one. + */ +VALUE rb_define_module(const char *name); + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines a class under the namespace of `outer`. + * + * @param[out] outer A class which contains the new class. + * @param[in] name Name of the new class + * @param[in] super A class from which the new class will derive. + * 0 means ::rb_cObject. + * @exception rb_eTypeError The constant name `name` is already taken but + * the constant is not a class. + * @exception rb_eTypeError The class is already defined but the class can + * not be reopened because its superclass is not + * `super`. + * @exception rb_eArgError `super` is NULL. + * @return The created class. + * @post `outer::name` refers the returned class. + * @note If a class named `name` is already defined and its superclass + * is `super`, the function just returns the defined class. + * @note The compaction GC does not move classes returned by this + * function. + */ +VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super); + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines a module under the namespace of `outer`. + * + * @param[out] outer A class which contains the new module. + * @param[in] name Name of the new module + * @exception rb_eTypeError The constant name `name` is already taken but + * the constant is not a class. + * @return The created module. + * @post `outer::name` refers the returned module. + * @note The compaction GC does not move classes returned by this + * function. + */ +VALUE rb_define_module_under(VALUE outer, const char *name); + +/** + * Includes a module to a class. + * + * @param[out] klass Inclusion destination. + * @param[in] module Inclusion source. + * @exception rb_eArgError Cyclic inclusion. + * + * @internal + * + * :FIXME: @shyouhei suspects this function lacks assertion that the arguments + * being modules... Could silently SEGV if non-module was passed? + */ +void rb_include_module(VALUE klass, VALUE module); + +/** + * Extend the object with the module. + * + * @warning This is the same as `Module#extend_object`, not + * `Object#extend`! These two methods are very similar, but not + * identical. The difference is the hook. `Module#extend_object` + * does not invoke `Module#extended`, while `Object#extend` does. + * @param[out] obj Object to extend. + * @param[in] mod Module of extension. + */ +void rb_extend_object(VALUE obj, VALUE mod); + +/** + * Identical to rb_include_module(), except it "prepends" the passed module to + * the klass, instead of includes. This affects how `super` resolves. For + * instance: + * + * ```ruby + * class Q; def foo; "" end end + * module W; def foo; "#{super}" end end + * class E < Q; include W; def foo; "#{super}" end end + * class R < Q; prepend W; def foo; "#{super}" end end + * + * E.new.foo # => "" + * r.new.foo # => "" + * ``` + * + * @param[out] klass Target class to modify. + * @param[in] module Module to prepend. + * @exception rb_eArgError Cyclic inclusion. + */ +void rb_prepend_module(VALUE klass, VALUE module); + +/** @} */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_MODULE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/newobj.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/newobj.h new file mode 100644 index 0000000..a8a5557 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/newobj.h @@ -0,0 +1,195 @@ +#ifndef RBIMPL_NEWOBJ_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_NEWOBJ_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #NEWOBJ. + */ +#include "ruby/internal/attr/deprecated.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/fl_type.h" +#include "ruby/internal/special_consts.h" +#include "ruby/internal/value.h" +#include "ruby/assert.h" + +/** + * Declares, allocates, then assigns a new object to the given variable. + * + * @param obj Variable name. + * @param type Variable type. + * @exception rb_eNoMemError No space left. + * @return An allocated object, not initialised. + * @note Modern programs tend to use #NEWOBJ_OF instead. + * + * @internal + * + * :FIXME: Should we deprecate it? + */ +#define RB_NEWOBJ(obj,type) type *(obj) = RBIMPL_CAST((type *)rb_newobj()) + +/** + * Identical to #RB_NEWOBJ, except it also accepts the allocating object's + * class and flags. + * + * @param obj Variable name. + * @param type Variable type. + * @param klass Object's class. + * @param flags Object's flags. + * @exception rb_eNoMemError No space left. + * @return An allocated object, filled with the arguments. + */ +#define RB_NEWOBJ_OF(obj,type,klass,flags) type *(obj) = RBIMPL_CAST((type *)rb_newobj_of(klass, flags)) + +#define NEWOBJ RB_NEWOBJ /**< @old{RB_NEWOBJ} */ +#define NEWOBJ_OF RB_NEWOBJ_OF /**< @old{RB_NEWOBJ_OF} */ +#define OBJSETUP rb_obj_setup /**< @old{rb_obj_setup} */ +#define CLONESETUP rb_clone_setup /**< @old{rb_clone_setup} */ +#define DUPSETUP rb_dup_setup /**< @old{rb_dup_setup} */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * This is the implementation detail of #RB_NEWOBJ. + * + * @exception rb_eNoMemError No space left. + * @return An allocated object, not initialised. + */ +VALUE rb_newobj(void); + +/** + * This is the implementation detail of #RB_NEWOBJ_OF. + * + * @param klass Object's class. + * @param flags Object's flags. + * @exception rb_eNoMemError No space left. + * @return An allocated object, filled with the arguments. + */ +VALUE rb_newobj_of(VALUE klass, VALUE flags); + +/** + * Fills common fields in the object. + * + * @note Prefer rb_newobj_of() to this function. + * @param[in,out] obj A Ruby object to be set up. + * @param[in] klass `obj` will belong to this class. + * @param[in] type One of ::ruby_value_type. + * @return The passed object. + * + * @internal + * + * Historically, authors of Ruby has described the `type` argument as "one of + * ::ruby_value_type". In reality it accepts either ::ruby_value_type, + * ::ruby_fl_type, or any combinations of the two. For instance + * `RUBY_T_STRING | RUBY_FL_FREEZE` is a valid value that this function takes, + * and means this is a frozen string. + * + * 3rd party extension libraries rarely need to allocate Strings this way. + * They normally only concern ::RUBY_T_DATA. This argument is mainly used for + * specifying flags, @shyouhei suspects. + */ +VALUE rb_obj_setup(VALUE obj, VALUE klass, VALUE type); + +/** + * Queries the class of an object. This is not always identical to + * `RBASIC_CLASS(obj)`. It searches for the nearest ancestor skipping + * singleton classes or included modules. + * + * @param[in] obj Object in question. + * @return The object's class, in a normal sense. + */ +VALUE rb_obj_class(VALUE obj); + +/** + * Clones a singleton class. An object can have its own singleton class. OK. + * Then what happens when a program clones such object? The singleton class + * that is attached to the source object must also be cloned. Otherwise a + * singleton object gets shared with two objects, which breaks "singleton"-ness + * of such class. + * + * This is basically an implementation detail of rb_clone_setup(). People + * need not be aware of this working behind-the-scene. + * + * @param[in] obj The object that has its own singleton class. + * @return Cloned singleton class. + */ +VALUE rb_singleton_class_clone(VALUE obj); + +/** + * Attaches a singleton class to its corresponding object. + * + * This is basically an implementation detail of rb_clone_setup(). People + * need not be aware of this working behind-the-scene. + * + * @param[in] klass The singleton class. + * @param[out] obj The object to attach a class. + * @pre The passed two objects must agree with each other that `klass` + * becomes a singleton class of `obj`. + * @post `klass` becomes the singleton class of `obj`. + */ +void rb_singleton_class_attached(VALUE klass, VALUE obj); + +/** + * Copies the list of instance variables. 3rd parties need not know, but there + * are several ways to store an object's instance variables, depending on its + * internal structure. This function makes sense when either of the passed + * objects are using so-called "generic" backend storage. This distinction is + * purely an implementation detail of rb_clone_setup(). People need not be + * aware of this working behind-the-scenes. + * + * @param[out] clone The destination object. + * @param[in] obj The source object. + */ +void rb_copy_generic_ivar(VALUE clone, VALUE obj); +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_DEPRECATED(("This is no longer how Object#clone works.")) +/** + * @deprecated Not sure exactly when but at some time, the implementation of + * `Object#clone` stopped using this function. It remained + * untouched for a while, and then @shyouhei realised that they + * are no longer doing the same thing. It seems nobody seriously + * uses this function any longer. Let's just abandon it. + * + * @param[out] clone The destination object. + * @param[in] obj The source object. + */ +static inline void +rb_clone_setup(VALUE clone, VALUE obj) +{ + return; +} + +RBIMPL_ATTR_DEPRECATED(("This is no longer how Object#dup works.")) +/** + * @deprecated Not sure exactly when but at some time, the implementation of + * `Object#dup` stopped using this function. It remained + * untouched for a while, and then @shyouhei realised that they + * are no longer the same thing. It seems nobody seriously uses + * this function any longer. Let's just abandon it. + * + * @param[out] dup The destination object. + * @param[in] obj The source object. + */ +static inline void +rb_dup_setup(VALUE dup, VALUE obj) +{ + return; +} + +#endif /* RBIMPL_NEWOBJ_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/rgengc.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/rgengc.h new file mode 100644 index 0000000..7ea0444 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/rgengc.h @@ -0,0 +1,443 @@ +#ifndef RBIMPL_RGENGC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_RGENGC_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief RGENGC write-barrier APIs. + * @see Sasada, K., "Gradual write-barrier insertion into a Ruby + * interpreter", in proceedings of the 2019 ACM SIGPLAN + * International Symposium on Memory Management (ISMM 2019), pp + * 115-121, 2019. https://doi.org/10.1145/3315573.3329986 + */ +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/maybe_unused.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/special_consts.h" +#include "ruby/internal/stdbool.h" +#include "ruby/internal/value.h" +#include "ruby/assert.h" + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#undef USE_RGENGC +#define USE_RGENGC 1 + +/** + * @private + * + * This is a compile-time flag to enable/disable incremental GC feature. It + * has to be set at the time ruby itself compiles. Makes no sense for 3rd + * parties. It is safe for them to set this though; that just doesn't change + * anything. + */ +#ifndef USE_RINCGC +# define USE_RINCGC 1 +#endif + +/** + * @deprecated This macro seems broken. Setting this to anything other than + * zero just doesn't compile. We need to KonMari. + */ +#ifndef USE_RGENGC_LOGGING_WB_UNPROTECT +# define USE_RGENGC_LOGGING_WB_UNPROTECT 0 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RArray. It has to be set at the time ruby itself compiles. Makes + * no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_ARRAY +# define RGENGC_WB_PROTECTED_ARRAY 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RHash. It has to be set at the time ruby itself compiles. Makes + * no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_HASH +# define RGENGC_WB_PROTECTED_HASH 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RStruct. It has to be set at the time ruby itself compiles. Makes + * no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_STRUCT +# define RGENGC_WB_PROTECTED_STRUCT 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RString. It has to be set at the time ruby itself compiles. Makes + * no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_STRING +# define RGENGC_WB_PROTECTED_STRING 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RObject. It has to be set at the time ruby itself compiles. Makes + * no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_OBJECT +# define RGENGC_WB_PROTECTED_OBJECT 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RRegexp. It has to be set at the time ruby itself compiles. Makes + * no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_REGEXP +# define RGENGC_WB_PROTECTED_REGEXP 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RClass. It has to be set at the time ruby itself compiles. Makes + * no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_CLASS +# define RGENGC_WB_PROTECTED_CLASS 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RFloat. It has to be set at the time ruby itself compiles. Makes + * no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_FLOAT +# define RGENGC_WB_PROTECTED_FLOAT 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RComplex. It has to be set at the time ruby itself compiles. + * Makes no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_COMPLEX +# define RGENGC_WB_PROTECTED_COMPLEX 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RRational. It has to be set at the time ruby itself compiles. + * Makes no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_RATIONAL +# define RGENGC_WB_PROTECTED_RATIONAL 1 +#endif + +/** + * @private + * + * This is a compile-time flag to enable/disable write barrier for + * struct ::RBignum. It has to be set at the time ruby itself compiles. Makes + * no sense for 3rd parties. + */ +#ifndef RGENGC_WB_PROTECTED_BIGNUM +# define RGENGC_WB_PROTECTED_BIGNUM 1 +#endif + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + * + * @internal + * + * @shyouhei doesn't think anybody uses this right now. + */ +#ifndef RGENGC_WB_PROTECTED_NODE_CREF +# define RGENGC_WB_PROTECTED_NODE_CREF 1 +#endif + +/** + * @defgroup rgengc Write barrier (WB) interfaces: + * + * @note The following core interfaces can be changed in the future. Please + * catch up if you want to insert WB into C-extensions correctly. + * + * @{ + */ + +/** + * Declaration of a "back" pointer. This is a write barrier for new reference + * from "old" generation to "young" generation. It writes `young` into + * `*slot`, which is a pointer inside of `old`. + * + * @param[in] old An old object. + * @param[in] slot A pointer inside of `old`. + * @param[out] young A young object. + */ +#define RB_OBJ_WRITE(old, slot, young) \ + RBIMPL_CAST(rb_obj_write((VALUE)(old), (VALUE *)(slot), (VALUE)(young), __FILE__, __LINE__)) + +/** + * Identical to #RB_OBJ_WRITE(), except it doesn't write any values, but only a + * WB declaration. `oldv` is replaced value with `b` (not used in current + * Ruby). + * + * @param[in] old An old object. + * @param[in] oldv An object previously stored inside of `old`. + * @param[out] young A young object. + */ +#define RB_OBJ_WRITTEN(old, oldv, young) \ + RBIMPL_CAST(rb_obj_written((VALUE)(old), (VALUE)(oldv), (VALUE)(young), __FILE__, __LINE__)) +/** @} */ + +#define OBJ_PROMOTED_RAW RB_OBJ_PROMOTED_RAW /**< @old{RB_OBJ_PROMOTED_RAW} */ +#define OBJ_PROMOTED RB_OBJ_PROMOTED /**< @old{RB_OBJ_PROMOTED} */ +#define OBJ_WB_UNPROTECT RB_OBJ_WB_UNPROTECT /**< @old{RB_OBJ_WB_UNPROTECT} */ + +/** + * Asserts that the passed object is not fenced by write barriers. Objects of + * such property do not contribute to generational GCs. They are scanned + * always. + * + * @param[out] x An object that would not be protected by the barrier. + */ +#define RB_OBJ_WB_UNPROTECT(x) rb_obj_wb_unprotect(x, __FILE__, __LINE__) + +/** + * Identical to #RB_OBJ_WB_UNPROTECT(), except it can also assert that the + * given object is of given type. + * + * @param[in] type One of `ARRAY`, `STRING`, etc. + * @param[out] obj An object of `type` that would not be protected. + * + * @internal + * + * @shyouhei doesn't understand why this has to be visible from extensions. + */ +#define RB_OBJ_WB_UNPROTECT_FOR(type, obj) \ + (RGENGC_WB_PROTECTED_##type ? OBJ_WB_UNPROTECT(obj) : obj) + +/** + * @private + * + * This is an implementation detail of rb_obj_wb_unprotect(). People don't use + * it directly. + */ +#define RGENGC_LOGGING_WB_UNPROTECT rb_gc_unprotect_logging + +/** @cond INTERNAL_MACRO */ +#define RB_OBJ_PROMOTED_RAW RB_OBJ_PROMOTED_RAW +#define RB_OBJ_PROMOTED RB_OBJ_PROMOTED +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() +/** + * This is the implementation of #RB_OBJ_WRITE(). People don't use it + * directly. + * + * @param[in] old An object that points to `young`. + * @param[out] young An object that is referenced from `old`. + */ +void rb_gc_writebarrier(VALUE old, VALUE young); + +/** + * This is the implementation of #RB_OBJ_WB_UNPROTECT(). People don't use it + * directly. + * + * @param[out] obj An object that does not participate in WB. + */ +void rb_gc_writebarrier_unprotect(VALUE obj); + +#if USE_RGENGC_LOGGING_WB_UNPROTECT +/** + * @private + * + * This is the implementation of #RGENGC_LOGGING_WB_UNPROTECT(). People + * don't use it directly. + * + * @param[in] objptr Don't know why this is a pointer to void but in + * reality this is a pointer to an object that is about + * to be un-protected. + * @param[in] filename Pass C's `__FILE__` here. + * @param[in] line Pass C's `__LINE__` here. + */ +void rb_gc_unprotect_logging(void *objptr, const char *filename, int line); +#endif + +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * This is the implementation of #RB_OBJ_PROMOTED(). People don't use it + * directly. + * + * @param[in] obj An object to query. + * @retval true The object is "promoted". + * @retval false The object is young. Have not experienced GC at all. + */ +static inline bool +RB_OBJ_PROMOTED_RAW(VALUE obj) +{ + RBIMPL_ASSERT_OR_ASSUME(RB_FL_ABLE(obj)); + return RB_FL_ANY_RAW(obj, RUBY_FL_PROMOTED); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Tests if the object is "promoted" -- that is, whether the object experienced + * one or more GC marks. + * + * @param[in] obj An object to query. + * @retval true The object is "promoted". + * @retval false The object is young. Have not experienced GC at all. + * @note Hello, is anyone actively calling this function? @shyouhei have + * never seen any actual usages outside of the GC implementation + * itself. + */ +static inline bool +RB_OBJ_PROMOTED(VALUE obj) +{ + if (! RB_FL_ABLE(obj)) { + return false; + } + else { + return RB_OBJ_PROMOTED_RAW(obj); + } +} + +/** + * This is the implementation of #RB_OBJ_WB_UNPROTECT(). People don't use it + * directly. + * + * @param[out] x An object that does not participate in WB. + * @param[in] filename C's `__FILE__` of the caller function. + * @param[in] line C's `__LINE__` of the caller function. + * @return x + */ +static inline VALUE +rb_obj_wb_unprotect( + VALUE x, + RBIMPL_ATTR_MAYBE_UNUSED() + const char *filename, + RBIMPL_ATTR_MAYBE_UNUSED() + int line) +{ +#if USE_RGENGC_LOGGING_WB_UNPROTECT + RGENGC_LOGGING_WB_UNPROTECT(RBIMPL_CAST((void *)x), filename, line); +#endif + rb_gc_writebarrier_unprotect(x); + return x; +} + +/** + * @private + * + * This is the implementation of #RB_OBJ_WRITTEN(). People don't use it + * directly. + * + * @param[in] a An old object. + * @param[in] oldv An object previously stored inside of `old`. + * @param[out] b A young object. + * @param[in] filename C's `__FILE__` of the caller function. + * @param[in] line C's `__LINE__` of the caller function. + * @return a + */ +static inline VALUE +rb_obj_written( + VALUE a, + RBIMPL_ATTR_MAYBE_UNUSED() + VALUE oldv, + VALUE b, + RBIMPL_ATTR_MAYBE_UNUSED() + const char *filename, + RBIMPL_ATTR_MAYBE_UNUSED() + int line) +{ +#if USE_RGENGC_LOGGING_WB_UNPROTECT + RGENGC_LOGGING_OBJ_WRITTEN(a, oldv, b, filename, line); +#endif + + if (!RB_SPECIAL_CONST_P(b)) { + rb_gc_writebarrier(a, b); + } + + return a; +} + +/** + * @private + * + * This is the implementation of #RB_OBJ_WRITE(). People don't use it + * directly. + * + * @param[in] a An old object. + * @param[in] slot A pointer inside of `old`. + * @param[out] b A young object. + * @param[in] filename C's `__FILE__` of the caller function. + * @param[in] line C's `__LINE__` of the caller function. + * @return a + */ +static inline VALUE +rb_obj_write( + VALUE a, VALUE *slot, VALUE b, + RBIMPL_ATTR_MAYBE_UNUSED() + const char *filename, + RBIMPL_ATTR_MAYBE_UNUSED() + int line) +{ +#ifdef RGENGC_LOGGING_WRITE + RGENGC_LOGGING_WRITE(a, slot, b, filename, line); +#endif + + *slot = b; + + rb_obj_written(a, RUBY_Qundef /* ignore `oldv' now */, b, filename, line); + return a; +} + +#endif /* RBIMPL_RGENGC_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/scan_args.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/scan_args.h new file mode 100644 index 0000000..1ed2bf6 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/scan_args.h @@ -0,0 +1,534 @@ +#ifndef RBIMPL_SCAN_ARGS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_SCAN_ARGS_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Compile-time static implementation of ::rb_scan_args(). + * + * This is a beast. It statically analyses the argument spec string, and + * expands the assignment of variables into dedicated codes. + */ +#include "ruby/assert.h" +#include "ruby/internal/attr/diagnose_if.h" +#include "ruby/internal/attr/error.h" +#include "ruby/internal/attr/forceinline.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/config.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/intern/array.h" /* rb_ary_new_from_values */ +#include "ruby/internal/intern/error.h" /* rb_error_arity */ +#include "ruby/internal/intern/hash.h" /* rb_hash_dup */ +#include "ruby/internal/intern/proc.h" /* rb_block_proc */ +#include "ruby/internal/iterator.h" /* rb_block_given_p / rb_keyword_given_p */ +#include "ruby/internal/static_assert.h" +#include "ruby/internal/stdbool.h" +#include "ruby/internal/value.h" + +/** + * @name Possible values that you should pass to rb_scan_args_kw(). + * @{ + */ + +/** Same behaviour as rb_scan_args(). */ +#define RB_SCAN_ARGS_PASS_CALLED_KEYWORDS 0 + +/** The final argument should be a hash treated as keywords.*/ +#define RB_SCAN_ARGS_KEYWORDS 1 + +/** + * Treat a final argument as keywords if it is a hash, and not as keywords + * otherwise. + */ +#define RB_SCAN_ARGS_LAST_HASH_KEYWORDS 3 + +/** @} */ + +/** + * @name Possible values that you should pass to rb_funcallv_kw(). + * @{ + */ + +/** Do not pass keywords. */ +#define RB_NO_KEYWORDS 0 + +/** Pass keywords, final argument should be a hash of keywords. */ +#define RB_PASS_KEYWORDS 1 + +/** + * Pass keywords if current method is called with keywords, useful for argument + * delegation + */ +#define RB_PASS_CALLED_KEYWORDS rb_keyword_given_p() + +/** @} */ + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define HAVE_RB_SCAN_ARGS_OPTIONAL_HASH 1 + +RBIMPL_SYMBOL_EXPORT_BEGIN() +RBIMPL_ATTR_NONNULL((2, 3)) +/** + * Retrieves argument from argc and argv to given ::VALUE references according + * to the format string. The format can be described in ABNF as follows: + * + * ``` + * scan-arg-spec := param-arg-spec [keyword-arg-spec] [block-arg-spec] + * + * param-arg-spec := pre-arg-spec [post-arg-spec] / post-arg-spec / + * pre-opt-post-arg-spec + * pre-arg-spec := num-of-leading-mandatory-args + * [num-of-optional-args] + * post-arg-spec := sym-for-variable-length-args + * [num-of-trailing-mandatory-args] + * pre-opt-post-arg-spec := num-of-leading-mandatory-args num-of-optional-args + * num-of-trailing-mandatory-args + * keyword-arg-spec := sym-for-keyword-arg + * block-arg-spec := sym-for-block-arg + * + * num-of-leading-mandatory-args := DIGIT ; The number of leading mandatory + * ; arguments + * num-of-optional-args := DIGIT ; The number of optional arguments + * sym-for-variable-length-args := "*" ; Indicates that variable length + * ; arguments are captured as a ruby + * ; array + * num-of-trailing-mandatory-args := DIGIT ; The number of trailing mandatory + * ; arguments + * sym-for-keyword-arg := ":" ; Indicates that keyword argument + * ; captured as a hash. + * ; If keyword arguments are not + * ; provided, returns nil. + * sym-for-block-arg := "&" ; Indicates that an iterator block + * ; should be captured if given + * ``` + * + * For example, "12" means that the method requires at least one argument, and + * at most receives three (1+2) arguments. So, the format string must be + * followed by three variable references, which are to be assigned to captured + * arguments. For omitted arguments, variables are set to ::RUBY_Qnil. `NULL` + * can be put in place of a variable reference, which means the corresponding + * captured argument(s) should be just dropped. + * + * The number of given arguments, excluding an option hash or iterator block, + * is returned. + * + * @param[in] argc Length of `argv`. + * @param[in] argv Pointer to the arguments to parse. + * @param[in] fmt Format, in the language described above. + * @param[out] ... Variables to fill in. + * @exception rb_eFatal Malformed `fmt`. + * @exception rb_eArgError Arity mismatch. + * @return Actually parsed number of given arguments. + * @post Each values passed to `argv` is filled into the variadic + * arguments, according to the format. + */ +int rb_scan_args(int argc, const VALUE *argv, const char *fmt, ...); + +RBIMPL_ATTR_NONNULL((3, 4)) +/** + * Identical to rb_scan_args(), except it also accepts `kw_splat`. + * + * @param[in] kw_splat How to understand the keyword arguments. + * - RB_SCAN_ARGS_PASS_CALLED_KEYWORDS: Same behaviour as rb_scan_args(). + * - RB_SCAN_ARGS_KEYWORDS: The final argument is a kwarg. + * - RB_SCAN_ARGS_LAST_HASH_KEYWORDS: The final argument is a kwarg, iff it + * is a hash. + * @param[in] argc Length of `argv`. + * @param[in] argv Pointer to the arguments to parse. + * @param[in] fmt Format, in the language described above. + * @param[out] ... Variables to fill in. + * @exception rb_eFatal Malformed `fmt`. + * @exception rb_eArgError Arity mismatch. + * @return Actually parsed number of given arguments. + * @post Each values passed to `argv` is filled into the variadic + * arguments, according to the format. + */ +int rb_scan_args_kw(int kw_splat, int argc, const VALUE *argv, const char *fmt, ...); + +RBIMPL_ATTR_ERROR(("bad scan arg format")) +/** + * @private + * + * This is an implementation detail of rb_scan_args(). People don't use it + * directly. + */ +void rb_scan_args_bad_format(const char*); + +RBIMPL_ATTR_ERROR(("variable argument length doesn't match")) +/** + * @private + * + * This is an implementation detail of rb_scan_args(). People don't use it + * directly. + */ +void rb_scan_args_length_mismatch(const char*,int); + +RBIMPL_SYMBOL_EXPORT_END() + +/** @cond INTERNAL_MACRO */ + +/* If we could use constexpr the following macros could be inline functions + * ... but sadly we cannot. */ + +#define rb_scan_args_isdigit(c) (RBIMPL_CAST((unsigned char)((c)-'0'))<10) + +#define rb_scan_args_count_end(fmt, ofs, vari) \ + ((fmt)[ofs] ? -1 : (vari)) + +#define rb_scan_args_count_block(fmt, ofs, vari) \ + ((fmt)[ofs]!='&' ? \ + rb_scan_args_count_end(fmt, ofs, vari) : \ + rb_scan_args_count_end(fmt, (ofs)+1, (vari)+1)) + +#define rb_scan_args_count_hash(fmt, ofs, vari) \ + ((fmt)[ofs]!=':' ? \ + rb_scan_args_count_block(fmt, ofs, vari) : \ + rb_scan_args_count_block(fmt, (ofs)+1, (vari)+1)) + +#define rb_scan_args_count_trail(fmt, ofs, vari) \ + (!rb_scan_args_isdigit((fmt)[ofs]) ? \ + rb_scan_args_count_hash(fmt, ofs, vari) : \ + rb_scan_args_count_hash(fmt, (ofs)+1, (vari)+((fmt)[ofs]-'0'))) + +#define rb_scan_args_count_var(fmt, ofs, vari) \ + ((fmt)[ofs]!='*' ? \ + rb_scan_args_count_trail(fmt, ofs, vari) : \ + rb_scan_args_count_trail(fmt, (ofs)+1, (vari)+1)) + +#define rb_scan_args_count_opt(fmt, ofs, vari) \ + (!rb_scan_args_isdigit((fmt)[ofs]) ? \ + rb_scan_args_count_var(fmt, ofs, vari) : \ + rb_scan_args_count_var(fmt, (ofs)+1, (vari)+(fmt)[ofs]-'0')) + +#define rb_scan_args_count_lead(fmt, ofs, vari) \ + (!rb_scan_args_isdigit((fmt)[ofs]) ? \ + rb_scan_args_count_var(fmt, ofs, vari) : \ + rb_scan_args_count_opt(fmt, (ofs)+1, (vari)+(fmt)[ofs]-'0')) + +#define rb_scan_args_count(fmt) rb_scan_args_count_lead(fmt, 0, 0) + +#if RBIMPL_HAS_ATTRIBUTE(diagnose_if) +# /* Assertions done in the attribute. */ +# define rb_scan_args_verify(fmt, varc) RBIMPL_ASSERT_NOTHING +#else +# /* At one sight it _seems_ the expressions below could be written using +# * static assertions. The reality is no, they don't. Because fmt is a +# * string literal, any operations against fmt cannot produce the "integer +# * constant expression"s, as defined in ISO/IEC 9899:2018 section 6.6 +# * paragraph #6. Static assertions need such integer constant expressions as +# * defined in ISO/IEC 9899:2018 section 6.7.10 paragraph #3. +# * +# * GCC nonetheless constant-folds this into a no-op, though. */ +# define rb_scan_args_verify(fmt, varc) \ + (sizeof(char[1-2*(rb_scan_args_count(fmt)<0)])!=1 ? \ + rb_scan_args_bad_format(fmt) : \ + sizeof(char[1-2*(rb_scan_args_count(fmt)!=(varc))])!=1 ? \ + rb_scan_args_length_mismatch(fmt, varc) : \ + RBIMPL_ASSERT_NOTHING) +#endif + +static inline bool +rb_scan_args_keyword_p(int kw_flag, VALUE last) +{ + switch (kw_flag) { + case RB_SCAN_ARGS_PASS_CALLED_KEYWORDS: + return !! rb_keyword_given_p(); + case RB_SCAN_ARGS_KEYWORDS: + return true; + case RB_SCAN_ARGS_LAST_HASH_KEYWORDS: + return RB_TYPE_P(last, T_HASH); + default: + return false; + } +} + +RBIMPL_ATTR_FORCEINLINE() +static bool +rb_scan_args_lead_p(const char *fmt) +{ + return rb_scan_args_isdigit(fmt[0]); +} + +RBIMPL_ATTR_FORCEINLINE() +static int +rb_scan_args_n_lead(const char *fmt) +{ + return (rb_scan_args_lead_p(fmt) ? fmt[0]-'0' : 0); +} + +RBIMPL_ATTR_FORCEINLINE() +static bool +rb_scan_args_opt_p(const char *fmt) +{ + return (rb_scan_args_lead_p(fmt) && rb_scan_args_isdigit(fmt[1])); +} + +RBIMPL_ATTR_FORCEINLINE() +static int +rb_scan_args_n_opt(const char *fmt) +{ + return (rb_scan_args_opt_p(fmt) ? fmt[1]-'0' : 0); +} + +RBIMPL_ATTR_FORCEINLINE() +static int +rb_scan_args_var_idx(const char *fmt) +{ + return (!rb_scan_args_lead_p(fmt) ? 0 : !rb_scan_args_isdigit(fmt[1]) ? 1 : 2); +} + +RBIMPL_ATTR_FORCEINLINE() +static bool +rb_scan_args_f_var(const char *fmt) +{ + return (fmt[rb_scan_args_var_idx(fmt)]=='*'); +} + +RBIMPL_ATTR_FORCEINLINE() +static int +rb_scan_args_trail_idx(const char *fmt) +{ + const int idx = rb_scan_args_var_idx(fmt); + return idx+(fmt[idx]=='*'); +} + +RBIMPL_ATTR_FORCEINLINE() +static int +rb_scan_args_n_trail(const char *fmt) +{ + const int idx = rb_scan_args_trail_idx(fmt); + return (rb_scan_args_isdigit(fmt[idx]) ? fmt[idx]-'0' : 0); +} + +RBIMPL_ATTR_FORCEINLINE() +static int +rb_scan_args_hash_idx(const char *fmt) +{ + const int idx = rb_scan_args_trail_idx(fmt); + return idx+rb_scan_args_isdigit(fmt[idx]); +} + +RBIMPL_ATTR_FORCEINLINE() +static bool +rb_scan_args_f_hash(const char *fmt) +{ + return (fmt[rb_scan_args_hash_idx(fmt)]==':'); +} + +RBIMPL_ATTR_FORCEINLINE() +static int +rb_scan_args_block_idx(const char *fmt) +{ + const int idx = rb_scan_args_hash_idx(fmt); + return idx+(fmt[idx]==':'); +} + +RBIMPL_ATTR_FORCEINLINE() +static bool +rb_scan_args_f_block(const char *fmt) +{ + return (fmt[rb_scan_args_block_idx(fmt)]=='&'); +} + +# if 0 +RBIMPL_ATTR_FORCEINLINE() +static int +rb_scan_args_end_idx(const char *fmt) +{ + const int idx = rb_scan_args_block_idx(fmt); + return idx+(fmt[idx]=='&'); +} +# endif + +/* NOTE: Use `char *fmt` instead of `const char *fmt` because of clang's bug*/ +/* https://bugs.llvm.org/show_bug.cgi?id=38095 */ +# define rb_scan_args0(argc, argv, fmt, varc, vars) \ + rb_scan_args_set(RB_SCAN_ARGS_PASS_CALLED_KEYWORDS, argc, argv, \ + rb_scan_args_n_lead(fmt), \ + rb_scan_args_n_opt(fmt), \ + rb_scan_args_n_trail(fmt), \ + rb_scan_args_f_var(fmt), \ + rb_scan_args_f_hash(fmt), \ + rb_scan_args_f_block(fmt), \ + (rb_scan_args_verify(fmt, varc), vars), (char *)fmt, varc) +# define rb_scan_args_kw0(kw_flag, argc, argv, fmt, varc, vars) \ + rb_scan_args_set(kw_flag, argc, argv, \ + rb_scan_args_n_lead(fmt), \ + rb_scan_args_n_opt(fmt), \ + rb_scan_args_n_trail(fmt), \ + rb_scan_args_f_var(fmt), \ + rb_scan_args_f_hash(fmt), \ + rb_scan_args_f_block(fmt), \ + (rb_scan_args_verify(fmt, varc), vars), (char *)fmt, varc) + +RBIMPL_ATTR_FORCEINLINE() +static int +rb_scan_args_set(int kw_flag, int argc, const VALUE *argv, + int n_lead, int n_opt, int n_trail, + bool f_var, bool f_hash, bool f_block, + VALUE *vars[], RB_UNUSED_VAR(const char *fmt), RB_UNUSED_VAR(int varc)) + RBIMPL_ATTR_DIAGNOSE_IF(rb_scan_args_count(fmt) < 0, "bad scan arg format", "error") + RBIMPL_ATTR_DIAGNOSE_IF(rb_scan_args_count(fmt) != varc, "variable argument length doesn't match", "error") +{ + int i, argi = 0, vari = 0; + VALUE *var, hash = Qnil; +#define rb_scan_args_next_param() vars[vari++] + const int n_mand = n_lead + n_trail; + + /* capture an option hash - phase 1: pop from the argv */ + if (f_hash && argc > 0) { + VALUE last = argv[argc - 1]; + if (rb_scan_args_keyword_p(kw_flag, last)) { + hash = rb_hash_dup(last); + argc--; + } + } + + if (argc < n_mand) { + goto argc_error; + } + + /* capture leading mandatory arguments */ + for (i = 0; i < n_lead; i++) { + var = rb_scan_args_next_param(); + if (var) *var = argv[argi]; + argi++; + } + + /* capture optional arguments */ + for (i = 0; i < n_opt; i++) { + var = rb_scan_args_next_param(); + if (argi < argc - n_trail) { + if (var) *var = argv[argi]; + argi++; + } + else { + if (var) *var = Qnil; + } + } + + /* capture variable length arguments */ + if (f_var) { + int n_var = argc - argi - n_trail; + + var = rb_scan_args_next_param(); + if (0 < n_var) { + if (var) *var = rb_ary_new_from_values(n_var, &argv[argi]); + argi += n_var; + } + else { + if (var) *var = rb_ary_new(); + } + } + + /* capture trailing mandatory arguments */ + for (i = 0; i < n_trail; i++) { + var = rb_scan_args_next_param(); + if (var) *var = argv[argi]; + argi++; + } + + /* capture an option hash - phase 2: assignment */ + if (f_hash) { + var = rb_scan_args_next_param(); + if (var) *var = hash; + } + + /* capture iterator block */ + if (f_block) { + var = rb_scan_args_next_param(); + if (rb_block_given_p()) { + *var = rb_block_proc(); + } + else { + *var = Qnil; + } + } + + if (argi == argc) { + return argc; + } + + argc_error: + rb_error_arity(argc, n_mand, f_var ? UNLIMITED_ARGUMENTS : n_mand + n_opt); + UNREACHABLE_RETURN(-1); +#undef rb_scan_args_next_param +} + +/** @endcond */ + +#if defined(__DOXYGEN__) +# /* don't bother */ + +#elif ! defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P) +# /* skip */ + +#elif ! defined(HAVE_VA_ARGS_MACRO) +# /* skip */ + +#elif ! defined(__OPTIMIZE__) +# /* skip */ + +#elif defined(HAVE___VA_OPT__) +# define rb_scan_args(argc, argvp, fmt, ...) \ + __builtin_choose_expr( \ + __builtin_constant_p(fmt), \ + rb_scan_args0( \ + argc, argvp, fmt, \ + (sizeof((VALUE*[]){__VA_ARGS__})/sizeof(VALUE*)), \ + ((VALUE*[]){__VA_ARGS__})), \ + (rb_scan_args)(argc, argvp, fmt __VA_OPT__(, __VA_ARGS__))) +# define rb_scan_args_kw(kw_flag, argc, argvp, fmt, ...) \ + __builtin_choose_expr( \ + __builtin_constant_p(fmt), \ + rb_scan_args_kw0( \ + kw_flag, argc, argvp, fmt, \ + (sizeof((VALUE*[]){__VA_ARGS__})/sizeof(VALUE*)), \ + ((VALUE*[]){__VA_ARGS__})), \ + (rb_scan_args_kw)(kw_flag, argc, argvp, fmt __VA_OPT__(, __VA_ARGS__))) + +#elif defined(__STRICT_ANSI__) +# /* skip */ + +#elif defined(__GNUC__) +# define rb_scan_args(argc, argvp, fmt, ...) \ + __builtin_choose_expr( \ + __builtin_constant_p(fmt), \ + rb_scan_args0( \ + argc, argvp, fmt, \ + (sizeof((VALUE*[]){__VA_ARGS__})/sizeof(VALUE*)), \ + ((VALUE*[]){__VA_ARGS__})), \ + (rb_scan_args)(argc, argvp, fmt, __VA_ARGS__)) +# define rb_scan_args_kw(kw_flag, argc, argvp, fmt, ...) \ + __builtin_choose_expr( \ + __builtin_constant_p(fmt), \ + rb_scan_args_kw0( \ + kw_flag, argc, argvp, fmt, \ + (sizeof((VALUE*[]){__VA_ARGS__})/sizeof(VALUE*)), \ + ((VALUE*[]){__VA_ARGS__})), \ + (rb_scan_args_kw)(kw_flag, argc, argvp, fmt, __VA_ARGS__ /**/)) +#endif + +#endif /* RBIMPL_SCAN_ARGS_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/special_consts.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/special_consts.h new file mode 100644 index 0000000..dc0a6b4 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/special_consts.h @@ -0,0 +1,362 @@ +#ifndef RBIMPL_SPECIAL_CONSTS_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_SPECIAL_CONSTS_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines enum ::ruby_special_consts. + * @see Sasada, K., "A Lightweight Representation of Floating-Point + * Numbers on Ruby Interpreter", in proceedings of 10th JSSST + * SIGPPL Workshop on Programming and Programming Languages + * (PPL2008), pp. 9-16, 2008. + */ +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/constexpr.h" +#include "ruby/internal/attr/enum_extensibility.h" +#include "ruby/internal/stdbool.h" +#include "ruby/internal/value.h" + +/** + * @private + * @warning Do not touch this macro. + * @warning It is an implementation detail. + * @warning The value of this macro must match for ruby itself and all + * extension libraries, otherwise serious memory corruption shall + * occur. + */ +#if defined(USE_FLONUM) +# /* Take that. */ +#elif SIZEOF_VALUE >= SIZEOF_DOUBLE +# define USE_FLONUM 1 +#else +# define USE_FLONUM 0 +#endif + +/** This is an old name of #RB_TEST. Not sure which name is preferred. */ +#define RTEST RB_TEST + +#define FIXNUM_P RB_FIXNUM_P /**< @old{RB_FIXNUM_P} */ +#define IMMEDIATE_P RB_IMMEDIATE_P /**< @old{RB_IMMEDIATE_P} */ +#define NIL_P RB_NIL_P /**< @old{RB_NIL_P} */ +#define SPECIAL_CONST_P RB_SPECIAL_CONST_P /**< @old{RB_SPECIAL_CONST_P} */ +#define STATIC_SYM_P RB_STATIC_SYM_P /**< @old{RB_STATIC_SYM_P} */ + +#define Qfalse RUBY_Qfalse /**< @old{RUBY_Qfalse} */ +#define Qnil RUBY_Qnil /**< @old{RUBY_Qnil} */ +#define Qtrue RUBY_Qtrue /**< @old{RUBY_Qtrue} */ +#define Qundef RUBY_Qundef /**< @old{RUBY_Qundef} */ + +#define FIXNUM_FLAG RUBY_FIXNUM_FLAG /**< @old{RUBY_FIXNUM_FLAG} */ +#define FLONUM_FLAG RUBY_FLONUM_FLAG /**< @old{RUBY_FLONUM_FLAG} */ +#define FLONUM_MASK RUBY_FLONUM_MASK /**< @old{RUBY_FLONUM_MASK} */ +#define FLONUM_P RB_FLONUM_P /**< @old{RB_FLONUM_P} */ +#define IMMEDIATE_MASK RUBY_IMMEDIATE_MASK /**< @old{RUBY_IMMEDIATE_MASK} */ +#define SYMBOL_FLAG RUBY_SYMBOL_FLAG /**< @old{RUBY_SYMBOL_FLAG} */ + +/** @cond INTERNAL_MACRO */ +#define RB_FIXNUM_P RB_FIXNUM_P +#define RB_FLONUM_P RB_FLONUM_P +#define RB_IMMEDIATE_P RB_IMMEDIATE_P +#define RB_NIL_P RB_NIL_P +#define RB_SPECIAL_CONST_P RB_SPECIAL_CONST_P +#define RB_STATIC_SYM_P RB_STATIC_SYM_P +#define RB_TEST RB_TEST +#define RB_UNDEF_P RB_UNDEF_P +#define RB_NIL_OR_UNDEF_P RB_NIL_OR_UNDEF_P +/** @endcond */ + +/** special constants - i.e. non-zero and non-fixnum constants */ +enum +RBIMPL_ATTR_ENUM_EXTENSIBILITY(closed) +ruby_special_consts { +#if defined(__DOXYGEN__) + RUBY_Qfalse, /**< @see ::rb_cFalseClass */ + RUBY_Qtrue, /**< @see ::rb_cTrueClass */ + RUBY_Qnil, /**< @see ::rb_cNilClass */ + RUBY_Qundef, /**< Represents so-called undef. */ + RUBY_IMMEDIATE_MASK, /**< Bit mask detecting special consts. */ + RUBY_FIXNUM_FLAG, /**< Flag to denote a fixnum. */ + RUBY_FLONUM_MASK, /**< Bit mask detecting a flonum. */ + RUBY_FLONUM_FLAG, /**< Flag to denote a flonum. */ + RUBY_SYMBOL_FLAG, /**< Flag to denote a static symbol. */ +#elif USE_FLONUM + RUBY_Qfalse = 0x00, /* ...0000 0000 */ + RUBY_Qnil = 0x04, /* ...0000 0100 */ + RUBY_Qtrue = 0x14, /* ...0001 0100 */ + RUBY_Qundef = 0x24, /* ...0010 0100 */ + RUBY_IMMEDIATE_MASK = 0x07, /* ...0000 0111 */ + RUBY_FIXNUM_FLAG = 0x01, /* ...xxxx xxx1 */ + RUBY_FLONUM_MASK = 0x03, /* ...0000 0011 */ + RUBY_FLONUM_FLAG = 0x02, /* ...xxxx xx10 */ + RUBY_SYMBOL_FLAG = 0x0c, /* ...xxxx 1100 */ +#else + RUBY_Qfalse = 0x00, /* ...0000 0000 */ + RUBY_Qnil = 0x02, /* ...0000 0010 */ + RUBY_Qtrue = 0x06, /* ...0000 0110 */ + RUBY_Qundef = 0x0a, /* ...0000 1010 */ + RUBY_IMMEDIATE_MASK = 0x03, /* ...0000 0011 */ + RUBY_FIXNUM_FLAG = 0x01, /* ...xxxx xxx1 */ + RUBY_FLONUM_MASK = 0x00, /* any values ANDed with FLONUM_MASK cannot be FLONUM_FLAG */ + RUBY_FLONUM_FLAG = 0x02, /* ...0000 0010 */ + RUBY_SYMBOL_FLAG = 0x0e, /* ...xxxx 1110 */ +#endif + + RUBY_SPECIAL_SHIFT = 8 /**< Least significant 8 bits are reserved. */ +}; + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Emulates Ruby's "if" statement. + * + * @param[in] obj An arbitrary ruby object. + * @retval false `obj` is either ::RUBY_Qfalse or ::RUBY_Qnil. + * @retval true Anything else. + * + * @internal + * + * It HAS to be `__attribute__((const))` in order for clang to properly deduce + * `__builtin_assume()`. + */ +static inline bool +RB_TEST(VALUE obj) +{ + /* + * if USE_FLONUM + * Qfalse: ....0000 0000 + * Qnil: ....0000 0100 + * ~Qnil: ....1111 1011 + * v ....xxxx xxxx + * ---------------------------- + * RTEST(v) ....xxxx x0xx + * + * if ! USE_FLONUM + * Qfalse: ....0000 0000 + * Qnil: ....0000 0010 + * ~Qnil: ....1111 1101 + * v ....xxxx xxxx + * ---------------------------- + * RTEST(v) ....xxxx xx0x + * + * RTEST(v) can be 0 if and only if (v == Qfalse || v == Qnil). + */ + return obj & ~RUBY_Qnil; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks if the given object is nil. + * + * @param[in] obj An arbitrary ruby object. + * @retval true `obj` is ::RUBY_Qnil. + * @retval false Anything else. + */ +static inline bool +RB_NIL_P(VALUE obj) +{ + return obj == RUBY_Qnil; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks if the given object is undef. + * + * @param[in] obj An arbitrary ruby object. + * @retval true `obj` is ::RUBY_Qundef. + * @retval false Anything else. + */ +static inline bool +RB_UNDEF_P(VALUE obj) +{ + return obj == RUBY_Qundef; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX14) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks if the given object is nil or undef. Can be used to see if + * a keyword argument is not given or given `nil`. + * + * @param[in] obj An arbitrary ruby object. + * @retval true `obj` is ::RUBY_Qnil or ::RUBY_Qundef. + * @retval false Anything else. + */ +static inline bool +RB_NIL_OR_UNDEF_P(VALUE obj) +{ + /* + * if USE_FLONUM + * Qundef: ....0010 0100 + * Qnil: ....0000 0100 + * mask: ....1101 1111 + * common_bits: ....0000 0100 + * --------------------------------- + * Qnil & mask ....0000 0100 + * Qundef & mask ....0000 0100 + * + * if ! USE_FLONUM + * Qundef: ....0000 1010 + * Qnil: ....0000 0010 + * mask: ....1111 0111 + * common_bits: ....0000 0010 + * ---------------------------- + * Qnil & mask ....0000 0010 + * Qundef & mask ....0000 0010 + * + * NIL_OR_UNDEF_P(v) can be true only when v is Qundef or Qnil. + */ + const VALUE mask = ~(RUBY_Qundef ^ RUBY_Qnil); + const VALUE common_bits = RUBY_Qundef & RUBY_Qnil; + return (obj & mask) == common_bits; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks if the given object is a so-called Fixnum. + * + * @param[in] obj An arbitrary ruby object. + * @retval true `obj` is a Fixnum. + * @retval false Anything else. + * @note Fixnum was a thing in the 20th century, but it is rather an + * implementation detail today. + */ +static inline bool +RB_FIXNUM_P(VALUE obj) +{ + return obj & RUBY_FIXNUM_FLAG; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX14) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks if the given object is a static symbol. + * + * @param[in] obj An arbitrary ruby object. + * @retval true `obj` is a static symbol + * @retval false Anything else. + * @see RB_DYNAMIC_SYM_P() + * @see RB_SYMBOL_P() + * @note These days there are static and dynamic symbols, just like we + * once had Fixnum/Bignum back in the old days. + */ +static inline bool +RB_STATIC_SYM_P(VALUE obj) +{ + RBIMPL_ATTR_CONSTEXPR(CXX14) + const VALUE mask = ~(RBIMPL_VALUE_FULL << RUBY_SPECIAL_SHIFT); + return (obj & mask) == RUBY_SYMBOL_FLAG; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks if the given object is a so-called Flonum. + * + * @param[in] obj An arbitrary ruby object. + * @retval true `obj` is a Flonum. + * @retval false Anything else. + * @see RB_FLOAT_TYPE_P() + * @note These days there are Flonums and non-Flonum floats, just like we + * once had Fixnum/Bignum back in the old days. + */ +static inline bool +RB_FLONUM_P(VALUE obj) +{ +#if USE_FLONUM + return (obj & RUBY_FLONUM_MASK) == RUBY_FLONUM_FLAG; +#else + return false; +#endif +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks if the given object is an immediate i.e. an object which has no + * corresponding storage inside of the object space. + * + * @param[in] obj An arbitrary ruby object. + * @retval true `obj` is a Flonum. + * @retval false Anything else. + * @see RB_FLOAT_TYPE_P() + * @note The concept of "immediate" is purely C specific. + */ +static inline bool +RB_IMMEDIATE_P(VALUE obj) +{ + return obj & RUBY_IMMEDIATE_MASK; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +RBIMPL_ATTR_ARTIFICIAL() +/** + * Checks if the given object is of enum ::ruby_special_consts. + * + * @param[in] obj An arbitrary ruby object. + * @retval true `obj` is a special constant. + * @retval false Anything else. + */ +static inline bool +RB_SPECIAL_CONST_P(VALUE obj) +{ + return RB_IMMEDIATE_P(obj) || obj == RUBY_Qfalse; +} + +RBIMPL_ATTR_CONST() +RBIMPL_ATTR_CONSTEXPR(CXX11) +/** + * Identical to RB_SPECIAL_CONST_P, except it returns a ::VALUE. + * + * @param[in] obj An arbitrary ruby object. + * @retval RUBY_Qtrue `obj` is a special constant. + * @retval RUBY_Qfalse Anything else. + * + * @internal + * + * This function is to mimic old rb_special_const_p macro but have anyone + * actually used its return value? Wasn't it just something no one needed? + */ +static inline VALUE +rb_special_const_p(VALUE obj) +{ + return RB_SPECIAL_CONST_P(obj) * RUBY_Qtrue; +} + +/** + * @cond INTERNAL_MACRO + * See [ruby-dev:27513] for the following macros. + */ +#define RUBY_Qfalse RBIMPL_CAST((VALUE)RUBY_Qfalse) +#define RUBY_Qtrue RBIMPL_CAST((VALUE)RUBY_Qtrue) +#define RUBY_Qnil RBIMPL_CAST((VALUE)RUBY_Qnil) +#define RUBY_Qundef RBIMPL_CAST((VALUE)RUBY_Qundef) +/** @endcond */ + +#endif /* RBIMPL_SPECIAL_CONSTS_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/static_assert.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/static_assert.h new file mode 100644 index 0000000..594c2b2 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/static_assert.h @@ -0,0 +1,77 @@ +#ifndef RBIMPL_STATIC_ASSERT_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_STATIC_ASSERT_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_STATIC_ASSERT. + */ +#include +#include "ruby/internal/has/extension.h" +#include "ruby/internal/compiler_since.h" + +/** @cond INTERNAL_MACRO */ +#if defined(__cplusplus) && defined(__cpp_static_assert) +# /* https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations */ +# define RBIMPL_STATIC_ASSERT0 static_assert + +#elif defined(__cplusplus) && RBIMPL_COMPILER_SINCE(MSVC, 16, 0, 0) +# define RBIMPL_STATIC_ASSERT0 static_assert + +#elif defined(__INTEL_CXX11_MODE__) +# define RBIMPL_STATIC_ASSERT0 static_assert + +#elif defined(__cplusplus) && __cplusplus >= 201103L +# define RBIMPL_STATIC_ASSERT0 static_assert + +#elif defined(__cplusplus) && RBIMPL_HAS_EXTENSION(cxx_static_assert) +# define RBIMPL_STATIC_ASSERT0 __extension__ static_assert + +#elif defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__ +# define RBIMPL_STATIC_ASSERT0 __extension__ static_assert + +#elif defined(__STDC_VERSION__) && RBIMPL_HAS_EXTENSION(c_static_assert) +# define RBIMPL_STATIC_ASSERT0 __extension__ _Static_assert + +#elif defined(__STDC_VERSION__) && RBIMPL_COMPILER_SINCE(GCC, 4, 6, 0) +# define RBIMPL_STATIC_ASSERT0 __extension__ _Static_assert + +#elif defined(static_assert) +# /* Take definition */ +# define RBIMPL_STATIC_ASSERT0 static_assert +#endif +/** @endcond */ + +/** + * @brief Wraps (or simulates) `static_assert` + * @param name Valid C/C++ identifier, describing the assertion. + * @param expr Expression to assert. + * @note `name` shall not be a string literal. + */ +#if defined(__DOXYGEN__) +# define RBIMPL_STATIC_ASSERT static_assert + +#elif defined(RBIMPL_STATIC_ASSERT0) +# define RBIMPL_STATIC_ASSERT(name, expr) \ + RBIMPL_STATIC_ASSERT0(expr, # name ": " # expr) + +#else +# define RBIMPL_STATIC_ASSERT(name, expr) \ + typedef int static_assert_ ## name ## _check[1 - 2 * !(expr)] +#endif + +#endif /* RBIMPL_STATIC_ASSERT_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/stdalign.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/stdalign.h new file mode 100644 index 0000000..ec68f6a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/stdalign.h @@ -0,0 +1,135 @@ +#ifndef RBIMPL_STDALIGN_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_STDALIGN_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_ALIGNAS / #RBIMPL_ALIGNOF + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#include "ruby/internal/compiler_is.h" +#include "ruby/internal/has/attribute.h" +#include "ruby/internal/has/declspec_attribute.h" +#include "ruby/internal/has/feature.h" + +/** + * Wraps (or simulates) `alignas`. This is C++11's `alignas` and is _different_ + * from C11 `_Alignas`. For instance, + * + * ```CXX + * typedef struct alignas(128) foo { int foo } foo; + * ``` + * + * is a valid C++ while + * + * ```C + * typedef struct _Alignas(128) foo { int foo } foo; + * ``` + * + * is an invalid C because: + * + * - You cannot `struct _Alignas`. + * - A `typedef` cannot have alignments. + */ +#if defined(__cplusplus) && RBIMPL_HAS_FEATURE(cxx_alignas) +# define RBIMPL_ALIGNAS alignas + +#elif defined(__cplusplus) && (__cplusplus >= 201103L) +# define RBIMPL_ALIGNAS alignas + +#elif defined(__INTEL_CXX11_MODE__) +# define RBIMPL_ALIGNAS alignas + +#elif defined(__GXX_EXPERIMENTAL_CXX0X__) +# define RBIMPL_ALIGNAS alignas + +#elif RBIMPL_HAS_DECLSPEC_ATTRIBUTE(align) +# define RBIMPL_ALIGNAS(_) __declspec(align(_)) + +#elif RBIMPL_HAS_ATTRIBUTE(aligned) +# define RBIMPL_ALIGNAS(_) __attribute__((__aligned__(_))) + +#else +# define RBIMPL_ALIGNAS(_) /* void */ +#endif + +/** + * Wraps (or simulates) `alignof`. + * + * We want C11's `_Alignof`. However in spite of its clear language, compilers + * (including GCC and clang) tend to have buggy implementations. We have to + * avoid such things to resort to our own version. + * + * @see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023 + * @see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69560 + * @see https://bugs.llvm.org/show_bug.cgi?id=26547 + */ +#if defined(__DOXYGEN__) +# define RBIMPL_ALIGNOF alignof +#elif defined(__cplusplus) +# /* C++11 `alignof()` can be buggy. */ +# /* see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69560 */ +# /* But don't worry, we can use templates. */ +# define RBIMPL_ALIGNOF(T) (static_cast(ruby::rbimpl_alignof::value)) + +namespace ruby { +template +struct rbimpl_alignof { + typedef struct { + char _; + T t; + } type; + + enum { + value = offsetof(type, t) + }; +}; +} + +#elif RBIMPL_COMPILER_IS(MSVC) +# /* Windows have no alignment glitch.*/ +# define RBIMPL_ALIGNOF __alignof + +#elif defined(HAVE__ALIGNOF) +# /* Autoconf detected availability of a sane `_Alignof()`. */ +# define RBIMPL_ALIGNOF(T) RB_GNUC_EXTENSION(_Alignof(T)) + +#else +# /* :BEWARE: This is the last resort. If your compiler somehow supports +# * querying the alignment of a type, you definitely should use that instead. +# * There are 2 known pitfalls for this fallback implementation: +# * +# * First, it is either an undefined behaviour (C) or an explicit error (C++) +# * to define a struct inside of `offsetof`. C compilers tend to accept such +# * things, but AFAIK C++ has no room to allow. +# * +# * Second, there exist T such that `struct { char _; T t; }` is invalid. A +# * known example is when T is a struct with a flexible array member. Such +# * struct cannot be enclosed into another one. +# */ +# /* see: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2083.htm */ +# /* see: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2350.htm */ +# define RBIMPL_ALIGNOF(T) offsetof(struct { char _; T t; }, t) + +#endif + +#endif /* RBIMPL_STDALIGN_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/stdbool.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/stdbool.h new file mode 100644 index 0000000..1ca6113 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/stdbool.h @@ -0,0 +1,51 @@ +#ifndef RBIMPL_STDBOOL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_STDBOOL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief C99 shim for + */ +#include "ruby/internal/config.h" + +#if defined(__bool_true_false_are_defined) +# /* Take that. */ + +#elif defined(__cplusplus) +# /* bool is a keyword in C++. */ +# if defined(HAVE_STDBOOL_H) && (__cplusplus >= 201103L) +# include +# endif +# +# ifndef __bool_true_false_are_defined +# define __bool_true_false_are_defined +# endif + +#elif defined(HAVE_STDBOOL_H) +# /* Take stdbool.h definition. */ +# include + +#elif !defined(HAVE__BOOL) +typedef unsigned char _Bool; +# /* See also http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2229.htm */ +# define bool _Bool +# define true ((_Bool)+1) +# define false ((_Bool)+0) +# define __bool_true_false_are_defined +#endif + +#endif /* RBIMPL_STDBOOL_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/symbol.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/symbol.h new file mode 100644 index 0000000..869a311 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/symbol.h @@ -0,0 +1,332 @@ +#ifndef RBIMPL_SYMBOL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_SYMBOL_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #rb_intern + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#ifdef HAVE_STRING_H +# include +#endif + +#include "ruby/internal/attr/noalias.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/constant_p.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/has/builtin.h" +#include "ruby/internal/value.h" + +#define RB_ID2SYM rb_id2sym /**< @alias{rb_id2sym} */ +#define RB_SYM2ID rb_sym2id /**< @alias{rb_sym2id} */ +#define ID2SYM RB_ID2SYM /**< @old{RB_ID2SYM} */ +#define SYM2ID RB_SYM2ID /**< @old{RB_SYM2ID} */ +#define CONST_ID_CACHE RUBY_CONST_ID_CACHE /**< @old{RUBY_CONST_ID_CACHE} */ +#define CONST_ID RUBY_CONST_ID /**< @old{RUBY_CONST_ID} */ + +/** @cond INTERNAL_MACRO */ +#define rb_intern_const rb_intern_const +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Converts an instance of ::rb_cSymbol into an ::ID. + * + * @param[in] obj An instance of ::rb_cSymbol. + * @exception rb_eTypeError `obj` is not an instance of ::rb_cSymbol. + * @return An ::ID of the identical symbol. + */ +ID rb_sym2id(VALUE obj); + +/** + * Allocates an instance of ::rb_cSymbol that has the given id. + * + * @param[in] id An id. + * @retval RUBY_Qfalse No such id ever existed in the history. + * @retval Otherwise An allocated ::rb_cSymbol instance. + */ +VALUE rb_id2sym(ID id); + +RBIMPL_ATTR_NONNULL(()) +/** + * Finds or creates a symbol of the given name. + * + * @param[in] name The name of the id. + * @exception rb_eRuntimeError Too many symbols. + * @return A (possibly new) id whose value is the given name. + * @note These days Ruby internally has two kinds of symbols (static / + * dynamic). Symbols created using this function would become a + * static one; i.e. would never be garbage collected. It is up to + * you to avoid memory leaks. Think twice before using it. + */ +ID rb_intern(const char *name); + +/** + * Identical to rb_intern(), except it additionally takes the length of the + * string. This way you can have a symbol that contains NUL characters. + * + * @param[in] name The name of the id. + * @param[in] len Length of `name`. + * @exception rb_eRuntimeError Too many symbols. + * @return A (possibly new) id whose value is the given name. + * @note These days Ruby internally has two kinds of symbols + * (static/dynamic). Symbols created using this function would + * become static ones; i.e. would never be garbage collected. It + * is up to you to avoid memory leaks. Think twice before using + * it. + */ +ID rb_intern2(const char *name, long len); + +/** + * Identical to rb_intern(), except it takes an instance of ::rb_cString. + * + * @param[in] str The name of the id. + * @pre `str` must either be an instance of ::rb_cSymbol, or an instance + * of ::rb_cString, or responds to `#to_str` method. + * @exception rb_eTypeError Can't convert `str` into ::rb_cString. + * @exception rb_eRuntimeError Too many symbols. + * @return A (possibly new) id whose value is the given str. + * @note These days Ruby internally has two kinds of symbols + * (static/dynamic). Symbols created using this function would + * become static ones; i.e. would never be garbage collected. It + * is up to you to avoid memory leaks. Think twice before using + * it. + */ +ID rb_intern_str(VALUE str); + +/** + * Retrieves the name mapped to the given id. + * + * @param[in] id An id to query. + * @retval NULL No such id ever existed in the history. + * @retval otherwise A name that the id represents. + * @note The return value is managed by the interpreter. Don't pass it + * to free(). + */ +const char *rb_id2name(ID id); + +RBIMPL_ATTR_NONNULL(()) +/** + * Detects if the given name is already interned or not. It first tries to + * convert the argument to an instance of ::rb_cString if it is neither an + * instance of ::rb_cString nor ::rb_cSymbol. The conversion result is written + * back to the variable. Then queries if that name was already interned + * before. If found it returns such id, otherwise zero. + * + * We eventually introduced this API to avoid inadvertent symbol pin-down. + * Before, there was no way to know if an ID was already interned or not + * without actually creating one (== leaking memory). By using this API you + * can avoid such situations: + * + * ```CXX + * bool does_interning_this_leak_memory(VALUE obj) + * { + * auto tmp = obj; + * if (auto id = rb_check_id(&tmp); id) { + * return false; + * } + * else { + * return true; // Let GC sweep tmp if necessary. + * } + * } + * ``` + * + * @param[in,out] namep A pointer to a name to query. + * @pre The object referred by `*namep` must either be an instance + * of ::rb_cSymbol, or an instance of ::rb_cString, or responds + * to `#to_str` method. + * @exception rb_eTypeError Can't convert `*namep` into ::rb_cString. + * @exception rb_eEncodingError Given string is non-ASCII. + * @retval 0 No such id ever existed in the history. + * @retval otherwise The id that represents the given name. + * @post The object that `*namep` points to is a converted result + * object, which is always an instance of either ::rb_cSymbol + * or ::rb_cString. + * @see https://bugs.ruby-lang.org/issues/5072 + * + * @internal + * + * @shyouhei doesn't know why this has to raise rb_eEncodingError. + */ +ID rb_check_id(volatile VALUE *namep); + +/** + * @copydoc rb_intern_str() + * + * @internal + * + * :FIXME: Can anyone tell us what is the difference between this one and + * rb_intern_str()? As far as @shyouhei reads the implementation it seems what + * rb_to_id() does is is just waste some CPU time, then call rb_intern_str(). + * He hopes he is wrong. + */ +ID rb_to_id(VALUE str); + +/** + * Identical to rb_id2name(), except it returns a Ruby's String instead of C's. + * + * @param[in] id An id to query. + * @retval RUBY_Qfalse No such id ever existed in the history. + * @retval otherwise An instance of ::rb_cString with the name of id. + * + * @internal + * + * In reality "rb_id2str() is identical to rb_id2name() except it returns Ruby + * string" is just describing things upside down; truth is `rb_id2name(foo)` is + * a shorthand of `RSTRING_PTR(rb_id2str(foo))`. + */ +VALUE rb_id2str(ID id); + +/** + * Identical to rb_id2str(), except it takes an instance of ::rb_cSymbol rather + * than an ::ID. + * + * @param[in] id An id to query. + * @retval RUBY_Qfalse No such id ever existed in the history. + * @retval otherwise An instance of ::rb_cString with the name of id. + */ +VALUE rb_sym2str(VALUE id); + +/** + * Identical to rb_intern_str(), except it generates a dynamic symbol if + * necessary. + * + * @param[in] name The name of the id. + * @pre `name` must either be an instance of ::rb_cSymbol, or an + * instance of ::rb_cString, or responds to `#to_str` method. + * @exception rb_eTypeError Can't convert `name` into ::rb_cString. + * @exception rb_eRuntimeError Too many symbols. + * @return A (possibly new) id whose value is the given name. + * @note These days Ruby internally has two kinds of symbols + * (static/dynamic). Symbols created using this function would + * become dynamic ones; i.e. would be garbage collected. It could + * be safer for you to use it than alternatives, when applicable. + */ +VALUE rb_to_symbol(VALUE name); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_check_id(), except it returns an instance of ::rb_cSymbol + * instead. + * + * @param[in,out] namep A pointer to a name to query. + * @pre The object referred by `*namep` must either be an instance + * of ::rb_cSymbol, or an instance of ::rb_cString, or responds + * to `#to_str` method. + * @exception rb_eTypeError Can't convert `*namep` into ::rb_cString. + * @exception rb_eEncodingError Given string is non-ASCII. + * @retval RUBY_Qnil No such id ever existed in the history. + * @retval otherwise The id that represents the given name. + * @post The object that `*namep` points to is a converted result + * object, which is always an instance of either ::rb_cSymbol + * or ::rb_cString. + * @see https://bugs.ruby-lang.org/issues/5072 + * + * @internal + * + * @shyouhei doesn't know why this has to raise rb_eEncodingError. + */ +VALUE rb_check_symbol(volatile VALUE *namep); +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_PURE() +RBIMPL_ATTR_NONNULL(()) +/** + * This is a "tiny optimisation" over rb_intern(). If you pass a string + * _literal_, and if your C compiler can special-case strlen of such literal to + * strength-reduce into an integer constant expression, then this inline + * function can precalc a part of conversion. + * + * @note This function also works happily for non-constant strings. Why + * bother then? Just apply liberally to everything. + * @note But #rb_intern() could be faster on compilers with statement + * expressions, because they can cache the created ::ID. + * @param[in] str The name of the id. + * @exception rb_eRuntimeError Too many symbols. + * @return A (possibly new) id whose value is the given str. + * @note These days Ruby internally has two kinds of symbols (static / + * dynamic). Symbols created using this function would become a + * static one; i.e. would never be garbage collected. It is up to + * you to avoid memory leaks. Think twice before using it. + */ +static inline ID +rb_intern_const(const char *str) +{ + size_t len = strlen(str); + return rb_intern2(str, RBIMPL_CAST((long)len)); +} + +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL(()) +/** + * @private + * + * This is an implementation detail of #rb_intern(). Just don't use it. + */ +static inline ID +rbimpl_intern_const(ID *ptr, const char *str) +{ + while (! *ptr) { + *ptr = rb_intern_const(str); + } + + return *ptr; +} + +/** + * Old implementation detail of rb_intern(). + * @deprecated Does anyone use it? Preserved for backward compat. + */ +#define RUBY_CONST_ID_CACHE(result, str) \ + { \ + static ID rb_intern_id_cache; \ + rbimpl_intern_const(&rb_intern_id_cache, (str)); \ + result rb_intern_id_cache; \ + } + +/** + * Old implementation detail of rb_intern(). + * @deprecated Does anyone use it? Preserved for backward compat. + */ +#define RUBY_CONST_ID(var, str) \ + do { \ + static ID rbimpl_id; \ + (var) = rbimpl_intern_const(&rbimpl_id, (str)); \ + } while (0) + +#if defined(HAVE_STMT_AND_DECL_IN_EXPR) +/* __builtin_constant_p and statement expression is available + * since gcc-2.7.2.3 at least. */ +#define rb_intern(str) \ + (RBIMPL_CONSTANT_P(str) ? \ + __extension__ ({ \ + static ID rbimpl_id; \ + rbimpl_intern_const(&rbimpl_id, (str)); \ + }) : \ + (rb_intern)(str)) +#endif + +#endif /* RBIMPL_SYMBOL_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/value.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/value.h new file mode 100644 index 0000000..805cd83 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/value.h @@ -0,0 +1,133 @@ +#ifndef RBIMPL_VALUE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_VALUE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines ::VALUE and ::ID. + */ +#include "ruby/internal/static_assert.h" +#include "ruby/backward/2/long_long.h" +#include "ruby/backward/2/limits.h" + +#if defined(__DOXYGEN__) + +/** + * Type that represents a Ruby object. It is an unsigned integer of some kind, + * depending on platforms. + * + * ```CXX + * VALUE value = rb_eval_string("ARGF.readlines.map.with_index"); + * ``` + * + * @warning ::VALUE is not a pointer. + * @warning ::VALUE can be wider than `long`. + */ +typedef uintptr_t VALUE; + +/** + * Type that represents a Ruby identifier such as a variable name. + * + * ```CXX + * ID method = rb_intern("method"); + * VALUE result = rb_funcall(obj, method, 0); + * ``` + * + * @note ::rb_cSymbol is a Ruby-level data type for the same thing. + */ +typedef uintptr_t ID; + +/** + * A signed integer type that has the same width with ::VALUE. + * + * @internal + * + * @shyouhei wonders: is it guaranteed that `uintptr_t` and `intptr_t` are the + * same width? As far as I read ISO/IEC 9899:2018 section 7.20.1.4 paragraph 1 + * no such description is given... or defined elsewhere? + */ +typedef intptr_t SIGNED_VALUE; + +/** + * Identical to `sizeof(VALUE)`, except it is a macro that can also be used + * inside of preprocessor directives such as `#if`. Handy on occasions. + */ +#define SIZEOF_VALUE SIZEOF_UINTPTR_T + +/** + * @private + * + * A compile-time constant of type ::VALUE whose value is 0. + */ +#define RBIMPL_VALUE_NULL UINTPTR_C(0) + +/** + * @private + * + * A compile-time constant of type ::VALUE whose value is 1. + */ +#define RBIMPL_VALUE_ONE UINTPTR_C(1) + +/** + * @private + * + * Maximum possible value that a ::VALUE can take. + */ +#define RBIMPL_VALUE_FULL UINTPTR_MAX + +#elif defined HAVE_UINTPTR_T && 0 +typedef uintptr_t VALUE; +typedef uintptr_t ID; +# define SIGNED_VALUE intptr_t +# define SIZEOF_VALUE SIZEOF_UINTPTR_T +# undef PRI_VALUE_PREFIX +# define RBIMPL_VALUE_NULL UINTPTR_C(0) +# define RBIMPL_VALUE_ONE UINTPTR_C(1) +# define RBIMPL_VALUE_FULL UINTPTR_MAX + +#elif SIZEOF_LONG == SIZEOF_VOIDP +typedef unsigned long VALUE; +typedef unsigned long ID; +# define SIGNED_VALUE long +# define SIZEOF_VALUE SIZEOF_LONG +# define PRI_VALUE_PREFIX "l" +# define RBIMPL_VALUE_NULL 0UL +# define RBIMPL_VALUE_ONE 1UL +# define RBIMPL_VALUE_FULL ULONG_MAX + +#elif SIZEOF_LONG_LONG == SIZEOF_VOIDP +typedef unsigned LONG_LONG VALUE; +typedef unsigned LONG_LONG ID; +# define SIGNED_VALUE LONG_LONG +# define LONG_LONG_VALUE 1 +# define SIZEOF_VALUE SIZEOF_LONG_LONG +# define PRI_VALUE_PREFIX PRI_LL_PREFIX +# define RBIMPL_VALUE_NULL 0ULL +# define RBIMPL_VALUE_ONE 1ULL +# define RBIMPL_VALUE_FULL ULLONG_MAX + +#else +# error ---->> ruby requires sizeof(void*) == sizeof(long) or sizeof(LONG_LONG) to be compiled. <<---- +#endif + +/** @cond INTERNAL_MACRO */ +RBIMPL_STATIC_ASSERT(sizeof_int, SIZEOF_INT == sizeof(int)); +RBIMPL_STATIC_ASSERT(sizeof_long, SIZEOF_LONG == sizeof(long)); +RBIMPL_STATIC_ASSERT(sizeof_long_long, SIZEOF_LONG_LONG == sizeof(LONG_LONG)); +RBIMPL_STATIC_ASSERT(sizeof_voidp, SIZEOF_VOIDP == sizeof(void *)); +/** @endcond */ +#endif /* RBIMPL_VALUE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/value_type.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/value_type.h new file mode 100644 index 0000000..977f60a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/value_type.h @@ -0,0 +1,449 @@ +#ifndef RBIMPL_VALUE_TYPE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_VALUE_TYPE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines enum ::ruby_value_type. + */ +#include "ruby/internal/assume.h" +#include "ruby/internal/attr/artificial.h" +#include "ruby/internal/attr/cold.h" +#include "ruby/internal/attr/enum_extensibility.h" +#include "ruby/internal/attr/forceinline.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/cast.h" +#include "ruby/internal/constant_p.h" +#include "ruby/internal/core/rbasic.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/error.h" +#include "ruby/internal/has/builtin.h" +#include "ruby/internal/special_consts.h" +#include "ruby/internal/stdbool.h" +#include "ruby/internal/value.h" +#include "ruby/assert.h" + +#if defined(T_DATA) +/* + * :!BEWARE!: (Recent?) Solaris' have conflicting definition of + * T_DATA. Let us stop here. Please have a workaround like this: + * + * ```C + * #include // <- Include this one first. + * #undef T_DATA // <- ... and stick to RUBY_T_DATA forever. + * #include // <- OS-provided T_DATA introduced. + * ``` + * + * See also [ruby-core:4261] + */ +# error Bail out due to conflicting definition of T_DATA. +#endif + +#define T_ARRAY RUBY_T_ARRAY /**< @old{RUBY_T_ARRAY} */ +#define T_BIGNUM RUBY_T_BIGNUM /**< @old{RUBY_T_BIGNUM} */ +#define T_CLASS RUBY_T_CLASS /**< @old{RUBY_T_CLASS} */ +#define T_COMPLEX RUBY_T_COMPLEX /**< @old{RUBY_T_COMPLEX} */ +#define T_DATA RUBY_T_DATA /**< @old{RUBY_T_DATA} */ +#define T_FALSE RUBY_T_FALSE /**< @old{RUBY_T_FALSE} */ +#define T_FILE RUBY_T_FILE /**< @old{RUBY_T_FILE} */ +#define T_FIXNUM RUBY_T_FIXNUM /**< @old{RUBY_T_FIXNUM} */ +#define T_FLOAT RUBY_T_FLOAT /**< @old{RUBY_T_FLOAT} */ +#define T_HASH RUBY_T_HASH /**< @old{RUBY_T_HASH} */ +#define T_ICLASS RUBY_T_ICLASS /**< @old{RUBY_T_ICLASS} */ +#define T_IMEMO RUBY_T_IMEMO /**< @old{RUBY_T_IMEMO} */ +#define T_MASK RUBY_T_MASK /**< @old{RUBY_T_MASK} */ +#define T_MATCH RUBY_T_MATCH /**< @old{RUBY_T_MATCH} */ +#define T_MODULE RUBY_T_MODULE /**< @old{RUBY_T_MODULE} */ +#define T_MOVED RUBY_T_MOVED /**< @old{RUBY_T_MOVED} */ +#define T_NIL RUBY_T_NIL /**< @old{RUBY_T_NIL} */ +#define T_NODE RUBY_T_NODE /**< @old{RUBY_T_NODE} */ +#define T_NONE RUBY_T_NONE /**< @old{RUBY_T_NONE} */ +#define T_OBJECT RUBY_T_OBJECT /**< @old{RUBY_T_OBJECT} */ +#define T_RATIONAL RUBY_T_RATIONAL /**< @old{RUBY_T_RATIONAL} */ +#define T_REGEXP RUBY_T_REGEXP /**< @old{RUBY_T_REGEXP} */ +#define T_STRING RUBY_T_STRING /**< @old{RUBY_T_STRING} */ +#define T_STRUCT RUBY_T_STRUCT /**< @old{RUBY_T_STRUCT} */ +#define T_SYMBOL RUBY_T_SYMBOL /**< @old{RUBY_T_SYMBOL} */ +#define T_TRUE RUBY_T_TRUE /**< @old{RUBY_T_TRUE} */ +#define T_UNDEF RUBY_T_UNDEF /**< @old{RUBY_T_UNDEF} */ +#define T_ZOMBIE RUBY_T_ZOMBIE /**< @old{RUBY_T_ZOMBIE} */ + +#define BUILTIN_TYPE RB_BUILTIN_TYPE /**< @old{RB_BUILTIN_TYPE} */ +#define DYNAMIC_SYM_P RB_DYNAMIC_SYM_P /**< @old{RB_DYNAMIC_SYM_P} */ +#define RB_INTEGER_TYPE_P rb_integer_type_p /**< @old{rb_integer_type_p} */ +#define SYMBOL_P RB_SYMBOL_P /**< @old{RB_SYMBOL_P} */ +#define rb_type_p RB_TYPE_P /**< @alias{RB_TYPE_P} */ + +/** @cond INTERNAL_MACRO */ +#define RB_BUILTIN_TYPE RB_BUILTIN_TYPE +#define RB_DYNAMIC_SYM_P RB_DYNAMIC_SYM_P +#define RB_FLOAT_TYPE_P RB_FLOAT_TYPE_P +#define RB_SYMBOL_P RB_SYMBOL_P +#define RB_TYPE_P RB_TYPE_P +#define Check_Type Check_Type + +#if !RUBY_DEBUG +# define RBIMPL_ASSERT_TYPE(v, t) RBIMPL_ASSERT_OR_ASSUME(RB_TYPE_P((v), (t))) +#else +# define RBIMPL_ASSERT_TYPE Check_Type +#endif +/** @endcond */ + +/** @old{rb_type} */ +#define TYPE(_) RBIMPL_CAST((int)rb_type(_)) + +/** C-level type of an object. */ +enum +RBIMPL_ATTR_ENUM_EXTENSIBILITY(closed) +ruby_value_type { + RUBY_T_NONE = 0x00, /**< Non-object (swept etc.) */ + + RUBY_T_OBJECT = 0x01, /**< @see struct ::RObject */ + RUBY_T_CLASS = 0x02, /**< @see struct ::RClass and ::rb_cClass */ + RUBY_T_MODULE = 0x03, /**< @see struct ::RClass and ::rb_cModule */ + RUBY_T_FLOAT = 0x04, /**< @see struct ::RFloat */ + RUBY_T_STRING = 0x05, /**< @see struct ::RString */ + RUBY_T_REGEXP = 0x06, /**< @see struct ::RRegexp */ + RUBY_T_ARRAY = 0x07, /**< @see struct ::RArray */ + RUBY_T_HASH = 0x08, /**< @see struct ::RHash */ + RUBY_T_STRUCT = 0x09, /**< @see struct ::RStruct */ + RUBY_T_BIGNUM = 0x0a, /**< @see struct ::RBignum */ + RUBY_T_FILE = 0x0b, /**< @see struct ::RFile */ + RUBY_T_DATA = 0x0c, /**< @see struct ::RTypedData */ + RUBY_T_MATCH = 0x0d, /**< @see struct ::RMatch */ + RUBY_T_COMPLEX = 0x0e, /**< @see struct ::RComplex */ + RUBY_T_RATIONAL = 0x0f, /**< @see struct ::RRational */ + + RUBY_T_NIL = 0x11, /**< @see ::RUBY_Qnil */ + RUBY_T_TRUE = 0x12, /**< @see ::RUBY_Qfalse */ + RUBY_T_FALSE = 0x13, /**< @see ::RUBY_Qtrue */ + RUBY_T_SYMBOL = 0x14, /**< @see struct ::RSymbol */ + RUBY_T_FIXNUM = 0x15, /**< Integers formerly known as Fixnums. */ + RUBY_T_UNDEF = 0x16, /**< @see ::RUBY_Qundef */ + + RUBY_T_IMEMO = 0x1a, /**< @see struct ::RIMemo */ + RUBY_T_NODE = 0x1b, /**< @see struct ::RNode */ + RUBY_T_ICLASS = 0x1c, /**< Hidden classes known as IClasses. */ + RUBY_T_ZOMBIE = 0x1d, /**< @see struct ::RZombie */ + RUBY_T_MOVED = 0x1e, /**< @see struct ::RMoved */ + + RUBY_T_MASK = 0x1f /**< Bitmask of ::ruby_value_type. */ +}; + +RBIMPL_SYMBOL_EXPORT_BEGIN() +RBIMPL_ATTR_COLD() +/** + * @private + * + * This was the old implementation of Check_Type(), but they diverged. This + * one remains for theoretical backwards compatibility. People normally need + * not use it. + * + * @param[in] obj An object. + * @param[in] t A type. + * @exception rb_eTypeError `obj` is not of type `t`. + * @exception rb_eFatal `obj` is corrupt. + * @post Upon successful return `obj` is guaranteed to have type `t`. + * + * @internal + * + * The second argument shall have been enum ::ruby_value_type. But at the time + * matz designed this function he still used K&R C. There was no such thing + * like a function prototype. We can no longer change this API. + */ +void rb_check_type(VALUE obj, int t); +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries the type of the object. + * + * @param[in] obj Object in question. + * @pre `obj` must not be a special constant. + * @return The type of `obj`. + */ +static inline enum ruby_value_type +RB_BUILTIN_TYPE(VALUE obj) +{ + RBIMPL_ASSERT_OR_ASSUME(! RB_SPECIAL_CONST_P(obj)); + +#if 0 && defined __GNUC__ && !defined __clang__ + /* Don't move the access to `flags` before the preceding + * RB_SPECIAL_CONST_P check. */ + __asm volatile("": : :"memory"); +#endif + VALUE ret = RBASIC(obj)->flags & RUBY_T_MASK; + return RBIMPL_CAST((enum ruby_value_type)ret); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +/** + * Queries if the object is an instance of ::rb_cInteger. + * + * @param[in] obj Object in question. + * @retval true It is. + * @retval false It isn't. + */ +static inline bool +rb_integer_type_p(VALUE obj) +{ + if (RB_FIXNUM_P(obj)) { + return true; + } + else if (RB_SPECIAL_CONST_P(obj)) { + return false; + } + else { + return RB_BUILTIN_TYPE(obj) == RUBY_T_BIGNUM; + } +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +/** + * Identical to RB_BUILTIN_TYPE(), except it can also accept special constants. + * + * @param[in] obj Object in question. + * @return The type of `obj`. + */ +static inline enum ruby_value_type +rb_type(VALUE obj) +{ + if (! RB_SPECIAL_CONST_P(obj)) { + return RB_BUILTIN_TYPE(obj); + } + else if (obj == RUBY_Qfalse) { + return RUBY_T_FALSE; + } + else if (obj == RUBY_Qnil) { + return RUBY_T_NIL; + } + else if (obj == RUBY_Qtrue) { + return RUBY_T_TRUE; + } + else if (obj == RUBY_Qundef) { + return RUBY_T_UNDEF; + } + else if (RB_FIXNUM_P(obj)) { + return RUBY_T_FIXNUM; + } + else if (RB_STATIC_SYM_P(obj)) { + return RUBY_T_SYMBOL; + } + else { + RBIMPL_ASSUME(RB_FLONUM_P(obj)); + return RUBY_T_FLOAT; + } +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries if the object is an instance of ::rb_cFloat. + * + * @param[in] obj Object in question. + * @retval true It is. + * @retval false It isn't. + */ +static inline bool +RB_FLOAT_TYPE_P(VALUE obj) +{ + if (RB_FLONUM_P(obj)) { + return true; + } + else if (RB_SPECIAL_CONST_P(obj)) { + return false; + } + else { + return RB_BUILTIN_TYPE(obj) == RUBY_T_FLOAT; + } +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries if the object is a dynamic symbol. + * + * @param[in] obj Object in question. + * @retval true It is. + * @retval false It isn't. + */ +static inline bool +RB_DYNAMIC_SYM_P(VALUE obj) +{ + if (RB_SPECIAL_CONST_P(obj)) { + return false; + } + else { + return RB_BUILTIN_TYPE(obj) == RUBY_T_SYMBOL; + } +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries if the object is an instance of ::rb_cSymbol. + * + * @param[in] obj Object in question. + * @retval true It is. + * @retval false It isn't. + */ +static inline bool +RB_SYMBOL_P(VALUE obj) +{ + return RB_STATIC_SYM_P(obj) || RB_DYNAMIC_SYM_P(obj); +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +RBIMPL_ATTR_FORCEINLINE() +/** + * @private + * + * This is an implementation detail of RB_TYPE_P(). Just don't use it. + * + * @param[in] obj An object. + * @param[in] t A type. + * @retval true `obj` is of type `t`. + * @retval false Otherwise. + */ +static bool +rbimpl_RB_TYPE_P_fastpath(VALUE obj, enum ruby_value_type t) +{ + if (t == RUBY_T_TRUE) { + return obj == RUBY_Qtrue; + } + else if (t == RUBY_T_FALSE) { + return obj == RUBY_Qfalse; + } + else if (t == RUBY_T_NIL) { + return obj == RUBY_Qnil; + } + else if (t == RUBY_T_UNDEF) { + return obj == RUBY_Qundef; + } + else if (t == RUBY_T_FIXNUM) { + return RB_FIXNUM_P(obj); + } + else if (t == RUBY_T_SYMBOL) { + return RB_SYMBOL_P(obj); + } + else if (t == RUBY_T_FLOAT) { + return RB_FLOAT_TYPE_P(obj); + } + else if (RB_SPECIAL_CONST_P(obj)) { + return false; + } + else if (t == RB_BUILTIN_TYPE(obj)) { + return true; + } + else { + return false; + } +} + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +RBIMPL_ATTR_ARTIFICIAL() +/** + * Queries if the given object is of given type. + * + * @param[in] obj An object. + * @param[in] t A type. + * @retval true `obj` is of type `t`. + * @retval false Otherwise. + * + * @internal + * + * This function is a super-duper hot path. Optimised targeting modern C + * compilers and x86_64 architecture. + */ +static inline bool +RB_TYPE_P(VALUE obj, enum ruby_value_type t) +{ + if (RBIMPL_CONSTANT_P(t)) { + return rbimpl_RB_TYPE_P_fastpath(obj, t); + } + else { + return t == rb_type(obj); + } +} + +/** @cond INTERNAL_MACRO */ +/* Clang, unlike GCC, cannot propagate __builtin_constant_p beyond function + * boundary. */ +#if defined(__clang__) +# undef RB_TYPE_P +# define RB_TYPE_P(obj, t) \ + (RBIMPL_CONSTANT_P(t) ? \ + rbimpl_RB_TYPE_P_fastpath((obj), (t)) : \ + (RB_TYPE_P)((obj), (t))) +#endif + +/* clang 3.x (4.2 compatible) can't eliminate CSE of RB_BUILTIN_TYPE + * in inline function and caller function + * See also 8998c06461ea0bef11b3aeb30b6d2ab71c8762ba + */ +#if RBIMPL_COMPILER_BEFORE(Clang, 4, 0, 0) +# undef rb_integer_type_p +# define rb_integer_type_p(obj) \ + __extension__ ({ \ + const VALUE integer_type_obj = (obj); \ + (RB_FIXNUM_P(integer_type_obj) || \ + (!RB_SPECIAL_CONST_P(integer_type_obj) && \ + RB_BUILTIN_TYPE(integer_type_obj) == RUBY_T_BIGNUM)); \ + }) +#endif +/** @endcond */ + +RBIMPL_ATTR_PURE() +RBIMPL_ATTR_ARTIFICIAL() +/** + * @private + * Defined in ruby/internal/core/rtypeddata.h + */ +static inline bool rbimpl_rtypeddata_p(VALUE obj); + +RBIMPL_ATTR_ARTIFICIAL() +/** + * Identical to RB_TYPE_P(), except it raises exceptions on predication + * failure. + * + * @param[in] v An object. + * @param[in] t A type. + * @exception rb_eTypeError `obj` is not of type `t`. + * @exception rb_eFatal `obj` is corrupt. + * @post Upon successful return `obj` is guaranteed to have type `t`. + */ +static inline void +Check_Type(VALUE v, enum ruby_value_type t) +{ + if (RB_UNLIKELY(! RB_TYPE_P(v, t))) { + goto unexpected_type; + } + else if (t == RUBY_T_DATA && rbimpl_rtypeddata_p(v)) { + /* Typed data is not simple `T_DATA`, see `rb_check_type` */ + goto unexpected_type; + } + else { + return; + } + + unexpected_type: + rb_unexpected_type(v, t); +} + +#endif /* RBIMPL_VALUE_TYPE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/variable.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/variable.h new file mode 100644 index 0000000..c017ffe --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/variable.h @@ -0,0 +1,337 @@ +#ifndef RBIMPL_VARIABLE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_VARIABLE_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Declares rb_define_variable(). + */ +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/noreturn.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Type that represents a global variable getter function. + * + * @param[in] id The variable name. + * @param[in,out] data Where the value is stored. + * @return The value that shall be visible from Ruby. + */ +typedef VALUE rb_gvar_getter_t(ID id, VALUE *data); + +/** + * Type that represents a global variable setter function. + * + * @param[in] val The value to set. + * @param[in] id The variable name. + * @param[in,out] data Where the value is to be stored. + */ +typedef void rb_gvar_setter_t(VALUE val, ID id, VALUE *data); + +/** + * Type that represents a global variable marker function. + * + * @param[in] var Where the value is to be stored. + */ +typedef void rb_gvar_marker_t(VALUE *var); + +/** + * @deprecated + * + * This function has no actual usage (than in ruby itself). Please ignore. It + * was a bad idea to expose this function to 3rd parties, but we can no longer + * delete it. + */ +rb_gvar_getter_t rb_gvar_undef_getter; + +/** + * @deprecated + * + * This function has no actual usage (than in ruby itself). Please ignore. It + * was a bad idea to expose this function to 3rd parties, but we can no longer + * delete it. + */ +rb_gvar_setter_t rb_gvar_undef_setter; + +/** + * @deprecated + * + * This function has no actual usage (than in ruby itself). Please ignore. It + * was a bad idea to expose this function to 3rd parties, but we can no longer + * delete it. + */ +rb_gvar_marker_t rb_gvar_undef_marker; + +/** + * This is the getter function that backs global variables defined from a ruby + * script. Extension libraries can use this if its global variable needs no + * custom logic. + */ +rb_gvar_getter_t rb_gvar_val_getter; + +/** + * This is the setter function that backs global variables defined from a ruby + * script. Extension libraries can use this if its global variable needs no + * custom logic. + */ +rb_gvar_setter_t rb_gvar_val_setter; + +/** + * This is the setter function that backs global variables defined from a ruby + * script. Extension libraries can use this if its global variable needs no + * custom logic. + */ +rb_gvar_marker_t rb_gvar_val_marker; + +/** + * @deprecated + * + * This function has no actual usage (than in ruby itself). Please ignore. It + * was a bad idea to expose this function to 3rd parties, but we can no longer + * delete it. + */ +rb_gvar_getter_t rb_gvar_var_getter; + +/** + * @deprecated + * + * This function has no actual usage (than in ruby itself). Please ignore. It + * was a bad idea to expose this function to 3rd parties, but we can no longer + * delete it. + */ +rb_gvar_setter_t rb_gvar_var_setter; + +/** + * @deprecated + * + * This function has no actual usage (than in ruby itself). Please ignore. It + * was a bad idea to expose this function to 3rd parties, but we can no longer + * delete it. + */ +rb_gvar_marker_t rb_gvar_var_marker; + +RBIMPL_ATTR_NORETURN() +/** + * This function just raises ::rb_eNameError. Handy when you want to prohibit + * a global variable from being squashed by someone. + */ +rb_gvar_setter_t rb_gvar_readonly_setter; + +RBIMPL_ATTR_NONNULL(()) +/** + * "Shares" a global variable between Ruby and C. Normally a Ruby-level global + * variable is stored somewhere deep inside of the interpreter's execution + * context, but this way you can explicitly specify its storage. + * + * ```CXX + * static VALUE foo; + * + * extern "C" void + * init_Foo(void) + * { + * foo = rb_eval_string("..."); + * rb_define_variable("$foo", &foo); + * } + * ``` + * + * In the above example a Ruby global variable named `$foo` is stored in a C + * global variable named `foo`. + * + * @param[in] name Variable (Ruby side). + * @param[in] var Variable (C side). + * @post Ruby level global variable named `name` is defined if absent, + * and its storage is set to `var`. + */ +void rb_define_variable(const char *name, VALUE *var); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Defines a global variable that is purely function-backended. By using this + * API a programmer can define a global variable that dynamically changes from + * time to time. + * + * @param[in] name Variable name, in C's string. + * @param[in] getter A getter function. + * @param[in] setter A setter function. + * @post Ruby level global variable named `name` is defined if absent. + * + * @internal + * + * @shyouhei doesn't know if this is an Easter egg or an official feature, but + * you can pass 0 to the third argument (setter). That effectively nullifies + * any efforts to write to the defining global variable. + */ +void rb_define_virtual_variable(const char *name, rb_gvar_getter_t *getter, rb_gvar_setter_t *setter); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Identical to rb_define_virtual_variable(), but can also specify a storage. + * A programmer can use the storage for e.g. memoisation, storing intermediate + * computation result, etc. + * + * Also you can pass 0 to this function, unlike other variants: + * + * - When getter is 0 ::rb_gvar_var_getter is used instead. + * - When setter is 0 ::rb_gvar_var_setter is used instead. + * - When data is 0, you must specify a non-zero setter function. Otherwise + * ::rb_gvar_var_setter tries to write to `*NULL`, and just causes SEGV. + * + * @param[in] name Variable name, in C's string. + * @param[in] var Variable storage. + * @param[in] getter A getter function. + * @param[in] setter A setter function. + * @post Ruby level global variable named `name` is defined if absent. + */ +void rb_define_hooked_variable(const char *name, VALUE *var, rb_gvar_getter_t *getter, rb_gvar_setter_t *setter); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_define_variable(), except it does not allow Ruby programs to + * assign values to such global variable. C codes can still set values at + * will. This could be handy for you when implementing an `errno`-like + * experience, where a method updates a read-only global variable as a side- + * effect. + * + * @param[in] name Variable (Ruby side). + * @param[in] var Variable (C side). + * @post Ruby level global variable named `name` is defined if absent, + * and its storage is set to `var`. + */ +void rb_define_readonly_variable(const char *name, const VALUE *var); + +RBIMPL_ATTR_NONNULL(()) +/** + * Defines a Ruby level constant under a namespace. + * + * @param[out] klass Namespace for the constant to reside. + * @param[in] name Name of the constant. + * @param[in] val Value of the constant. + * @exception rb_eTypeError `klass` is not a kind of ::rb_cModule. + * @exception rb_eFrozenError `klass` is frozen. + * @post Ruby level constant `klass::name` is defined to be `val`. + * @note This API does not stop you from defining a constant that is + * unable to reach from ruby (like for instance passing + * non-capital letter to `name`). + * @note This API does not stop you from overwriting a constant that + * already exist. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +void rb_define_const(VALUE klass, const char *name, VALUE val); + +RBIMPL_ATTR_NONNULL(()) +/** + * Identical to rb_define_const(), except it defines that of "global", + * i.e. toplevel constant. + * + * @param[in] name Name of the constant. + * @param[in] val Value of the constant. + * @exception rb_eFrozenError ::rb_cObject is frozen. + * @post Ruby level constant \::name is defined to be `val`. + * @note This API does not stop you from defining a constant that is + * unable to reach from ruby (like for instance passing + * non-capital letter to `name`). + * @note This API does not stop you from overwriting a constant that + * already exist. + */ +void rb_define_global_const(const char *name, VALUE val); + +RBIMPL_ATTR_NONNULL(()) +/** + * Asserts that the given constant is deprecated. Attempt to refer such + * constant will produce a warning. + * + * @param[in] mod Namespace of the target constant. + * @param[in] name Name of the constant. + * @exception rb_eNameError No such constant. + * @exception rb_eFrozenError `mod` is frozen. + * @post `name` under `mod` is deprecated. + */ +void rb_deprecate_constant(VALUE mod, const char *name); + +RBIMPL_ATTR_NONNULL(()) +/** + * Assigns to a global variable. + * + * @param[in] name Target global variable. + * @param[in] val Value to assign. + * @return Passed value. + * @post Ruby level global variable named `name` is defined if absent, + * whose value is set to `val`. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with + * `set_trace_func`. + */ +VALUE rb_gv_set(const char *name, VALUE val); + +RBIMPL_ATTR_NONNULL(()) +/** + * Obtains a global variable. + * + * @param[in] name Global variable to query. + * @retval RUBY_Qnil The global variable does not exist. + * @retval otherwise The value assigned to the global variable. + * + * @internal + * + * Unlike rb_gv_set(), there is no way to trace this function. + */ +VALUE rb_gv_get(const char *name); + +RBIMPL_ATTR_NONNULL(()) +/** + * Obtains an instance variable. + * + * @param[in] obj Target object. + * @param[in] name Target instance variable to query. + * @exception rb_eEncodingError `name` is corrupt (contains Hanzi etc.). + * @retval RUBY_nil No such instance variable. + * @retval otherwise The value assigned to the instance variable. + */ +VALUE rb_iv_get(VALUE obj, const char *name); + +RBIMPL_ATTR_NONNULL(()) +/** + * Assigns to an instance variable. + * + * @param[out] obj Target object. + * @param[in] name Target instance variable. + * @param[in] val Value to assign. + * @exception rb_eFrozenError Can't modify `obj`. + * @exception rb_eArgError `obj` has too many instance variables. + * @return Passed value. + * @post An instance variable named `name` is defined if absent on + * `obj`, whose value is set to `val`. + * + * @internal + * + * This function does not stop you form creating an ASCII-incompatible instance + * variable, but there is no way to get one because rb_iv_get raises exceptions + * for such things. This design seems broken... But no idea why. + */ +VALUE rb_iv_set(VALUE obj, const char *name, VALUE val); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_VARIABLE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/warning_push.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/warning_push.h new file mode 100644 index 0000000..f598163 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/warning_push.h @@ -0,0 +1,124 @@ +#ifndef RBIMPL_WARNING_PUSH_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_WARNING_PUSH_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Defines #RBIMPL_WARNING_PUSH. + * + * ### Q&A ### + * + * Q: Why all the macros defined in this file are function-like macros? + * + * A: Sigh. This is because of Doxygen. Its `SKIP_FUNCTION_MACROS = YES` + * configuration setting requests us that if we want it to ignore these + * macros, then we have to do two things: (1) let them be defined as + * function-like macros, and (2) place them separately in their own line, + * like below: + * + * ```CXX + * // NG -- foo's type considered something like `unsigned int`. + * RBIMPL_WARNING_PUSH + * int foo(void); + * RBIMPL_WARNING_POP + * + * // OK -- the macros are ignored by Doxygen. + * RBIMPL_WARNING_PUSH() + * int foo(void); + * RBIMPL_WARNING_POP() + * ``` + */ +#include "ruby/internal/compiler_is.h" +#include "ruby/internal/compiler_since.h" + +#if defined(__DOXYGEN__) + +/** + * @private + * + * Pushes compiler warning state. + */ +#define RBIMPL_WARNING_PUSH() __pragma(warning(push)) + +/** + * @private + * + * Pops compiler warning state. + */ +#define RBIMPL_WARNING_POP() __pragma(warning(pop)) + +/** + * @private + * + * Turns a warning into a fatal error. + * + * @param flag A flag that represents the kind of warnings. + */ +#define RBIMPL_WARNING_ERROR(flag) __pragma(warning(error: flag)) + +/** + * @private + * + * Suppresses a warning. + * + * @param flag A flag that represents the kind of warnings. + */ +#define RBIMPL_WARNING_IGNORED(flag) __pragma(warning(disable: flag)) + +#elif RBIMPL_COMPILER_SINCE(MSVC, 12, 0, 0) +# /* Not sure exactly when but it seems VC++ 6.0 is a version with it.*/ +# define RBIMPL_WARNING_PUSH() __pragma(warning(push)) +# define RBIMPL_WARNING_POP() __pragma(warning(pop)) +# define RBIMPL_WARNING_ERROR(flag) __pragma(warning(error: flag)) +# define RBIMPL_WARNING_IGNORED(flag) __pragma(warning(disable: flag)) + +#elif RBIMPL_COMPILER_SINCE(Intel, 13, 0, 0) +# define RBIMPL_WARNING_PUSH() __pragma(warning(push)) +# define RBIMPL_WARNING_POP() __pragma(warning(pop)) +# define RBIMPL_WARNING_ERROR(flag) __pragma(warning(error: flag)) +# define RBIMPL_WARNING_IGNORED(flag) __pragma(warning(disable: flag)) + +#elif RBIMPL_COMPILER_IS(Clang) || RBIMPL_COMPILER_IS(Apple) +# /* Not sure exactly when but it seems LLVM 2.6.0 is a version with it. */ +# define RBIMPL_WARNING_PRAGMA0(x) _Pragma(# x) +# define RBIMPL_WARNING_PRAGMA1(x) RBIMPL_WARNING_PRAGMA0(clang diagnostic x) +# define RBIMPL_WARNING_PRAGMA2(x, y) RBIMPL_WARNING_PRAGMA1(x # y) +# define RBIMPL_WARNING_PUSH() RBIMPL_WARNING_PRAGMA1(push) +# define RBIMPL_WARNING_POP() RBIMPL_WARNING_PRAGMA1(pop) +# define RBIMPL_WARNING_ERROR(flag) RBIMPL_WARNING_PRAGMA2(error, flag) +# define RBIMPL_WARNING_IGNORED(flag) RBIMPL_WARNING_PRAGMA2(ignored, flag) + +#elif RBIMPL_COMPILER_SINCE(GCC, 4, 6, 0) +# /* https://gcc.gnu.org/onlinedocs/gcc-4.6.0/gcc/Diagnostic-Pragmas.html */ +# define RBIMPL_WARNING_PRAGMA0(x) _Pragma(# x) +# define RBIMPL_WARNING_PRAGMA1(x) RBIMPL_WARNING_PRAGMA0(GCC diagnostic x) +# define RBIMPL_WARNING_PRAGMA2(x, y) RBIMPL_WARNING_PRAGMA1(x # y) +# define RBIMPL_WARNING_PUSH() RBIMPL_WARNING_PRAGMA1(push) +# define RBIMPL_WARNING_POP() RBIMPL_WARNING_PRAGMA1(pop) +# define RBIMPL_WARNING_ERROR(flag) RBIMPL_WARNING_PRAGMA2(error, flag) +# define RBIMPL_WARNING_IGNORED(flag) RBIMPL_WARNING_PRAGMA2(ignored, flag) + +#else +# /* :FIXME: improve here */ +# define RBIMPL_WARNING_PUSH() /* void */ +# define RBIMPL_WARNING_POP() /* void */ +# define RBIMPL_WARNING_ERROR(flag) /* void */ +# define RBIMPL_WARNING_IGNORED(flag) /* void */ +#endif /* _MSC_VER */ +/** @endcond */ + +#endif /* RBIMPL_WARNING_PUSH_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/xmalloc.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/xmalloc.h new file mode 100644 index 0000000..57552e4 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/internal/xmalloc.h @@ -0,0 +1,392 @@ +#ifndef RBIMPL_XMALLOC_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RBIMPL_XMALLOC_H +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are + * implementation details. Don't take them as canon. They could + * rapidly appear then vanish. The name (path) of this header file + * is also an implementation detail. Do not expect it to persist + * at the place it is now. Developers are free to move it anywhere + * anytime at will. + * @note To ruby-core: remember that this header can be possibly + * recursively included from extension libraries written in C++. + * Do not expect for instance `__VA_ARGS__` is always available. + * We assume C99 for ruby itself but we don't assume languages of + * extension libraries. They could be written in C++98. + * @brief Declares ::ruby_xmalloc(). + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#ifdef HAVE_STDLIB_H +# include +#endif + +#include "ruby/internal/attr/alloc_size.h" +#include "ruby/internal/attr/nodiscard.h" +#include "ruby/internal/attr/noexcept.h" +#include "ruby/internal/attr/restrict.h" +#include "ruby/internal/attr/returns_nonnull.h" +#include "ruby/internal/dllexport.h" + +/** + * @private + * @warning Do not touch this macro. + * @warning It is an implementation detail. + * @warning It was a failure at the first place to let you know about it. + * @warning The value of this macro must match for ruby itself and all + * extension libraries, otherwise serious memory corruption shall + * occur. + */ +#ifndef USE_GC_MALLOC_OBJ_INFO_DETAILS +# define USE_GC_MALLOC_OBJ_INFO_DETAILS 0 +#endif + +#define xmalloc ruby_xmalloc /**< @old{ruby_xmalloc} */ +#define xmalloc2 ruby_xmalloc2 /**< @old{ruby_xmalloc2} */ +#define xcalloc ruby_xcalloc /**< @old{ruby_xcalloc} */ +#define xrealloc ruby_xrealloc /**< @old{ruby_xrealloc} */ +#define xrealloc2 ruby_xrealloc2 /**< @old{ruby_xrealloc2} */ +#define xfree ruby_xfree /**< @old{ruby_xfree} */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((1)) +/** + * Allocates a storage instance. It is largely the same as system malloc(), + * except: + * + * - It raises Ruby exceptions instead of returning NULL, and + * - In case of `ENOMEM` it tries to GC to make some room. + * + * @param[in] size Requested amount of memory. + * @exception rb_eNoMemError No space left for `size` bytes allocation. + * @return A valid pointer to an allocated storage instance; which has at + * least `size` bytes width, with appropriate alignment detected by + * the underlying malloc() routine. + * @note It doesn't return NULL. + * @note Unlike some malloc() implementations, it allocates something and + * returns a meaningful value even when `size` is equal to zero. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +void *ruby_xmalloc(size_t size) +RBIMPL_ATTR_NOEXCEPT(malloc(size)) +; + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((1,2)) +/** + * Identical to ruby_xmalloc(), except it allocates `nelems` * `elemsiz` bytes. + * This is needed because the multiplication could integer overflow. On such + * situations Ruby does not try to allocate at all but raises Ruby level + * exceptions instead. If there is no integer overflow the behaviour is + * exactly the same as `ruby_xmalloc(nelems*elemsiz)`. + * + * @param[in] nelems Number of elements. + * @param[in] elemsiz Size of an element. + * @exception rb_eNoMemError No space left for allocation. + * @exception rb_eArgError `nelems` * `elemsiz` would overflow. + * @return A valid pointer to an allocated storage instance; which has at + * least `nelems` * `elemsiz` bytes width, with appropriate + * alignment detected by the underlying malloc() routine. + * @note It doesn't return NULL. + * @note Unlike some malloc() implementations, it allocates something and + * returns a meaningful value even when `nelems` or `elemsiz` or + * both are zero. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +void *ruby_xmalloc2(size_t nelems, size_t elemsiz) +RBIMPL_ATTR_NOEXCEPT(malloc(nelems * elemsiz)) +; + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((1,2)) +/** + * Identical to ruby_xmalloc2(), except it returns a zero-filled storage + * instance. It can also be seen as a routine identical to ruby_xmalloc(), + * except it calls calloc() instead of malloc(). + * + * @param[in] nelems Number of elements. + * @param[in] elemsiz Size of an element. + * @exception rb_eNoMemError No space left for allocation. + * @exception rb_eArgError `nelems` * `elemsiz` would overflow. + * @return A valid pointer to an allocated storage instance; which has at + * least `nelems` * `elemsiz` bytes width, with appropriate + * alignment detected by the underlying calloc() routine. + * @post The returned storage instance is filled with zeros. + * @note It doesn't return NULL. + * @note Unlike some calloc() implementations, it allocates something and + * returns a meaningful value even when `nelems` or `elemsiz` or + * both are zero. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +void *ruby_xcalloc(size_t nelems, size_t elemsiz) +RBIMPL_ATTR_NOEXCEPT(calloc(nelems, elemsiz)) +; + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((2)) +/** + * Resize the storage instance. + * + * @param[in] ptr A valid pointer to a storage instance that was + * previously returned from either: + * - ruby_xmalloc(), + * - ruby_xmalloc2(), + * - ruby_xcalloc(), + * - ruby_xrealloc(), or + * - ruby_xrealloc2(). + * @param[in] newsiz Requested new amount of memory. + * @exception rb_eNoMemError No space left for `newsiz` bytes allocation. + * @return A valid pointer to a (possibly newly allocated) storage + * instance; which has at least `newsiz` bytes width, with + * appropriate alignment detected by the underlying realloc() + * routine. + * @pre The passed pointer must point to a valid live storage instance. + * It is a failure to pass an already freed pointer. + * @post In case the function returns the passed pointer as-is, the + * storage instance that the pointer holds is either grown or + * shrunken to have at least `newsiz` bytes. Otherwise a valid + * pointer to a newly allocated storage instance is returned. In + * this case `ptr` is invalidated as if it was passed to + * ruby_xfree(). + * @note It doesn't return NULL. + * @warning Unlike some realloc() implementations, passing zero to `newsiz` + * is not the same as calling ruby_xfree(), because this function + * never returns NULL. Something meaningful still returns then. + * @warning It is a failure not to check the return value. Do not assume + * anything on it. It could be either identical to, or distinct + * form the passed argument. + * @warning Do not assume anything on the alignment of the return value. + * There is no guarantee that it inherits the passed argument's + * one. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +void *ruby_xrealloc(void *ptr, size_t newsiz) +RBIMPL_ATTR_NOEXCEPT(realloc(ptr, newsiz)) +; + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((2,3)) +/** + * Identical to ruby_xrealloc(), except it resizes the given storage instance + * to `newelems` * `newsiz` bytes. This is needed because the multiplication + * could integer overflow. On such situations Ruby does not try to touch the + * contents of argument pointer at all but raises Ruby level exceptions + * instead. If there is no integer overflow the behaviour is exactly the same + * as `ruby_xrealloc(ptr,nelems*elemsiz)`. + * + * This is roughly the same as reallocarray() function that OpenBSD + * etc. provides, but also interacts with our GC. + * + * @param[in] ptr A valid pointer to a storage instance that was + * previously returned from either: + * - ruby_xmalloc(), + * - ruby_xmalloc2(), + * - ruby_xcalloc(), + * - ruby_xrealloc(), or + * - ruby_xrealloc2(). + * @param[in] newelems Requested new number of elements. + * @param[in] newsiz Requested new size of each element. + * @exception rb_eNoMemError No space left for allocation. + * @exception rb_eArgError `newelems` * `newsiz` would overflow. + * @return A valid pointer to a (possibly newly allocated) storage + * instance; which has at least `newelems` * `newsiz` bytes width, + * with appropriate alignment detected by the underlying realloc() + * routine. + * @pre The passed pointer must point to a valid live storage instance. + * It is a failure to pass an already freed pointer. + * @post In case the function returns the passed pointer as-is, the + * storage instance that the pointer holds is either grown or + * shrunken to have at least `newelems` * `newsiz` bytes. + * Otherwise a valid pointer to a newly allocated storage instance + * is returned. In this case `ptr` is invalidated as if it was + * passed to ruby_xfree(). + * @note It doesn't return NULL. + * @warning Unlike some realloc() implementations, passing zero to either + * `newelems` or `elemsiz` are not the same as calling + * ruby_xfree(), because this function never returns NULL. + * Something meaningful still returns then. + * @warning It is a failure not to check the return value. Do not assume + * anything on it. It could be either identical to, or distinct + * form the passed argument. + * @warning Do not assume anything on the alignment of the return value. + * There is no guarantee that it inherits the passed argument's + * one. + * @warning The return value shall be invalidated exactly once by either + * ruby_xfree(), ruby_xrealloc(), or ruby_xrealloc2(). It is a + * failure to pass it to system free(), because the system and Ruby + * might or might not share the same malloc() implementation. + */ +void *ruby_xrealloc2(void *ptr, size_t newelems, size_t newsiz) +RBIMPL_ATTR_NOEXCEPT(realloc(ptr, newelems * newsiz)) +; + +/** + * Deallocates a storage instance. + * + * @param[out] ptr Either + * - NULL, or + * - a valid pointer previously returned from one of: + * - ruby_xmalloc(), + * - ruby_xmalloc2(), + * - ruby_xcalloc(), + * - ruby_xrealloc(), or + * - ruby_xrealloc2(). + * @pre The passed pointer must point to a valid live storage instance. + * It is a failure to pass an already freed pointer. + * @post The storage instance pointed by the passed pointer gets + * invalidated; it is no longer addressable. + * @warning Every single storage instance that was previously allocated by + * either ruby_xmalloc(), ruby_xmalloc2(), ruby_xcalloc(), + * ruby_xrealloc(), or ruby_xrealloc2() shall be invalidated + * exactly once by either passing it to ruby_xfree(), or passing + * it to either ruby_xrealloc(), ruby_xrealloc2() then check the + * return value for invalidation. + * @warning Do not pass anything other than pointers described above. For + * instance pointers returned from malloc() or mmap() shall not be + * passed to this function, because the underlying memory + * management mechanism could differ. + * @warning Do not pass any invalid pointers to this function e.g. by + * calling it twice with a same argument. + */ +void ruby_xfree(void *ptr) +RBIMPL_ATTR_NOEXCEPT(free(ptr)) +; + +#if USE_GC_MALLOC_OBJ_INFO_DETAILS +# define ruby_xmalloc(s1) ruby_xmalloc_with_location(s1, __FILE__, __LINE__) +# define ruby_xmalloc2(s1, s2) ruby_xmalloc2_with_location(s1, s2, __FILE__, __LINE__) +# define ruby_xcalloc(s1, s2) ruby_xcalloc_with_location(s1, s2, __FILE__, __LINE__) +# define ruby_xrealloc(ptr, s1) ruby_xrealloc_with_location(ptr, s1, __FILE__, __LINE__) +# define ruby_xrealloc2(ptr, s1, s2) ruby_xrealloc2_with_location(ptr, s1, s2, __FILE__, __LINE__) + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((1)) +void *ruby_xmalloc_body(size_t size) +RBIMPL_ATTR_NOEXCEPT(malloc(size)) +; + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((1,2)) +void *ruby_xmalloc2_body(size_t nelems, size_t elemsiz) +RBIMPL_ATTR_NOEXCEPT(malloc(nelems * elemsiz)) +; + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((1,2)) +void *ruby_xcalloc_body(size_t nelems, size_t elemsiz) +RBIMPL_ATTR_NOEXCEPT(calloc(nelems, elemsiz)) +; + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((2)) +void *ruby_xrealloc_body(void *ptr, size_t newsiz) +RBIMPL_ATTR_NOEXCEPT(realloc(ptr, newsiz)) +; + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_ALLOC_SIZE((2,3)) +void *ruby_xrealloc2_body(void *ptr, size_t newelems, size_t newsiz) +RBIMPL_ATTR_NOEXCEPT(realloc(ptr, newelems * newsiz)) +; + +RUBY_EXTERN const char *ruby_malloc_info_file; +RUBY_EXTERN int ruby_malloc_info_line; + +static inline void * +ruby_xmalloc_with_location(size_t s, const char *file, int line) +{ + void *ptr; + ruby_malloc_info_file = file; + ruby_malloc_info_line = line; + ptr = ruby_xmalloc_body(s); + ruby_malloc_info_file = NULL; + return ptr; +} + +static inline void * +ruby_xmalloc2_with_location(size_t s1, size_t s2, const char *file, int line) +{ + void *ptr; + ruby_malloc_info_file = file; + ruby_malloc_info_line = line; + ptr = ruby_xmalloc2_body(s1, s2); + ruby_malloc_info_file = NULL; + return ptr; +} + +static inline void * +ruby_xcalloc_with_location(size_t s1, size_t s2, const char *file, int line) +{ + void *ptr; + ruby_malloc_info_file = file; + ruby_malloc_info_line = line; + ptr = ruby_xcalloc_body(s1, s2); + ruby_malloc_info_file = NULL; + return ptr; +} + +static inline void * +ruby_xrealloc_with_location(void *ptr, size_t s, const char *file, int line) +{ + void *rptr; + ruby_malloc_info_file = file; + ruby_malloc_info_line = line; + rptr = ruby_xrealloc_body(ptr, s); + ruby_malloc_info_file = NULL; + return rptr; +} + +static inline void * +ruby_xrealloc2_with_location(void *ptr, size_t s1, size_t s2, const char *file, int line) +{ + void *rptr; + ruby_malloc_info_file = file; + ruby_malloc_info_line = line; + rptr = ruby_xrealloc2_body(ptr, s1, s2); + ruby_malloc_info_file = NULL; + return rptr; +} +#endif + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RBIMPL_XMALLOC_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/io.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/io.h new file mode 100644 index 0000000..88029b1 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/io.h @@ -0,0 +1,1022 @@ +#ifndef RUBY_IO_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_IO_H 1 +/** + * @file + * @author $Author$ + * @date Fri Nov 12 16:47:09 JST 1993 + * @copyright Copyright (C) 1993-2007 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ +#include "ruby/internal/config.h" + +#include +#include "ruby/encoding.h" + +#if defined(HAVE_STDIO_EXT_H) +#include +#endif + +#include + +/** @cond INTERNAL_MACRO */ +#if defined(HAVE_POLL) +# ifdef _AIX +# define reqevents events +# define rtnevents revents +# endif +# include +# ifdef _AIX +# undef reqevents +# undef rtnevents +# undef events +# undef revents +# endif +# define RB_WAITFD_IN POLLIN +# if defined(POLLPRI) +# define RB_WAITFD_PRI POLLPRI +# else +# define RB_WAITFD_PRI 0 +# endif +# define RB_WAITFD_OUT POLLOUT +#else +# define RB_WAITFD_IN 0x001 +# define RB_WAITFD_PRI 0x002 +# define RB_WAITFD_OUT 0x004 +#endif +/** @endcond */ + +#include "ruby/internal/attr/const.h" +#include "ruby/internal/attr/pure.h" +#include "ruby/internal/attr/noreturn.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/value.h" +#include "ruby/backward/2/attributes.h" /* PACKED_STRUCT_UNALIGNED */ + +// IO#wait, IO#wait_readable, IO#wait_writable, IO#wait_priority are defined by this implementation. +#define RUBY_IO_WAIT_METHODS + +// Used as the default timeout argument to `rb_io_wait` to use the `IO#timeout` value. +#define RUBY_IO_TIMEOUT_DEFAULT Qnil + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +struct stat; +struct timeval; + +/** + * Indicates that a timeout has occurred while performing an IO operation. + */ +RUBY_EXTERN VALUE rb_eIOTimeoutError; + +/** + * Type of events that an IO can wait. + * + * @internal + * + * This is visible from extension libraries because `io/wait` wants it. + */ +typedef enum { + RUBY_IO_READABLE = RB_WAITFD_IN, /**< `IO::READABLE` */ + RUBY_IO_WRITABLE = RB_WAITFD_OUT, /**< `IO::WRITABLE` */ + RUBY_IO_PRIORITY = RB_WAITFD_PRI, /**< `IO::PRIORITY` */ +} rb_io_event_t; + +/** + * IO buffers. This is an implementation detail of ::rb_io_t::wbuf and + * ::rb_io_t::rbuf. People don't manipulate it directly. + */ +PACKED_STRUCT_UNALIGNED(struct rb_io_buffer_t { + + /** Pointer to the underlying memory region, of at least `capa` bytes. */ + char *ptr; /* off + len <= capa */ + + /** Offset inside of `ptr`. */ + int off; + + /** Length of the buffer. */ + int len; + + /** Designed capacity of the buffer. */ + int capa; +}); + +/** @alias{rb_io_buffer_t} */ +typedef struct rb_io_buffer_t rb_io_buffer_t; + +/** Decomposed encoding flags (e.g. `"enc:enc2""`). */ +/* + * enc enc2 read action write action + * NULL NULL force_encoding(default_external) write the byte sequence of str + * e1 NULL force_encoding(e1) convert str.encoding to e1 + * e1 e2 convert from e2 to e1 convert str.encoding to e2 + */ +struct rb_io_enc_t { + /** Internal encoding. */ + rb_encoding *enc; + /** External encoding. */ + rb_encoding *enc2; + /** + * Flags. + * + * @see enum ::ruby_econv_flag_type + */ + int ecflags; + /** + * Flags as Ruby hash. + * + * @internal + * + * This is set. But used from nowhere maybe? + */ + VALUE ecopts; +}; + +/** Ruby's IO, metadata and buffers. */ +typedef struct rb_io_t { + + /** The IO's Ruby level counterpart. */ + VALUE self; + + /** stdio ptr for read/write, if available. */ + FILE *stdio_file; + + /** file descriptor. */ + int fd; + + /** mode flags: FMODE_XXXs */ + int mode; + + /** child's pid (for pipes) */ + rb_pid_t pid; + + /** number of lines read */ + int lineno; + + /** pathname for file */ + VALUE pathv; + + /** finalize proc */ + void (*finalize)(struct rb_io_t*,int); + + /** Write buffer. */ + rb_io_buffer_t wbuf; + + /** + * (Byte) read buffer. Note also that there is a field called + * ::rb_io_t::cbuf, which also concerns read IO. + */ + rb_io_buffer_t rbuf; + + /** + * Duplex IO object, if set. + * + * @see rb_io_set_write_io() + */ + VALUE tied_io_for_writing; + + struct rb_io_enc_t encs; /**< Decomposed encoding flags. */ + + /** Encoding converter used when reading from this IO. */ + rb_econv_t *readconv; + + /** + * rb_io_ungetc() destination. This buffer is read before checking + * ::rb_io_t::rbuf + */ + rb_io_buffer_t cbuf; + + /** Encoding converter used when writing to this IO. */ + rb_econv_t *writeconv; + + /** + * This is, when set, an instance of ::rb_cString which holds the "common" + * encoding. Write conversion can convert strings twice... In case + * conversion from encoding X to encoding Y does not exist, Ruby finds an + * encoding Z that bridges the two, so that X to Z to Y conversion happens. + */ + VALUE writeconv_asciicompat; + + /** Whether ::rb_io_t::writeconv is already set up. */ + int writeconv_initialized; + + /** + * Value of ::rb_io_t::rb_io_enc_t::ecflags stored right before + * initialising ::rb_io_t::writeconv. + */ + int writeconv_pre_ecflags; + + /** + * Value of ::rb_io_t::rb_io_enc_t::ecopts stored right before initialising + * ::rb_io_t::writeconv. + */ + VALUE writeconv_pre_ecopts; + + /** + * This is a Ruby level mutex. It avoids multiple threads to write to an + * IO at once; helps for instance rb_io_puts() to ensure newlines right + * next to its arguments. + * + * This of course doesn't help inter-process IO interleaves, though. + */ + VALUE write_lock; + + /** + * The timeout associated with this IO when performing blocking operations. + */ + VALUE timeout; +} rb_io_t; + +/** @alias{rb_io_enc_t} */ +typedef struct rb_io_enc_t rb_io_enc_t; + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define HAVE_RB_IO_T 1 + +/** + * @name Possible flags for ::rb_io_t::mode + * + * @{ + */ + +/** The IO is opened for reading. */ +#define FMODE_READABLE 0x00000001 + +/** The IO is opened for writing. */ +#define FMODE_WRITABLE 0x00000002 + +/** The IO is opened for both read/write. */ +#define FMODE_READWRITE (FMODE_READABLE|FMODE_WRITABLE) + +/** + * The IO is in "binary mode". This is not what everything rb_io_binmode() + * concerns. This low-level flag is to stop CR <-> CRLF conversions that would + * happen in the underlying operating system. + * + * Setting this one and #FMODE_TEXTMODE at the same time is a contradiction. + * Setting this one and #ECONV_NEWLINE_DECORATOR_MASK at the same time is also + * a contradiction. + */ +#define FMODE_BINMODE 0x00000004 + +/** + * The IO is in "sync mode". All output is immediately flushed to the + * underlying operating system then. Can be set via rb_io_synchronized(), but + * there is no way except calling `IO#sync=` to reset. + */ +#define FMODE_SYNC 0x00000008 + +/** + * The IO is a TTY. What is a TTY and what isn't depends on the underlying + * operating system's `isatty(3)` output. You cannot change this. + */ +#define FMODE_TTY 0x00000010 + +/** + * Ruby eventually detects that the IO is bidirectional. For instance a TTY + * has such property. There are several other things known to be duplexed. + * Additionally you (extension library authors) can also implement your own + * bidirectional IO subclasses. One of such example is `Socket`. + */ +#define FMODE_DUPLEX 0x00000020 + +/** + * The IO is opened for appending. This mode always writes at the end of the + * IO. Ruby manages this flag for record but basically the logic behind this + * mode is at the underlying operating system. We almost do nothing. + */ +#define FMODE_APPEND 0x00000040 + +/** + * The IO is opened for creating. This makes sense only when the destination + * file does not exist at the time the IO object was created. This is the + * default mode for writing, but you can pass `"r+"` to `IO.open` etc., to + * reroute this creation. + */ +#define FMODE_CREATE 0x00000080 +/* #define FMODE_NOREVLOOKUP 0x00000100 */ + +/** + * This flag amends the effect of #FMODE_CREATE, so that if there already is a + * file at the given path the operation fails. Using this you can be sure that + * the file you get is a fresh new one. + */ +#define FMODE_EXCL 0x00000400 + +/** + * This flag amends the effect of #FMODE_CREATE, so that if there already is a + * file at the given path it gets truncated. + */ +#define FMODE_TRUNC 0x00000800 + +/** + * The IO is in "text mode". On systems where such mode make sense, this flag + * changes the way the IO handles the contents. On POSIX systems it is + * basically a no-op, but with this flag set you can optionally let Ruby + * manually convert newlines, unlike when in binary mode: + * + * ```ruby + * IO.open("/p/a/t/h", "wt", crlf_newline: true) # "wb" is NG. + * ``` + * + * Setting this one and #FMODE_BINMODE at the same time is a contradiction. + */ +#define FMODE_TEXTMODE 0x00001000 +/* #define FMODE_PREP 0x00010000 */ +/* #define FMODE_SIGNAL_ON_EPIPE 0x00020000 */ + +/** + * This flag amends the encoding of the IO so that the BOM of the contents of + * the IO takes effect. + */ +#define FMODE_SETENC_BY_BOM 0x00100000 +/* #define FMODE_UNIX 0x00200000 */ +/* #define FMODE_INET 0x00400000 */ +/* #define FMODE_INET6 0x00800000 */ + +/** @} */ + +/** + * Queries the underlying IO pointer. + * + * @param[in] obj An IO object. + * @param[out] fp A variable of type ::rb_io_t. + * @exception rb_eFrozenError `obj` is frozen. + * @exception rb_eIOError `obj` is closed. + * @post `fp` holds `obj`'s underlying IO. + */ +#define RB_IO_POINTER(obj,fp) rb_io_check_closed((fp) = RFILE(rb_io_taint_check(obj))->fptr) + +/** + * This is an old name of #RB_IO_POINTER. Not sure if we want to deprecate + * this macro. There still are tons of usages out there in the wild. + */ +#define GetOpenFile RB_IO_POINTER + +/** + * Fills an IO object. This makes the best sense when called from inside of an + * `#initialize` method of a 3rd party extension library that inherits + * ::rb_cIO. + * + * If the passed IO is already opened for something it first closes that and + * opens a new one instead. + * + * @param[out] obj An IO object to fill in. + * @param[out] fp A variable of type ::rb_io_t. + * @exception rb_eTypeError `obj` is not ::RUBY_T_FILE. + * @post `fp` holds `obj`'s underlying IO. + */ +#define RB_IO_OPEN(obj, fp) do {\ + (fp) = rb_io_make_open_file(obj);\ +} while (0) + +/** + * This is an old name of #RB_IO_OPEN. Not sure if we want to deprecate this + * macro. There still are usages out there in the wild. + */ +#define MakeOpenFile RB_IO_OPEN + +/** + * @private + * + * This is an implementation detail of #RB_IO_OPEN. People don't use it + * directly. + * + * @param[out] obj An IO object to fill in. + * @exception rb_eTypeError `obj` is not ::RUBY_T_FILE. + * @return `obj`'s backend IO. + * @post `obj` is initialised. + */ +rb_io_t *rb_io_make_open_file(VALUE obj); + +/** + * Finds or creates a stdio's file structure from a Ruby's one. This can be + * handy if you want to call an external API that accepts `FILE *`. + * + * @note Note however, that `FILE`s can have their own buffer. Mixing Ruby's + * and stdio's file are basically dangerous. Use with care. + * + * @param[in,out] fptr Target IO. + * @return A stdio's file, created if absent. + * @post `fptr` has its corresponding stdio's file. + * + * @internal + * + * We had rich support for `FILE` before! In the days of 1.8.x ::rb_io_t was + * like this: + * + * ```CXX + * typedef struct rb_io_t { + * FILE *f; // stdio ptr for read/write + * FILE *f2; // additional ptr for rw pipes + * int mode; // mode flags + * int pid; // child's pid (for pipes) + * int lineno; // number of lines read + * char *path; // pathname for file + * void (*finalize) _((struct rb_io_t*,int)); // finalize proc + * } rb_io_t; + *``` + * + * But we eventually abandoned this layout. It was too difficult. We could + * not have fine-grained control over the `f` field. + * + * - `FILE` tends to be an opaque struct. It does not interface well with + * `select(2)` etc. This makes IO multiplexing quite hard. Using stdio, + * there is arguably no portable way to know if `fwrite(3)` blocks. + * + * - Nonblocking mode, which is another core concept that enables IO + * multiplexing, does not interface with stdio routines at all. + * + * - Detection of duplexed IO is also hard for the same reason. + * + * - `feof(3)` is not portable. + * https://mail.python.org/pipermail/python-dev/2001-January/011390.html + * + * - Solaris was a thing back then. They could not have more than 256 `FILE` + * structures at a time. Their file descriptors ware stored in an + * `unsigned char`. + * + * - It is next to impossible to avoid SEGV, especially when a thread tries to + * `ungetc(3)`-ing from a `FILE` which is `fread(3)`-ed by another one. + * + * In short, it is a bad idea to let someone else manage IO buffers, especially + * someone you cannot control. This still applies to extension libraries + * methinks. Ruby doesn't prevent you from shooting yourself in the foot, but + * consider yourself warned here. + */ +FILE *rb_io_stdio_file(rb_io_t *fptr); + +/** + * Identical to rb_io_stdio_file(), except it takes file descriptors instead of + * Ruby's IO. It can also be seen as a compatibility layer to wrap + * `fdopen(3)`. Nowadays all supporting systems, including Windows, have + * `fdopen`. Why not use them. + * + * @param[in] fd A file descriptor. + * @param[in] modestr C string, something like `"r+"`. + * @exception rb_eSystemCallError `fdopen` failed for some reason. + * @return A stdio's file associated with `fd`. + * @note Interpretation of `modestr` depends on the underlying operating + * system. On glibc you might be able to pass e.g. `"rm"`, but + * that's an extension to POSIX. + */ +FILE *rb_fdopen(int fd, const char *modestr); + +/** + * Maps a file mode string (that rb_file_open() takes) into a mixture of + * `FMODE_` flags. This for instance returns + * `FMODE_WRITABLE | FMODE_TRUNC | FMODE_CREATE | FMODE_EXCL` for `"wx"`. + * + * @note You cannot pass this return value to OS provided `open(2)` etc. + * + * @param[in] modestr File mode, in C's string. + * @exception rb_eArgError `modestr` is broken. + * @return A set of flags. + * + * @internal + * + * rb_io_modestr_fmode() is not a pure function because it raises. + */ +int rb_io_modestr_fmode(const char *modestr); + +/** + * Identical to rb_io_modestr_fmode(), except it returns a mixture of `O_` + * flags. This for instance returns `O_WRONLY | O_TRUNC | O_CREAT | O_EXCL` for + * `"wx"`. + * + * @param[in] modestr File mode, in C's string. + * @exception rb_eArgError `modestr` is broken. + * @return A set of flags. + * + * @internal + * + * rb_io_modestr_oflags() is not a pure function because it raises. + */ +int rb_io_modestr_oflags(const char *modestr); + +RBIMPL_ATTR_CONST() +/** + * Converts an oflags (that rb_io_modestr_oflags() returns) to a fmode (that + * rb_io_mode_flags() returns). This is a purely functional operation. + * + * @param[in] oflags A set of `O_` flags. + * @return Corresponding set of `FMODE_` flags. + */ +int rb_io_oflags_fmode(int oflags); + +/** + * Asserts that an IO is opened for writing. + * + * @param[in] fptr An IO you want to write to. + * @exception rb_eIOError `fptr` is not for writing. + * @post Upon successful return `fptr` is ready for writing. + * + * @internal + * + * The parameter must have been `const rb_io_t *`. + */ +void rb_io_check_writable(rb_io_t *fptr); + +/** @alias{rb_io_check_byte_readable} */ +void rb_io_check_readable(rb_io_t *fptr); + +/** + * Asserts that an IO is opened for character-based reading. A character can + * be wider than a byte. Because of this we have to buffer reads from + * descriptors. This fiction checks if that is possible. + * + * @param[in] fptr An IO you want to read characters from. + * @exception rb_eIOError `fptr` is not for reading. + * @post Upon successful return `fptr` is ready for reading characters. + * + * @internal + * + * Unlike rb_io_check_writable() the parameter cannot be `const rb_io_t *`. + * Behind the scene this operation flushes its write buffers. This is because + * of OpenSSL. They mandate this way. + * + * @see "Can I use OpenSSL's SSL library with non-blocking I/O?" + * https://www.openssl.org/docs/faq.html + */ +void rb_io_check_char_readable(rb_io_t *fptr); + +/** + * Asserts that an IO is opened for byte-based reading. Byte-based and + * character-based reading operations cannot be mixed at a time. + * + * @param[in] fptr An IO you want to read characters from. + * @exception rb_eIOError `fptr` is not for reading. + * @post Upon successful return `fptr` is ready for reading bytes. + */ +void rb_io_check_byte_readable(rb_io_t *fptr); + +/** + * Destroys the given IO. Any pending operations are flushed. + * + * @note It makes no sense to call this function from anywhere outside of your + * class' ::rb_data_type_struct::dfree. + * + * @param[out] fptr IO to close. + * @post `fptr` is no longer a valid pointer. + */ +int rb_io_fptr_finalize(rb_io_t *fptr); + +/** + * Sets #FMODE_SYNC. + * + * @note There is no way for C extensions to undo this operation. + * + * @param[out] fptr IO to set the flag. + * @exception rb_eIOError `fptr` is not opened. + * @post `fptr` is in sync mode. + */ +void rb_io_synchronized(rb_io_t *fptr); + +/** + * Asserts that the passed IO is initialised. + * + * @param[in] fptr IO that you expect be initialised. + * @exception rb_eIOError `fptr` is not initialised. + * @post `fptr` is initialised. + */ +void rb_io_check_initialized(rb_io_t *fptr); + +/** + * This badly named function asserts that the passed IO is _open_. + * + * @param[in] fptr An IO + * @exception rb_eIOError `fptr` is closed. + * @post `fptr` is open. + */ +void rb_io_check_closed(rb_io_t *fptr); + +/** + * Identical to rb_io_check_io(), except it raises exceptions on conversion + * failures. + * + * @param[in] io Target object. + * @exception rb_eTypeError No implicit conversion to IO. + * @return Return value of `obj.to_io`. + * @see rb_str_to_str + * @see rb_ary_to_ary + */ +VALUE rb_io_get_io(VALUE io); + +/** + * Try converting an object to its IO representation using its `to_io` method, + * if any. If there is no such thing, returns ::RUBY_Qnil. + * + * @param[in] io Arbitrary ruby object to convert. + * @exception rb_eTypeError `obj.to_io` returned something non-IO. + * @retval RUBY_Qnil No conversion from `obj` to IO defined. + * @retval otherwise Converted IO representation of `obj`. + * @see rb_check_array_type + * @see rb_check_string_type + * @see rb_check_hash_type + */ +VALUE rb_io_check_io(VALUE io); + +/** + * Queries the tied IO for writing. An IO can be duplexed. Fine. The thing + * is, that characteristics could sometimes be achieved by the underlying + * operating system (for instance a socket's duplexity is by nature) but + * sometimes by us. Notable example is a bidirectional pipe. Suppose you + * have: + * + * ```ruby + * fp = IO.popen("-", "r+") + * ``` + * + * This pipe is duplexed (the `"r+"`). You can both read from/write to it. + * However your operating system may or may not implement bidirectional pipes. + * FreeBSD is one of such operating systems known to have one; OTOH Linux is + * known to lack such things. So to achieve maximum portability, Ruby's + * bidirectional pipes are done purely in user land. A pipe in ruby can have + * multiple file descriptors; one for reading and the other for writing. This + * API is to obtain the IO port which corresponds to the passed one, for + * writing. + * + * @param[in] io An IO. + * @return Its tied IO for writing, if any, or `io` itself otherwise. + */ +VALUE rb_io_get_write_io(VALUE io); + +/** + * Assigns the tied IO for writing. See rb_io_get_write_io() for what a "tied + * IO for writing" is. + * + * @param[out] io An IO. + * @param[in] w Another IO. + * @retval RUBY_Qnil There was no tied IO for writing for `io`. + * @retval otherwise The IO formerly tied to `io`. + * @post `io` ties `w` for writing. + * + * @internal + * + * @shyouhei doesn't think there is any needs of this function for 3rd party + * extension libraries. + */ +VALUE rb_io_set_write_io(VALUE io, VALUE w); + +/** + * Instructs the OS to put its internal file structure into "nonblocking mode". + * This is an in-Kernel concept. Reading from/writing to that file using C + * function calls would return -1 with errno set. However when it comes to a + * ruby program, we hide that error behind our `IO#read` method. Ruby level + * `IO#read` blocks regardless of this flag. If you want to avoid blocking, + * you should consider using methods like `IO#readpartial`. + * + * ```ruby + * require 'io/nonblock' + * STDIN.nonblock = true + * STDIN.gets # blocks. + * ``` + * + * As of writing there is a room of this API in Fiber schedulers. A Fiber + * scheduler could be written in a way its behaviour depends on this property. + * You need an in-depth understanding of how schedulers work to properly + * leverage this, though. + * + * @note Note however that nonblocking-ness propagates across process + * boundaries. You must really carefully watch your step when turning + * for instance `stderr` into nonblock mode (it tends to be shared + * across many processes). Also it is a complete disaster to mix a + * nonblocking file and stdio, and `stderr` tends to be under control of + * stdio in other processes. + * + * @param[out] fptr An IO that is to ne nonblocking. + * @post Descriptor that `fptr` describes is under nonblocking mode. + * + * @internal + * + * There is `O_NONBLOCK` but not `FMODE_NONBLOCK`. You cannot atomically + * create a nonblocking file descriptor using our API. + */ +void rb_io_set_nonblock(rb_io_t *fptr); + +/** + * Returns an integer representing the numeric file descriptor for + * io. + * + * @param[in] io An IO. + * @retval int A file descriptor. + */ +int rb_io_descriptor(VALUE io); + +/** + * This function breaks down the option hash that `IO#initialize` takes into + * components. This is an implementation detail of rb_io_extract_modeenc() + * today. People prefer that API instead. + * + * @param[in] opt The hash to decompose. + * @param[out] enc_p Return value buffer. + * @param[out] enc2_p Return value buffer. + * @param[out] fmode_p Return value buffer. + * @exception rb_eTypeError `opt` is broken. + * @exception rb_eArgError Specified encoding does not exist. + * @retval 1 Components got extracted. + * @retval 0 Otherwise. + * @post `enc_p` is the specified internal encoding. + * @post `enc2_p` is the specified external encoding. + * @post `fmode_p` is the specified set of `FMODE_` modes. + */ +int rb_io_extract_encoding_option(VALUE opt, rb_encoding **enc_p, rb_encoding **enc2_p, int *fmode_p); + +/** + * This function can be seen as an extended version of + * rb_io_extract_encoding_option() that not only concerns the option hash but + * also mode string and so on. This should be mixed with rb_scan_args() like: + * + * ```CXX + * // This method mimics File.new + * static VALUE + * your_method(int argc, const VALUE *argv, VALUE self) + * { + * VALUE f; // file name + * VALUE m; // open mode + * VALUE p; // permission (O_CREAT) + * VALUE k; // keywords + * rb_io_enc_t c; // converter + * int oflags; + * int fmode; + * + * int n = rb_scan_args(argc, argv, "12:", &f, &m, &p, &k); + * rb_io_extract_modeenc(&m, &p, k, &oflags, &fmode, &c); + * + * // Every local variables declared so far has been properly filled here. + * ... + * } + * ``` + * + * @param[in,out] vmode_p Pointer to a mode object. + * @param[in,out] vperm_p Pointer to a permission object. + * @param[in] opthash Keyword arguments + * @param[out] oflags_p `O_` flags return buffer. + * @param[out] fmode_p `FMODE_` flags return buffer. + * @param[out] convconfig_p Encoding config return buffer. + * @exception rb_eTypeError Unexpected object (e.g. Time) passed. + * @exception rb_eArgError Contradiction inside of params. + * @post `*vmode_p` is a mode object (filled if any). + * @post `*vperm_p` is a permission object (filled if any). + * @post `*oflags_p` is filled with `O_` flags. + * @post `*fmode_p` is filled with `FMODE_` flags. + * @post `*convconfig_p` is filled with conversion instructions. + * + * @internal + * + * ```rbs + * class File + * def initialize: ( + * (String | int) path, + * ?(String | int) fmode, + * ?(String | int) perm, + * ?mode: (String | int), + * ?flags: int, + * ?external_encoding: (Encoding | String), + * ?internal_encoding: (Encoding | String), + * ?encoding: String, + * ?textmode: bool, + * ?binmode: bool, + * ?autoclose: bool, + * ?invalid: :replace, + * ?undef: :replace, + * ?replace: String, + * ?fallback: (Hash | Proc | Method), + * ?xml: (:text | :attr), + * ?crlf_newline: bool, + * ?cr_newline: bool, + * ?universal_newline: bool + * ) -> void + * ``` + */ +void rb_io_extract_modeenc(VALUE *vmode_p, VALUE *vperm_p, VALUE opthash, int *oflags_p, int *fmode_p, rb_io_enc_t *convconfig_p); + +/* :TODO: can this function be __attribute__((warn_unused_result)) or not? */ +/** + * Buffered write to the passed IO. + * + * @param[out] io Destination IO. + * @param[in] buf Contents to go to `io`. + * @param[in] size Number of bytes of `buf`. + * @exception rb_eFrozenError `io` is frozen. + * @exception rb_eIOError `io` is not open for writing. + * @exception rb_eSystemCallError `writev(2)` failed for some reason. + * @retval -1 Write failed. + * @retval otherwise Number of bytes actually written. + * @post `buf` is written to `io`. + * @note Partial write is a thing. It is a failure not to check the + * return value. + */ +ssize_t rb_io_bufwrite(VALUE io, const void *buf, size_t size); + +//RBIMPL_ATTR_DEPRECATED(("use rb_io_maybe_wait_readable")) +/** + * Blocks until the passed file descriptor gets readable. + * + * @deprecated We now prefer rb_io_maybe_wait_readable() over this one. + * @param[in] fd The file descriptor to wait. + * @exception rb_eIOError Bad file descriptor. + * @return 0 or 1 (meaning unclear). + * @post `fd` is ready for reading. + */ +int rb_io_wait_readable(int fd); + +//RBIMPL_ATTR_DEPRECATED(("use rb_io_maybe_wait_writable")) +/** + * Blocks until the passed file descriptor gets writable. + * + * @deprecated We now prefer rb_io_maybe_wait_writable() over this one. + * @param[in] fd The file descriptor to wait. + * @exception rb_eIOError Bad file descriptor. + * @return 0 or 1 (meaning unclear). + */ +int rb_io_wait_writable(int fd); + +//RBIMPL_ATTR_DEPRECATED(("use rb_io_wait")) +/** + * Blocks until the passed file descriptor is ready for the passed events. + * + * @deprecated We now prefer rb_io_maybe_wait() over this one. + * @param[in] fd The file descriptor to wait. + * @param[in] events A set of enum ::rb_io_event_t. + * @param[in,out] tv Timeout. + * @retval 0 Operation timed out. + * @retval -1 `select(2)` failed for some reason. + * @retval otherwise A set of enum ::rb_io_event_t. + * @note Depending on your operating system `tv` might or might not + * be updated (POSIX permits both). Portable programs must + * have no assumptions. + */ +int rb_wait_for_single_fd(int fd, int events, struct timeval *tv); + +/** + * Get the timeout associated with the specified io object. + * + * @param[in] io An IO object. + * @retval RUBY_Qnil There is no associated timeout. + * @retval Otherwise The timeout value. + */ +VALUE rb_io_timeout(VALUE io); + +/** + * Set the timeout associated with the specified io object. This timeout is + * used as a best effort timeout to prevent operations from blocking forever. + * + * @param[in] io An IO object. + * @param[in] timeout A timeout value. Must respond to #to_f. + * @ + */ +VALUE rb_io_set_timeout(VALUE io, VALUE timeout); + +/** + * Blocks until the passed IO is ready for the passed events. The "events" + * here is a Ruby level integer, which is an OR-ed value of `IO::READABLE`, + * `IO::WRITable`, and `IO::PRIORITY`. + * + * If timeout is `Qnil`, it will use the default timeout as given by + * `rb_io_timeout(io)`. + * + * @param[in] io An IO object to wait. + * @param[in] events See above. + * @param[in] timeout Time, or numeric seconds since UNIX epoch. + * If Qnil, use the default timeout. If Qfalse + * or Qundef, wait forever. + * @exception rb_eIOError `io` is not open. + * @exception rb_eRangeError `timeout` is out of range. + * @exception rb_eSystemCallError `select(2)` failed for some reason. + * @retval RUBY_Qfalse Operation timed out. + * @retval Otherwise Actual events reached. + */ +VALUE rb_io_wait(VALUE io, VALUE events, VALUE timeout); + +/** + * Identical to rb_io_wait() except it additionally takes previous errno. If + * the passed errno indicates for instance `EINTR`, this function returns + * immediately. This is expected to be called in a loop. + * + * ```CXX + * while (true) { + * + * ... // Your interesting operation here + * // `errno` could be updated + * + * rb_io_maybe_wait(errno, io, ev, Qnil); + * } + * ``` + * + * @param[in] error System errno. + * @param[in] io An IO object to wait. + * @param[in] events An integer set of interests. + * @param[in] timeout Time, or numeric seconds since UNIX epoch. + * @exception rb_eIOError `io` is not open. + * @exception rb_eRangeError `timeout` is out of range. + * @exception rb_eSystemCallError `select(2)` failed for some reason. + * @retval RUBY_Qfalse Operation timed out. + * @retval Otherwise Actual events reached. + * + * @internal + * + * This function to return ::RUBY_Qfalse on timeout could be unintended. It + * seems timeout feature has some rough edge. + */ +VALUE rb_io_maybe_wait(int error, VALUE io, VALUE events, VALUE timeout); + +/** + * Blocks until the passed IO is ready for reading, if that makes sense for the + * passed errno. This is a special case of rb_io_maybe_wait() that only + * concerns for reading. + * + * @param[in] error System errno. + * @param[in] io An IO object to wait. + * @param[in] timeout Time, or numeric seconds since UNIX epoch. + * @exception rb_eIOError `io` is not open. + * @exception rb_eRangeError `timeout` is out of range. + * @exception rb_eSystemCallError `select(2)` failed for some reason. + * @retval 0 Operation timed out. + * @retval Otherwise Always returns ::RUBY_IO_READABLE. + */ +int rb_io_maybe_wait_readable(int error, VALUE io, VALUE timeout); + +/** + * Blocks until the passed IO is ready for writing, if that makes sense for the + * passed errno. This is a special case of rb_io_maybe_wait() that only + * concernsfor writing. + * + * @param[in] error System errno. + * @param[in] io An IO object to wait. + * @param[in] timeout Time, or numeric seconds since UNIX epoch. + * @exception rb_eIOError `io` is not open. + * @exception rb_eRangeError `timeout` is out of range. + * @exception rb_eSystemCallError `select(2)` failed for some reason. + * @retval 0 Operation timed out. + * @retval Otherwise Always returns ::RUBY_IO_WRITABLE. + */ +int rb_io_maybe_wait_writable(int error, VALUE io, VALUE timeout); + +/** @cond INTERNAL_MACRO */ +/* compatibility for ruby 1.8 and older */ +#define rb_io_mode_flags(modestr) [<"rb_io_mode_flags() is obsolete; use rb_io_modestr_fmode()">] +#define rb_io_modenum_flags(oflags) [<"rb_io_modenum_flags() is obsolete; use rb_io_oflags_fmode()">] +/** @endcond */ + +/** + * @deprecated This function once was a thing in the old days, but makes no + * sense any longer today. Exists here for backwards + * compatibility only. You can safely forget about it. + * + * @param[in] obj Object in question. + * @exception rb_eFrozenError obj is frozen. + * @return The passed `obj` + */ +VALUE rb_io_taint_check(VALUE obj); + +RBIMPL_ATTR_NORETURN() +/** + * Utility function to raise ::rb_eEOFError. + * + * @exception rb_eEOFError End of file situation. + * @note It never returns. + */ +void rb_eof_error(void); + +/** + * Blocks until there is a pending read in the passed IO. If there already is + * it just returns. + * + * @param[out] fptr An IO to wait for reading. + * @post The are bytes to be read. + */ +void rb_io_read_check(rb_io_t *fptr); + +RBIMPL_ATTR_PURE() +/** + * Queries if the passed IO has any pending reads. Unlike rb_io_read_check() + * this doesn't block; has no side effects. + * + * @param[in] fptr An IO which can have pending reads. + * @retval 0 The IO is empty. + * @retval 1 There is something buffered. + */ +int rb_io_read_pending(rb_io_t *fptr); + +/** + * Constructs an instance of ::rb_cStat from the passed information. + * + * @param[in] st A stat. + * @return Allocated new instance of ::rb_cStat. + */ +VALUE rb_stat_new(const struct stat *st); + +/* gc.c */ + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_IO_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/io/buffer.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/io/buffer.h new file mode 100644 index 0000000..88e5598 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/io/buffer.h @@ -0,0 +1,96 @@ +#ifndef RUBY_IO_BUFFER_H +#define RUBY_IO_BUFFER_H +/** + * @file + * @author Samuel Williams + * @date Fri 2 Jul 2021 16:29:01 NZST + * @copyright Copyright (C) 2021 Samuel Williams + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ + +#pragma once + +#include "ruby/ruby.h" +#include "ruby/internal/config.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +// WARNING: This entire interface is experimental and may change in the future! +#define RB_IO_BUFFER_EXPERIMENTAL 1 + +#define RUBY_IO_BUFFER_VERSION 2 + +RUBY_EXTERN VALUE rb_cIOBuffer; +RUBY_EXTERN size_t RUBY_IO_BUFFER_PAGE_SIZE; +RUBY_EXTERN size_t RUBY_IO_BUFFER_DEFAULT_SIZE; + +enum rb_io_buffer_flags { + // The memory in the buffer is owned by someone else. + // More specifically, it means that someone else owns the buffer and we shouldn't try to resize it. + RB_IO_BUFFER_EXTERNAL = 1, + // The memory in the buffer is allocated internally. + RB_IO_BUFFER_INTERNAL = 2, + // The memory in the buffer is mapped. + // A non-private mapping is marked as external. + RB_IO_BUFFER_MAPPED = 4, + + // A mapped buffer that is also shared. + RB_IO_BUFFER_SHARED = 8, + + // The buffer is locked and cannot be resized. + // More specifically, it means we can't change the base address or size. + // A buffer is typically locked before a system call that uses the data. + RB_IO_BUFFER_LOCKED = 32, + + // The buffer mapping is private and will not impact other processes or the underlying file. + RB_IO_BUFFER_PRIVATE = 64, + + // The buffer is read-only and cannot be modified. + RB_IO_BUFFER_READONLY = 128 +}; + +enum rb_io_buffer_endian { + RB_IO_BUFFER_LITTLE_ENDIAN = 4, + RB_IO_BUFFER_BIG_ENDIAN = 8, + +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ + RB_IO_BUFFER_HOST_ENDIAN = RB_IO_BUFFER_LITTLE_ENDIAN, +#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + RB_IO_BUFFER_HOST_ENDIAN = RB_IO_BUFFER_BIG_ENDIAN, +#elif REG_DWORD == REG_DWORD_LITTLE_ENDIAN + RB_IO_BUFFER_HOST_ENDIAN = RB_IO_BUFFER_LITTLE_ENDIAN, +#elif REG_DWORD == REG_DWORD_BIG_ENDIAN + RB_IO_BUFFER_HOST_ENDIAN = RB_IO_BUFFER_BIG_ENDIAN, +#endif + + RB_IO_BUFFER_NETWORK_ENDIAN = RB_IO_BUFFER_BIG_ENDIAN +}; + +VALUE rb_io_buffer_new(void *base, size_t size, enum rb_io_buffer_flags flags); +VALUE rb_io_buffer_map(VALUE io, size_t size, rb_off_t offset, enum rb_io_buffer_flags flags); + +VALUE rb_io_buffer_lock(VALUE self); +VALUE rb_io_buffer_unlock(VALUE self); +int rb_io_buffer_try_unlock(VALUE self); +VALUE rb_io_buffer_free(VALUE self); + +int rb_io_buffer_get_bytes(VALUE self, void **base, size_t *size); +void rb_io_buffer_get_bytes_for_reading(VALUE self, const void **base, size_t *size); +void rb_io_buffer_get_bytes_for_writing(VALUE self, void **base, size_t *size); + +VALUE rb_io_buffer_transfer(VALUE self); +void rb_io_buffer_resize(VALUE self, size_t size); +void rb_io_buffer_clear(VALUE self, uint8_t value, size_t offset, size_t length); + +// The length is the minimum required length. +VALUE rb_io_buffer_read(VALUE self, VALUE io, size_t length, size_t offset); +VALUE rb_io_buffer_pread(VALUE self, VALUE io, rb_off_t from, size_t length, size_t offset); +VALUE rb_io_buffer_write(VALUE self, VALUE io, size_t length, size_t offset); +VALUE rb_io_buffer_pwrite(VALUE self, VALUE io, rb_off_t from, size_t length, size_t offset); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_IO_BUFFER_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/memory_view.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/memory_view.h new file mode 100644 index 0000000..1ddca2d --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/memory_view.h @@ -0,0 +1,325 @@ +#ifndef RUBY_MEMORY_VIEW_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_MEMORY_VIEW_H 1 +/** + * @file + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @brief Memory View. + */ + +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include /* size_t */ +#endif + +#ifdef HAVE_SYS_TYPES_H +# include /* ssize_t */ +#endif + +#include "ruby/internal/attr/pure.h" /* RBIMPL_ATTR_PURE */ +#include "ruby/internal/core/rtypeddata.h" /* rb_data_type_t */ +#include "ruby/internal/dllexport.h" /* RUBY_EXTERN */ +#include "ruby/internal/stdbool.h" /* bool */ +#include "ruby/internal/value.h" /* VALUE */ + +/** + * Flags passed to rb_memory_view_get(), then to ::rb_memory_view_get_func_t. + */ +enum ruby_memory_view_flags { + RUBY_MEMORY_VIEW_SIMPLE = 0, + RUBY_MEMORY_VIEW_WRITABLE = (1<<0), + RUBY_MEMORY_VIEW_FORMAT = (1<<1), + RUBY_MEMORY_VIEW_MULTI_DIMENSIONAL = (1<<2), + RUBY_MEMORY_VIEW_STRIDES = (1<<3) | RUBY_MEMORY_VIEW_MULTI_DIMENSIONAL, + RUBY_MEMORY_VIEW_ROW_MAJOR = (1<<4) | RUBY_MEMORY_VIEW_STRIDES, + RUBY_MEMORY_VIEW_COLUMN_MAJOR = (1<<5) | RUBY_MEMORY_VIEW_STRIDES, + RUBY_MEMORY_VIEW_ANY_CONTIGUOUS = RUBY_MEMORY_VIEW_ROW_MAJOR | RUBY_MEMORY_VIEW_COLUMN_MAJOR, + RUBY_MEMORY_VIEW_INDIRECT = (1<<6) | RUBY_MEMORY_VIEW_STRIDES, +}; + +/** Memory view component metadata. */ +typedef struct { + /** @see ::rb_memory_view_t::format */ + char format; + + /** :FIXME: what is a "native" size is unclear. */ + unsigned native_size_p: 1; + + /** Endian of the component */ + unsigned little_endian_p: 1; + + /** The component's offset. */ + size_t offset; + + /** The component's size. */ + size_t size; + + /** + * How many numbers of components are there. For instance "CCC"'s repeat is + * 3. + */ + size_t repeat; +} rb_memory_view_item_component_t; + +/** + * A MemoryView structure, `rb_memory_view_t`, is used for exporting objects' + * MemoryView. + * + * This structure contains the reference of the object, which is the owner of + * the MemoryView, the pointer to the head of exported memory, and the metadata + * that describes the structure of the memory. The metadata can describe + * multidimensional arrays with strides. + */ +typedef struct { + /** + * The original object that has the memory exported via this memory view. + */ + VALUE obj; + + /** The pointer to the exported memory. */ + void *data; + + /** The number of bytes in data. */ + ssize_t byte_size; + + /** true for readonly memory, false for writable memory. */ + bool readonly; + + /** + * A string to describe the format of an element, or NULL for unsigned bytes. + * The format string is a sequence of the following pack-template specifiers: + * + * c, C, s, s!, S, S!, n, v, i, i!, I, I!, l, l!, L, L!, + * N, V, f, e, g, q, q!, Q, Q!, d, E, G, j, J, x + * + * For example, "dd" for an element that consists of two double values, + * and "CCC" for an element that consists of three bytes, such as + * an RGB color triplet. + * + * Also, the value endianness can be explicitly specified by '<' or '>' + * following a value type specifier. + * + * The items are packed contiguously. When you emulate the alignment of + * structure members, put '|' at the beginning of the format string, + * like "|iqc". On x86_64 Linux ABI, the size of the item by this format + * is 24 bytes instead of 13 bytes. + */ + const char *format; + + /** + * The number of bytes in each element. + * item_size should equal to rb_memory_view_item_size_from_format(format). */ + ssize_t item_size; + + /** Description of each components. */ + struct { + /** + * The array of rb_memory_view_item_component_t that describes the + * item structure. rb_memory_view_prepare_item_desc and + * rb_memory_view_get_item allocate this memory if needed, + * and rb_memory_view_release frees it. */ + const rb_memory_view_item_component_t *components; + + /** The number of components in an item. */ + size_t length; + } item_desc; + + /** The number of dimension. */ + ssize_t ndim; + + /** + * ndim size array indicating the number of elements in each dimension. + * This can be NULL when ndim == 1. */ + const ssize_t *shape; + + /** + * ndim size array indicating the number of bytes to skip to go to the + * next element in each dimension. */ + const ssize_t *strides; + + /** + * The offset in each dimension when this memory view exposes a nested array. + * Or, NULL when this memory view exposes a flat array. */ + const ssize_t *sub_offsets; + + /** The private data for managing this exported memory */ + void *private_data; + + /** DO NOT TOUCH THIS: The memory view entry for the internal use */ + const struct rb_memory_view_entry *_memory_view_entry; +} rb_memory_view_t; + +/** Type of function of ::rb_memory_view_entry_t::get_func. */ +typedef bool (* rb_memory_view_get_func_t)(VALUE obj, rb_memory_view_t *view, int flags); + +/** Type of function of ::rb_memory_view_entry_t::release_func. */ +typedef bool (* rb_memory_view_release_func_t)(VALUE obj, rb_memory_view_t *view); + +/** Type of function of ::rb_memory_view_entry_t::available_p_func. */ +typedef bool (* rb_memory_view_available_p_func_t)(VALUE obj); + +/** Operations applied to a specific kind of a memory view. */ +typedef struct rb_memory_view_entry { + /** + * Exports a memory view from a Ruby object. + */ + rb_memory_view_get_func_t get_func; + + /** + * Releases a memory view that was previously generated using + * ::rb_memory_view_entry_t::get_func. + */ + rb_memory_view_release_func_t release_func; + + /** + * Queries if an object understands memory view protocol. + */ + rb_memory_view_available_p_func_t available_p_func; +} rb_memory_view_entry_t; + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* memory_view.c */ + +/** + * Associates the passed class with the passed memory view entry. This has to + * be called before actually creating a memory view from an instance. + */ +bool rb_memory_view_register(VALUE klass, const rb_memory_view_entry_t *entry); + +RBIMPL_ATTR_PURE() +/** + * Return `true` if the data in the MemoryView `view` is row-major contiguous. + * + * Return `false` otherwise. + */ +bool rb_memory_view_is_row_major_contiguous(const rb_memory_view_t *view); + +RBIMPL_ATTR_PURE() +/** + * Return `true` if the data in the MemoryView `view` is column-major + * contiguous. + * + * Return `false` otherwise. + */ +bool rb_memory_view_is_column_major_contiguous(const rb_memory_view_t *view); + +RBIMPL_ATTR_NOALIAS() +/** + * Fill the `strides` array with byte-Strides of a contiguous array of the + * given shape with the given element size. + */ +void rb_memory_view_fill_contiguous_strides(const ssize_t ndim, const ssize_t item_size, const ssize_t *const shape, const bool row_major_p, ssize_t *const strides); + +RBIMPL_ATTR_NOALIAS() +/** + * Fill the members of `view` as an 1-dimensional byte array. + */ +bool rb_memory_view_init_as_byte_array(rb_memory_view_t *view, VALUE obj, void *data, const ssize_t len, const bool readonly); + +/** + * Deconstructs the passed format string, as describe in + * ::rb_memory_view_t::format. + */ +ssize_t rb_memory_view_parse_item_format(const char *format, + rb_memory_view_item_component_t **members, + size_t *n_members, const char **err); + +/** + * Calculate the number of bytes occupied by an element. + * + * When the calculation fails, the failed location in `format` is stored into + * `err`, and returns `-1`. + */ +ssize_t rb_memory_view_item_size_from_format(const char *format, const char **err); + +/** + * Calculate the location of the item indicated by the given `indices`. + * + * The length of `indices` must equal to `view->ndim`. + * + * This function initializes `view->item_desc` if needed. + */ +void *rb_memory_view_get_item_pointer(rb_memory_view_t *view, const ssize_t *indices); + +/** + * Return a value that consists of item members. + * + * When an item is a single member, the return value is a single value. + * + * When an item consists of multiple members, an array will be returned. + */ +VALUE rb_memory_view_extract_item_members(const void *ptr, const rb_memory_view_item_component_t *members, const size_t n_members); + +/** Fill the `item_desc` member of `view`. */ +void rb_memory_view_prepare_item_desc(rb_memory_view_t *view); + +/** * Return a value that consists of item members in the given memory view. */ +VALUE rb_memory_view_get_item(rb_memory_view_t *view, const ssize_t *indices); + +/** + * Return `true` if `obj` supports to export a MemoryView. Return `false` + * otherwise. + * + * If this function returns `true`, it doesn't mean the function + * `rb_memory_view_get` will succeed. + */ +bool rb_memory_view_available_p(VALUE obj); + +/** + * If the given `obj` supports to export a MemoryView that conforms the given + * `flags`, this function fills `view` by the information of the MemoryView and + * returns `true`. In this case, the reference count of `obj` is increased. + * + * If the given combination of `obj` and `flags` cannot export a MemoryView, + * this function returns `false`. The content of `view` is not touched in this + * case. + * + * The exported MemoryView must be released by `rb_memory_view_release` when + * the MemoryView is no longer needed. + */ +bool rb_memory_view_get(VALUE obj, rb_memory_view_t* memory_view, int flags); + +/** + * Release the given MemoryView `view` and decrement the reference count of + * `memory_view->obj`. + * + * Consumers must call this function when the MemoryView is no longer needed. + * Missing to call this function leads memory leak. + */ +bool rb_memory_view_release(rb_memory_view_t* memory_view); + +/* for testing */ +/** @cond INTERNAL_MACRO */ +RUBY_EXTERN VALUE rb_memory_view_exported_object_registry; +RUBY_EXTERN const rb_data_type_t rb_memory_view_exported_object_registry_data_type; +/** @endcond */ + +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_PURE() +/** + * Return `true` if the data in the MemoryView `view` is row-major or + * column-major contiguous. + * + * Return `false` otherwise. + */ +static inline bool +rb_memory_view_is_contiguous(const rb_memory_view_t *view) +{ + if (rb_memory_view_is_row_major_contiguous(view)) { + return true; + } + else if (rb_memory_view_is_column_major_contiguous(view)) { + return true; + } + else { + return false; + } +} + +#endif /* RUBY_BUFFER_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/missing.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/missing.h new file mode 100644 index 0000000..aea6c90 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/missing.h @@ -0,0 +1,342 @@ +#ifndef RUBY_MISSING_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_MISSING_H 1 +/** + * @author $Author$ + * @date Sat May 11 23:46:03 JST 2002 + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @brief Prototype for *.c in ./missing, and for missing timeval struct. + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include +#endif + +#if defined(__cplusplus) +# include +#else +# include /* for INFINITY and NAN */ +#endif + +#ifdef RUBY_ALTERNATIVE_MALLOC_HEADER +# include RUBY_ALTERNATIVE_MALLOC_HEADER +#endif + +#if defined(HAVE_TIME_H) +# include +#endif + +#if defined(HAVE_SYS_TIME_H) +# include +#endif + +#ifdef HAVE_SYS_STAT_H +# include +#endif + +#ifdef HAVE_UNISTD_H +# include +#endif + +#ifdef HAVE_STDIO_H +# include +#endif + +#ifdef HAVE_IEEEFP_H +# include +#endif + +#include "ruby/internal/dllexport.h" +#include "ruby/internal/attr/format.h" + +#ifndef M_PI +# define M_PI 3.14159265358979323846 +#endif +#ifndef M_PI_2 +# define M_PI_2 (M_PI/2) +#endif + +#if !defined(HAVE_STRUCT_TIMEVAL) +struct timeval { + time_t tv_sec; /* seconds */ + long tv_usec; /* microseconds */ +}; +#endif /* HAVE_STRUCT_TIMEVAL */ + +#if !defined(HAVE_STRUCT_TIMESPEC) +/* :BEWARE: @shyouhei warns that IT IS A WRONG IDEA to define our own version + * of struct timespec here. `clock_gettime` is a system call, and your kernel + * could expect something other than just `long` (results stack smashing if + * that happens). See also https://ewontfix.com/19/ */ +struct timespec { + time_t tv_sec; /* seconds */ + long tv_nsec; /* nanoseconds */ +}; +#endif + +#if !defined(HAVE_STRUCT_TIMEZONE) +struct timezone { + int tz_minuteswest; + int tz_dsttime; +}; +#endif + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +#ifndef HAVE_ACOSH +RUBY_EXTERN double acosh(double); +RUBY_EXTERN double asinh(double); +RUBY_EXTERN double atanh(double); +#endif + +#ifndef HAVE_CRYPT +RUBY_EXTERN char *crypt(const char *, const char *); +#endif + +#ifndef HAVE_EACCESS +RUBY_EXTERN int eaccess(const char*, int); +#endif + +#ifndef HAVE_ROUND +RUBY_EXTERN double round(double); /* numeric.c */ +#endif + +#ifndef HAVE_FLOCK +RUBY_EXTERN int flock(int, int); +#endif + +/* +#ifndef HAVE_FREXP +RUBY_EXTERN double frexp(double, int *); +#endif +*/ + +#ifndef HAVE_HYPOT +RUBY_EXTERN double hypot(double, double); +#endif + +#ifndef HAVE_ERF +RUBY_EXTERN double erf(double); +RUBY_EXTERN double erfc(double); +#endif + +#ifndef HAVE_TGAMMA +RUBY_EXTERN double tgamma(double); +#endif + +#ifndef HAVE_LGAMMA_R +RUBY_EXTERN double lgamma_r(double, int *); +#endif + +#ifndef HAVE_CBRT +RUBY_EXTERN double cbrt(double); +#endif + +#if !defined(INFINITY) || !defined(NAN) +union bytesequence4_or_float { + unsigned char bytesequence[4]; + float float_value; +}; +#endif + +#ifndef INFINITY +/** @internal */ +RUBY_EXTERN const union bytesequence4_or_float rb_infinity; +# define INFINITY (rb_infinity.float_value) +# define USE_RB_INFINITY 1 +#endif + +#ifndef NAN +/** @internal */ +RUBY_EXTERN const union bytesequence4_or_float rb_nan; +# define NAN (rb_nan.float_value) +# define USE_RB_NAN 1 +#endif + +#ifndef HUGE_VAL +# define HUGE_VAL ((double)INFINITY) +#endif + +#ifndef HAVE_FINITE +# define HAVE_FINITE 1 +# define finite(x) isfinite(x) +#endif + +#ifndef HAVE_NAN +RUBY_EXTERN double nan(const char *); +#endif + +#ifndef HAVE_NEXTAFTER +RUBY_EXTERN double nextafter(double x, double y); +#endif + +/* +#ifndef HAVE_MEMCMP +RUBY_EXTERN int memcmp(const void *, const void *, size_t); +#endif +*/ + +#ifndef HAVE_MEMMOVE +RUBY_EXTERN void *memmove(void *, const void *, size_t); +#endif + +/* +#ifndef HAVE_MODF +RUBY_EXTERN double modf(double, double *); +#endif +*/ + +#ifndef HAVE_STRCHR +RUBY_EXTERN char *strchr(const char *, int); +RUBY_EXTERN char *strrchr(const char *, int); +#endif + +#ifndef HAVE_STRERROR +RUBY_EXTERN char *strerror(int); +#endif + +#ifndef HAVE_STRSTR +RUBY_EXTERN char *strstr(const char *, const char *); +#endif + +#ifndef HAVE_STRLCPY +RUBY_EXTERN size_t strlcpy(char *, const char*, size_t); +#endif + +#ifndef HAVE_STRLCAT +RUBY_EXTERN size_t strlcat(char *, const char*, size_t); +#endif + +#ifndef HAVE_FFS +RUBY_EXTERN int ffs(int); +#endif + +#ifdef BROKEN_CLOSE +# include +# include +RUBY_EXTERN int ruby_getpeername(int, struct sockaddr *, socklen_t *); +RUBY_EXTERN int ruby_getsockname(int, struct sockaddr *, socklen_t *); +RUBY_EXTERN int ruby_shutdown(int, int); +RUBY_EXTERN int ruby_close(int); +#endif + +#ifndef HAVE_SETPROCTITLE +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2) +RUBY_EXTERN void setproctitle(const char *fmt, ...); +#endif + +#ifdef HAVE_EXPLICIT_BZERO +# /* Take that. */ +#elif defined(SecureZeroMemory) +# define explicit_bzero(b, len) SecureZeroMemory(b, len) +#else +RUBY_EXTERN void explicit_bzero(void *b, size_t len); +#endif + +#ifndef HAVE_TZSET +RUBY_EXTERN void tzset(void); +#endif + +#ifndef HAVE_POSIX_MADVISE +RUBY_EXTERN int posix_madvise(void *, size_t, int); +#endif + +#ifndef HAVE_GETEUID +RUBY_EXTERN rb_uid_t geteuid(void); +#endif + +#ifndef HAVE_GETUID +RUBY_EXTERN rb_uid_t getuid(void); +#endif + +#ifndef HAVE_GETEGID +RUBY_EXTERN rb_gid_t getegid(void); +#endif + +#ifndef HAVE_GETGID +RUBY_EXTERN rb_gid_t getgid(void); +#endif + +#ifndef HAVE_GETLOGIN +RUBY_EXTERN char *getlogin(void); +#endif + +#ifndef HAVE_GETPPID +RUBY_EXTERN rb_pid_t getppid(void); +#endif + +#ifndef HAVE_UMASK +RUBY_EXTERN rb_mode_t umask(rb_mode_t); +#endif + +#ifndef HAVE_CHMOD +RUBY_EXTERN int chmod(const char *, rb_mode_t); +#endif + +#ifndef HAVE_CHOWN +RUBY_EXTERN int chown(const char *, rb_uid_t, rb_gid_t); +#endif + +#ifndef HAVE_PCLOSE +RUBY_EXTERN int pclose(FILE *); +#endif + +#ifndef HAVE_POPEN +RUBY_EXTERN FILE *popen(const char *, const char *); +#endif + +#ifndef HAVE_PIPE +RUBY_EXTERN int pipe(int [2]); +#endif + +#ifndef HAVE_DUP +RUBY_EXTERN int dup(int); +#endif + +#ifndef HAVE_DUP2 +RUBY_EXTERN int dup2(int, int); +#endif + +#ifndef HAVE_KILL +RUBY_EXTERN int kill(rb_pid_t, int); +#endif + +#ifndef HAVE_EXECL +RUBY_EXTERN int execl(const char *, const char *, ...); +#endif + +#ifndef HAVE_EXECLE +RUBY_EXTERN int execle(const char *, const char *, ...); +#endif + +#ifndef HAVE_EXECV +RUBY_EXTERN int execv(const char *, char *const []); +#endif + +#ifndef HAVE_EXECVE +RUBY_EXTERN int execve(const char *, char *const [], char *const []); +#endif + +#ifndef HAVE_SHUTDOWN +RUBY_EXTERN int shutdown(int, int); +#endif + +#ifndef HAVE_SYSTEM +RUBY_EXTERN int system(const char *); +#endif + +#ifndef WNOHANG +# define WNOHANG 0 +#endif + +#ifndef HAVE_WAITPID +# define HAVE_WAITPID 1 +RUBY_EXTERN rb_pid_t waitpid(rb_pid_t, int *, int); +#endif + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_MISSING_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/onigmo.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/onigmo.h new file mode 100644 index 0000000..8d7c601 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/onigmo.h @@ -0,0 +1,952 @@ +#ifndef ONIGMO_H +#define ONIGMO_H +/********************************************************************** + onigmo.h - Onigmo (Oniguruma-mod) (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2009 K.Kosako + * Copyright (c) 2011-2017 K.Takata + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifdef __cplusplus +extern "C" { +# if 0 +} /* satisfy cc-mode */ +# endif +#endif + +#define ONIGMO_VERSION_MAJOR 6 +#define ONIGMO_VERSION_MINOR 1 +#define ONIGMO_VERSION_TEENY 3 + +#ifndef ONIG_EXTERN +# ifdef RUBY_EXTERN +# define ONIG_EXTERN RUBY_EXTERN +# else +# if defined(_WIN32) && !defined(__GNUC__) +# if defined(EXPORT) || defined(RUBY_EXPORT) +# define ONIG_EXTERN extern __declspec(dllexport) +# else +# define ONIG_EXTERN extern __declspec(dllimport) +# endif +# endif +# endif +#endif + +#ifndef ONIG_EXTERN +# define ONIG_EXTERN extern +#endif + +#ifndef RUBY +# ifndef RUBY_SYMBOL_EXPORT_BEGIN +# define RUBY_SYMBOL_EXPORT_BEGIN +# define RUBY_SYMBOL_EXPORT_END +# endif +#endif + +RUBY_SYMBOL_EXPORT_BEGIN + +#include /* for size_t */ + +/* PART: character encoding */ + +#ifndef ONIG_ESCAPE_UCHAR_COLLISION +# define UChar OnigUChar +#endif + +typedef unsigned char OnigUChar; +typedef unsigned int OnigCodePoint; +typedef unsigned int OnigCtype; +typedef size_t OnigDistance; +typedef ptrdiff_t OnigPosition; + +#define ONIG_INFINITE_DISTANCE ~((OnigDistance )0) + +/* + * Onig casefold/case mapping flags and related definitions + * + * Subfields (starting with 0 at LSB): + * 0-2: Code point count in casefold.h + * 3-12: Index into SpecialCaseMapping array in casefold.h + * 13-22: Case folding/mapping flags + */ +typedef unsigned int OnigCaseFoldType; /* case fold flag */ + +ONIG_EXTERN OnigCaseFoldType OnigDefaultCaseFoldFlag; + +/* bits for actual code point count; 3 bits is more than enough, currently only 2 used */ +#define OnigCodePointMaskWidth 3 +#define OnigCodePointMask ((1< Unicode:0x1ffc */ + +/* code range */ +#define ONIGENC_CODE_RANGE_NUM(range) ((int )range[0]) +#define ONIGENC_CODE_RANGE_FROM(range,i) range[((i)*2) + 1] +#define ONIGENC_CODE_RANGE_TO(range,i) range[((i)*2) + 2] + +typedef struct { + int byte_len; /* argument(original) character(s) byte length */ + int code_len; /* number of code */ + OnigCodePoint code[ONIGENC_MAX_COMP_CASE_FOLD_CODE_LEN]; +} OnigCaseFoldCodeItem; + +typedef struct { + OnigCodePoint esc; + OnigCodePoint anychar; + OnigCodePoint anytime; + OnigCodePoint zero_or_one_time; + OnigCodePoint one_or_more_time; + OnigCodePoint anychar_anytime; +} OnigMetaCharTableType; + +typedef int (*OnigApplyAllCaseFoldFunc)(OnigCodePoint from, OnigCodePoint* to, int to_len, void* arg); + +typedef struct OnigEncodingTypeST { + int (*precise_mbc_enc_len)(const OnigUChar* p,const OnigUChar* e, const struct OnigEncodingTypeST* enc); + const char* name; + int max_enc_len; + int min_enc_len; + int (*is_mbc_newline)(const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc); + OnigCodePoint (*mbc_to_code)(const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc); + int (*code_to_mbclen)(OnigCodePoint code, const struct OnigEncodingTypeST* enc); + int (*code_to_mbc)(OnigCodePoint code, OnigUChar *buf, const struct OnigEncodingTypeST* enc); + int (*mbc_case_fold)(OnigCaseFoldType flag, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, const struct OnigEncodingTypeST* enc); + int (*apply_all_case_fold)(OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, const struct OnigEncodingTypeST* enc); + int (*get_case_fold_codes_by_str)(OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem acs[], const struct OnigEncodingTypeST* enc); + int (*property_name_to_ctype)(const struct OnigEncodingTypeST* enc, const OnigUChar* p, const OnigUChar* end); + int (*is_code_ctype)(OnigCodePoint code, OnigCtype ctype, const struct OnigEncodingTypeST* enc); + int (*get_ctype_code_range)(OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[], const struct OnigEncodingTypeST* enc); + OnigUChar* (*left_adjust_char_head)(const OnigUChar* start, const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc); + int (*is_allowed_reverse_match)(const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc); + int (*case_map)(OnigCaseFoldType* flagP, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, const struct OnigEncodingTypeST* enc); + int ruby_encoding_index; + unsigned int flags; +} OnigEncodingType; + +typedef const OnigEncodingType* OnigEncoding; + +ONIG_EXTERN const OnigEncodingType OnigEncodingASCII; +#ifndef RUBY +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_1; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_2; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_3; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_4; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_5; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_6; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_7; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_8; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_9; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_10; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_11; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_13; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_14; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_15; +ONIG_EXTERN const OnigEncodingType OnigEncodingISO_8859_16; +ONIG_EXTERN const OnigEncodingType OnigEncodingUTF_8; +ONIG_EXTERN const OnigEncodingType OnigEncodingUTF_16BE; +ONIG_EXTERN const OnigEncodingType OnigEncodingUTF_16LE; +ONIG_EXTERN const OnigEncodingType OnigEncodingUTF_32BE; +ONIG_EXTERN const OnigEncodingType OnigEncodingUTF_32LE; +ONIG_EXTERN const OnigEncodingType OnigEncodingEUC_JP; +ONIG_EXTERN const OnigEncodingType OnigEncodingEUC_TW; +ONIG_EXTERN const OnigEncodingType OnigEncodingEUC_KR; +ONIG_EXTERN const OnigEncodingType OnigEncodingEUC_CN; +ONIG_EXTERN const OnigEncodingType OnigEncodingShift_JIS; +ONIG_EXTERN const OnigEncodingType OnigEncodingWindows_31J; +/* ONIG_EXTERN const OnigEncodingType OnigEncodingKOI8; */ +ONIG_EXTERN const OnigEncodingType OnigEncodingKOI8_R; +ONIG_EXTERN const OnigEncodingType OnigEncodingKOI8_U; +ONIG_EXTERN const OnigEncodingType OnigEncodingWindows_1250; +ONIG_EXTERN const OnigEncodingType OnigEncodingWindows_1251; +ONIG_EXTERN const OnigEncodingType OnigEncodingWindows_1252; +ONIG_EXTERN const OnigEncodingType OnigEncodingWindows_1253; +ONIG_EXTERN const OnigEncodingType OnigEncodingWindows_1254; +ONIG_EXTERN const OnigEncodingType OnigEncodingWindows_1257; +ONIG_EXTERN const OnigEncodingType OnigEncodingBIG5; +ONIG_EXTERN const OnigEncodingType OnigEncodingGB18030; +#endif /* RUBY */ + +#define ONIG_ENCODING_ASCII (&OnigEncodingASCII) +#ifndef RUBY +# define ONIG_ENCODING_ISO_8859_1 (&OnigEncodingISO_8859_1) +# define ONIG_ENCODING_ISO_8859_2 (&OnigEncodingISO_8859_2) +# define ONIG_ENCODING_ISO_8859_3 (&OnigEncodingISO_8859_3) +# define ONIG_ENCODING_ISO_8859_4 (&OnigEncodingISO_8859_4) +# define ONIG_ENCODING_ISO_8859_5 (&OnigEncodingISO_8859_5) +# define ONIG_ENCODING_ISO_8859_6 (&OnigEncodingISO_8859_6) +# define ONIG_ENCODING_ISO_8859_7 (&OnigEncodingISO_8859_7) +# define ONIG_ENCODING_ISO_8859_8 (&OnigEncodingISO_8859_8) +# define ONIG_ENCODING_ISO_8859_9 (&OnigEncodingISO_8859_9) +# define ONIG_ENCODING_ISO_8859_10 (&OnigEncodingISO_8859_10) +# define ONIG_ENCODING_ISO_8859_11 (&OnigEncodingISO_8859_11) +# define ONIG_ENCODING_ISO_8859_13 (&OnigEncodingISO_8859_13) +# define ONIG_ENCODING_ISO_8859_14 (&OnigEncodingISO_8859_14) +# define ONIG_ENCODING_ISO_8859_15 (&OnigEncodingISO_8859_15) +# define ONIG_ENCODING_ISO_8859_16 (&OnigEncodingISO_8859_16) +# define ONIG_ENCODING_UTF_8 (&OnigEncodingUTF_8) +# define ONIG_ENCODING_UTF_16BE (&OnigEncodingUTF_16BE) +# define ONIG_ENCODING_UTF_16LE (&OnigEncodingUTF_16LE) +# define ONIG_ENCODING_UTF_32BE (&OnigEncodingUTF_32BE) +# define ONIG_ENCODING_UTF_32LE (&OnigEncodingUTF_32LE) +# define ONIG_ENCODING_EUC_JP (&OnigEncodingEUC_JP) +# define ONIG_ENCODING_EUC_TW (&OnigEncodingEUC_TW) +# define ONIG_ENCODING_EUC_KR (&OnigEncodingEUC_KR) +# define ONIG_ENCODING_EUC_CN (&OnigEncodingEUC_CN) +# define ONIG_ENCODING_SHIFT_JIS (&OnigEncodingShift_JIS) +# define ONIG_ENCODING_WINDOWS_31J (&OnigEncodingWindows_31J) +/* # define ONIG_ENCODING_KOI8 (&OnigEncodingKOI8) */ +# define ONIG_ENCODING_KOI8_R (&OnigEncodingKOI8_R) +# define ONIG_ENCODING_KOI8_U (&OnigEncodingKOI8_U) +# define ONIG_ENCODING_WINDOWS_1250 (&OnigEncodingWindows_1250) +# define ONIG_ENCODING_WINDOWS_1251 (&OnigEncodingWindows_1251) +# define ONIG_ENCODING_WINDOWS_1252 (&OnigEncodingWindows_1252) +# define ONIG_ENCODING_WINDOWS_1253 (&OnigEncodingWindows_1253) +# define ONIG_ENCODING_WINDOWS_1254 (&OnigEncodingWindows_1254) +# define ONIG_ENCODING_WINDOWS_1257 (&OnigEncodingWindows_1257) +# define ONIG_ENCODING_BIG5 (&OnigEncodingBIG5) +# define ONIG_ENCODING_GB18030 (&OnigEncodingGB18030) + +/* old names */ +# define ONIG_ENCODING_SJIS ONIG_ENCODING_SHIFT_JIS +# define ONIG_ENCODING_CP932 ONIG_ENCODING_WINDOWS_31J +# define ONIG_ENCODING_CP1250 ONIG_ENCODING_WINDOWS_1250 +# define ONIG_ENCODING_CP1251 ONIG_ENCODING_WINDOWS_1251 +# define ONIG_ENCODING_CP1252 ONIG_ENCODING_WINDOWS_1252 +# define ONIG_ENCODING_CP1253 ONIG_ENCODING_WINDOWS_1253 +# define ONIG_ENCODING_CP1254 ONIG_ENCODING_WINDOWS_1254 +# define ONIG_ENCODING_CP1257 ONIG_ENCODING_WINDOWS_1257 +# define ONIG_ENCODING_UTF8 ONIG_ENCODING_UTF_8 +# define ONIG_ENCODING_UTF16_BE ONIG_ENCODING_UTF_16BE +# define ONIG_ENCODING_UTF16_LE ONIG_ENCODING_UTF_16LE +# define ONIG_ENCODING_UTF32_BE ONIG_ENCODING_UTF_32BE +# define ONIG_ENCODING_UTF32_LE ONIG_ENCODING_UTF_32LE +#endif /* RUBY */ + +#define ONIG_ENCODING_UNDEF ((OnigEncoding )0) + +/* this declaration needs to be here because it is used in string.c in Ruby */ +ONIG_EXTERN +int onigenc_ascii_only_case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, const struct OnigEncodingTypeST* enc); + + +/* work size */ +#define ONIGENC_CODE_TO_MBC_MAXLEN 7 +#define ONIGENC_MBC_CASE_FOLD_MAXLEN 18 +/* 18: 6(max-byte) * 3(case-fold chars) */ + +/* character types */ +#define ONIGENC_CTYPE_NEWLINE 0 +#define ONIGENC_CTYPE_ALPHA 1 +#define ONIGENC_CTYPE_BLANK 2 +#define ONIGENC_CTYPE_CNTRL 3 +#define ONIGENC_CTYPE_DIGIT 4 +#define ONIGENC_CTYPE_GRAPH 5 +#define ONIGENC_CTYPE_LOWER 6 +#define ONIGENC_CTYPE_PRINT 7 +#define ONIGENC_CTYPE_PUNCT 8 +#define ONIGENC_CTYPE_SPACE 9 +#define ONIGENC_CTYPE_UPPER 10 +#define ONIGENC_CTYPE_XDIGIT 11 +#define ONIGENC_CTYPE_WORD 12 +#define ONIGENC_CTYPE_ALNUM 13 /* alpha || digit */ +#define ONIGENC_CTYPE_ASCII 14 +#define ONIGENC_MAX_STD_CTYPE ONIGENC_CTYPE_ASCII + +/* flags */ +#define ONIGENC_FLAG_NONE 0U +#define ONIGENC_FLAG_UNICODE 1U + +#define onig_enc_len(enc,p,e) ONIGENC_MBC_ENC_LEN(enc, p, e) + +#define ONIGENC_IS_UNDEF(enc) ((enc) == ONIG_ENCODING_UNDEF) +#define ONIGENC_IS_SINGLEBYTE(enc) (ONIGENC_MBC_MAXLEN(enc) == 1) +#define ONIGENC_IS_MBC_HEAD(enc,p,e) (ONIGENC_MBC_ENC_LEN(enc,p,e) != 1) +#define ONIGENC_IS_MBC_ASCII(p) (*(p) < 128) +#define ONIGENC_IS_CODE_ASCII(code) ((code) < 128) +#define ONIGENC_IS_MBC_WORD(enc,s,end) \ + ONIGENC_IS_CODE_WORD(enc,ONIGENC_MBC_TO_CODE(enc,s,end)) +#define ONIGENC_IS_MBC_ASCII_WORD(enc,s,end) \ + onigenc_ascii_is_code_ctype( \ + ONIGENC_MBC_TO_CODE(enc,s,end),ONIGENC_CTYPE_WORD,enc) +#define ONIGENC_IS_UNICODE(enc) ((enc)->flags & ONIGENC_FLAG_UNICODE) + + +#define ONIGENC_NAME(enc) ((enc)->name) + +#define ONIGENC_MBC_CASE_FOLD(enc,flag,pp,end,buf) \ + (enc)->mbc_case_fold(flag,(const OnigUChar** )pp,end,buf,enc) +#define ONIGENC_IS_ALLOWED_REVERSE_MATCH(enc,s,end) \ + (enc)->is_allowed_reverse_match(s,end,enc) +#define ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc,start,s,end) \ + (enc)->left_adjust_char_head(start, s, end, enc) +#define ONIGENC_APPLY_ALL_CASE_FOLD(enc,case_fold_flag,f,arg) \ + (enc)->apply_all_case_fold(case_fold_flag,f,arg,enc) +#define ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc,case_fold_flag,p,end,acs) \ + (enc)->get_case_fold_codes_by_str(case_fold_flag,p,end,acs,enc) +#define ONIGENC_STEP_BACK(enc,start,s,end,n) \ + onigenc_step_back((enc),(start),(s),(end),(n)) + +#define ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(n) (n) +#define ONIGENC_MBCLEN_CHARFOUND_P(r) (0 < (r)) +#define ONIGENC_MBCLEN_CHARFOUND_LEN(r) (r) + +#define ONIGENC_CONSTRUCT_MBCLEN_INVALID() (-1) +#define ONIGENC_MBCLEN_INVALID_P(r) ((r) == -1) + +#define ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(n) (-1-(n)) +#define ONIGENC_MBCLEN_NEEDMORE_P(r) ((r) < -1) +#define ONIGENC_MBCLEN_NEEDMORE_LEN(r) (-1-(r)) + +#define ONIGENC_PRECISE_MBC_ENC_LEN(enc,p,e) (enc)->precise_mbc_enc_len(p,e,enc) + +ONIG_EXTERN +int onigenc_mbclen(const OnigUChar* p,const OnigUChar* e, const struct OnigEncodingTypeST* enc); + +#define ONIGENC_MBC_ENC_LEN(enc,p,e) onigenc_mbclen(p,e,enc) +#define ONIGENC_MBC_MAXLEN(enc) ((enc)->max_enc_len) +#define ONIGENC_MBC_MAXLEN_DIST(enc) ONIGENC_MBC_MAXLEN(enc) +#define ONIGENC_MBC_MINLEN(enc) ((enc)->min_enc_len) +#define ONIGENC_IS_MBC_NEWLINE(enc,p,end) (enc)->is_mbc_newline((p),(end),enc) +#define ONIGENC_MBC_TO_CODE(enc,p,end) (enc)->mbc_to_code((p),(end),enc) +#define ONIGENC_CODE_TO_MBCLEN(enc,code) (enc)->code_to_mbclen(code,enc) +#define ONIGENC_CODE_TO_MBC(enc,code,buf) (enc)->code_to_mbc(code,buf,enc) +#define ONIGENC_PROPERTY_NAME_TO_CTYPE(enc,p,end) \ + (enc)->property_name_to_ctype(enc,p,end) + +#define ONIGENC_IS_CODE_CTYPE(enc,code,ctype) (enc)->is_code_ctype(code,ctype,enc) + +#define ONIGENC_IS_CODE_NEWLINE(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_NEWLINE) +#define ONIGENC_IS_CODE_GRAPH(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_GRAPH) +#define ONIGENC_IS_CODE_PRINT(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PRINT) +#define ONIGENC_IS_CODE_ALNUM(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALNUM) +#define ONIGENC_IS_CODE_ALPHA(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALPHA) +#define ONIGENC_IS_CODE_LOWER(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_LOWER) +#define ONIGENC_IS_CODE_UPPER(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_UPPER) +#define ONIGENC_IS_CODE_CNTRL(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_CNTRL) +#define ONIGENC_IS_CODE_PUNCT(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PUNCT) +#define ONIGENC_IS_CODE_SPACE(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_SPACE) +#define ONIGENC_IS_CODE_BLANK(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_BLANK) +#define ONIGENC_IS_CODE_DIGIT(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_DIGIT) +#define ONIGENC_IS_CODE_XDIGIT(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_XDIGIT) +#define ONIGENC_IS_CODE_WORD(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_WORD) + +#define ONIGENC_GET_CTYPE_CODE_RANGE(enc,ctype,sbout,ranges) \ + (enc)->get_ctype_code_range(ctype,sbout,ranges,enc) + +ONIG_EXTERN +OnigUChar* onigenc_step_back(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, int n); + + +/* encoding API */ +ONIG_EXTERN +int onigenc_init(void); +ONIG_EXTERN +int onigenc_set_default_encoding(OnigEncoding enc); +ONIG_EXTERN +OnigEncoding onigenc_get_default_encoding(void); +ONIG_EXTERN +OnigUChar* onigenc_get_right_adjust_char_head_with_prev(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, const OnigUChar** prev); +ONIG_EXTERN +OnigUChar* onigenc_get_prev_char_head(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end); +ONIG_EXTERN +OnigUChar* onigenc_get_left_adjust_char_head(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end); +ONIG_EXTERN +OnigUChar* onigenc_get_right_adjust_char_head(OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end); +ONIG_EXTERN +int onigenc_strlen(OnigEncoding enc, const OnigUChar* p, const OnigUChar* end); +ONIG_EXTERN +int onigenc_strlen_null(OnigEncoding enc, const OnigUChar* p); +ONIG_EXTERN +int onigenc_str_bytelen_null(OnigEncoding enc, const OnigUChar* p); + + + +/* PART: regular expression */ + +/* config parameters */ +#define ONIG_NREGION 4 +#define ONIG_MAX_CAPTURE_GROUP_NUM 32767 +#define ONIG_MAX_BACKREF_NUM 1000 +#define ONIG_MAX_REPEAT_NUM 100000 +#define ONIG_MAX_MULTI_BYTE_RANGES_NUM 10000 +/* constants */ +#define ONIG_MAX_ERROR_MESSAGE_LEN 90 + +typedef unsigned int OnigOptionType; + +#define ONIG_OPTION_DEFAULT ONIG_OPTION_NONE + +/* options */ +#define ONIG_OPTION_NONE 0U +#define ONIG_OPTION_IGNORECASE 1U +#define ONIG_OPTION_EXTEND (ONIG_OPTION_IGNORECASE << 1) +#define ONIG_OPTION_MULTILINE (ONIG_OPTION_EXTEND << 1) +#define ONIG_OPTION_DOTALL ONIG_OPTION_MULTILINE +#define ONIG_OPTION_SINGLELINE (ONIG_OPTION_MULTILINE << 1) +#define ONIG_OPTION_FIND_LONGEST (ONIG_OPTION_SINGLELINE << 1) +#define ONIG_OPTION_FIND_NOT_EMPTY (ONIG_OPTION_FIND_LONGEST << 1) +#define ONIG_OPTION_NEGATE_SINGLELINE (ONIG_OPTION_FIND_NOT_EMPTY << 1) +#define ONIG_OPTION_DONT_CAPTURE_GROUP (ONIG_OPTION_NEGATE_SINGLELINE << 1) +#define ONIG_OPTION_CAPTURE_GROUP (ONIG_OPTION_DONT_CAPTURE_GROUP << 1) +/* options (search time) */ +#define ONIG_OPTION_NOTBOL (ONIG_OPTION_CAPTURE_GROUP << 1) +#define ONIG_OPTION_NOTEOL (ONIG_OPTION_NOTBOL << 1) +#define ONIG_OPTION_NOTBOS (ONIG_OPTION_NOTEOL << 1) +#define ONIG_OPTION_NOTEOS (ONIG_OPTION_NOTBOS << 1) +/* options (ctype range) */ +#define ONIG_OPTION_ASCII_RANGE (ONIG_OPTION_NOTEOS << 1) +#define ONIG_OPTION_POSIX_BRACKET_ALL_RANGE (ONIG_OPTION_ASCII_RANGE << 1) +#define ONIG_OPTION_WORD_BOUND_ALL_RANGE (ONIG_OPTION_POSIX_BRACKET_ALL_RANGE << 1) +/* options (newline) */ +#define ONIG_OPTION_NEWLINE_CRLF (ONIG_OPTION_WORD_BOUND_ALL_RANGE << 1) +#define ONIG_OPTION_MAXBIT ONIG_OPTION_NEWLINE_CRLF /* limit */ + +#define ONIG_OPTION_ON(options,regopt) ((options) |= (regopt)) +#define ONIG_OPTION_OFF(options,regopt) ((options) &= ~(regopt)) +#define ONIG_IS_OPTION_ON(options,option) ((options) & (option)) + +/* syntax */ +typedef struct { + unsigned int op; + unsigned int op2; + unsigned int behavior; + OnigOptionType options; /* default option */ + OnigMetaCharTableType meta_char_table; +} OnigSyntaxType; + +ONIG_EXTERN const OnigSyntaxType OnigSyntaxASIS; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxPosixBasic; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxPosixExtended; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxEmacs; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxGrep; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxGnuRegex; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxJava; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxPerl58; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxPerl58_NG; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxPerl; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxRuby; +ONIG_EXTERN const OnigSyntaxType OnigSyntaxPython; + +/* predefined syntaxes (see regsyntax.c) */ +#define ONIG_SYNTAX_ASIS (&OnigSyntaxASIS) +#define ONIG_SYNTAX_POSIX_BASIC (&OnigSyntaxPosixBasic) +#define ONIG_SYNTAX_POSIX_EXTENDED (&OnigSyntaxPosixExtended) +#define ONIG_SYNTAX_EMACS (&OnigSyntaxEmacs) +#define ONIG_SYNTAX_GREP (&OnigSyntaxGrep) +#define ONIG_SYNTAX_GNU_REGEX (&OnigSyntaxGnuRegex) +#define ONIG_SYNTAX_JAVA (&OnigSyntaxJava) +#define ONIG_SYNTAX_PERL58 (&OnigSyntaxPerl58) +#define ONIG_SYNTAX_PERL58_NG (&OnigSyntaxPerl58_NG) +#define ONIG_SYNTAX_PERL (&OnigSyntaxPerl) +#define ONIG_SYNTAX_RUBY (&OnigSyntaxRuby) +#define ONIG_SYNTAX_PYTHON (&OnigSyntaxPython) + +/* default syntax */ +ONIG_EXTERN const OnigSyntaxType* OnigDefaultSyntax; +#define ONIG_SYNTAX_DEFAULT OnigDefaultSyntax + +/* syntax (operators) */ +#define ONIG_SYN_OP_VARIABLE_META_CHARACTERS (1U<<0) +#define ONIG_SYN_OP_DOT_ANYCHAR (1U<<1) /* . */ +#define ONIG_SYN_OP_ASTERISK_ZERO_INF (1U<<2) /* * */ +#define ONIG_SYN_OP_ESC_ASTERISK_ZERO_INF (1U<<3) +#define ONIG_SYN_OP_PLUS_ONE_INF (1U<<4) /* + */ +#define ONIG_SYN_OP_ESC_PLUS_ONE_INF (1U<<5) +#define ONIG_SYN_OP_QMARK_ZERO_ONE (1U<<6) /* ? */ +#define ONIG_SYN_OP_ESC_QMARK_ZERO_ONE (1U<<7) +#define ONIG_SYN_OP_BRACE_INTERVAL (1U<<8) /* {lower,upper} */ +#define ONIG_SYN_OP_ESC_BRACE_INTERVAL (1U<<9) /* \{lower,upper\} */ +#define ONIG_SYN_OP_VBAR_ALT (1U<<10) /* | */ +#define ONIG_SYN_OP_ESC_VBAR_ALT (1U<<11) /* \| */ +#define ONIG_SYN_OP_LPAREN_SUBEXP (1U<<12) /* (...) */ +#define ONIG_SYN_OP_ESC_LPAREN_SUBEXP (1U<<13) /* \(...\) */ +#define ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR (1U<<14) /* \A, \Z, \z */ +#define ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR (1U<<15) /* \G */ +#define ONIG_SYN_OP_DECIMAL_BACKREF (1U<<16) /* \num */ +#define ONIG_SYN_OP_BRACKET_CC (1U<<17) /* [...] */ +#define ONIG_SYN_OP_ESC_W_WORD (1U<<18) /* \w, \W */ +#define ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END (1U<<19) /* \<. \> */ +#define ONIG_SYN_OP_ESC_B_WORD_BOUND (1U<<20) /* \b, \B */ +#define ONIG_SYN_OP_ESC_S_WHITE_SPACE (1U<<21) /* \s, \S */ +#define ONIG_SYN_OP_ESC_D_DIGIT (1U<<22) /* \d, \D */ +#define ONIG_SYN_OP_LINE_ANCHOR (1U<<23) /* ^, $ */ +#define ONIG_SYN_OP_POSIX_BRACKET (1U<<24) /* [:xxxx:] */ +#define ONIG_SYN_OP_QMARK_NON_GREEDY (1U<<25) /* ??,*?,+?,{n,m}? */ +#define ONIG_SYN_OP_ESC_CONTROL_CHARS (1U<<26) /* \n,\r,\t,\a ... */ +#define ONIG_SYN_OP_ESC_C_CONTROL (1U<<27) /* \cx */ +#define ONIG_SYN_OP_ESC_OCTAL3 (1U<<28) /* \OOO */ +#define ONIG_SYN_OP_ESC_X_HEX2 (1U<<29) /* \xHH */ +#define ONIG_SYN_OP_ESC_X_BRACE_HEX8 (1U<<30) /* \x{7HHHHHHH} */ +#define ONIG_SYN_OP_ESC_O_BRACE_OCTAL (1U<<31) /* \o{OOO} */ + +#define ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE (1U<<0) /* \Q...\E */ +#define ONIG_SYN_OP2_QMARK_GROUP_EFFECT (1U<<1) /* (?...) */ +#define ONIG_SYN_OP2_OPTION_PERL (1U<<2) /* (?imsxadlu), (?-imsx), (?^imsxalu) */ +#define ONIG_SYN_OP2_OPTION_RUBY (1U<<3) /* (?imxadu), (?-imx) */ +#define ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT (1U<<4) /* ?+,*+,++ */ +#define ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL (1U<<5) /* {n,m}+ */ +#define ONIG_SYN_OP2_CCLASS_SET_OP (1U<<6) /* [...&&..[..]..] */ +#define ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP (1U<<7) /* (?...) */ +#define ONIG_SYN_OP2_ESC_K_NAMED_BACKREF (1U<<8) /* \k */ +#define ONIG_SYN_OP2_ESC_G_SUBEXP_CALL (1U<<9) /* \g, \g */ +#define ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY (1U<<10) /* (?@..),(?@..) */ +#define ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL (1U<<11) /* \C-x */ +#define ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META (1U<<12) /* \M-x */ +#define ONIG_SYN_OP2_ESC_V_VTAB (1U<<13) /* \v as VTAB */ +#define ONIG_SYN_OP2_ESC_U_HEX4 (1U<<14) /* \uHHHH */ +#define ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR (1U<<15) /* \`, \' */ +#define ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY (1U<<16) /* \p{...}, \P{...} */ +#define ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT (1U<<17) /* \p{^..}, \P{^..} */ +/* #define ONIG_SYN_OP2_CHAR_PROPERTY_PREFIX_IS (1U<<18) */ +#define ONIG_SYN_OP2_ESC_H_XDIGIT (1U<<19) /* \h, \H */ +#define ONIG_SYN_OP2_INEFFECTIVE_ESCAPE (1U<<20) /* \ */ +#define ONIG_SYN_OP2_ESC_CAPITAL_R_LINEBREAK (1U<<21) /* \R as (?>\x0D\x0A|[\x0A-\x0D\x{85}\x{2028}\x{2029}]) */ +#define ONIG_SYN_OP2_ESC_CAPITAL_X_EXTENDED_GRAPHEME_CLUSTER (1U<<22) /* \X */ +#define ONIG_SYN_OP2_ESC_V_VERTICAL_WHITESPACE (1U<<23) /* \v, \V -- Perl */ /* NOTIMPL */ +#define ONIG_SYN_OP2_ESC_H_HORIZONTAL_WHITESPACE (1U<<24) /* \h, \H -- Perl */ /* NOTIMPL */ +#define ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP (1U<<25) /* \K */ +#define ONIG_SYN_OP2_ESC_G_BRACE_BACKREF (1U<<26) /* \g{name}, \g{n} */ +#define ONIG_SYN_OP2_QMARK_SUBEXP_CALL (1U<<27) /* (?&name), (?n), (?R), (?0) */ +#define ONIG_SYN_OP2_QMARK_VBAR_BRANCH_RESET (1U<<28) /* (?|...) */ /* NOTIMPL */ +#define ONIG_SYN_OP2_QMARK_LPAREN_CONDITION (1U<<29) /* (?(cond)yes...|no...) */ +#define ONIG_SYN_OP2_QMARK_CAPITAL_P_NAMED_GROUP (1U<<30) /* (?P...), (?P=name), (?P>name) -- Python/PCRE */ +#define ONIG_SYN_OP2_QMARK_TILDE_ABSENT (1U<<31) /* (?~...) */ +/* #define ONIG_SYN_OP2_OPTION_JAVA (1U< {0,n} */ +#define ONIG_SYN_STRICT_CHECK_BACKREF (1U<<5) /* /(\1)/,/\1()/ ..*/ +#define ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND (1U<<6) /* (?<=a|bc) */ +#define ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP (1U<<7) /* see doc/RE */ +#define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME (1U<<8) /* (?)(?) */ +#define ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY (1U<<9) /* a{n}?=(?:a{n})? */ +#define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME_CALL (1U<<10) /* (?)(?)(?&x) */ +#define ONIG_SYN_USE_LEFT_MOST_NAMED_GROUP (1U<<11) /* (?)(?)\k */ + +/* syntax (behavior) in char class [...] */ +#define ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC (1U<<20) /* [^...] */ +#define ONIG_SYN_BACKSLASH_ESCAPE_IN_CC (1U<<21) /* [..\w..] etc.. */ +#define ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC (1U<<22) +#define ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC (1U<<23) /* [0-9-a]=[0-9\-a] */ +/* syntax (behavior) warning */ +#define ONIG_SYN_WARN_CC_OP_NOT_ESCAPED (1U<<24) /* [,-,] */ +#define ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT (1U<<25) /* (?:a*)+ */ +#define ONIG_SYN_WARN_CC_DUP (1U<<26) /* [aa] */ + +/* meta character specifiers (onig_set_meta_char()) */ +#define ONIG_META_CHAR_ESCAPE 0 +#define ONIG_META_CHAR_ANYCHAR 1 +#define ONIG_META_CHAR_ANYTIME 2 +#define ONIG_META_CHAR_ZERO_OR_ONE_TIME 3 +#define ONIG_META_CHAR_ONE_OR_MORE_TIME 4 +#define ONIG_META_CHAR_ANYCHAR_ANYTIME 5 + +#define ONIG_INEFFECTIVE_META_CHAR 0 + +/* error codes */ +#define ONIG_IS_PATTERN_ERROR(ecode) ((ecode) <= -100 && (ecode) > -1000) +/* normal return */ +#define ONIG_NORMAL 0 +#define ONIG_MISMATCH -1 +#define ONIG_NO_SUPPORT_CONFIG -2 + +/* internal error */ +#define ONIGERR_MEMORY -5 +#define ONIGERR_TYPE_BUG -6 +#define ONIGERR_PARSER_BUG -11 +#define ONIGERR_STACK_BUG -12 +#define ONIGERR_UNDEFINED_BYTECODE -13 +#define ONIGERR_UNEXPECTED_BYTECODE -14 +#define ONIGERR_MATCH_STACK_LIMIT_OVER -15 +#define ONIGERR_PARSE_DEPTH_LIMIT_OVER -16 +#define ONIGERR_DEFAULT_ENCODING_IS_NOT_SET -21 +#define ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR -22 +/* general error */ +#define ONIGERR_INVALID_ARGUMENT -30 +/* syntax error */ +#define ONIGERR_END_PATTERN_AT_LEFT_BRACE -100 +#define ONIGERR_END_PATTERN_AT_LEFT_BRACKET -101 +#define ONIGERR_EMPTY_CHAR_CLASS -102 +#define ONIGERR_PREMATURE_END_OF_CHAR_CLASS -103 +#define ONIGERR_END_PATTERN_AT_ESCAPE -104 +#define ONIGERR_END_PATTERN_AT_META -105 +#define ONIGERR_END_PATTERN_AT_CONTROL -106 +#define ONIGERR_META_CODE_SYNTAX -108 +#define ONIGERR_CONTROL_CODE_SYNTAX -109 +#define ONIGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE -110 +#define ONIGERR_CHAR_CLASS_VALUE_AT_START_OF_RANGE -111 +#define ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS -112 +#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED -113 +#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID -114 +#define ONIGERR_NESTED_REPEAT_OPERATOR -115 +#define ONIGERR_UNMATCHED_CLOSE_PARENTHESIS -116 +#define ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS -117 +#define ONIGERR_END_PATTERN_IN_GROUP -118 +#define ONIGERR_UNDEFINED_GROUP_OPTION -119 +#define ONIGERR_INVALID_POSIX_BRACKET_TYPE -121 +#define ONIGERR_INVALID_LOOK_BEHIND_PATTERN -122 +#define ONIGERR_INVALID_REPEAT_RANGE_PATTERN -123 +#define ONIGERR_INVALID_CONDITION_PATTERN -124 +/* values error (syntax error) */ +#define ONIGERR_TOO_BIG_NUMBER -200 +#define ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE -201 +#define ONIGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE -202 +#define ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS -203 +#define ONIGERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE -204 +#define ONIGERR_TOO_MANY_MULTI_BYTE_RANGES -205 +#define ONIGERR_TOO_SHORT_MULTI_BYTE_STRING -206 +#define ONIGERR_TOO_BIG_BACKREF_NUMBER -207 +#define ONIGERR_INVALID_BACKREF -208 +#define ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED -209 +#define ONIGERR_TOO_MANY_CAPTURE_GROUPS -210 +#define ONIGERR_TOO_SHORT_DIGITS -211 +#define ONIGERR_TOO_LONG_WIDE_CHAR_VALUE -212 +#define ONIGERR_EMPTY_GROUP_NAME -214 +#define ONIGERR_INVALID_GROUP_NAME -215 +#define ONIGERR_INVALID_CHAR_IN_GROUP_NAME -216 +#define ONIGERR_UNDEFINED_NAME_REFERENCE -217 +#define ONIGERR_UNDEFINED_GROUP_REFERENCE -218 +#define ONIGERR_MULTIPLEX_DEFINED_NAME -219 +#define ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL -220 +#define ONIGERR_NEVER_ENDING_RECURSION -221 +#define ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY -222 +#define ONIGERR_INVALID_CHAR_PROPERTY_NAME -223 +#define ONIGERR_INVALID_CODE_POINT_VALUE -400 +#define ONIGERR_INVALID_WIDE_CHAR_VALUE -400 +#define ONIGERR_TOO_BIG_WIDE_CHAR_VALUE -401 +#define ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION -402 +#define ONIGERR_INVALID_COMBINATION_OF_OPTIONS -403 + +/* errors related to thread */ +/* #define ONIGERR_OVER_THREAD_PASS_LIMIT_COUNT -1001 */ + + +/* must be smaller than BIT_STATUS_BITS_NUM (unsigned int * 8) */ +#define ONIG_MAX_CAPTURE_HISTORY_GROUP 31 +#define ONIG_IS_CAPTURE_HISTORY_GROUP(r, i) \ + ((i) <= ONIG_MAX_CAPTURE_HISTORY_GROUP && (r)->list && (r)->list[i]) + +#ifdef USE_CAPTURE_HISTORY +typedef struct OnigCaptureTreeNodeStruct { + int group; /* group number */ + OnigPosition beg; + OnigPosition end; + int allocated; + int num_childs; + struct OnigCaptureTreeNodeStruct** childs; +} OnigCaptureTreeNode; +#endif + +/* match result region type */ +struct re_registers { + int allocated; + int num_regs; + OnigPosition* beg; + OnigPosition* end; +#ifdef USE_CAPTURE_HISTORY + /* extended */ + OnigCaptureTreeNode* history_root; /* capture history tree root */ +#endif +}; + +/* capture tree traverse */ +#define ONIG_TRAVERSE_CALLBACK_AT_FIRST 1 +#define ONIG_TRAVERSE_CALLBACK_AT_LAST 2 +#define ONIG_TRAVERSE_CALLBACK_AT_BOTH \ + ( ONIG_TRAVERSE_CALLBACK_AT_FIRST | ONIG_TRAVERSE_CALLBACK_AT_LAST ) + + +#define ONIG_REGION_NOTPOS -1 + +typedef struct re_registers OnigRegion; + +typedef struct { + OnigEncoding enc; + OnigUChar* par; + OnigUChar* par_end; +} OnigErrorInfo; + +typedef struct { + int lower; + int upper; + long base_num; + long inner_num; +} OnigRepeatRange; + +typedef void (*OnigWarnFunc)(const char* s); +extern void onig_null_warn(const char* s); +#define ONIG_NULL_WARN onig_null_warn + +#define ONIG_CHAR_TABLE_SIZE 256 + +typedef struct re_pattern_buffer { + /* common members of BBuf(bytes-buffer) */ + unsigned char* p; /* compiled pattern */ + unsigned int used; /* used space for p */ + unsigned int alloc; /* allocated space for p */ + + int num_mem; /* used memory(...) num counted from 1 */ + int num_repeat; /* OP_REPEAT/OP_REPEAT_NG id-counter */ + int num_null_check; /* OP_NULL_CHECK_START/END id counter */ + int num_comb_exp_check; /* combination explosion check */ + int num_call; /* number of subexp call */ + unsigned int capture_history; /* (?@...) flag (1-31) */ + unsigned int bt_mem_start; /* need backtrack flag */ + unsigned int bt_mem_end; /* need backtrack flag */ + int stack_pop_level; + int repeat_range_alloc; + + OnigOptionType options; + + OnigRepeatRange* repeat_range; + + OnigEncoding enc; + const OnigSyntaxType* syntax; + void* name_table; + OnigCaseFoldType case_fold_flag; + + /* optimization info (string search, char-map and anchors) */ + int optimize; /* optimize flag */ + int threshold_len; /* search str-length for apply optimize */ + int anchor; /* BEGIN_BUF, BEGIN_POS, (SEMI_)END_BUF */ + OnigDistance anchor_dmin; /* (SEMI_)END_BUF anchor distance */ + OnigDistance anchor_dmax; /* (SEMI_)END_BUF anchor distance */ + int sub_anchor; /* start-anchor for exact or map */ + unsigned char *exact; + unsigned char *exact_end; + unsigned char map[ONIG_CHAR_TABLE_SIZE]; /* used as BM skip or char-map */ + int *int_map; /* BM skip for exact_len > 255 */ + int *int_map_backward; /* BM skip for backward search */ + OnigDistance dmin; /* min-distance of exact or map */ + OnigDistance dmax; /* max-distance of exact or map */ + + /* rb_hrtime_t from hrtime.h */ +#ifdef MY_RUBY_BUILD_MAY_TIME_TRAVEL + int128_t timelimit; +#else + uint64_t timelimit; +#endif + + /* regex_t link chain */ + struct re_pattern_buffer* chain; /* escape compile-conflict */ +} OnigRegexType; + +typedef OnigRegexType* OnigRegex; + +#ifndef ONIG_ESCAPE_REGEX_T_COLLISION +typedef OnigRegexType regex_t; +#endif + + +typedef struct { + int num_of_elements; + OnigEncoding pattern_enc; + OnigEncoding target_enc; + const OnigSyntaxType* syntax; + OnigOptionType option; + OnigCaseFoldType case_fold_flag; +} OnigCompileInfo; + +/* Oniguruma Native API */ +ONIG_EXTERN +int onig_initialize(OnigEncoding encodings[], int n); +ONIG_EXTERN +int onig_init(void); +ONIG_EXTERN +int onig_error_code_to_str(OnigUChar* s, OnigPosition err_code, ...); +ONIG_EXTERN +void onig_set_warn_func(OnigWarnFunc f); +ONIG_EXTERN +void onig_set_verb_warn_func(OnigWarnFunc f); +ONIG_EXTERN +int onig_new(OnigRegex*, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, const OnigSyntaxType* syntax, OnigErrorInfo* einfo); +ONIG_EXTERN +int onig_reg_init(OnigRegex reg, OnigOptionType option, OnigCaseFoldType case_fold_flag, OnigEncoding enc, const OnigSyntaxType* syntax); +ONIG_EXTERN +int onig_new_without_alloc(OnigRegex, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, const OnigSyntaxType* syntax, OnigErrorInfo* einfo); +ONIG_EXTERN +int onig_new_deluxe(OnigRegex* reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo); +ONIG_EXTERN +void onig_free(OnigRegex); +ONIG_EXTERN +void onig_free_body(OnigRegex); +ONIG_EXTERN +OnigPosition onig_scan(OnigRegex reg, const OnigUChar* str, const OnigUChar* end, OnigRegion* region, OnigOptionType option, int (*scan_callback)(OnigPosition, OnigPosition, OnigRegion*, void*), void* callback_arg); +ONIG_EXTERN +OnigPosition onig_search(OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option); +ONIG_EXTERN +OnigPosition onig_search_gpos(OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* global_pos, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option); +ONIG_EXTERN +OnigPosition onig_match(OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* at, OnigRegion* region, OnigOptionType option); +ONIG_EXTERN +int onig_check_linear_time(OnigRegex reg); +ONIG_EXTERN +OnigRegion* onig_region_new(void); +ONIG_EXTERN +void onig_region_init(OnigRegion* region); +ONIG_EXTERN +void onig_region_free(OnigRegion* region, int free_self); +ONIG_EXTERN +void onig_region_copy(OnigRegion* to, const OnigRegion* from); +ONIG_EXTERN +void onig_region_clear(OnigRegion* region); +ONIG_EXTERN +int onig_region_resize(OnigRegion* region, int n); +ONIG_EXTERN +int onig_region_set(OnigRegion* region, int at, int beg, int end); +ONIG_EXTERN +int onig_name_to_group_numbers(OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, int** nums); +ONIG_EXTERN +int onig_name_to_backref_number(OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, const OnigRegion *region); +ONIG_EXTERN +int onig_foreach_name(OnigRegex reg, int (*func)(const OnigUChar*, const OnigUChar*,int,int*,OnigRegex,void*), void* arg); +ONIG_EXTERN +int onig_number_of_names(const OnigRegexType *reg); +ONIG_EXTERN +int onig_number_of_captures(const OnigRegexType *reg); +ONIG_EXTERN +int onig_number_of_capture_histories(const OnigRegexType *reg); +#ifdef USE_CAPTURE_HISTORY +ONIG_EXTERN +OnigCaptureTreeNode* onig_get_capture_tree(OnigRegion* region); +#endif +ONIG_EXTERN +int onig_capture_tree_traverse(OnigRegion* region, int at, int(*callback_func)(int,OnigPosition,OnigPosition,int,int,void*), void* arg); +ONIG_EXTERN +int onig_noname_group_capture_is_active(const OnigRegexType *reg); +ONIG_EXTERN +OnigEncoding onig_get_encoding(const OnigRegexType *reg); +ONIG_EXTERN +OnigOptionType onig_get_options(const OnigRegexType *reg); +ONIG_EXTERN +OnigCaseFoldType onig_get_case_fold_flag(const OnigRegexType *reg); +ONIG_EXTERN +const OnigSyntaxType* onig_get_syntax(const OnigRegexType *reg); +ONIG_EXTERN +int onig_set_default_syntax(const OnigSyntaxType* syntax); +ONIG_EXTERN +void onig_copy_syntax(OnigSyntaxType* to, const OnigSyntaxType* from); +ONIG_EXTERN +unsigned int onig_get_syntax_op(const OnigSyntaxType* syntax); +ONIG_EXTERN +unsigned int onig_get_syntax_op2(const OnigSyntaxType* syntax); +ONIG_EXTERN +unsigned int onig_get_syntax_behavior(const OnigSyntaxType* syntax); +ONIG_EXTERN +OnigOptionType onig_get_syntax_options(const OnigSyntaxType* syntax); +ONIG_EXTERN +void onig_set_syntax_op(OnigSyntaxType* syntax, unsigned int op); +ONIG_EXTERN +void onig_set_syntax_op2(OnigSyntaxType* syntax, unsigned int op2); +ONIG_EXTERN +void onig_set_syntax_behavior(OnigSyntaxType* syntax, unsigned int behavior); +ONIG_EXTERN +void onig_set_syntax_options(OnigSyntaxType* syntax, OnigOptionType options); +ONIG_EXTERN +int onig_set_meta_char(OnigSyntaxType* syntax, unsigned int what, OnigCodePoint code); +ONIG_EXTERN +void onig_copy_encoding(OnigEncodingType *to, OnigEncoding from); +ONIG_EXTERN +OnigCaseFoldType onig_get_default_case_fold_flag(void); +ONIG_EXTERN +int onig_set_default_case_fold_flag(OnigCaseFoldType case_fold_flag); +ONIG_EXTERN +unsigned int onig_get_match_stack_limit_size(void); +ONIG_EXTERN +int onig_set_match_stack_limit_size(unsigned int size); +ONIG_EXTERN +unsigned int onig_get_parse_depth_limit(void); +ONIG_EXTERN +int onig_set_parse_depth_limit(unsigned int depth); +ONIG_EXTERN +int onig_end(void); +ONIG_EXTERN +const char* onig_version(void); +ONIG_EXTERN +const char* onig_copyright(void); + +RUBY_SYMBOL_EXPORT_END + +#ifdef __cplusplus +# if 0 +{ /* satisfy cc-mode */ +# endif +} +#endif + +#endif /* ONIGMO_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/oniguruma.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/oniguruma.h new file mode 100644 index 0000000..dc83754 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/oniguruma.h @@ -0,0 +1,8 @@ +#ifndef ONIGURUMA_H +#define ONIGURUMA_H +#include "onigmo.h" +#define ONIGURUMA +#define ONIGURUMA_VERSION_MAJOR ONIGMO_VERSION_MAJOR +#define ONIGURUMA_VERSION_MINOR ONIGMO_VERSION_MINOR +#define ONIGURUMA_VERSION_TEENY ONIGMO_VERSION_TEENY +#endif /* ONIGURUMA_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/ractor.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/ractor.h new file mode 100644 index 0000000..7811616 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/ractor.h @@ -0,0 +1,264 @@ +#ifndef RUBY_RACTOR_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_RACTOR_H 1 + +/** + * @file + * @author Koichi Sasada + * @date Tue Nov 17 16:39:15 2020 + * @copyright Copyright (C) 2020 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ +#include "internal/dllexport.h" /* RUBY_EXTERN is here */ +#include "internal/fl_type.h" /* FL_TEST_RAW is here */ +#include "internal/special_consts.h" /* RB_SPECIAL_CONSTS_P is here */ +#include "internal/stdbool.h" /* bool is here */ +#include "internal/value.h" /* VALUE is here */ + +/** Type that defines a ractor-local storage. */ +struct rb_ractor_local_storage_type { + + /** + * A function to mark a ractor-local storage. + * + * @param[out] ptr A ractor-local storage. + * @post Ruby objects inside of `ptr` are marked. + */ + void (*mark)(void *ptr); + + /** + * A function to destruct a ractor-local storage. + * + * @param[out] ptr A ractor-local storage. + * @post `ptr` is not a valid pointer. + */ + void (*free)(void *ptr); + // TODO: update +}; + +/** (Opaque) struct that holds a ractor-local storage key. */ +typedef struct rb_ractor_local_key_struct *rb_ractor_local_key_t; + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * `Ractor` class. + * + * @ingroup object + */ +RUBY_EXTERN VALUE rb_cRactor; + +/** + * Queries the standard input of the current Ractor that is calling this + * function. + * + * @return An IO. + * @note This can be different from the process-global one. + */ +VALUE rb_ractor_stdin(void); + +/** + * Queries the standard output of the current Ractor that is calling this + * function. + * + * @return An IO. + * @note This can be different from the process-global one. + */ +VALUE rb_ractor_stdout(void); + +/** + * Queries the standard error of the current Ractor that is calling this + * function. + * + * @return An IO. + * @note This can be different from the process-global one. + */ +VALUE rb_ractor_stderr(void); + +/** + * Assigns an IO to the standard input of the Ractor that is calling this + * function. + * + * @param[in] io An IO. + * @post `io` is the standard input of the current ractor. + * @post In case the calling Ractor is the main Ractor, it also updates + * the process global ::rb_stdin. + */ +void rb_ractor_stdin_set(VALUE io); + +/** + * Assigns an IO to the standard output of the Ractor that is calling this + * function. + * + * @param[in] io An IO. + * @post `io` is the standard input of the current ractor. + * @post In case the calling Ractor is the main Ractor, it also updates + * the process global ::rb_stdout. + */ +void rb_ractor_stdout_set(VALUE io); + +/** + * Assigns an IO to the standard error of the Ractor that is calling this + * function. + * + * @param[in] io An IO. + * @post `io` is the standard input of the current ractor. + * @post In case the calling Ractor is the main Ractor, it also updates + * the process global ::rb_stderr. + */ +void rb_ractor_stderr_set(VALUE io); + +/** + * Issues a new key. + * + * @return A newly issued ractor-local storage key. Keys issued using this + * key can be associated to a Ruby object per Ractor. + */ +rb_ractor_local_key_t rb_ractor_local_storage_value_newkey(void); + +/** + * Queries the key. + * + * @param[in] key A ractor-local storage key to lookup. + * @retval RUBY_Qnil No such key. + * @retval otherwise A value corresponds to `key` in the current Ractor. + * @note This cannot distinguish between a nonexistent key and a key + * exists and corresponds to ::RUBY_Qnil. + */ +VALUE rb_ractor_local_storage_value(rb_ractor_local_key_t key); + +/** + * Queries the key. + * + * @param[in] key A ractor-local storage key to lookup. + * @param[out] val Return value buffer. + * @retval false `key` not found. + * @retval true `key` found. + * @post `val` is updated so that it has the value corresponds to `key` + * in the current Ractor. + */ +bool rb_ractor_local_storage_value_lookup(rb_ractor_local_key_t key, VALUE *val); + +/** + * Associates the passed value to the passed key. + * + * @param[in] key A ractor-local storage key. + * @param[in] val Arbitrary ruby object. + * @post `val` corresponds to `key` in the current Ractor. + */ +void rb_ractor_local_storage_value_set(rb_ractor_local_key_t key, VALUE val); + +/** + * A type of ractor-local storage that destructs itself using ::ruby_xfree. + * + * @internal + * + * Why it is visible from 3rd party extension libraries is not obvious to + * @shyouhei. + */ +RUBY_EXTERN const struct rb_ractor_local_storage_type rb_ractor_local_storage_type_free; + +/** @alias{rb_ractor_local_storage_type_free} */ +#define RB_RACTOR_LOCAL_STORAGE_TYPE_FREE (&rb_ractor_local_storage_type_free) + +/** + * Extended version of rb_ractor_local_storage_value_newkey(). It additionally + * takes the type of the issuing key. + * + * @param[in] type How the value associated with the issuing key should + * behave. + * @return A newly issued ractor-local storage key, of type `type`. + */ +rb_ractor_local_key_t rb_ractor_local_storage_ptr_newkey(const struct rb_ractor_local_storage_type *type); + +/** + * Identical to rb_ractor_local_storage_value() except the return type. + * + * @param[in] key A ractor-local storage key to lookup. + * @retval NULL No such key. + * @retval otherwise A value corresponds to `key` in the current Ractor. + */ +void *rb_ractor_local_storage_ptr(rb_ractor_local_key_t key); + +/** + * Identical to rb_ractor_local_storage_value_set() except the parameter type. + * + * @param[in] key A ractor-local storage key. + * @param[in] ptr A pointer that conforms `key`'s type. + * @post `ptr` corresponds to `key` in the current Ractor. + */ +void rb_ractor_local_storage_ptr_set(rb_ractor_local_key_t key, void *ptr); + +/** + * Destructively transforms the passed object so that multiple Ractors can + * share it. What is a shareable object and what is not is a nuanced concept, + * and @ko1 says the definition can still change. However extension library + * authors might interest to learn how to use #RUBY_TYPED_FROZEN_SHAREABLE. + * + * @param[out] obj Arbitrary ruby object to modify. + * @exception rb_eRactorError Ractors cannot share `obj` by nature. + * @return Passed `obj`. + * @post Multiple Ractors can share `obj`. + * + * @internal + * + * In case an exception is raised, `obj` remains in an intermediate state where + * some of its part is frozen and others are not. @shyouhei is not sure if it + * is either an intended behaviour, current implementation limitation, or + * simply a bug. Note also that there is no way to "melt" a frozen object. + */ +VALUE rb_ractor_make_shareable(VALUE obj); + +/** + * Identical to rb_ractor_make_shareable(), except it returns a (deep) copy of + * the passed one instead of modifying it in-place. + * + * @param[in] obj Arbitrary ruby object to duplicate. + * @exception rb_eRactorError Ractors cannot share `obj` by nature. + * @return A deep copy of `obj` which is sharable among Ractors. + */ +VALUE rb_ractor_make_shareable_copy(VALUE obj); + +RBIMPL_SYMBOL_EXPORT_END() + +/** + * Queries if the passed object has previously classified as shareable or not. + * This doesn't mean anything in practice... Objects can be shared later. + * Always use rb_ractor_shareable_p() instead. + * + * @param[in] obj Object in question. + * @retval RUBY_FL_SHAREABLE It once was shareable before. + * @retval 0 Otherwise. + */ +#define RB_OBJ_SHAREABLE_P(obj) FL_TEST_RAW((obj), RUBY_FL_SHAREABLE) + +/** + * Queries if multiple Ractors can share the passed object or not. Ractors run + * without protecting each other. Sharing an object among them is basically + * dangerous, disabled by default. However there are objects that are + * extremely carefully implemented to be Ractor-safe; for instance integers + * have such property. This function can classify that. + * + * @param[in] obj Arbitrary ruby object. + * @retval true `obj` is capable of shared across ractors. + * @retval false `obj` cannot travel across ractor boundaries. + */ +static inline bool +rb_ractor_shareable_p(VALUE obj) +{ + bool rb_ractor_shareable_p_continue(VALUE obj); + + if (RB_SPECIAL_CONST_P(obj)) { + return true; + } + else if (RB_OBJ_SHAREABLE_P(obj)) { + return true; + } + else { + return rb_ractor_shareable_p_continue(obj); + } +} + +#endif /* RUBY_RACTOR_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/random.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/random.h new file mode 100644 index 0000000..39bdb6f --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/random.h @@ -0,0 +1,359 @@ +#ifndef RUBY_RANDOM_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_RANDOM_H 1 +/** + * @file + * @date Sat May 7 11:51:14 JST 2016 + * @copyright 2007-2020 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * + * This is a set of APIs to roll your own subclass of ::rb_cRandom. An + * illustrative example of such PRNG can be found at + * `ext/-test-/ramdom/loop.c`. + */ + +#include "ruby/ruby.h" + +/* + * version + * 0: before versioning; deprecated + * 1: added version, flags and init_32bit function + */ +#define RUBY_RANDOM_INTERFACE_VERSION_MAJOR 1 +#define RUBY_RANDOM_INTERFACE_VERSION_MINOR 0 + +#define RUBY_RANDOM_PASTE_VERSION_SUFFIX(x, y, z) x##_##y##_##z +#define RUBY_RANDOM_WITH_VERSION_SUFFIX(name, major, minor) \ + RUBY_RANDOM_PASTE_VERSION_SUFFIX(name, major, minor) +#define rb_random_data_type \ + RUBY_RANDOM_WITH_VERSION_SUFFIX(rb_random_data_type, \ + RUBY_RANDOM_INTERFACE_VERSION_MAJOR, \ + RUBY_RANDOM_INTERFACE_VERSION_MINOR) +#define RUBY_RANDOM_INTERFACE_VERSION_INITIALIZER \ + {RUBY_RANDOM_INTERFACE_VERSION_MAJOR, RUBY_RANDOM_INTERFACE_VERSION_MINOR} +#define RUBY_RANDOM_INTERFACE_VERSION_MAJOR_MAX 0xff +#define RUBY_RANDOM_INTERFACE_VERSION_MINOR_MAX 0xff + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Base components of the random interface. + * + * @internal + * + * Ideally this could be an empty class if we could assume C++, but in C a + * struct must have at least one field. + */ +struct rb_random_struct { + /** Seed, passed through e.g. `Random.new` */ + VALUE seed; +}; +typedef struct rb_random_struct rb_random_t; /**< @see ::rb_random_struct */ + +RBIMPL_ATTR_NONNULL(()) +/** + * This is the type of functions called when your random object is initialised. + * Passed buffer is the seed object basically. But in Ruby a number can be + * really big. This type of functions accept such big integers as a series of + * machine words. + * + * @param[out] rng Your random struct to fill in. + * @param[in] buf Seed, maybe converted from a bignum. + * @param[in] len Number of words of `buf`. + * @post `rng` is initialised using the passed seeds. + */ +typedef void rb_random_init_func(rb_random_t *rng, const uint32_t *buf, size_t len); + +RBIMPL_ATTR_NONNULL(()) +/** + * This is the type of functions called when your random object is initialised. + * Passed data is the seed integer. + * + * @param[out] rng Your random struct to fill in. + * @param[in] data Seed, single word. + * @post `rng` is initialised using the passed seeds. + */ +typedef void rb_random_init_int32_func(rb_random_t *rng, uint32_t data); + +RBIMPL_ATTR_NONNULL(()) +/** + * This is the type of functions called from your object's `#rand` method. + * + * @param[out] rng Your random struct to extract an integer from. + * @return A random number. + * @post `rng` is consumed somehow. + */ +typedef unsigned int rb_random_get_int32_func(rb_random_t *rng); + +RBIMPL_ATTR_NONNULL(()) +/** + * This is the type of functions called from your object's `#bytes` method. + * + * @param[out] rng Your random struct to extract an integer from. + * @param[out] buf Return buffer of at least `len` bytes length. + * @param[in] len Number of bytes of `buf`. + * @post `rng` is consumed somehow. + * @post `buf` is filled with random bytes. + */ +typedef void rb_random_get_bytes_func(rb_random_t *rng, void *buf, size_t len); + +RBIMPL_ATTR_NONNULL(()) +/** + * This is the type of functions called from your object's `#rand` method. + * + * @param[out] rng Your random struct to extract an integer from. + * @param[in] excl Pass nonzero value here to indicate you don't want 1.0. + * @return A random number of range 0.0 to 1.0. + * @post `rng` is consumed somehow. + */ +typedef double rb_random_get_real_func(rb_random_t *rng, int excl); + +/** PRNG algorithmic interface, analogous to Ruby level classes. */ +typedef struct { + /** Number of bits of seed numbers. */ + size_t default_seed_bits; + + /** + * Major/minor versions of this interface + */ + struct { + uint8_t major, minor; + } version; + + /** + * Reserved flags + */ + uint16_t flags; + + /** Function to initialize from uint32_t array. */ + rb_random_init_func *init; + + /** Function to initialize from single uint32_t. */ + rb_random_init_int32_func *init_int32; + + /** Function to obtain a random integer. */ + rb_random_get_int32_func *get_int32; + + /** + * Function to obtain a series of random bytes. If your PRNG have a native + * method to yield arbitrary number of bytes use that to implement this. + * But in case you lack such things, you can do so by using + * rb_rand_bytes_int32() + * + * ```CXX + * extern rb_random_get_int32_func your_get_int32_func; + * + * void + * your_get_byes_func(rb_random_t *rng, void *buf, size_t len) + * { + * rb_rand_bytes_int32(your_get_int32_func, rng, buf, len); + * } + * ``` + */ + rb_random_get_bytes_func *get_bytes; + + /** + * Function to obtain a random double. If your PRNG have a native method + * to yield a floating point random number use that to implement this. But + * in case you lack such things, you can do so by using + * rb_int_pair_to_real(). + * + * ```CXX + * extern rb_random_get_int32_func your_get_int32_func; + * + * void + * your_get_real_func(rb_random_t *rng, int excl) + * { + * auto a = your_get_int32_func(rng); + * auto b = your_get_int32_func(rng); + * return rb_int_pair_to_real(a, b, excl); + * } + * ``` + */ + rb_random_get_real_func *get_real; +} rb_random_interface_t; + +/** + * This utility macro defines 4 functions named prefix_init, prefix_init_int32, + * prefix_get_int32, prefix_get_bytes. + */ +#define RB_RANDOM_INTERFACE_DECLARE(prefix) \ + static void prefix##_init(rb_random_t *, const uint32_t *, size_t); \ + static void prefix##_init_int32(rb_random_t *, uint32_t); \ + static unsigned int prefix##_get_int32(rb_random_t *); \ + static void prefix##_get_bytes(rb_random_t *, void *, size_t) + +/** + * Identical to #RB_RANDOM_INTERFACE_DECLARE except it also declares + * prefix_get_real. + */ +#define RB_RANDOM_INTERFACE_DECLARE_WITH_REAL(prefix) \ + RB_RANDOM_INTERFACE_DECLARE(prefix); \ + static double prefix##_get_real(rb_random_t *, int) + +/** + * This utility macro expands to the names declared using + * #RB_RANDOM_INTERFACE_DECLARE. Expected to be used inside of a + * ::rb_random_interface_t initialiser: + * + * ```CXX + * RB_RANDOM_INTERFACE_DECLARE(foo); + * + * static inline constexpr rb_random_interface_t foo_interface = { + * 32768, // bits + * RB_RANDOM_INTERFACE_DEFINE(foo), + * }; + * ``` + */ +#define RB_RANDOM_INTERFACE_DEFINE(prefix) \ + RUBY_RANDOM_INTERFACE_VERSION_INITIALIZER, 0, \ + prefix##_init, \ + prefix##_init_int32, \ + prefix##_get_int32, \ + prefix##_get_bytes + +/** + * Identical to #RB_RANDOM_INTERFACE_DEFINE except it also defines + * prefix_get_real. + */ +#define RB_RANDOM_INTERFACE_DEFINE_WITH_REAL(prefix) \ + RB_RANDOM_INTERFACE_DEFINE(prefix), \ + prefix##_get_real + +#define RB_RANDOM_DEFINE_INIT_INT32_FUNC(prefix) \ + static void prefix##_init_int32(rb_random_t *rnd, uint32_t data) \ + { \ + prefix##_init(rnd, &data, 1); \ + } + +#if defined _WIN32 && !defined __CYGWIN__ +typedef rb_data_type_t rb_random_data_type_t; +# define RB_RANDOM_PARENT 0 +#else + +/** This is the type of ::rb_random_data_type. */ +typedef const rb_data_type_t rb_random_data_type_t; + +/** + * This utility macro can be used when you define your own PRNG type: + * + * ```CXX + * static inline constexpr rb_random_interface_t your_if = { + * 0, RB_RANDOM_INTERFACE_DEFINE(your), + * }; + * + * static inline constexpr rb_random_data_type_t your_prng_type = { + * "your PRNG", + * { rb_random_mark, }, + * RB_RANDOM_PARENT, // <<-- HERE + * &your_if, + * 0, + * } + * ``` + */ +# define RB_RANDOM_PARENT &rb_random_data_type +#endif + +/** + * This macro is expected to be called exactly once at the beginning of a + * program, possibly from inside of your `Init_Foo()` function. Depending on + * platforms #RB_RANDOM_PARENT can require a fixup. This routine does that + * when necessary. + */ +#define RB_RANDOM_DATA_INIT_PARENT(random_data) \ + rbimpl_random_data_init_parent(&random_data) + +/** + * This is the implementation of ::rb_data_type_struct::dmark for + * ::rb_random_data_type. In case your PRNG does not involve Ruby objects at + * all (which is quite likely), you can simply reuse it. + * + * @param[out] ptr Target to mark, which is a ::rb_random_t this case. + */ +void rb_random_mark(void *ptr); + +/** + * Initialises an allocated ::rb_random_t instance. Call it from your own + * initialiser appropriately. + * + * @param[out] rnd Your PRNG's base part. + * @post `rnd` is filled with an initial state. + */ +void rb_random_base_init(rb_random_t *rnd); + +/** + * Generates a 64 bit floating point number by concatenating two 32bit unsigned + * integers. + * + * @param[in] a Most significant 32 bits of the result. + * @param[in] b Least significant 32 bits of the result. + * @param[in] excl Whether the result should exclude 1.0 or not. + * @return A double, whose range is either `[0, 1)` or `[0, 1]`. + * @see ::rb_random_interface_t::get_real() + * + * @internal + * + * This in fact has nothing to do with PRNGs. + */ +double rb_int_pair_to_real(uint32_t a, uint32_t b, int excl); + +/** + * Repeatedly calls the passed function over and over again until the passed + * buffer is filled with random bytes. + * + * @param[in] func Generator function. + * @param[out] prng Passed as-is to `func`. + * @param[out] buff Return buffer. + * @param[in] size Number of words of `buff`. + * @post `buff` is filled with random bytes. + * @post `prng` is updated by `func`. + * @see ::rb_random_interface_t::get_bytes() + */ +void rb_rand_bytes_int32(rb_random_get_int32_func *func, rb_random_t *prng, void *buff, size_t size); + +/** + * The data that holds the backend type of ::rb_cRandom. Used as your PRNG's + * ::rb_data_type_struct::parent. + */ +RUBY_EXTERN const rb_data_type_t rb_random_data_type; + +RBIMPL_SYMBOL_EXPORT_END() + +RBIMPL_ATTR_PURE_UNLESS_DEBUG() +/* :TODO: can this function be __attribute__((returns_nonnull)) or not? */ +/** + * Queries the interface of the passed random object. + * + * @param[in] obj An instance (of a subclass) of ::rb_cRandom. + * @return Its corresponding ::rb_random_interface_t interface. + */ +static inline const rb_random_interface_t * +rb_rand_if(VALUE obj) +{ + RBIMPL_ASSERT_OR_ASSUME(RTYPEDDATA_P(obj)); + const struct rb_data_type_struct *t = RTYPEDDATA_TYPE(obj); + const void *ret = t->data; + return RBIMPL_CAST((const rb_random_interface_t *)ret); +} + +RBIMPL_ATTR_NOALIAS() +/** + * @private + * + * This is an implementation detail of #RB_RANDOM_DATA_INIT_PARENT. People + * don't use it directly. + * + * @param[out] random_data Region to fill. + * @post ::rb_random_data_type is filled appropriately. + */ +static inline void +rbimpl_random_data_init_parent(rb_random_data_type_t *random_data) +{ +#if defined _WIN32 && !defined __CYGWIN__ + random_data->parent = &rb_random_data_type; +#endif +} + +#endif /* RUBY_RANDOM_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/re.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/re.h new file mode 100644 index 0000000..3892d6e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/re.h @@ -0,0 +1,147 @@ +#ifndef RUBY_RE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_RE_H 1 +/** + * @file + * @author $Author$ + * @date Thu Sep 30 14:18:32 JST 1993 + * @copyright Copyright (C) 1993-2007 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ +#include "ruby/internal/config.h" + +#ifdef HAVE_SYS_TYPES_H +# include +#endif + +#include + +#include "ruby/regex.h" +#include "ruby/internal/core/rmatch.h" +#include "ruby/internal/dllexport.h" + +struct re_registers; /* Defined in onigmo.h */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Creates a new instance of ::rb_cRegexp. It can be seen as a specialised + * version of rb_reg_new_str() where it does not take options. + * + * @param[in] str Source code in String. + * @return Allocated new instance of ::rb_cRegexp. + */ +VALUE rb_reg_regcomp(VALUE str); + +/** + * Runs the passed regular expression over the passed string. Unlike + * rb_reg_search() this function also takes position and direction of the + * search, which make it possible for this function to run from in middle of + * the string. + * + * @param[in] re Regular expression to execute. + * @param[in] str Target string to search. + * @param[in] pos Offset in `str` to start searching, in bytes. + * @param[in] dir `pos`' direction; 0 means left-to-right, 1 for + * the opposite. + * @exception rb_eArgError `re` is broken. + * @exception rb_eRegexpError `re` is malformed. + * @retval -1 Match failed. + * @retval otherwise Offset of first such byte where match happened. + * @post `Regexp.last_match` is updated. + * @post `$&`, `$~`, etc., are updated. + * + * @internal + * + * Distinction between raising ::rb_eArgError and ::rb_eRegexpError is not + * obvious, at least to @shyouhei. + */ +long rb_reg_search(VALUE re, VALUE str, long pos, int dir); + +/** + * Substitution. This is basically the implementation of `String#sub`. Also + * `String#gsub` repeatedly calls this function. + * + * @param[in] repl Replacement string, e.g. `"\\1\\2"` + * @param[in] src Source string, to be replaced. + * @param[in] regs Matched data generated by applying `rexp` to `src`. + * @param[in] rexp Regular expression. + * @return A substituted string. + * + * @internal + * + * This function does not check for encoding compatibility. `String#sub!` + * etc. employ their own checker. + * + * `regs` should have been `const struct re_registers *` because it is read + * only. Kept as-is for compatibility. + */ +VALUE rb_reg_regsub(VALUE repl, VALUE src, struct re_registers *regs, VALUE rexp); + +/** + * Tell us if this is a wrong idea, but it seems this function has no usage at + * all. Just remains here for theoretical backwards compatibility. + * + * @param[in] re Regular expression to execute. + * @param[in] str Target string to search. + * @param[in] pos Offset in `str` to start searching, in bytes. + * @param[in] dir `pos`' direction; 0 means left-to-right, 1 for + * the opposite. + * @return Adjusted nearest offset to `pos` inside of `str`, where is a + * character boundary. + * + */ +long rb_reg_adjust_startpos(VALUE re, VALUE str, long pos, int dir); + +/** + * Escapes any characters that would have special meaning in a regular + * expression. + * + * @param[in] str Target string to escape. + * @return A copy of `str` whose contents are escaped. + */ +VALUE rb_reg_quote(VALUE str); + +/** + * Exercises various checks and preprocesses so that the given regular + * expression can be applied to the given string. The preprocess here includes + * (but not limited to) for instance encoding conversion. + * + * @param[in] re Target regular expression. + * @param[in] str What `re` is about to run on. + * @exception rb_eArgError `re` does not fit for `str`. + * @exception rb_eEncCompatError `re` and `str` are incompatible. + * @exception rb_eRegexpError `re` is malformed. + * @return A preprocessesed pattern buffer ready to be applied to `str`. + * @note The return value is manages by our GC. Don't free. + * + * @internal + * + * The return type, `regex_t *`, is defined in ``, _and_ + * _conflicts_ with POSIX's ``. We can no longer save the situation + * at this point. Just don't mix the two. + */ +regex_t *rb_reg_prepare_re(VALUE re, VALUE str); + +/** + * Duplicates a match data. This is roughly the same as `onig_region_copy()`, + * except it tries to GC when there is not enough memory. + * + * @param[out] dst Target registers to fill. + * @param[in] src Source registers to duplicate. + * @exception rb_eNoMemError Not enough memory. + * @retval 0 Successful + * @retval ONIGERR_MEMORY Not enough memory, even after GC (unlikely). + * @post `dst` has identical contents to `src`. + * + * @internal + * + * It seems this function is here for `ext/strscan` and nothing else. + */ +int rb_reg_region_copy(struct re_registers *dst, const struct re_registers *src); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_RE_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/regex.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/regex.h new file mode 100644 index 0000000..5327817 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/regex.h @@ -0,0 +1,43 @@ +#ifndef ONIGURUMA_REGEX_H /*-*-C++-*-vi:se ft=cpp:*/ +#define ONIGURUMA_REGEX_H 1 +/** + * @author $Author$ + * @copyright Copyright (C) 1993-2007 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ +#if defined(__cplusplus) +extern "C" { +#if 0 +} /* satisfy cc-mode */ +#endif +#endif + +#ifdef RUBY +#include "ruby/oniguruma.h" +#else +#include "oniguruma.h" +#endif + +RUBY_SYMBOL_EXPORT_BEGIN + +#ifndef ONIG_RUBY_M17N + +ONIG_EXTERN OnigEncoding OnigEncDefaultCharEncoding; + +#define mbclen(p,e,enc) rb_enc_mbclen((p),(e),(enc)) + +#endif /* ifndef ONIG_RUBY_M17N */ + +RUBY_SYMBOL_EXPORT_END + +#if defined(__cplusplus) +#if 0 +{ /* satisfy cc-mode */ +#endif +} /* extern "C" { */ +#endif + +#endif /* ONIGURUMA_REGEX_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/ruby.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/ruby.h new file mode 100644 index 0000000..444940c --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/ruby.h @@ -0,0 +1,312 @@ +#ifndef RUBY_RUBY_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_RUBY_H 1 +/** + * @file + * @author $Author$ + * @date Thu Jun 10 14:26:32 JST 1993 + * @copyright Copyright (C) 1993-2008 Yukihiro Matsumoto + * @copyright Copyright (C) 2000 Network Applied Communication Laboratory, Inc. + * @copyright Copyright (C) 2000 Information-technology Promotion Agency, Japan + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ +#include "ruby/internal/config.h" + +/* @shyouhei doesn't understand why we need at this very + * beginning of the entire circus. */ +#ifdef HAVE_INTRINSICS_H +# include +#endif + +#include + +#include "defines.h" +#include "ruby/internal/abi.h" +#include "ruby/internal/anyargs.h" +#include "ruby/internal/arithmetic.h" +#include "ruby/internal/core.h" +#include "ruby/internal/ctype.h" +#include "ruby/internal/dllexport.h" +#include "ruby/internal/error.h" +#include "ruby/internal/eval.h" +#include "ruby/internal/event.h" +#include "ruby/internal/fl_type.h" +#include "ruby/internal/gc.h" +#include "ruby/internal/glob.h" +#include "ruby/internal/globals.h" +#include "ruby/internal/has/warning.h" +#include "ruby/internal/interpreter.h" +#include "ruby/internal/iterator.h" +#include "ruby/internal/memory.h" +#include "ruby/internal/method.h" +#include "ruby/internal/module.h" +#include "ruby/internal/newobj.h" +#include "ruby/internal/rgengc.h" +#include "ruby/internal/scan_args.h" +#include "ruby/internal/special_consts.h" +#include "ruby/internal/symbol.h" +#include "ruby/internal/value.h" +#include "ruby/internal/value_type.h" +#include "ruby/internal/variable.h" +#include "ruby/assert.h" +#include "ruby/backward/2/assume.h" +#include "ruby/backward/2/inttypes.h" +#include "ruby/backward/2/limits.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/* Module#methods, #singleton_methods and so on return Symbols */ +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define USE_SYMBOL_AS_METHOD_NAME 1 + +/** + * Converts an object to a path. It first tries `#to_path` method if any, then + * falls back to `#to_str` method. + * + * @param[in] obj Arbitrary ruby object. + * @exception rb_eArgError `obj` contains a NUL byte. + * @exception rb_eTypeError `obj` is not path-ish. + * @exception rb_eEncCompatError No encoding conversion from `obj` to path. + * @return Converted path object. + */ +VALUE rb_get_path(VALUE obj); + +/** + * Ensures that the parameter object is a path. + * + * @param[in,out] v Arbitrary ruby object. + * @exception rb_eArgError `v` contains a NUL byte. + * @exception rb_eTypeError `v` is not path-ish. + * @exception rb_eEncCompatError `v` is not path-compatible. + * @post `v` is a path. + */ +#define FilePathValue(v) (RB_GC_GUARD(v) = rb_get_path(v)) + +/** + * @deprecated This function is an alias of rb_get_path() now. The part that + * did "no_checksafe" was deleted. It remains here because of no + * harm. + */ +VALUE rb_get_path_no_checksafe(VALUE); + +/** + * @deprecated This macro is an alias of #FilePathValue now. The part that did + * "String" was deleted. It remains here because of no harm. + */ +#define FilePathStringValue(v) ((v) = rb_get_path(v)) + +/** @cond INTERNAL_MACRO */ +#if defined(HAVE_BUILTIN___BUILTIN_CONSTANT_P) && defined(HAVE_STMT_AND_DECL_IN_EXPR) +# define rb_varargs_argc_check_runtime(argc, vargc) \ + (((argc) <= (vargc)) ? (argc) : \ + (rb_fatal("argc(%d) exceeds actual arguments(%d)", \ + argc, vargc), 0)) +# define rb_varargs_argc_valid_p(argc, vargc) \ + ((argc) == 0 ? (vargc) <= 1 : /* [ruby-core:85266] [Bug #14425] */ \ + (argc) == (vargc)) +# if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P) +# ifdef HAVE_ATTRIBUTE_ERRORFUNC +ERRORFUNC((" argument length doesn't match"), int rb_varargs_bad_length(int,int)); +# else +# define rb_varargs_bad_length(argc, vargc) \ + ((argc)/rb_varargs_argc_valid_p(argc, vargc)) +# endif +# define rb_varargs_argc_check(argc, vargc) \ + __builtin_choose_expr(__builtin_constant_p(argc), \ + (rb_varargs_argc_valid_p(argc, vargc) ? (argc) : \ + rb_varargs_bad_length(argc, vargc)), \ + rb_varargs_argc_check_runtime(argc, vargc)) +# else +# define rb_varargs_argc_check(argc, vargc) \ + rb_varargs_argc_check_runtime(argc, vargc) +# endif +#endif +/** @endcond */ + +/** + * Queries the name of the passed class. + * + * @param[in] klass An instance of a class. + * @return The name of `klass`. + * @note Return value is managed by our GC. Don't free. + */ +const char *rb_class2name(VALUE klass); + +/** + * Queries the name of the class of the passed object. + * + * @param[in] obj Arbitrary ruby object. + * @return The name of the class of `obj`. + * @note Return value is managed by our GC. Don't free. + */ +const char *rb_obj_classname(VALUE obj); + +/** + * Inspects an object. It first calls the argument's `#inspect` method, then + * feeds its result string into ::rb_stdout. + * + * This is identical to Ruby level `Kernel#p`, except it takes only one object. + * + * @internal + * + * Above description is in fact inaccurate. This API interfaces with Ractors. + */ +void rb_p(VALUE obj); + +/** + * This function is an optimised version of calling `#==`. It checks equality + * between two objects by first doing a fast identity check using using C's + * `==` (same as `BasicObject#equal?`). If that check fails, it calls `#==` + * dynamically. This optimisation actually affects semantics, because when + * `#==` returns false for the same object obj, `rb_equal(obj, obj)` would + * still return true. This happens for `Float::NAN`, where `Float::NAN == + * Float::NAN` is `false`, but `rb_equal(Float::NAN, Float::NAN)` is `true`. + * + * @param[in] lhs Comparison LHS. + * @param[in] rhs Comparison RHS. + * @retval RUBY_Qtrue They are the same. + * @retval RUBY_Qfalse They are different. + */ +VALUE rb_equal(VALUE lhs, VALUE rhs); + +/** + * Identical to rb_require_string(), except it takes C's string instead of + * Ruby's. + * + * @param[in] feature Name of a feature, e.g. `"json"`. + * @exception rb_eLoadError No such feature. + * @exception rb_eRuntimeError `$"` is frozen; unable to push. + * @retval RUBY_Qtrue The feature is loaded for the first time. + * @retval RUBY_Qfalse The feature has already been loaded. + * @post `$"` is updated. + */ +VALUE rb_require(const char *feature); + +#include "ruby/intern.h" + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define RUBY_VM 1 /* YARV */ + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define HAVE_NATIVETHREAD + +/** + * Queries if the thread which calls this function is a ruby's thread. + * "Ruby's" in this context is a thread created using one of our APIs like + * rb_thread_create(). There are distinctions between ruby's and other + * threads. For instance calling ruby methods are allowed only from inside of + * a ruby's thread. + * + * @retval 1 The current thread is a Ruby's thread. + * @retval 0 The current thread is a random thread from outside of Ruby. + */ +int ruby_native_thread_p(void); + +/** + * @private + * + * This macro is for internal use. Must be a mistake to place here. + */ +#define InitVM(ext) {void InitVM_##ext(void);InitVM_##ext();} + +RBIMPL_ATTR_NONNULL((3)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 4) +/** + * Our own locale-insensitive version of `snprintf(3)`. It can also be seen as + * a routine identical to rb_sprintf(), except it writes back to the passed + * buffer instead of allocating a new Ruby object. + * + * @param[out] str Return buffer + * @param[in] n Number of bytes of `str`. + * @param[in] fmt A `printf`-like format specifier. + * @param[in] ... Variadic number of contents to format. + * @return Number of bytes that would have been written to `str`, if `n` + * was large enough. Comparing this to `n` can give you insights + * that the buffer is too small or too big. Especially passing 0 + * to `n` gives you the exact number of bytes necessary to hold + * the result string without writing anything to anywhere. + * @post `str` holds up to `n-1` bytes of formatted contents (and the + * terminating NUL character.) + */ +int ruby_snprintf(char *str, size_t n, char const *fmt, ...); + +RBIMPL_ATTR_NONNULL((3)) +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 0) +/** + * Identical to ruby_snprintf(), except it takes a `va_list`. It can also be + * seen as a routine identical to rb_vsprintf(), except it writes back to the + * passed buffer instead of allocating a new Ruby object. + * + * @param[out] str Return buffer + * @param[in] n Number of bytes of `str`. + * @param[in] fmt A `printf`-like format specifier. + * @param[in] ap Contents to format. + * @return Number of bytes that would have been written to `str`, if `n` + * was large enough. Comparing this to `n` can give you insights + * that the buffer is too small or too big. Especially passing 0 + * to `n` gives you the exact number of bytes necessary to hold + * the result string without writing anything to anywhere. + * @post `str` holds up to `n-1` bytes of formatted contents (and the + * terminating NUL character.) + */ +int ruby_vsnprintf(char *str, size_t n, char const *fmt, va_list ap); + +/** @cond INTERNAL_MACRO */ +#if RBIMPL_HAS_WARNING("-Wgnu-zero-variadic-macro-arguments") +# /* Skip it; clang -pedantic doesn't like the following */ +#elif defined(__GNUC__) && defined(HAVE_VA_ARGS_MACRO) && defined(__OPTIMIZE__) +# define rb_yield_values(argc, ...) \ +__extension__({ \ + const int rb_yield_values_argc = (argc); \ + const VALUE rb_yield_values_args[] = {__VA_ARGS__}; \ + const int rb_yield_values_nargs = \ + (int)(sizeof(rb_yield_values_args) / sizeof(VALUE)); \ + rb_yield_values2( \ + rb_varargs_argc_check(rb_yield_values_argc, rb_yield_values_nargs), \ + rb_yield_values_nargs ? rb_yield_values_args : NULL); \ + }) + +# define rb_funcall(recv, mid, argc, ...) \ +__extension__({ \ + const int rb_funcall_argc = (argc); \ + const VALUE rb_funcall_args[] = {__VA_ARGS__}; \ + const int rb_funcall_nargs = \ + (int)(sizeof(rb_funcall_args) / sizeof(VALUE)); \ + rb_funcallv(recv, mid, \ + rb_varargs_argc_check(rb_funcall_argc, rb_funcall_nargs), \ + rb_funcall_nargs ? rb_funcall_args : NULL); \ + }) +#endif +/** @endcond */ + +#ifndef RUBY_DONT_SUBST +#include "ruby/subst.h" +#endif + +#if !defined RUBY_EXPORT && !defined RUBY_NO_OLD_COMPATIBILITY +# include "ruby/backward.h" +#endif + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_RUBY_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/st.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/st.h new file mode 100644 index 0000000..1e4bb80 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/st.h @@ -0,0 +1,197 @@ +/* This is a public domain general purpose hash table package + originally written by Peter Moore @ UCB. + + The hash table data structures were redesigned and the package was + rewritten by Vladimir Makarov . */ + +#ifndef RUBY_ST_H +#define RUBY_ST_H 1 + +#if defined(__cplusplus) +extern "C" { +#if 0 +} /* satisfy cc-mode */ +#endif +#endif + +#include "ruby/defines.h" + +RUBY_SYMBOL_EXPORT_BEGIN + +#if SIZEOF_LONG == SIZEOF_VOIDP +typedef unsigned long st_data_t; +#elif SIZEOF_LONG_LONG == SIZEOF_VOIDP +typedef unsigned LONG_LONG st_data_t; +#else +# error ---->> st.c requires sizeof(void*) == sizeof(long) or sizeof(LONG_LONG) to be compiled. <<---- +#endif +#define ST_DATA_T_DEFINED + +#ifndef CHAR_BIT +# ifdef HAVE_LIMITS_H +# include +# else +# define CHAR_BIT 8 +# endif +#endif +#ifndef _ +# define _(args) args +#endif +#ifndef ANYARGS +# ifdef __cplusplus +# define ANYARGS ... +# else +# define ANYARGS +# endif +#endif + +typedef struct st_table st_table; + +typedef st_data_t st_index_t; + +/* Maximal value of unsigned integer type st_index_t. */ +#define MAX_ST_INDEX_VAL (~(st_index_t) 0) + +typedef int st_compare_func(st_data_t, st_data_t); +typedef st_index_t st_hash_func(st_data_t); + +typedef char st_check_for_sizeof_st_index_t[SIZEOF_VOIDP == (int)sizeof(st_index_t) ? 1 : -1]; +#define SIZEOF_ST_INDEX_T SIZEOF_VOIDP + +struct st_hash_type { + int (*compare)(st_data_t, st_data_t); /* st_compare_func* */ + st_index_t (*hash)(st_data_t); /* st_hash_func* */ +}; + +#define ST_INDEX_BITS (SIZEOF_ST_INDEX_T * CHAR_BIT) + +#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR) && defined(HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P) +# define ST_DATA_COMPATIBLE_P(type) \ + __builtin_choose_expr(__builtin_types_compatible_p(type, st_data_t), 1, 0) +#else +# define ST_DATA_COMPATIBLE_P(type) 0 +#endif + +typedef struct st_table_entry st_table_entry; + +struct st_table_entry; /* defined in st.c */ + +struct st_table { + /* Cached features of the table -- see st.c for more details. */ + unsigned char entry_power, bin_power, size_ind; + /* How many times the table was rebuilt. */ + unsigned int rebuilds_num; + const struct st_hash_type *type; + /* Number of entries currently in the table. */ + st_index_t num_entries; + /* Array of bins used for access by keys. */ + st_index_t *bins; + /* Start and bound index of entries in array entries. + entries_starts and entries_bound are in interval + [0,allocated_entries]. */ + st_index_t entries_start, entries_bound; + /* Array of size 2^entry_power. */ + st_table_entry *entries; +}; + +#define st_is_member(table,key) st_lookup((table),(key),(st_data_t *)0) + +enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK, ST_REPLACE}; + +st_table *rb_st_init_table(const struct st_hash_type *); +#define st_init_table rb_st_init_table +st_table *rb_st_init_table_with_size(const struct st_hash_type *, st_index_t); +#define st_init_table_with_size rb_st_init_table_with_size +st_table *rb_st_init_numtable(void); +#define st_init_numtable rb_st_init_numtable +st_table *rb_st_init_numtable_with_size(st_index_t); +#define st_init_numtable_with_size rb_st_init_numtable_with_size +st_table *rb_st_init_strtable(void); +#define st_init_strtable rb_st_init_strtable +st_table *rb_st_init_strtable_with_size(st_index_t); +#define st_init_strtable_with_size rb_st_init_strtable_with_size +st_table *rb_st_init_strcasetable(void); +#define st_init_strcasetable rb_st_init_strcasetable +st_table *rb_st_init_strcasetable_with_size(st_index_t); +#define st_init_strcasetable_with_size rb_st_init_strcasetable_with_size +int rb_st_delete(st_table *, st_data_t *, st_data_t *); /* returns 0:notfound 1:deleted */ +#define st_delete rb_st_delete +int rb_st_delete_safe(st_table *, st_data_t *, st_data_t *, st_data_t); +#define st_delete_safe rb_st_delete_safe +int rb_st_shift(st_table *, st_data_t *, st_data_t *); /* returns 0:notfound 1:deleted */ +#define st_shift rb_st_shift +int rb_st_insert(st_table *, st_data_t, st_data_t); +#define st_insert rb_st_insert +int rb_st_insert2(st_table *, st_data_t, st_data_t, st_data_t (*)(st_data_t)); +#define st_insert2 rb_st_insert2 +int rb_st_lookup(st_table *, st_data_t, st_data_t *); +#define st_lookup rb_st_lookup +int rb_st_get_key(st_table *, st_data_t, st_data_t *); +#define st_get_key rb_st_get_key +typedef int st_update_callback_func(st_data_t *key, st_data_t *value, st_data_t arg, int existing); +/* *key may be altered, but must equal to the old key, i.e., the + * results of hash() are same and compare() returns 0, otherwise the + * behavior is undefined */ +int rb_st_update(st_table *table, st_data_t key, st_update_callback_func *func, st_data_t arg); +#define st_update rb_st_update +typedef int st_foreach_callback_func(st_data_t, st_data_t, st_data_t); +typedef int st_foreach_check_callback_func(st_data_t, st_data_t, st_data_t, int); +int rb_st_foreach_with_replace(st_table *tab, st_foreach_check_callback_func *func, st_update_callback_func *replace, st_data_t arg); +#define st_foreach_with_replace rb_st_foreach_with_replace +int rb_st_foreach(st_table *, st_foreach_callback_func *, st_data_t); +#define st_foreach rb_st_foreach +int rb_st_foreach_check(st_table *, st_foreach_check_callback_func *, st_data_t, st_data_t); +#define st_foreach_check rb_st_foreach_check +st_index_t rb_st_keys(st_table *table, st_data_t *keys, st_index_t size); +#define st_keys rb_st_keys +st_index_t rb_st_keys_check(st_table *table, st_data_t *keys, st_index_t size, st_data_t never); +#define st_keys_check rb_st_keys_check +st_index_t rb_st_values(st_table *table, st_data_t *values, st_index_t size); +#define st_values rb_st_values +st_index_t rb_st_values_check(st_table *table, st_data_t *values, st_index_t size, st_data_t never); +#define st_values_check rb_st_values_check +void rb_st_add_direct(st_table *, st_data_t, st_data_t); +#define st_add_direct rb_st_add_direct +void rb_st_free_table(st_table *); +#define st_free_table rb_st_free_table +void rb_st_cleanup_safe(st_table *, st_data_t); +#define st_cleanup_safe rb_st_cleanup_safe +void rb_st_clear(st_table *); +#define st_clear rb_st_clear +st_table *rb_st_copy(st_table *); +#define st_copy rb_st_copy +CONSTFUNC(int rb_st_numcmp(st_data_t, st_data_t)); +#define st_numcmp rb_st_numcmp +CONSTFUNC(st_index_t rb_st_numhash(st_data_t)); +#define st_numhash rb_st_numhash +PUREFUNC(int rb_st_locale_insensitive_strcasecmp(const char *s1, const char *s2)); +#define st_locale_insensitive_strcasecmp rb_st_locale_insensitive_strcasecmp +PUREFUNC(int rb_st_locale_insensitive_strncasecmp(const char *s1, const char *s2, size_t n)); +#define st_locale_insensitive_strncasecmp rb_st_locale_insensitive_strncasecmp +#define st_strcasecmp rb_st_locale_insensitive_strcasecmp +#define st_strncasecmp rb_st_locale_insensitive_strncasecmp +PUREFUNC(size_t rb_st_memsize(const st_table *)); +#define st_memsize rb_st_memsize +PUREFUNC(st_index_t rb_st_hash(const void *ptr, size_t len, st_index_t h)); +#define st_hash rb_st_hash +CONSTFUNC(st_index_t rb_st_hash_uint32(st_index_t h, uint32_t i)); +#define st_hash_uint32 rb_st_hash_uint32 +CONSTFUNC(st_index_t rb_st_hash_uint(st_index_t h, st_index_t i)); +#define st_hash_uint rb_st_hash_uint +CONSTFUNC(st_index_t rb_st_hash_end(st_index_t h)); +#define st_hash_end rb_st_hash_end +CONSTFUNC(st_index_t rb_st_hash_start(st_index_t h)); +#define st_hash_start(h) ((st_index_t)(h)) + +void rb_hash_bulk_insert_into_st_table(long, const VALUE *, VALUE); + +RUBY_SYMBOL_EXPORT_END + +#if defined(__cplusplus) +#if 0 +{ /* satisfy cc-mode */ +#endif +} /* extern "C" { */ +#endif + +#endif /* RUBY_ST_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/subst.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/subst.h new file mode 100644 index 0000000..d7b9a63 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/subst.h @@ -0,0 +1,26 @@ +#ifndef RUBY_SUBST_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_SUBST_H 1 +/** + * @author Ruby developers + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ + +#undef snprintf +#undef vsnprintf +#define snprintf ruby_snprintf +#define vsnprintf ruby_vsnprintf + +#ifdef BROKEN_CLOSE +#undef getpeername +#define getpeername ruby_getpeername +#undef getsockname +#define getsockname ruby_getsockname +#undef shutdown +#define shutdown ruby_shutdown +#undef close +#define close ruby_close +#endif +#endif diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/thread.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/thread.h new file mode 100644 index 0000000..0b5b1ca --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/thread.h @@ -0,0 +1,235 @@ +#ifndef RUBY_THREAD_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_THREAD_H 1 +/** + * @file + * @author $Author: matz $ + * @date Tue Jul 10 17:35:43 JST 2012 + * @copyright Copyright (C) 2007 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + */ +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/intern/thread.h" /* rb_unblock_function_t */ +#include "ruby/internal/dllexport.h" + +/** + * @name Flags for rb_nogvl() + * + * @{ + */ + +/** + * Passing this flag to rb_nogvl() prevents it from checking interrupts. + * Interrupts can impact your program negatively. For instance consider + * following callback function: + * + * ```CXX + * static inline int fd; // set elsewhere. + * static inline auto callback(auto buf) { + * auto tmp = ruby_xmalloc(BUFSIZ); + * auto ret = ruby_xmalloc(sizeof(ssize_t)); // (a) + * auto n = read(fd, tmp, BUFSIZ); // (b) + * memcpy(buf, tmp, n); // (c) + * memcpy(ret, n, sizeof(n)); + * ruby_xfree(tmp); + * return ret; + * } + * ``` + * + * Here, if it gets interrupted at (a) or (b), `read(2)` is cancelled and this + * function leaks memory (which is not a good thing of course, but...). But if + * it gets interrupted at (c), where `read(2)` is already done, interruption is + * way more catastrophic because what was read gets lost. To reroute this kind + * of problem you should set this flag. And check interrupts elsewhere at your + * own risk. + */ +#define RB_NOGVL_INTR_FAIL (0x1) + +/** + * Passing this flag to rb_nogvl() indicates that the passed UBF is + * async-signal-safe. An UBF could be async safe, and that makes things + * simpler. However async unsafe UBFs are just okay. If unsure, you can + * safely leave it unspecified. + * + * @internal + * + * This makes sense only in case of POSIX threads. + */ +#define RB_NOGVL_UBF_ASYNC_SAFE (0x2) + +/** @} */ + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +RBIMPL_ATTR_NONNULL((1)) +/** + * (Re-)acquires the GVL. This manoeuvre makes it possible for an out-of-GVL + * routine to one-shot call a ruby method. + * + * What this function does: + * + * 1. Blocks until it acquires the GVL. + * 2. Calls the passed function. + * 3. Releases the GVL. + * 4. Returns what was returned form the passed function. + * + * @param[in] func What to call with GVL. + * @param[in,out] data1 Passed as-is to `func`. + * @return What was returned from `func`. + * @warning `func` must not return a Ruby object. If it did such return + * value would escape from GC's scope; would not be marked. + * @warning Global escapes from this function just yield whatever fatal + * undefined behaviours. You must make sure that `func` does + * not raise, by properly rescuing everything using + * e.g. rb_protect(). + * @warning You cannot convert a non-Ruby thread into a Ruby thread + * using this API. This function makes sense only from inside + * of a rb_thread_call_without_gvl()'s callback. + */ +void *rb_thread_call_with_gvl(void *(*func)(void *), void *data1); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Allows the passed function to run in parallel with other Ruby threads. + * + * What this function does: + * + * 1. Checks (and handles) pending interrupts. + * 2. Releases the GVL. (Others can run here in parallel...) + * 3. Calls the passed function. + * 4. Blocks until it re-acquires the GVL. + * 5. Checks interrupts that happened between 2 to 4. + * + * In case other threads interfaced with this thread using rb_thread_kill() + * etc., the passed UBF is additionally called. See ::rb_unblock_function_t + * for details. + * + * Unlike rb_thread_call_without_gvl2() this function also reacts to signals + * etc. + * + * @param[in] func A function to call without GVL. + * @param[in,out] data1 Passed as-is to `func`. + * @param[in] ubf An UBF to cancel `func`. + * @param[in,out] data2 Passed as-is to `ubf`. + * @return What `func` returned, or 0 in case `ubf` cancelled `func`. + * @warning You cannot use most of Ruby C APIs like calling methods or + * raising exceptions from any of the functions passed to it. + * If that is dead necessary use rb_thread_call_with_gvl() to + * re-acquire the GVL. + * @warning In short, this API is difficult. @ko1 recommends you to use + * other ways if any. We lack experiences to use this API. If + * you find any corner cases etc., please report it to the + * devs. + * @warning Releasing and re-acquiring the GVL are expensive operations. + * For a short-running `func`, it might be faster to just call + * `func` with blocking everything else. Be sure to benchmark + * your code to see if it is actually worth releasing the GVL. + */ +void *rb_thread_call_without_gvl(void *(*func)(void *), void *data1, + rb_unblock_function_t *ubf, void *data2); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Identical to rb_thread_call_without_gvl(), except it does not interface with + * signals etc. As described in #RB_NOGVL_INTR_FAIL, interrupts can hurt you. + * In case this function detects an interrupt, it returns immediately. You can + * record progress of your callback and check it after returning from this + * function. + * + * What this function does: + * + * 1. Checks for pending interrupts and if any, just returns. + * 2. Releases the GVL. (Others can run here in parallel...) + * 3. Calls the passed function. + * 4. Blocks until it re-acquires the GVL. + * + * @param[in] func A function to call without GVL. + * @param[in,out] data1 Passed as-is to `func`. + * @param[in] ubf An UBF to cancel `func`. + * @param[in,out] data2 Passed as-is to `ubf`. + * @return What `func` returned, or 0 in case `func` did not return. + */ +void *rb_thread_call_without_gvl2(void *(*func)(void *), void *data1, + rb_unblock_function_t *ubf, void *data2); + +/* + * XXX: unstable/unapproved - out-of-tree code should NOT not depend + * on this until it hits Ruby 2.6.1 + */ + +RBIMPL_ATTR_NONNULL((1)) +/** + * Identical to rb_thread_call_without_gvl(), except it additionally takes + * "flags" that change the behaviour. + * + * @param[in] func A function to call without GVL. + * @param[in,out] data1 Passed as-is to `func`. + * @param[in] ubf An UBF to cancel `func`. + * @param[in,out] data2 Passed as-is to `ubf`. + * @param[in] flags Flags. + * @return What `func` returned, or 0 in case `func` did not return. + */ +void *rb_nogvl(void *(*func)(void *), void *data1, + rb_unblock_function_t *ubf, void *data2, + int flags); + +/** + * @private + * + * @deprecated This macro once was a thing in the old days, but makes no sense + * any longer today. Exists here for backwards compatibility + * only. You can safely forget about it. + */ +#define RUBY_CALL_WO_GVL_FLAG_SKIP_CHECK_INTS_AFTER 0x01 + +/** + * @private + * @deprecated It seems even in the old days it made no sense...? + */ +#define RUBY_CALL_WO_GVL_FLAG_SKIP_CHECK_INTS_ + +#define RUBY_INTERNAL_THREAD_EVENT_STARTED 1 << 0 /** thread started */ +#define RUBY_INTERNAL_THREAD_EVENT_READY 1 << 1 /** acquiring GVL */ +#define RUBY_INTERNAL_THREAD_EVENT_RESUMED 1 << 2 /** acquired GVL */ +#define RUBY_INTERNAL_THREAD_EVENT_SUSPENDED 1 << 3 /** released GVL */ +#define RUBY_INTERNAL_THREAD_EVENT_EXITED 1 << 4 /** thread terminated */ +#define RUBY_INTERNAL_THREAD_EVENT_MASK 0xff /** All Thread events */ + +typedef void rb_internal_thread_event_data_t; // for future extension. + +typedef void (*rb_internal_thread_event_callback)(rb_event_flag_t event, + const rb_internal_thread_event_data_t *event_data, + void *user_data); +typedef struct rb_internal_thread_event_hook rb_internal_thread_event_hook_t; + +/** + * Registers a thread event hook function. + * + * @param[in] func A callback. + * @param[in] events A set of events that `func` should run. + * @param[in] data Passed as-is to `func`. + * @return An opaque pointer to the hook, to unregister it later. + * @note This functionality is a noop on Windows. + * @warning This function MUST not be called from a thread event callback. + */ +rb_internal_thread_event_hook_t *rb_internal_thread_add_event_hook( + rb_internal_thread_event_callback func, rb_event_flag_t events, + void *data); + + +/** + * Unregister the passed hook. + * + * @param[in] hook. The hook to unregister. + * @return Wether the hook was found and unregistered. + * @note This functionality is a noop on Windows. + * @warning This function MUST not be called from a thread event callback. +*/ +bool rb_internal_thread_remove_event_hook( + rb_internal_thread_event_hook_t * hook); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_THREAD_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/thread_native.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/thread_native.h new file mode 100644 index 0000000..c23b15e --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/thread_native.h @@ -0,0 +1,205 @@ +#ifndef RUBY_THREAD_NATIVE_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_THREAD_NATIVE_H 1 +/** + * @file + * @author $Author: ko1 $ + * @date Wed May 14 19:37:31 2014 + * @copyright Copyright (C) 2014 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * + * This file contains wrapper APIs for native thread primitives + * which Ruby interpreter uses. + * + * Now, we only support pthread and Windows threads. + * + * If you want to use Ruby's Mutex and so on to synchronize Ruby Threads, + * please use Mutex directly. + */ + +#if defined(_WIN32) +#include +typedef HANDLE rb_nativethread_id_t; + +typedef union rb_thread_lock_union { + HANDLE mutex; + CRITICAL_SECTION crit; +} rb_nativethread_lock_t; + +typedef struct rb_thread_cond_struct rb_nativethread_cond_t; + +#elif defined(HAVE_PTHREAD_H) + +#include +typedef pthread_t rb_nativethread_id_t; +typedef pthread_mutex_t rb_nativethread_lock_t; +typedef pthread_cond_t rb_nativethread_cond_t; + +#elif defined(__wasi__) // no-thread platforms + +typedef struct rb_nativethread_id_t *rb_nativethread_id_t; +typedef struct rb_nativethread_lock_t *rb_nativethread_lock_t; +typedef struct rb_nativethread_cond_t *rb_nativethread_cond_t; + +#elif defined(__DOXYGEN__) + +/** Opaque type that holds an ID of a native thread. */ +struct rb_nativethread_id_t; + +/** Opaque type that holds a lock. */ +struct rb_nativethread_lock_t; + +/** Opaque type that holds a condition variable. */ +struct rb_nativethread_cond_t; + +#else +#error "unsupported thread type" + +#endif + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * Queries the ID of the native thread that is calling this function. + * + * @return The caller thread's native ID. + */ +rb_nativethread_id_t rb_nativethread_self(void); + +/** + * Fills the passed lock with an initial value. + * + * @param[out] lock A mutex to initialise. + * @post `lock` is updated to its initial state. + * + * @internal + * + * There is no data structure that analogous to pthread_once_t in ruby. It is + * pretty much tricky (if not impossible) to properly initialise a mutex + * exactly once. + */ +void rb_nativethread_lock_initialize(rb_nativethread_lock_t *lock); + +/** + * Destroys the passed mutex. + * + * @param[out] lock A mutex to kill. + * @post `lock` is no longer eligible for other functions. + * + * @internal + * + * It is an undefined behaviour (see `pthread_mutex_destroy(3posix)`) to + * destroy a locked mutex. So it has to be unlocked. But an unlocked mutex + * can of course be locked by another thread. That's the ultimate reason why + * we do mutex. There is an inevitable race condition here. 2017 edition of + * IEEE 1003.1 issue 7 says in its rationale that "care must be taken". Care? + * How? + * + * @shyouhei thinks that POSIX is broken by design. + */ +void rb_nativethread_lock_destroy(rb_nativethread_lock_t *lock); + +/** + * Blocks until the current thread obtains a lock. + * + * @param[out] lock A mutex to lock. + * @post `lock` is owned by the current native thread. + */ +void rb_nativethread_lock_lock(rb_nativethread_lock_t *lock); + +/** + * Releases a lock. + * + * @param[out] lock A mutex to unlock. + * @pre `lock` is owned by the current native thread. + * @post `lock` is not owned by the current native thread. + */ +void rb_nativethread_lock_unlock(rb_nativethread_lock_t *lock); + +/** @alias{rb_nativethread_lock_lock} */ +void rb_native_mutex_lock(rb_nativethread_lock_t *lock); + +/** + * Identical to rb_native_mutex_lock(), except it doesn't block in case + * rb_native_mutex_lock() would. + * + * @param[out] lock A mutex to lock. + * @retval 0 `lock` is successfully owned by the current thread. + * @retval EBUSY `lock` is owned by someone else. + */ +int rb_native_mutex_trylock(rb_nativethread_lock_t *lock); + +/** @alias{rb_nativethread_lock_unlock} */ +void rb_native_mutex_unlock(rb_nativethread_lock_t *lock); + +/** @alias{rb_nativethread_lock_initialize} */ +void rb_native_mutex_initialize(rb_nativethread_lock_t *lock); + +/** @alias{rb_nativethread_lock_destroy} */ +void rb_native_mutex_destroy(rb_nativethread_lock_t *lock); + +/** + * Signals a condition variable. + * + * @param[out] cond A condition variable to ping. + * @post More than one threads waiting for `cond` gets signalled. + * @note This function can spuriously wake multiple threads up. + * `pthread_cond_signal(3posix)` says it can even be "impossible + * to avoid the unblocking of more than one thread blocked on a + * condition variable". Just brace spurious wakeups. + */ +void rb_native_cond_signal(rb_nativethread_cond_t *cond); + +/** + * Signals a condition variable. + * + * @param[out] cond A condition variable to ping. + * @post All threads waiting for `cond` gets signalled. + */ +void rb_native_cond_broadcast(rb_nativethread_cond_t *cond); + +/** + * Waits for the passed condition variable to be signalled. + * + * @param[out] cond A condition variable to wait. + * @param[out] mutex A mutex. + * @pre `mutex` is owned by the current thread. + * @post `mutex` is owned by the current thread. + * @note This can wake up spuriously. + */ +void rb_native_cond_wait(rb_nativethread_cond_t *cond, rb_nativethread_lock_t *mutex); + +/** + * Identical to rb_native_cond_wait(), except it additionally takes timeout in + * msec resolution. Timeouts can be detected by catching exceptions. + * + * @param[out] cond A condition variable to wait. + * @param[out] mutex A mutex. + * @param[in] msec Timeout. + * @exception rb_eSystemCallError `Errno::ETIMEDOUT` for timeout. + * @pre `mutex` is owned by the current thread. + * @post `mutex` is owned by the current thread. + * @note This can wake up spuriously. + */ +void rb_native_cond_timedwait(rb_nativethread_cond_t *cond, rb_nativethread_lock_t *mutex, unsigned long msec); + +/** + * Fills the passed condition variable with an initial value. + * + * @param[out] cond A condition variable to initialise. + * @post `cond` is updated to its initial state. + */ +void rb_native_cond_initialize(rb_nativethread_cond_t *cond); + +/** + * Destroys the passed condition variable. + * + * @param[out] cond A condition variable to kill. + * @post `cond` is no longer eligible for other functions. + */ +void rb_native_cond_destroy(rb_nativethread_cond_t *cond); + +RBIMPL_SYMBOL_EXPORT_END() +#endif diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/util.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/util.h new file mode 100644 index 0000000..e8727a3 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/util.h @@ -0,0 +1,228 @@ +#ifndef RUBY_UTIL_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_UTIL_H 1 +/** + * @file + * @author $Author$ + * @date Thu Mar 9 11:55:53 JST 1995 + * @copyright Copyright (C) 1993-2007 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * @warning DO NOT ADD RANDOM GARBAGES IN THIS FILE! Contents of this file + * reside here for historical reasons. Find a right place for your + * API! + */ +#include "ruby/internal/config.h" + +#ifdef STDC_HEADERS +# include /* size_t */ +#endif + +#ifdef HAVE_SYS_TYPES_H +# include /* ssize_t */ +#endif + +#include "ruby/internal/attr/noalias.h" +#include "ruby/internal/attr/nodiscard.h" +#include "ruby/internal/attr/nonnull.h" +#include "ruby/internal/attr/restrict.h" +#include "ruby/internal/attr/returns_nonnull.h" +#include "ruby/internal/dllexport.h" +#include "ruby/defines.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** an approximation of ceil(n * log10(2)), up to 65536 at least */ +#define DECIMAL_SIZE_OF_BITS(n) (((n) * 3010 + 9998) / 9999) + +/** + * Character to number mapping like `'a'` -> `10`, `'b'` -> `11` etc. For + * punctuation etc., the value is -1. "36" terminology comes from the fact + * that this is the table behind `str.to_i(36)`. + */ +RUBY_EXTERN const signed char ruby_digit36_to_number_table[]; + +/** + * Characters that Ruby accepts as hexadecimal digits. This is `/\h/` expanded + * into an array. + */ +RUBY_EXTERN const char ruby_hexdigits[]; + +/** + * Scans the passed string, assuming the string is a textual representation of + * an integer. Stops when encountering something non-digit for the passed + * base. + * + * @note This does not understand minus sign. + * @note This does not understand e.g. `0x` prefix. + * @note It is a failure to pass `0` to `base`, unlike ruby_strtoul(). + * @param[in] str Target string of digits to interpret. + * @param[in] len Number of bytes of `str`, or -1 to detect `NUL`. + * @param[in] base Base, `2` to `36` inclusive. + * @param[out] retlen Return value buffer. + * @param[out] overflow Return value buffer. + * @return Interpreted numeric representation of `str`. + * @post `retlen` is the number of bytes scanned so far. + * @post `overflow` is set to true if the string represents something + * bigger than `ULONG_MAX`. Something meaningful still returns; + * which is the designed belabour of C's unsigned arithmetic. + */ +unsigned long ruby_scan_digits(const char *str, ssize_t len, int base, size_t *retlen, int *overflow); + +/** @old{ruby_scan_oct} */ +#define scan_oct(s,l,e) ((int)ruby_scan_oct((s),(l),(e))) + +RBIMPL_ATTR_NOALIAS() +RBIMPL_ATTR_NONNULL(()) +/** + * Interprets the passed string as an octal unsigned integer. Stops when + * encounters something not understood. + * + * @param[in] str C string to scan. + * @param[in] len Length of `str`. + * @param[out] consumed Return value buffer. + * @return Parsed integer. + * @post `ret` is the number of characters read. + * + * @internal + * + * No consideration is made for integer overflows. As the return value is + * unsigned this function has fully defined behaviour, but you cannot know if + * there was an integer wrap-around or not. + */ +unsigned long ruby_scan_oct(const char *str, size_t len, size_t *consumed); + +/** @old{ruby_scan_hex} */ +#define scan_hex(s,l,e) ((int)ruby_scan_hex((s),(l),(e))) + +RBIMPL_ATTR_NONNULL(()) +/** + * Interprets the passed string a hexadecimal unsigned integer. Stops when + * encounters something not understood. + * + * @param[in] str C string to scan. + * @param[in] len Length of `str`. + * @param[out] ret Return value buffer. + * @return Parsed integer. + * @post `ret` is the number of characters read. + * + * @internal + * + * No consideration is made for integer overflows. As the return value is + * unsigned this function has fully defined behaviour, but you cannot know if + * there was an integer wrap-around or not. + */ +unsigned long ruby_scan_hex(const char *str, size_t len, size_t *ret); + +/** + * Reentrant implementation of quick sort. If your system provides something + * (like C11 qsort_s), this is a thin wrapper of that routine. Otherwise + * resorts to our own version. + */ +#ifdef HAVE_GNU_QSORT_R +# define ruby_qsort qsort_r +#else +void ruby_qsort(void *, const size_t, const size_t, + int (*)(const void *, const void *, void *), void *); +#endif + +RBIMPL_ATTR_NONNULL((1)) +/** + * Sets an environment variable. In case of POSIX this is a wrapper of + * `setenv(3)`. But there are systems which lack one. We try hard emulating. + * + * @param[in] key An environment variable. + * @param[in] val A value to be associated with `key`, or 0. + * @exception rb_eSystemCallError `setenv(3)` failed for some reason. + * @post Environment variable `key` is created if necessary. Its value + * is updated to be `val`. + */ +void ruby_setenv(const char *key, const char *val); + +RBIMPL_ATTR_NONNULL(()) +/** + * Deletes the passed environment variable, if any. + * + * @param[in] key An environment variable. + * @exception rb_eSystemCallError `unsetenv(3)` failed for some reason. + * @post Environment variable `key` does not exist. + */ +void ruby_unsetenv(const char *key); + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +RBIMPL_ATTR_NONNULL(()) +/** + * This is our own version of `strdup(3)` that uses ruby_xmalloc() instead of + * system malloc (benefits our GC). + * + * @param[in] str Target C string to duplicate. + * @return An allocated C string holding the identical contents. + * @note Return value must be discarded using ruby_xfree(). + */ +char *ruby_strdup(const char *str); + +#undef strdup +/** + * @alias{ruby_strdup} + * + * @internal + * + * @shyouhei doesn't think it is a wise idea. ruby_strdup()'s return value + * must be passed to ruby_xfree(), but this macro makes it almost impossible. + */ +#define strdup(s) ruby_strdup(s) + +RBIMPL_ATTR_NODISCARD() +RBIMPL_ATTR_RESTRICT() +RBIMPL_ATTR_RETURNS_NONNULL() +/** + * This is our own version of `getcwd(3)` that uses ruby_xmalloc() instead of + * system malloc (benefits our GC). + * + * @return An allocated C string holding the process working directory. + * @note Return value must be discarded using ruby_xfree(). + */ +char *ruby_getcwd(void); + +RBIMPL_ATTR_NONNULL((1)) +/** + * Our own locale-insensitive version of `strtod(3)`. The conversion is done + * as if the current locale is set to the "C" locale, no matter actual runtime + * locale settings. + * + * @param[in] str Decimal or hexadecimal representation of a floating + * point number. + * @param[out] endptr NULL, or an arbitrary pointer (overwritten on return). + * @return Converted number. + * @post If `endptr` is not NULL, it is updated to point the first such + * byte where conversion failed. + * @note This function sets `errno` on failure. + * - `ERANGE`: Converted integer is out of range of `double`. + * @see William D. Clinger, "How to Read Floating Point Numbers + * Accurately" in Proc. ACM SIGPLAN '90, pp. 92-101. + * https://doi.org/10.1145/93542.93557 + */ +double ruby_strtod(const char *str, char **endptr); + +#undef strtod +/** @alias{ruby_strtod} */ +#define strtod(s,e) ruby_strtod((s),(e)) + +RBIMPL_ATTR_NONNULL((2)) +/** + * Scans the passed string, with calling the callback function every time it + * encounters a "word". A word here is a series of characters separated by + * either a space (of IEEE 1003.1 section 7.3.1.1), or a `','`. + * + * @param[in] str Target string to split into each words. + * @param[in] func Callback function. + * @param[in,out] argv Passed as-is to `func`. + */ +void ruby_each_words(const char *str, void (*func)(const char *word, int len, void *argv), void *argv); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_UTIL_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/version.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/version.h new file mode 100644 index 0000000..18b3abc --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/version.h @@ -0,0 +1,159 @@ +#ifndef RUBY_VERSION_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_VERSION_H 1 +/** + * @file + * @author $Author$ + * @date Wed May 13 12:56:56 JST 2009 + * @copyright Copyright (C) 1993-2009 Yukihiro Matsumoto + * @copyright Copyright (C) 2000 Network Applied Communication Laboratory, Inc. + * @copyright Copyright (C) 2000 Information-technology Promotion Agency, Japan + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * + * This file contains only + * - never-changeable information, and + * - interfaces accessible from extension libraries. + * + * Never try to check RUBY_VERSION_CODE etc in extension libraries, + * check the features with mkmf.rb instead. + */ + +/** + * @name The origin. + * + * These information never change. Just written here to remember. + * + * @{ + */ + +/** Author of this project. */ +#define RUBY_AUTHOR "Yukihiro Matsumoto" + +/** Ruby's birth year. */ +#define RUBY_BIRTH_YEAR 1993 + +/** Ruby's birth month. */ +#define RUBY_BIRTH_MONTH 2 + +/** Ruby's birth day. */ +#define RUBY_BIRTH_DAY 24 + +/** @} */ + +/** + * @name The API version. + * + * API version is different from binary version. These numbers are for API + * stability. When you have distinct API versions x and y, you cannot expect + * codes targeted to x also works for y. + * + * However let us repeat here that it's a BAD idea to check + * #RUBY_API_VERSION_CODE form extension libraries. Different API versions are + * just different. There is no such thing like upper compatibility. + * + * @{ + */ + +/** + * Major version. This digit changes sometimes for various reasons, but that + * doesn't mean a total rewrite. Practically when it comes to API versioning, + * major and minor version changes are equally catastrophic. + */ +#define RUBY_API_VERSION_MAJOR 3 + +/** + * Minor version. As of writing this version changes annually. Greater + * version doesn't mean "better"; they just mean years passed. + */ +#define RUBY_API_VERSION_MINOR 2 + +/** + * Teeny version. This digit is kind of reserved these days. Kept 0 for the + * entire 2.x era. Waiting for future uses. + */ +#define RUBY_API_VERSION_TEENY 0 + +/** + * This macro is API versions encoded into a C integer. + * + * @note Use mkmf. + * @note Don't rely on it. + */ +#define RUBY_API_VERSION_CODE (RUBY_API_VERSION_MAJOR*10000+RUBY_API_VERSION_MINOR*100+RUBY_API_VERSION_TEENY) + +/** @} */ + +#ifdef RUBY_EXTERN +/* Internal note: this file could be included from verconf.mk _before_ + * generating config.h, on Windows. The #ifdef above is to trick such + * situation. */ +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * @name Interfaces from extension libraries. + * + * Before using these infos, think thrice whether they are really + * necessary or not, and if the answer was yes, think twice a week + * later again. + * + * @{ + */ + +/** API versions, in { major, minor, teeny } order. */ +RUBY_EXTERN const int ruby_api_version[3]; + +/** + * Stringised version. + * + * @note This is the runtime version, not the API version. For instance it + * was `"2.5.9"` when ::ruby_api_version was `{ 2, 5, 0 }`. + */ +RUBY_EXTERN const char ruby_version[]; + +/** Date of release, in a C string. */ +RUBY_EXTERN const char ruby_release_date[]; + +/** + * Target platform identifier, in a C string. + * + * @note Seasoned UNIX programmers should beware that this "platform + * identifier" is our invention; not always identical to so-called + * target triplets that GNU systems use. For instance on @shyouhei's + * machine, ::ruby_platform is `"x64_64-linux"` while its target triplet + * is `x86_64-pc-linux-gnu`. + * @note Note also that we support Windows. + */ +RUBY_EXTERN const char ruby_platform[]; + +/** + * This is a monotonic increasing integer that describes specific "patch" + * level. You can know the exact changeset your binary is running by this info + * (and ::ruby_version), unless this is -1. -1 means there is no release yet + * for the version; ruby is actively developed. 0 means the initial GA version. + */ +RUBY_EXTERN const int ruby_patchlevel; + +/** + * This is what `ruby -v` prints to the standard error. Something like: + * `"ruby 2.5.9p229 (2021-04-05 revision 67829) [x86_64-linux]"`. This doesn't + * include runtime options like a JIT being enabled. + */ +RUBY_EXTERN const char ruby_description[]; + +/** Copyright notice. */ +RUBY_EXTERN const char ruby_copyright[]; + +/** + * This is just `"ruby"` for us. But different implementations can have + * different strings here. + */ +RUBY_EXTERN const char ruby_engine[]; + +/** @} */ + +RBIMPL_SYMBOL_EXPORT_END() +#endif + +#endif diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/vm.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/vm.h new file mode 100644 index 0000000..3458c28 --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/vm.h @@ -0,0 +1,54 @@ +#ifndef RUBY_VM_H /*-*-C++-*-vi:se ft=cpp:*/ +#define RUBY_VM_H 1 +/** + * @file + * @author $Author$ + * @date Sat May 31 15:17:36 2008 + * @copyright Copyright (C) 2008 Yukihiro Matsumoto + * @copyright This file is a part of the programming language Ruby. + * Permission is hereby granted, to either redistribute and/or + * modify this file, provided that the conditions mentioned in the + * file COPYING are met. Consult the file for details. + * + * We planned to have multiple VMs run side-by-side. The API here was a + * preparation of that feature. The topic branch was eventually abandoned, and + * we now have Ractor. This file is kind of obsolescent. + */ +#include "ruby/internal/dllexport.h" + +RBIMPL_SYMBOL_EXPORT_BEGIN() + +/** + * The opaque struct to hold VM internals. Its fields are intentionally hidden + * from extension libraries because it changes drastically time to time. + */ +typedef struct rb_vm_struct ruby_vm_t; + +/** + * Destructs the passed VM. You don't have to call this API directly now, + * because there is no way to create one. There is only one VM at one time. + * ruby_stop() should just suffice. + */ +int ruby_vm_destruct(ruby_vm_t *vm); + +/** + * ruby_vm_at_exit registers a function _func_ to be invoked when a VM + * passed away. Functions registered this way runs in reverse order + * of registration, just like END {} block does. The difference is + * its timing to be triggered. ruby_vm_at_exit functions runs when a + * VM _passed_ _away_, while END {} blocks runs just _before_ a VM + * _is_ _passing_ _away_. + * + * You cannot register a function to another VM than where you are in. + * So where to register is intuitive, omitted. OTOH the argument + * _func_ cannot know which VM it is in because at the time of + * invocation, the VM has already died and there is no execution + * context. The VM itself is passed as the first argument to it. + * + * @param[in] func the function to register. + */ +void ruby_vm_at_exit(void(*func)(ruby_vm_t *)); + +RBIMPL_SYMBOL_EXPORT_END() + +#endif /* RUBY_VM_H */ diff --git a/ThirdParty/include/ruby/3.2/win32_x64/ruby/win32.h b/ThirdParty/include/ruby/3.2/win32_x64/ruby/win32.h new file mode 100644 index 0000000..197eb8a --- /dev/null +++ b/ThirdParty/include/ruby/3.2/win32_x64/ruby/win32.h @@ -0,0 +1,827 @@ +#ifndef RUBY_WIN32_H +#define RUBY_WIN32_H 1 + +#if defined(__cplusplus) +extern "C" { +#if 0 +} /* satisfy cc-mode */ +#endif +#endif + +RUBY_SYMBOL_EXPORT_BEGIN + +/* + * Copyright (c) 1993, Intergraph Corporation + * + * You may distribute under the terms of either the GNU General Public + * License or the Artistic License, as specified in the perl README file. + * + */ + +/* + * Ok now we can include the normal include files. + */ + +/* #include conflict with varargs.h? */ +#if !defined(WSAAPI) +#if defined(__cplusplus) && defined(_MSC_VER) +extern "C++" { /* template without extern "C++" */ +#endif +#if !defined(_WIN64) && !defined(WIN32) +#define WIN32 +#endif +#if defined(_MSC_VER) && _MSC_VER <= 1200 +#include +#endif +#include +#include +#if !defined(_MSC_VER) || _MSC_VER >= 1400 +#include +#endif +#if defined(__cplusplus) && defined(_MSC_VER) +} +#endif +#endif + +/* + * We're not using Microsoft's "extensions" to C for + * Structured Exception Handling (SEH) so we can nuke these + */ +#undef try +#undef except +#undef finally +#undef leave + +#include +#include +#include +#include +#include +#include +#if defined(__cplusplus) && defined(_MSC_VER) && _MSC_VER == 1200 +extern "C++" { /* template without extern "C++" */ +#endif +#include +#if defined(__cplusplus) && defined(_MSC_VER) && _MSC_VER == 1200 +} +#endif +#include +#include +#include +#ifdef HAVE_SYS_UTIME_H +# include +#else +# include +#endif +#include +#include +#if defined __MINGW32__ +# include +#else +# if !defined(_INTPTR_T_DEFINED) +# ifdef _WIN64 +typedef __int64 intptr_t; +# else +typedef int intptr_t; +# endif +# define _INTPTR_T_DEFINED +# endif +# if !defined(INTPTR_MAX) +# ifdef _WIN64 +# define INTPTR_MAX 9223372036854775807I64 +# else +# define INTPTR_MAX 2147483647 +# endif +# define INTPTR_MIN (-INTPTR_MAX-1) +# endif +# if !defined(_UINTPTR_T_DEFINED) +# ifdef _WIN64 +typedef unsigned __int64 uintptr_t; +# else +typedef unsigned int uintptr_t; +# endif +# define _UINTPTR_T_DEFINED +# endif +# if !defined(UINTPTR_MAX) +# ifdef _WIN64 +# define UINTPTR_MAX 18446744073709551615UI64 +# else +# define UINTPTR_MAX 4294967295U +# endif +# endif +#endif +#ifndef __MINGW32__ +# define mode_t int +#endif +#ifdef HAVE_UNISTD_H +# include +#endif + +#define rb_w32_iswinnt() TRUE +#define rb_w32_iswin95() FALSE + +#define WNOHANG -1 + +#define O_SHARE_DELETE 0x20000000 /* for rb_w32_open(), rb_w32_wopen() */ + +typedef int clockid_t; +#define CLOCK_REALTIME 0 +#define CLOCK_MONOTONIC 1 + +#undef utime +#undef lseek +#undef stat +#undef fstat +#ifdef RUBY_EXPORT +#define utime(_p, _t) rb_w32_uutime(_p, _t) +#undef HAVE_UTIMES +#define HAVE_UTIMES 1 +#define utimes(_p, _t) rb_w32_uutimes(_p, _t) +#undef HAVE_UTIMENSAT +#define HAVE_UTIMENSAT 1 +#define AT_FDCWD -100 +#define utimensat(_d, _p, _t, _f) rb_w32_uutimensat(_d, _p, _t, _f) +#define lseek(_f, _o, _w) rb_w32_lseek(_f, _o, _w) + +#define pipe(p) rb_w32_pipe(p) +#define open rb_w32_uopen +#define close(h) rb_w32_close(h) +#define fclose(f) rb_w32_fclose(f) +#define read(f, b, s) rb_w32_read(f, b, s) +#define write(f, b, s) rb_w32_write(f, b, s) +#define getpid() rb_w32_getpid() +#undef HAVE_GETPPID +#define HAVE_GETPPID 1 +#define getppid() rb_w32_getppid() +#define sleep(x) rb_w32_Sleep((x)*1000) +#define Sleep(msec) (void)rb_w32_Sleep(msec) + +#undef HAVE_EXECV +#define HAVE_EXECV 1 +#undef execv +#define execv(path,argv) rb_w32_uaspawn(P_OVERLAY,path,argv) +#undef isatty +#define isatty(h) rb_w32_isatty(h) + +#undef mkdir +#define mkdir(p, m) rb_w32_umkdir(p, m) +#undef rmdir +#define rmdir(p) rb_w32_urmdir(p) +#undef unlink +#define unlink(p) rb_w32_uunlink(p) +#endif /* RUBY_EXPORT */ + +/* same with stati64 except the size of st_ino and nanosecond timestamps */ +struct stati128 { + _dev_t st_dev; + unsigned __int64 st_ino; + __int64 st_inohigh; + unsigned short st_mode; + short st_nlink; + short st_uid; + short st_gid; + _dev_t st_rdev; + __int64 st_size; + __time64_t st_atime; + long st_atimensec; + __time64_t st_mtime; + long st_mtimensec; + __time64_t st_ctime; + long st_ctimensec; +}; + +#define stat stati128 +#undef SIZEOF_STRUCT_STAT_ST_INO +#define SIZEOF_STRUCT_STAT_ST_INO sizeof(unsigned __int64) +#define HAVE_STRUCT_STAT_ST_INOHIGH +#define HAVE_STRUCT_STAT_ST_ATIMENSEC +#define HAVE_STRUCT_STAT_ST_MTIMENSEC +#define HAVE_STRUCT_STAT_ST_CTIMENSEC +#define fstat(fd,st) rb_w32_fstati128(fd,st) +#define stati128(path, st) rb_w32_ustati128(path,st) +#define lstat(path,st) rb_w32_ulstati128(path,st) +#define access(path,mode) rb_w32_uaccess(path,mode) + +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#define fsync _commit + +struct timezone; + +#ifdef __MINGW32__ +#undef isascii +#define isascii __isascii +#endif + +struct iovec { + void *iov_base; + size_t iov_len; +}; +struct msghdr { + void *msg_name; + int msg_namelen; + struct iovec *msg_iov; + int msg_iovlen; + void *msg_control; + int msg_controllen; + int msg_flags; +}; + +/* for getifaddrs() and others */ +struct ifaddrs { + struct ifaddrs *ifa_next; + char *ifa_name; + u_int ifa_flags; + struct sockaddr *ifa_addr; + struct sockaddr *ifa_netmask; + struct sockaddr *ifa_broadaddr; + struct sockaddr *ifa_dstaddr; + void *ifa_data; +}; +#ifdef IF_NAMESIZE +#define IFNAMSIZ IF_NAMESIZE +#else +#define IFNAMSIZ 256 +#endif +#ifdef IFF_POINTTOPOINT +#define IFF_POINTOPOINT IFF_POINTTOPOINT +#endif + +extern void rb_w32_sysinit(int *, char ***); +extern DWORD rb_w32_osid(void); +extern int flock(int fd, int oper); +extern int rb_w32_io_cancelable_p(int); +extern int rb_w32_is_socket(int); +extern int WSAAPI rb_w32_accept(int, struct sockaddr *, int *); +extern int WSAAPI rb_w32_bind(int, const struct sockaddr *, int); +extern int WSAAPI rb_w32_connect(int, const struct sockaddr *, int); +extern void rb_w32_fdset(int, fd_set*); +extern void rb_w32_fdclr(int, fd_set*); +extern int rb_w32_fdisset(int, fd_set*); +extern int WSAAPI rb_w32_select(int, fd_set *, fd_set *, fd_set *, struct timeval *); +extern int WSAAPI rb_w32_getpeername(int, struct sockaddr *, int *); +extern int WSAAPI rb_w32_getsockname(int, struct sockaddr *, int *); +extern int WSAAPI rb_w32_getsockopt(int, int, int, char *, int *); +extern int WSAAPI rb_w32_ioctlsocket(int, long, u_long *); +extern int WSAAPI rb_w32_listen(int, int); +extern int WSAAPI rb_w32_recv(int, char *, int, int); +extern int WSAAPI rb_w32_recvfrom(int, char *, int, int, struct sockaddr *, int *); +extern int WSAAPI rb_w32_send(int, const char *, int, int); +extern int WSAAPI rb_w32_sendto(int, const char *, int, int, const struct sockaddr *, int); +extern int recvmsg(int, struct msghdr *, int); +extern int sendmsg(int, const struct msghdr *, int); +extern int WSAAPI rb_w32_setsockopt(int, int, int, const char *, int); +extern int WSAAPI rb_w32_shutdown(int, int); +extern int WSAAPI rb_w32_socket(int, int, int); +extern SOCKET rb_w32_get_osfhandle(int); +extern struct hostent *WSAAPI rb_w32_gethostbyaddr(const char *, int, int); +extern struct hostent *WSAAPI rb_w32_gethostbyname(const char *); +extern int WSAAPI rb_w32_gethostname(char *, int); +extern struct protoent *WSAAPI rb_w32_getprotobyname(const char *); +extern struct protoent *WSAAPI rb_w32_getprotobynumber(int); +extern struct servent *WSAAPI rb_w32_getservbyname(const char *, const char *); +extern struct servent *WSAAPI rb_w32_getservbyport(int, const char *); +extern int socketpair(int, int, int, int *); +extern int getifaddrs(struct ifaddrs **); +extern void freeifaddrs(struct ifaddrs *); +extern char * rb_w32_ugetcwd(char *, int); +extern char * rb_w32_ugetenv(const char *); +extern int rb_w32_urename(const char *, const char *); +extern char **rb_w32_get_environ(void); +extern void rb_w32_free_environ(char **); +extern int rb_w32_map_errno(DWORD); +extern const char *WSAAPI rb_w32_inet_ntop(int,const void *,char *,size_t); +extern int WSAAPI rb_w32_inet_pton(int,const char *,void *); +extern DWORD rb_w32_osver(void); + +extern int rb_w32_uchown(const char *, int, int); +extern int rb_w32_ulink(const char *, const char *); +extern ssize_t rb_w32_ureadlink(const char *, char *, size_t); +extern int rb_w32_usymlink(const char *src, const char *link); +extern int gettimeofday(struct timeval *, struct timezone *); +extern int clock_gettime(clockid_t, struct timespec *); +extern int clock_getres(clockid_t, struct timespec *); +extern rb_pid_t waitpid(rb_pid_t, int *, int); +extern rb_pid_t wait(int *); +extern rb_pid_t rb_w32_uspawn(int, const char *, const char*); +extern rb_pid_t rb_w32_uaspawn(int, const char *, char *const *); +extern rb_pid_t rb_w32_uaspawn_flags(int, const char *, char *const *, DWORD); +#undef HAVE_KILL +#define HAVE_KILL 1 +extern int kill(rb_pid_t, int); +extern int fcntl(int, int, ...); +extern int rb_w32_set_nonblock(int); +extern rb_pid_t rb_w32_getpid(void); +extern rb_pid_t rb_w32_getppid(void); +extern int rb_w32_isatty(int); +extern int rb_w32_uchdir(const char *); +extern int rb_w32_umkdir(const char *, int); +extern int rb_w32_urmdir(const char *); +extern int rb_w32_uunlink(const char *); +extern int rb_w32_uchmod(const char *, int); +extern int rb_w32_ustati128(const char *, struct stati128 *); +extern int rb_w32_ulstati128(const char *, struct stati128 *); +extern int rb_w32_uaccess(const char *, int); +extern char rb_w32_fd_is_text(int); +extern int rb_w32_fstati128(int, struct stati128 *); +extern int rb_w32_dup2(int, int); + +#include + +#if defined _MSC_VER && _MSC_VER >= 1800 && defined INFINITY +#pragma warning(push) +#pragma warning(disable:4756) +static inline float +rb_infinity_float(void) +{ + return INFINITY; +} +#pragma warning(pop) +#undef INFINITY +#define INFINITY rb_infinity_float() +#endif + +#if !defined __MINGW32__ || defined __NO_ISOCEXT +#ifndef copysign +#define copysign(a, b) _copysign(a, b) +#endif +static inline double +scalb(double a, long b) +{ + return _scalb(a, b); +} +#endif + +#if !defined S_IFIFO && defined _S_IFIFO +#define S_IFIFO _S_IFIFO +#endif + +#if !defined S_IRUSR && !defined __MINGW32__ +#define S_IRUSR 0400 +#endif +#ifndef S_IRGRP +#define S_IRGRP 0040 +#endif +#ifndef S_IROTH +#define S_IROTH 0004 +#endif + +#if !defined S_IWUSR && !defined __MINGW32__ +#define S_IWUSR 0200 +#endif +#ifndef S_IWGRP +#define S_IWGRP 0020 +#endif +#ifndef S_IWOTH +#define S_IWOTH 0002 +#endif + +#if !defined S_IXUSR && !defined __MINGW32__ +#define S_IXUSR 0100 +#endif +#ifndef S_IXGRP +#define S_IXGRP 0010 +#endif +#ifndef S_IXOTH +#define S_IXOTH 0001 +#endif + +#define S_IFLNK 0xa000 +#define S_IFSOCK 0xc000 + +/* + * define this so we can do inplace editing + */ + +#define SUFFIX + +extern int rb_w32_ftruncate(int fd, rb_off_t length); +extern int rb_w32_truncate(const char *path, rb_off_t length); +extern int rb_w32_utruncate(const char *path, rb_off_t length); + +#undef HAVE_FTRUNCATE +#define HAVE_FTRUNCATE 1 +#if defined HAVE_FTRUNCATE64 +#define ftruncate ftruncate64 +#else +#define ftruncate rb_w32_ftruncate +#endif + +#undef HAVE_TRUNCATE +#define HAVE_TRUNCATE 1 +#define truncate rb_w32_utruncate + +#if defined(_MSC_VER) && _MSC_VER >= 1400 && _MSC_VER < 1800 +#define strtoll _strtoi64 +#define strtoull _strtoui64 +#endif + +/* + * stubs + */ +extern int ioctl (int, int, ...); +extern rb_uid_t getuid (void); +extern rb_uid_t geteuid (void); +extern rb_gid_t getgid (void); +extern rb_gid_t getegid (void); +extern int setuid (rb_uid_t); +extern int setgid (rb_gid_t); + +extern char *rb_w32_strerror(int); + +#ifdef RUBY_EXPORT +#define strerror(e) rb_w32_strerror(e) +#endif + +#define PIPE_BUF 1024 + +#define LOCK_SH 1 +#define LOCK_EX 2 +#define LOCK_NB 4 +#define LOCK_UN 8 + + +#ifndef SIGINT +#define SIGINT 2 +#endif +#ifndef SIGKILL +#define SIGKILL 9 +#endif + + +/* #undef va_start */ +/* #undef va_end */ + +/* winsock error map */ +#include + +#ifndef EWOULDBLOCK +# define EWOULDBLOCK WSAEWOULDBLOCK +#endif +#ifndef EINPROGRESS +# define EINPROGRESS WSAEINPROGRESS +#endif +#ifndef EALREADY +# define EALREADY WSAEALREADY +#endif +#ifndef ENOTSOCK +# define ENOTSOCK WSAENOTSOCK +#endif +#ifndef EDESTADDRREQ +# define EDESTADDRREQ WSAEDESTADDRREQ +#endif +#ifndef EMSGSIZE +# define EMSGSIZE WSAEMSGSIZE +#endif +#ifndef EPROTOTYPE +# define EPROTOTYPE WSAEPROTOTYPE +#endif +#ifndef ENOPROTOOPT +# define ENOPROTOOPT WSAENOPROTOOPT +#endif +#ifndef EPROTONOSUPPORT +# define EPROTONOSUPPORT WSAEPROTONOSUPPORT +#endif +#ifndef ESOCKTNOSUPPORT +# define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT +#endif +#ifndef EOPNOTSUPP +# define EOPNOTSUPP WSAEOPNOTSUPP +#endif +#ifndef EPFNOSUPPORT +# define EPFNOSUPPORT WSAEPFNOSUPPORT +#endif +#ifndef EAFNOSUPPORT +# define EAFNOSUPPORT WSAEAFNOSUPPORT +#endif +#ifndef EADDRINUSE +# define EADDRINUSE WSAEADDRINUSE +#endif +#ifndef EADDRNOTAVAIL +# define EADDRNOTAVAIL WSAEADDRNOTAVAIL +#endif +#ifndef ENETDOWN +# define ENETDOWN WSAENETDOWN +#endif +#ifndef ENETUNREACH +# define ENETUNREACH WSAENETUNREACH +#endif +#ifndef ENETRESET +# define ENETRESET WSAENETRESET +#endif +#ifndef ECONNABORTED +# define ECONNABORTED WSAECONNABORTED +#endif +#ifndef ECONNRESET +# define ECONNRESET WSAECONNRESET +#endif +#ifndef ENOBUFS +# define ENOBUFS WSAENOBUFS +#endif +#ifndef EISCONN +# define EISCONN WSAEISCONN +#endif +#ifndef ENOTCONN +# define ENOTCONN WSAENOTCONN +#endif +#ifndef ESHUTDOWN +# define ESHUTDOWN WSAESHUTDOWN +#endif +#ifndef ETOOMANYREFS +# define ETOOMANYREFS WSAETOOMANYREFS +#endif +#ifndef ETIMEDOUT +# define ETIMEDOUT WSAETIMEDOUT +#endif +#ifndef ECONNREFUSED +# define ECONNREFUSED WSAECONNREFUSED +#endif +#ifndef ELOOP +# define ELOOP WSAELOOP +#endif +/*#define ENAMETOOLONG WSAENAMETOOLONG*/ +#ifndef EHOSTDOWN +# define EHOSTDOWN WSAEHOSTDOWN +#endif +#ifndef EHOSTUNREACH +# define EHOSTUNREACH WSAEHOSTUNREACH +#endif +/*#define ENOTEMPTY WSAENOTEMPTY*/ +#ifndef EPROCLIM +# define EPROCLIM WSAEPROCLIM +#endif +#ifndef EUSERS +# define EUSERS WSAEUSERS +#endif +#ifndef EDQUOT +# define EDQUOT WSAEDQUOT +#endif +#ifndef ESTALE +# define ESTALE WSAESTALE +#endif +#ifndef EREMOTE +# define EREMOTE WSAEREMOTE +#endif + +#define F_DUPFD 0 +#define F_GETFD 1 +#define F_SETFD 2 +#if 0 +#define F_GETFL 3 +#endif +#define F_SETFL 4 +#define F_DUPFD_CLOEXEC 67 +#define FD_CLOEXEC 1 /* F_GETFD, F_SETFD */ +#define O_NONBLOCK 1 + +#undef FD_SET +#define FD_SET(fd, set) do {\ + unsigned int i;\ + SOCKET s = _get_osfhandle(fd);\ +\ + for (i = 0; i < (set)->fd_count; i++) {\ + if ((set)->fd_array[i] == s) {\ + break;\ + }\ + }\ + if (i == (set)->fd_count) {\ + if ((set)->fd_count < FD_SETSIZE) {\ + (set)->fd_array[i] = s;\ + (set)->fd_count++;\ + }\ + }\ +} while(0) + +#undef FD_CLR +#define FD_CLR(f, s) rb_w32_fdclr(f, s) + +#undef FD_ISSET +#define FD_ISSET(f, s) rb_w32_fdisset(f, s) + +#ifdef RUBY_EXPORT +#undef inet_ntop +#define inet_ntop(f,a,n,l) rb_w32_inet_ntop(f,a,n,l) + +#undef inet_pton +#define inet_pton(f,s,d) rb_w32_inet_pton(f,s,d) + +#undef accept +#define accept(s, a, l) rb_w32_accept(s, a, l) + +#undef bind +#define bind(s, a, l) rb_w32_bind(s, a, l) + +#undef connect +#define connect(s, a, l) rb_w32_connect(s, a, l) + +#undef select +#define select(n, r, w, e, t) rb_w32_select(n, r, w, e, t) + +#undef getpeername +#define getpeername(s, a, l) rb_w32_getpeername(s, a, l) + +#undef getsockname +#define getsockname(s, a, l) rb_w32_getsockname(s, a, l) + +#undef getsockopt +#define getsockopt(s, v, n, o, l) rb_w32_getsockopt(s, v, n, o, l) + +#undef ioctlsocket +#define ioctlsocket(s, c, a) rb_w32_ioctlsocket(s, c, a) + +#undef listen +#define listen(s, b) rb_w32_listen(s, b) + +#undef recv +#define recv(s, b, l, f) rb_w32_recv(s, b, l, f) + +#undef recvfrom +#define recvfrom(s, b, l, f, fr, frl) rb_w32_recvfrom(s, b, l, f, fr, frl) + +#undef send +#define send(s, b, l, f) rb_w32_send(s, b, l, f) + +#undef sendto +#define sendto(s, b, l, f, t, tl) rb_w32_sendto(s, b, l, f, t, tl) + +#undef setsockopt +#define setsockopt(s, v, n, o, l) rb_w32_setsockopt(s, v, n, o, l) + +#undef HAVE_SHUTDOWN +#define HAVE_SHUTDOWN 1 +#undef shutdown +#define shutdown(s, h) rb_w32_shutdown(s, h) + +#undef socket +#define socket(s, t, p) rb_w32_socket(s, t, p) + +#undef gethostbyaddr +#define gethostbyaddr(a, l, t) rb_w32_gethostbyaddr(a, l, t) + +#undef gethostbyname +#define gethostbyname(n) rb_w32_gethostbyname(n) + +#undef gethostname +#define gethostname(n, l) rb_w32_gethostname(n, l) + +#undef getprotobyname +#define getprotobyname(n) rb_w32_getprotobyname(n) + +#undef getprotobynumber +#define getprotobynumber(n) rb_w32_getprotobynumber(n) + +#undef getservbyname +#define getservbyname(n, p) rb_w32_getservbyname(n, p) + +#undef getservbyport +#define getservbyport(p, pr) rb_w32_getservbyport(p, pr) + +#undef get_osfhandle +#define get_osfhandle(h) rb_w32_get_osfhandle(h) + +#undef getcwd +#define getcwd(b, s) rb_w32_ugetcwd(b, s) + +#undef getenv +#define getenv(n) rb_w32_ugetenv(n) + +#undef rename +#define rename(o, n) rb_w32_urename(o, n) + +#undef times +#define times(t) rb_w32_times(t) + +#undef dup2 +#define dup2(o, n) rb_w32_dup2(o, n) +#endif + +struct tms { + long tms_utime; + long tms_stime; + long tms_cutime; + long tms_cstime; +}; + +int rb_w32_times(struct tms *); + +struct tm *gmtime_r(const time_t *, struct tm *); +struct tm *localtime_r(const time_t *, struct tm *); + +/* thread stuff */ +int rb_w32_sleep(unsigned long msec); +int rb_w32_uopen(const char *, int, ...); +int rb_w32_wopen(const WCHAR *, int, ...); +int rb_w32_close(int); +int rb_w32_fclose(FILE*); +int rb_w32_pipe(int[2]); +ssize_t rb_w32_read(int, void *, size_t); +ssize_t rb_w32_write(int, const void *, size_t); +rb_off_t rb_w32_lseek(int, rb_off_t, int); +int rb_w32_uutime(const char *, const struct utimbuf *); +int rb_w32_uutimes(const char *, const struct timeval *); +int rb_w32_uutimensat(int /* must be AT_FDCWD */, const char *, const struct timespec *, int /* must be 0 */); +long rb_w32_write_console(uintptr_t, int); /* use uintptr_t instead of VALUE because it's not defined yet here */ +int WINAPI rb_w32_Sleep(unsigned long msec); +int rb_w32_wait_events_blocking(HANDLE *events, int num, DWORD timeout); +int rb_w32_time_subtract(struct timeval *rest, const struct timeval *wait); +int rb_w32_wrap_io_handle(HANDLE, int); +int rb_w32_unwrap_io_handle(int); +WCHAR *rb_w32_mbstr_to_wstr(UINT, const char *, int, long *); +char *rb_w32_wstr_to_mbstr(UINT, const WCHAR *, int, long *); + +DEPRECATED_BY(rb_w32_ugetcwd, char *rb_w32_getcwd(char *, int)); +DEPRECATED_BY(rb_w32_ugetenv, char *rb_w32_getenv(const char *)); +DEPRECATED_BY(rb_w32_urename, int rb_w32_rename(const char *, const char *)); +DEPRECATED_BY(rb_w32_uopen, int rb_w32_open(const char *, int, ...)); +DEPRECATED_BY(rb_w32_uchown, int chown(const char *, int, int)); +DEPRECATED_BY(rb_w32_ulink, int link(const char *, const char *)); +DEPRECATED_BY(rb_w32_ureadlink, ssize_t readlink(const char *, char *, size_t)); +DEPRECATED_BY(rb_w32_usymlink, int symlink(const char *src, const char *link)); +DEPRECATED_BY(rb_w32_umkdir, int rb_w32_mkdir(const char *, int)); +DEPRECATED_BY(rb_w32_urmdir, int rb_w32_rmdir(const char *)); +DEPRECATED_BY(rb_w32_uunlink, int rb_w32_unlink(const char *)); +DEPRECATED_BY(rb_w32_uutime, int rb_w32_utime(const char *, const struct utimbuf *)); +DEPRECATED_BY(rb_w32_uutimes, int rb_w32_utimes(const char *, const struct timeval *)); +DEPRECATED_BY(rb_w32_uutimensat, int rb_w32_utimensat(int, const char *, const struct timespec *, int)); +DEPRECATED_BY(rb_w32_ustati128, int rb_w32_stati128(const char *, struct stati128 *)); +DEPRECATED_BY(rb_w32_ulstati128, int rb_w32_lstati128(const char *, struct stati128 *)); +DEPRECATED_BY(rb_w32_uaccess, int rb_w32_access(const char *, int)); +DEPRECATED_BY(rb_w32_uspawn, rb_pid_t rb_w32_spawn(int, const char *, const char*)); +DEPRECATED_BY(rb_w32_uaspawn, rb_pid_t rb_w32_aspawn(int, const char *, char *const *)); +DEPRECATED_BY(rb_w32_uaspawn_flags, rb_pid_t rb_w32_aspawn_flags(int, const char *, char *const *, DWORD)); + +/* +== ***CAUTION*** +Since this function is very dangerous, ((*NEVER*)) +* lock any HANDLEs(i.e. Mutex, Semaphore, CriticalSection and so on) or, +* use anything like rb_thread_call_without_gvl, +in asynchronous_func_t. +*/ +typedef uintptr_t (*asynchronous_func_t)(uintptr_t self, int argc, uintptr_t* argv); +uintptr_t rb_w32_asynchronize(asynchronous_func_t func, uintptr_t self, int argc, uintptr_t* argv, uintptr_t intrval); + +RUBY_SYMBOL_EXPORT_END + +#if (defined(__MINGW64_VERSION_MAJOR) || defined(__MINGW64__)) && !defined(__cplusplus) +#ifdef RUBY_MINGW64_BROKEN_FREXP_MODF +/* License: Ruby's */ +/* get rid of bugs in math.h of mingw */ +#define frexp(_X, _Y) __extension__ ({\ + int intpart_frexp_bug = intpart_frexp_bug;\ + double result_frexp_bug = frexp((_X), &intpart_frexp_bug);\ + *(_Y) = intpart_frexp_bug;\ + result_frexp_bug;\ +}) +/* License: Ruby's */ +#define modf(_X, _Y) __extension__ ({\ + double intpart_modf_bug = intpart_modf_bug;\ + double result_modf_bug = modf((_X), &intpart_modf_bug);\ + *(_Y) = intpart_modf_bug;\ + result_modf_bug;\ +}) +#endif + +#if defined(__MINGW64__) +/* + * Use powl() instead of broken pow() of x86_64-w64-mingw32. + * This workaround will fix test failures in test_bignum.rb, + * test_fixnum.rb and test_float.rb etc. + */ +static inline double +rb_w32_pow(double x, double y) +{ + return (double)powl(x, y); +} +#elif defined(__MINGW64_VERSION_MAJOR) +double rb_w32_pow(double x, double y); +#endif +#define pow rb_w32_pow +#endif + +// mmap tiny emulation +#define MAP_FAILED ((void *)-1) + +#define PROT_READ 0x01 +#define PROT_WRITE 0x02 +#define PROT_EXEC 0x04 + +#define MAP_PRIVATE 0x0002 +#define MAP_ANON 0x1000 +#define MAP_ANONYMOUS MAP_ANON + +extern void *rb_w32_mmap(void *, size_t, int, int, int, rb_off_t); +extern int rb_w32_munmap(void *, size_t); +extern int rb_w32_mprotect(void *, size_t, int); + +#define mmap(a, l, p, f, d, o) rb_w32_mmap(a, l, p, f, d, o) +#define munmap(a, l) rb_w32_munmap(a, l) +#define mprotect(a, l, prot) rb_w32_mprotect(a, l, prot) + +#if defined(__cplusplus) +#if 0 +{ /* satisfy cc-mode */ +#endif +} /* extern "C" { */ +#endif + +#endif /* RUBY_WIN32_H */ diff --git a/ThirdParty/lib/mac/3.2/Ruby.framework/Resources b/ThirdParty/lib/mac/3.2/Ruby.framework/Resources new file mode 100644 index 0000000..953ee36 --- /dev/null +++ b/ThirdParty/lib/mac/3.2/Ruby.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/ThirdParty/lib/mac/3.2/Ruby.framework/Ruby b/ThirdParty/lib/mac/3.2/Ruby.framework/Ruby new file mode 100644 index 0000000..2c30ee9 --- /dev/null +++ b/ThirdParty/lib/mac/3.2/Ruby.framework/Ruby @@ -0,0 +1 @@ +Versions/Current/Ruby \ No newline at end of file diff --git a/ThirdParty/lib/mac/3.2/Ruby.framework/Versions/3.2.2/Resources/Info.plist b/ThirdParty/lib/mac/3.2/Ruby.framework/Versions/3.2.2/Resources/Info.plist new file mode 100644 index 0000000..8050998 --- /dev/null +++ b/ThirdParty/lib/mac/3.2/Ruby.framework/Versions/3.2.2/Resources/Info.plist @@ -0,0 +1,16 @@ + + + + + CFBundleExecutable + Ruby + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Ruby + CFBundlePackageType + FMWK + CFBundleSignature + ???? + + diff --git a/ThirdParty/lib/mac/3.2/Ruby.framework/Versions/3.2.2/Ruby b/ThirdParty/lib/mac/3.2/Ruby.framework/Versions/3.2.2/Ruby new file mode 100644 index 0000000000000000000000000000000000000000..15fb12c55e2afe5ddd33a98303ae601acf9de43a GIT binary patch literal 19027896 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%0DADc3N9@9sqe# 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%0A+gDuIEx>W2uNYfz$Y+See(AI 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%0DrkiY;u`) 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

J%bXXv3)Wd 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 z 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 om%qC}{}SMv;SrviA? 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

NVTaML%la9UJ6=QG_U+fccKbAM)lG*JjI!+; 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 z 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 z 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

m-8!}1S2g?8=+h_K^Qbq*{3?j^-m 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

xcWeMJ)jlt}vuC;%NQpa68JfCA8=!cPz& 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

5t*?_%Zh4@kc*<>>KbnN<|khWzz${s6Z2P1tOJ; z^Vnqk;zV{1<%}1aBD0sTs+QwWGwGeT-p;?1|4BaX#?SJ;1-=1!(QhfHD_mIc_m?t? zve@S*)1_cboz;`fp)4o3#GweJy!_!~DG7}5p-kq|_rc|n z%L>LJUdfIZ1IpYyeEZw7M6+Vma%sz_wPk)blV+5Ckg)J;;lTV?WxxEoEVE3+Dv?MO zerqIBei=Awh%1Z;r1Uug8oyE`>qKcUVu2KS6oI5}+ASbE!4BTz?wNiV8Dcu_5BxXf8mer&P6;G=tNa^ z2!%lvb65qgR8>{|^6M&5tg3Hc!NIMRN&LZ9tT-JWFUH4${dLJVzbbjvBCxD-$zqpG zgsY8UB641wWGy;c7VrlA6>Y%dK@`elB+9%?9IIziB7#a_^M0FXmY<76mJ;tF!4^M` z@4xTB<$W~seRsbr`1RVIuc*uy&PG0;(eM0E^B=s(Cx{=RB%X$6)U& zGo&A}QZfomh^*a;SOpmlPNZEgDn+0xr5}aM>6KouDkFie{HC%}Mj{!>sCbGfRt%1> z5{c`M0Q}%Ru{Rm@{#2@t0$P%Ah}wWJD$Zyv9%xxKoMo)6$kNJBBb<`Ova$%NVw>gk z!r44O85qtWF5VK=4&oVMJwK7{An*{8w1ERAL@#7pl(d0WqM{is^%GJ0i&6(qrT+fR zII!l2Q!UF2Wr@iti^0Knp{%TUHW|t21kG5xBZ+$a+K(v#d;PJVK$RaxF$UQ z^x(aOAY%U^GJDbK4$_CXR)-e2otp3{ zdA}qATA-SGr4pGC7NWmOaMGWKp3jTLiVj0}XD;UR(vOS-kWU9Q?^;nf4$kt5$*K0e zNKH;;t*V_~r7kf@S;!%pO;^4Z$wC}nB$E(LL4+?Ee2DZy3U;2>K8gqOk<8>H1nSWT zk0O+Ml;Gr}N3eNR+=lAvL?W{S8Dre1pH+YUMRm0Y2Mnd_0lDQOVnF~q+WjZNpjLs5sT9KHGawkjWpO#Y%=(<9!2t4kLLuG2aE8ncl zsJ7GWN-ijz*PdG+-Wi1Hzjez3dZ4W#=4Od`8tqF93cvq3ZYgipNi+g7dA#AlD}VEDUWkv zI@53~GQM#eB2Uc0OI}QtJJdBFDOdj8d>)~UFya##N_T&rDiIf7_}L^mjLC`Xb(syR ztc+NAqvdKUBft*``GP{b>0#23WFbx_LRk_4EsHp)ooQQr__{OZ^DTfG?L1mfHX#)5!H?#IxF zn&1AmKrjTjg)ZwYp9ce4*}V)@#$w3pMOzNfO5sXsPNKMk$t{Ao*TKZ;%iq~Sy7St zauI{d%0~{RDl26|DuqjBG9_NGz^T|H6#Xt92O{@eRJR-#iAuQ+{)bnKXe86wxYLG5 z5redb&Go`fL@tIH2TvYfzDFKhWRMmk$`JB=!TKEOgWMNiGSBx|{|wT`nw>&io+*g+ z8kNeEIUqR5Xtx(AwiC!qy1Hp!Hl6t99$%zB(-oM;LlKQ+L4HzX!HYs1-w3uOqd*V7 z^5XcLTpFPyzM$-BaEqeoL!K{tl>e||PB7R+aSE^+k%YAmy9V8mT6g8po{qF8^XS$h+6k)P$h$pj1rGD}0 zk5gCh#}aEw0hX5sv73a89;D*m_mN=Hd9=}F=A%{=%4N}PKB#&4z{$gd2M^MQ@P}ja zATe4I-qMo?VmFhFx3rh2Vv^$#1+^=$xJdo+lB<`afN2r(IWWtFso{vk%V0)rG zr<)dRXA#O(J*@JY_2bv8o>fJb``xPd-mmf?Cys5^r=L~1R#Z8eNH|CWIi61!GrkdZi7I-+Sy?JiZ65T`yeWbDT%X<*0fVtKq>e_dLg} z=A<_SOtAru$0BR>Vg~VcBPUNd0B#(lY&%v?T=P`FVvjU&NIlwD)mG7ss%Ouu3P!R( zyJO|{k(w{?ynk~>b~5g=Kmv+%GqE_a;TL?V@Lj05XB59DFDGtX3Q_F2`oMuyIV0#@ zIfl@8aq|pZlSFUMSUtGWm!$JbJ`Hx{&ofzsICt z93DOT`kO}ttal>TSg$}hU&GHpQ1x6IO{VOvD45IdTkm!=`AmM4){W$|kDmSP+0Q?I z_Q@}v#XO!l7oteBDiSx$iFHP=3c8R=!yoz5=|rM%$# z4Qb}zRU4BLV>Q+brO$}HaLJ@HS3h2s4o1o$vKB6TkRrVwhB$MO8OBGh0ZH8L-G?He z<@s3;MEZ~;zv{9`Ip>2os7>1d+DBot*Xwf0XWcUl8NdA7^2BcXwMBs#`BiULqfnXH zfWris^jpW0onsRJJFJQ-Ntg?Nb}9uC&SaGOty`tCoa0-<<`BMokNqLBaK*Cady%#w zN&CDcmCA)bq}2;St`WfCPtLRm(X6emK&4=Qs@Ic4{I zAn9a2jqZPn<$ua#Jbn6$PoIAF`O`0+ChA?>1~FMxsYCg8Rni70)>RpaKp?8pj1~fs ziMnNzY-TF%qy|MGU5=Fn%2)T|sh@+VKY1FB!_%y8J&h15Z9^J&`v8ea%9N;9)ru*D`a+)fm*``)8W<)LUZU#t+Z zNHP<-k7cKk+g6biF1g${EVFtJY}S#piF_+$zjL-3kxZ4!CY5{olC~k~M5YfJfqe1v zk6$=-eDTGXFJglwe)0Emc=Gm>l*f}oppAzivz~?95pA7{tWF%U3KJ?p;^d&))fg`~ z-zU|vU;a#f*y?_qbMizU$T#C|FFZb!#p@rw8?ssGqq4$&kV5%Q+1=cr+v~##yTDr% z{AZ>Uc_3@>ImhaHbf^%KNZTM1CD{kRUq}w=6&@8RhU6b4{ZJ7}x7(f>o17x6m-sM+ z^7P=v15wQfwBZ45cu)}Rxi*Mic(4|vW-ni&;*rI0AYHic3FL+myLHlD+#^xNxeG~M zu;=>AuN*#9I>pFr4~0WMDjbM6e`Rb|UffCQ2BOVhU%GVzS(GdG<@`YSV-=h*)W|6M zVwRd3!MPelTk2VAzWhpRa$?PjBHmYTQB9{*7PNxQYHysM%*Q~&HS+!A{#q10fHZeJMm^b4i96vfA}z# zhld4sKg?Q-I3M+jO^xCMv9&e5UusBvRZxr$uRuAs5cH@JUS!{P(I9;L=(mp^-JOd> zsge!Ht_e;a3r3OM#x?gMt!y`DmDikf7jH8yWk92~UWuHe zHpq_=+%>(Kz#BhO9Ldz`2|^WVcPvpfpgeWvB4Lz+C78@|S8f;ITWGtf@^UN!#sNnx z>xX4U>KAb(O%Qw?c$4FMLB&6+RT>%Z#CCI>!JP?>rRu)*ZXENnGCz|PCzVk+Dn7OB zh;;dXS-EGcYh=9qKG!l-gf{rxpd=vD!oiGZ&*2VkFx-k(BHFTm!9bSy^$Su4)L&o|i{$yfy(F`(5F8VGl!YVdyM`aM~!A{zMNakF)NFpae znKz=5^mPZ)2C2w#K?rj#{4IF--rCGtiQw;g$!JN^+7s~ zpFVI7)B|tx9%SuivKqxWdYMG<5_c-DA8;+fKbNyM@Je&6VkEtYj#Y>QjHsGLDp3g# zIIn`KNl4)uO=StJ9pN^ zob9e~wzuNj`+Zs&Mu(B4q#|n}qaaaE0#Xj6N=v`-k(#$S#WY6(E6q{xo+6CM18Mu{ zRHvi>g0y{fCQ^)ZAG@DZD^C(SMRVbkYEgvZLlhrf(1;2@jPA!jzNkq2!I(pA_2Ts` zXKpBeM4|!?A)=0yGPB}!f0zTrwGvT0{$bS$wGQ2UNsTogf3Z=i}QG zh!T@2;R&9(Tb;aXH$^!)O|`)E%es38YCT95v>~#ZMJVTen1bx$qtvg@A4W z1A_GM8n08{hlwm!kgau(oS^%LAsz*A>BBfql@RSi@o3{UwQLir3c$YVzPKPBgQ}|U z$v+TTq*?duIcJ4S4+)1%b}>FV=FVKO43%AnirbO#?K9dn|gjcn=ReSVv<0?t2fS`yaUAJu+Lr{Q7}&DA5a4%a#2(C&n3GIpHcfWy>uOQo6^G zQn;7#V<@qf{R63HIhd4_fbc=^&E*&$L_1y5DvkPqxp4*eK&A6aQx1tI_q4j&-|cjh zvqq{jqfi|i9Cy?RPEd6L2Uq7F{%wC1;)4}$eoBY&eLM`++N3QgpmX(#bH+LJIGLG zvnW2f=(G0BhHO0c@rB@hJPJ|NTNpQIdJ$DOrL*Y@gVOtb&7P0@6TP}G?yh=LRhTp{ zfQYJ33e)DVtaTTtejQPGJ#9i9xU;9y`3~Q_E~DVHC~mbn@ucoRZFa{&yz1b4;kFHA z#vxJeC($TAac0vGGA%5q|zq$oPP(;_1kwLGH96J~}VKr&KZT zEb9G1X}lUGyJ#h1O&d`x4y7?VIC&~%H;y<`PNdQ{6xhwYD}RhLIVng+uKic}R3JQu zS7dTtA<)i`i`|DLZ=c$%R3_i_>*eV{q;YCI6_5YIAkDkBh88G&E}M?8+%Tyf@ztf-U}9@$!y4?oJ(R!3u*kA3^%^aJ4F zSLBj3jKmiit5qr!>f7PRLAsIm1u@wzUV>724-lj{9fN``UIhq~&V@7nwW%LfTg&5X zKd3GC>*e;^+HY&`&V|fobYQF0>$?Jos0&j5@Yql3<1fE@j8r{NGQG|PDGc22QH)3) zQoEh;qZ~T;16LeABnc2Q2ma8uS8Xjy@^Z;IJajVo@E(|b=&}A`l;M0R1Mx5`4|ip< zmTBvHskH|B42YSeUOhZ z(&rB{3Z8dM2Ss&*1T!^Jak6vgL?+~HN?}4>vWs!t$&@%E_{VMsXHhTG78L9$N_8U6 zU;q)a%PY}MISa%c%gFBp$$a?jFj1D&=_e;Mx|Rs!7M?T-O@DggD0!%8dMFr)~R!ket6Wt=#t757Cbg$yLx%mQR;awU_L#yHvdLJq%ic{P^| zbLTpWUml&F>np8gleTY7T0!A}HZvRfB1epsq}X8O3wx58&2pb4Esq2uQ)Qm*NTio> zhV-|0YLk-mB=QjFqOuI`4rQhdi5KLY(Wj9}`5KC+(ut?BGZxvJU;pOmw@;HZtXR}d zpwfwT-dFv5qmx}3%a}eVoY^+Sjd+lF#EC=uAR5O9@f@Gan(nZ~XLuM+$hTrDn^(<$y;!dP}h`OKTA83W+z@UAV$CYvzH~c^rlKk1X$s!0#AQGx&=b~^N?z(~>#S@Xt zgPgZk$f2MXRvO`SszfT2P|)b?gJe!TBgY}xYcDA4VX|llqWV+k+Orcm^~1hzF64yI z1fIyKxuZUj>l9~vk~40DZ1Kt@d!5P@YrEauRS81H097SX zRu$zMo_7rTT-2N51$zkq(H*GQ1;Zgq97N*&yHk-ld`v4 zegNREFLu`@jwAOZ-bAxp9mw6{q`0c603<8o9LT*p9}}>D$4kRI8N>Zf61TsTjW6)b zIS(Y#Z|B1JlvchV72^w9^0M#I#sB%V+O1G6Tmfkku4Y{ju~%_fl2Z&B$@qL2(Tw=8 zb2gc~Q$^y=NENE{sEg*~6^C29dYY&}%l84OXM;l4F@=|fc5T##KXGX3{hJ=tPj?RUyoCjb$r-K#}E z9azTM=DXv-VPvw4wCrh_KQTQzJ0W`>2Q?(JkF<>GkmJ%Ltd<`%Lpdd0jegoQi?ytF z%VKwo*xa7xlG2R#eQS$;g;ahxhx2W+3|zcTz{sBBz~>*lSi6l$nV-k-rxxX+Uu-E_ z+sj38omsWV?)t)oLT}L5!bk^L2J)xV_}#n-(53Q_{fQ9dp?Fy@s}}LG3oc$vIe<`Z z3+m%+$XbEvtw{Ya5BG5yslY>l7bLM_-lygAQhG?HHIaz-r1UV)0z%%mCC;|em$VJ} zD2IsKp zALuoKm)Bl$K%+Hnchp*=jfc!x&<4T%J|R zyjM1J}K&wTM=)+b~)YR>PK^XGxc39w$Y<@8z( zs|PV9Pnie>N99EaNjN+15A={4t+-Gu4pIEC2r;G6vKmPYL91l*p-d|*d=?`z;b%q89SoIjK)u z`QpP$?|M|az1{A|bH4dir4&dP^&*-_x5(==&P)|iW3nfvq{RQAll(@Q&m9+WxW5-g zKXCR~vgOYGD9&K`-;j>N=CoSA?A@|>EVH|5VkW)~`N$`A?qHrD`G~E5zGwv_YPq-l zd8wi(%F}+&T=-6Z?C$+Ie*VWFdyllB7)9ify%SL(s${iXf>mmO{6Fkh!N1>YBwu{^ zJ^$eFd;Fu7?woOiKRO{iI-(pQj5w6WY+MO|KP|?8L^SXIxm)<53ipqV!}3a*W8o>g z@^|JRo(aIgIjzxWW$x7-$LP;&bao;>l}WxDk%FRIV=-VD zqfz9$NR0|u$138jo_rO9grvm^F8!fDvc34BYoqUrMy-&81PZ?=pX9QbgJb;ne7CTP zIV3FIn^=^iZT$XA=Uo(DCx6|~q3Aj{%KkIdQoO$C0y&5p4ggFxg#lD&|KW+mJ4xkZ z`N=Z=i9g}r`E`HC(bWbyJt}I!5BzygFN$XC2N?X|IAp~26|C-QLv*DepY-e%Hzps; zNTvhH;J9BEaHfwxqUs*^bBd+z`0~g-jS7vW#`e{1NFL(e#8_M~Ywnv2hfG`U+VDbt z*}pOz_*j^@>^bivbBBM%dVsIu&)%54FC2%v&wf{a3^N;Rrilmd%0=gaykZr`C;s36 z{(ptNNSc;;Bm_+B<=5p z=;v7{#5|nMLUUZpXO~^MzdQ1y+}}O&-**wJa&K4n=%Vox%?_1ZP_29eqC0^y88Q$Lnf7a6v_3`%xv<)#9t%t#PV=tk4 zt{H+Dvu3Vo9)Nlwp4B`IjX?4p!zJT%iJo1eW0#EKCHi-X{#}kjjC&K~Mqj^cf*1Y$ zt_eO(@M}UgnvjjARcMXzX3SpBLkrL%By+F~tw5{LS`c>CL5+~ihs+CdbSd+R99<$u zm&nnj;D*d2b9BiZU2Z^|&=#}}?LfQG9whoCeE}0L!GTL~;1d16JcZEv%X8$i4g!;| z8X#ojif3P;e^)IK7;=R?T%jvh=))B{a)r)Zp)*(L`W0hz#TZ>NMpul{6=QV87+npE z{PmW`@^>Y8#duwT30LE}KkfTb?oa!n0ca2!f`%bgLLT%ttV-wU2wLst^I`e0Z;ALY61THpqLFh*#`q2okHugd2c;f&B?lz)Rjl<9g zGzyJD@*@fjmS`?Gs{bqd$SP(>WaeMkQxCNVUPwSut-V03yx981JCv+Z!jW_7-60{M7Ewe$` z`VvAm+tKgNp-4_AgRrL+9&JzuB=6gy4d|5n=HS}|@j1A93-;fhcSC{;!ml9+J9t(X zuRU!LSTQ*hgbO@#k!LKf1mV&_5N`ECeb7J zTnFJ9?=N@-$3yg2wRO?1KByOx_gl~|bVl2_W|!A<+Ir44=R;6GGziTHw-=1n1><(X zSY0qq7cCGxF6i$CeZN3wo9IUqV}#C!OAlpbJ%iBf19BesFi+SK(wucaqb+3 z&KL(i@8WxOKkNcSyW!bGyL#H8F2)63i(tf}jL$m6Gqwh4H)FHA2r-s>JM{gKzQg|l z-e6V;W`#Emf#SKU^_X$!fVu-UxDzOFR}GIqi_lr1z(F;!8>mUHom>sn=4_z0<{`e@ z;l7h&>Hd^_t9ocP1raHN{lkx9lE;^C*3qI@O`!4S7LLR%gu8XnjV$Ql5yB^;6Fs41o zQV)E4_`HX)?^%T|A^7(kLCi(ZGQ@oJAa6a$V9zduJoYd@J@A^CfX10G=6Ml5i(IqB z94#ReTg=TiaJ16ivt%vyhjOU;69ll|Ry$P{9;Y}0s*v=e^Ofw(&9ICC4 z`D5-zmYKJ0XcJn8HlQu$Z-II1V$Qg3w--7M)LtF*lK0ol)edvj2(@9WC!ys)V?Xua z473VizXx}rJ!l^~2sE}?k6i_Nd>gt6^aQUn%=^qd#P^HmfnJ998gjBBa)ADy3J#!G zX9Lh0y2V_cGpFavkj(o{aEs4+i(S3N|GPzYZ!eJzZ1F9&`1TSRx!8w}A>`%){k=GV zuJ{fe6t&C?Y`qSDEbwkV%K4aL) zeVxcfr^p4@b#YHGe0#y3-cAVF=>?a1nU`Lk*^3W_$p0?=*yGw0o_R_e&XBb;WRCF*i8;a>o^vyd9DxI^oe;9oid?iI zC+Mzf8wDT0ijg%492h~KMv$Y4edqw0YJ;wzLud~=0xRZ_GjL?<0-1vM-V_A3?2SP) z5LmLuGxmlcuHEA~dpviq8yrEl+K{!jDP#(n**FXI9x`-r8fbhLeccXS1%~*^5DOS$ z4}dJ^mw};wrgZ|E2~68Iv=3beW^5xcb1xyjpW~jT zo4}4@vrdt(^VQ%MKj#)7=N3Qc7XRfI|NRy}>Xta_79ZypAL|zX=NA9x_EO~U96IH1 zYy^JLEk5@xe$?&Ng2TV682^adZm(wfeur1^j{e=^7u^z@-QsWEUNQeo$XJueGV;^} z&NMTB&Bz4)eb@>v5l4jJZrF+pwSz(J{N2vqU~brn{B|K@UEJ4;y!9euy~siDH3YWw ziCls+eaJy@6sqZDPq8B{B z7d-9d*%Pz@`w>pi#tA;3g3lCsF~zl0^koWJo#OeEv}FqYnL-{XdBy_rzsP6Hw09YO zS*Bmhw0W7nEF-JS$n!GyFT;0v0D|u_W3k2cTayrDwnf{w8Mkf5Z5zJ3v_UvO9_qq0jHlFf&&h_WC?Hs-rj59G(NK77H@w}^fh|jJVj~n#uhU;(8 zy&KwdL;r8!al;thfVbd?0#8(XBZTa?qX+F^Y#X}Nj?T29L+ygym(VqYU2Q|3+6BY0 z$L;7HGOCF8R6F?IF1(u2MXnn}uLi;G5%g^Wy_-U(7)!+%D#lVV&T48B;+a#^5YL<9 z-l>*ejE~g-w6z3Y}&zy_O8Gz^SZ*{tLXpkNnrMxA$aU_@6jT(8<=D8;~b2@$1~UP zy5_T+dWdVW!R7`TIhhM=eIGOrtwYPuLSV5$wxt>B1XK2*ZD#xC;Yrz@8pd;Q3ZeUNZu!-03 zy}ITV?79YU{_;sO&UFcF5n9{{PUEJG+j`X0bJ$&DTj`Rt(969_W8R6}3Ki~Ip zZ9i@4M?d@E*~k6;jAuW*`vsT4mwt4$5B=)n`TgizKRVurF7|;9{pfffZSDt4CTQz4 zI5q{3Dez~C{!Pt6v}+3eor2dQ7_rm_q2o(n-4f4QqK)_`;WE!(k@vKHnf|WOrxn_; z!t+#K| zaXoSt?$geF+PBXb?9s+D_N1+xUtc;5j=bbtluts;k|&|TFIPIZ6@ z9o&aqQXODT2hZvtcIW_C+QE%>@S+|3>i|zWz?=?ZkPdL7owjt0^9sIofEOJ+w*#E& z086lIsspSWSemDX?#feohOn(vE4`KSi6TY4fyT zDs4jk)D$?li66DK4AIst?%C!0UB={q&kq=b1D?U0s{`7701h+vYF}^^zWeYwnCF%8 zJD^<$+>5NJ1IBru@jVcX#zq{_t^+Xo06zOXWB-Ep%-?}L2OG1`m>tmW1NwBpSRR0} z^+OQ;R((H&PgPH>)(Y0PZb5>_tq}RTHvIh#FqSdb%#mguH1nmq`MjHWpc`MU8+`6w z0-wS1Vf?mXt{WZ)tHJRJ!E53K?3AA2ni;OazUw7;E(v}UXRPq7HDZJ{e7y}`5BMIx zNndwD;PXo`w*DMig65$;Xbu9C>(`(|2tThLY;WP37JNGVSkn$}w}a#4OHKP0gx^RE zXpl{VY#C(9kbgDAJf{5=!uM+j+rc-}jx8ALhS0}Wc+9PW|Fq?X&u#`G!TKZU6avrd zkHPpBh|h;k0z3Q?e4h*~d0RUw{^SMk8y)`rIFdg*Rv*~$v%pTQ26n0+65J;)I^Tk} zgIn^kx7UK{VgtZ^^!JwM-rj)c=<_YH{OvV9BfiM(4fov;C*hCWUdz4squ8a}n|f#* z!oR$M|23G?1a^=!4#^>h&0qpKfUphRYy;QGjf8DrEV+S@7(PTNL-afB;QJ2nq?7Nv zxW5am>;{K=z@`4pARGX1`oZG?cnxrUKRDG79`%D|1MnEA=e^)GxI6%#0dRK!EbIqI z`@y|_#yW9eM`5v1bUN=FEFY+8- zGakrxcny9KyC~K@)XP~2{b%h&kpotB;1aQrs+0F%KpmJ?hi_GfE|Y6fb>K@KF&6e% zb)eVej#Q`MFqqK+mUYVKU_%F3(g}Wb2$r5W{CghbUk8}b0YCCjs^gIB`XF#~5DXat zPlkC8>nCc2=a161QTUG1&QY*zlzT^KAlipNqef}V1Xwx4y))p{44=(_$unT%49}Q8 zhPY=2oSa#MU?sc` z!PP_hcSt)9Y3CthcqpGUFNfe9n4`fWT~AC}4_<;fx*p5~2XsAokNQRMQ({;!4_{Na zfqNZ-piVEbUn0etaX1U!?JmG=7j?rmy%x8b3$l|L8S*?R9u>@VWt(_T11`Vnf54o4LUr-N5UHzTANS4ed}jR0lN> zH*`RJ*3yM7!A{T?JH}^Y#1UhBHZ>2e1$KtdX11V%z|L~-JiHbrpqaoDD_dgb+cWIL zIXFzNBxJlp)}3x|z+KjyLNMo6Vpdsm!v70jHbeM}FTu2z;3W7IGC#LBU>a-JA^u_r zKHW;Zi;ozxE*!Fk8?u&rdqaG311`S=_wXZcZ}6${9YfZN!zOq(gRRZrVe>q32JIjw z3W<%v7I?Jr>^5+lJZ4DVDJ1_Bc7oMiU^qTT$eLr=!|T9m5VEcp4uZ|Zgy8^u2jDrd z&)@JGpq;Gwg{(7%1GHm+HV*Rq0opaN?(pxONd7`{o8cg~W>D-C_&o^DPhuw~8-sAB z9)b_!8_w|AEIby)#$fxFuq{iB%_??hmG`T(dzH4W((YAk(#j^U*n(AT$|~(xrG2aP zbrl|4jK?1LZ0|zM$u@rb_8~<3z_M_g*khad*rg47@Fx}x$(4l%^yPpy661ykj0?VF zcmR(B?muKK4&ZSD57sh5)?Gs4#}GdvJg0w`%+)pXNDLTWgU5B?X&wG&9k^I0e-A-m zdmVUJ2QJrx%k^L>F|(@24%LI>2fY&2DXAB-=d^QG;F|d9N zj7Rp>n0&`I;F_AGU6VX-58bw*y<#4F;K%6|o`b)q*ReV4jL8Q5*reZ^ z*e&u``VhN|&DZz^`jGY>!vAm{qW_0H?~vyn!uybMIHWI!+>bw?$>ZuPo^j1}8^;HVs_Q z8nJ00C*2@13)i&}i?Ft8$h{l#xrX`=Lr&KalNoX?2AwhFTMYRY!+MqJgdaL(&@a<@ z1o0g7&2;WV*sM}GjtJq|)&8#vWtMFRonP8w<#g?zq9x&37^DyKM z4eJnwe23Y`4x$r={Fb?(Ppt2m3$DE;jv}vbWsGl#p|CdwyJKz+d5?`HcVQ(K#9mqA zSBqa@@dIoFwve2bB}Z<_m)n+6h|gO_AY!nVF>EL{b&TuA$jOay-xxM>jBCagA+8^r zCKe+`Ti}}I&A_f>M>qIwUgkogS3+OP+l!j}t&nj!8TT86M0)U<@uvxGymYp5NY2KEnOTk$EwA^5S@ z8xCQI$)$#a*b8(&B*z*KVXIin3x}{JL)bXheM5Z45Z^JJ!M4pdLGYX9c{A9y8FkHQKgD8`oYs{Cg4G-&NYb#@co7Ja32o?7)AUe(&)8F1&VW*Dl|)h7|76cGi|c{LK(wGsH&^(cAEl{-WREA@&X* zK19z$bUHkw&G_~qSP-7@z0@X94;NA|7g7rso(u8WIiH==r*p>nl2__vLe_mk@~+_( z{I0OA*Zh4A&uhl}nz_1W%&%$FHL)1$P>S5IVl7J56ED?cCmM)J$Wy2WY(hPDrvY5A zCk7#hpc=TR9@_)9s|M^x1NN&y>@T(hUsyF@OQ<(ftX(PcGO8P%-PoTlVjObhs(T*7 zMv!||U3}gRpKfdsYn6&TjbbfVbt5m`+~0-mC2ylx<5k_l3%f)Om+HnAbz@_x<5Jz& zLgIVX#l2lz+lBqcPAKF^4PiI26G~)ch&CcuYKZ3{TMB!khUv>N&l!dvHF}C#JvD+o zqef4mZ)%KwpmS;rzGI99dZ&m}Ldow`qAXME-u&pBeWdHOR?|K_=N z9(y}apBCuHJig03V>Zv2&eMi@o`WB(=4szNeVfMzK!?@#xx>Go#rAiHvDl%VySyIL zzGLQqnh|v(wwmk7>8lgkenNXs7>^Ui;gn~bFdrxM>zH<)FdoO)Z`N1UiP&rAjNE`a zq1`8PEn`X^R~^gWyt2-uP8hEf=7%~Jh0mr~?^h?Z|Af9A%jdM|m_D=quN$zr)D&s# zg~o1Z?1gUSwGC<~4(r5bbz-ZC|8?g8gzf6acK2ehSew?YKWo;Wbq{u(HEBJ7?HgdN zWB?mX-JBl84h~_9!4Ewo@3Gg^-sur+-UxPa_=s2djBxKbHhzN7Cx`{9WzduGVEs-{ z;u}oDa}pariOnQN()dw&j_a4;y@W5YgsmsnqSv{19lq3)=uJM~gwG~%^d`^W6uXVR z-^5R0JxT9lv-i37i1r`B?}(ZM;&Dxkt`B+U(Mw)w?;$?Qk;I#f%~3tC_!7kWnzdMs ze(Gy%J8N~C9GJer-cWC9>abPhR7@lGm-;J1J(X$1#x`RA8nJoQR+(1p9rc%nbr8ea zhr!P>)H)h!9}PNYSm!Y4oG1F4*#6?1 z8T8nUfy-Ce;E5Ipn>Wt0CWu|fc{VYHhi46PQVl2*38p}dF<*u&z$F(^R!`} zcypd>Sr;|SVte7aIt9@;Vi2@2pQbzw_>-JZeY>?W|(nAme-se0@H zF-}Nq6OscDS;GtKUqaXr)(%67fhPI8We@vIj7dHxY{Mpy7Z1r9gdNx)@(p1ZHVh07 zhu}%>H)L%h9Kya)vl@~U4~OA3Tn}NhhOvdztA^BEh1AZ3_$DEKb~ubZ9>&(Pwh`ic zhvd-1Vd00}8Rq#z@;Nq;d{9WN6tZ>^&SKArS3>;ia2ET9za7qUE%8u@za8RVhYR5A z0=9a|um64;+ut?p+Pc_Y>??X1uG5co+Py_vw%|ctE!^pZ1|a;9UHY<1dw2Qnh|iDs z?2zXk(T|fWa-fXisl3vEY6(N}msm3mshJBe=)2U$Q40}X;rm=Oe%G}78tiKTL-FMl z>$8eHx@y3_QTwRSN!0-6QX{GGsZ|3Qj6bcYqgD9Yin>bG!1dsxYQ$zySE*XT{5G+7 z+}jOy_h5s_uc;nv8MTF~2b?A6rl_-4)ETNCV!s}q&03`*PEy23stcYyJcl?*k>6H* zaxHSu1HR*5DX>z3l?tCp4b%2vcno6;#<&-`RLG@5F4Y*Hjq^RZBSkHXLQWMqI7MDt z5htlh>=g5&7U(2j+Di03X~e-`M+q7a`i zG8PN;Z-I6$$vuqKCePZ0|K=6858m7KaT^=AL%VjlW>;RZHK)Ad3n}&$s8hy*x)*iE zGpUPLr?iV4w>ssStU)Sj_!apib&5@7-CCW&hn$0A9b26VANqbqo7hL7PT`FlDDvd$ zl(t-SIQ;uOw!i1J_Y_-8t)HSsUa?m|QLCw_2UFCEYHDFMwXmA{Rt+X=YF~9Dc7}RN zjeKa6aDYS4)v}>*oI#0S})&Gx1y;u>MfbwH z7dte__k+A2!gk?L>k;l5;d^Sr^$6`4A-){JmW+Ta_Gf$;!sd>{Z-Vwvf1%06 z>A5Kgn>NQYR#*_k?Q2AF5412EJC81jv#iCC=(`__n^qh`)Dg89T#rU`q}M0`n2i)qDnqDuz9 z!t`MO@F@&A1=9mB>fcNcaUwO7hWbZ?4w*jULHrOyEu^7d&h!XjE2)t*W3D@)Z`36l{6&NRXYdyd zKBYO~x%hmB+C_80Js0pNcCat04`D6dzLZ!PJI6j4OK#jYV#gZz9IUeq*Vs&KBz4)g z1>4$+J!M_qvfsnD@;&=cEbE_^T!N*}*iwgNu{RdK&SGyYm}Q3tAYx|rSXgoZ7T?a2 z)3MZX+VLicnw4>QjPZQdaqR?gIqM1*zr^B`SbP;r9gbyf*Uk`g6CYY)Lp$3_42|tx zzz$Q(Wf!pDV3u9LmQzzI!j0#6t-cj+V~9rHzZddlIIUQuzMZz5HTz{$Z&+usZ|U|uv^r@hQuD>2zHm8 zRyfiJaUFX+!V$R^`!|BEBpPGb8exqogN;+{F|H?kJaaXtCO5Fa-r zj~LF;_Bm|a9M7NQo;mE}(n=6+VDmQMv%xj%^ktp)u6zIQ>)8IT)7K69zfQl&`-Mle z=Zx#mu-6yddqJ$ro|BN8!0?)}xCU#%L&aVKMLnxxPkiMrZ>vp*uX|?Q7c&AiXH1E&Y~tzQ5&ehOhuib>cwVI$ET=sRlV5a zUTg!puE0;#3-0$~r-&=m5ZBG!>8wd9)}$2psE{2sj=eyZ6uEV^3?E_v zMJ`V*(FSsTiuxP1gsoeI$1<_n5_X4}K`jw0k^fUmw2yjMwaoL#1*#=%#S(qq;yGK` ziyiDcIRb^BqIPKaIej|E7G3Z+vAnu~=Q%d|oO`L)R~Oh<{6BS0yUwwP>~m1$%N6pd zsHIWo^cP=6k(W~Ej0ZV%bq>ZeuA03~nz|{?-X2YDm!`&FlgH82_iOg~XvSTmm%0gj z217Nzif#hesiV@=XX{R4ChGb%xg1R%NB3bP`mk|*V0a(c-p74?#C5%V-^a81ut9zB zA3BDJuc&9yBVhU{*NlMm)BtMgU-SsqkI=>u>>aqM!A(8Iy;Il)>Yp^V1$xTWpT7O; zNdENH8J}V6rf56$f_jQ}Pto2f?8XeXWS;&KXKUhZJ&()j9w=0VogM^(l6FQ^eT2|mG-RChIL-o`D}}EVBYkWyysce$7t$cG#IP* zvD3%!CjYIEc@8+LkFkG8^yi9e$-!viC4EKz@gp@pq`t-`)PdP`qu4cYl{E}QeYa`C z?oiuim=lBFV4A>i_Oh5Jv2kEMb7oq>YSuJNe?9gJEJyYY^{l3k_^Xfa`?$W3IH_+F z0=KDoHTV*y5BtzZY}JQ7?883w@m%s5W^57?yTvoW5JN7_u;yxrBMknZnE>-Ac^3L$ zCb?%4dohQN!{;*#*rWw{4-fo7vw-bb;5iFigP&;d0nIYst?=A6+O>uqU87Ir*vuO3 zSfjt|JZp_Mu5k@xZPw_^I(=NDjcfA|@!dYpA!lx=8!`v* zIiT&-8<~Bcb3l6!Xg9S+hTMobp}piT%nA09yon({V#sS4@+F4cg*oRQ_Hdd@_+9Xf zOILq2`E6`}uetvk+fawyAs)AN*rYn_TphNGHAqYT)UrNh$+KE=r&>m_C?eZSPXB*_D4`@F&(XubtUUDyc zF~bJzNdvKA1Gb4Z@{qVWBrg~?kT+ocCnSCfiHAbgkHZG+NYgy=Dz>Ga7_7Y>o5*+F z+%tk50zbl0;=EC8*$6g?y19^gxo{MFGuj1-t;D{L@*L_r!clC{C~@A%G4>D}ILYU8 z*y=fWk$(%pfN);yA2y5pTgduANZ-Om+PX+P7O}HS#Cc1!i~fZh*y9a(&+|9nMUFkh z{|&d`xibyX*B!3g;r<=2-NBCUz-I?OJG5t)HX^6taU+C1Cmsoj9YXd)hwOz8iD5!; zKV+{^cuBjcyAP?24X?2uO)bv<`@=~76nongey^eiRxxG@pGq}h%bKuFP1pwN?G zuA-)0Efe!mzpU_y)CzWr+6uLdO=81ds6AEGo+|t%wSrAwCeB(BJ4#!L z8Ppb^?H&Y*y`73ZUJ5-^$c?(-Ug|*ArTmSJWnZXb&xg9KhiDJ`Yt#iclKs_+^u2|F$Q&I z8a>n0SZiwDHG5b!>r}cAdkI$RK5)Aao5EP>LB7Km)zlMdWKWM0=OBlgI!--73^T#? z(_AwJf9fqYwY(Z%Uz69>YjVc=c+XPP z)bE)(YzON|rXJjFA|`3ZUNn=(YX*ZEU(zeqd4F+*O$EWi_;Hw)N;McR+wZ`Q&8b>f_Lp1&@3h&XW_ zo3YMw*Rc=Gjai33>uiR2*sRkAa#4o-liA}t_6r#H7nlRCKj1rR?#vPP?wCHY#%@k% zH}Y=qj}7u_ka=@W{8LB15g)*^K4+VoYwd}qWyV4J8du&i}h;#RvzOhn$tE^_@M_62OP>wLFPo)gTp zTl~F+U7*gxQuAS{8@Bka_L8=-Cp&Be56OXrF47?@R z6^>#Xs0R#3xp$s6pr0Z6=@9)4=ZU-K;f0=t^WZtYf4Ir>HsHNUth7N}H;H*RX~z!N zu^toda4l;y;U1X3haEVcg245&c?jN|$q-)f{sJ3FE;_v6d-jBe7qehJe6Fx}Qs+wT ztYUA2!bey5eu}dQ6!{L-T+b_hKfa;D7gSAPWHZ-rmV#>L?`GnsX7H{VJ3!5n0_RjS z_qRg$dJ3Oi^XuPRrt_qm3vo+b5^l2thFoF z-PH_q~*5pF<0x{J**Wf4XdHCWh>v`go1#HhM{K^05HJ-H!ey?J? z$Pa1sORr-qw!!Fa+Rl2jrWQ*xPMS4ny@RdUrd{N~HU6+Z;r$8Ul5q{IUdbgpgy55$MTAOWG}jAZBSof6WBkdspr-=;3)NXrkQx68O&|Q&!-mK zAajQEJIo+?E$ZnFHKB&uHNzUcp*GYEf^&o5;UJhg2%b{wW(MRtuyg?Y9t8WR>%nWV z89&ra!ISvUOo7qFc4i9voPzfh*vkGdGspAESDHm^!6NpAT(Vi@^F=Uq5u30M&TjD8 z2H$O9Q&_t*?BO*V@FQEp68*<6!lxt71i>Hj?Dc_T` zHmC3;jyIgeV%XPeF8Lh)$FL{H;J=tl_+Cys{QE1B{29*Cu++TSI`UG~SzBr{EOi=| zT(fQDJ^2#b2sSqpf3UaQHskv@gVP=0G&MPvJp#6an1g);mK>C&KHjqDz_O>sQpaJb zowwkrZQsW(z>hT?OKqVg=Cj0umf8x-{MhL(2;S4gIIP>)*$oK$0e)KMz%n0}d9jPw zixq4bKB1-d$*y2usLi!2#3t0|+7;~1I&IpZKlnR#llE`X)-9e%yluDm?2uxC!q~Y{?e) z?_fuEX%lu$HG{A0Q&7!dDL#;*Zd9=cRyBj!E%GbGpzv`N`v??%jT!)J z@q-lm57a(;n#Z5{%H*Lda{_pE~BYhd*nZQ9~`#$4^vt{a|BZIim5bN=67i{wwSe?yVC zP}G&FYwXW87=A-8OJWuFb*O8wnVJ%H4d&2aOG=%tSM>EoY3TTHSvdDh~+f)TocP_ z_AqJoA8F18(d=c@oD-s1Q_`$0Y4lg4+xnDy(R0lnTTO02Q#-AxHP+M>8|sct^8tij zV`ogu1-@@9zAt#$2Ch->WT;Is)RUSaz8~T`>Yxm@rH1o=4C^|E^*h5JK|}ux{WQ~H z3HoQ|z!1*TFpFRsv8!1GZx;D%na}96!3Q(!O)?vNzOfgWO?>DLFl7UO6@4=s*L+q7 z)$<-dnV7?D(AEuba03k8t*JQdpLWk`M z91OyTWPfu=T~J7D7ZUr0#B|{qn0M8Qe+fRIld1*%X787xc0sj(1+8Efc_qbOC`DYQ z2EYvJZq$I_6xU#{)c|;aE-Gr&)iC!{1E5&vQWNA0*1>>v@QHd>wazu`iR{rqCBfJgJB+)eZNt$3U^yKvDCruHk*d^NBeX zK8RvHP@!8&^o+Ptx1jee_(b$YvzJb{;2X7|`|P#QEnoxnFuD!B=PV3O{h7wc)%d-d zyvws^4sF7x(D)4+ze3|j=mYw|J}rG9ctT%Td)8;P ziyA-8+O}p*TH{Y>Y85m(sHt1fXFLyG)aaq+oFa`b>QkP{+PLN{EY02qeS;p?p|j|p zsl(Tyj?>hkqbYBAPc4iY-qlL@ZXRR19qDh^q93d)5iVOe;C$d4fPy`dJsbn z#IQbRs39=a&Kc@L3~{BQcEpT2{JjX? zEWw*IL(C%2U&g=M#P{07=cB&LP;X^6;YT7HldQL5x zrKZqQQ)ow8p=K}&+`wL2bjOmvu#-FkJ7(F3X4wm1=fTBAp0VoJfB#mDf9wym=#Je6 zAGg6d;sDFOFnh@7?8Ud#B-;ykUBHtV(^C6n>96Jdv#Qhv=v)EAQ%7^44||4<%+#2Y5?Da+B-E2Q8S<>!2{L-)jB%40S2t|Js7C)sTHw_ zB1Tc{Em!zOY8zQ(FO6pXUfm$m)JZGqqc!_;G&NQld#GE8bJ+i?Irm6+A@7W>WMSgx=-413o(&gy4O~=bZDXiO=;J{Lj!q;&FY0PTe3w_|}HnXoC-DShqH<$PhK6 zhWv@4zR-*yhpfFC))LJyGRS@dGmPB@9}Ig4%?x@+?Xh7U&@A(Q1>1>zFq>RQ4WZc- z8w(Hiq8XlT$P1e@?&s`9L*Bs9M#I@%=89)yabkeoG8%@vm$*az+iG zrLNC*&qLVLZsdd-S=)^)Qu}Aw`)a#KkUx=0uA}XidPzIM^~|dU%PqAEmbExLiS1+W zs-0eT{@>q@Hsx0fSSD$x)toD9zo-$>GpYKQe+dkWk0aSKI#Ev3Cz>OVmshLeZHRI z??vQ?wGoZqty$aBoZF(oD80-5yWER?)|~62vB&xhJHooTKI6JGWR(53nlm*tezeA) z*4N+|`vS~}$QrmevJN2+)BzaQ{0(a!W(FChj={_#i_D9e0oz!gHcQA3dr=H)(S|&n z!R8vyTQcO|4RwWv@i)wap?1gM_nSlTk$onH^STW6Oy(RsKSS=%kkK>b`V6@x=VCbX z$6O-=?7z31S!BtdSn^DkdNj)!pq3gKOP#;vY&}bDjO}3_sZ+CHkEMpq_8^Bn$QI{o zSk5D})Hqo3MwYy}odnM&@!`msTlRWd`ex^R{QGxe`J<-668~HBBzB27k-eXmeH;HD zPk**r$J@M*-CNID{Eq8|5C|`XKnR3D2!ucgwroqDXImaLShHkn^dQ+9Ap}Ao1VSK3 z;Jb#cK81XipRfNL&63vYzNfys>Z+=%s+)hQ_h0FpS`6&|SPCkb`q37jo zr`iW8KdbO3@|S(%zU28F+4T5dHOnzsa1S4l6N~QuqWk`it`$=+aj_DUD0L$0o%{L8 zJ^N(OY}qsNVr$2qI?(Qc`>Mu6v9F7)E;)Yn-F}cuR5)&RZqJ156|gpJ=!bai*~R}3wNe9LHsI}m1%izeht^t7OUgIM zhvfS!I)lBOZ2Y8ClZ?%C_dt!vytc>166@W8!#aK z_y7B6{}ubV?1lRN%Gy}p^Vxb?Z}TZWvWBNxy{X3GYw`BR>1%wkes2G%HPwrr1Dx|- zvK~vmlY8E4_UjrsDPOGj?CCvg%zep?|A6o!&c8@oLO7(o#9!I1-=FKXal~A12RmUI>jPV zK1IG_55sebBbt06DejwcSn|YNZ<8}HQ^DS~MP6*#M?2Q_(B72GQu0+wEz0tYm3!Q{ zKmEd95qoUh)LycOmdsC{YOmfle`_O`u5sU*t={~1y-#1^dN=NFlcRl19-P@vXV&S` z{N=VZPDRUg8)6pYj2&`+Ci7t#^_SxHXZwU+fEANpCBK*p|9qa1-F)7LQ=bn)T z_n%*(-rd*(C+0DeZ}j7w^%n!|7xa*LVDm>dj%06H=RM=Y#cNo<>68BAK7BF26Q3u( zJ0XM4+%NSpT5NNCoY`#lEx%}r?<7A{;;QB9qUYKe#VzX-nalR9HRCz7c84$j*uVeT z-~ERVTexI3vm;^l7Mtv4`(WAnE?ZwXyXC(%pHA=FYh-@AU(J`>xDHK@GHLd*uu5rUY@&m3+~SgdsPgy*W3#_rTI)-otPF^O*I`-Ere1( zsBuwx)jfm7dT+MI^p1K$g_G0^_O`l5&4=D37(o@jtQ2U@R}wVWD*~qV6BO+o5TeszN?Ae znE0_K^;9M@ZDM~;AJs&*ZzufGNnOh6qngO-(oG-DA9r#3X#O9~|D*Zia7;KI(?|2i z>6p}$n(#ZOkLLf;{Bd_C-0ev$Z(1_{CG*GOnfP?4CG+Rko%nSpe4mMLcf#wL@|q{H*J;UGELjWrQ4{-S z!W*C1I1>)}B-eIYvKC9$V#!*-nv=Ng#IBg=&`BQdBxXCo1Ctt{(~`AVvKC9$V#!+2 zJJXW2AU~%iYa!k{Em;fsJd=3uM7~bs>m;vdTCx^P)`Gm5$eU@&S}a?OWozNNnU<}E z=Vn^A7R%OR*;;s(re$lfY%P|p#j>?f|8G*SZdx{f_3EZ&^ItZ9@rY^J{Kc9lT$)Lo zVp=wTF^g&0{P~(DzNTr}{Flvt+5Gv>Cm3g1HveVwUp9X{wuwJ#S~h<&W?DA?W%I{{ zn{eHxW%FM)|7G)EHh=Y=re*VAHh*!GY1#b6PNrq^7dM&k%d}!G)NYwp ztcBVv(~7m=bC}qS6Ps~jLryE!f*m>WQ%v;Fv}!HrqDg(1Y1LYgqZ2$o@l#CX*|cgc z_$wy7;c3-ctXc~-UnaF;CVq~Ik7I%}CiNGlRcoI?1!2KAFE9{OObVtAjAf7n;PF zrcdV2KRbOge|ba`-|a+SPoK>HlljXjn&kFQ^ytKwJMrsI^y&1;{OPnwy@ctL`F}G1 zPv*a7{%hvHX8!X3rZw|dM`7ZFnbypI?fxJ6_y7NA|NZ9o{_TAbgMB$3f51EN|4%hm zf2uwH%O^ZIX8J&W`JhL~mHHy$enUL&_fPe#`1XFo9ltMJccE7B1#BjEI{3T?-_dyb z3t#OM{LAKGAB=1tcb?snh;QS6bE5m#SEIm$~BhP=F%+|m;_@P6- z-8i=n#y2jlOUXy{i-{d@;ejO&G-Bad;Z6fD4d|e`6;}hl6O#Y5b8Z!#X9sHJ7Eq!l`GiljP@Mt z^={n(-{Lg%JGFMM)Zx5TkMqjC;d}ah<^Ei$b$zKeC)?t;xa)5=&u{Nv_oxH9hkACyo*C*IjVJaZU;HrkA%A;37sq(+{^0VD7uNZO z`}X|3!}ao@2HSJsIFA?3#Wf%DpT_e|f6w-SHesj%PYrr~(B*^99(4GizXv@%Hs{@Y zdqP}nY-?-#lf$!sgEzMAt8IG>7jN+2k8NW;^!?%N+0YOF;lS-0U;X~o^ZHer_{KxN z@4!7CU$repHst*de2XDgI6UivT{zg%gUvb4T{n{r_WQ8+$JI{ex=orm@fo>cJL z2Od~FaLxm99J$wlI~DAQuqWaHf0^9SP?IR|^8*(@aPb32KNk7VtYa+y;h!%3SAX{( zTobTPSl@t?0n`IP^T zk2B>mC!c7_ZO+$zd(EFFUXgqU`N8?KIKwSIEj2mH^H6NPQdhF(*eVbGZ5<1ruB>U{ z4;21D;hL4TF8O<9Zbd%UHJe4v^C72kd^NwX=JD0_ zUuQDHT-9J6avg`pp>AlXy&ezg_D9+#p93E#9(q3Uh2o)Sl#Y*wo@Lyw5aSE6 z_IRhwMf&TV=lUJJg>xT#k@1c!;(rX>=y*qd;Oht9WZ>fmTQ%61!PW>iO|U0|4H52r zxaYxc2sTKtN5Z`iHb<~Mf*lj=hG269yCT>uVGjfwCfGW`)(JL9sCyIqPjO&Qc=>U> zOmtP zDQ6;|@-IJKcktDT|K!u<5BX;8#dFMGBg zuERC_+4x%ZULSmw#qU=1YTfY5-jLfjaL>)`JF@;}hI{z3)U|2(nLWo(J2#Wl{A2I< zrrz;O;TH9Kb!uJrTMez>+W39#y$a<0Z*Bg@efkXx{=Ol9Z`3Nhp4BZU+i%o2zah)@ z_50fU6mDj+oy@)=FCLI7a(0Hf4|5pm%8e&8nM*c^*$p*qh8W#=NtV4NLtm0Bc)8=% zpLe1C$A9}*{=G8qSv}jAXAbg-pL@I{YjDX14*hsZR`JsfT(a?!oWU0xe0Sp&xq|aB z*v5k$K0Hr@-90>CW5pQQ=Yy?2JV(QGIN15avo_e}W95T`T*Px2a`%Va#<63JJKEVX zhTWMwC0lp2u``p!=EfI1c8p8yv#~Ri$;ONOH`F~Fc)w%EIChM6$N0oV$By|Pl8x}~ z@GOpR#_(IyKlVdsfM#rUj!N6n2F}_7U-0~dD@d`YO z;Jc06WSHEqkmnU@XvOW14zlVt8E~5%xlLZ(VjtWl%lOmdHd&6d84vvSfP8sGCb*A5 z_XfUCJSGd(1C2-IlzMofepWozp4e18BCj56SFN0QYz&XcDBP!bL}ub@hWb~5GZr`+ z@s?eI+a7qxfde1!wEd3k$4!oRbi_Nd{hdDS@pwme;nRh^AGq_uw-h#G4Pxvt9 zhUXmlO4cN-nB-5Ai>VfPK7dEbhJ3(|en4Ks>iK{?e!#w_lM_!jACcYmM#>*g{N0p8 zo{wPRr{wT6a{L*&EasYO8YCY=K0S44|EYeSx$Y^M{Y;$ksd0$UrkW!8l>B~1x8Qaq zzILjumT#Pci1_y6p_ z#3f5Hmc(UD+{I+OCoG=o^yP^;(#84J_wG-+7wMiQ`!ugzbFJ-bajRQmqqpFC{FAyR z_T%}kJM@rT{ZhxJyhgoiKUST<=HRK zcX{^9GhXg_*$4G#rax!besj$9ow3VjsrPiIIzz>mRrnYsrdVsPS)()M>eVirW!D(Q z!HYdvY|CP2)(tyF9%ifW)^ltb^J?>L`?ak{s{z;6q8IoG7R0#T`+P4Z_FkMzPEEh( z^O@z>^W|&JIGfYi{CeVKy1|kvkq%L;MLzZvl{TTzsYylblf77Z|ykf zgpL-06WQJj9U(F7a6KJO9hzZyEB`2cO7zK;}Q7s~+h85nV;D z4z;g_Iw|9o@8l?q*Uo*VuUEz+#yR9G40#AcZr^yV-B;`q`3mE;eqNpY!GHh5U;X>q z81SJ6KGb+cx8O*Q*ZO#U$3ahtv5cj;e+}|$@JWtUV_DT7|MMW*2H*4GgC6|SgO7Uf zK@WcB!H+!1#6k8BoTlOV7&r|Bw_)tkjq(G>uC~;t9J}Tqe`d(58N22nmOl>72N!G{ z`uo^eV4%T&G+^KHO&_rD@UDgN&A7?50hbQB2;(Q6dp~HdKj%>p{3jDZWF9*I{%sB^M4YqXfCk5Y9;3)-LI=rtT?vtr(&ak)RG5zv{ zjDAd3%Cii01p)^+p12+_B-8;7e7eA`3pQz}ixW@u@tFL6LiXa*#S`s4Cd<8VFz|*0 z&n}*j)sKJr)b|r(dt!{Z)$vBZ_;#_V{YCvPlH>Ml;OxYE*W1S-julI<{uTVu!A~7) zWVd@4{K>&*9O`2Pu2b-72VZmWVFw>`@J9z~o|{PQ^4{A2(AkAL+qeoGu}INS$3 zm*B&UAKLukyC2r?hqc7v2%MKVHHIJ7?1yuI=tHfJP@5o5{VpFUe$auZ)<#{PP%|y? zt>V=BslO9Hto;w`acV55Go3d(U*D(J;>Wd5Yb>8R#QNjZ+WxRkKdv0s<&?}PC-V+D zPnM>7r%8_FB^iBZ-N8R|hkm%T;$WlPVat%6N$#XNl1c8QT=A3}o@#6*%#{3@$#0bp z=ruAl$-pExlYC7wGReavFH?>5e5T)L?;TqXdgLiP<{AB@c2=qblz2(0mR3Id=+HNg zQmU1eI7#`8uE0x5csXCuwfKly98>#&@`WspfOCgVUbMMdN|H@~v^;0H)eB zDVCf|+7_GOBPq`jExkmQy=yh|c+5)w8~e4NC`$sO11Xb;X#I6YzP^e&0qaUSfR@Opl> z-k*(Ct%dyT9?5^r&&IDFLw>Oq`_KQ#zyIm4{>8V+eSPdZe_x++AQN{a@pV&_RJeBrP;?pE-mM~euRr%d@xGc$+oL8>7 zGKVYIU772(^ZC2-hK|3PbI_^k^cCJ!!Re*`THT@N&=U_EB9KBikA!w6(liAR)L zmi3r^meWw`rIcKTBD;!=Dl)FbV9GnE>M^^P>?<;^9@Ej}RMDe_+gcy=@c~Bopsf$u z{9rsEoR9loA7Bjijp~EzdIxV@$JL&+T|dHW@IpgzDM;#x&E z)tb4kS&y|-hxJ*v9&0BKbH!iuH9`|bbhM^(VqE+rP?#za8=*oKUF89VX*ej zgeD)F{OCL45%>P=zyJ83|Ji@7o=x9_Kjabh!n#8nYL_&5-Z&qZrr9XZ_~-QVFp~>@xXZx=weuY!0-dc8;|s9uMO`aA982M8@m5B z9PmcJZ(Q>lJ`%$jYSoT6`u6_H@!EN>jsFe&;N2!e4%G1e(xLY0@Scsqr#)cxA;)sO zhDrE!hIela*nBL_Foo~vps}hw_Say$jaB`K`3^SL5CGk>{j1J`QEQyZU+VfWhK z`jOW*dp|rQL3alH9c;(&Yy^8U z*dGC_hj(rSy%~4tVl~u5E<%Wl##1``30VLfZus`F;?0nzxPX)hXJf_>d&mwT3gS{C~;jyQ1#8Z9CbBH&_jSC;Rt$_y} zYT(6tWA|Lfd)Q+Meo$*A*7dipKl$}R7R8!Ag2amdk%GwX3?E#+***&By@ zcxD`D5B}i4+kf%jne~&K9e9wTere!B#*8B?k2_A`5xOtcOUpa3(%l)(f?w{^rFUQ! z^%n9D>>x)r?_4@ymb>)-UAmWU%sVia+N60G4!BFN-ld-(TsyQYmYib9`IruVtX=kO zdiPSwdr2{*qzlt~HIm;d>9~CA|7Y4#Z!w?2GSBt>9A?5DPI3EuuD@r-`b@jeT=(1< zpX>LT@jiF$n@tBiqz+y#()DsKQVvbZp-J`dQtm>^hszHz2R>ekuP1I;;)x}0SmK5y zEn?X}#uW^(p&-&(@` zDF-Ck07+-1n%`+3ChlwESLRo3es%s=n1}Ao@7n%uKHl||-T{?-RrzCvtM(nn`okKl zZJXcSH$JZXVQ%t+l3YuC>l7c%Yq;uK-(*tW_?=HX`MOgKI>n-s4?FQ3au(mbwfYDD z-T7z#6+6G!^u_O4x8Vi4v*cdaU06hol2X^NN^=RyXRSa0#07r9m9 zmZffdk$a_Xe5s>bWL~KsU+T)&Q@BZfR;hPfWL?>xMIM&inDV}!5;H0Cu*khqOSk08 z6d6`>j|zXZa7^nXOoKyOc%y}9THYm6c%y}PS|5xL2et4<3pcfJPzxR@T+_lsEj-k+ z=ZZY4b>o)1UhCF@{Hk?*kxR91ozx+zb?doqt=9EVp4GZ>l3_(I7THzmSCu+Nj?ctnL)R2TY}hf}yk&8OXBkuA2^{5CDV*tdLtM=a$I&MrCAWKP51P1ZDh)^~8b z@8D{y^VRAKwmMbKuhaMVkM7NIoZl8)v%n9f23RlP1TW}kK}=@h-|s(~|BL??v?a%< zoD@TTH0kyIwXfc%(OA%o*o{k7Dpu46(Q&UO(iq z46&-ghcV`006vSsr!mx57|*=Pewf_Re^#4Yha18#qiXZpa%OZ*F`Vn>sy1ozsDb zJJ@{VllJiF#wX+bq(8ReU>lBA?U84LPhs#&3>>?`J{-7h0|#!f9S8o~z=Ion6@z^_ z_%sGNHst9IGHa-BIK0bpd^Xn4+85UwY9WoiOP|`6=Qq^Q7@xHzuVcvZ9c;uQr+0j| zX6(lCd4|2TyJs$J$RYoCkcs27xqr5nN3iV?Ty^B!BYhrOFS%di$Q+NIe>}rg+Ww(E zHIoK8Hhwsl3>#$LkP|k3I9J`^!B;=Xz462Pk%dFu{PDxu{BV!Ho9mAUKFxujf2gZJ z$jQM^Kgh`;hkeMK9el#$+8nRV@0woc%Z)i0#kt|5O?@D?!Nvb|L*_QzxH+9 zrL)!F5A}(HeHrv;(49f2#vOY84t#VMHX|2Z=O$;+Ow1W>88?!dxH+5rT)4VtIDK9hj&2QiR+Slfx za}Kq2Xw7g#;!s~|eZ-OZ9vQ2B8|r$6TLBe(L|HJ%B43zy6*7_UP~a`(=*5Tq9pK@IQn9Hh$S3 zzx*wyFn${U&skr__3M?xynedR-oYGlO5>Mxms1+@u|mFU$Tf|h_R~-IV3r4am!E~s zPVbmVK9jtA=zvkwwNE-e@4_)^6eRtgcVUXV@CTirYPlspeBzg-+Fbb%uEd|phrTB( zQ=Bs&!$FT-|5$r`FUkLr?3QE~CqGL*)`#~(rPxQxp~~kl4PIc%n@aV2^SSn)!(VFs zrdp?o|Ci5Q^Bk6W4*NVec6nCGKcC(ily7E-HWu}>=vo}wT-1+T%3L&ld6c;b%krD# z2V<1Gk#Yc14nWEYNW8YhflGM+iTj`UZHf1mxZBAd&Ncn5X+!Q-uEA7nnq-HhxJ$Ba za?RMqUvkYlt+{5++_zxDEpwMMmG*V+&N;O2eT=!QZE>3X%rB^RM}E=vf#2-MJn;R2 zwLNf-+|87imqWC@PHcWOKZX^GS z&aZoL&%K8Zn1{cn?!i`f;SRN(%bqE<8jAidy1eN7qU-BEKhb@71V^dxo9h8w$M!7m zLn!YtDEGRa@mZ0R^<2Arx+P{%Y=|Ns>$(2LHH)k(G0)=fEpg9ccN7^}WNeX-#oj3S zszojq*;{mo;}KKf41PqA4_9#GkHCFiH)3YEN{`Ur2y{VBOXg-2fU zf=b>|(ebrroNLA)&$>4Jwr)+!svePR7Bto4QaiCs#<3d$-voO&2$v+;n!UH`si|P2M$MakGW{uGlC2-t>6igKzJ_qp)A!<8!>nf60&B z_r*T>k^8=Lyz8p(%e%bKH+df>mWSB)mB!q6pYY_JIe)`su*~3_ z8vIW~3}?VeV{UdmeC1tr1GjjH%?v(*!ACH}*~a2W2TTVy3^w~v|6-82L!4wR!hT{V zLr(h;GZ}EjFyFzxAB(Wv;=1Fl!x-?82fxx-gzXlMXUVl|@FaOU$lbB#8ut5O#}B@v z;n^7Ca6@glvE~|bd8`?We2=jPFO$s!P8jm7hZ+$>O}O!ShI@_wv)?|$nd-p}bz8<4 z{i|y+zRdrTe=q;pe?zUZ@x?skl8(>T>a(>_J8q~OH`x9I|70A&mPh*cZs(!S?f9W> zvUsq?#}8u?gC9Tk9k8~T+8~?95A){#8NbZwmpQ0aGQ5*yzy;$1Zk1;_F5Ih&+5g6W zWenHme9dpf*Awcx2YDNJVSsz^#$EcHo(}pu)N~K}JjmhjuBf;NXW-)XJ=ozszmYv0 z_F~|Ugm+*B*%@SMkg-7?2E7_|ZOCbk7jVgQ80R?*fs-H4;Rw9_cn))r&%uuq-cJ(r zcHrm-u71da4(~1r@6-r7JYMJ@r$3&kGEp2QW)0X+*E5??&@#Dm%@ovpIV7e{W zZ}GQn-FKMhrg3iV`!rAd@YpiO4fEL2-X`407Zh>`LauY*tHhQy-m(T;=18vxK1*!E zZa6KmX-)XQW6PS0#l@z3v1LA+vum9rMLq?tm%O<(eI&FLmbMJ+U3(ba^BIO z_b>d%o4@$)$oP-6ePm2HYjN?`;ktAEs1p)$jYED>oLiT3Yr-cT{Lx|W#D)IP&FexR z=kT!nqd3>+bic1i-5Zy;fZ zya#LDgOAAER986p3i2Kd1V1F-K|X+E)PGHR4~d_j51oUnpW<=(L_2Up;@BiEK;jbQ z6PWac>tFc$g|_9Or(E=W0sq;LDX%17Xyb)8UbtRe{CuH(xhVO{*ziMAO`Lpn1zQ^b z8~#Q%ery}7JfD2$dfew!lOxqEPu%EKmmwF;5BE87qfIqCkC zQ<2N&DmOIctE61glv9!NKyw*(lVh54FA{G)%eL@$dKlF8;-T zyB~dLKI(eqXTS3ovh2%{pIrA~K(%=5 z9(-{R9Fulp2LT47y5V&CwaFk`|K)rysJRh~B4;;Y4{VTqy!u=~b@bwW6V=t9F^jgxcT=L=%D4hRV@;%OA zvHNSo^&9?Yn-`nBHmv!ExwG|)Eno8WYTI{eh1SlNS7SMWXXP1{x)3GrsN`}L z{zBm@6#jA1&&4(>yqU7+%08@9_tgF@@B1iwu<%{V{ww;s#C+;(-(fGDSu^pP5+f?{ znL0D(Gxz<>ee+Ju691`7{i$nTm&PVPvgC)=rTZaAvM!DP^3lKgHXL~ij>IMI+c4lQ zc=9f6D9+P&;mx~zvHVeem#>w7sl{#j9t>#D_5&CZH?Hr)h5YO-SF!orTYh5W%e8!_ zRwKIkq#8%7#jRW1y2;m;%h(U#Rqy!i`=>tPVBFM}JJb*KB^RsZhPFJiexT0>{J9U{ zR<)FyFTcHGr`3vUexz0-uG!fA!8v#hjnB|(E42O7>J+qn)Amry`)N7sEw7{H3H2xA z5KnG#=jQ)zzM|fM)whjFu1{|p&$jD68~0~e_dq{t@wVKJmfO*CS^EP1!_OS-(t%qr z?!a7p(?dLU@L3Nr)*;?H#9s$L_29!E{MiFHVchxi{=ucCzxYo*rXin=!;d$2#1%<~nkJh!qU}|AEIb*0r||tCH)3E*Nyd*tq83HLfrE{c`Al zIlma!7jymc!ExZ2{ca7utUEqAti=~|_yUuvku|=+uV1VaF2zvuX5do~ytAQp$~e_0 z89m6|L0%8?d7K*S59gi2t?a!)mJd9!K~@jX$`ET9Q8-H8vg zPq>YY46-$r*5L~ClD`%^|BnBz{>6XtRs%0OwvFB15493Qj$3TQnA_Ulp8aM%+vc%t zZrgC2XC=0cV@KQD=CBRB?O2y>xNrw%+lI+;u0wsF*f#!c>$7cK+vX*<6nq9DKQ?yE z)w34c=CA`#@=e8oeh$q0(7A`^aAipioZ;Eox%Py5+i_|9m&Q)s#wBbbPe0Yv&v|&!9?E(6V;)wL z&z$$*k9qiH{z)f=AQaz89LzgSAW$UNB$&^=_ z>U*Tzxa9Xqam8GRtJYy6vBt!WNIZ*Nhu7BOA>4>0PjlV)#1@lpD7W>q4IA5A$zPP) z`rQ6E{#*Nt|Lld_Hok3m%brN}zLHNU#U69l7Cfa zi#&Agp?>fz62~IhJc)0Shvs!Sld;y8&pi)~?a(~EyD-1PgI~>^uPINhAtGrvGUd}Kg9H0((z0$@@zCiC=sF(1=E7(CCsMNwN^}*}qx&z*L zrN3ADdI=|~Wm_-dIdyDHE?CLCE%{*e3PzC&Ra3`aOjMTVg=9;Wu%i+R)a9Yw51qFa~~_qU&qpV&;GO zkIldMk3C-ENyV>K+t!Ahs%`5_R@IKR*zx_2`Ph5Kk6xc2IgCpzvOZg%<10AN?{d#e zZSRsZR&vbBekgUk>!&fRw^2Xc3;ddr%U@zKrN&47H1D7A*_koo_>@{1b?F{mnhSYT zWJ!yYwD-KWI7;8;D-3jK&f9dpcwW0-y=`seV>jK?cr-0{yXlptms&1% z^TYKQ^HHO`y$iU-;rhTjup3*Q!j{9(->lm=nC~3k;=>($w8Q%kh8XPN-yM9n;|^>j z7BS%Af&Vn_z$$lP6LTEaU_9cJdjwOwhg06qIcAvchfg?0e!zGS!>9{A-oN|f|J(kH z|K5M_9qjWCc9JhT-oZ@o^rLp%c=y?H&QIwavUaR5JM=@=4!pMEy*Y!-9pvv|pN|b= z|1vw^yD!@M0zZ8*Zgo<}7wzpE*Oy;DjcMPUaIOc=^*Ax_Qy2+Xe~@2;?J-W*9Wd1? z{B)|nQ&@^D8>hx{3e%}EI>a1@Sm6*q%roP^fcfw|242Td<73Ei4e~3`( zG1T}Ec5%Ga*Gqc+L#ty8(ml5()LoRCU8pqC!18&+`_rE#q!g}&h19v9ms>Y6S z@4`nr+THQp-mFddfUOxj#xe8F$!`s^CU&ihm|gIn#IFA2=LAkz(19V}Dt2JVUGqP9 z0UP=K&^!;LWj#eZ_xLXC*Hwq{q_ zxzgXYb-jX{@JmA-iQxB$>sfo|ePupZFCEVv*5ul}uH8di`e1JcetqzngxUkaZxZTC z#FgK#-J2`xdu41mV}UysYEs0Nb-tS6AQ;0wNP8mfk(`Go=J})M>CkyNXP*9@r#I)} zjd?oU{z&^I=k2|Dy4xN}x!*~iUnS0bl70EX|0{5b9OzupmwIT)XOZg{K7GemkvIg&hmjjF5{^M`+;PAfVr>ae zC%u%gdXjg!ZQOhsG4pwev*l-NCw7pZt-&D-gA6zY&-6!6r5cZU2G8K4CLcudNhCi+;-RL!k=OdT_MNyv z-pmdd?M6E{zQ1vu`ZINVhI8oUdDvk7-~7KXfAz2XS@ZNJnNaieD;!+nR>faXuyFA; z6rVux2h;<4QEkz}O|RE}hj;5Wy(?d?UemR&>DbqFx173qtv|J0OYFYX?ksi3%RMZd z_mYECxbdYfd8r3pa_>rxUdi99S8#%SzIrwLeb% z!J=DBEtFcG^=q8`z_q5$P51-HrZ)A5>r!|wwW%=`&)2F@}w|x6jU!%TRQ#sY8PDb&;6n#|mQPD?rYK`RImpuIX=^A>AZfISamzpZYcC5?U z|N6Pq&!sjmVI_GQEgz(B^BvjWEuW*s#ahg)#l`wAoOKtrxC>{An>E|7Vf>zlo!ERm z52wt-JM6-K#P6jBML+Vtnhq`3x7DL)dHoGrv^?#81UvB&^&@>hf_>ELXqclPX-6(_ z%kAz*@Yy4{>5)F=tG3+WR_CMT`Sv3??2&Ok;xCgw(hp%CIl`^xQLBs5Z!Z7UZ~4UD z8b6*^zcsfHFyx1I*vye(nh&<+Y&ZWw@92|Xq4_6z#~g4|d&e5=z?D1B zSC^;ByyjMz>=V!gz|S{$ssQ@OzHATjISn2)YAN+UxpYR{t^nTm1;owKZdmHavCl7lpX_LJ)=!1cOG3bJ^ z4&UKxjEy;;mp)<2eSLbb#qeH>v9GWF*A8RZH?IA+j$MZ_?dyME+edKYDctCNor8@! z*uLWwRy{RFcI#mKj#Jm18q29Mv2lkyh4IUI_+kUcYy9#ZF2ul<82A$dUt-`-j4OEf z8kV82!~2P19)^%#9rJLDcZ9?OOtJuL%)?>c4-)h66gxNAmBHQ&Hfpdn;}uMzHh$2} zp+-rtHG_PPSMPBRed4u-{TgrA)d7N~@S#IZ-cWBh)Y}a;cH@KV@umZ}I`F82Z5q4A zu?G|FX;=PG?7}nN`yBFrLT*s(!I}L3AvY-SQ-c2?_Fy6J$_sIT*fah;m}L+4+cVZZ z{p`U&dq)oVMt)N48rR;6!+hi^#U6}>7ZZEtf8hTE=O6e@j&&Sr>kwW#GKV7=?HKlx zZym=otY$2@^l@$6IP@`F*BkBJI9Cp1+&K5z9M$Uzy!*I@J#NjugA1==PBmkKevWH> z;NOSZVsZWRkNo@gpYWgc!^@8uXZ6N7aR6e5+h;o6eanS8*ovRTeaZzsjs^Y@_b}CO zPrT(^fGHN>q6Ii+9&TEIz2;#i_c|BgmIb(iEtn7CpeL~06PVx$jPV3MkYAKf;Dsmf z0^erxQzTrUd=mK*etXGh#NUzhX1>+0x@W2GS-yiq*hE zYRse>G`ZsX6_{zoI9ApjaN3G?)uKstYI4IlIGc&foj9c_hLm#tQXDDqMsve88~WUU zcQ$7D3-;WD%kYeeWmABlk$mJ#m&3 zhdGb5e`I_|)&b8WkMyG^RH{Fd{0RB&xdS$&qw=Tm&`qf}XySz?y_a-WstuU*R?>Mn zt9SiVn?J4DPxplWOTLGs=aPO*`Z2HIx*6tHH!iQvVK?Je3$Sj%6u01l+w>k=t>)>= zdAfA|mjiZ~hmm0OnxFmt-2p$%!!7W4E%;lVgc7T%2lVF~pK=WAjcep2mYlA7Ltnr7 zxBdI$ul|)|SaRwMXSmdzsWXbiCuj)hu$gj={Z%Xa zwNHvqv{qm&b;8PCD!z$QIDvcC$JuT6N&`xk1{x@^Kjo5r?jOq<5KX)c@Ab5mP* z8ntOWn=lRAvBXG9tfc6xVz1X1^ARU0vb*p!OPr*>XcKR!#8B#swG%%n_I-WP)|U%7 z$+*;vtgpt%e^F{O6n{p|-t+M7n>eHXe)#Ux{K@$G={vcF_4DVy3OBg$hzn1*@QUl_ zmH({+o^Rn47hXs4j~9P>@q^c;aq@Q;KYLx$r?=_R+w|gXdU1}fy+e22rGM|zt++zX zu5W(to~Ps4@y*}e__-~YtL1jJx~u)zb@IDfK2ARtpTo6ixzLTb+c>`c7)E+BJBRN_ z-Hle?s2|b&a>iP|em~~pdaR#E#_@>0rfd5#Y$9*E<&L#{=~n-tae(_VEcO_dc>MT} z{QLRO{%btqmh<0gh_*TaE$6=NZT9D&)EC}4MR8oLh~s!Ox-)y zV8@vGAe+yi@xdC8tl4=DPdC3#e=#QhoaX0gd0?$pUGsPMA>49c{0GK<;M_xNq84Ev z8Y4e>AGi+pybsKQAHC(J_IG2Jv)b}l`@6Br{p#=5Sw4M#Uw63fySaTg_H);qyD#VZ z!OiJ&_eY$qafkXs+hQzz39rDt1IK&ZU3Z9w@?j3Rcszn7#BB!-){vJz@Ug}RaXDPX zftxr!z&2{n4s|t$82?}s4|ej{;FsEmN94c_d2M4KX4;2i_F<5HeaUwl`|yi7k0aOy zr+)D1k6+ID1=Fb2Gp_0J1^Sgd3wkOR=->r9dx6eepws061>6?ww_yK;_woeWFw}Jk zwq3}z3A!lkg}?!ik9;AY=}o@izy}EVEusEF$bpH^FvRCIhxXJz2)Qfq`QP>L&;ROQ zc`$)X5aJv0Ss$Na4!nbqFB6}&uZ}`|hF$oaLo7PfWQk+#-}vs@_-^1Cwc|ouA#hQG z4IVe<#P$v`hPa{2Z{V7nnVzS67U+-#^4>g?%uaL8g_*8jr-$iNxw|QsH~H1_rQgLA z@+BQ4j*x1|C0|;;q({UE^0n{PwMq7Jvd8l+y{OJz@_{CQXR3#i?1#iXPW8KTMO*4} zrTSi}R!y#acW7_LSUf8!S0m+K^k6n9gZ1zI(jV0e$;=$!Hoq44HV|r5FMIP(Zx+d(E{Ah^} zmq*3|ho$_Cw4d_We2*XgE7_y@(^`<5`O9_WYU5KUxtc$%lYEUNUsL`@{xtVrGkvWM zc^FCFrktVtN$*}68-G~x&n16Zx|ivGm3l@sPrfhEH?VTSSOtp}oK^O0Ezl_s=rZ{c z^?)vVd&fbZ%Ll8sZ5(}=k?0I=%#n)N#!s@N_-~K!Q0|j^2+c^jQ^w!w;REvML)PF2-$9hYDy{E5M z=$jR|Vufy0)2&wMmlg9}k)OQw&3)fI_pQUe^=4ZYd#X;HcVa##+EjzMPW18BHF9i= z%~*0K3ir0~ZtIt8epwfLq3nx-!Ah*T=g8~ZMFB<<_*L|P| z_|W?UJtmgdOU5owztya1aleL_8W!)Br9bxX&0qbic4Wg=t*%wC&UB`6tlf6pb?`6X zVz(UXR&%5`>8VY2J{;BZz}h|U&6!TM9|RePUyz7TXdvrez6`lJVP`fN%(|@=J!G{`e=_I`UkdG1{XP?^S_X{{C`1=B$4gSL5{|h!$ zu$uypKH!_cy@~_6%X|D{CZBJSqw<3D7CYt^*{m*H-XiO7&1_-vQ|4EpN@90SJyZpf3GQAJY@+oagZ;$Lu@5A1^z!t!8{4uRFFJ^vEyglO_3!-ut!Tp!76&C0V~p6gni z$#!xQ)-71KJohEfqTt_>gHem*nw*OA{FisS7d%vQFY4V)&*+CtDA>8YFRj#dDRnn% zm26dev()u0^)_pD%b|aDVoIIQ^8D8-`MOG0uFmuY`MgShsViHn^wBE)qdrWn8tW?E zvPu_iITt^^w#Z_9`PwpvE%U;WuPr)dUqA3+!HNYVm)Z%nZ%zm1122|mpu~l1-yGn| zQn#aE$x_FoV98Qrq4w#|eQU5!H=bA*wTbJiv8ba^UybXV>-hxhyWjW=%l#?$quhsb zAIg2IU)EUeWc~W%e_s0E{_5Xf*5emlBLA|)Q%hX6yi2sM%;U-!udFejTH~m-Jh#R- z>$_wH-&%`@HQT%A$rZ7%eoAJjQ_xSz^rvLWQ*uhpf__SVJe|pLGW_Z6JTgpuf__To zJ|$0{lFv`cYqb$t4skzy;UHI^k}Xg5qvmHnC1cb&X!p3~P_&vE{eg^=Q`VmGaYl}L zZ$^908~?od+IophQYWM7`=;X?&TAO3-Oq*znm?vj{O;bid)uq@nS0)9v$mQUy`~Q} z4q8rH)9FpW_om;(M0?koh?Tb3X^WRO&Ux>WmAm&Gbd;EF!+?#m*mQTRGuCu`@9#OR z6RugyeQaE_=6CBO=i{06A(^VKPm7cFp?;6d^^p9=KWj0xmap4#9a|n`%YAG)IQ_#q z%Pns?<1II`e`xoIImv}=xsWXfvgJ_r4{}?+L!bNo!gn~jEoR!{3600rm)7Rex?CEg zy6&xBe~Y<}yX+-)^?1k@V&@L`V|>5|_&{EhJwvUoAznS`-hul(__PN9)gWtzeLL*$ zf%h=Z*jK-f|H!}p{h$3eWe=3cicLw}?Z!LtcK~BIDHMO!YbQ7Ws7xmdBsZ zTjbX*vW)*J)$mN*s8kOk`J__*Tgr{g`}Dy5IS2WV-;xi>MjV&KS4o_dd_`B_q327o zj?Xy7?vl?vVatRe6P8T)A~(s^&5sV(Z0bYoA^CA~n{4G1PX6GOXO%eJc}#a4lhd>J z)2Mx!xWMT>rumCpl>?o>X7X5n{NeeF-2cVSP|GLz$K9pkp*_ytl@WYdp4A%evV)&8}&>tl2Y7AGX}@mT%bd4ttFp5%X#B zpT-wxdATjWthbDLi@e&_&bIz`^@W$xI3taJ(z}}ueeaU7I4X^c(!0j1j!W-qA0MT^ zm@k{B)m!X+V>u(iI%I= zKdg~Fojx^I_Ei6HU+}*B)coaAw7j%FC;R29H6Cu`@b=8E!hPv0y5Wj!#Z&27eU8Uu z=Z8PZ0wxU4 zUVP-Y`N;R;{fi;~7<{&Y7ax4J!8aFTk%6xoe71RuJh??~$Qw>|i&GA9-Xf1~lWDie z5;+-piwse7GSvdiTQf{c4&8=Jy}K&!!;ufk6*Y;H&6hZ!Ne?91pW@_)dLvj9oezycXK%Eo=((1s zQ13j??_fu~*T0|JbI-J+7Fj>{EU7Qi@?Beg ze?NcV)1H^F+RtwO$iM&VpZ(Wr4YVBBR&Suy2k7UX3v#;`^=p4M{%os5*8C;CVmzy! zl~vy3ZdI30~+*r(w=CsS z(>h63J(gd=|-nk!ow_iDw)aHQD^h zx1RQJp2HCKbF%-FJWKxTQU|>j?EiQ6GLC3@7el>+18~p^7p?HpO72j-^DMlhv)_4U z-p!s#c;MZi`Wyf8fB)6LpL~z6QTQ2!r%|6^5p|zReccQ zedd|M!)TbM&mQ|Ef6j~v_oCs+KG(M#l%|jR!a0}rGd@z|BlV^0uC#Y$U9ODh+B>^u zwL(AAVQR_^JczNy7X)_=w$3_#9!b8~+@{y|W?0(ZKJnWLjD6y~ z6PWwt!yozg|NOK6@|$zTERzmTSS|5XOZ=rC*lXS;Qeyk{4!*;SE;0UkM}Md}R(M5) zV^p8)f3?cWJWEbe$xkYNy%PH>@9?NYSdee7#Kr2s@89Ww^Vwmqk{cxlz0U33b2>t< zd65-$MfTitALX~UysMVu-Ey&7PIt>~Z8@_2!hL&Tzsc+FrP&^|H`M8A^?6!OYHyKi zaC75*^d9*uHqm?9!xw4XftKUad#>NJ&+tf^-PAZdz3*Q0H#E%L2lnNO_UYq3*2jtc z%N}XANuStj?2|sW|Bk;q>=(HReQYn{a`u^a&&a$p`-B{8d82)1FS-AHw(2m>GySQf z(r5ZQo9#{go!Rf|dGy7x{pGt$eTn_{mFEVpw{ds-dKS+kD<8gxoA7?*T#T)+_Sh5q zi%b&h9PVZCzXiWr+-F1LX~t`@G4X`>$UdY~f^G@E_L%Wf)k#k81<3pB|H`NEka~>C z*PVD%$uE>R>UqN6o83G4q=gq>?{E1ei{7zaa6;;x`;I$bpU6kC)>5mk)UK;7duGdC z+Vc0#^&k89|NSff6DQ@xt8Y@%0O`LXKXu zCtFOT*;g$F)#}}}xI*t+UtFs`aSu+c?}@dCry94hPuzF`XS{eM*532FiD2dW&p(skDecx;R%H_;Uxl&_?aoO?MZwPdw(P*HFrGX~ECJ1p88)!7p5CC;U zXo!H=AT9(5Bn58T-uqplmB+B^tN*#@o_o&s|Nh^(-RO-`J>6$~<~H;>+|YM@L!ZG7 zv-tR4aOgX~q0ioj*%okr@V8Isw-Z8pJlq@Aj(>bdEzFtEd-tLD^h57Ggz6LSi|!xh z+GpJgkJJ1WBQ!f04=da%LIPv@Tzu&z+;X6wwe&65Ke(U3e z&t;wXZ=PRz{r*JEb69^1p76Ke39l)iu%Ax&Z298mrf{T7LaMAA$E_y$FaaW|b zJ?MStMZX=f*zfVn?@KK9)AtYEH+_~U{LgavV_NtOfB47z`WNnVe<`28#NTgfh5nz5 z&})dH&sv2(XBxIgn$nL~LS6|wY1HXlr&{bWm+#qxzIPM)TyyBVH=*y|gnQI(kG-_V zUd-BKzM~WR9!`i$m~*Yy;X?n9Vz{pde3!!e{R=(=yx=v?1&h`u|EpziAxC`O$Zj!cJql zVW+-MJiIp+dd)QS8KltXl|tX041NDH9PoFD-^4ue`~2hcmW!SjE&e>(ztP_VQJ#F! z<+(_|=O2DsB>YRfcbU)kmqVYK54|1{dM`NiS-j9^`a-YWgkG-=eGV%0IjPWVrwd*) zTCgWi_)hNPpWEyGbodiq_!D*aS^v;y_Cl}sgkI|neMb1iPptLlkvD1fC-Um-qYF>} zd6bj2{Qp4Vp2+`d`upzp^bfs%8~VOWIG~okV;%k%HH$v4;P3T?=&`fQ{n2MN=6x<{ z-e;8Ny|+5=GfVS6pEU3DP4oZ#e?Suc68;2Y@ZaIDpcQt(pFslt0{$Ds;ZNcJffO{t zpF<1$4E`8?3hj`F4%q$I=Ku7I?_YlN-5~gi@4@{Nd=-B33*ui3f}MXo2sZq(_&3B~ z6~8Y29r5pq-w=OY{72$H5r0Gcw)ii^-x9wo{*L%>#D6RPJMjnNe-Qtpc!_wKc%^u? zc%8UWyh*%S+$`QM-YMQK`ajxt-Y5FMig)_|VmJ6dJ9qkj6F2z3>vsD8!#4OooOb$u zbT;_EOm_PJBsTa>|DAqUeZ%jIeqVTl-+0~WcQ!Zpt;3yuZ*GI%{MzYvmp1tAo1K1t zWP{&;*y(%t8+;df=PuEA0(bge)&}2=+3EWU8+=B5r_bqb@L9>7KCiaHXNGqA+{Om) zo$vJi=^m^6?uPN;Gcijfht#^8Uv%zD`PWyZVt#?*~;Bp%OOpG)q zanP`<6AlCoja$UGVN-BLgYoZOJf@_7JorQXKhS?vjQ;)4IhqE7hNc|sgZ;)H7WW3f z@{2*R<>GmouF!uaTm@IdHE=Cl2iL>03+{%k za1Y!IKZN_>es};Lgl+H;Y=?(o2Rs6g1{-nxah+>J(~tB$wysap>u*tP!j_-3E=@Z5Osn0HacSZWfp&1g;0`lD@?_D(6)dnf(2u_>lrHij` znhU;fU+lTKuaRcE-c+~igBP4D{4eMF^!LMFP?tt^X;h;|wP_rL=(+>J9@i~ieBG|I z=3Ikwa0br91^5I$4n8*iTXPrX)p)7?33wM4;RJjJpTcpd!7{ACDts9Hp1r;4;yHHB z=%0ovl%W#5Va(3|Wz1>)AHf2I!JzYd>gO98UtF(K<4baS1zv^M;B|N&o`YvW%^IH$ zenC;n7th@o3mPuS^MbiA;CKO#3v#(|3f=?!FVNz``|u&q=7PK$)$#&f7mjJG=LNc5 zm^L?+Y}&K#N9ozaWPTbJ}mfE@*;AQ2WMqNXzf8;0hc!%wMcC|2Fb(BmXu& z1l!?Z;NM36ZRE>F{%qvaMt*I440yQlQR{s!z5p+qdmr$_u3qSYXs-?ge`viu7q7RA zZ+7v|u5QRe#`XN#m;@eeYz>aO<~#3S#BmqT?b;LkiW~XXdVj;Nll6PdsbHi2=j#0( zJQwYkL*g;`hI(8Be*_&c24BOc1HR>&&F~of0sL3<{E=vR>sHt}K;FE*)plbScFcayp|@m*6K_@aq_n&{hvM-v`R zG;ZRFCZ1^GiKgAq0iDnV>e8epO={SrmQ8BZvth;X>J+xBWI_Kza}__&r5Ya4KY57@l#&CW06MLdR-!JuF0!OUcFtQ3P zP5fG*cm7e>4v#p-JAS|R4)I1%$GF_`55dFQXGCkqPs3Sl_m_N>%SWQM<7;pZ!r(Xl zhUbAN>U%toW8D2Y-?Pp$&*OQ#^0>yAU>PpJhx#JTPQfaibnHHsw=eSYjjxFGjngYH zr@TFrr}Gg02_9><{t%wcu21kpvpJisJH#8!p8{?}^dH(0Y{PF)o!=Ke8rtUk$M6~8 zkx+vnz8F@AX8aPDi`H+ZL9^V49su5H{siPdbeD+p5UmpGoS<7Xof7<+P}63)4Doe> z?}lhS#HY>n!4TgJ(Y&Q>E%)-_VeK)oAV%#;C_1KD%allqVICgl$Kf~i%|b<+mc#1Z z@-B=9&GOr_Sl54;*24!N^4Nq((_#9xye-nOLNdEOj%`a)hoUv>Z9%`1)WG#~*}sjw7@kd0+pX zunD#}o?YiO!XqPd`ZkO9@(4~THBH?Jcfbw$-UEAhgf~*R!7bVgqPmQPP}An;6x~y| z!bVV|5jAU*MP<d;QpcJ&{VTZh_Cnc0OrW`!ODAmsh)5wMT6}8H?66 zek^LsZw!|)8jPv&m^s>y25I~UzvMr`zY}+?=g`ruP0I=Upo14CXx_nR6Y4iX`wsq^ z;DwGpklVz=zy}@u;&!n|RO60LQ9UNqW`aj1)P6!;C)91?KCm}BvOz;x{uB3tT2K5? zpL$K$vmJ7rP|FG4n0Ux>4)($x*ay3zBRDCKAAeA>%J`M#)J@-Rns=*1x4M+&Q>H-~*Ru7yXh8M^f8?^B;Xa~-RS3 z$J!mxuKg)|qOE?%)`Et;t~@6N_w2gvd(C(Jgt0j6 zwf6BP_(0pdd(D3w-{T*`YS1vy8Z<0gV;~_KKahl!HeLfQqV*Q>79kDeWtuG0ZSeV^VU=#Hj*l;javOXpXgH|ur>uQS4u{@>a?o&whG*34@MG|!pyAw@ z$IxqoUbzge)IAjA%UIufJ~8vgc_hvwas1=*h|4Q3&%||bEnM#&c?{lzIrkpkYrNAw zn-%ZkQT1!w3U~9+ed0YdHgBVGF>}P^693$_^V;T$$u%a=m^_;=G5<#Aj>G#*fZgbtG9(x|e#d;|^jNvziUk6{t20XSJGt9p!xwbpkj%&N~ z1AGv_-Sw9lWBtSpVBR5G4HvDyAdUwA{#S$G_f{|R?-=f5__f0ruKq}9Xcyb{w`-5# zJ+VXn)|;_E=H#_k&I4&R=B=0eB zu^a2PdO&*+-h>0LmuK9ZdEA??63x|o1zf33$3PbJR#pr;GUIG_k{aE zLhV~tz?k6)D8V@JPRoa|1olYF2e23n;P-=*7irVN>!}Al9@#s?Z)?+G#6C!EgNI=| zJOucU@o&5RGiI)KnvH3y0@c!>1dU4th>J0`i)e zUYL0c^v@iHygt|Vjt0Ts@;7&#Z^PWBYD4!v{_Eq*_wQQQHm6=W=W@>FXn5Sc=D7Pv zj(!8Xp~F6-(V2rl`*Y@w(J;>UalUW9hURLM;JXBWCHOR3YSkOT{Jm44 zzgPbp?sHKtXXJ6ExF(NI_Y^)Ed|5tfdkEi{+QsCR$2)ci4hMgL<2O!URO7fk9luwe z*UINfBKbj^LN8^K0lBHRk5}9^tu0>&565qf?Ad zah&2f<#El+vxOclbZ;?VOQbt}yJ;7@1>_Ka2+T9|jPqw*6Yb51VLQ$n;RffP#oNA3 z*nchO;5=L~mmEgS-~K`H)vtRk;-iZ+%&SF=PI(#+JqORrs{+%mF~^9tM$9o{t`yHq zK>G@PSH)$z;?zy|GJbPc(a0XpiKm>;(=fgxxXzlv+C^)2L_WP0ToWroqz%1VJ^}i+ zd}=NAY*)iYeFtuGUY_ws;bp)x{v^;Sj&EGv@u-fk06pWp8h;61gcrabjnge|&iJeF zRPaYQJ$EsuW_+6OgxkR0$sZQ+Z@v+3hRwh~&2(?3Z!=EKYSVl>*l$B`fVmTDGW42g zjs$-u@JrBaC=Rb{^Iqb9?U=Yj#4{nE1fB`=B=8@K+EFcOn~-Bdu0wK3$T2~KgnSZm z8QLY@8x-a8)id?In~>*FlYV+79$fd|5M2_yHqMJ%>L4UQfztSZ#+_ z;W(TCHAu>Pcn)e11`Wk)^<6LCpjP(6@Pg=ZCAkr#M?h>pYWJ8S9=k{4N~RrhC#F!;7N&B(Kw+6|aWN;1b6?m{g;p>qb5i@fyJ? zMb}gd&^DC-+NWrqqR$9_6|J43Q&G+-wMo&Thf133Gr%t$@54JDo5sbm^Xl7CgJat2-Z2Ri+V;@|Pm~|U z$M|k*l+D@A_vM#@Z~U6SH_zAW-EE$-@!i(xmV3{>b*|m=FF&DA-MZ!9ZSAt$XUtcY zfB8w+4stHr-`#X5^xiy~_4_IpQVP@(!SPH%-b9i*o2zhi=|4 zKO)k)+rI4%L5}68M0GPn!>?_H?#pDC^LopJrl5YV;P_+Hod%4x>>y|kMdg(4I{ zf3N--xzCJf<2j=)y>yzP?F>#ca-PxOEAN?MQC>4+qHB8TG-GV9HGAdVE5Baj8-FN9 z*Q!A;{bpR#Xa2sU9!GA2o55c0I{*XPn}eUp<>Z&S^zGMYAI)uA&uQ*f;|_uK`wr`O z-|0I7Z)w}ReR7$*4sOyuC|)Dx;Y}EHd;{E~O_#Z=J%%~1iM1=Vqhs^uHiJ28mx<;) zenE6i?JCiFHFM^mb~#+BeSI*CbME81{%n1y_Sy#-}*aVgZZS+dGJ+zbXun4GF_KxJovgu!@)P!^H`?gvN{dE0=wWf z$22{F|EjfDaa^_5Do(37tm1$0KF<+O!$+R)-7c=dNjL-c!~y(1!hKC{hwc<{KC}hy zfV({3#pTSA-~n8}{b`-+p=sxM>d?E+9a`shmIu$;hld{r`|z-Rde)f3e0IKBwAT4J zeCRP>4dZf)R|2!{$ozNUAl6;pO)E z|G(c^;){~`(`uNe`9z!hPY54qr^F@u*1Fv^>DAxscxH|t?Zv*L`nxtXN63p8_$Kx+ zPISr3Coiw&2VlE)Ufc!`YRj?tA-Esto#*X@oD)sK0)9I_tLv7K^HA%$UPHJf)NrU> zRQsVc;F@>?8i7`c7~ndzTfR69t5foBP?v%_CDkdZPQz+Btggdy8a@YnKCIrupTcMG zF`PG6{f9phx4Qn);5!>UpZUDbZTP}EuM}QM_k|QLMH&~am9j62)+(w~(YYcnMLde? zRkVK5yhT1L-eRnLQuwCiQ?!?h)=G7XJX&&GGN$C3(v9GnQq;dWcoY|JuUu3|>!sBo z?LJVt39Oq|o08*Hhg$Y)Tesx?k&bHaJ~3gPj%DDHi8ld{iG7YwiT1_BVNkb;LC8Q3 z)M`TgCI+An7isN<<%V9l^~!lBI%nP)$1@*jN5Ekw8h0F`G4JbB zlU{sh7D0QCm-@y;`>AhIbYGa;4!qL$4wSUF2H*R;LC_X_W&L&O+->^!aBiFP8(7Xe@6q;v%4?^A! ztv_guW&Rmd^W_myy_bhYepnuIzrGdlIz|6e>U>Il4$9@A+z!%i?K1ae9M8$^+_?L$ z+QsA?qisT6i*)V&6h5Q7bA4s`KO%=)gAATu`-O{m=H)lk;a*|RB0WnqO3U@s1#8Th z({*v4%0K14N5^LCB-OD4r@m=;7w8dt6x1(PEL?64IVAB(s%Z(wR4?>E7BaXRm!wCk8(%d^(>kpt6ZGudlbyq{Der`{CMz#zvu6P zhPpTNYS=8d=17~z!94l;`zQ_BEHd#DfgIBtb5*zH&@L(!NtB%#eQ&O>`aj)`{Y zgs9IoL;cz*Ijcbux570y<_{SaHY6SRL8<5?FWNb@Lv0pcj0FJ*RAVa zxWV~nKy3<};TCQACTUQ(R+LlWYPd?9e#xl*a!$%O`H+6Pr{tHSXA!TIJc~FM`Ly^f zL^YCA(R`@^coTAt@lLs4r|rYy3xIDC_o8`=<}W@EconT*#HVQ8)Ikx4BCf^f9QOw~ zdA0pwy&gq;QU})aO6@cER^G9GniosFl%_@6{iMWOrRW?FrD;)eJ}vjO+)H?;>6yL* zwgB&?@6^vXrO1nTPE7FD1s*$~{WdK4+vpPUc#_A+q}K7?5qhj*ap+@<2XP&V(UVhKX+ z&%_E$!eY>n!L_^>)T*2ZT9t?NUlv^Q_kA|#uU~Y3C?9c-?&U-977Ux?eQ_jcsPaWd zE@f+%`Mk^n<-_{$$jGT&0G!LbTjuF9pOkr^oOAw4@hI>>`Ax7NW@t5YK4{3wF^gl> z+%t5pnycz~=A6ifGiO0gz4YykqFiS_3H~qKC+gfAsyOtzHhby1<}+)?7(eq77~gBH zs&!`0XsbaLpE*A3QJi!<`U~ zyVv*!A&U3G1Ny|!oS`{F>x9+_`8(w6&^jSs52#OQz0h1C&oA@HV2h|u%Y41e&!II2 z6WYABthUQjFsZLu$>iT@Lp5LGirT? zf6l%Oay@6h^VW#bB}Tg#?PL1laraOhnrYWeuS6F1Kri&T=jbckCO!|eFUU2;n`!Hm z9^%cD_JLYvcynS^O31JPRs3-{%h;^lWVl)+j%`)WiL&F+GVa4 z)wevQ?Oa)XGsb4F)24A%yJ}3;ao+-bNT)Z%MR3oV+aOdfgl$jhUdw#nCUmsjj*Fg`Eup#j*hK5A6PC1dWYIR{&fQQKGx=+CQZ zJYn1*><@nRANXw9->7>xp{|L6b!`iGT8Ab{S`_S|Bp;=U>ZjJJ5g3MoJRXG|a{7@d zuTpf(V-p|AYZKfIH_3@V=Nf5dY|glvIuEAor2}w~W>xzF$9$9*9bSUp(&|dQ1N18nP#bj(|B6QCprvZ)!(~&hzBZQElgkXk5Uj@BpY| zvPo3e!h=Bf0-lA(K&=Wqnv9D)kZcz5FQ|3lZcy)n{F8J|%Ap|t0v(c#5DWeU*FX5$ zMII>1yBGttDO$5=-XeXA_D-=4lAz8hUMrfjXwITFi|SsaMQT(ucTs(cyP%!s{FZ)# z{`jVGDQTzqrxf+mGR-R`$HlbB59!Cj*wW*{1b*N9n{^MAj7vXL-(R+i(7(*$xB7v=)4`|+)0axbK-5{Sy(gXa`C*rJG3to={oTle5y_JiH}8Io4f)p z;oTGPA-vDSyilLwN>5m|oALe9Bz%D1Ts2 z+$2^VM{!QvBp!nr%)_EF@~+CMdLuYrl}}aPS-F(o)izfa-|7v3;;cC2@l8Bz%;BfCX?)nZbM|ZO zIeVD5^VS(MuBAuKafm(dUepRnpiAN~?-^U=mDmgLBDmkgT$d{GE{++siP;oFOGlSHO=;5x&Hb|MsDTP z#%-48U0^?CX<4;*s`f$EzM8XM-#It~XC31(hg082YE0W2&bg@ePlQzib~2%43;lS82OSi%|cm&uRDyt>oPN2ECkbew_yN&B`a{IG&dCB%WJ>`{eTN zzg^EI|MI$b^RCaEKXH`4V^Gvq@1YSG1@%h2Wlp@4@=4M%8ELvlluv3(I}3f#3;p`u zp{v@KXj^(w8%k=KhSCeh^w9QdxDKv|YiQ2Lo!f!GJ0H?_t+*p-#Q9{M^B3O8&^klo z485!O0RL6hEo+XfIWv*=>Q}v&);P}LG?%06d2t`$*LOk0c@B@cy>zF4jUVRZkb6e^ zIZ=IbVoeUYs7}s@5%h<~hsK5a58}K=>osei;nTD3b4PBYjky!{NUE$3ufj}lTrRO+ zTi1Wx=jxQVzY?w+8m9{`sS17{8~>VG?vfK7Vrm*QE@ofG=^v+mUc0%`b#J@gz9`^T zz^Q;^QqD>F74S^bAT@1n8kAm911P;r+ec`;QG8Uqfo}H%zxhqC_5Yo^KdKL``(tiD zT?TOaga)*zso#LSLfQ=Ca@cz3)VtQDL+9gO-*Er! z>Xz(x?)i1j zDOweAP91|8m{JLx&ONt9Qo9Ls0n48FXU z`62LF`J6oYx5~3wysOc@9mm{Da(YwL?)%KXwRULE!7gpwPG1tV;-CAH{~GVE)t?K; zaEu$5$1O1q^3UTxMB|}%V9K!^@^WjAIUm)(q}@b=eKfFkQtm_68H#kYc0s*|cpzbp zgzJZRY)CzZ%#)z=5RHavu2Y90YbBy}%s=$LzWwlKu#E3(e|KH)mweXql4Y;Qz@8P) zi9Ymwht(j+!1qpi42K_|QlHcMVDm@5TLF))`RvCT&-dV^vp%DBE(rWd9Q@?G@5)^8 zT`S0Z?7fIj{NI0{2EkFd&-)UA*W7;w-|_ly8Dd^r-Q=~(U-a5r8~niQLdy{II?8Ka zyZD;Fp$qU6e}8WF_uNw>|#Mz>nSQzv+In z2tTt|ci0bKRi_L*C;xB%y{`nn^N&2HieG&0c=itZc9x1gXu z0rqww<@k{JI`Btfm*c~(SI6RD@D%Pp`1^J4Me~%LFPbOyp;!dhrdGrw>vF6rI0C zG=Dl8qb_N+Dmj-{mr?{{OV&+0*J-bmaP72rJLx%j8{BKZZ*wfSPHSWy(r5p7y0&~l z`*!W<8f$dQZ*ns{5Uk-I`$k>sN!L{BdwlXi*L`LzZ93)9iPz*k`p%2@J67ZJ$J*8` ze=6Q-%?HFgV2ks(cG7S1Zc!eSKNM**xmA=yW;;Y{e4_6zeQJ~W5j=^*CGJ)9$vm!o zh4{4lR>bWp{dCMc0*^Vq8m@sGgMasr?Zbai&m-ernBBZygUWTz-vpQIqfwStnP(hd z3htd*Ic1&_Z*+WvwtH#iO1wVTepLH1xZZi^vTBrh*zrbf*JgHz@|in`pE;_I=MIRt zRi6O)WaVEqPgeeOW`(mUdP7Rps7?Ll*Zct*X}T$2m*i zEUmNZS*6w7QOHBly_|+~?v?#?>8I7)m_B}(JM36abMDjqbm*t)T*>1AZ{+wVgX^4o zbgoGp7S%S#D|1I+2;PDb*U>u1d;K)2xo&RMF@NM@LBD*;U*iG+uzAi^)^$HOt^Kb1 zV87>M#^&V{$Ge%%&Gc%fVKYq=#w9B5zn$*Ca!BG-+HEh=u`|sV&-0kQlD!XbsoEP= zHL2>Kdk3a?;aagwXSK_@W`M^A_sE}52m7o~=OK9)y39}Sb#S*Onu~D zDi+^f=U?h@pMy?ZGS;iyY##c>)GbEaJl*5;kJB}-PI0wqR_A;OA85CV(Ky=Ym%#e@ zMg2)pP4dg2Rtek^&L^B3IteRq#af&6yTba zdlJv2Iu_I~NrU7h;FzRQQGZhI1)3-MCy8rP-bwtEa!KN!q*pTHF8>s*ipI5Fs(l_l z*1klabyA=48}Fr|?Q(rQRkU8}bJ3hd*B5awnlE(@J~8exUN~4LcXjr!J)kv@4k}P2bXCC}^u+ z$vh=7eGm?SwbRl3<}KB~vs8-uqqTXUGz1Y}<4bSh@UT7OT&MLqo$Ivb9po#LN~GW9LusXPP^!ae%rpJ`Mh zoGZ6mQ;jNj=%aO})p0bp+GG;?w*Y;rG^yMNck54z_rtx~>EK2=UGf_j?cXd8RlKY8 zsj6qyoLStfbjspdrA^gZ*#|(LReZ8?%|`3Up~??c^~lmCyG>i3Rhm?JrOG2!>sRSe zRgbFts%lY{YgUeP6;b|KIalRZRl8~%(5YV?s=J+|WmRrfIc8~|rOVuh!B6F};h)uO zQ{{_ldc8hXTFr$p4K-Lc*UfS_@7$91Mz~)46ub+IFasy_-z0uOE4j{{hWGXHT}>`I zT;@)~sy;rc$svbtEv@f8I0jXihgtZ@xEqb3YyT$TgSk0a3C3}ssdNA0Im6t7d7^RG z8BeEB4Qgspqg744Yx;89IW@`AI!CJ-J~i6ca*p2w`?W@g%3az~e>4Wa+yT)w{WoZv zYwoxhT zNuXt@?t|tUcn4@PXuVJkLp2PS>i(fh};a=R*_XR=7tSht;>W>9Sf1ZvPG6v;F6F-yHmr zzR7jptjc9|+_<|vU%Cvggsb2RxY~27$HdD$r&7~He7;7{HC|e~-tmLL&u2zNS{;(# z*$8qy`@ZK}!|=T4RkS+m{5cvOHui7<_~bl|&+}DGZ7R>mMQxkgJf@%XIL@aD=MubE zkZaO$+f~7z$z#KBUQ~-B{}yS|hHI(lK7R-fYg?yN{+*-lYiiIb&rWsfG^VozwCWtQ z?hB%^8Ea>FF~dU@oGUMB^HJqlcoCkn2cNdz)UE$^ep*vIIp(ZaQ@flsb4RozKdMhn zy+ZSa9lohpcgqmtyux+WejR zI@PxF3cQLF-R92VbceNYkI^H(hhC@Y#!p55X}iWXJY9Ls+&!+5Q;nuI=a=bw;D_oU z#^_i$=-Q85bFFKaf^Ysa?~nY8i}X&vMcZ+pU5SqAqauwv?SoGBooo@+yOXagufrR1 zp+`Tj_HVJ?DS6>?+MYjcjkTLRue{fKj$^pS`**NPaHzYm)a0{FyX= z(%c1k7UWluck(RII{6uGRzbUM6WpM^403C`73_`TN%2OwSv%5mqiD@G`L^AnEuW%X zismfJulNC2ySNto9RJ|AF4i1}wEWU|rEw`uigGEvEfxXq(v&E#$u`=*C#IlXdlq=8 zG~u`v(vI!V$)spccG|BM`=ipx8@CPkUuLhUCRKjSz68&~D~{E&e=Bd(Y>qB- zbn3qg?&e$PYU-AYfK!b&HFM`^QZrXBI<`*Dxq%QC><#OLatq}WW`b{j+iT*#UH3>> z|Ba1-6UH8gMPs_fnn;t79-*8=S}d#Cpm|qkL~E^1!@Ks-eeRV{@U+?=e4MYhBi}@R*liu!WTHCIze>;dUNP4v za&`YXa6jG;n|Im1lz&`boQ`o`i1%BIHhFbv?g1L*PXXWO<&r-Q_D6F@v{&+LL5mzF z>N$Mz_&;PHC1A+j8@^ooQ}JrRefUbpu1}ahq5cUzXt7_1<&=<5i#Qw|U*%Yi!&iuS zC)U7xt#{Btj;-cxy#a0nV_UbtHO{GD>#ZVPTCWx9P*DGZ8Wrf&db_9wtvAC>!4mF& z_T7v2WPvvd?}OSG=vkOH?mAHGR$L0RP=!gyw}^8vrG1;oU#;?M-KbrGdF{<0_g4NX z919vo@8*TA@Q5}pqsF#9AX=l%xlz}*JtUgDDBsabgYW)xf8YJ9x<^KFDAHpT|50^p zwXnlILsZ~+!+jj6JP1~Zm)oWDUMtNa0 zy55+!+kz+Lc)p(F7al6{X4*a~tpJVF>X)_;O6pNES1D@KxWpG}wJ7ms=|kYjwECpg zqNJ83^)K;mi3dvRQR0u1^QCBRK1i!wI+~NOOKO`oK0P0F;4||(bK?ZuD501iN7=V5Dt$ZingfZxV z5*!3MPUf9o4o>6t*uSoGn|wtMzz|WI|&;{dgz&JW| zp3@!{=`=Y6-P-nL=f~P3BENOYcd{QwwQ1aWK|2RWAPal-sl{ZkDECepbgIYXetFZi zV%^RUg75#P?}vQvqW#vXZWZ}e=u^QpqaGPKS7?#Jv10v-H7dAgoUf#S78yEL@XW|R z<9tR9D(!$@g?1TQW$0SLE91C=SH-*;I#isiSf@hYiaJzw>z99p9@U5|-7?WU@~z;I zp-DxK6?LnaGlNqG=S;*|{VHz-FUafA#d%fQoR7}YzCx#p`c|SfqPbd~i}I02MJ+0P zP*L+tGn7FROH^TBmA_Y>W5-sB_i2Rkf?Cb5$L)a>>Tj61OUj)dj#ky9;Pl zT@h)RO=-(7+a%H`OW&%!R;70~DcT2BHOR`pYR_fgkh8U`@5_--s_I+ioormJiH)K? zl~vcOdR0FPK9e)l5(WD`NdtomnZG=Cjj1NXvJutopto?HA-`!cu(u7=z6ZG-6e zZny;Qa{Q!tGu*HJxOlA?&2>H8sr|5ch4>>dX8s1a+~cafH-Cq|9pZhCKhu6l`&Mzg zcqMFtjc{Y|d;h|3%l+Gna_D!>JdXWOh&RCl=J;IPtnWd13?6lSDcr982pBVe3vBg# zNG)n~tQ7JHTBBTxW+Rz^{&x97mZinntIo&K=;}_9Ct37CmR2D@CKeo z>pUB3>Y6hyH?@9`sqs>dcWT410{mFxi=6dp>RDUT=Fc3T*Z8qE3ah|dH8svfT-3B? zj+}G3sGo;(5u!OmSO#;1)(#KAfah*!0q=p6;C$%1&>RES3lG6aFo^e4->>_=#y?^G zI}!t@wB07m*61TuDaD(f4>fn>w8$H){?b>bH za0th>JHeh^GvAtP)?9yvE^F2~B#%SZJ~JBpA&x)&cXf@=)W6SlM*e5$bVz<@jXNtI zenFJyIr$w{pL5neCx`QGJ|ARlABbo;e+tz3Je@D>_57J9n)i5ahf5*!Tt@CC-YThA z=`7H_Q++1i(N>SiDJVn5{f@UXd{>D;uMGcX^i^hpqd0&6f4}JdP*u08xvJ)^nzw3= zY?o-xewxjz-MpIg({dh%oH=vms-5Jw$p7jV%4fj%mFwyKHfQQ>$Dc=|6!lQBC zZSM0NoF7{6g1bF8djfasXS;)j1^NzXANY~+tH$=r`vc>)2EX!KJ`Ymo+)!9r_wguB zZR$75J8gKDcsXsIG~Fg~nw0aT+$Zs!oR+)33e7W7#5?0$1@G!7@-oLff6c3XO)YBb zkaK-aO={{9x-L|^kY88$WpDz|$K-dHI?FZxLmcQcYK}DSou8ZE8Wq=MdxDMl|Lg~K zpJX%Z{O9e1c^c*L$l(<7O2{LtYJJW+G5Y53quU_OF88;}HP(2>e7(-$HHvH7v!Zzh zC-vc6SaxjAaTilawQsa>t&xH0u$ln7r3>Vk)8sx*3Xn!ryM~%-K6QgPT0KBQ5_sHvh zctef%ihMVGEnMf^y>d{$w&&zw?NJ)1>5x`~@he30q~)HL>m+@!KI%@ zG2`>Qtanh1iAThyU`!t0{P*=d;)nGgqOE!J_4iova?0~jUj9S0Xf~!fx>kP8xaWC1 zPoHMFH1C4}Fh`zmn{(#6Qrr)NVC`Y~58DI7JkxTsc&n&AOrPP~;1iO#j$F7i{$ z77&N87o%}o#m#U>@N2*Av$0?DAF)=;)j+eBXs#PY8n#61nX83gTIf1*xnpazY=Vdn z{fDD={dc-ra4Oh0E!G*nLyR~X({h#LXk9#paT=jhD{r;FV!ZmdKCREW)(7ArZM7(< zPeDCf9|wE0K$q4RfLB|$gZ+8S+h12{KUH1~aX56J9r`9*%MX+yL?c3IE z#-0`LbDo9;ek-iPXTWQ%uku@z?{kj%qV<0MY&Ldd@Tc;4?Dy(Z;bFk8*Xh8AM20Ow+)}Rh+~szd|SkmzHRo*sJgaUzsjhh-WgZR@jJDz5cy>s?=%mjKhdW>?waxKa2Grb>M(w5@azB5`@jFG&TqW_Io0v4 z&OHSDvYXc9e4M@jJhPh*cH=az-n%1y_Fh-S{}He+#(6re&by;{&hZww#~AZX&OuGv z9_cc+%RH0s!@RcKCl^IJOv-i2xh}a(nq!iux*iU;;=1Qcu9NlePfp6QOWnJy(}iyr zJtmg{he;ZB(WOfcQ}Umr^%TvzBF?m$qTA#W&}fopr>xhd=3VmYqQRs+F=-!6+Lv9o ziXXy?Ha#a#7$1#On@K+J+5rz}FNkW?73I9$G0nOnt>rvP!!Ei_(XcDxV_$Ts_hcxl zZ5N%pc%qATm1zFUgTIpVw*RwUpUDr__eUklnLm1>dDJt5S4FNF{T2CSJ^A`zit*7ZXO~;INrq#Mfji!yws9}ai(~f&w zSE0pZlrtYr^UU-u!Eb!mdjOZN=kUv#4HcU8m}6G`X4P%hwb^~5`p(jJmR{MnM77Tz z5P4@7kL*zx&{p$Vn$5~-mN&C|#7BWovTus=$`)W44m*BC>=S7|E05Vb;URq^uvc4N zv+9>U1P8TopH=_aZNWC&57oIh%*uC`e%YLOx0r`PZFy$*i}IhP_3Xnmp=E!Ewi?er zCT@Z4#vKvqneB%m&#`Dcd&Ro{W_f$o{+MrdZM*n7#Izg5C&b^u8TTJwR`<>VUj1o^=6rH}z4_=kx;6zgoOj*)8_)}F&b=l={|oROv^ahR zA`UM>7i6Kwxu~DU{jTp%Xg}q-*vI0_j*ab)=1an>`r;7HC(n6f`=cD2AI+oScFYe8m&3h|SKxhZo?1}z1%6%NqlIhrFF**VU|HWrYpc})Z!Yk1 zZV^7v=JVV!kr!&8h+Bi-{#PC!uBh`LtpA?e!ga>YInPJAnz5hCS8Wz9g}dM~xWu_7 zk)LWjws13S0^V7;+PM$qB9Hy}4LHAKe2Bw-bA;za-1f^YJmdK=9YTDT%p0mzD3|cO zW7;jzX5cdsm;H|S?Yya#k!36yD z+g}N;@p*->dEa~je&RjoE4-(B9`^i}&+mKh?wj6AD!@;@FSF5m0w-a@Yw_E><{fyA zH3vJruK69W1AYpFUZdLK^`38eE#fHr#NYeh^|$CT*y(S&&HgUh;5qpW{LFLOZJrN) z_dnw3alQk#dhFZeapgSZ+}~bupZLE0^mR2HgP+U)v8&d{xkfoI_vZTsusOaAt zK0Yj`b3AsA-_GxL%va~zp##z&ha)_E1fL5{@EA107?k{d=zQ~A{>HO6hH-C^M+^SL zQIucH{lV}4j=y=YS?B!4W9i5i&!z2yk=wvt7}@M^ff$%~9BBkMqX3x{W^%PwT${Zqj}Q)ODP%#-D}f;5B&4`5Qey z(?2CnnS09IQ*@ZR4&>LRj#KV)(`r3MlP>E_-5T`b*iz@%Fm?O7kEduiWxXl7by=?q zmnphT;W2eBM04OeMc=9GJ#R5@kN#;j>~Y<+vD0caZT%iRrqyX$?WWbN2cK#Fo#w@9 z>-4yOnqQ}RtjGM*+k*2rZM^Ox-Dc%COS@UR&8k;+TEr zV|GTQd3ID(_w0m7(`-eg-RzS<|5=*PsztU0Wtf7u;awPWPA#&NIMR1kt!C*zOaJ*d zJsxF(fB&z8;8>k=!~8z|2VwuZp8Y&CKL7`yA9Akg5eH$fb{4v{4~e|BU{5aCn+x(@ zp#OqAa%-afxPaq={1)WDAdlQR(f(eLNA8SB+XZ#VofXw!L0$`LzeM-_YPNJ6+^S9Y zrE7!N@ZNcSeZMcM)sh-4spo#<_TR33HAK<1`_*=TG={&H>aR)czeOANyKX;imZCAy z`DlLr*>A0-JAfDVJ03g%A9}1&{}udJcw=x0LRfIjCxgrI0W3P^ixvJ@;hn)1_stjG z_dXG6f8crT&%_tRkAnfZY}|N}Z&ok3AJT61Q;}u|dF3?SPSf->O%AH#A?Mc|ujxNC z1Mlj?=M0aX#pA3s&*62x6KHxt?T+x_g(L1wj$4}{VbAZuZ&jaqw6@rfG|5&SpSOS1 ztl#D?D~_&bM%~b|H{r9XWg7R558vX z$IkOgj2_K-_sGk{qwb07-@-pFyf94P)>cTlx7}?{{u|wgZxr{6))!ViPX@XyuxH}uG{>#22*_wdIw4X0^2y#wewP1{-e%*H`ZvvirI zRlhao@tw!DACLLBc=TCN)13U5?u5J4=oxv^=JeC>6wvWBE{8r)FLR&eqx1BReM(zv z#Lbhp-q7W6h1_X3%wxm%2Y-O~Yd6+?-rA-w(uj7$G-`>)MeS|txs34I=m5RsKSIaW zcIeP{%?Lk^m~(_4t-D3~w5CP#jL>@Y04*bZT|asl_QN5t*W2hkdJx<*#%VE*^LT>R zTi_0`=f-0|tKIg>Zu@RrK2r||NAUmtO?Cd`P5SG<^*Dvg6#i4VP19%kWo`OT;WN$i zT{P{Y?G)Zqa_O>Xy6D ziTsg$Pd#ZfOV3#z%g)1G@YR3gyMJGDolUQ6I?I3aL+Z_E*<;4jbC!PdBQUJ)A3H~% z`2ru{ko!cm{=yr;0}HRhD}d*M^%vy1@EY*zl6ozv$C7&Or{mJyAm1hVEve6nyjSQm zcnVHy)8>HdS3eicb{jl}VEy4*1`Hg=^kEj#B zcHun5`*FU`t7+`B^}L6!sK@98 zlmPEG9vz*6x3u|m+`8i_=mj1h?}L75gFS%fIR4{V8mPf;`j6u~-VW+JuGZsn*sTVm zqvBnlPE$0WlKYgrr{p#DEb!M9A9ktp)bl|R@9*AH=RNg|zWU$iUFtTaMqPZ+r5;mH zgTCEr-WAQOe@ZR7cw<^!r`5HG52n>*Ith)A@tC%+rsLYK>*19i`)ImF+#>SZG#=CT z*|ar!WjFx~_K4c|8`p1+d3DTvs?7uaYCo@@+4r^8 za()c>V4n8#YP_J93-~Y4V&5h9#sk4EIRDwLb)ENJ>RkPMy1CD_>9Ihg1)43;Zh;;P zG{}8s5Ao*`uP!|V4?EW0PuHafMH=p>&3@W0*?UVnv}v}Y=7VSKIhqchg^%<-3eK5tAM&E(5@oF+|Y}XsGi&yA9djQmBb}*R2^=r4)xz5)=pFcmPHm>hCZo$4; zXrmWx_umVAxAF{FXT{!F;q{Z(!ZmV#O-?VmPtD>|uwRc@lPh1Jgpg*f1F3+{1SiLdG%;{%zcU$!|K+`k0ZE@JQaN7-+FEQ z%REM&uHRFp&GoK1>C%=5I<_6PFX^+}`n&NMr^D_C;C^lSb~W3p^qk^{F4}hSTF-Xi zsp&M(qbtGBEAl!lekdNI7p)hZ-*;JX7cM`(y{_rfqw8E&)cT;g51Q{Vo#OVyh`z2C z*UGn_M#D56rs)WOwAzEM_F$_$+eV`{TC~xytth7%sA|)A+;zKobvNz0)OK8+yPp6$ zjmvi&$K7<>P2b&e7(W{P48O14QRg>K?{WNhKfca${D`)EcRy@CHJIX=DK+ep_Y~e! zd^AOusV3mVt|YY5MJ;-)(_@|K4iTqmp6tP6IwL+Vc8cch!FAfbWtz9AchgUOXYt6M zgpc4foCEuD_HE#SS-H&0eU=8)9aD2g@yTP7QpOZI=YH{)=QGHHsgiUZAza{L+m&6wL7wew9 zUbNPs5A9Q095((eJrBG7+>&?(=zf8=ZFC={OAkNwxHdlNxx6|IT^&4t=QVd;#B*3K zE%Iyacb$5+sau=cOf~bD`s{XnSK4u0&3U`W_-VTK;4*98eYh^{1?Lv{e!)B|c%Qu4 zJ=WMY5UVZnrvhb>K<2uH87|($#4#{j;vko(J0Z^He`A_R)I(Hf!Uw|3REzR-2FU zxD^lA#I4gpzY)2Ns9$SNd_mkN8arCUfj8UuZS({zXh-~Jg9ZF|-gS}2Z58L`Iyw*U z8^f!k&=%bfj*EOdJ_>I`3C2JT#-kkNI$i|(XLqC@4&(9}AD63q$MM{a-)&36Mpwayr<B4q?Xfp!d3MjG z`aTgab4;&!y3Q{;zC@&5znag7;z;l)zF*tA&bMJ+4d$cq>N3CNJnzmQU%xl*yOA$( zUy#ebo8cyHx$UzL7v!;T6Cb<|yWkC=@zN`x&P%l2za1WihaB_6(yQ>A;~hc6n|Q4> z@s2!J^bgAGO*st8d8HAI8W2F!Xd zp_U`7Vg+k{wjl2h_Z!^YS0H{-|@KG>p}cg4_whV2i4*9GUlNcrG5aK+dP< zP;^ah9p>(^ZU;Zl$oY(Q&&a>S+T(qq_0OD#`Olc|4DDy=>EPcPJ#^+v$8U(%>EP>` z>YVaCGbzfs6eJs$>NCyw!l-xK!c#0c!u zi3E<~H1zd^p6haNkNQk}3ccD>_14~<@XR?+^Lf66^y39Sgl-RBlFwo-pAF}oTdRE* z_B`*-tIv77*gt=~hpVT)sXoF<7`fYidfL8fg?e7xkArB(M`*)`*k{}> zJmpxQTvX@SGvWb#d%eCjZr-{0b-32CIpP~d^Uj-R-n{eXT)Zn-k^e7uT#mez-_ z@I9oj&dW7>wLV(|{rxGJtAE^ib@i_A-UhBE?;_nz7!15 zu=|m94I5h3x3%`O%Te`j8;0=*3%sZ0w46`N_aN^N&O4^@Gz}d+yynXpzMP@Iqf4|G zJLK9S&yH>!!eQr^;odXmJY$cZS(H-(M==6xc1439?9VZ!t1 zZM^B2zdd?#;tNraPVxRc?dRotp3k9sMLC|A_jw+lmvd;laXb&*jr(yQ?s1L2EN`=X z&TdpQYh`c1^^VOS;q{DOi10n)p2!2ZH@NE0eb)POu94c`+P+A4>;<)>`ywB*_Hpbb z@HqAyo>xP@&GRO{N#xDETFvur-aU&u)KxzZs@O9mAJzd%hH7d2JHC-!o zeQ@4;W4X7!Y)|QjHoms;bkx0L^d4LY>gD?OV>Mq-^XK5=y0;zHK4YFUE2!2~@0{V| z8NQt{_ZfbUAH#9=sqT|c#Unhoevf|Zc~=e6eC1n+FCkt{>Gvu9o~5tfwf+gmH)Av3 z9tMpUc`%d2=Q!&%A1?CXqI@p$CPvG=T;ewe!*c)A$7{LIhn(+Q&wWte5AtOA6}|r% zAExNl2WQl?!?^B#^vRK56JLtFo0ycFn)Hj=TSVuFU*#v?_MhOJejMfZ!DTE3fB*mV zbF9m2kI^)C?fTkDz9zlyFn^Nvq<%@7H>qcm^q=8zhxL={l9baptzGIeZr!dSk?t;Q zb;TWzK_25YjGuB&?YagX^JP5ccvw6qR_pKuPGcN=9Y2Fn$bFpG6H~#Ba^CSo&98~t zd&r55Yco8cZTzI;uN>1nabD!%#08O`6IoHO^|az+=)oTS*rS&wzEg}mV4|C$Ai$TvDd@_@h!0rQO9qJ`s1Sd&#Ujey3HFiZ?1Xg z-;ImCC=}- zdd<@@PshC8irHU_yjoQIMY;z&MZPWaVz5i3eejU@40byHSmgO4p9edjpO*F3BHtEw zId1hVbKj78mfLU;A9-z#A@>e-1Y6|)$4}MrAL?Gud66u`i zvFmU>HhMM`#T$aZlIOY0d5+!aT@7J7I1E#6+O9y8)qyj6#_ef%8twaVTY{mAq7Sn!Yj zFaO^EnOdz6uJDjg2TS56aSdgt=fR3|H;b!0)$biqUfwIpHz~KInswM4NqHsZnUrIP zp6(cSEYA-6ASw3_+B!x+S4YA*doj5MG!;dY%tGhehj5%<6+(BHw!KqX~ZXgwXGJUhETT=~1f*K29uwuMAR_FZ{837Pw{i= z5vb9Wz6?EsryT3o(37HPO7{rI}L+iSUH9rx3hwPyAem?!%h+}r;Hc#?e; zFF2;JpO${w`|0WDQP$l3JjlK%@~fY|?8_pr`uWgb2`1^-{cKG~me#DCvX8CTJ8TF6Q6p`DEbt2}O(KivgX4Gg#Uqs{) zp=CzDMC3Okr-*rH_%K6DpNPFQqgNu&2mkn&zVCbP%KfZAV=ed) z@7k~Da2jbO@rCoPXm)%OXE2G+F@aMUcYUvTR@{#d9FO5Mj3VXSKJh%hwBOw~@1D5c zm^Utd5BN22-nd?g>zjFN$Mr*;uk-GU>x+47#?^G*^Jl&~kNM;JCVnq=20Lgg)wFGx zrz5V8^YV>9D0*(i^+EhT$27(D!hCAIUh}jr@^F#QgMA`@2M?piv3f14$0Dx>`|*im z-VXMPYO$zpgCUXUi)y*-c*vNcYBa}?IhMucF1TmN9LugRccKH`IOM!*%f^-tdiJTq z@H>v%gBF^`p0D*;$@tR8uGRj{O<7Nr^+#C^%X+D-#>2~^x(_dTZeHW-)aOV!)*mC| zo}=`wT?N-FKZu^OiCw|8b@sh*MPKY!*Mr}AFG_#MaeG_MCiLvY_rX8;zy0j-#Vf{M zta@t?&VR*=FdbEm)*04UWj(oit+gw@&$!7m`%}+vo{in&nW=V3^+@W2q?&h}5Y;NF z*5mS@kY8G^Q+i{{{2?_8$!E%bo3e+d^hQW6!p4MnpM6u0zpdBZ8{uEcSD8E>nUU~zs%c<&T zM64pWlD;Vycx&wbF}ZA!)AvCeJ(p^FHYDwlj#Kiof0DKT_q=0NUf*a7J8dC#%9`ptWWEqJyps@tNu2I(85GtQ%B>n~fsbSRjk?c_`A{kH8!e~;WiSPL)vEBDkf9U&w!`R~e^gr}oZw#+{KlM{z#|O~rYvC?m zM}FbCHHTyN`tR(+pQz=QDIaqaOBkmA_b;!1X1Z1U@iWuId-cF)>(8+LXY|1j`czML z=-IK`)$fSwN&nxtdX3$It&Z)LcD37o*6VG?ex^q}3pil zGb3eO*9B|HC8fu@zS3*g;|5$O_qhGB8?Wd!ud}pftsgdaMjy}U*NfJV>&v+QjN4mr z`zkKiMLjvFcLu9H#Dh|o{rmy;$#pzwt`#Tb*6MYueR@KUt@^iBAD^&iThYeXHgy=)`)&4O8-LsQ)W+Y@PS^)+ z?y4{U(qFFFNF$d|Et@v}1dr%qIFZWrf5xV0Zl1+ zrR12p-I%ZOjbj>8a_`ayT{Dj9NzvOS*RH&J9+QLdX=8eh2mkE<@$d3pyQ1!Cb51q8 z_Ng(}PP@Nn1ScF@x96y6&9Gd05{~83a}vWCa<4v^Qu`^jpVI$R`g2O{r(V)W&V}|m z_H3NeC!u$t&QsN>XF}C+)#!T9sN?FjYQO8Dkeov13U3Zxm-AvR=MCZ7-#`q@DZ3vZ z;6vl+$nF#6pKZfOX!V*GxvQb}5wCOCipEFe6)`^I{+vBN^Mhma<*sr3y?yl!iuU>; z=+%q!SinUTz}t&Uu62lun8Pw=?LQjkU7t5DPGg*&_-jEw9s6Fd^+CM$nW8xF;(VL8 z-n=>De4DpcoGjsJ(sI*FsuK-JV5qS-s9ar)7=S zHM&Ri?0)^*mQuevc%sg6wV9`9zy9s`8q=20_Z_Dfj*#JXJj(mduH z+ZkMtddL>kiRSoXXZNl}q2{+?L+`z9g zRhLkUxGT!FRK*|i~4wZ7$X=`EAy6m@rhcQb5$KGVLHF^98}*p_Fs^1HP`#R zH@({XM(ZE9?s0v;KP%oEyeI!lm-9cqdENID);eL$6Y6_HzqD4Vp5y-seRx7&oiKl^ z9y)=sr+F)vHZ>oW`>34S^u*|Zs1BoD(0`)|uhn=|{%zJD?L!Q4(A_5AHoY<0FY2W> zwQc(f`fgN@j)p*gn|ifCfu?_pR4x zOdU>L?VKL#_*S%j(!5D)C;6RhgWQrIK^{qKC)K9od$Aqz>d@QCZqT1R==CM6I;N+i zj1tzoJ|ODHj*2{9(og(L?#G+K_45DaJD2zGch1q3_44~cp@$+r|QQ)-e@kCfM4^6WA;rDk39bXhC46Y7zACHR$` zF4c1S@n_m8HBUX|_YhZ!=1wFHB6~}7o92fNa?#2-@Evn-W43L z_QAU~AJeqVw4~|ixgg4^r}l4C)8#8r(^rY!a^D<3$njbx5qTWmMDcuS^)pHJC;tPD` zoL=jh5NS^HtmllVZfUhm>z}mR^<>0Oycqo9H9kY}|E}x(u|{d$^n8Y|U4L85iG1pr z#5m3)iD~EcK$@Rvy_Qznv|dc>uQcDMjzV6cJH?YYjvlY&JT(IOPQ|^}UsE(pdH(cd z#nU(fYlY+(qI0S(xK*CNc&}EMsjl^2o;u;$5ac$MFt%4zuMq#HJ_Q|9)pLBC;>}cb zEq+W*ffqe#u@52lsK?X*q8J68p)PbguI6F<)M4;8B!<*7L~DqqDSl4zWa<>c=yzVP zOjXC|o2g+`a~i}aNC&^BXR@Z}N8dxdo2sr=&Es>JJFNe*=FPe*Laq#)ggSheD!YlF6Y!EybXFbe81PUXL+3EeO4c2BhKrU zteS-NNmjkHYL(?(R=sjBV>k3w?g}g--6cH^3UD2-aol#U8~kZPB~uY?!cXR3v$nG#qGG&IDX{pod};J zJj|(0Zl~jFF0bQl$9g2ki`+AK9(>5X;k-VI(4X5ZszL50@G55?=eB^KIW>%^Sw#JE zyYLR)#EZDadHpndQ*aj@KW(V#n7zum+V5avdSdoE?_Ji!t8s((FKQH1-t@YU;JL&h#PSYf!ji*zfq5_kilZ==|b7$Yt>`c)iHK!Q=SU@d5B>@#A2E z#>0)Znl0Aen=aC`D3?VwU(_Fq@?AU#eKL4d)MtYuqP`m(Lc;sa&%N&PeZrvQQG5n# zEuX|$=k3?!FK`C(Se`)AdG`;|u$%&2Luxw|cU+zG6lhvLhjCbY`Ly@5YC2^7|1fWcX)4KUn9gCIl;l24`>=o6ktS`#yRaT?&viIAY-0yl>KdicM^=90J z8*n4kd4wmc)v=2(cGVoK)*6`z9;D%gJv9xhwa=yIW7D-o{(Lrnnw*E#z8A{j=(l(>t@#UO;f*l)qVf8_r&Tr zdK_voYQ45u@9}s(_96J*{uG|U(_Xg*znAwf{^fe!KYsm4s&A6#N#1u}E%Lcj{z+Pr zC!k-FG<53oq?#wKmsH23+9a);Oh9crd6v{qN%c?4BS}N&4cO>dKP2Usly@h8I_d7_ zZ;FQQo5fZfaBPllYp3W=(U77cwGVnBr4LeiJEgBv?*tdZ}Pg0-+CxbbNaC3f@gWoF`a4qsAo>pH$4lYoYU&kqYrv!9e2TA z>d_Nv`#DW-npbIcOVga@P0zgf@~F-`jf-k(o~ap;Z=qQ5v+L~bU)B02WR5BKgw!F# z|EVm@AL46BP9gJ8$tg4}UclFo+f?oMn_2yv{l;}`ho5%*CFGku@Aczi8uG|adi|t0 z4*J78MLA~8l}&m5tSHB92K>lQK+k9C&RR43xiL?PatZGe<(Q={{DeqvR&L?Pf+uL( z{jX};vR^p=73j;>-sfiNi_khH=NvzC^3L%+*ABIb@F3S}u4hCwjqoh@p{QQDgZK!% z&Z%8ay>sdism`H?a=gs7K>c$(kMJ(%zDV_absqhbJtwMfPCw<;Hm9CBJrb$T$?u5! za{ENbvyVAe+uVS^SK|Lf`HL&|&g{d+xIbpzS-H;gc9!3>JMg^o>NR^m_&m$E*@y5T zcsKh99>Ak`4)=lov+5V4KgOS!`p@!q@q~SUkNwZ1f_n=0!rBGv70h3F!8JY<+*`0l zK`sUN70g$#UYtL1J{ROwuvTF^b_Eyd`O|-0t5f{o`u-@;TaZ&h&ILKe`4#7LLB0hV z;=C%*7+0$}{}zv81Sjz+M#1aF1U@sC4~z5+p61~Pj(NIx9K2biaZ!C1)oyVNd|Xtk z!Rj2xL~{$=S)LTFu{h)FP7V&!V78tu~pRF1@BEMDlt(vDo^GG%Ft-_y?@BF++jn|&ThuDwS;5qt^y zej3JV|7JVMn2K_O}Bi~>X7Dnk3AitHRm|O+X!tjuSYJq zk0)aXeI1z>c`(*)o@dRkmdSIT-8YGzAIYEG_HBA-%W@F-r_AN z-IU%;(Vo&%DLtFA$Gg=dRn@#g`zX{iZ9k>eIZbog{AvA@)@$iw!Loes|I1pwX?5=@ zq4xKa(|it@V`>>{H^s*(*Vp(mrM98!b@zl$dA(#lIzr|S>8B|*pOQn!`XTF2l|?y( ztebT{ygS%1t-q%AR#yGPuR7L0S@&hF6@CscIQ|~)4ZnmJ9a}g11Jo}3viNQAiyQo2 z`roc=SpVK!KH=xpo4+~hN35HpBO^5jp4NA2B{x9ap`_`JD6N zS3H;GGW)i^ac%ZByy4ijSvk#CufOiKdt&aNeG77%rE&I6$bFW+nE48h3+{=lXTdyi zb&U5qHa@Pdh26oc^o(7pr(phq`Qssbd>mgOiO+EsDV#IL8jEM_ZCaP-umE*gzKB^A zu;@B}hUg!neR&?=*za@=cZ$xf+~inIR&EygymBKp*)Og3?;YZYqPncQwrbp(>uc^= zGk(pu<6G>jeBhte1i%0F6?JJ>(-hBpR`tWTo^@l^UiNd@z54cU+@*({>#2xzq(3vx z{2}M2uf_Ga4ja{lhMe;`Js6`UChvHd2kKII3w$4R|FV8vF4ASp@F7(5-iEEgxANQh z?`plDsQsL>b)RQIhi8EPNvUs2O;hTY=5w0g8F{36KSg^+?`HIDMjwZ&x$4U)^JnBY z&5!9Dz?+=$IoESE&AuZyeN+$!yrszF+>^{PY98osA}n&z8=cjbEUa<1tK*M3;fH!X+s zdG}Pk%isdC(6?#*oOXXN57S@4*SlVx_NaR=|I%qp;tQ|&-NW}Dy_4Z<$k>o|Lh2Iw z8s-Y|G-RHT^+MJPStI2BkQ#*4FvFM3Es%dkuZHB3;aNyNA!}rA2#(OP{jaa++YG-l zdOLF~)F?zxh7Tb=OnV)E9eQrs_3#Ix`NQvcmYjC%-ta!r{o(z1!+kV`-^QDG7cF=V z_EmTwhN7b+%KqZcM(j9|s$0 zJ9}AMtU87lvD)vF<3sk6ISSS*&{dF2{D>&Wf*j)mqP*h6qV)=LE>v?-i-LR#a*0Po z`NyN8wc|1IV{uTVFCG_-UzF40MSP7MJ(4-TWCH% zd*#^p2rmnK*=QZK>W`#)b;_;#VfSytR{bcyoSH?{uy9E2_?LLqcs(>~|0UJ6`w?sM zD#g#V^?Gl#zulAJMdnV>Jk6hJIfdO9Ggrh~F%M?$K-tlJ8 zp4Q{N{Or90JW1>QwETMYb??nku1}Ris z!#pAPW%x6#X5oWq#{sXcH*Kw)aXI%z=+DV1!pEF@BJ@Y9QOzPejL?>oQ-r>pwQ}Z; zR9|N?%`>%{<<~5~X6=iZd1loueu9Ty$B*G8j^k5a7K8usW}kuik2NieE9-lCvFut& zFP-D{jkw8vtR8O?Ju8R%(PvNbYUCP`j#WJ{LemI+6@8JoCfH`~oqu~}|F`k~X*|Ub z<1=a&{#cIYid+=UTX5WJp0O@<)yM6xs3(1$4~aCUKF3)kgTFEVaBcn#X@2z9{$I3o zwXS+PttP$I9(QlX9?0xKb?@kdj9$s;jf~#N=!tNrS{NJd;OjEBd1f5!QszH86Rp9k%)$yeQyYMNBL6#u$+iNn+w-tjuIVDy9P6E4`KIO7dylvxXLI%PFDx z5jn5iC0cLgPJ8`f$L-<{@ni8pJb*{=sQs@-tLj|gbA^``URHRPxZnPe+nSu#B!R& zm1E>PRDHEhUjDPk^)RnyPl^{s{W^OBpW>8r{F@yWb9y<6@!&C4e?>pHy54JCAI;%j`Ojh2I$8b9+Y!07cIu7l7&R~6 z=RM5+fTh8oHeWf(-6%KKKnpZLK0DSnLdscivEj(IoAtF}e)GmL=`W7ZvWZ@cxz z+~2+z??V0C_u(D1pxJeGZCC%!r}eBnljiMw68f|ADX$AKf9Ebyos#px|8}e2bJcQv z>=l1A8^7^6*85-c8F2jWb)PHu`M+Ph>GRn*{Fc9y?ekE-@cEq*e)X=;i~F3&&wXa$ zEcW>6eqIsy9(y0Q_#X9-eP47Et-g17-+S)u-Wv{}`Wf=Pc-VWX z-*^wQ!`Jcw{M6TwNgVXdZS<_#V*dyFE`;~h`cG)zi9c#t|IGPM#s4-4c(fCGBdO+{ z&xq>OY2SA~vHq-1>4DUYz5fDu-fd5&rbV^swnw|wtNSH9j~Ag%sjtOXV83?nhW(nd zC%V09Vz4GeQcNu-qXH4eZV3!*H>E0{)t#6BK z*SV%A`ZkIBqwiW=1M~N7#?7#w`plh?Ti-_57k&0ZID{}_=tC3(_yiI3+xK^P7ML@t z@AF$l_eag2za7?(>9f52VtOt%Z~u?EE~nUnWBnal7WH>bkH*j0_d{YT_?VVVP0NP( zq;vLfJZ;}+#V?E-bYIfz3#fhF9OC;BZ%dvLBli5rm-d-`bNo*AdR~<4aXB8B+wpDo zUmHHeL9`l6S1U~?J`(9YaX{q3sAte<%APEV)*KzjS+C{ZRz}gDGj5DGV|~G*+z;-% zq7LoWXgB{DFUR;c#?ST-M1HpKS8v{oSvP6E)^R&G@~}Kj(OB@W0>Y zef9^nJurEXbK70h|C9HFkCXRd3+@GfduxB2F2mCdZ5iHWXv^#a{e3*o@HNASKKF;? zIO1!O^`>c?ehSYzr>@g-n|>N}PFr(&C)6)5kLZn_|C=1kJumOPwI|ITwHNYo$NOY;%TS|~x_0v+C681|z7OGHJb)d% zqiym*k=`%e*GE$y9erE*br9|JJ3noma02#7cm%XeTX*`Uz_*maPd}{XpEq~je0l3c z>C0OqPeY!D=%#gDQTp@NkMdwPjY)ig34Y0O_8hN{!8(PbJj;kD#3}JpoWya+Cw`uf zw?RKF-3s*`{2DX7mBUcZIW;QEX~?;fYb9|wCQieiUXja)+E&!9V%^HophDB+Wlf1| zy`M9tV(qos-;PZ1t#!cu<8hyU7(U{4L`@Fx`vZRJt3hkGt?K_cTt9n_+Psce@ut@s z#W(PpV{3G`s?jC!L#XXJHGGSTbNiiB`_y;%UOn~lgv=Mtli+VX}Iy zI#&HBpFs7zxq7RwtJfdHlc?^Yem(RF^lfGcYM1HenLf$zr0;InTYYlM91`z^Ug>)x zcw7FvKdR;5SNmN-pSd%A_}CbFG9giIGy0)V?iuyVs7of{^$xKE>XsRX9_rf;x%H`M zrUz=4QJ>6+bNVH77+r|MKFd_|*DIMp9HoaJ;cDCmzJ%!sk2$XH6Z1{)52Et^MO!WJ z@UeAor`0XfYph(R>6~^vO~W)_rsNQJr$;Lns?JJc*E;c zBK^~EfzIiJ_z>zdtsc|OpeKAmyk5=oHcw}Ct4K?p7kPb_-{suxbl5BT7aZRs>etzlXUD2o#G?Nn zcB9w!!`#(gSAuJ3Ieeg2leuf1`v$e255>NB{1v8*zXtZ&tUWh7k2zcjHXNy*%VQbF zA2G+=b)G-Y9T8*I@iSP!d1Ra`yJo)Fw_fK^&2P!MYEECeH!H5;k};T_b*-AWbFqro z?w_S0wjxfWI?vZZBQ5V8T-Wm7SKlYjUi2(HgOoYHhP4XS`DrT1zhIrhIeYsmGO^T1>PS@nKWPc7?cTf!m)p+S) zk)KO?YDo_+J%C5tH|jhcOHV^zFX^wP2XQZU`dUyuf4?z&7^Jyie+;VI(qqtvgETGa zsU^L)bXV}--NEFKYq=L+Uf<6}ISyH)_#)&n-OHuwqbQSH7;#veNE9vW!dY7*jxp$T;=yFA69v^%Ewh}teSI`SF6>v zyU^|Hw)HC3saT^@%^@RJ^U$XwUpYR3lfK6DqH^3bP~F$=fL=_bY9G{^R~_iQ%N!5qcv&cl>N>~6Bl4K5!q>SQ zu{rpS-2d!y?uCW*+zWc7uvk4_VBPeZqYNwuefjJnP9x?aV>{+kL`<3+kEe}-RC5}5!LdzXU=iY zjuRhy@1{nr_QQ!zQLRpNpxv?hwMKoyxhk;C)}hdqVTKo3Gv6V@F|MwwrrQ-eV)MZs$Iz)mgea)vfab$Fy~-W2c&Ss&l9M zcDwH!@4I_Me*2;OhHiV}oLclAaBQ9KE?Bd>8;4=tbG+*PP;a~w+$-mEmvf%nyI!Bk zYOhrLNxgg3d$QU`)}E~PkKB6qgMYp9$|Ug_^iSW@c*e25>3d55@F~onFn^}Q7|=iR z%DeZ79Q>kx!`y8m4Fz>9sB1yZT-G-CKMMYF}2TvKkGK*jv_F;pd3; zN36BN*O9}}gR3tFe{!e457)D<@PukqeHy^Z;#>)xOkAlX@xhB__ zJRQfe;1M}a)^gl1ZU0Rl#V`huFuwM)_(QTK$}R6Y~!w|4pVs>Sqid@5fx$$K4F*9AT=Tw^W!VaYm6_R5ky zGbHz-SaiPV+{%mU_>wu#n9sd)>a?)YvAMz-ueZC0&LzD)L|a+UmDOWpTQDQnpMO&8 z;mYmqk!N=p18SyMd(F}7+@$^1`^oyVrjPbMUSy_V{)}4n>CHYp*~hCs9!;OH_E)$- zkGY~xihRhMD{ubj<7#oA;}9a~N1yXgIDe0v?-kW+&X_r`kI-=BE>zFo9sH?pZ_d^7 z{;_8luA^BE7OscBkALUi*qn9D>jiy0#E&6f4jDJZ*Cl&>Nk1;>#Ub|;#bI?VIzP;- zBCm?B52=5dFJ)eo)vv66E4&_&%ZU6|cjINpbc|%x)Y^$1_KAGgK1N6Iv|N83x}qQ2 z`7mi8W%x6F5~F-_Z+MyqQ6B7+zZx&uD?@TG8apiaq8b#w0~L6LOT-io8}`TeC;o<=4*NPP)$Wi(s=glL@wFnaiXD#iOIZ!e_EK4$%jO+UQ*{*MfP5 z=qq-?^I`Z?^EmEoRU5wc>XD2!GQ95FC-S{-FFtV0>*=!?$LBZ~9Jc;1!&m4Hf8%@# zNqoWolQ<1IYra}zHIM4E=nIbZT=ZEyuTGEB@&q13 z^;i$g?ZlIK#C6Q^XYO&w#w^&=3+lUIuP>` z53Z@xf_0X7wbToJz4Qsxbg2hwy2QUB{j#LCONaTYr;Dx)Ux(`*SI?`}EcY@!Wm<;$RHk8=zhydBUdOw5Lyx$= z(j5Hx_8|DxKy4q7xNqehyzM&uD{qOkt-QIu$5vfiZH75ktJlJ!IaiHe-HR5Od-YA% z6AYNEQk!eT60e8s<6`aiwq@hW z#+BW>LdOUnSNDn57#V=|Myy*oD>q(twy7hHXK&K?`{j_9%bYkV7i02t9?^4AI-{?7 zt>5$G_*^dfdQM-@>D#$#zv{~cV;8EqJ|6ra&yCS5G%vV5ber|$v7{G7$Zds=l@I8_i2Ezsa3}7ft31;$W=X$xPM9it-5#3 zoM$%~qu!kdfReLmH&JT@2XFJ_r;=I4f<@=^9a}Uq+r9k%==2p|F{>Y!Bv$}>o zuq6MbI8AzFNWTo-E=Rq+(keb+{*T}|v01*n>z02;O{TxX6f)+!0PE+gec*gPYn`{n z>a}V;)Fy9i{=D;a%)J9T=hS9SKhM1u)XTdyR@(=2wV%<<$#rhGTxp)uS92{e?~$j) z>OAz!*$WF^FX*)e{kKpZuciwxLyZ^IctO1v^!VVlxCR?>wR7fNI))SY6r(tWL@+F$ z9Y<>U3~hJr==vU9QtPFYP?x14e%%eV98%MzY;)jzJ$5_1>^L7wwT^b&R!& zda-D|qP2@>Vb0;3aHHd+kXP|D$frzKnWmw;g1>*S&ob8X`tf~FneH;JWm?NLmU&v{ z$FMxgd@IvFT%Ci~GH+H6pbdx6j!t#I;gU)$wjp(!0!*G7J8+vrL3&xJb zMRTn7IMzq22ZI~s_N#c!vohaTJ8RD^>#SOH)!HNax^ge>hcznq!TObZz{`$8_K*3VdXT2D{wbb@?XQayz}`PgH?USz-_G&*$n&Cgk31vp1E1#Fz2@JXTFiL{%<+59vt#an z^Si{o;tRZWMV};<6j6knGvBJ?RmUU7 zt-8J{ml3R1U(0dTJge3F<+LilRco)xr}7l^RYiW4C*8yQir%bvmaNLP@;LNt#lEUM z4S7}cVntt8Uc?K=(O=mKnk!G(f44%-D?F*pK&>lZ2WRQrHB#%r$_3}LP_K%bSM)^X zE2v|o_HQ#P)AsNKcn~}A5UjCg-Zk}GQ`0q?*63cNIia43>iN^+JHbD?-~U^cxWdM}qCf4cEqP$Q0K5s!!eXi}qV54nge~^udDu7`#ER%Xz_mUOKPG zism)f@K(pm;vMShp0e7P)qdqTU->w)KwDmZJX||tZFQOc+Owg>{Kn21yP&Uzx8XCs zs`1(h;|4v8mW|sR{HEr)kh$8Qg@MaT7iKAG%-O#*~dM^S7-3hUL2=mz7bRq(z-qkD1?dr}CQD zyjrvN+B6CwAKSl7p(Wyy5E&*?e1_tpVr>>Y_`Yp zH0OCcCx<@159x&^J+pG!dU|zb45zGbZ&toBrdl64FYt1q%UJ!h#P21&wWJT1cs-<- ziYqkf|KX&lcUG!i)3#cz)3B&ND*C9Rzbc*y;c5=X4c-#`;|IJyK32=WxN5G7@%*UN z{!f+4Mfvk)&HQU;-CJ^>{jemz;+nPiSfMYvUyeLpGQRjNzQZN?L}9Ov>=Yvykf(Xd z_WkfUJ~xNgD{>!s3Qr>;2Xz@4G521meML`Int8fSoW&gGz1}J>-mSTB&HZcESxW{x z==$SNuh=U`Ugnirlp4;nlcRtUw!{>p1 zw%=#ud?w>8T79lz*GE3j=l9doIOun~ult?oM!#dM;IQ9yz3z8MKlgic484<3gM_`2(3=VUme4l|eUi{K3B8lhO9}N$cs3+F z6B3>Si6Q9mgkDMLn}oV1j^R@rhkcOH&k6mMQ165qC+xF?J(AG734NE)e+hk%(2t1} z&fyD8AdN|UiSzKBOn9awzJmRpuzwTN_!=|FA&+lx5qdSDR}ufo;12G?REuEX`X0XO0%Y{Jdh zj9YLkZo?Mbjytdw+i)lD!rj=8dvGuA!~J*w58@&0z{7Y1kK!>rjwkRWcH${Kjc2e6 z&*C{ej~9OQ;{B7gzBu}#b1&g#?8Ym26|doSyn#3I7T(4?co)rR!Cvgc2iT7f(Tb1I zh66Z=c6^Ku=*6Rl(1mUsMh|-N2}0;YKf)M51X1Y4qk8dZ9D^9bFh-ETQ5?gkIF1uI ziBX(_UOcK7kA8+TKYH=o(aT;WojZ%qF^&|@;R{S4jY)io^U#+^_2tp8Z~<9N<7>j|cD|^yM*q zdF)|4f=BTf9>)`S5&`Ut*Lj z8Z_UJTW~9G!|k{OTd@s#t66U~>#b(J)vULg^;WZ*HLF>(nl)?kYqchqwH(TC=njB9u8THNUPV?2Nd(Sg&r8hW95BYrT>`Ib)T(-wW&qEA~6 zqX&Ak;H!@*zC{gdPs^>5L4E&8rS z-?iwwmU-yAmIW+A-?iww7Jb)JLK%9kWfgj@MX$B!wHCeBqSspVS_^OXT5m7E_VRr% zPn#dcop=P<;H*3@{r~ddPfOLOA#r2yk9Gt>JTGK|;BUR2^ZM9^^?0)O`VWHj_jZ3~tsC*< zn&QvgvmHB8z5is^=U~4M0{{Fr__P1Xd(<1e-`)KO!Jl|<{4+WJ9Mk46;SzrG`5y%5 zclaHZSp9b-f3MIVLLd4O#sDISBKG$R;rCF7dNiOBP1u8fiC^Jg;VAE6Bga1ibI z7#--uA#|Y|htY#xd;q;!1N0Bj zKS2Kg{R8w5&_6)`0R02>570kA{{a01^bgQKK>q;!1N0BjKS2Kg{R8w5&_6)`0R02> z570kA{{a01^bgQKK>q;!1N0BjKS2Kg{R8w5&_6)`0R02>570kA{{a01^bgQKK>q;! z1N0BjKS2Kg{R8w5&_6)`0R0jABlJh;kI)~XKSFFQUAN@*>KMC@-SCi1H%JizqLmyomB5%8Mv3qP&RmBFc*> zFQUAN>V+u%QTn6wN9m8!AEiG^f0X_x{Zaa(^hfEB(jTQiN`I98DE(3Tqx47VkJ2Bd zKT3a;{wV!X`lIwm>5tMMr9Vo4l>R9FQTn6wN9m8!AEiG^f0X_x{Zaa(^vCFr(I2Bf zMt_X{82vH&WAw-9kI^5aKSqCy{uuo+`eXFR=#SAKqd!J}jQ$w?G5TZl$LNpIAEQ4; ze~kVZ{W1Du^vCFr(I2BfMt_X{82vH&WAw-9kI^5aKSqCy{uuo+`eXFR=#L$$_TOUa z^7Ajoix@9ryom84#)}v)V!Vj)BF2jtFJioi@gl~HSnTgDy!RgJP>%*Qq6vHOFYzn< zEBpoiHQvX+!C&Iv;@9|h_$&N1euICHzrlaNZ}A`TxA;%^9sV=^4*vzeM>ATm7yIx5 z_Txje;v=--01l!ZAEN`EID{^A<1l*Ai%$?jANmo-03wKj{yO^W=&z%{j{Z9O>*%ke zzmEPo`s?VgqrZ;+I{NGAucN*%kezmEPo`s?VgqrZ;+I{NGA zucN*%kezmEPo`s?VgqrZ;+I{NGAucN*%kezmEPo`s?VgqrZ;+I{NGAucN9421p8k6J>*=qjzn=bj`s?Yhr@x;5 zdiv|>um8&*pMMjz{#&T$MLjR-c~Q@cdS2A?qMjG^yr}0zJum8cQO}EdUexoVo)`7J zsOLpJFY0+w&x?9q)bpaA7xlcT=S4j)>UmMmi+Wzv^P-*?^}ML(MLjR-c~Q@cdS2A? zqMjG^yr}0zJum8cQO}EdUexoVo)`7JsOLokFB*8!z>5Z6H1MK<7Y)2<;6(#38hFvb ziw0ga@S=ei4SJ!0{s#IR=x?CEf&K>i8|ZJKzk&V+`WxtPpud6s2KpQ5Z=k<{{s#IR z=x?CEf&K>i8|ZJKzk&V+`WxtPpud6s2KpQ5Z=k<{{s#IR=x?CEf&K>i8|ZJKzk&V+ z`WxtPpud6s2KpQ5Z=k<{{zm#6>2IXJk^V;d8|iPPzmfh%`WxwQq`#5=M*17+Z=}DG z{zm#6>2IXJk^V;d8|iPPzmfh%`WxwQq`#5=M*17+Z=}DG{zm#6>2IXJk^V;d8|iPP zzmfh%`WxwQq`&dNkI%o!%l+5Li$-2F@}iL!jl5{&MI$d7dC|y=MqV`XqLCMkylCV_ zBQF|x(a4KNUNrKekrz$8XyQc^FPeDK#ET|gH1VQ|7frlq;zbiLnt0K~izZ$)@uG-$Z{C z{Y~^Y(ceV>9{TstzlZ)k^zWg65B+=S-$VZ%`uEVkhyFeE@1cJW{d?%&L;oK7_t3wG z{yp^Xp??qkd+6Uo{~r4H(7%WNJ@oIPe-Hh8=-)&Cp8t=x`wX%?;jg>i%n(GOa*48_ zRD?pfL>VXnHa13J8J^8)Hs^>o&*q#%fvuX(Ip@CJw{Pd1dxNw&=N!@I*>pCC=?U=J z_B6wkh{^k73 z`IqxA=U-m2`T6&MZrxwGEXrk3E{k$ml*^)A7Ui-imqocO%4Jb5i*i|%%c5Ks<+3Q3 zMY$}>Wl=7Ra#@tiqFff`vM85Dxh%?MQ7(&eS(MA7To&cBD3?XKEXrk3E{k$ml*^)A z7Ui-imqocO%4Jb5i*i|%%c5Ks<+3Q3MY$}>Wl=7Ra#@tiqFff`vZ#vZ$0rr7S9CQ7MZ`SyalRQWll6 zsFX#eEGlJDDT_*3RLY`K7FDvSl0}s)s$@|miz-=E$)ZXYRkEm(MU^b7WKkuHDp^#? zqDmH3vZ#_pl`N`cQ6-BiSyaiQN)}bJsFFpMEUIKtC5tLqRLP=B7FDvSl0}s)s$@|m ziz>HJ#lMPw75^&!Rs5^?SMjgnU&X(Qe--~K{#E>|_*e0-;$OwTihmXVD*jdctN2&( zui{_Dzlwh~|7!l#{Hys_^RMP#&A*y|HUDb<)%>gZSM#stU(LUoe>MMV{?+`e`B(F= z=3mXfntwI_YW~&ytNB;+ujXIPznXtF|7!l#{Hys_^RMP#&A*y|HUDb<)%>gZSM#st zU(LUoe>MMV{?+`e`B(F==3mXfntwI_YW~&ytNB;+ujXIPznXsy{~G=^|9tcF@8hle ztC2;GENWy?Ba0eY)X1Vn7B#Y{kwuLxYGhF(iyB$f$f8CTHL|FYMU5Bw@~`Dz%fFU?E&p2nwft-O*YdCBU(3Iie=Yx7{Bw@~`Dz%fFU?E&p2nwft-O*YdCBU(3Iie=Yx7 z{-sl8|32NizdBje$)Zjc zb+V|FMV&0_WKk!JI$6}oqD~fdvZ#|qoh<5PQ74N!S=7m*P8M~tsFOvVEb3%YCyP2+ z)XAbw7Im_ylSQ2@>SR$Ti+Wkq%c5Qu^|Gj!MZGNQWl=ASdRf%VqFxsDvZ$9uy)5cw zQ7?;nS=7s-UKaJTsFy{(Eb3)ZFN=Cv)XSn?7WJ~ImqooS>Sa;y7V7!e^RMS$&%d63 zJ^ymio_{_6dj9qN>-pF7ujgOSzn*_R z|9bxQ{2TZ;@NeMXz`uci1OEp84g4GUH}G%Z-@w0te*^yp{tf&a_&4xx;NQT%fqw)4 z2L28F8~8WyZ{Xj+zkz=P{|5dI{2TZ;@NeMXz`uci1OEp84g4GUH}G%Z-@w0te*^yp z{tf&a_&4xx;NQT%fqw)42L28F8~8WyZ{Xj+zv2GP&%e*N?yo@>4YFvEMWZYlWzi^$ zMp-n4AP{>}WG`8V@#=HJY}nSV3?X8z6m zoB22MZ|2|3znOnC|7QNp{G0hV^Kb6l{QUcJ>;9T$(JYH*Sv1R{Sr*N*XqH8@EShD} zEQ@AYG|Qq{7R|C~mPNBHnq|=}i)L9g%c5Bp&9Z2gMYAlLWzj5)W?3}LqFENrvS^k? zvn-lr(JYH*Sv1R{Sr*N*Xpu#WELvpIB8wJTw8)}G7A>-9kwuFvT4d28ixye5$f89S zEwX5lMT;z2WYHpv7Fo2&qD2-hvS^V-i(6>n-@?Cze+&N>{w@4l__y$H;ori)g?|hG z7XB^#Tllx|Z{gp z{w@4l`M2_K<=@J`m47S$R{pL0Tlu&0Z{^?0zmkt+Hs9MXM~@WYH#zHd(aE zqD>ZUvS^boEZStzCW|&%w8^4P7HzU+GNot zi#A!b$)ZgbZL(;SMVlZUvS^bo zEZStzCW|&%w8^4P7HzU?wn{_XtR`M2|L=iko1oqs$3cK+@B+xfTiZ|C36zny?wn{_XtR`M2|L=iko1oqs$3cK+@B z+xfTiZ|C36znyK{;NQ`_`T6(l*8O$JqC*xPvgnXShb%f|(IJZtS#-#vLlzyf=#WK+EIMS-A&U-K zbjYGZ79FzakVS_qI%Lryiw;?I$f83Q9kS?zmtC_|4#m${5$z~^6%u|$-k3-C;v|Vo%}obck=J#-^ss|e<%M= z{+;|g`FHZ~N|;@`!;i+>mYF8*EoyZCqU@8aLZzl(nt|1SPr z{JZ#f@$cf_#lMSx7ymB)UHrTFck%Dy-^IU+e;5BQ{$2dL_;>N|;@`!;i+>mYF8*D! zo1cF_9K65ivC(6r$3~Bh9veM2dTjLA=&{jbqsK;%jUF34HhOII*yyp*W247LkBuH1 zJvMr5^w{XJ(PN{>Mvsji8$C99Z1mXZvC(6r$3~Bh9veM2dTjLA=&{jbqsK;%jUF34 zHhOII*yyp*W247LkBuH1JvMr5^w{XJ(PN{>Mvsji8$C99Z1mXZvC(6r$3~Bh9veM2 zdTjLA=&{jbqsK;%jUF34HhOII*yyp*W247LkBuH1JvMr5^w{XJ(PN{>Mvsji8$C99 zZ1mXZvC(6r$3~Bh9veM2dTjLA=&{jbqsK;%jUF34HhOII*yyp*W247LkBuH1JvMr5 z^w{XJ(PN{>Mvsji8$C99Z1mXZvC(6r$3~Bh9veM2dTjLA=&{jbqsK;%jUF34Hg)`U z*XXX%U8B23ca82E-8H&vbl2#v(OsjvMt4o!)aK{kPh0n=$3~Bh9veM2dTjLA=&{jb zqsK;%jUF34HhOII*yyp*W247LkBuH1JvMr5^w{XJ(PN{>Mvsji8$C99Z1mXZvC(6r z$3~Bh9veM2dTjLA=&{jbqsK;%jUF34HhOII*yyp*W247LkBuH1JvMr5^w{XJ(PN{> zMvsji8$C99Z1mXZvC(6r$3~Bh9veM2dTjLA=&{jbqsK;%jUF34HhOII*yyp*W247L zkBuH1JvMr5^w{XJ(PN{>Mvsji8$C99Z1mXZvC(6r$3~Bh9veM2dTjLA=&{jbqsK;% zjUF34HhOII*yyp*W247LkBuH1JvMr5^w{XJ(PN{>Mvsji8$C99Z1mXZvC(6r$3~Bh z9veM2dTjLA=&{jbqsK;%jUF34HhOII*fj9hU8B23ca82E-8H&vbl2#v(OsjvMt619veM2dTjLA=&{jbqsK;%jUF34HhOII*yyp*W247LkBuH1JvMr5 z^w{XJ(PN{>Mvsji8$C99Z1mXZvC(6r$3~Bh9veM2dTjLA=&{jbqsK;%jUF34HhOII z*yyp*W247LkBuH1JvMr5^w{XJ(PN{>Mvsji8$C99Z1mXZvC(6r$3~Bh9veM2dTjLA z=&{jbqsK;%jUF34HhOII*yyp*W247LkBuH1JvMr5^w{XJ(PN{>Mvsji8$C99Z1mXZ zvC(6r$3~Bh9veM2dTjLA=&{jbqsK;%jUF34HhOII*yyp*W247LkBuH1JvMr5^w{XJ z(PN{>Mvsji8$C99Z1mXZvC(6r$3~Bh9veM2dTjLA=&{jbqsK;%jUF34HhOII*yyp* zW7EuEca82E-8H&vbl2#v(OsjvMt6Mvsji8$C99Z1mXZvC(6r z$3~Bh9veM2dTjLA=&{jbqsK;%jUF34HhOII*yyp*W247LkBuH1JvMr5^w{XJ(PN{> zMvsji8$C99Z1mXZvC(6r$3~Bh9veM2dTjLA=&{jbqsK;%jUF34HhOII*yyp*W247L zkBuH1JvMr5^w{XJ(PN{>Mvsji8$C99Z1mXZvC(6r$3~Bh9veM2dTjLA=&{jbqsK;% zjUF34HhOII*yyp*W247LkBuH1JvMr5^w{XJ(PN{>Mvsji8$C99Z1mXZvC(6r$3~Bh z9veM2dTjLA=&{jbqsK;%jUF34HhOII*yyp*W7EoCca82E-8H&vbl2#v(OsjvMt6Mvsji8$C99Z1mXZvC(6r z$3~Bh9veM2dTjLA=&{jbqsK;%jUF34HhOII*yyp*W247LkBuH1JvMr5^w{XJ(PN{> zMvsji8$C99Z1mXZvC(6r$3~Bh9veM2dTjLA=&{jbqsK;%jUF34HhOII*yyp*W247L zkBuH1JvMr5^w{XJ(PN{>Mvsji8$C99Z1mXZvC(6r$3~Bh9veM2dTjLA=&{jbqsK;% zjUF34HhOII*yyp*W247LkBuH1JvMr5^w{XJ(PN{>Mvsji8$C99Z1mXZvC(6r$3~Bh z9veM2dTcuQ>#osVqq|0TjqV!VHM(nb*XXX%U8B23ca83vj>6{W-~Y9Be|l{6*yyp* zW247LkBuH1JvMr5^w{XJ(PN{>Mvsji8$C99Z1mXZvC(6r$3~Bh9veM2dTjLA=&{jb zqsK;%jUF34HhOII*yyp*W247LkBuH1JvMr5^w{XJ(PN{>Mvsji8$C99Z1mXZvC(6r z$3~Bh9veM2dTjLA=&{jbqsK;%jUF34HhOII*yyp*W247LkBuH1JvMr5^w{XJ(PN{> zMvsji8$C99Z1mXZvC(6r$3~Bh9veM2dTjLA=&{jbqsK;%jUF34HhOII*yyp*W247L zkBuH1JvMr5^w{XJ(PN{>Mvsji8$C99Z1mXZvC(6r$3~Bh9veM2dTjLA=&{jbqsK;% zjUF34HhOII*yyp*W247LkBuH1JvMr5^w{XJ(PN{>MvqMw|1SPr{JZ#f@$cf_#lMSx z7ymB)UHrTFck%Dy-}T_;=ijz%2mkr|E?IQTqFWZ-vgnpYw=BA4(JhN^S#-;yTNd52 z=$1vdEV^aUEsJhhbjzY!7TvPwmPNNLx@FNVi*8wT%c5Hr-LmMGMYk-vWzj8*Zdr88 zqFWZ-vgnpYw=BA4(JhN^S#-;yTNd52=$1vdEV^aUEsJhhbjzY!7TvPwmPNNLx@FNV zi*8wT%c5Hr-LmMGMYk-vWzp>xy7~9;@8RFWzlVPh{~rE5{CoKK@bBT@!@q}r5C0zi zJ^Xw4_weuG-^0I$e-Hm2{yqGA`1kPd;orl*hkpCdS%foi(Xmu%A!{my|U<& zMV~DCWYH&!K3Vk1qE8lmvgngVpDg-h(I<;OS@g-GPZoW$=#xdCEc#^8CyPE=^vR-6 z7JahllSQ8_`ef1P7W(-2@$ci`$G?w%AOAl7ef<0Q_wn!J-^ag?e;@xo{(b!W`1kSe zkAENkKK_0D`}p_q@8jRczmI<(|33bG{QLO#@$ci`$G@L{KmUII{rvm+_w(=P z-_O6Fe?R|z{{8&>`S1 z&%d94KmUII{rvm+_w(=P-_O6Fe?R|z{{8&>`S5AYx0Kfr&0{{a61{ssO8{ssO8{ssO8{ssO8{ssO8{ssO8{ssO8{ssO8 z{ssO8{ssO8{ssO8{ssO8{ssO8{ssO8{ssO8{ssO8{ssO8{ssO8{ssO8{ssO8{ssO8 z{ssO8{ssO8{ssO8{ssO8{ssO8{ssO8{ssO8{ssO8{ssO8{ssO8{ssO8{)7An`493R zjM2l)^3ALKvCe~|wm|3UtP{0I3D@*m_s$bYbP^YicD-MYU)Sq#cz zP!@x-7?j1JECyvUD2qW^49a3q7K5@Fl*OPd24yiQi$Pfo%3@F!gR&Tu#h@$(Wicp= zL0JsSVo(-?vKW-bpezPuF(`{cSq#czP!@x-7?j1JECyvUD2qW^49a3i7DKWalEsiL zhGa1$iy>JI$zn(rL$Vl>#gHt9WHBU*Az2K`Vn`N4vKW%ZkSvB|G2|A8_z&?P;y=WH zi2o4(A^t=BhxiZiAL2j6e~AAO{~`WE{D=4t@gL$p#D9qY5dR_mL;Q#M5Ah%3Kg55C z{}BHn{zLqS_z&?P;y=WHi2o4(A^t=BhxiZiFY+()FY+()FY+()FY+()FY+()FY+() zFY+()FY+()FY+()FY+()FY+()FY+()FY+()FY+()FY+()FY+()FY+()FY+()FY+() zFY+()FY+()FY+()FY+()FY+()FY+()FV1g%{{8;e{S{?Vltob%MOhSOQIthd7DZVU zWl@wxQ5Hp66lF0ii(y#|%VJm-!?GBb#jq@fWic#^VOb2zVptZ#vKW@duq=jUF)WK= zSq#f!SQf*w7?#DbEQVz%iOBm77BkMJMiKf-^6{|NsP z{v-TH_>b@(so(tk`#W3rHzJD>S&YbHL>42m7?H(@EJkE8B8w4OjL2d{79+A4k;RBC zMr1J}ixF9j$YMkmBeEEg#fU6MWHBO(5m}7LVnh}rvKW!Yh%82AF(Qi*S&YbHL>42m z7?H(@EJkE8B8w4OjL2d{79+A4k;RBCMr1K6i&0sO%3@R&qp}#4#i%SsWicv?QCW=2 zVpJBRvKW=cs4Pa^!YKby{-gXy`H%7+aFIQU0U+NBNKPALT#Ff0X|y|55&< z{73nZ@*m|t%72vqDF0FZqx?ttkMbYoKgxfU|0w@a{-gXy`H%7+aFIQU0U+ zNBNKPALT#Ff0X|i|1th!{Kxo@@gL(q#(#|e82>T;WBkYXkMSSlKgNHI{}}%<{$u>d z_>b`)<3GlKjQ<$_G5%xx$M}!&ALBp9e~kYa|1th!{Kxo@@gL(q#(#|e82>T;WBkYX zk4Lf1Lj~|8f4~{Kxr^^B?Cw&VQW$IRA0}Nm)$FVp0~9vY3>`q%0<7F)52lSxm}eQWlf4n3Tn&EGA_!DT_&2 zOv++X7L&4=l*ObhCS@@xi%D5b%3@L$ld_nU#iT4IWics>Nm)$FVp0~9vY3>`q%0<7 zF)52lSxm}eQWlf4n3Tn&EGA_!DT_&2Ov++P7E`jAlEsuPrerZCiz!)5$znlv;1fI&+?z;Kg)lX|1AGm{lv;1fI&+?z;Kg)lX|1AGm{TSTSKhJ-j|2+SB{`36j`Oov8=RePXp8q`mdH(bK=lRd`pXWc%f1dw5 z|9SrN{O9@4^PlHG&wrl(JpXzA^Ze)e&-0(>KhJ-j|2+SB{`36j`Oov8=RePXp8q`m zdH(bK=lRd`U*NyMe}Vr3{{{XF{1^By@L%A+z<+`N0{;d63;Y-OFYsUBzrcTi{{sI7 z{tNsU_%HBZ;J?6sf&T*k1^x^C7x*vmUl`c@{QHl$?r%XB3$j>{#eysrWU(NN1z9Y} zVnG%QvRIJCf-Dwfu^@{DSuDt6K^6`7iTd;lILvh5riw75*#ySNN~+U*W&Pe}(@F z{}ui#{8#v|@L%D-!hePT3jY=UEBsgZukc^tzrufo{|f&V{ww@f_^-^XGuk&B$zs`T1|2qG5{_FhL`LFX|=fBQ>o&P%jb^h!8 z*ZHsWU+2Hhf1Uq2|8@TB{MY%f^Izw`&VQZ%I{$V4>-^XGuk&B$zs`T1|2qG5{_FhL z`LFX|U)lWp`+HmWXU8gbtYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@Dt4@5$0~NL zV#g|WtYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@ zDt4@5$0~NLV#g|WtYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@Dt4@5$0~NLV#g|W ztYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@Dt4@5 z$0~NLV#g|WtYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1 zcC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@Dt4@5$0~NL zV#g|WtYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@ zDt4^$&-vS~itVb{u8Qrd*shB0s@SfI?W)+WitVb{u8Qrd*sjVy@7etP`!BZc&yH2> zSjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;B zj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2 z>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf z#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K) zRqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|% zSjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;B zj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;hFZtW9itVb{u8Qrd z*shB0s@SfI?W)+WitVb{u8Qrd*sjW7u5Et){r#=`vtt!IR+yOV--7Av11iGRhDz>X)yDGM; zV!JA~t5V*!`T6%>Z{43AtJtxM9jn-}iXE%iv5Fn5*s+QotJtxM9jn-}iXE%iv5Fn5 z*s+QotJtxM9jlbfqFfestYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@Dt4@5$0~NL zV#g|WtYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@ zDt4@5$0~NLV#g|WtYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@Dt4@5$0~NLV#g|W ztYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@Dt4@5 z$0~NLV#g|WtYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1 zcC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@Dt4@5$0~NLV#g|WtYXJ1cC2E@Dt4@5$0~NL zV#g|WtWwF}c2#Uw#dcL}SH*T!Y*)p0Rcu$qc2#Uw#dcL}SH*T!Di=0C|NeCA{_I%A zj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2 z>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf z#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K) zRqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|% zSjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;B zj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0|%SjCQ2 z>{!K)RqR;Bj#cbf#g0|%SjCQ2>{!K)RqR;Bj#cbf#g0{K_}B2S;a|hQhJOwJ8vZr> zYxvu)N)7)S{x$q-_}B2S;a}6R`T6(XZ7cgX?C}1!LB87-?@oKDyKPeLv$cRxGz@7+4kPX9TyVq00+ z@BLe4Wi9`bdUufahO%KJ59Z=M$b!c|Pm;yyr`vuXw)h z`KISPp6_{&{pYQn{(s(XpF2Cf_q+e$wzAhQw8QNA+YN}lY}k3Gxtm9lOBz1L*Ey->34f4S#LIKFI~_hOr@Ucbn9 z!~Uax`S;m&h}RB-_hH*HI2?(6QrWiC{kHdDoA+beP5ABa`P<*yd$8>aTnm5A z?S+@iw%y{lWxvh)@JIfbzxc=hugh;g-#K1;^j~@H41b=VdGIz*-%U{P{Ug8q%!Lt* z;s`(geV)D-qHr80;d>kk6Y#wbzKfv8U-Qks{ns4yod%oVCGlGpzNew!`xpwoU!mZ8 z77D)mVDs@m&mieBZ+!-`B9m_c848 z_uS+A9QOFWhCP3SFX1~I_V`|iJ$}ADzRzKg?~K^vXWHXC9QOD*_xSFIJ-*vv&u`x! zaW4uO!XV@^_}h14{PtZK=ae1phim!UKVxCd>#O*otmxYz;9e#T! z{!4dp{lUN1_QLP{Jr2ch-!C!0`S;phxWRAVh-+{yZo#d%19##IT*=9MU$_*PL577f zjC=hNJc`HgIG(_hcnVMB8GqcS` z_H;Kz--}W7^A=w!+g`fR^XRfkf1Shs$G`Qy|9}2E@-Mp4BFCZ|E&92OC&PPN^!^vU zzeTq&?)@)b4)6c8J1O}tlJURx^mELd>U)LH_w;@)_*sTeDBC`EjPI%Aw$5qTo%uqG z?V~@G#m`f7@aNe+|A61;y)3!$(z~1a{=unbW&g>a9ekhv|M*#Fmi$~-@xp^L{A=%L zX$QBz@ZE=g-)}$P{k#iY|CP+Wm&5*?hd<%!{r}gvZXY{;)9D{v<~!97I{i8K-|q9< zkA44$-~L0d|6}~#|Fo^_Pe1X!Ah^*V{|El>-+rxb-}oK;TpQlk4e!y$;qV@990~WZ zaWrJTaV(C5pMB$acn>yC#7XdeZkz(|(}w%mI2}H_HoSKmK4&)0#yL0_=fQiqaRGcM z&xRZ}+|tHHxEPn34xoqsj6}S@e*ti;gZEX0pv2h))hhH-re$8y$gqtDb4Vi7+ zhTGxS&W2w*8+XBNZ`=c)6&r=k?;!f!|C7a_*M{KkH-=Hd2u3jm@5#ml+~J11-k8P= zW-*6(xZ90IcyBkBu>zkl8$N3`*5TK}#{F=c8xP{I;Jx2?2oK{CJc`HQ*YCy?coI+H zX*`2x@f@DV3wRMP!LN;tSMVxc!|QkhZ{jVy4ZjvP-o<-(A3lpW{stdxX0hXc-nxqq zz4j44#wYj`pJ6vX#~1h#U*T&6-{4z(hwt$Ne#B4s8Nc9H?7;^1VjuS7K-u=aZgH<$ z+8Tdj}verPQuAJ1*hUPoQ^YaCeFgyI0xtAJe-dU;1>6~ z#l3EE??szgob^u+X0i8TuU&#maTzYhPF#U2aTTt{HMkbn;dlXJuf=4&Axa7~bvUtpEkK+kEiKp;1p24$t4$tESyoi_ZGG4)}cnz=P z4ZMlB@HXDTyLb=p!(HxmmwP{eTip8*+~VF(@F_mSZhVd}@Fl*&*9gABxA+d<;|KhR zpYSt&!LQhZ4eZ4}?8kw!?fcx~zC+*^_Z%AF@0+j#{w3ygk`K?6>C_>eYhVF;6b>{eeQDKLwFdE;8D26eUHN} z?t2nX;b}aBXYm}K#|wB7FX3gpf>-exUdJ1F6K~;dyn}b~9^Qvr+~*eeeSi<~5k7`n z-1jLy+svZkf8EMrx7R+$7x)ri;cEon;9Go$@9_hE#83Dczu;Hw!3OqXANJ!w+4lYJ za{nPX6o=t(9DyU@7WW^GV{j~v!wwve6L2CuGQ3}!Khc`RTNOIXGVR~A;|08km+&%P!K-); zuj388iMQ}J-od+g5AVZW?su2_Kfs6h2p{7Ue2UND7WaP+x48dHe1)$Oe1mWC9lpm8 z_z^$hXZ(U+u?HL2i+$LS17+I}xWxm9;7}Zf!*K+T#8GgI2abVTJaF7*7L$h_%;LZf zuN{vQa3W5^$v6e4;xwF&GjJx(!r3?n=i)q^j|<=~54g(%7vdsZj7xASF2m*6i7Vh1 z54gnxSK}I7i|cSbZorMW2{+>w+=|<9JMO@pxC?jV9^8up1~G&phEc)@MllArc)%?l zn8eg(7ORJCWijow8O&l1^H{(lmavQ!tYQu8xDWT^0XztIdB9yBcnA;U5j={=@Hn2p zlXwbG!z~_o7H;vt^LPO-;w8L{SMVxc!|QkhZ{jVyjd$=a-oyKFiwE4|fe-K@KElWN z1fSwF?8fK#0&elZSNM7}i$@RN$|7F-2H)a4e2*XSBYwiq_yxaW4>qtD`>-De%C^_J z%eq5wC=SEnI08rFC>)Jra4e3)4!Fg-6L2C0+j#{w3ygk`K?6>C_>eYhVF z;6b>>I=ASXtG3rYj7RV&9>e2!0#D*8JdJ1YEZkz9TdaElFK%Y>?vYzryyUf)@d{qW zYj_=R;7z=RxA6|%#d~-k?y}BZ)_s5v@ew}8C-@YfVK+X<7x)ri;cK|Xx^LhX>%PPH z_yIrSC;W_G@GJIU1ADO#`*EObd%at%KLm&3FdU8}a3qex(KrUj;yCQU@oo?x9rxjWJb(w`F6-T;f1`1G{ljr zjwkRWp2E|32G8O-JdYRfBHUvA%W#YJui`bljyLco-oo2>2k+uNybrfn?-uJnz=!w< zALA2ziqEhcpW_RBiLdZAf^YCG++zLr_+c}PvSYWh_|a=W;b;7UU$F-p*o%GGj{{}f z8{B2XAvhF=;cy&*BXJat#xXb+$6*JK#|bzQC*fqA0=L+38cxR)`S5>Mf2JcDQP9G=Guco8q*Ww^x#x7hF+Uf;~( zk9KTj@rKvl#9Me9@8Dg$hxg$w8{B2X2lx;l;bVM)Pw^Rc<8yq0FYy(=M(_>3#dr7~ zKfot;c8riYjGW}#|^j&B;cnc6dr`n3hET*XN*KW?#xRZv zOkxVtn87UOFpmW+VhL`s(JeNvVr?^ve{jN97VBQS5BK8%JP3E$=q?){!ozq3kK!>r zjwkRWp2E|32G8O-JdYRfB3{DFcm=QGHM|bD*!U*gV&mI*2k+uNybrh7=oTA4z=!w< zALA2ziqEhcpW_RBiLdZAf^YCGzQgzU0YBm={0z6)_$&5oX7T4IZe_9IwY}Jf{Wwsz zy~$lR9fCt~7!Jn~I1)$UXdHuMaU6Ewc$|O}aS~3(DL56U;dGpVGjSH&V$(S|7w6%8 zTmZM&>CVk8 zjy~yN7EO0~?QYzIdr`n3hET*XN*KW?#xRZvOkxVtn87UOFpmW+VhPJw!7A3^7Mt$F z{dfQm!Ywwr#iobwFdo69cnpu@2|S6X@HC#mvv>~A;|08km+&%P!K-);uj3883Afnf z7MtF|yPH{@cJfvh?|JQgxXUJY+4KQE#7FoTpWst`hTZraU*Jo8g|88OgKzO2zQ+&v z5kKK){DNPx2X3)xFWh3&ejF&<-s~2e55b{042R*ZsI1W2-JWjxgI0+}? z6r76Fa5~PwnK%n)!!0(S3%A&O{$>_`amv9gnlJF0yKHus%@^V#T#QR_DK5k1*oiA} zC9cBNxCYnaI$Vz%a3gNQ&A0`(;x^olJ8&oNf?I5Mi_Q0DfN921zt z6s9qQS!3wKEbE> z47>3;zQC9G3ST4m2H)a4e2*XSBYwiq_yxaW4>qtD``{Lv50q_h`Q2s~x1V+}iN3U0CG zA-KhsNAM^f!{c}YPvR*&jc4#Ip2PEa0Wabuyo^`yDqh3ucmr?ZExe6)@GjoN`*4db zZqYvwvc2WQ%`6(u*vjG~uYHV9@F_mSZhVd}@Fl*&*9gABxA+d<;|KhRpYSt&!LQhZ z4eZ4}?8kw!?XADVA#jVWhv9G>fg^Dgj>a)K7RO-+j>ic&5hvkfoPtwv8cxR*Zrql6KRVhrP$z$B(HjTy{h4)a*RB9^d> z6|7$ng1;{iMfx7g|yTOWd3Y;}vRkK(b-EJn}T%HnaaJ%K0j6rRR2coxs$dAxuZ z@e*FfD|i*J;dQ)$H}MwU#yfZy@8Ny8%T{;U`T;(KTWtLpZn5=Ke1_fl9ADr|e1)$O ze1mWC9lpm8_z^$hXZ(U+u?HL2i+$LS17+LW++y1yI23NN?Qpoowj(#QSUme+7Hvm) z?Pwf>V{sgI;CP&X6LAtw#wj=zr{Q#*firOy&c-=77w6%8TmX03<}TYV#6`Fmm%uHy zxy822u@hI|N?e7jaSg7;b+{fk;6~hpn{f+n#cjA9ci>Lkg}ZSN?nMEE7(x+lvCS>E zjbL;$i@!c+D~mC&jbj3nn8Gw>FpD|NV*!g;!ZKE{iZ!g`KHQH7@F3h}o4ag#2oK{C zJc`HQ7TcbHTWos@PvaRpi|6n>UcifZ2`}Rnyo%TGI^MvWcnfdi9lVS8@IKsPn_F!A z03YHbe2h=v7TZ3~5AA&=17!Jn~I1)#}Ew&$nV{sgI;CP&X6LAtw#wj=zr{Q#*firOy&c-=7 z7w6%8TmZM&?iSlG#6`Fmm*7%dhRfj=+ppNn;?468X3>77*RI0VxCYnaI$Vz%a3gNQ z&A0`(;x^olJ8&oN!rizB_o9G7455f&lrVx(xW)EyOkfgIn8pldF^739U=d4L#tK%k zhIQPB`|$uCgj;NPi|r5LVLXCI@faS*6L5>|Zn6DoJhPd_$LDWl@vPUL!}E9nFXAP< zj92g~Uc>8n18?Fjyp4D8F5biYaF^}wvi$>mh>!3wKEbE>47=eL+rNNYZ2t;hBlrg2 z;yZkgAMhi7!q4~xzhVzIuowHV9|y{|ceurlLvSb#!{ImrN8%_P4Y$~FEZkzpj?FB- zz2IOL9mjj^1e}PIa57H8sW=U%;|!dMvv4-f!MQjO=i>sn%MN$haUm|k#kd5Q;xb&0 zowx#5!Yy{V#g1!mEw01$xB)lfCftl$a4T-Z?YIMX;x62cdvGrb7{m~Y7)A*r7{wUI z;TAjGV#gGwH?!FHzinkPo?x9rxjWJb(w`E<4<1$3u7+kKj=} zhR5*)p2Sml8qdHjc032S*zp2h#7lS?ui#a@hS%{1-o#sY8}HyqtD`>-De z%C>j9%g#e^C=SEnI08rFC>)Jra4e3)4jd1+*m)vO!pS%Vr{Xl6jx%s3&cfL^2j}8E zoR16O7CYTy=Y_Zk7vmCKipy|0cH#h{Zx;v2Z7Lp&LEejb7}*UhKnu z9Kb;w0cP#W|eE1zf}>5SN9-W#MI9fd^jr z;70&Kgm4wta2+>r6U1WSZ4irvcX1E*@c<9;2#@guPw@=T@d7V(5qe@#-w*vU00S`y zgE0g{F$}{o0wXaBqd_d{$AVbYj|=z3FXp}O3;lTVCSW2aVKSy*DyCsNW?&{}fwt=uhIY8nfljzVT37+B^p5p~x z>LQAW%c6ehj{z8nK^Tl77>Z#Sju9A%Q5cOe7z+jCFdoEW(L_wbWK6+SOv7}{z)Z{n zu~ei=qwWZNw&Q z#ujYFHf+ZZl*0%U%&?#Wm9U};HrP=O2Wn7@I@F^9jc5X~Sk!`6IMIf7xX^)4xIruy z5sO7Tu?yYk!EW?o5B6do_TvB!;t&qw2#!L-F&qc6SVSxqox=67>@}c77dd?EE=YS`(n}J z*L`7_O5QX~#|+HGED)Cl;?gi1b1)b4FdqxB5R0%FORyBnupBF}605KpYp@pUupS#g zEE_9n;Fu@E9Do_b4s$hd1)o`E&wWvcq8qkO)G@}K?qJda6w4puR z7weY1=?fQm9q5D`#HE3_H0;DKbfX8m(ThFUi+$LS12~97IE*7W3Ju3_94BxRr*Im? zqTwuvMZPU@g{R zJvLw?HeoY}#p12uzDQm6x-W{ik+&T?P!1zZFvEfhRKkiX*kDIB9H>Dp>QIjcG@=R3 zXhAESXhS=Q#o`Wh!VO}vm{=^{iCySM4|by$d$1S#upb9-5QlIWM{pDxj^Q{?;3Q7r zG|u2Gh{a-JvG@WmhWnym`J2ADL>_TjOk5UU#ua$rg%5rN5JU)9aShjT12=ICw{Zt| zaS!+L01xp9kMRUgK`a(O2eDZEQWsG|ESB^`e+e7guXx=TCB$V3aal4Ob1)b4FdqxB5R0%FORyBn zupBF}605KpYp@pUupS$*5u30XTd)<|KrEIJizVeS!UQucs6ZvGsDcf4RKtN9)S?dc zXh0*H(2N$e!ihGt!-WnIizUQj39(r6MYu2OR=(+ro#gF8H+rxez1V}j*oXZ%fP*-M z!#IMY&~OaLaRMiC3a4=fXK@baaRC=WES3<9CB$OMWn6&=Uijcg06~Os71wYbH*gcT za2t1U7x!=<5AYC=@EA|<6wmM+FF-7o5{sq%!hO-P>UCd~_9t%u24WBfV+e*~7=~j6 zMq(63V+_VZ!8nY^1Wd#vOvV&U#WYOE49vtV5R0Y6Vkxm$ItOzx5A(4A3$X}`u>?!8 z49l?sE3pczu?B0g4(qW28?gzSu?1VP4coB;#A2xtrf^^EUHzsn%;Z^6fl63W1sm+B zh66RIMIGwVfJQW-87*jq6K!aR3mxc$8^mSl7a$f(cY#cP#W|eE1zf}>5R0Y6Vkxm$dIg?vUz}L;rZ2qY`QS$YL4 z*Ki#-a1*z18+ULQ_i!H%@DPvi7*FsN&+r^C@KP61MqHNlLw^v9Wdkt?gE0g{F$}{o z0wXaBqcH|!p_9n;Fo9Ssv!DW%u%Ze! z*ij7!YEX+h)T057XhJhu& zEJh6p_r>G&ulpiuD0#y$93wCiqc9p{Fcu2NVLT>aA|_!nreG?jVLE1DCT4-Sj3O?h zW@8TKVjkv$Sd1bTqZVN?mS8ECVL4V{C01cI)?h8xVLdirBQ{|(wqPr^VLNu997dR6 zh6Ti86tNg(MOC;j-rD%4FKp!5Q4I%bP>VX$qXCU*LNi*>3Mbmo4i`Gm2{(w#DB?0| zCw8G5J=l$25Q|ZJK`ch?#{nF~AsogL9EFBsIF1uIiBmX@GdPQLIFAdsh)W4({R}?&AR-;t?L>37+B^p5p~x z>LQ|v%jkaSj{z8nK^Tl77z$!BdN@X4Bt~I0#$YTIjKg?Lz(h>KWK6+SOv7}{z)Z{n zu^3G(M$g6^%*8y+#{w+GA`pwwOTvBe?&jBh5xtbWWmt|CScz3wjWt+{by$xL*oaNo zj4jxTZP<<-D2EXym|;N$Dq%$xh{b3-s^LHlYEg%JG@ubpXhsWK;Y1tS;X(&G;Rdl7 zO)N(5#4dEB2fNXWJ=hCkF`8J6K7fPazWDi;H+^x4yu&zxqtI{+$8iEDaSEq#24`^& z=WziSaS6m_G;tYy8CT$e7e4qAKoB7ii_zCWEJokJP29q5+`(Pk!+ku!Lp;J`Ji${u z!*jgAOI<_^u^7`2{V@OoF$jY(1Vb?l#A3_{5Q{OR!hP|Zt*`oG;2-#Z8Gr1noAD?9 zKg<91)vfz;UtQ#1`sz~o`_%&eZqv-)E7tLMdL8_I+Ft%H>%`!`x-Wfi7_@n>WE>P9MkbyLRm)y*5ZyHo&S`yhJ=6K0F*Ew=F3jYA9L?&hyZ?D#osQ>N-pu*W!!(+#C?ZYuD3I}&NOg+W#zh}iShIoj3W;+emcXr!OQvb zHs^`w8~7g}92b7b_u)h0;1_)U-)-v~?u*ZuhW{5x%xL;&48}siIE=>xOvEHi#uQA& zG)%_~%)~749gX2T8Z#SnFc_9n;Fu@E9Do_b4s$hd1d@p18UdGg*Hry8@x4-F&I`Zn#fJQW-87*jq z6K!aR3mxc$8+=D&_>S_+84)qN(2XAKMlbeYFZN+S4&Wg8Ud9{--^-Yz&~OaLaRMiC z3a4=fXK@baaRC=`34AYO_+G|b#ua$rg%5rN5JU)9aShkO_cG=tZiV||%8oaEahtq5 zxQlzZj|X^&M|g}Uc#3Cuju&{Ti-_er8ru*3F#rQG2!k;MLop1)F#;no3Zp?R#*T%8 zaTt#Yn21T3j47CkX_$@~n2A{+7GsIU*x8taxtNFfSb&9CgvD5brC5gLSOH=&c2&49 z=Kbw;U&O8^Zw=OB9oAz5HewStV+*!o8@6Ky%3*{FW>`>xN?1_^8|*Ki#-a1*yc zEXLjeu^4*~_wfJ^@d%Ic1W)k{&+!5;brEsIVq8D;#{dk(APmM348<@E#|VtXD2&D! z5Q}jNh{d?^;l9`w^|~+OCXhD~lQ0=mFcs4<9WyW!vp`(N5tnhZF$Z%o5A(4A3$X}` zu>?!849l?sE3pczK`h1*i*f6)9viR`o3I&Muoc^|9Xn7CBTO*Ef(lf^iYnM(M>QO% zK`rV~4`MNnSd42zbGR=Oqu=yJ3wf<@q7ChEp#z<8gSd<%F5`A$7rN1d-RQ+0?8QFp z#{nF~AsogL9EFBsAQt0JfLM$>h0{2Lvp9$IxPXhe1Y$9cSd6=jEAYSzAN&X)h!C#g z8m{98ZsHbh;|}hESd6=m2jRZRiFwl(56OFk$9RILc!uYAftR|7c;Yg?ANpee24WBf zV+e*~7=~j6Mq(63V+_VZ!8nY^1Q3hylQ0=mFcs4<9WyW!vp_7y6N~Y)F$Z%o5A(4A z3$X}`u>?!849l?sE3pczu?B0g4#Z;ohHzh$#lG%~_>JUk!e(s2R&2v|>_9n;Fu@E9 zDo_b4s$hd1)o`E&wWvcq8qkO)G=o@-Z-oDtgfQcX$6DEULOqd$(3upZ6zDSrx-gL~sOw0mt znLu17%*Gtd#XQW%0xZNLEXEQn#WF0%3arE`ti~Fw#X79V25bbem_RHhY{6D+!*=XI zIgBvD3=1ky2`j2#gB{gypa!+5Lp>VMh$b|n1+5?!6NtrxcDTZQ(Ub6|FFMHUgd4i%29c6Z@e*24EltVK9bZD28D;MqngHVKl~IEEJ5xcuc@VOu}SL!Bk8Gv6wgm zGcgOqVj{7aI2&^?7xOS53$PH2uoz3Q6w9z2E3gu)uo`Qy7VEGc8?X_Zuo+uGEGBLX z_r-;z*L{(=oxB|=hY=>2VL=5dVMP^eu%j9d)Swo1s7C`D(S&BSpcPKEp&c#|i;10Z zgIG)?787@37rN1d-RQ+0?8QFp#{nF~AsogL9EFBsIF1uIiBmX@GdPQLAQlse#l(xa z6z+>)@|(UOE)$8%#LKt>54`Zfj{t%Q;VQ1-I&R=5Zs9iW;4bdrJ|5s99^o;b;3=Mg zSWJ8YVljzWOzMaJ7=VEoguxhsp%{kY7=e)(h0z#;u~0A$<1qmfF$t3~1yeB%(?KjI z%>=QS^m({1?x(!&izMPQX*T9yF6LoA7GNP3VKJ6qDVAY5R$wJoVKvrZE!JT@Hee$* zVKcU1E4E=fh{dFG7-51L7F3`TR#d?TJF4M84Qf$`dNiOBO=w07TH!<++TlV6IzcQZ z5sOL0BEQW0pYQ2(y0kZav5UNJ^k6r7u?Ksx5BqTd2XP38aRf)9;TVqN1Ww`cFP2#c`vcx3ahaOYq1XN zu>l*g37fG6Td@t>u>-_nGO?I!f;rq5Kh1d47Z&m=PzfulV1pgiaG(aYs6#y((1<29 zqXn&Sq7ChEp#z<8gSbp4E|YhHSWNB)v6#FYz1V}j*oXZ%fP*-M!#IMY&~OaLaRMiC z3a4=fXK@baaRC=`3B+PDv6y@r#A31s-f&-hn)#+LeB}8NKoB8Z#Wh^V4cx>n+{PW; z#Xa1|13bhdJjN3|#WOs|3%t}tq!5=W{m>r+KrE&V!e9)+Pz=LxjKD~Y!f1@aSST2W z@tA;#n1sogf~lB>>6n3;m<3`ng;-3PjX9VLVlicYxG#RCzV3^Z1>`NnA}q!dEX6V` z#|o^(Dy+sDti?L4#|CV~CTzwQY{fQg#}1Uk2oua87E>xv2`j2#gB{gypa!+5Lp>VM zh$b|n1+8$R4efBD1D$Y#SWF=nQ+8q(xQ~(IEVANfQz^U;xdJ}Ou39J@W2aVF~tvJF(rr)uHqW5;|6Zx z7H;DX?&2Qq;{hJx5gy|Sp5hsv;{{&oB2tOP)PCrX0T>8kF?BGA#nhqUz8ISQx-U|P zkvAM8FcPCM8e=dP3dUhPCSW2aVKSy*DyCsNW?&{}fw)X1E>mY?4(4JW=3@bf#Z+Q3 zbupG;DVAY5R$wJoVKvrZE!JT@Hee$*VKcU1E4E=fcAy+am|%tl6(ANcP#W|eE1zf}>5R0kAV(MjFfd^jr;70(&VrmFi z!+r7B+&6u3jlAo)ft$F6+qi?fxQF|AfQNX5$9RILc!uYAftR|7G~zO?ANpee24WBf zV+e*~7>LER5g3V47>zL)3kBma9uqJTlQ0=mFcs4<9WyW!vp_7S5sPWFF$Z%o5A(4A z3$X}`K`f>%4fn;eyw`n^wv4>xSb>#Th1FPtwOEJs*no}Lgw5E3t=NX`*nx5wVS*VJ zRG<=8RKW&fF|8U7)Swo1s7C`D(S&BSpcPKEp&c%Cpc8Hoi)qAS+D`03H+rxez1V}j z*au=UjaW=Oh(qDN*p&aKFAkG;1V^Fa7>?rvPT~|!;|$K?9M0ncF5(i1%QWIL?J};w z1225=BY+@6xC&x1?K+6Xw41nv+qi?fxQF|AfQNX5$9RILc!uYAftR|7UiLvR`=FP7 z(91sPWgqmi4|>@Lz3hWt_CYWEpqG8n%RcC3AM~;hdS5*^i!FHF7j@Hg5tXdlN|}>w zY^5J7*j@|!{tIHl&i=8nEscD}D&ntuu`Z&A?eAtE?WSLLvJYLv&~EyqgMO=KJ8H*( zcy+QJZ4+o`9>1NyzN%zhJ@icv?f39Gdx@u}v6R!NyV!?4#75N#+Gbz(@R^&Y^4k)m zYv_;K3A(Ry=@4OMKUI!?^}7;o_DMJE?pdab=$gxRvoCx2%uZs+d7o_>&+jl0x4mqS zb0kQ&)8FSeQvZdnX@O3cS@^mi8i}h;_IdXl+9z&y)3>|nS1avyPGnj3SKBJKlQ!De zZyjt$!wlM^{RTewPUao-VI478LEO05M-KYTIhi`tZ$8U5Q@)$+JIrSiebq&*nb~J; z#ERWRI~&0Mv(R@p=sWue`ha<}iG9F!bg*w~iTyf0XAAqPnl_#6R~NBR&-$$NpLHnt z{aH7CS5LZu&tM-y{*_n#SI@e3HIk<9I}g&%YWjb3`1?_yf87_A3ts*HMK{x$z0_Yx zztYd{>Gb6m=EpHlyJq^;?FIYl(R@Dl4z`icvwJ_&E_^dWU-0=4 z@;R$_vCijw-V31L+h&9Idk51NX)D{Yi|y%QyLQrk6a8tXtgW8q=CRMoujys})&Jr% z7rpL_E0+H<&}J*~W2Jrv{d|ypUA+iwS1Wy0OCQxzw}BX}?Pi2Y z+4e@Z({Y~9L!E}t=>xXc{&$v}!n&D?{olg(wo;)#_>3KV*Qy?pW_#f`(2|jjn7MayRYLG%a3Gv+TFR8J{0RCmKx|=8~eh> z_qJPOTiM21)@8k>d&u{r&hWY)%+$5>{ix!*+C}VCu&vchJ6OJp{ZQfOv$3qzM4!@M z`-bZxEyB2M~}I5kq&NIfIXrH{b{6MjX~DOcgy%0(*+>@%3uA)!_bn~`=*?I zXAI#g=tm>_+js*vaSOL`2X}D~_d!e1qtefcL z^4XY(IqDBe-uaAi{z%5RQyACHV?48p z^Y}K-Ux^&MV-NPxWghCIGaT-tvmWWAYdYFT_l4F+cOPT_&hedNnt|`Kl{l^=c0Qxe zrX1^|dybK8?*$l6^wD*&{a)t#aE|#Zru>F&glJ>tr9@OV(v3Ppn7sX4FaE zx(3Nx5F>f>DkN{NQ(gWx`OU4Q8?_Z;zR@VJV(O{MmAr-)$y*#NdFvApsjPlmr>=Qh zr>%WkC$E27r)&`Q>+{u(Vp^ObdGqy>w;@j3B+^YRV>3%$eYw1abRf~9Y-RavEWe%Q z|3;p_Fir9mxy1KN3bf=(K69}WNxrAGNeUU7)F|eCwMAOAn9`P~z#_+rdAln4YFZ^< zV~6A~u91Ry*-9Mw0kvETWEDSH#BUgtzy8b~etXr!Z?Agz?NtxIz3NGb)mo_QNr;o3 ze1^90d_3s{wViEqh0}?0XLy=Kelk*!s<^{>Y0Rfb^h9zDi_%5xNn^@W>c;*%?ih^bh+IvU3NuAbSG1fWxLBMPiI=jF^qaW)bFlhTEx`Kl;c)6$D2Kw zOgV1u7VByxE!NdQT9k9#+LObyjcFbVz&7kLkk_GOon5RmDx%xQI?8p@l?*+K-d>{9 zy=8pWN7^m+$DOxdZKFRYS@JqNCBLg!3N@!op@dT9E}z?zTUQoxmf43tWN zj(D_6L4Id6$nRnX(`uz)WxN!uaZABkqZI6{KqYFVK&C1Mh?_ubn&h{zoIOeM@w=}f zesefrbV?z9Gdalmf=ww>Fs4Pl$7c`nd*UJ1=WR@rLaj+s$eGIb$gSO{-yTvPawaQ} zL~P_oN&a@d6y&#F1386~*Q`pRs%j}@%aB6uLMc#@pgtzXp0M0AV(&T2c%6Jl+M^H& z*1`Vry6p6GtK?BxkGoUyv?WTu$Qa4T@27iI(plNC(D(85WgPuqgbqGO9Lw{0_{~)x zzm4iktz?_%^Ykjolgs`{uVb3ceu*nlD9Nh`2*#Dd`GAKi9COHvHWM+ z`wMxWk=IY;Wu?)MTOL6EK=KEXKlmM;Je2e>(!)uQAU%q@-qI#zGiaO0TQmBk$U`C-lnY3T@OSVawLY=A9nI@L4bjdSVZYFuN z$opK>%eKk0$(zG`u+6H@C4U~~GBb3bT|*>PJyOT9jpRT&?SrV_7ba{CM&c zsGCGOnRE*2RMP3x4Y;$F4DvF`Q^m6RE;*ZeIppP%mnZVv*>VASh2-hUD`MGV(j}xz zNtcl}ih5mbiixQ|vq3e#qkFhir(0)v6<6{p>Yt|m8S0;<{&~_DNM97oSqrpFDDvwnh=&&WDs``s4)9y;L4Nx@7*j3z z>I~|2@`C*KyQd_d<65b9Lo5^DBHyC^ZQ8!Wy6%$a$uE}gi)lfU@_?yNU#mW(>=E1X zgt||u`;7E+(l1H>gS75loz~}FogDEl^{aA}x8BvM5_w-C?`tBj#Grhgyl;^AP4d3| zu1@(5>F-kJF~n%!Bk%j<{eZk5Qs+mce?t1Fq<oBO$MLNuO@5bU-xJH_yZAiR)hBU$;+SrZR^O-n4=4*2tMW%oy=_Gt zYp9pwrk^-IbaH&@ij_R3cFE6gR{J?#`yI^JF|Ffx9mR2*-_!OwnI=1wkHz+MW=R3F zi{o({^V#Yrx4X1*(&zf2`k$YPTJUF6qyaI6-`a?UM|TIm+&Bd@bn`GqJe zD3<*Ees?I#$iEQN9jtske(;HNQmb2=DeAZ@7@H(XL1TveIq5)@7=tv^mu1RdNqce& z)!9t_u|{nU)1aHa<#*8o{C2(H!0|u5U7pA1nJ?-#q^Jv+daE;~fQj>3CdcIX8f~G- zi{uYRkpgYi zeD|D;)x;%dxA0lF(vCN(Uh?uA-9D?H z{c2^*M;!4R<32;D6wJ?)w^JvW+@1G!x;VD*y(`aC(?z<&)v`*b8)$od z?#y^MJO-0h`Y%hg7aPs^*`;PP@99WjosC+K$d6$irFoLKs8!Ar>9`IhpKT}*^WvOt z%FznL^W}UFzNamGkLx*~G&7#hw{e_Jl#3|$6jGjDB6+hqC2xX5@-^{YZf2~}oJX8< zE-A~9d@YRaS~%B~mBA_b+KAKkPPU!#hnw-VnK6ku2aF3WjHzPsiGRu)86#8>$MLOb zll%!8q@8@nswF>T6F#{3T|_kde$6Fpf-?{6>yV4$k`y z*5zOwX12{jTqYTqQn#WMaa{Ls?yIDYT8;-*Y-3du>LtI8>jz@lZ!2WV`fPS^Y_sQ} zMe^4$_Nx_alE0q(2Ku>??QddRni$(QRY?98u0tA$Kl;?)LYvN9uzk)d#*OicfqmlV znCf@&Ib6hgC!fznyt^pxV3`iiL(TDOv8d-}U2ZpN*3-<`n11#(ux%~LQXsOLDdXHI zjxA9+s6`j!=p?N~#6M2a8UyRC0 zQRd*dQI({g;(K{o)S-U@Rh{x#F>m8IZmVNF9S!<5K~>I?@8$X_VArDrC0wX08< z1|t)}IWV$TdrDtD59hf^bFC6puDlS-R3xb{Y3Co5_j!*PF<3ZnvlP z8X?N+yR^67)5%{E^VyZkS4Ew~0`+SmU6rkUow9E-?^U^`N~}`8^`1`s_Io<*J0h>E zP5z#!pKat?%c#hdeV?))u*{F%(inKMN#Sq+88O8P2zK<&~|EpJeu+`v_FQ;Qj=a860*nkOek znIM)+uMVG|f*BkWRJS^jJbzU_>*H9Gm8VT&`6;5FTA)k~PdOH}W^)YWyJh40P)$~+ zksq)WXw#`XlXcG$^*BZb)4Bf5DkI*qNt@Nr$@eBjYJU~e+!!gC!}Wo^L7pShIkc7A z$TW}R5ZhXir_ALu%oA;kuNc)S(UmR|Ob728vwZcSg329$OtGrCqE94rs zxL#Q<=1XhT6=GUa&pg+e;`q!lJXpwashsmc0q4;2IK*o!+5XkEzedzAXZwu?$y->& zvzkrziiRx{47E>*X)&vuAqtLXy=c@D1EY*lik$g5%h*RVadS|v&> zUy#dovi%K3YBbBm&~6<09)m@R7xf$S)CBSq#e7p1V&vp-ei6qu18G%B5%pb}bJyu~ z1@&)Yt))uqpe;9_qf3-KI@B*{XD9OkJD;_kv3`4t6m-Q%p_Cjc*ii_F+)e!+(Z1Uv zg;HbG-7M1^PP1RlHhC}Q``CB;$@96K+5u6<_u>%whsi%e{iEc0Dk9}$Ohb{a%5m~f zi20~;?IhcDTFggVl`~=*6RVyLr)$D79E#)G-Cie!;;ZO$aZIb$&aun|Q74gOasy+f zq$n7bi?n-*_5Gdl%dGzjX^*Iv%2*@Ku6fD#lMX}^FZLKEKzWd~*TQE@iq%4tUt_uJ zVwto?j$7=PcE-wijIFs(7|KLmndI+c{E*zH-e6rfS>`s&+!5_ma_+1%NTEWP6w(ui zVvM6Vsdp*!CvYCqGX^#_YxhL^dd3DBjEO4BKcgi z!f2+f*UJ6H9L6bmaq>SX3q&<@KH~Em_)l@~Q@5DwGe@%8Cp=HzWHLU9$<+G3uan;r zc_rMpDIuTlPN>AqH9{n^P^L(tyj0v9GN@k(&o^sdWx202@8w=&sEqrOW%NsV3b+QS zPFKD`nWtG*zxlpS`_}uqUvJ=kTGOkTlfNU{FeOVNBi9qAL~xy9?^3?|zE1rfWxhQ2 ztBLW9iGDSSeZ+Xu+@{H5eU1kC2k+~YABr|AxrVW(f_}9!Ual%oe?-2gC|3J1+xJsZ z$6f}b^0V+f_f6`!=BdtsLw%b(UnJXJ-K4!EmNUi3?}>U2+HyoH?~C%PIQ0XOSCg)N zD5iDvcWoEbRQY3(Zp~3XVY@%&bN&+E=cNBtlr__jEiu}^iFqe6Y2>rE#>&5- z&VNwnKUwCNEc0KYys1t3HF^In=G$3+doH*(Yd1>XCbqGidmHVw+HXX;i}8u0jIkkO zNUrg`9gN#b-12WlSqIzK!FXMa1qAV%5!k#YAGY#;yIHZTutk0&%U%pV-F#W4r$>(&;7gXMC1^V!onO?N9yy z(Ow$g$&5yMkeE+l|D_X$87azOmK`GMCUReldw79jt`Vvj3lWDyS;ufu7Uxz*h-tJ* z9Z7qmnD@967nLg$$)7~s$>B1SJe8@hxJa2s{&ezZydNIN zZEATHe@Z&}8Po~p#AuoCzq+p*RCDDl){#wF4$I`yem>~}>Up!9)I##~B*)GcRuBkh?e^JQ~AsV~vYVqTvmS5Q_-nU!=X zBVMZ#({#>3F2?(@cCIA~WjlG^_70_*dJZw)nZmVFvR1>qugWUd(MCPD z`An|2JF4Vn%34^imAs%`uQ{1|+Y9*4b4?tZMmxk+M~vJ~J(no!W0WHLrq z^N6OJZ0|X?hGCoVH=3_n(%b3j4!1psz4v4aJ z?pc?Vai6G!YZSBziAs=VL#*p6b$l+i+mRt(XB%#i_86knn_^m2tlbJv8F$6n17GRYt1mY-4QxhU%@l05BB^#yIb zq_1@!=#)MmuwN1))xIC-w1^LMvLw>+-1~^<`Yfth`N{`6^{bS9jk0fuGPPd$CVAgt z-eaxOzD@pjY3F<7$)Y^9Rr|h}W^rwp%C%mGD*ur3ABntVv-)E(&E#4ym+MIS%2V5< z{e(7tMxD25;~mO zr95D&QU8s+e<$xhM19q){3rE(N#3tSTl#eQ*J4`8y_A}4$zM>X{5R#l3Fn!#|6#fR z74rop%I}zZOse{Omi>d6uPK!O#CraZ`2f!eJRFPtB^m0UMSUZmx2%NE6U&&I>(g?R z_7~dfC(5jijK{OMUgp}nI!@^?@^ZL0W~7g+xR+GRwS5)$3?2FE0M<2-@=$si$JhpW zFzXxgLHIcLSJ&(K3neFMn`nEBsHawPP0jUsM~brbgYYp=-A2BrC4=khSZzD=J}dVO zoXH%|xWCZEJ-2eMRbyT9-)K9M@<2?z6iDKlIhpIUmig{O;s;8`o z`A`DS6%2gu(xT;JwxNVPUrec5N_iRcfnuj@6jKA|J_FCrid~9{?KhL>sVdPdqAb(N z_gH*Cy5vgQu#)GENmQ$7!^V6lH9@Wx_1MP&BiG5C^8+TX!8uk1EQN}L_G-j3vFThZ zaZIaVpI9AQtysp&@vxFHN?eUxAFji;CUSjUS+6v(TqEmf;xo3e-d4&z+$;3){qW@S z+)8g#os_qUcI-yJ=Y_J1dL1m+NuJM|rnyC#c-CmO$zO!)xg~D`_m=Cq_fYSUyosu^ zllr@8r(2Xarpdc$qgTu~&?np<4m8vdx16_Ix!!TIzqmdObf&9&KG1!C(N=czQR=c#u=lv_*XOH6}Vk;>m${!8Y)*<3fq5>wni z4#x1zGnV_)anagkQJ?XiN7PT^S~|(1c*VS$t@^~YAXD=*_1WUtA6;@#%val$keJ%d z>QzxkU#4ASyKjj3GKX?glv!C%c@5`Nt}~5XGa9+JV;mdgS|VskQ*Vj7mK^Oi%iX09 z?y;Ts+5QKlA5rEJ*IPVi^m16kJC)u8&{X?`{%kxovv)t!H=A&P|kKoJYp0hcg>o3OMnXyV=%DhoV zHA2+MtkmB6kb5W02ebLyR_^uW6@vTy;{JACp7K@70xI_tUD4{-KGbPnr~Ws|^SCON zZ;3Ya8S1ym{|@=z3+JaQ@`v0|LDW;v2Vr~uaA9xj$vMF zu{xOgLq2>p#tWrcXqRgtvr`#E z+SeMTj%67|l$DjrzU~X#xWtD z=Y)uZX`-yPlQB5=pShnGs$hIyWzeRx{7lOH;+eRWcLwZSLs)B-S>$c$JLiMbxo_iPE0}t^$DpV(~f4Cl~%}^IpCsb3aEn&NsiTNhRZ4EWbaxu@nS#Luf zd8z6O*0qv4t7&(QDC1lc%<5FvlE04p4dey$+3uW1Wh4E+iTuqXFSCsN8hI zd4Wo!wu5CNnfIC&edlujR~JGCs9%^@9B8rfN5Ix&s5$PG+G$&9Nrxc*KnRT@P)wO(yvxn?n+9xu1Dtdn`Kxmj&v8i=!N?X=m! zyiaddI%(HU{VtKtVH{BzEAJHbTHVSn%DO4*A??lKJ%UWGXAQ}6FKzA-^(*Ssy_D~x zy#pd`E9cl{R1Pxl(Gzb;T*FqisfVa@n7mLL`-gMYQRclio=tF{&KDz|1#sMIPE|DW z192QrQ(WpX=KanL?YO9$&DgRzUp^_yqxfDl)Y49#a*FLc9j+J6c!_aWbFFqp)L}g0 z(evCVo9k?PkvzMuR6^+KetlD%Qwlp#e6W6b9Z(r(s$~3 z-*5M;_)~9F_YTY6quzb7Oh>-@K-5p|)E-(3^<_~%nr9EOjmr0#_lU7- zW2yQB+WVm>YvWq9(k}U$*hj5=KRXTbk7?&8qKxN7LGHo%vf|XAQvYYP_YV2KVz=@x z>v>PK*JaV(C;vlHKQc!7NR&78JSLrSUSqcUG0S~Ip0|tfT34kMNMY=jnkoO2sGrK1 zFSSkiXEC3~bBZ+fX?vCWFQh}_xqU*j_H$8|!M$dlXM0>c(=mu=zl_}*7>gBgEXowu zv5W~bc}C|F-&w|NE@IThm@k|A@g3=mZ5d1D@?GH>Wq|jN0(rbk*U334pKZ!F@EIZ* z_mbDeF{zMcyBLENw#)w})*a7t$pW5*S446?;9SPDkU%l-F-8(w#T>JvI0xi&FSvwb zb`<9$o_YD|*&goo1xmRNHnF}kju+942g|q*5p8A4Jm=9sIpc8d>jl+B<=@4+%v`6G zao>h_)x5DWBK}V7c@=-8c`j5z{R-|AyLskiWz6N~xX=CCfQ@Ga@vO(jJ#gN^@{0Sm zTw4e1oCA6O>2>nV$6*A0$}`A79q0Hu%96@JKXHBvG_Y;STrV^@nR0w@WX$8H-(n)w zUx;mMrM*`2TN!V2ehu(kJK%2OdWG*wI?p;H%fNB7nrHFc?+8Y650z(to>q?ACDe@~l3X!n1{x0`PuY7UQxs&h3Rf z*A&kjGP%bP(@g*K943Z+oW=1chwJw&jyKuFTsH3wU_O1Xw`(TLbc`w0K#`uXoG;=RB(aLeQ0E{P-8Ji_@ z?nv$mAOH5hj=xZfiSr`mDYU`3Hk87+Cyi$p=^Ufe**=T7_rg7E-XjcUa{ZLby~#}O z5wVX#;+Se-9Huf(QyE+2keA1OGM@Q_@@cDpXB*se^>eSrYc(@IjAY7qsf6pa(rBJF zu}|${AF-Vr)4g1qhD?0^a@K9;*vY#hzIfU(bAQ#$xW&S~S_|v8unq_3wMw?FhP0J2 zZ8dRhW4jrbhIn=!;(2?hmd{+v^&!`4p}I23Q(P+eMw&lv)7jmjU$|0DT-5_zgk z{xiqwzliy)67@6k`%!-Yc>}38hR7lZUPoM) zSky6;jiqcHW#g$kf%HVNd|jD5SxlWN$`taal0Qu>YbcRtPMAnuu!=PEXlU&$DyC{eYuOf}^-EK|!eb)@Sl52kd= zjpQ|v*DTT%7Oh20-DR?qX{f}hw23Ll>5#2cZT~2It)sbUtCQv2EZ0R_Uy$BKx|?(l z>D{FFklssrAL;$157Lg$&Aqt7M9%SD$|1@QQ+9+hjk?E3A18f6)DzE0xliIZ7s#h5 zJ5AXc%Fa^vJn0LhFH+BI;-0w8sa+!fOY$$1e}#G;(mv9D(gD&z(Pl!Hd{s;enpXbhy1(b-xuj(qw;`h&{3j3B>xflPiXrod4a?v^%;53 znfF;N@=Nmn!8&yxQ{Sc6`Y`p0`@9C;|A?!XBRBuu zR+gy4z3ptaBZqlU1=o#wj@7)k?bo-+dDO`l%UNR70_qep?=HNm6P^1w5mqROsvmBUIle4Nn1(VM12S2CW~9KGw*jdtJPv^jnN!T zed$KImT4%RZ7Jh;U0kfxv3xztH?VvY?KP8b5p`SQv{v%k#JqvyVwp*459ixe7gK*8 zeE)X<`I(Z(0Fxs&{E+U)sQSCGixb7`;QOM5{6Bk~_p?+Nvu zl723h&reofkoS^#uXv9&qeA-!^MNwX8A-WvpHIloXi)lwr=@DdCpzt|Pq+_6+E?jR zzWT|lnEe|0Unl>YpXiitQRZoFRliN%cbE@$iTlfZAN48n_b8V?;hqm=KcN1PNdK7h zPe}ii^xLH0A^k4t_eg)h@`3hJRZ?ymKlzR+}_1Yt~ zU$E}~WLtho{;$}U|04b0qP*3v{D!>$A@8^3{Z6#mu2+6f-XECv>ASQ)G7a)<*ynJ_ z|3@2tChgBCQUAg+pNaV#?$;JL3KX;6l;u3@w_T;#Cgiy~u!tbrmuW$jp;R(w--u?Ji)se9jp~^~xxbSHQK4c-JSN?apHy zm?iE}H>ji8hB1`;T$!@M=N!j&jsHaV;}o6lrzc*;og7DbsGaA+&3cwEQQ}GalNt9E za~+x`#++P}aeWnv;~7c@&m_~iw#i`MP#yxm{PN{4XX;Y(Orrbh#1?^j3eQ%U1@@(YU$#aPI;!VUm%y zSl?I8d!`M%pPt6^6+Q1dR`NGU+$Z$tElLf``HXtCmT54NepR{lE3s*HwAnzOrz%Tn z6m6$9sZC71O^hvT9a=Nxts-4tq&V4*HnyXkbWk^k4nybko?<9X0 zX^)jLHSg#7Qn)5=a-p)U*0bFGW8jG=P;VTpDASQTEq4= zb6r-LqwJw9)Xo^Wk^4cVJR6KHRQIyZePWryV)=lWmQ*SS*_K0MKCwwV%+!;|c)7V_ zd>Vg)cbd5w=Q_WE@i*@f1Zu^2UyR|4v~P*FI*EVYkMq@XP1VIXo#*!6F7_wa!5$}n z)0Cnz&L*y-xIbCJ{&r?@{lPJq_c4Q=>}!>42Cij8mPn?22YJuQA6v&*t(x-zWBEF9 zZ!=o*)^Q9dCEjUbLVm=orwXnZx)!{(Cm8yO|x&;mTYX<@*>%?(}ekfz^v6Wa$-4hxswihg2l*pDpw%m0~U2XQC{n$G?xcl=k&;FTq zT{E(0N8(>O9$(?QwG2mf-aD=`_GUURaZhizdvvZ3M{Db{f1ut-_`XUJdsfqDsrUIB zbFDd^nXYsHp_LcngJ3E-9Zxw|s*`TPbKFX{9PNCMOzbd$1@2R=cJE@LbEQqL$tv@+Zx8z^UY&DCSiZ$QiLH2EY_Hm)UDPwZSM?vB zTWzv`g!e;6cX^IeysjuN^x3y!#n=7-Q{c-Tbsvx-HgUq@#Jb(V#6X8AQ`L3^h<1^vD z;L!YXawBYjt+3$ii9NOQE1}}-iKbO&Pwb13MOg=S2jm(khPALx*(UW?Yg0!m+fyIL z7uleErT&&czT;icsJ^lGZI<2*zNOG+c)tGjG(oepcN*pwO78{t!{;xBWzze={Iu2& z`$lJC&ujXhFCE&mT$mk&Cvo;~Z z{9W)WowfH~!9>ea$9u!ylu({`_RzXzu=4Dowe|3-G!EV88gi~OyIDupuj+CO&Q22BF_VAF8*c1){Ly?4hLn(=@;ODh`@0;kMHMn!$IkaXcL_o}}T|?q$P1t8K zsg3)jLu2DE#yC*)hXgjzEG#_W? z`S5(-9nW`7YF-bU-^25*Q}ey|K0oRl&Rl5;<1Sne#Ex%XCVXc!Vc(hXt>T1l&nH^= zriE`>Vz3jcp$2@<=Xw7`OC5xBC$z!*Z!zav%z58aPqgd-bG)V5{5MzkS%3DKWBZKj zeTIpB=9+IbCiYn`_K5@U4or9_abll&;k|^3edftNab#_q@V(=N?-wWRu@n1nvky1> z*6t_@g6|&9taTIn!nFxc`^^7+8?xfQ@sImlBZ?w=HTWF3gG{+WthP1F0#LPl5vrx<|6f+CO%tA4q4V|4?oDrYPPy5+!dB<0 zW$sT$!*g5rihVPdu9M#Fx^cJjttRJTP0mxpZ}9eo=T)z|&U22o(>X}E-`Ba0s`Ff+ z)cqajd*jW{Q9K7p7dmGs)URi#=?eGvW8pcu`}cdDD=qN;S@;b{jq}w)eQtGr95r_M zO;xjVwHgTDiC*k|Am99_3%wWM`|h-F4AZ_vOz&k+-5PoB^Sd@03!fcC)!%8XJ?z}$ znz_zgE;K*=F2+!y`B`Xwdd4zTXnq!&pWc}pDl|WxPY)GZTMDhYg^jQq_COOf!(Ood z&|_$kwPcZXVv)WV*?$&k=h^d+^NgWI+AY#d*%ABWNO(QdT>1~> zCg)SmRlP@@TG4oRD&kzbX1?>|jb{&;x2dM-?@UwXS!!RI>qgf{Ym3~!*p+oataraG z7M&{&=h=&M#Z0c4nJ+fyi_Q6B)BC&=E%xpf`uaw6c!6_`1@`3y-nCoc8ZvxVxIoMjt+3&imPalAkryT%#zUG4A!alAkr`-X0KfjC|uju(jI@LAddaqQY;c!4-xQ1bIN z=KRR-&u=liIo`1EQid1MZvp)li0K7ldV!c;Ag0C5uoxJ2E;$_DOZ9wyc!8K+ zV6F80a(IEg$FtYr1=Uako(nH<-n*aPOZfpeGz z-icUX-(L{gk0;;%4d>1WT;$>+7Z$i+o2E^=`Z{=P&mE^={^i;G-bEzRY8P9{WAB9L{5Z9{cmypT~aB$cCL?59hHzkNtj6U^tKc zdF;<)e;)h2Z#taE{yg@F?{jztI-J*-)$8|OdhHdx_KIG6MX$Z0*Iva~CL`i+=gzbVt}w`O|%?o6-Wx9auVRlT)fZ|SwS^x9i`?Jd3bmPDwd{iWCb z(rbU|wZHV*UwZ8?z4n)0`%AC=rPuzFu)ieepU4G!Ou`4kj?gAXS{pWaqW|CwO3jj$HMDw_W{P&yGK##9*cM2 z#!Evx-ShR{#CWso=Dl>VA2Y9`0|XcS`&II=#oe2IqUD zOS}`lliq#{XnehE?(iNF5Vo{w42)A&#CvxhscOt$C%TkQP3 z*#2BBX1tFvR4mSl?cKg(9V)h07mGvhK@1g#=j_F2u5X5l!}EP{S!@sW8$UzE;zFusd zPc3o(c1b0)xQFMP#C*>Kytk9$+tf1mfZYEa_s&ylnK@gsJTYbLZ^O35zJb`gKIb3l z7W~xj!2DERL49@>Ia#Lu4z-g0Zy%4)a`KjNVIg@Tod_R=l0UC3Tky_*3!u7t_*yWnHusZus zjs0g~x!6p3?kIFd zcb~im9FOj*%XyGb9y(Ljlz2Flev2aIn}OktmD!It9^T|xg!e?poad)vt8*Sz|FJON zGu7XmDStKlw_&?x&$@hvpQ?6`(EW#0bxY0@@<---H>qrM;geyVSHz$B^_20Sq0_Tx z^2~|wes_bmwTlX$3-fBlg?l5Z+BJ#i)qOF{3*%~=czBg<_0IME_C>03Ssa-E8=7-0xn&Z3ISyP;J4juE1}nxRf)s$#wwf_ zy019ux@I)DKKo7Wdi9kE%gn2k^UlaT!(;blMm+}^^&D|@#j@-V!@OmSa(;J478f23 zfy?$ZN7y3JKCcP~2R~{_sZEMD?+po21hCS!(gt!e`_?EAM%EFUT8n4`Iyp_LytnG1uB-t~)NZE5-)}Mi=1;WFVCKTrq0fs z1$4+YUS4?oa&z{gP`V}_Te9LWHwD4M6PYzGUFg}{67R-DoU8kGcWjAs&*cjW8^ikU zt&jQLlHJmy<=W=c%{j|(Q*m}vm{%IkP5Dc6&+t4}5X)&c?p|dh+o}^SVIKwb51)ar zwAZfKk=@Gn*TVdj-X|%{FWgVZ*KzVj*q?W{hc_+C zbch?{O=I+Go2q^}`z?8IhyAQxQrH*DH7j6C;t1W|4ePwJE+w~rYR)XIWW3TrNJUri6@4RJwV|IU7cZ2sR{KnDn z);&1`^!e~io_F9jxOUmV?u`YB-^m*%{RzS}thb=8$vA>&ctQTY}(W_h62> zUO(u1YRx_J@0b4|`D^k~@^SJB@@eu}@&)oGasin~zD#;g?Hun6t?@3$Ii8!Y@jT%i z*Jx|jk@l4}=J`2W$ucrRR+3RNM%IwEWIefy+(R~#`^eYG1LQ%no$Mrg$T*oG-zMK7 zljH|}&(%44iF2m!*~eb6u6)MNcb_~f7&i99Waw|S`(1ALh1!zj0l(pWBl$MW2}VkT z;P%Psdei@%c*Au4CAa#Yyj$R2xC4Hreu8`u?uSR=*WkX?lHbB_;AwbLy|;p_j!Eg~ z;aMmTeu{@B|L-{0%eyZ#&dt&f!#sEd9t-YQ_p?mhGrD(7$-fPr(C;bonP7)HKb)Fj z-x4-0c>o@V+uwj%hb*X1k8B43Ue^U2L z`KN=&I>blEeIO<}@ZTXmIzm4A zv_pJ!@M(uw>39spNC*FPh?kDgmrqW|K*ue?-)+Ow>6!jC-jYc0jQsC^`}_F3M_%Qb zHqG*XmdT&;diCv}@C@O}jSj+FFD8`hQ_&|7Cn!#@}W9T*l{Rd|f6E z%J{mB&pV!mXMzLT_0MeA@l^1g3iJFQXYvxo!H(b}`9GVP-&SVqa@Yp$8~^|K@0YAL z_l?`?;8m!HhQMEv2D4`Nf0Di@>3wn(CSU-@;W+#bjse?F4#TIw){`kn!{=}mJ_bCT z9D*_U3_gTU07oZB;3F_UP7VTYPU7g~X)q_scS1GP;O*vMw#BVzk zQZ6>j#b&wKEEk*QVz68+mW#=9u~{xg%f)KBm@R(_p4BfOmhoj7KbP@$SvZ$lgD!l` z4zm8g^|Wm?_?|T#b7%6hI^M~|^1FPQg!kZm_yGC=Uma}iz*Pq>I@s5NhYoyou)70S z9k}hlOUHO{mA((o9Ipe99k}VhVF#`|aMpq64!-EXW5@Ael{P>6XESv?9K0oOZYHnx zXmIAg3l5S`h_gQU9{zp=1%qsXUO3lr34CuT2!2V2?J#%PegX>tJHZe1c?H}K=T!Os zgUlFNWwY>gK3o8=PIJ=6-Zu8OvA4_`P-YD%!+#k+lsyT!FAKSU4*01o^v8uHAC~c9 zSrm52djqgiehAv29Xg;Bx}ZC_o-REZUCzw^Hhi{;(>DCI;jayUZTM@$UmO0~@YjaF zHgVi0PTRy@n;2~q%WYz^O&qt0`!@04CLY_wW7`yn$+mB;(d=zM57^w!=5|riPWSeU z;9|H0E``hBa<~Gngsb3cm;*U*4O|Oz;X1e;Zh#x%Cb$`Hfq8H%+y=jb+u;tl6Yhe$ z0dMX1p85Zt8_&wbXZwBf?uQ59K@j)t;=i3A+WDc~yl8(6_@|wJ+J6gA0ROb}Py5sG z4DeI?bD3E06L&}O&=2Cf{dsr+UWAvR49Z~}M4$pHp$fJ`6m~!ic0x7Oz$;J-b?_?G zLj&xBM%WE|pb45`Z&1STcW3?H))smDpcTyD_WkfW8~`!YE{590P`emvZ-)-(gf8fY z9yknfcoTXd0dK+E!0vW-x4#4LLK5DC_rZK`$47g}$A@6Pw~PPwK^THz7=aXw!WfK0 z8a{%L;TU`ZpTY!u2FKy^%zV;Eo3YwH2;OJ+obP1pULqEkoCoK_1uz@L;gUX{^S+sN!vCLKr`{IxVzW3| z%%2-S3hq_!oIjYMWBA{*%Q}MX@_#uq|IB~(;xzmZ$jQfyh0`_s68>lJ7V+f2SwGTd z?#wnt##;mVC$)KwoK$y;oC04YG>TL9I4ZGuvzsBP(M# zz9h(6aiR8)8cQErJ`6rr_ZNRSgP-vKiPzF+%U-s9NSZtAnvHc&kX0;(H_2c3e(<-h zP3FyPw^F~8F9unKHwIbX-p!`#@h^r}-=dv)vrg=;zDfC)()v7Yu1}huMW=$N^tEPY zU#o9mU#0RUb!*i%2RB(C3O@&2uN2?wj90?f-#(+B`C24KH&+LH^mR1TSJvr=r(^BZ zLv%5pH#{GlQvUPr&aiixHE}hcZ`h~r-N7$+dare6dH6q!#r*&6AzXYGyrlf$e^SoY zq6hGKA3em+B>w!5;(qlCX4YH%F<(6woK?-AGxMj;4`$2jnVDC}kEhIw)#5MwuSfsQ z`m#DlXV&@se=)Az&hNPLpNt*qeCLm5*cSdr;}rc0z6k!z=7Wm&6kpXMd}&&GAu zxbQ!Si=;P-y-gj!-~PYx3T~9Ny6yJ=ea6X8o<@~)g#DQRiy3fq4d-^ivd=~z< z@s#?@E@n>zhwsbF3A~07L}u1s&W0^Gp5p6LK6SC1HN|KCH~LRs@vZ(psT;%3xc;ky zxyph+o?-Kp^=q|wSQW;&*jX&jT#&C-?}sz%tvV(DS#@4Dj=8x0`5>vz?3s1W{I{h2 zqp)5*aewANC0q18JNOIN?5admA5O{qW=Dw^-tfyC*SaqSSTG2jw=6bX8ERy;4kZ3`~346Jotaw zyXF0OW?uNel1O(t@ay6SrSZ93`Pv79 z8hw2;v#+g>1)s^A{k>_zS+FDr4_*bFHK|_(q*`{>6-# zC@~k;JV|%)xdzuI?*xC}!0$8bEd4BaLEgMfURKF_nYF^aFZlrITw={R^FQvmSXvXb zs{dG~{v79!^PF2<;yh!P{rR(z>FbD9(h>Mh%K8g)V2|T*_@2G$Z{Z4<4?E!m{LDH& z7YZN=KeqnOhPz=Q?1Y1mgemxuHR6}>7;J(b_y*1~SAGe%Ljml8armxy_#ylP=D~bu zfzRNVxSaz}Kq-8WeZPRYa6gnl;C@^w`G?}-Ol(Yc@+aSwSOZE%gY%V_{K<^+5^L5{ zaaCl0D;E2uJJmCXO2kRQ8^J>L_xzLkC&a*e+So6*j0J8f1miQy*NDR@KHX#vhW{D7 z<)z@ejqch0%Nb*a|1n(ht+`?B^|Sb$j*HcIbMP{Ce?GJB`isnC>%$s-hW|NS{M*1^ zJO?+W~>)?H(LD7Zbi zM*hJ}e%8t-rg>bik79Zkm=Ei(57wyDKeO$6eXhSn`9ZOKA)T$!>n;f1Q7`!Z4BLy% znRV}`ThSEUEPwXQ{NlD?le~E|^VZwj3(Uu*O~HrC9-CRV+T9~( zDGxte92Z>?{LDS&A7;wIBcHm`1J?q;l>;9(J z;6eS|J+q&cxLHH*NwIOdOMQM{VT}#{ySntGzM|40ck&j`4t8q4b7uQh*5bt%z{SC* z%8tz}TYMw^!#(7t;1_$v{h!XzfARVH6ss$n!5mxvX7IQ=Kb~1xHLlF83n z*FVkSVw^3u_Ab9L_)7WhGusv8f77!#d{y}s!MQEoOP^W363-jO%i=47=aiMsEL&{; zZ^7SUYrw`&gBIm2Gt1Y1$j7IGZ{_#T%wKv98wSPNeZegE{!e7evXfAoF zPB9zv?Pcqom#h^-tHj3IK6V`hv9V6PtYz!E!CHk=2b_GeV+20VO~(A{6{m( z*YW$}dAQum2Rnj3<+Em%ufofQ+wH*@2LEb5yJwaa7<0p2;+X!+8u9mLaHBde%&fEa zA$82x!mHVDO)VV_HmFlNvrdt?Ui&1waaKr=wc=@md9wBy$A^P{^$%w1XKlLdjF12Q z>-;{mk5cCyr4Ooaon6e{t>$Web8x$Q-~IDxKC%{Hor&kG)ZwEo=KKa@6?`ss#o*?6 z;Ffjpi%k79`&hwS>fWTxdbYL+aJ?xJjHq|}%zF8|_4lc|xR|^k_~`-Xcr(iv-=duV zCf}xGO>n>R?K8{6|EphoQLsaP$3MvzcboCB`T5|OvZI-@tcbNWa{jbE5o^L0^RV+m zdFn^3ClU5U*w~5l$TkxHonkOz&5BreE363>c&gA(h4vBa;}&yx^E-~MnH7WLS)2U0 z{~>;ZfA`~5JV)rcjGrRrLZ?_Qcw8FSop<@q;g5W~Q0M;2YwDbokGDvrzGf@GTVHf( z+aLVR8$mEN)5gxw7Ih*x>U6#q5s#-*WRAl%HyS*Lk2{AggnPZXLfer=Y zv|<#-VGL*1+rv>tAPV2>)X` z@(Mk!A=wbworwvyM8cR53!T?W?}A2X;72xBTn3lJ6(BAu#BBwCc0LIA!UK-kR&j^) z{p3|}HPEH=9=MO4AwO@6lh7|;%A-rg=kS#@4m#Oe@dZhjBK0dyz}JutPO#xSKgih7 zN$(1_hVO|NMM(3kvvJyvPBv701jj&3ReY)p*A>TM0zPxR7xn-iDn7ySZ>9OB0=N0} z?qqYP`I%4uqGzP}tBZ|Q=0GK#3h~lKze;^piNpLpX=81Di=+Un|*Bbpc7wN}N^Vs_RY=x0T|w z5?@``>PohC;kiouRN=f5uT|zrl^CgHbC>y6CFZ;Msmpw+G=ICqWfy;KPa4Y{?CzHC zC40y)eZ=~O%k6P_INtsaiMMWZsoNar7W>;jg!iQJ-pwD|KY%xbXV|;s-(>vNjj!$l z(5Vbp-T3du@%Fb#Ja2!O&WCyfCm*e-zRuCuM`yD69LnOVs z+x4@JPv%$?ZZJQths&JD^WWj4FwWn66uT610N01{ei+Y($FyT(?DC+Q{?GhHM*qXO zKRhh|CeUx}M#mpc>v6(`kn?&Y`MHvzxB{8o*(6=I+o zk6Rxm-w)g#3eNqv(>B$*7CH)nYl9!d9C!j&K@0T3H}E6p$G?QRa6c@BozM#-aE^1z zc@TjS2%KB}5N5%R@C=kd1N6Z$_^xx2AHy%N`1m^O!c!*SIw+AbX)^J6c4dilKY zF47$6)mOnR^*Vz2Y&z%PWo+tG-j{j5q_$pKJoQ;KYF{PAU2P-DzP@Xu&BMOy$tGZD z-+f?S)S8c5e=BX?6jeLkB`xl2>&RbD<9jmGcSrcq!0VO{aj$iD@@k;ZMK@%ncK-)VDx{_m&# zb7uYT$8|rO``O#bu6{mg6fgZa=ob_H{LzoAqOu^XNm&y=t{NuwdGsV4m*&qVJRSYq zxoo90-yHoCzINRhBfoWy{Wy6VzENI7en##jzaZIl^eZ?eT?_ntbP6V=`TOVz=iqGG ztL?}!;M2Xv-mCv2eU0dAsmapC<8k44=pN zZ#+f(8||J4IQ7aL~(Zy6g}cTVfyCT{ZwoZnpKycqu#bKyFDo#(vZL3+|9 zhNoWo_tL*s{WkFsY1Kx(Eyl}df48|2!%MY#)oiL(cZ>2OI=70cHglxndUJw(mFH_q z-%~FFUvA)^Qy0_wN}$K7myC`3?l}EN$v1=VwYw(!%NcX0h|Rrt=w)LyoNkn6^C>oX zu_CKlx>|X)bT1B0ZL`LN<3y}W=Fcf}B}w0YdJTrW(RVLyTWiFX_&)ss8}S&y-6^q` zj~5TWvTE60&(A|cQ0j%4mR z=hH8;A6|z8`on8QIHtMSiG#|ENc~sNh6|%&@*&(13TsSNW;fquAF)`SjC1H{^Jbpx0|c6 zyPS)Brrq1pcs+cayc_O=d*L3q)AcDo_v)vbZoT@f4t;_DB0ToWs}9RX!I-@vjK5Xv z_sZ*~=Q2Fh)3cVJ`W^tB^oh$pw%4{Pi>tqrd=uEv2>tEs78Cu-`#YdhzCIe?4BleP ztRH9Qz~Fg&&wou~si`^08oqgYPPB-J7G*8UTJS#dIea0F^NsAy9}y?70NqaQvVP$7 z%Qt}kzBbO*BYb%^Kbp@K;yvFysJw*DZ0O|ceDk16UR5Z?Rh78uVsqDH`l|=Ayd9t2 z`q}ti&+{Ey*r5|tfnZ)nb-{1%rePW`vi~Mzv zRfqpteAMElUJTT;r(O&+!YLdSso!Ya#&3CM$6o!__CU8e zs=uT-ip&B1SNux;Vg1vo6Au-)lX$PZ94?bKkE+bUg8T8z*6NS&V7~R?w^9Ft^luWA zrBU|MZ(QtuahmSzj)ZZ;7u`wxvawby)y9Jo`p^GqhX2|()yvU#2YI)(nJ$s8%wB-k z2wp4bTtVkfwshhmpFZ1hx1H~{>vwzTJ3gt$bL1K^K1{N8*&W*51N!ZH+`4#N-LLqR zf7|riNw-r8<@dq8?8Rf{mFoVM&DNh&d{}j}HebUxaMC#JK5XnQe0z#Nt3M9jXV0v^ znlYa{XB!{io%rZ_0-nUdd+I~?``YX8Fg*_I@34Mj;WIz3i|}s^J2fCbEuI`7*GC)fI`LF-fAGUj_h5fEL%&l)>VC`@ zY(EupbuH*S5(oUR!cBxs#ke{LuGSWp z6%WF*!2XIyfqyFSP=VWuFwW>-!Jicmz%%ePJOvK{U!B6m%4%u-S3D2+nY<~ujV-k^ zZK% zt`|ssR^1A8ucE_gI_HOVE8sxz)(NEchG*j&YyD*acfKPeu%!eh2?#(fo^ z7KHubqzX4(Y_Gye70#;IU&ZFGGV->dl)W$fr_5Zb!b{gS`S`86YkH1!;jzlx=&B_7 zunM1Btci>9u!W6P=5rT6b@4?vpLg?96bIe-?PhoP2=HY$A4c)CRlN=Ejt3!ypA)3G zieIYya`H+sa9Z9dX@8Gi0T;q~^4Jz-Yc#Bj<8HCl-5(6G;o-l|*bu!yo>=Y9ymuA7 z$hAIOqnF700K|Nh-=fCp9w+(t)Hmd1jz1(X#{Xw*BctcTES#Df-Fy<|^Q~{wpa0_e zJ3L9!IsdpmPCBM{jDKR=fsbNUz=yF2;P$ZCj?*uO<2a6D6|VQiObjRapUY!s+?X-` z%Kt+BQ_^^k(=8@e;<$)KgCBRffBl~`_Qv=;Caz-QDo)oJTjOkw(?7;{F}{gCHSNoy zTdi4aFTz1gd>qDaKK|o4-P%X8FCkscu3k1RrC0A)j@7BrcQ0AZr`2q&*0xu@YC2Z4 zJO4|^@~T4#33epdT8+B|-&M1x#&PdA!M*hV(a&eB7uCjEhpPm=d-dI`ziQ*w=%Y96 zA8!fcC)m`-zSYgrxT*Gplbm&#LhRj!|?`b|W zZtaM)v1^CmchY#S{eZ+&D;&_1Mmp(Dn_oBMur1nGT2jkQZYsZ$_ zcbyl!MJCnbquLbkX4y&l8=z$p&noLbW7r@U!O^QB_B10ddYhM zPf6=kJ?@h9t!HOF?(07SoY&K{eoPsTlh&zZs3T62_ruf5aG1OgAN*g>&U${VHy@J^ zkfZLcTtZrJ>eGOWBKjsD6YJNqT^!U~mo~Dq|48ujZtLCOWbErtDCd`cefD<&|1@gf zsLw`y^wX;m@BME=9C|>0qx^o{^dFX{e?R{=hW+zNKVAFrkuQeVR_yGPv6D8zjz~I^lKL@Ayif<7W0X;c_d^mq#7ru7q8i@jA$VE$XGn)NFb5ZVB_~ z&@vbFpE5sMj5%_W)Ze7>QWr_nDP_zSNZ~Jaq4ec}Q_f({FEX~J&eQG`e68<~r|nBV zDk%{&ChKgKV|_~{s*?SGNvkNq!A+q+Dkg?zvHPWgP}fnwJF=b#K; zFgI?O$6p87I6~AXIQ~m3=Q;byLqk^54{8-73PFz*q zN*Xi&7UwI^I#&^wUE8If2HZ@}b6iD+<e2*B`Pi#l<6rIO^uk$2( z65=so+?osFqG`SRc3OYaU=H-f$d9Z?bgIW;qx?q4{eyI-ca!on7p}Pl0(`#eW<7f<5%! z^xrdFSK+8@2RrpKnK?J;qUWTxRb|Sm$>+%$U`rLhR+U2qM1U<_uULOlVpe<=PP$(B zEw1R=&Hqt6Msc(C@gS>53`E61G~`sgbc>yCJam5z=47{+>Yjqra0!+jLva>D;gu|F@?w2tJ3s{i;1|p zak|Fo85bLIx-G*=+_-VE9KS|=9Bia(jGZw&#IFUqY@zp-*X7lT3-fM0zr@X@gz|)T z34JB5qKDW?=qsUY1^p9qgI^x@&e8udt@|H^&oL78sks;~vrj|fYM|S?QF-DaAum=d zhMJ}6maul#gzio-f9Zftc;1TOXbK_Bp15mp!s3+23~v#7*CRXaHQT zkCI&=hWc8e3GkE@JAKBj4ae9`@>A{S(m3g3bKfrKA)~=d>`7+q$?B_@-=-e^Cm)dJ zzuHe=LV7PW(*1JBpGxn6cIbu!nK@%ETPL3SaJ`s5$uighbgUN_N%2=N9_mlBov)JO zu%2GY?Z$hU6z54Xl2lgDZ^_UO{3P{PPp5i*s~1}dIwZwQJ=u8{*w4o8f0v234ST0`-Efb&#>dGj^~TI+{WR*o5l8*}(f<*!rIAk>>DWI+ z@=br5WPc-G`ol6~^gEt>g#6estp6QJxBjsH2!wTq#XmIiXVF}eJ^kb0c`{M6Ov%^-P&W8-b)*G>GC*3ZfJNabnuTg7|&ieNUo=AAoZ zZncW@w6R*>AobaLfV>pwRK!2~jeD$z4bMo6rDKQ5ZDcno299;v*RBORALqm4VrTMk z@@xAc+uy*&9kZY6H_Bg8`mWPY z&(&~=V>aEd zIQ`>vi2oKs-?BNb&sZyn=U9tl_QYN@FP`S_>m5G@Y$%~i@gZq;#f=j;Ui?X*Yn(oD z`favuP2wz0pBRqgbc?eij+0n(u!7x}{4!&AoSv}*`ZO0}nd{e@d18@X>&`c}IA1gB zSd7--uINir{|RxM2wZ|dJsN^58*9%7vgjm zdv)irYnS5>AZe^AGQlQ(>0@6l+gIbb?>#u84W9bONnAFtDY+NVEu^?ecEUdB(*6tO z=Ldh<>qO`urfofQPPAH^67iXA1HLWh_tO*72caFh^*>A=4zdQs=4tWNfQux3ljc}* zKYh)mBwrP=zk&V@vmN&Uo0DOg`8Opt*O5u_yZBME73kS;A=#mi22y+`^`B&aKOgje z6J+hi*KRrv7_*-b2lPGQxc_VNBJwN1Nh7~Ch7w=>lfhhe9?RI7H9)6EZFiHas+6CY z_Fca={dnourqOr<#_Io4ntuoAwNCw_6ZFN&BwYv1g(g018U&mSJ_nD1xilz72A>6f zAAA9xREK{DpCCu@`n0t9)g(R!pC^x!co@|8U|7b#gXZiO{jUuBz*p)zYwjK7jc^0p z4D;;A{qoJ1)b;i_?Nf7uwe0QtUo-rgx>df|NZkZs-P^Re3qpB2+-WR4r=-*RUVAyI zzqBz6c9Ops`lHKkci7>{)%Eyx%q zgfuSlalfp=I(E?dV*JEC*24Yf!)NBH_-MFTdV&;(D=y*FlsGxWcQ3M!Zu_HbeOI3J zLA)P&EclB=5EPu3v9HbC>ZH#paZ`bpPC8U(t`95eP)V1{r|H)WP4=u7axcH#C%uo3 z{MN%y1@F=MDR>5+18t(ugMKIRpU>C%d>_MEjD9it#HH8cP$K_vYuQV6x@KJX$h^xBHb$arM zxlNx2b&}#HDJB|}C;LeC8!nT6o6gpb0mt9gkm?S|UmVVzQTP5=Ys6fv#NXtT!4`I%d%=vk6tjLN z9$>e=Ch1yt6>aqTyPECh#9%p|wP{f|C0_Q&%z-D3_!D@gGatt8piqo1BzK-~1;CW`+k z+j?-*gQI9UMDRNn+|7oP3unYqsqssUAID8xoj8BSjUP8goKNEBZG0z0L9A@Okw3(7 z+!%3V6pWJeh>M{(&SGzp#*6c9ybP+@8qQPkJozE{2*0tVhMo!O$=^wf&xGQyoMB8HNQ6B#BGgsiC+hmY?yaZCZ-bV);vBPQ+3z!{Wap@OE?LWj^~o!8fRFV z?nlle#oKba*If@dnj9hV*Y`Df9r+cUQ1=4z8+kWKpHK2d-)WeV=BK_>q&VIr=8w$A z<1^$e^J5G?1!Fdd$s`+-6Clo#$KWF{W>Tys@wc2$lOG1-?E2Bg8M~6=H`xzjF`3zO zlE>+q(kC02^Lz4RbMR_%Kwc;Z$vNavP%k;8-ktVGen^hflWqez8esRpRiN$wdk1i| zo2|(Yr1iZ!w1wXWt_1pTq3O~y>~Z(2WT_0#I7^_MnJ(#A;ZE3NM-adGT@>jNE@Yrmg8 z`{}p8CU}@ldoIcNWa6On5?mdB98OQ$bz-)2fD5fB#{9CA6yslZ+5gEy>K*!xH2)k@ zHpvHHTT9w{tT#_sW6Z5i<94aPeV16GS41pT?0_iXuj-KaR(C)QMxKJFL7YXj+Zs3D z66OiL8~8P1esC~>$Je?H3UES9C5&gGG(YxFnC2X#0;auLZtb@;Et zRl{}iE(|`S>#WN%{5FWoPZ-DOxjotJ$ zdze~SLAuM#_9+&o6IvE^aqC-`4pS`4Kfr{o_q=k~Mfn7J^4`w9G{ zmAmy&IaK5t`+_ zi+}Nu;Df}|(vaZ)8b~~)&My34441*>a0$Pd6Lt53xl%{3BbV~UgVOg0Pq3rs@)YHI(#X{zq0nWU5D?} zxYB=BmveNwP0hklk~|MC;5(c~`U9`f`F+e8c2@9j=YV$l>Us-r^ozYm=Tqvxz&18d z8E>^1uPkFb&LS^@HW6z;1%FlWRi|`ixjx?3m-*I1?;bk$uwl9Qi{d4UgC4d-aTR;t zSa?c2$7hgumLJTEBUg}oa^yK>sy0w=>5W#nRzsjc~^DtH5|6m74I#0OYwUv z`_p*bPp@L*95VjbcxdZ&zNf55S$v-{=#)Icp3Ce7#y^0=wglb9=u{3VMq?k)3vYG5 zcCQYHb>>N(dDL*5arYZ{%DBdyn#+E=cJf8n5pBcR?jwzP3cpcy_K43Ob)$QOzdzz0 z=v5h8qGBN0tc?E4Grw;W!)=^hv7^urL+~N!KQ@Rj{MWnybUSi2ogM{T*WvcaRiwV^ z@PA|u$=*5~oZ`piSMVi$Z(xJthF^ggPJWGt%f+&Jv6~$O*07EGO3}IH8MeMoN;jRh z*W%_FUDC$b|Ee@yKc5x6z^35pj7=xZkrU#ifQ}J5FB4l8uTHOXopi1eXI1#=WLFp8 zbiE7jIA&WXn=2#A!#LuP%57o~@6mlYqRZ3~Y20)fw=3kEEwWe0Ri&RU@!Q3B zUHYq1zYB+5Ded^I%a~Q+c*f}(miHRG9<>C*Q2fv5m{zHpv_l2%+?{;1I3)fKJb^d-3RyhZr>m2e2&R0HzT6_FLd*->; z>Jd0-tt+q&JYi1#Tr7SAJ?t--lXd2|Zw)FzT8tuhCb<(-p;T3i-&V=)Ug{Buh z`iOl(woTg@H_j>LaXQ7)<`>;himQ0o@9U0@6MvJ$LBhCkHYV5>XK$Q-v17`N5&N9P zRlHZZy0MQPhxQ(a&tSqaKH}oLhE1`Lr17|#ZKdLJ^+V?DQ^EQ4zyF$y{t06zDyQ{K z;HxGCKODJMKF$+#tusH4n4dL#Q4^CFmR~~}t0t_2;~IWUD68SKLaq zg>3oRwHaHEX!G8s)3zMBOS{wR;;oKNb@V)PtGsW>I~nIrTp$mJ zYuUIPpAC=8I}hf#_Zg1K?uN(6tK?lNZS8*VLOOpd{h;*uaJlQ1Y z9|d6>{@Ts%!8hovuK~w{2T1x3JmMUfPX^ezo8ANZ+>NWjw{S?8-8gBU6@2$y&%Nhn zd^N!K!GnCBxlgtm=L75?z)cgqcC%{$w*&NOX3K7V+0940#lZkB*W!M#13DpYAHn&c zHMu$Djy}ye9qiS=_-PSSgNNj?dGfHdJ)#+B&3rJ0i@}6FDXjM#JGC9ON3?7syUFME zr%sF58*GCvXb1f?^G}PoZpL3q+rc*-m#NRTmPl|JdrPm&*gM!`EOlG(l**jXPSGpn zxRw4Xb1ZGl6uVlsL#2FeQe?{5EjwM8@kLs_)%saYw$M2hjyE9xDd`H(Hie6p7&uOw zZ>@AqRXGl!|5SvmCd2VU9oX2))|57Bb{w--wBm00la7tOT;FMW9vhU8t8`gVz_wM_ zXKY)IpR|7VH>i_&e>hFYw0`&R(gvUV>q+sjf46-4wc=_y-KOX`WsC{O6L?+qhCarm z`S#c_+w^mQ&yS^GMEgc^2u9VR;{=W-@HZh2CirH8trKi{<34y09)SB@U*6%|;WF}0 z=N0FXzjL0e?LoF4dLoFk=iwVN_8ijB*Y8cQBVWHS{ektm**S;0o$Rb&OC`Tl;fj*8%y1@4`Fc=u$F?7dEH( zyG6U!J~r>c!3|^+9r$3`6kfFL!a>ig#^RG`Z}9!3->SSZV?z|zu`jIuWc=-ETN1U_ zVyL56gZA&`=nt36a2Da;2);Y{rh<DR;WJ;v*4f!E~ew`VWlDQc`9e(KpT9mc^vk}XmE z_TV!5?wQ}$@5|V7=050RV@LUW<3;2<<^g|4*%HN1lpWDNZTUQkr|1!&dlZjx`BD7z z@J;l62>Zd!6y2k2i?TDywkTes?26(khO<-rz5IFYwb^-|yl>!?^elPCjGY#?V<(m2GoG18F)>>sR%84g zXKS3!aW=)-AIEP(+0NP0c#q>O&c4`}^nF3Q*Ol`{4bE%uo4|MCAb;tnrjgHf+IR1j z*9OYB-a_)*YB8DU1U{?bvm-A`?~@Mu+7WOPn+D+~MQ!$b(&CiGo{|HL8a zk={${CqdS{0SACCHDUkyO>|`DS(tD9gm_7GL8!m_iFUEYo+I~}gUaiSS*N_txKr#u z@+>?Fk3*$={nmx~Pn)mXrRj5|%zI1vtD{dH+m1XB53;!-xS2h_n3u7qu0#GdctAb6 z)oF92d|JOFzjaKBgSCY|e6TZ_9b*;2O`*_J4(Tw;kOmRRN@u978@6v-;H zs4AL8i6vHvl!~HhQlu6#`JHAt@E;G}?|kQ5-sgGV@6zC)i8rZH))9f80 zE(0%$w5i3VmWBi2oEP9Zcu$}DtK~~AP3q)4fNL!sYt>UNUux-AOV5FqM4Apf4{yP1 z_P7h~|^kNetN9`N`!tqviG=u zgFJYdy;nak>LRYg{rFe6Q~z?H+c2%N55xWX)n)b(c#!ryt#j_z%kT3W;pQNZcVC6~ zU!D{7@>_53Vf=<^Ic(0bed=)>rfEHohv_qH|N2LP9>d1h)1*G!8^>XFG|ant`qi(} zw%;)AhSk`x+8UPAFujI(H;n%<--c;XPlFR#kv{b_8OD2<&%;r5xFFKAfp5bx_vt>2 z^QCYu{+DR?k$vlVRZqhclfkcZL2&57il@VBYPe>pCWmQyVjOZX24}2$J8kT9VnX{S zpwEdPX@Sp)Avgs;K*_yZ#nUv!|HL#D^r_o1{F>x;VhYacQ)gp%HQ_Ku_mAX%Vg!!E zFpNSTelqqJpk-AJl&W%E6;}Y=3Bp$6q`;QM6t-_6BokIL@CjK8?|0Onv;G z?_>I#T(7-Z$uzcD(EHMwpB&x0}AWLId1{oxq-Hnof9G=%f5dE%rP^4ky2 zS5q@sWAS@2+&kREI!%1|z54rzultVyKgapKAJ_dOfv?1a=N_(jvYvnYGeC>+a6FxT ziSZYX`)NI{R$8sQe-P-@YX5O_#`(RUhF@GQ(rBDV<7%)~KI3%WpA*BHxksNoFX7mV z&l%pH;q@i?x9ZzK$1`P63%@u23{P9bdpMlocPp-~G-|)kdVFkO4i9?IhjaT%ctBfj zXVcpBJKG-=@%!gTD*QU0)mPzj7SFROvK@CuOo+AGCt;3~M*d&lQQeIKcZ8THV) zN~HgcdYrk@^<(h3_mVv#Jv(u~M7Phs@*S%7Ihvd+c#qiyuX-;@*K@|r(ei*f2fD%9 z^Zb}spW9D*rhLcy)%dB4gYx^}sP|Vs1hSDpFL%;boop3p#Ry@A&!W_XW(ll{l|-em8lgW6$@^Ky*0{r^eaG4fbMPIb z`9yI}Yf$?Q%kBLmo^qS^%$c^|%&o?zz5jmD{`xNQaXSt> zzEwXpup4+;wZ|CR9xkh?d9{S^k&AEv&ch`f_||{&j7xQkGZ}RZgf2*-U7F4hnn9c+CNH%j|Rj$T;q5YzoYgziu2LaAeW;v z!9V>F1P?#{OJC$vgL92MFVVh6e*M<@^UK;e_S5zfUux*_{wfi#{)~wC`k43E_8Exs zZAAPAc5CNB9rp9${e-><)X49ce$R%1U83i~C39*$FS5?#NA}5nrQY^I1Jt|T0qWwC zF?C7cX`Ol)reC&7yGi^SzVr-z&2@9I8oz&fqT*L}`;uSvZ(8F~^PInWV zcTS8MQwvRSk#9}%9i#D>{hDYxX5EYYZ3_GB|EavjjM+a9Md#A~<1`q@cf5`ltAjec z{`ScVukp&iYr4N={7E=v++J}^q~AF0#%Xg=9eqTvaoU~XQ>#7B{vg`_Yz~H;$+sle(J0qw@*hfw@0pjZS;a@#=sYnCIm@pSMqVX8-71(Wxr#JpH7u`_~^>hAv)ml~!TslqDcj$Kk&M$ejU0)S0-R4HF@Y#VDk;`fD zp87ox#`X`wG5Z+f2iVKj8(*W=2GrxaJM2xvIzIl1E_M7H=EKNa_P9ukX0<|t_DAq~ z5|1;U6|~x+e}}zx&}&D79O!tMuT|=|ik_d^`!K$Toxj7l9-f9-_xN-8EX)M|JnZj3 zp8Cbvxq1uW@bv zuB${GcFutHw($RwTrSBaaxd;`tD6oH`@FBdBWf&i3z#2S4%fMld*n`$hLP(aFIPdP`Yr=QVIP~7Hu2#a+t{-$Q$6j-zkBat&3125#!Zi z$br6f;X1U)%At;4S=_Vy&04cgPIdCG3-ji4_PgNUjrh0OU#QgE!gcENT3n_Mtw*KY!_2{gr2&oHnSB ztUAut_#CN!*q-%OBCm(l^e{b#<+*UXcn0h_jMMN0@NxJD=ag>4y}@-jT=!yy!?1HS z%)?=Mt(WhxGcZiYwUzfo!}K1uZ+*3R8r06P+=kV{FyDuNbPwN{< zdb!rqdAKanzy2F-TGW3n*ITq{T+g5N>S@^7ALiL7IMwgcJ^}sObQ^a5>))f5T!ssD zP=~|nZJi4W^r(0*L|PVouxYPbz=srH}cFh=(=zBln_Og)aNp)sB{g>xoB?Tifr&ld2yq;|$e z;iNI)n&G^3@b8ZY!SSDYjN#E_d=n2pwbz(BZBmb8T~LPOP}FDN1>S7IXRNT~?bw8V z_1L7Y$JG89USr{&-Jn*QJ%PzWN;CxnKS6H)q^hzKzpkf5*ZEfGp#f$U$^AR8FhWeyo>fNU#~5PGmBmyUNR1!@>OtyKDFK&&c93> z_tr2!Jj&O)=2uD8|!)1uIA6Gq4uZX zX`f4~d1$@%NA;_t_2!-}fSPQ7Ld?Ucwl&W3>Z6I^dt6tpS>pPa@BP}JbbpomJUi=5 zoOKQsoV$PChE6rqL|L8~GzZrW@`@m}=9p>;qAkR5D%;7g5^}U-M=6N@7{5&t`d9*;o^Nl_y zsky48_viBJ9`}BeHvQ_MpYQ$WfM2!z9T?Q6{Q_+VGH?vCp6hD3PMv2%(9{RoWp(

Z`i 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 z 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%0A~I{^jH5Z51yCw%}F%^DM8fjJGsA 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

ti?_;F<%xu+#WLzu|Hy%`AP9)V00Btd4zV<{FM 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 z z_^dX)QHQZk;%kskHtVx`ddFxotmeZ}*Rj42{*3>8!T-7Mu9qA`*M37f>BFb@AtlY~ z(sjtT+H~X2J5Q7T$a(xek5785AGD7cD{v*PKe)fTzUs>`f;&Ej!Z?z8fkRo7X^&)x#L&Wf!{9lFFY zD~3A$s^!{S>$_g;IsKbI?4CeTOap2DrP9$e0{k)yXR zu~o7=OZNlfX|TO>%zE`XmfMh}_h=>cL-xV>tk1LRlBbblId{pcR&2A4auauF&p#5= zhsrPVG}~m~m`~om?9VoXI?sx&TRyWiIE(jLe9x-yY~)96>#Xm`(=jd^`R^BFml*ri zXSN%U_O0siIRe*1bknCNW(Tf_p{o#seH`Bw{r5v3yL@#_ooi%v#JZRpnT6R;@fdOV(yAD(?EC3Ro~=p&5Gygii@0h zXF$>~rYz0$%4v2+kHH`w2k}+q_*r&O)U8vG&CaR4ednS+79108&%>;m#riG(ZF5lP z3O?R_*}Y>Jf)8DB9RVLS_B{n3f8G*4`T~yNqhEKw9X|aRzQd>g(tK6;*f)HK$G_>m z7u3TC{BQm&WZ?lk`B&!pz`I^_EeNIXXo=6z2Jd#g{sO$)wd^#2vhJeJ)VUp=>9T%K%MjOl-$SQiQA7n66dx& zY5Cn;7V5l-qsZgBx-40$UqAiNM!l%{$S(eI*`Z#uD{2O_&Tnn_uCjf01OLt)v-Ydi zN3;5JcK@H^{OLPIeh#gVn!XP&!#%d+akN>hAN}@Y(j4m*HFluBvH$hhtn*WKT>mQQ z&rW)4bY7^AJ$D4rhWgj)jSlCE8u8b~ehJ?cLuGLc(GJbe(awo;PQKYvpU=@{mw0AR zea^5ghB@2kY@4OGIkD8sZ`gS#o0B(v&CzCWqjLlv`fxXkyE(d@qrV}%%!#ENuXDFo z#qmVtMJ`(SnsaXG!Ru(R&(04g?9JhzK@4qr?nE4wdS{N$Ir+9P@S&$XcbatcSQlfD z>-EAMF6P8FS1Tv^&ow~)hkr!<3x0jC!*Axi=5yknV`qrHp_p?EICoX5@rk(Sa9OJ^ zm14@Wd4iw0Ccx{QbHtpOPsBXeXBp#*@$^GGbpH!}pQyT+@7#d(a+-6#XyS9uIjloZ zdrwL-2dy#oIp^8Pm-Eh?bIIHo;AhT$gKCx){~SK*y46_hb968g^LDPOw9lN_=bV@3 zCP01a_?R13v*nC<%8TL|jLMa;T&zx;qxTc5#MvPH=v$9{ME%AX?<=P zHhsriwR+7Rh^>B?k0+~(a*ny|(`w{%4`N-SF7(0N7Wms$9l4KMpz|)ZoTKr%mx0#m zB2Q{C_d2`=Z@~S(`?zcPf*;=>6zUn{KM^Z`bMZKK{mxF(=5Jj!ztz^A(CHi=y%Q*D zi#*BuP(A1MLY>^_X}nDw^K?H?_c{LWuL zkEKmMfj0Yam5=#5W*!F}G&2zG$ZsCM^EW|E^J+0K&H-Fjs&T&>^x=12f6UWHORj>i zufFXo*L3b@UR~zx@BNL*ykmRSd)Tq_v^%d}^R&?&d6Mjwk?WT-1F`Br`4QTYV=Xfu0G&*z8^+lKwYApQ9YwJ4fN#s@MOOECx6s< za`vLun&N(H+N6i(@m(p-c{aQ7p5wnZ#;pG;@!u#`?@yD|Vrb;2Qyu3Q@aGuM`zNhxS4G?H_@0+{ zPCe?>q6=U1YTYiT`SmyWum6t!&2#@9k$-&7voX&`zgl#~I;p`hZ4TouD+ljhNapqI zJS}I%TV?x6)TP{p`~Tj5YwknsMb73A)ti3iqpc%|`lEsQm{)+vIh}ML_#8nmb$m6x z{O{SiTx6>)=KqF$)%+xC{XTt0uA@d@*M~T1yV~rywW8zd#5(_`+C{$Tdj1%%)ofI$ ziFMtU^J+JLCU5?G@#dXUNt-wa)wqWK7BaTK^`F>&Pu<1*hG}wvh8FC

N&moUpw> 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

4gDwS~@{)!}>s^n4Xv_X3s^Y8(#~a!ehsv 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�oPj2SZF`th4bj+t?J{|K@dvAlf)f(i}G@qvV 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

vZuv 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

7c1R;s`K@R%B14T~)B7tbg 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

    oDy@`Li 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%0AH~Bu8Sv2@4k4l`W|>Myf^NMJK_EC{`dgg1$_fq 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%0DjtqU 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≶V?nr?(CVp0g%f*2 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%0D2YLSQexU!J@r`v$ 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


    =*NszuWic1 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

    06R-qioSE-Utqk;S%*oPnJDFwB^Ytylv& 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⋘&S@(=^Xi0* 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

      APt>ETv)Z?sOd2?eV5GuO&C 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 z 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

        tx*WQX9Z`Zrhz&uORf7Z>k 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�t{4sS_Jz2kxrQ8hl52{{r5~hayN06lKe&d{ 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 z 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

        RMv%>ao;KIhGLq$&) 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

        liNcu5oI*>%Vq&FB<$__j22PG5)o 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


        *VV=|Kj+(Fmu1Scg6kg#TW;! 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�Qi}_f#7>pMt%Ua~P_Ll8F%PHHHD*8iN%8yQ# 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 RA$Da96B+iyYA*?zx`tjc8f zjnhZ#NH6glVhd$+7EBbwoW7S^jGk-Z)Ky<{x{~yw2=l1mZ~W5-YhP>Tepupa)9<)Y z+?M3K_5^!@;k)yOni$etU}ki6+L3*T)+E&x}2_*cLk8TrNJsOUVZ%9145g z@df>-#>KFO)W(JZiCxpW#!r|z`|ZCGXg|vQ6pP52r2n{&KW69yU1NfiB0zV z6C9rY|ESLw=+nh@x%PiV+n(TsAH52^4fu7t!R4paC(f+Po14M~*H)ai1S{d>2p=aG z9qHNFQs6&-1m{=4Q^yBr%fz M=qwfpVB{J|GPm+B)&F}2X(7TWwAdu@v|Hg?3d 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

        rXd4)BFb%jd{ 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%0AK( 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 z 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 Co1v_V4r=0)$)Zoxrr<8l_4 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

        -M2 zEPtvs{{)N^Y7g4Ki;vxV^601vEJ8LJ-Jg5Dxo_fQ+e!*K=`DXC8tNy52-VMDL^m-lD z<@!c5*N5j$zE54xc4@hb+uad9)aOyyM~~g1=*J$6qDt$Yj6O&4m4UH5V~t*RN5!Pz zyIq{^(yvzd@SWHA;mG6Q7u|=ERY4@ulsCO{N>f&b(UmslMX$?F-6NB&jvlK(W-RBPr+-; z{B?zQxe8a&rTWi(RDXwlh34m4W5Itkou%=NeWjXN@O(_o37YnZ9o+2DaUPzuIh&I+ z$)^)^p2khb%l28*xsS^Wy-dJs21>Zt;geoi%kZStsOq!F`l&tl)Xs!8G%n&{z**73 zlVhvVPy7*|m$dSl;gJk&r_Eemt^twam%Q9PZ_0~<5j+;&a<N(@Fd0^;$8>a0XpZ+HCRWcvLe7@s-MIW_+W##Hh6CXt__-R%tjCVQRnyXZS9Y? z8|Gl6CKjWg_55oed%i?pzSyI2f<|+$Q+VqX={vk=#zxfa*Gn4zlXAsRd>vHJFD153 zt3Rf{7z}0lFKqG5ar8}fzSCN#1O5`saU74)xtp#fvsrHUJt}TzORl`WuHPX%j(eS> z@%q~^$rwWQoS?!2QFhswvg^Rr2Hq1%4oV{hQ ztuOSt>T}~I0gqq6Y)k2PxX&}*j9XuUeNWxqJRj(P29ESr^ofUjO=#wC+brMC&OA&b zW~75=2^?RJUSu-L2?+i`Ci zz70H9^fv*|)DGQB@WIfb&JccQgLcl24R|*6KaH18{B?{)pZa5d$LLedekX7}dt=RN z^DH!T2|aB%M|;BFbv?vk;E|0DHSsc`{|&l!sWD{!H@1YnX5`v{WeP7F@K54-1Lm$l zSNMBpqhD0}UbFUx=V1k}n`(5>dRmT6H8N@yoe!Jx)_J=Q&lg5nrPH}nIPqFktnaz@8i(Dh(RW~ZD<1JP!`DPYyeB^E`{9gu%=e8k@k!rPJtvCdJ@JIE z-Oq|kamUxyPx<=t9q~!$=<}i`9&;9bRXi{5i|5SBviLHeCB$cFa7R3(|9j$1zc-d> za?#e?={&mU+;UED22E(W$#0uSw;tK#mrY)-^6@5b57B!z%nF_3_})Afe3+xz81HtO zflc1*C9dU1fkCN_f>SOa= z!E>8@R+zQNnwebm;1ARM54PahvVVks%kpo%sz$e~bEVfgum#6fxbHmKf@=~VGsB+Y z!!NP771TMlwxY(CzVf)(!ea-{w&2U)a*GCC1JN(5yWLuMgnzfpcE8*cxbCIFIR9^j zy&dqtwdGuxgsFE$4(CF@S%~Ygb3zT=Z@un49=p^?oAspqW$U)|&^vDaMqn#N-&Omm zPdCqst(5&Iw;ni_dqxj4+xiGS$~nF1N|za2r)aaqM_Wm=CjVB#nT*G+9{s1HO?hk0 zytkig6g}%zd&u`tbQ*=%FaNh4!#PNcUgy_9=*gM6g~Nel^za||GyflI(W3(w)u6F6 z;ux1(*7m@8tj8_6ws^BA8U3n#&$jMM%3IM}j4sDsALB8bvtA5^9%!)~kM7!cuXW!s z4N~S}vL3Y^;=HoQn|xm6y)qs% z&B9jVr&T@8n(=fDcWRCWZuK`1JOInQUP_)7@=*--Z?=k_7ICL+D$07F*384ZN~hSc8G>U}&cX$5@E50Jc3f|`$jIH>3xm2t>aT`8H1EgRs&l|! z@M-G{ukl?tjz04zobk=NZRO^l7j$`+G%qFiy7aor^Rw!%Zs>CYZy(6bhtqKMpW^@) z|5$umC!YGe9?<)Q^;7mIoN24uBGlZ|x4nb-UZvk0e|6zM9%|@g^*s8w@I3xUT6kDJ zc3)3LnC8`AH4k}f$GwijH646$BGj4WkA!>!X1U+}KH9DFT9q!VtAdBKG+V7lDRqj? zI&E=0rmP!$<#uNJa@GXy?yDhJf_4deM_+dD8qZVK<8<{#yd&O*XOK29`Q_@iogQ9r ze#BuqdLep8t;c?-wI}_KhW+Zsa5VjbnUZVVo>dx-sWJlc<+VLt1mPcdMHW!1hlIp@QD`sd8W$QXPt$*=EuJr?+KjfdCT zh5J37(Z5%t(X7$7_VO(^Sv-!~A2&lIyVl}+giqJZ+mZca^k0L0&78$^QC5y8|LAS+ zZ9~o9;aO9!YEKc*YxiK*^P1V5lj{(^BYrN?vZkL@!3@IFt)JNsqTlf+{hZg#_u<#A zbP3n?UGimD1xL8;FUlcLj3@i>lGAs`oZewf@x&;cNgh4o*M1%@;dVq%v-s}5h(52z zert_M7-nJapjW+9UUO9Mk|S_gj@qtxpkhvEcX&|$eKhFYRLh=Oy&S`lv~J89RT)&n z`+Df{)#yK|^~6Ih-WaNSW?db&L73`lRN$-Av2L#C)u?BL9K$r5q(?@-MSOMPynhsr zo>%wGAKzEZ&Y@g~avsXj19u75fh#lmPE=Gs)vVukn7!3FX5C@GS;70EnsN2>H_nxP zUY%DH$A{+VP@O{<)({%n^-)5xb{vq8C@pl+rI}_&MDp#Z5^N2bBV=a9j zj>$iXyLag0dPuiXn9IC-NaJd_N8>|0PB;?|^?B&t3_u< zo|scRmyMoKGuB$Oy5c#UWxXEqMMXI^}2fByzfR8xxUiO)i&S!-mYrh4BSV! z9lGEb92~(jCeM*xv-p_c)lOK47u}PupohtXE1Vr(S7}zF@f?o~>m#|1Cs-=$(eL|H zH2LodH_!(|Dgo`+SmtDZ@+qOVNK- zKhs)&AIJN6?Z8)zmW56|!aKZ)Bis}>JP&(mvJX$%jO|-DkAnhC`*Oz*TzM-4^8haP zCt!UWetgBldR{8!qMF*DefYNbw*7@$EoSeieW+jj?@tO|Nb>bQ9rpE+P1%c=F?tQF zl~s3Ny-K^Q*_*R>A0PX0PN~_0@04pw-D<#m8vWpp^1%OBH)zHu=>{DGM|hmX>%e*Q zJWy{xVD@}I@XJdRukwg`y`J?gxfg2UXFu@GCtY2xW^g2EaU}52r-%7By~e>l%oCxf z>*y(19{Uq5`saGw-={IZ$JE@v6#7l8Hws@KCzJZi!Z~&UGfpb%m4Yr8(SMUK)6CbF zso(anum3z0h?)PbHy-*A0VZoLfT<@><;dDnNNb$LJWBP}=& z=rj$>0bFx&`CvG3=Jdh6|DJf?`xo@dBh%^}SaX24#A~8A`r$wAGmektK@pW#pi+b2Wf%pgTNnO9#}UJa&`!O4ZajTBVVGKukGNi+rCryKhV<*pByAazzE-g z`N$5thUauR;I$Zy4>EkG{sEsKnB#*S&$?eUZwGzR%W6FECtEq-?E^d=n2`f(dIKIF z$>8`Pa2jfq1fJr2a!`!+<@j=Ij&402@aVy~+UgbXc|e;UdLE3z9^Uiq0UZwfeaT0o z=w9po1G6|{-vMtNEa0x_YF5g;b71Z|0~Q(_EJk0kx8B^_HlDcUs2nt(6@jCGkxve$ z1YaGP(|jp<)4oR@Y3X|ehY3CP>baudI*dc^&AjV1U(|6pEZ4wE)UfyI*1dH;tMf^P zt|K%}@p_$}b2OginFKE4eLTJ`hZ&l{L*k0p1Fvh*kN+9p`?cmf;MIdIvwrBhV=b>A z*gHj&l4tRX_i7yM3i;-OR?drqu-&Xa$th1(-D za%A5TevWv&Bxj9p^JgOPdf$DT6-utWa|HVl4|mhB+iV=EH=^$&efFq3g}Ye5VE&HG zK$pCOu#Vv5NZv6yw&*;A--V^@TJyB^Y7CwtkYcYJ^I*EqYUSkd!r-n z;b2PsEqWDkn}(~;-cDYgkGc-IrUP%i?s-1MQ#pJL(lKt9wvP3} ziv>8g%u2udTk3D&t7ird`prz}pC@L$PpdVnzo}aE9DJ2ld=n(G*rSERs4ZY~K^+RSX?%A+)1w78XpT*zS+u|Kz9>)1$>jD-&>&WX-{w-eE z(*G7OROB0WziQ3a2T?z4U;Wc9-1W)3&2QU!ow8=TUC3F4r!3dD`rAA(h`*%wee!O@ z(L<+g{cQ7K5{^0N!Zr_W<7@i`-05!u{t;`3Mx*G@`ugx_OWmCO+xQ;olv9qrKJWQ= zo>$_VUh_@{?rlElrT;b$4+Si|I=kiU2srh&-7RRiZT~R+dxmi|=G=f`8{VpGkF|Yf zZaWkG3>@ER#W7(<3-~P4c9bV(yf05#3)i+8-lpBSUdQR2t$NQhIas!n{Kf;lIWseZ zFWmLvaTfkj{iO80&6C^XcrEZJtUb8t2|4o7Hv%7j=9Z7PuH)OYcAlTM%|RKT+i>KZ zx#Mz__F$a%I_xb9HMZ5=mbXjJnFX))J*|%fZhG}SivI*p^w!mvcl?+)x}srqzum0+ zyQ2vIbgc$naW+5eI;amiY!AtckL^*p_-I?M8EZ%Im~^kolkvb2T$A=}t1+3;_mbCi z7=U{QXZd>ceUIt&$6B->3O$(n3HZ0mBJ`zpkKAQ7XZ5~4E%3W7$Ar42*P@@3=j*L` zvO(9Et-*gPlUKBxNd5bvS##te(3%=WkzNJpF zwN9sAxA$?qfg^fu!`MsXc^JpxKMMS8I|Iz@93HlV9`X*ppgdN%NB_NU&7 zKKbW-9c<0J9cDG#Z?TfgtTDh|ie6BJPM~@nxUyz9+u!bIQ;9+%6>^^Ep;l zJmRyOZ;O5LgwHRY7wh8le!h>1$NcPjS3Kxvzh^{DJnZM5g!qh~1!Ce6-!~`31HO-Z zO579giKl(fbVqE9hkQ@)CGoXGbLP4&p78ZDAwKVGLQ#C#`TKw~=sEF#S^SoGfZx6* zvf>due_PbWXZ8M^NQm&~V3{TtAI|PDpY70c=MBM+JG`^=X7uSF=ifiq;;A(6@5BUc zdwHeKUwPNAVeff3XHKg8)laW^_p0VMJ`??tJdI|awtD}qW`{YRQ76GGQ)a)@ycPL* zpjTdJ*BoEf&2Qbh`jDJvW!(FrMX#L?b@@B!T~}+C-d$#|?)=CF?`=iDt>)uD-tzy^`f&v-mJNwukVRf!lo5Loep2UKQ?-4n)5q-&3vm$~dYxOQz^s zbgtEDGwEz7)xE}P9j=((>$IrX#CCK?j(e>+ig?fAq#p9{LS3HfsjIVNi5~UUXxE-b z>z)qv>dwu&_46;|4IfAH#GFC>W;KPYX+DU-)AhFRL2*B3&(=!x$Y*>8^qCe;hTV_h zY)Gvm93J7~h+n4U9BTLZ2Mr5x(M3~y9O9x=Z;P5*7 zHMPFltkqUlC)@nHhKJ6jB;Ot07w{dvBicW{i&&L}lLd}`+=$^dG ztvzhmHy}2`+|aFqrWz}^Gf28?O<`srWrz6ZB``rUwYBVf^MSx+T;Zd~<r**x z>qfZ3xB+9~ZGi`7UmrHl3fF zblY_PZu0)->wLu9b9&8Nzlp2zyelqx^n5_)%{RnrylZW>GkWYVIB!~OZ^k^Q`N4*3 zhoIRe-N#|w#NTFD^l$8W{3lxQR^S>mPcyiiz{Q?Ad-nI|+}G>gwlEhH{E?^so_XuV zW0|jV*6kgLeSzP2dz6s>E6x0Ed(FS2xM%Mk9rtKD%3HG`r`hY)_uihM>mIGUCTM%ih0EI?2xcFNAJB5G#eB9INsOqJp6m~+N0YZP4;NKr`J8&?9nqf z%dZRk?fp>R>tnn`(L+Dk!p%PI_Gz?F%YAzFgdF^^PqU($qqNx9Ls~CWa_`e^|F!7X z<@shaPuo7t_TRicn{#sP(`TPf`}EzX$v!RjX|<2reR}QFYri|n$Wi$imZUo6sI6gN zL(XA2{9|ivMKd(v9GILiJMtXLG3;Jq)a%aZ19?96cuP;S_+AO~ruLzlhw`TAzb4=4 z6|aQ8@HUFG8N7_?KP4J`*ul3uW^$Y#XXMZD=O_$aauzDC^gFSx7rwpK=yN~mtZde9 zJ86EV(}}MW7*AmBv+qRRNq!pATaJg8Cf&n9g&zj1df}~ZJ)gka$v?etoxr`f9Q}s; zwbtHF^wOvP8IP9in})HmD3-*s{KI-V=4~|^t7^i~a1KnJx$;_U+`0Q30mM|6&W@jj&&z4W5tl8gkIHa(73_N4VpL1K!Yb5=AyyJXKGI7T>1P=&pG=W@8T3!3Hv+5 zc!y{3oxLLTF^khP+7@YdrpGhBKD!%z0gfks>XwhTv*zE`IC~A()}Han8II3FEdy(Ji7Nzt`&*Lu-VVnVL^c%_Hm2k@7Iugmix z`jueMk6Axx9?W3U`(s+=LtQlU(KV)C?-~KtK z`7v#e>3_@<$Gp%_*D<}Hz?1BA)kh)g8E^FAH?HSo-u;(+U(w^*9{r~L&wRG2^GWm1 zTl2i!3G)eEPH<38yV7M4rW4wn&}B8~LhF%X9O`%MGkD~DYyM8+m9)R_jEzLlN z{B*3hV|b7I?LUyuvr*UTw0k^s%s0od9@8iLcJw89zWEWJMDyPwN{2i_XC6J~`Qx%4 zU>OVj=g)bsN!d$@}S_Zt?u_9Ns+}`-G zfrGBl*Q~(n@x1rJCwM(x5X;u8JA@nm5MSHzBG2I`e(1GXDjbuI?8=au!k*T>d|XwXxRI0Q@P7Z3EhSHFo~RPULO>Mh*x;Jdfy@1Qkxde!+ZC2t*<^>>9ioPnW+_bhxP zxab*=w&kgQl&6A+vF6|Np6IcE3itMnz&J<40e;HcdkRaQKJ$1vRlAdJBi>KRKgW}& z>Yu{dYt}pM>7(tmYwvpWBcJtm9X{9OsoeD3sT!v+p2FNo>ruWKGn1zu(2-Viqh5zx z@?Xm}sYc^P;r!^LLx#q^a-?>mFU$X}X8sT7w=ifO9>(BqybR-AGi!!MaDA2(-TIO< z@oMy%z4ech<@xZ``wS$To?Gha2CYO@P&D}z~NZfV{Ziy9pOG6FZ9p_?*;!~nCT0>UeL3f z9vv`WObTne7G0eS7hx^FE++8KFFCqg%tc>SfBR$g!+KhFsnLh)3%qpWY`_f6eV`xb zM#Ag3elB?DVu9{BzgQ8g!dza2XKGw*iY0r^Tj#0Q=62-OD6Zx+KhyM5rupZw7j#Ys z+~ze-vtG5vLJr=!FjHwbE&?8Ne6cI!91OM0=|#xBuP;57?Z1HUVlTQ>r`D|Vp{Fj) z=e*p*uX%2kFYr3ZSE+#gN|@mUyccHR!hBqqhb%p_>JJ4CaC`Ai^bFHA5%TNoZOZj?2Px`#1cgo&z9=)VV+_Su#Ray;nyNAo6ge%U< zUC~ef6+id2=ADFjOrA0P_ThUT=Im1Rb?XYP>nilPJd6h2ueaX6YJb??E}d)*z@`g=6)Kh}DGKIGt~U3&FrUEk3kAMMh&Y|eIRSk3U0b7oiHyR^-i zn<7ppalJ>|1h4MVbyTk@oD}pmulGTGbmMHU&swwGUBCyO_vlq#i%PJ3p^2q!k0ohBSde}?riHBx!yw{`tc=U8jx(>`etp~vIpp4>NfO4ruqH3?+bd5O4hHev5pWFA54Jt;Q$eSq z;MZ;%@6jn9dcnaSt@lE&wB0jPd%UA$Qo|KrCu*H!qvzGh{Ee16C+bX{J7=xQtC!-799=JQQCV}vLzyN;oL%DO z681}6T;gKk9qT{vvpoG~)VW-brsaS53oZF4@zp8k8U3gE=F;o3J}x)a^sEa{iEZyg zYzcZ^^5G>6J^T}c@6!5iew;pzKJ_#HoS>P1-)Gj3`E2)&_=L|ipA>h*zIf1QdS4b* z@u<(X65=tR{X8QI;?qCr&ksaVe8SKEPl}3o%+I<7@r0ibtKuO)>pUwO;we8bWW>Y1 zm;So=r0*ZUENbFm-&;K;#>J<6Z}APWEgtf<@_Df=p7OP&A|7`>KQG3`d*T`ARYq)! z_r$08J^Z=CBd(tl;~{t>LAM9>{+w7A;m--Sn_RR_o8@ft@52qy@`yKP>32x8Gc%v$ zpE36eynBY*Gn}U0bv?kdnW&n981J5$sk0-&`)9|3W@r3#M&mOY5AoRr z{p`gfV?5EhOwSkj^~LBH>D2g}Ej}n%duB$?uK7#7oZ53S?{5Tbxz~Js;^Tf^JA0ca z%+{G2$MNVpa((OPZgaIAH-A@e%-l|!gE8|lTjNiD%IY`sg5KS$+>zhCBy1_qkAk<& z>=8e8z6>KD&*7{au5Q>fIO#ScM|^)|Pt05mz;J|@nfG1scw|p^$T2ANFshfi`DhWo z+DG_i@mt~BBYP+HbJYCz-@5KPYn+8gI39lqkLL8qIdSC77=rsq-V)45_>JMFNAEQ= zer6_);5#yJN9N^7{v&&L^>gGb8KC2Iz~&q|!hecxNBZsSfx|T>$I%Mim!k*&n!kto zw^}rryN72y4(cPL-=jr=|Ehb#hxVAwBiM#sG3&I8JA00{<;KYoZjWF~$uXgaqa9(k zb9x+pG5Te-9(tms);JFynd>agrvoqePQ4}G@LCTez4C-L>K^gm5${z(U%Ym7BKWV! z7gO(f9eU*36wGBD6hiG&!Jp%Lm?%cyRsUPf`fai1_l!sSJPLi#C#Ae*({=Ywcd&QJX9rVl6RRp+%1e9bifjh1Qr9|f<_uQOxz^g55j zOFrx5vpK$;aoZ9e@TxRoi1Uyq+g%j;yiX~?}<%)Y&=GRNP67;<6 z5~=7{VM{czefa(GCB7$k;gYv5>2;~cv1!*($Lw4V2s4>;KLgXKzNft3!TB;A)9Nm( z5mRHiE4nNH7k|FRBYm`6R->lJW!Pr;VRX)G^_JmXRx=O(vi!?*Syp!vH*<7bhJV>? zEW^{Mr$M!s`D__~%d}dCuiLX&*f+vk-Y?Um7vJ3>-?$hSdKkgwlMrwbjK9*MuN^TXoGHut zEnZp^^ww{O9%n+&fg5>;-CJIb9{uY+5B)nW+|9$1r+c@2BQWG&wQf^51D20Oz_!9q zfvb5T|1w`Jo9E^Gg11&e9T+p#Ct%69>nUJ{bNO7HiuZ(hoNjnVP=j2%Qv^*i!IZ?U#?|+#bH>cYv$V3{$6#m;eEhoE|$&zvRPja&&^_2LVjHJ1{@!V z_whm7l^2AZEBcwXe&vq9^U5pU>%E5_E3PZ}Sm_XnC zteBsbpq>6!+*{$H6@Fde%au++_ky`x;hU`Yxqv0S57#)H0ZSK*p0Duj3cd2LMCWQh z^mm(Q#|j^=H2-ee$`lXKxSzKDc<$k^l@NTo!h`WK*Sv6zhaRn4;oV^#TnT}<9G$y) zcSSENWl@Me^Rs?0q*?F7*dxW7ox0Owboo6VXr)^ z9fE(S+4)EV?0xq|2!TQ<*zpLx0O7bF3Z{cefddqcdp+U zozI;K=di^+pMvu|?AKdW-E+O4nh+$C@gF;{DL(%W~oBpi-?>Ena zx#s7&=W>p`?HuBTb90!suPgKrFpP?dnA5x2I-m7**bL0^-ubksnlU~-cSf8~!Y|J( zF3#zH&bQ|yw(g0IgvMc_W@5qJu{g&K#^e^LL@Uu^Nu3{Rg2|6IB1rSiI~ z*S)wn*Ux!F1Rd^+cZ7L9KcnrtcoOHQ!c3m?>G?@ik^f$6{&QSiye!%U|D0c%ozSDb z7iK3P^1ko&D?)D+>wM&!6F#`0 z-9=yYU+um35r(PezYTJ!c7g)E)QC!r55#gMZ7v@%N<`{o}CY_-mf$&ql?#(8B`Fr}?Scu8uWD*e_u`G-!nNz#gILNo~7YB|K1sqaS|4 z=ew=XGVZ5gN}HKHJS7+p%~BTE{pR72j)#YWpATU>q~qa<;Qv0FT-kr6mn$B;(t986 zuV0`KZLePxc&x{xXVgtJ>$Xi*Z@*7lkoWpd^s;A<{!&YCCww>?kM`aFLhJn*HOBE# zDnvi}xBVQ``fLZ@>zAUhxc^-1{eJT?{A%>3``>Q8zX)H3f0Je}mBBl0Gwv;#*+nxs zPNO3I7tPYJ{-(^*G%lu+*6F*?to8EUqWz2bo#MSkvs=MW5;uc59h0-$`%!#$=c5J; z_nH{m`kftf{JF^6i*Kj_|NNfblDFK<$~#8mS-BQ@dCu!Z$!mUHd2+akVGdM(o<9@h5?ob;(NiSLMYGy%wgx7>&PPA~^FHhTN6qtW z(Oiw`eQ^jjd@Rx>p6+*8#?xIDnd0QOCwZ0bvCu6X|x2VqIgitFU z@`ZI}eTE)k%)`BC))skuG4SPmMXhPN$KLjy<|Bc>dA-}8=i^25xo9r(>W+7NZB7?y zo5jPhb&L2}T(J-Li>rc8>0G_}Ac^-&=l-Qy6V8e&?~m5;j@MpX_TaDz z%Z7Sam(H=*^l=^~<$CZRx8%CI@*KV%{aszd#sgP!UfqxGTl?kKwHv^>g@o=clp_w{#h8*H&)S8sM zNj^E`w~{_a;Z984`eGALLt*VMJ-XzP@6Zg*o2eq)wHaZ3Rh}xmqw>tWDX06L>W$ia ziN78`xWwl?ESG1V<6ySx$~(i2=sDOQ{pA+^JI%`Fxg6?L`EJDCOZ{G6;02$>J6_{- zUJpZby`t+CpIzB^#ou#yy~;)X^6t0ht@gVQ;}svr)b8SyD?Y!%&k&xk%*hq~uFS@j zI{kXMG7~AfT=Dmnz6SK4hV3dN^gb9gl_wMYVJ@!Zy`obRpI2t#YSxD${=D#?wDfnS zrz`!>z}#84Uq4rLyqZ^&MprfWaCOB8arNiva20|#t^!WHUIlDn4KG}6L_ecOv00<- ziXKWDWM z{mf0Tr(61|hG!>w2^^dX8ef@#tH2Y@M(t0(Mn^tQsy{v&4a@PJ)*Oc~N8k5%qiDJH zUMJ60Kd={;irfeC%*%72)*!x$-uJ+Ipyq*k2kOq@??BxHbq{#tfNu_X@PLO#!ZTV` z@p~X&-(>W2YBpMH9?<##&OSOG@ObL3S;Ei3`#6f5HM*rkUbqfl5HAW`cFUW2!wkW* z&Ii@EoB?#6<&VQVuB)yu=_6-9?<9DvgQnRIS2}dip@S}+_7q)rtm~j}jz1Hp(YN4y z=AX83J_6T_K8E!%m68*_LAYjMsPb+f>^o+m8;3i2xYIE3O&^@qr1Kn>+&%SR7{|{J z-|rMeQIrIHT{sx_zANP7i&9tzPaX#y-e>eZ-yKcD_K9D)#r6%Kn^(kFeJ=fJpVxjv zJm53OFNu5N3qE_hE1vL~(zbZc=Qp4BxyHA}1Ha(!g@~ef*w3_I7ZvfKpXZ(t-xcHH zQ9tK=S3LZS{(MM0;CtDp#2v9NzUX_xJL1#6A9_YSFYbwleQ)qN@g?!B2!AH?E!R8Z z5nnSO_4VXa&d{gDx5UHFj&t z;c?uVu`@2*E9~CR;}qXa@x_icJI<8}`pxn04!*lqyyv%_aE3U?Cg_~zsS>_B-5aA< z)jaGtTe=Tjd2MHwNBD7PPK0{&nU-gee>&(ovl;yYeE0rYi+_@ykA*zudxowZVb;yc zjx%P5uXfbwa;{FRyR$6#cgLO)GcZl}9cNROpJu~)XVJXb+u4w3Ir_F*Pdsy5t8J?J z^YD(fJNnq!5<7CJ(S?&e7#I0=kuMkFSTv`LX0U>b0uRQ_dL`!G+i>Eu=QY0z{30Cc zE%N1}SsjIC@qPF4IuGX}E^=@!y%f#Cl4@f4@aM7_JubZ>%;XYo`!Z&brzOC8at|DL}$_0L=R*5eZH zIzp|4=oDsii4T^NA{G6TJ(<=$OKJCe^o@&4oQ%jZpZB#2kC%GC)bpkO`)OP`nR zjp(;wY_wv$!cRia^T)2dbcLfUyj|h%3O^N|&5NSkS9rSW5O}!K|5d1qgDV_d;ovG2 zt;+xHUv1$nj<1<2|HGBl;~d{i%ag-@U&HzQTJ+G9{*GJgp3ME|SKNE#U$o@8#?kdi zbjSVAe(ZiR+I8>AkKG%M9{Kye&->WDQuJ%?J@>JD{=SKO&wuP5Pv0CwC+^?**!_tQ zb7nqvZ!&u97o(`sdhev*vjH=A0`Ke*Khf-@D0uD!7bhh?pxcQ$C*w57MVGlb!Osbw zoH!3s_MTJ(-cRVAG#{Nbnd6UwXB{|C@xzJtC%CQRa%7f|cxlqyr)hH%p1XH~?-RNX zg_@q7n5z-FPUIY+@5!=R;EfY!!-?5DG0!K?gA?AF=d%-Yf3oFkMabj-NYd|iv){HE zJ&f~poQHBdo{N!}`Q?qaO6a-z<>q-2n;vr%7RMPE#T+dh{0V_nJf8PZk0vvw{y(+rAEj`}3kE z`0#X5@Zc%`ovsMp>&MUOhTy@|z(wGa_i_P~9H;zsiqq3Q!BeL^b;?txJax)b*^nD| zxi?&S>y)=nd8;f>=bh;Bf8cl2ey!z9$>U>7jN)udZyoSX;vzw>qJFmURMz7bo-*oh z;cCnCytT70>QQfLwI@R!oaL`w$D?0Y=lTD+$yqlIQWwr~9Bt`iYtp>ZW~=$TAzSiK z*}H|ut*{1%Tlkxjdkda8e`k4O%lqu>t~lJ%=N1mPaJYrTRJX60dQ9582qWa!enKG#S&^^apV1XHhRPb5~C4i=W5TS#*C3zqyxuy)ZA=dcUS`VJiCE zmwdMJzch6z!Z+3Yx85r_oT6byt~8BKzB=u-umP4;;ehb_X2px^Hv^rHFKRh zrJEd6IEqz#y^BTP`wx9y_^(>HzfrFOUrg;Axo$c|!Z}fr8`n2HcLPrcyf-{>qvlOI z`hq<7TJucuOcAF&yt{ABzJB-d+K<<1eOKigtwsOYzRT8q)9NMR8^QINGpx)rWA0V> zY!Chk-bjyGvk;Bj`{@7L)b)(tVrF1WpJ#khReun#xw^BRFZ%U$&QqD$TRqO{b>1$l zo2K!wUM6sMuJ(+z14I0|={;W0gXX-Ngyo#(=d|x~R-M!8Tz_#m&vACHUh$Ra`+v#z zAWd8!>eCH#-JZJjb?fWa4%5AEeciQt)b~kx+zecnqc7SYeYI5+TE%gBGZp=&XP^7n zvl;hkyy>jS=xLL8HqGp2zo7r7IoLD@-T0s8=RW2+a84)fE1WjPl8z(4YL+**4ZJf2KBbf_a%MrZU|cS zTemCUydEd$wJU!HzTNHUOL9N{ubW=kH4nQq8EpQYkv?4Qn$Z-0dMhDJ9uyeZsz_l8b4LxKi3@{Gxw;>R2P-{|{hPSgZ_ zZg72rx0{7%Sne?6p zwLY$CdrjACx?a=unx@xbJw31Kc}>e}TK3;{rR6m(uW@sIKibyABdt9Y-*NwK5w7nF zvvrNH>kse|^nFpZ3m(1UtDBd_D?;uLwQpV(uL=F$+!H*O3;Mk&-im(YAN#$Y)_MgP z8*lNsJdK#MUhN^XHP!2VhlmTjHWH%CeLkDgYol8v&6nB}xNg|fpjm@=8)2_?DZDiL z_;TN8=gxs=TeNEMY=c+(aoBLiBtuRfZSZP?KO4@EqIwNJZSZM>Plj;V;FSj7G=g8` zZj6a>!7~khX_VEYbAt~We9#Ek_@KcD4c>0>LW2ipaMuXyc;O1}!F2Q*jMY|*H*~+D z`3=o)XnsTUK|I{h{6=qsbiJhWCA|mral zqD>)ar1u-%xe5BocO%~oU2gPyqsEPWH+*x$H^=H6tADKibtd|;Uyh<|YprXXT;n!L z&zfr*k2QKM)3OwD@!idRLFb!y1)p``_J+@H-jBX2-=qJw1^W%(4XahxcjrnJ_x!o$ z^S0~G+w2=K$*SvAf57)eKjoTu>Uc-=6E6u0JI7sVZVJ*6p@3))zKJW9I znE0&E84_Y&e9O=Gb@7m&9mD5#pK*OcJT0CT-xR+s5~3)U#kiljvVQi+_@4cnzBg@% zJH9`B#P>Yk6qn*lzGt{2>f&KvYo8YP#pAwyJShs|G3V#E#Als7&x@k?KC|t6XkZvEBP?woBmGwqvVOYl&;d28Plffqh$=l6DA zY3IRqbJA{3+RaJ38EH2w?dGK2e6;g+`=u}^?dGJN&)fODozL6(uASH0dA$97oZo&= z{abWd{#uLIUr_6XP>bi=??lU)L%>&C<4rgHc+R zd7#FJaqDV#Jb%@hMAsT0miS}@za4n1xu4|68Xr#a(H2eT_~1VOCHS(&V-vLMl4B0< zwYQ@G=b!q#?blnlE$~u5ztwm*oRf3*&8pKwuWsHS=Gh^&)BMzF?R3BqzCQ5gFny=v z-osR+(a61MMgBr-{z2<=_RYXi(pQp(HFGw@hxhf{YsPAPKgnPH0rOoy6X@*J*odu+(6k zf_2WE)o@e8VMf3A^Xaa2!ZL&7<+a3^Y)`wP#t=-U2bmOf^(o|PYowSJHB4xXv(_S61-E^@X7+b3-<(^3u>0q z(GEO!TJbEriXVK2f5*9V)jE1-)hyw80j~?Zw-EDn+j*7b$+Y#;dLG2#B<*@m@IS}@ zThX8VXTI+IUoE}f$9V$xNm?w(KLGcF8Y6nl>SZB?Cud=|dJA2mTOM4_Y)QMUkDtP&Fqe=Ity>;N6pTc z^lDCKyiSCf34RFL@Yg~->Qp21QH>fNtIhw5pvu=3I6JrX4qI6-=}q-;katb$Dfu>z zX}oYE8tR#&ByRehZAG|>uj`u+WA>!OYwH*6O~>(#`(e5Jaoy!QA9UW0uHbp->rLNf zn*Sa_ZI55{T$C%m0i#~?ypZ>LQBOrV(w;8{{PwnmD z6363*_Q+G!Yxzbkn$+|(67y`8Ua+V1UBge!`x@S3A27M@bxB+)gGczPCsdRYD@OWS>xr58LaJk=B!SO%#7D!?j3vR z+XwFw4weQ)Hu@{S>U*iyI{kW&zsCQA{G#5HYgP|Qd@SX00q^9QuM7Mc{;pltycTFx z!rKV`mI?xwS$-|zVSxumX_D64WFz{I>NT46+N#Cd8I9>BF-BIhB zbvxATl%qzc>XaUMYTy*-wC%RGhR5)4Dc3w3HorBw3foa$t*8I*re{XrDK-D?uaQ@* z!OiIVFyXQn_c8T4)SJiiJZ>sHSt#RzujAdG;dYH5X7xH?HfllFs{LXy=&QdxZD!2C zBrP)D7sVh<{m1h0?4tP_*^YkazwlXE6W51cx(`p1hq7waM)>{Am6xh8#QCOdUyYZ_ z`0vz5zco|gp5C*3S2H(Dd|G@d`WtdT^NkkY6!|TVw;A&h--Sz$Gca|-R#LABZ%O}^ z27kD}G(?N49%-5Oy8r(r?#|;RyX$iCpPrtO$pQok5G81UAVE>$9u+kzDqiu53WC>o zi5fL()TmKFqeKY;5+n#n5R@b{lbJ~-NmsAcUA^!7zD@7@T3x+WFOy8-eSf>FV}YVfaEYI_NzFk$_J;6tf`X|*tS!B-jR)OyUTIH#+*z+p+_whGLmsVW$ z;eQx+`)Y0DwMplSHlk0etvb85KK?C`E3SvhGJRW9&U;19ckpVR`JC2gb=q@2?84Dx z9H;h=$x^k^uf|Mu=)G5rk`CuzmD>8msF zj)TtWs7;->eJtafp3I&)DQBTN3c^g|agz7y#hKJ!{jj6+lj%RH{sU!R$Zt6`8HlVX<2 zTXn``9+))$lk+eHbRG)%XTiPm^7V%MXi{~Kr`%hmmPveci90zCeAN@`pNM`=O?MsD zlxJNd?IttdTPl;IIPfh->GNU@xaN7@X~#w2pGkU6F1d#5xN{A`H!J$aM-A@lX;X!V zF5VajT&4Jure)$xCi$->`m7qFk7s$fC-hAJHoO($ArCK;^lcAZ1y2Nj(r$7a+>_wR zRyB6YH>HPy#~rPi;`K>&cku4yrKnGy`?K>*KBG3?9#UgV;6{yk)`agbPV!o#*pttS z^C*bjBY#P=^X_TUXLY`Q=`tn%)G5HrRG~W6KNX8!^*cV3$mGkd3iUiKHXlztVSVQP zO0_*?3d;0Umgh0eCU+fqbqY^~PdZwYz(bdOW%5tCuUqXc@-;P?pOE)F&&b`c-bu4D zWnJH1^gcD*_K7TRr}WxQv!*gL>+w`M@XwT>S2#$jdiVVRm@1 zEj;c3oJ`SbD)@5UQQRrMooWEJO$A=@Kb5ei-*F)NlA5M6HRVq6?^N&M*M;_wn;zxn zXNtF`a2ywVSgZ!?C+!mjwCG+@t6Y=I?lFT?xS0yE%|ilzQ+zh1=1H^Ajhjil6yR)# z-zJ@J3$a4qBYMGC*@b9SP4|2H0}PvL25+&l#hW?&RTFTuO&oHP$p6F~3D1(3H9 z_rtX4mwU>&*1&DxZr=4NeVCCrUW@g;|Ah0NPc22S`(5uR{w}jOOtv5LF%|lorMvzo z-sE$4$_9tG5ebF^*x-Mp3FNeDE zx9|S?UPrM9#r2^`?$jEer12GeVr~<-8>UI`mgo2{#^02=tUkl1K`-Y^={>a_JtF5^ zCg&C5^O44&k62S1>UzvETiAK(4F)OjM8-!@1ydU>VFi^ zqjV|qd^B9AM`AykmGk|d%5XTC`Tg=yJXPwsgyy3(Yd33E@(k@e>bVg|)x6$b>UxMx z^TskqypJx?OC6&)8Kp&4wIjYp=c70Mp0DYdTnGIXT3=1~ZZk28w^3Xa(`a`(3j(w++&Y=EcX~q zMrkxgt1&YblcR{XRdnigPY=#xXVqv;ac#6J$6R(FW3E-Xgl__>*o*sTUlVntRFL@ zMYL&YDDV>X~JuUPM_a+JX2!6w$;Ns?fNL8|8Ty#a8~BNR$BFnwJ-04*(vXi zw&lAsJ73QQ9tu2&S%Tjx9vPBrRE>>0v~--XPqmx12^>y{RU}`Fp7UxwZ&Vw#w^=7DE zZux6psJ`M|X ztQKzp7Yk}zphNd=^sHD{KbTcpU4?wEE#Pv&j4tSFp^5f-UNzSX_^4fSY>0m75A0*v zYs>Z2at>cS*TrKCG@K8-+0Pd6xq!zaeqEr&LYH1g9qBcH$+0NT=PqgDs4HI~n zz*}WF;=2_Gy_e*s**qTWr^Ur>{Z`Z>e|08*ZY8}N&mQVg$q!A|w9~RepPjgBH7kvL zKks?BItI+xyxuzOowYcdU&o2B7qz&XS95FHk@q^((NduXHBO(6uDaXL)qF0i=V|p# z^T@OrnSLAsx8hFYdfI%&^*zlS({Vh|Zko2!c%G(VzueP$nO0j~arCod7rrRA8mDnM zt=>U37VD=^O-*VlnRot4oLXB+v#zS>GuB`8`Rv-7@J6d?eK*=S3MbUS2k{Z-a6R1! z=5Jc;X)`kIS}fE=_h~##^W}6qv_?H*zdJkj`ZLbsd0J0Rp(h$o(``ER%U9ECoTlIO zK=jH#ilXz`Yo}>GO|Jo*O!LZg$jRr^!+`5)ew+?9+6QVv&&lY$Vk~9HsJcj3UaAdw zM*YkejSG2h(6I-n1yFj5|M<8`oJzfS%8{S)bw^$0cu zU&!LIRlWH%C{b(INv{u|1^qYRwcX==*QeAoXnj8Yi`3J`6Rl>Y%kzO&wb5-_y#?0S z#i9#xJe0|iJDB<2U7gye!hMg*C0;_E)9$ZNI8WoL=RDWb^l7<*K4BJlEJlMo^-uBq zK5sQvSYuZ5#p!k}uKz_fCF*dAgFb7^alaprUi-&>M)0VPnat0e#^_pzzZv{=Z|TRH z8F7lljH@Be+cR{YabGe1hSXX$V^-8PL&F)`wyLE{Eq$e)55Q3Lt8(4{k6FCdh*NF- zjM`@CU2T49cxYw}M{Bsk;S6p|@KB1|8T`!9vDUhF@kg!gQA3A5E6&<4^f!Du`l>t| z*?C6k+iUI{#GlZ6Oh1!iwBl(Jf2B{l9{N&$8NU^%rAQ53dQQ-6o`>es_S_vud<>YE zCUY~t8%@jg{x2T(l$*@_`vUtkDx!NG9y;dSw*X6E7U#|3zP!C^n#O0hemm6CGf%Hp zwaFioqe1@zL9aabsbyO4y?BbXMQ{8Q-xEE`*@63kJ=Z4=_r5}XOxr8V!kQ`d=i`h1 zWqR<#3AvSKwL|_Qu^XD)gV$*_7UFT5hJE5qt0is^=)udh+B@+(t@ff?+|YAcFNuNZ zH`Q^=Ls@!u<90^QSn$9!kICC?|48y~QeBfcnUQ0#QVsO0G z`kzrpfxV$VVaEm?vJe;td-xYkjv|J^by+`qPK**qGoLW4v+~S_^X7Y2-cG&sHM*w1ex9k<`z#J({5LD#jJXRx zqhF4X+4DH4ihf_d>%W}UTa!7RHG3VnO5m`aH)q3oJawsM*35RQBVjI!)n8<8i``Ri zubb6Jm*=x;Oz?kmlitnt%%$jQc^=5*$(^+a7i506bWN;2b@t8SDD**t-WkUt=kS#$ z-|Q3S63?>*P;9@HXSPgSxn|7QjGFf^MVoS@vwJCQcAu{y?Rrf#cs+yrdV4^AFVJpH z+!?uR#VECRtOZ`}HC1xXEYP#fH9d6N^JZy2i`OPIT2&l<*Pq(|zLLdTpZj8JkKwIf zo*JArn)g}z$*g0M8rEo0BG0UNW%^!ou8!Yk)ik63t}(qk&hlzmarCEh)Mw`?R#%nU zyYbgY?>ri>g?OCR=x~$vB7TA|^JzE*I%qP7)1 zui$k>O%?XXT3ih1w~I##)l`V9gg8ljC)HC@6%pk;%znQsh~Uh!9R{8qe;&DZcJoi`8sy!|Di06UVe4O*i0FG9k6WjR?{_F_ec`C~JpkA|Mc3M9XdWfmf zeM9P)z+YY?-;3XZt9qJL>N_954Q8Ze+C5<%4JPov@7@WswBICm32*6l0zdU@(T~fw zk;#|amHEuS$h8)H)Z(X@Pg>Pjq=yNf8wjz)Z|}gz^YZaiuR1FEXh7~-^|Y(800$Kw zSK+?HnjSFv1lTa4iL5cdECLK2_$a()9{jB-Aj$AN}TQVggp8Ci&(v`40Rvq3(%&T5pJLZ6Tcs zd9&p)edB9l*EL+maXG`7(1;O+&Mrua;G>*FWTUN*~Gc#{>?0 zAFNa=goj4YC-}1c zQC=&+uNf-ej6N;*b&qEBnzX*JNY2b_%UZM1B3?i361XaoFJBK$3-X5?yj*nBWBytd zw^G05>X^jCq*=?aQ8RvG);8!hu9iW(R=YOo{yaWv)6=9F%?(kPT0VbNOGD;oUnaK2 zQ1_%BYTZ{|st@znEOx$YlX`5KRij#J_0&$Y$@Bc;dL><|@jhwx2i3cxwpDZ0%3H%? z#Ouwt^(FWncs_c?hwXtUvotPkDr>FVtTB` z-D{4T>cr)RqHa0V+WK7di*h`ioudY)G1oiQ5_3efr#8HF*UIny66cbk&vVfihnRPAlr^ZsI{46k1b9!=Wwxnb%h5SLn2YrOU`|KeF@;2(PlGi(}X>w2H8TZg+ zP@bCV=vU-<_vtJSSJcy`pZ*Y^H&$rhDqh3Ww8O&+jtlUWreps&|LP^?`Ml>V1JOT= z7k^PaKHFF03VyrH_6m(#*ByCl1wV~ERkh=> z@835I3(=%pCmzep_fY1wXJXoQ_xI^>73U4xJR|R_y4%EC#Y?rCI(WB0PmLqai5dQ# z>w0~67CP!D=5aqQ_vtvuEBp5M;yD^lMX&!0KFH)f*q7t9S#p0%xue>v@zt%*e0mo0 z+>-MHyjD!(CEjaQe|*eib(XmnGs6|07xVmz>r3ihYJ?D%#`}8Dn~#1&-eh*(B_8V7 zbC23Pcje%N8oVyaTW3Z}^*CtXtD@5q9hdOE#1G|imD6NtG&(Kj9cQxiU&7B4PGb1a zqe(r##?{a`V^;LojNhfO7N1KYmwSfjwUfenBmRujQM=#N_gT^iLBwVW)buQ#m=aL#a@*H=g-;?9+OpXJc zYs#GGhdMsW6Kg3A_%99h(zZR+-y*IWI@MjRjyC>l$A5Q`{sVX0(Uao#XUA>CbsgRt zd8JgmJaLDH-D^hs#V9||$7ZHjUG218*4qG|weZdIqw>(E5&u=eH_wX^bbdBkm*=hL zvb0^sbFaBxR_|cG9BNv!cG;d#p{HJXmYrY5P2uB^h`!@5ecgId3?A*lcgd`tXtsRX z9Lc$CZMAdD)-9Xi<-oaqmY)(gU+%k?kslKpL&Czlu$2VpJslEstk&z?aK-Dh)OA zc2hXIKN0E)-gwTj74TFcXFhK%H%EKoJd_=0NMF^#|IN7YxK=&OJi6R&c6h0k{sZc% z$92y|=jmBS|7CO2Xm4nx^U|v4v|8?tzW=ZMEJt?yWi!@f{Sr=_LjOFqtj7ZRmaR|V zvx^5i)Ua&M3ihJE5aZS-GBeR$c=+|Hi$|91&C3H2IMq)PJ(l@xY0a^RCP_!WUFOqe z_txouKV0Lr`e$9=iz>vvKNI_47D|H-A$QOgS4)>X9&rpYXtt!rC44RyI(9qqSKrC# zUqheSajN;GIr!)i_wo30s25*N?k^O#TZ}$6BzZT9<3{y|fB&N@75(T(>;dPqv`w0e zBrkXKV3WAhq$X0cNI zS@CD_P}V08AM|zTiOvI_mx?u@_MYLWL;k$%{N4I$+SL=j^4(JxVx_=b&8~|@$Jss5 zS4o+pdmGGJzVnUlsmIUIqx_4P*^BTD@Oe9pXSdbCFR{Al<$vvazE5ZMJ$EL`o#T%l z_spFH_jk!ZC+-}rYV};~c?B-!#4p3`oEqnNrC9ty`^X%f=WsChh#6CJllvN4qMw)R zY<8|1^$*~&D&*0_oY|bi-<&yY#Cutz`rFK{ICFCLJC?b(g16`RYpy){oS4_`{J-yXXrtY$S=jx&XvG2^p&fU-a zyFNqoo8#3kz0QeSV-IZ?qm?J>hdd5zn}IjyYCzl~G5aofte;xPUiB5~JE5l*{1non zKk#cF5`5MpN0VCH*Z8X_dd=VXj4->$CK}A)B@yCV+vj-SZ zc=UF5|8mL zep);)(nGENYAz4dSNlx#O&|3cPkt6Jed07e4dTz4>)Lbl3iZ;lfp6=d!Vw?Ugc$Uj zlVdLJJ~a&CZ!X-czE;l%cw`{(yUEkI?0LrVeDrH_HfQGy|3*h+ooo1Mp!=-2P3o+b zXKn>Q+w#$~z1aQ~>W6A;=JC+VPCl|nV_lrAke%5F@_XO_Ll&6>ZQ*bhx7ysd-_~p(G>2+R@4Vj-~ zn12KZv~Cb%A20J~?ag|e$LBmv+SO7W;>kJhzD_w}_^xnmRz0|P7!Bbax-*jg7 zx+3}=eBWJ^H4C$|?lGICeA&z^)#9}0yPx;xd9Y)iPTlU2H^K8sGm|iXm2@3yfWpn|aB)GBK*{4L$ARSK4>@u3e0dWpQy)vK+nbV^MTpCdL7$J$NjO zi{Y3wZ!z4K=&f^tFH4;ht4G{qhq@EdA6Z|Yy*}B4Z@neuO}M8VKS_NgyX-$D_Nh60 zmzW8?CUHApE|T~wDR5NdpqWdC9?VA4j3!-gsfr5ZIbM>bOBW8h>C!{bJ~}tsZm)@3m$aM{Qyh+w*3}qYsOJLp+ON z*H+BK%08%X{`2Pj1n6F}*cRr6#b2S~jrkCj?tVPd>w{#S5i2tYEUj@@@D9Zdi z|Fqhs)mx^XX?2zIP9<-Z;k!bA(`uWRe>z;3e_DROq@UZRpJ{n#9`T%pv6ARVKJImI zX%YO#K{8XF{B!s7{{i%QAbw%&9|Ny7g4sDxb9-cv@6rC0-W!esR`09;xGj8u=HO zVM*U7qsu-KMfV@YT3k7dwdmeOx-HVMg{KBW3^QGVn?*G((rGZnz|SJR7Uj&7uWK;+ zDe<~9@ecNuCfBPQz`ZrJUW6swFX?G0)JMZbS}xLOk+zHaSj5L79%=@7@&X@w-caY< zPV`CfZ%Ab6x7!IXJ#sBQ9<_;i zUnXYm5?z-vzXw<&))LJYtzDwu5`C6vy+pr7JT8g1gwrKjF3~Sh;s}fB=%t^u|7X|P z6u4S+otKu1aU!&N0>S{JW9rlOL4)Y{tqvwS!9v4JEC*DovS$z+PwW5yk zFo)_|QOAn7aUPfyuVsgCLhty^hZg+y;jj%)aoFJJ7~jvE(e~g|dCG^}r;hq=GfCf+ zdlo06&&vIwOzzxN=CiAm`cm>&s3Rp`r@kBXRFk$Zb~=ZTZa%43Q_T5Ves1Ks5Pjai;f>D&6sUVZ0BulhT`_f(O^?}j`ZdfVXrd|tf>%|S1* z2jwWUwm4zEzB}~Nh|?PPY^ZfZ>RuXF9 zK7I7^ND7B}v@GNMDts4t-m0zv+SRqu7}w>z)j;=DEidD--fR}TXAM7f@(${&%ROuQ zYQS;vSo8t8^RjcdinFGtHNIHGSzWn&yt9@D9vM(e9q!h6WQ~pk^z4B(+SjRV4aZgP zt(0?3o$a3Yj7E>h^VaH&enSn1d-xh{*Z5!`Z)-eL$pZsouJKHpzEf%`u5i>teYNvE zRe{@lniSVLf7)x0GRKqAtoWZlil55-jzb-<7N|Kzla&6uN*(F2Mw41~rRbBQ%|y_J z_D%d$)FLR#>whii(xoo> zy7aWB<~4k;iBY4MzI>0{aHY?l8F@CMRWWa>&8mNG5U2cB%cpJf$DXprtaPk8Z_V0( zBVO0=vUUN?XH1^9Vvplu>bsm?Ya_g*_xu%)`FhQaG~=vRoch)1+dl2z70b?B*nr))8an4lw>A3I^U_+FjgWU5X7%V=B5>Fd{h|2j?D!RGTT_2w zn3p-Z_+kwYYi7ENzH7De@^MMfmd0y~bf!g8{Vj`8OuYBhW#%ENhsMnJOp{5E&0jKL zLycl4#Y>vSBp#Bu9OAJS&)dRtv(|;zB%T^$xZ;Q8UbHR#siXK8_V_IG@9Ed_Oj2D5 z_b2fa7b}VXeMp+cB(1AMF8UUQd(CK{T88P?guAl#=zIR&d!G7C?cI24%lv+MN11p% z^s}Z(ofjX&MWb2J-@06NG#19Jjr(G3=&9$dIp)F5Vkpt0HHGJ*XT`j+A;ZgNoW~P~ z``o~j?kffS^xB68yFA8i1+EI!Us)jrpKdyCireXY$GFGxHPLv}yl&F9ibgfhM?dr# zuXQqc4)&hHG53X-<>uS{O?au%_ki`4@($>$%JYt=-BZMe;#A02+~&HP1~>ixLhBK2;Ym2LaNw%psaEum9PFWa49ZPAFM zePuh`i?8jDs79V!8?*L`ZTG}N9@-Y+yFxG9dMm+Mm07rm_YQkbp~v~^-{zm~2{5nQ z?%xjQ_;Gs%My)Yx+q8Qyiq5_$4_(XMR~qWW^S1fTr%~d0y@mDsvu&nI<=zf8EV=(V zbLPHnxwjXipAhq!ri|7Vp|{NUw@Y|pNUX-k@haZ-0+`=;$g>0HwNP!_yt&Qq+h(DK zSGM_o`+_|xaErU`XQGeGamP`P?acp^r!e#!;+lb4d~9C=dq$ea%gyYz_34v(p;MaX z+v|?_YdXghF@07>E#fvG#Z70vR#x*tfqToJvIcKy`(cfq_XC$^Y1`v!oYdlaUww7- zPSa_qC%WphQFKFdmX0O*OVhnZ9gXTJw0@w#Ioh}3D$OVTJUvL8nuO>4QhDBea;5nv z%^#IdL_aI;-Pv)|A#TVkMwxojxJctHZe2T%rs@pjb)zN3r;=e_{!3w+Rie+$@&K zNs|uoV>BM}yp|@5p+B=bU>_^2^_UmyrlR-C|JK$l?<~?_F`)-@vZ&tLb~WH>5s!<3 zN8VhdL-{%T7wwAlwrF4K59{QM(L5n%ow_@%U#tT?*QjwZS!<9)8t zaM8ZDNSnnoAa^|Q#aoNCU9`t^4fC43C81Y5x8Ze&uNIx#=e0$8rqx&*Vwr(G=Z0um zem1%w=Z$Syy_Vo$k$)D=MLK9Wz$>_K3Ay^|7GmJ5#k?mL#HUR;&KG%m5yy*asc>)a zy7OvX?0})@wV#WkhqChwg*EzH5T~0i`|itk?9=1^V|ofb(fFXz zd`La9=&P>X`l4&<+s6Agp7yOTo$y-0ep#ls6wXt8l8OUO2h=^J)S$X0+p^==ikG5yO8lNJ`jYRhA-1N>YmgCZ#L6CO{+AWdg-6WO`1k& z{atv*n&*9%u&Hl3(^JtKKkxN#cCJnw7KppaYrT3&d)$==`bpbkifB?e=WzgC(;)|4 z(&{MV?L0N6-Pr4;Z1-9F4L+0p5R}6uxTD1H+rV``cl;1c!OcFO zdl;_u8P&be4A=Rb=0ng9H~9SFZb-s=yg%=TTfHZ3hxd3dcNT8+-sAyD!fjsT7s3r* zzup5$c$e3PUx7>Tey@Yd;d)>5?}lNx#n;P+;e@Xfw?Q>rXHUEns^J!UMmyYShEBot z{PrO1!!0=d(2Cc$j)ic8{_ltIeUb+Lz|S@fv^DaT(XQKIn2y%$AGlNyOtj#8Yz@4p!HJ|2mqZ zP4(<&>dDQ^ygpo&f0e)T^&8i3OpFq~Y1dyp&AV`4QRW^wl8@qE?s`402CuniCTL+F zD>~~q;`*8ByZ$kXKGBo$R|lPvJQTxUU*_M7>7_+Y&^CC2evP5eJ$~cWRowNfnna_!S$TfA112V{{yocaYX& zY9FJ)n0hMoGsdT5_!^_*n7T@w&kOgP?QYM4 zAHJxjZs+Uhtfn#dj`2|YV~+CG(PC`O?20=^qdYz<4YkfgAJ_xO^w7))RkRy3b1ibk z)ZZ6+;lVLH?u#)t5&fmyQGXU6L%68J?LIA=tgSoez8SD5jPb@;Ka9gZO#5Czh^eMR zdFxKnDAcE>u`O7KOJEjzH(aAl^APaH*t4(}Rmp#ECV%eO-r-(5M!QO}#`KUMa?xcU zA7j=h(^9vd%=avt(K?Ag7H^I9Was?{>2rxqA9zvH}GNz3uTue!#a zAE)CukCcc0nmy)=@dDuOdb2T3!@4ukkIV7Sfz0fV(|SDfJ8|Q*5i-}IpnUvbqSA*t9!f)>Z6azc|Mc#;A_CRJmWmr zF6THN#-KXX8njb;Bd>Mpah%`ALod8CE@lTF#(8M`3EhMxIi0LJ-XTs`@C8xOj!M?WKO zIukc{JZQXh=&9}$->HAxF&=tfh83{`Cu`;dpAD|n;ASl7rsfGcjk#yyWb|oq-!+uY z5l-sX@#nsMc?Q(hS!CTDJf|kySMb#sj_a4~o%-(Gbd5JA9+j^%>JszRi()?F8V`<- zI^w;82F-Geg>|78J{p%}!hK`vpOAOroOAZM3I3d*MNy$TadV2tm_NZkd^yb`zp32=fk*78sbn{{>{wB=J zL>$6QU5tKFp1X##_?i&6g0|IijhpR!TGZjTq0AcjdI$KK2YU5W66)1QKMu!uI?wa* z=RLQ6q9Xc&*!?ex&3_ZPsij?;IE`}E<9MP5#2>#T4lhsWWujUQ@(qOZc%2Zxb}Ska z^X3a#^={!SAx48fxAa_ygKnJH;-GJw*Bg8-)_WC>x7^dJhBE%%!uJ-gwhE)K|FZ9c zXUFU`|64f9!`~L3wgR_m+)~Syn)=1xQu`K;w)C?l{uZxp(P66*T0y;Ade~}+entG@ zO#Ixz%;&{h;x(DW79Q9#`$eJtZWz=L4z}>qF=nP$J?;gw6W?-dgHE79pIWwXU%V3i zvmCdK9P*Oen)yCr36F1uSTx_F`!XuXs&6nyoiJwrRZOo^Afzru~)~Y7V_wyKUBL)me-mWD_3cO8!^_(-IPdXujy$%-vuc&s>5r%z*7qzc&Inj8;?%QHJshg1)TJS*dbQXsSoUL+txJWcALkx zaa1kuc7nfyr}(p!&r**0Aub=(inCo2EsFn+v5XIT9zWbu)8Y@}XCJzGtcUik>a5_k z9x*z_EYN2eeW&T#%e$KpTXS^1#q|sHY{Ttly;!_BsFuwJujgFbY>eLW&-Tbn-UI#n z<=iwAX>khi-Y{z4u%=s2o4jy=<}uIXblEg7n{CnWiE;gSme%=l*YM|NyEx`$lkcn7 zt>vFyp6oyAynCAQmJdT_D6PIt^=;~H)7lnjaBuA_&eXAq-;1G-f#^y3ZqLqF>e@a% zH`Q8ZeIC6xFM!$E>;<#boHQ??UjCS`u&;=_N$X8>vWedd>1bWt?(Ddm=A;Y1o4C&l ze9NHvEk|>1%=ec27ln@?JBU#m5M*jo>R~PDXGu zpoS4MIr6j|dL7}5p+z;fdR#7-^SxrXs<~CJd~rwOc*M~NAC0IlVNF~OU3wTXivxNe z34Ihs-~Uzb3tyDKz&wN)?y2JM<}Qz`K<-vr7OAaoz;k}-b6J zWxIX`X*I9!gjjW;e!fXb*rP7XLezPcSp=wU8s?lM`&2V3w4h~ z|0?J4>8!p7Pq{8vd01!WT7xe7Y^PJBe3egoZXO%O=*3Czvb^RxVO`(z(T_gN_nCOP z#Wjb%kLi0CPx*2-VpB zz#DOz=kr1-JsNS5u%-kT?L1s6cmD=mE}3~8t>~%5JeR5?=34ERxp>xje3r=3F80c} zJO$BDtL2VNExBd1S;2K}oUd@35NBoTkh>xJmeaIfA1n5Y7T05HUBT&!{tJ1l1sYtN z(QlW>weBr{M(zB!vY)6)Rb0h8GoknJfyEQ?c%s=+=yQOsGsS5 z(Hh=JMRdlqTSArxcJ%`b{+>iypnGZ7^2tC2;iwN;VAb`xXvRx)6sy~ z@l5R89sKXiLFRj^?RuZrdl7whJl?U7w4ZdO&yGHKDnaeB@I2h7&-}1H31+rfO*?Bq z!yWt2&T90UlYTd9KC74haLpc75c*JGL0H>Mn-H6hJApra?1Vnd!48k_&})b13PWFk zw{<>{r}S|-)!E(>{jxmwXY%AWWnQxv@MQnDHU*?5nxtHZ#-jBX4b~3w%3S2Ck!DX8E<9|8C6hD5JkHo0a%gUo>j%Lg9uRNlL zkmotv<MafAJLz9#xLG1A#F z`t;bS#~!}uQ+I`4=gmb4e&_4(FZVpZ&({O(=399KM~xmAg?ss=)jj*_sKZIj^K!ip zl|(1yx@GaO-0)=C%0LeH>dMFGcR9}eY9}hYYtwW9|PX);q@Xh`inhxY%&wQ{4j41 zYvrAOwGW6Sbt)JI-qV(|V z-8`?)&${0}I6v>6a5OW$YFzYq#F`PkkLYE@On2k6-kLmnM0cJUGjpSlszDti{5&F0 zi&{tYJF2G9)6ws!V=hz2!TYIw^D=q{PJ!Ahc)wcRqvmJyDZqVMt)srH!aYyeOYNzn zPvbGHmA4>)Uwjl>I~t3gkmIhEY#r1+io4Ns_6T!4gxe8o`_&!`xeB2GittUNLAge8 zUxV9G+!sCOe%g;Zj>bLSi~N&=QFnHZ(NfpS00(_|N#mzU-l01C1&-7BNaG=mlS+Q+ zrgaGqwYz@@XFK>Q(|=l?wn5MJTFrk2EBqPm;fo!0?YL)09~Hb^rU#%wg*X{nbL7Dt-0k3W2e&);>*n?T5XZ4u%z|y_@wpR&;I#^QaI=G(op8j@ z4qkR}vJ;Q~NWSJwzTA5A)t&jby>{rigR6Yp_Vx3s9Q%AU$Va{6*U+!R{i%B3(-b~Z z?oBn*P~R!K#PvL|ihEv5wF6yBtWAlNY6ToOosN7fExIL{@pbBg^O^r&dP={kZvGUz zm~%GFh_S2YuFwxZrTDmx*VcKcD{zzYm`8eXoZ9m^uo(2eOSKFXYw7)Wo?b~bnX@>M)zIXq^wD8(E&f}{ISjpsWd)Aes!($<2sER z>D9dH8m#Mk9pCFufSN1ij1NZsiNWZ2D$A?um9Cco9@fpwklgELYF+-q5SLHZ`G1|C z*ZHPcUrpjx;H!>TI&rZc_E7!Rx~EPJ`{Dk_qvzzhCzC68ou|7p|DU{dJ*GO`)5IV9 zV&Zk34+kFcIGpFR^>8kse~+6&ZQ_<+a>U0#;BGVek+Z(sW%p7SdI{@!Dvt)c*0hPg z&U>9aI*$MKLAk>@xz_n9J|`Y-*ZHyf&SHpUUYu0L>bX>DpASp;tyJH2w42q>EPiL{ z+Rux#bnc-;4^3yqou%8XShIc6C)L)UUE8dC_Qjr6d-W5J^seTwSscvbZI(WT1#*SQ z^vi$N{f@J3QJYw|ZD#QoFY&bqFC%Imp~nb~np2LrD=`a0^ce}jVcw(BOCOJ-vzhg| z9hv{X)d)W0W}+4s^?BxrmRFDR=Udpb$PffMFKVpv<;hAE-YE$Gz5xMf77OR*x zv>L#BoBP}J+9k(``+A?p4;^Yx$$gqH_~jywcX6=m|E(qW9b1RIb~XZFw!-FWTc ziE{BvgGa?GS^Am&t1OgIp+xd*4E&pTKzHk zixwllW*bc%g>3C@^`B@PwY~)?iGqplS-QG@!~$7_S6?s|DK$C`r0dqz9i0d z>8$$p)UY4+DqicPSu^g-^s;2l67H9*tHggVPWr`e!9`ax^3pH5Jv&Zs0pF;%i4I+S z*yj1BJ*}HQi~4EP*CwBC@<+cs9bpdCSbV|PsCxV)eb0eTTYT6{>#cB)KFaxOOWaER zHmb3sDSF*`vy+{>s)5I6#FBRlw_Cvn*7fUQi*7~s=xW?=@x_+jO54n`+P3i5MZYaN z*TNR9n$JWZ5dX%VERIUlnzS}4*1kIT)s++{c|Ll?z4vF|+enL~SV_l{7O%JPFq5!` z#xv@fF@rPVv3Z!W|CQjkmzQU7+{Ozry|#8nv*PAu$E|2~4SzGZ>Dkw-`txZugS&bh z7V~kR9%uNz0(V{ZuF`S3nvEI0oe_Jc63^R?&C#2l^xkhbtH&9&)`~mBLo@i9p;t96 zX5=WROS3$CeZZ%C!DD=xFXv2W^xIeza z$170tg4_$VYvjcR`4=`ke$sm?{4a!aTReob1@*RwwScGEndsY|^1ZITL!NTS!@5lf zInBeu4!=KlxPL9!+ZPrAClz?^QBx(qEX?^j?OH9(7x25V2P@GZiu+(D?iEo)EBfTA zWlwK==59}nJ-U_AV9(mU>d3EOMN3Du?D5MU|LoNt=HKIsJu&vpSDSq8xZC4}y$1Wq zq$3{paJDxH!=TrFGqp#nJv!`Nh)6GN`G@x|VldqYh$*w^1)h&KUrDK6nZ zF=uf++vzK5qw>@6lv%WLr6081< zBR}@hq}Ckm^4xA$^g;3Zv*YdZ_^$lB{JE>Q*b|Ow+STK(T6fjItH)h6@0yja*2q71 z72S9-qwDUX^V5es?$WKAH+FHjtJhtc@9Jll?z?o~<&#~0*>z9lSx27Q<*i+Q+2w~_ zeeFIMJuCj5nfM3#?$Unu5ACl`BOQ17VRt6_h&VSrlcjmR zJ~!NRL0={MtW)boUgV$UiSEw6ZzJD%{^?1WMcnt(YNHtVVS`pZ*7xx522XFerwpHQ zT*jj4p%=w*PbJPbczL4|__)~GjcTX|9&W(@2A?z+ML%Kv)Qi>^y4DPQzQIo${Ibyw zyfn^7WufN^&%2_JTYJN^8O=A^4)xyPvvM47@K8hC(V7kYY=p-++Tf`TbF*RIHh8L! zJ{!Z4e`+qeEfecN-wk;-ihxHqcx=PWZd629Tho*i$`+%(EJ@Px0m`Yi~aR@*KOc6o5uxm|v&(eHkkAA0WMe3u`a&Dm}udasz* zJ(pEujhqdA>N~3!{FLhH!esPC_uZAb?^d6ejlms0Z)%3O`pl&oZuZ$jA>8bJ`vY(Z z?(#l#7;f=i?jg7Yw|oB)hw#~JyW@Mj4u2S?;5M&Khv7Y5=f&X~uW{ZF55x6d3)~B5 zA@a5Db~q17c)PC&pMWX2*1mWTw8QoGhufhVZZI=sKNs#m|}y08C+*Ixg+Z~UekUjK$S-uR|(e)COl`Ic{e>$iRT z+iw1j@BFUs{+{pszFWTk2Y&GFKlH;ta_f)&*pI*CCw}s$-ucu2<7eLWv;Xtw-u?5x z@Qd$x?=QXY{lEObe&x1b{ofzB{nvi|H}3e&-}>!4f9H39@2=nfgFn3ckN)^i?)lR{ z`{0K@{O5mh?_d7aNACOUzxn9>AN$*nf8vvW_o)Xy{r8`F@U#E$xzB&$AHVp}m;UL? zU-{>M`Rc=uJbE%Zb^5V0XU{$U#Q7(mdO9zbUr<<7ToNxWOO#hsR#n&3*3~yOHZ`}j zwzYS3c6Imk_Vo`84h>%z866v+n4FrPnVp+oSX^3O@nh--+#mBZH^*!=$Nm;R0)AHZ z*r(y|!Owym`xu;nkHbH}XW%~gYxo=ZDBKTM!fW8Q@Co=N{2hD>9)Qc>C4lT>55i~R z)$lp+yAa3xT>P7n4NpQEc3}&)VF&&a{s;UFybFF7{wMq#yc>QV zegR71S-1oj;TiZ>xDEE;7vVkdUic+=AG{xa8U7dKLq7~cFZ96x+zj6V-wEFZ-wodb z-wWRdx4`#90gS>JT!0byYV^XN9FGp}|2D^OhquA2;WBs=yd8cBLY{Ai;Je_VTOri< z5eQuV3Iq>?-UBy*kHCBAGw>2TaytaRehoHY6SiO*0>^>ZT?oAFL*VPrA?O@9{ww$c z2>!YkY9P!`9n?bu1aCD#n1wJKJ#fTZ;4yF)xEz9E2%OBoEX=_?EWjcx!7`M=6eJ)I zejh#ze+_>FABFqjWAL}|argv$5*B|_O^XqSViwECw`0QH`4qwwns3#}q zB{?~lAJvreAH9mp$-InvaSc~qdDzF5|L!ZlZwhO!JbLYS<#%6s@apea>a(%bKgM1h z=tXpV{eSPz*EEx*;33ahC;o$n5B`_N_}Yc{edcS=MCn7T{{Q#)*H-lZ{rR!~^iS^b ztUs5%ZA82Ihjd0tl{|a%d~a; z^5e%(9KYiD@hgv8bliL%f5q1wKdR`p*Iyf|Iet96t2zFrZ$AF!<2M~Y{+4e!mb(9= zsRzy;OFj67)B_n)=U#T~C5IE0`)|H}^?&cr3l(J|ga8M19B6Ru!QZbs(&N>y@#wnn z?CXyo|Ax%j7g#xVV1)3N&4bHxPF&$|<-xg}oU3xK&OFL_>CuB1jxR)b;fx1|(GKa& zIga6f+cPq^U6b>QqXp3$XFhr|`i}6|cZR>dEBy7{;jixre|>NG>-)lAw}ijGKm2vG zzYd$fEV%I{Ut`J351ya+nzP4_U2)~HAaOYV@@tMA`*%w}sOtY(`5&D4k0Ts4cXT}1 zWkQq}n7HOxcn^HgMNW9994P;qy*|gg<8QeBbvfbvaZb()?~rqj-XiCO_sGXm4^^ff zsyd|Oz|EJRkk!|XoU31&^Rk!cT$7XYim%Jz&1-XV!aMGqoNst-j;J}`nDb3Hg!*3p zhBv$+=Z!g`nan1CdCs8&vI=@d&Wql!=O`%aj{t`eGRhmRjF;S`9>aC$BL;fu%luK< z%ff#zKMWGSl1Ok+1NY=&V-BAVkzOO9Gryo|Jk2I zCc}VGB{L@{!tshLGtZ7+<-yf24Sx>4GKbTz41Z-t?l3}@>tBB2niD62+^;zCDjVXz z{dx7#!`Ga!-5fr7t;4a@m(HcW{B)4yfQ}a&a>U9}NB{QxX!COBl}Bf<4Rjnk*ya9> zP#43HhcVBwIS0?Z^vajL?By?Kl<>Eb}tt)t9~I zvdhAzecff(AKY;C*XukGA^c&j7ZGuAGW>PONapF$jCy+H&uan?VP6YhHV(gLWNtp- z(PKk*#o>#!mtBR+Ycl&AUms1*Q5T{4m%QZ4t6p;O=kSZvfA8;1gpfIFOFbH%L&b8; z_KQAH3){t8zx{1F2cM}ObP+}~^!UOTyaT;+viF9t=hzr>-gslqn{sl#`OV=a-CJ@( zs8EA#;@D+&-OG=ixFT$7S6+41RmZOOAk4!t8{4sCue>%~IC9bJzVZ5FnU}0@dQ+(3 zYyKQ;j|cnK*IYPYG{-jP3kF|?KmX>3(8P;ec;%HRPF!{3#MMV94_ROc2}2+n^xs-l z?HY|0wxUS}G#qOXh3M|qn`dAU0wZ1b)~#Q+VVxZt*R`x$C)zhye3LxbsXKBA)~);K z$JVWT^wCEhLagD#od194PtxEh*&+h81owhm(ep?1h+NVznZ|3*+^UM}juj8BSTrc@ zy|-IC1xS@N%GC|EG)6($x~&oK_5oMNMg_PVAAPLxLk9_iz#L0g&m;2PG4F{ABaTX%ZBlK}~Zp~ULA;-G)xpf;j z*5x*A(Ep9OmQ9<;->jQkH~3l^n*J3k+Iuzq8P3bg~q^?r{GggfG2 zoo!h*Z@T6FA^b@8`1GeGliA+V86YO8pX6AMYZz<%tSYsC z9GaViMANFKrqxYr+<$3mTDz`E)?rOk)qJK*ah`lqUc)^e5_xP<^}s4|$b&Pz#Pg|X zPiqc`&CrIy4QiBDrNI*y57ld+Q;S17Qb`Lh^21$c-LUaU<9A+u@g(VdEvV{)8KBY0 zT50SI?t}Y+_2|3E@dIB9>yLcI@hL_dd%f_G*|r1G;Se&HNtbGop*M1TfEkp{M}uJ$ zpSm<&3dd$XXUK3M77XxW&38G3%(#%zkBg+sHCSc%0zBiY!;OxY^Ec#$Qw@aLTX((k z3Wdys5E3XK2l&FSw>-r)7pVE(Gq_g^Qie%Nzd;VT8L-RT9 z8MdLn_jfqSl7&n&X0XVZWOCgq`)$R3IOJw!5b(_V`|DIxpOL48R4#eQxMXfJD4Gu; zbN60;QlY2_N5-sZw0^IL<50s2mtaM>ku<$4)`0K97RRn((L>O8;gX zA@?v2&SO@ny>% z`KaCeSQZD>qBxBm3y0JiM%keTjjFVI4G^MncdH&-Mi#L8+kb^{Lna$EB7~ZOSMW{U z)m$yNG;=)sk=2iU^rIhJ{pf1%i;M~vM2XvSp@&UW{9}E+eB`?xj)P;ce8uwR#>(aE z)-PYaVFSaH<@CeLmv3IaW$V`E%eN_G`|{-vEXR-6@8w{(*&yJro6Bw1KUdFCI=BZm zguKfiK|q-j8+bH^M_r)TiW2%`>y62xHLH^DacQo12M8K2P_Lw6)v9$d46*)R4ujA@ zK!=bHU>cS;G^}WV8Om7Gu(qLLB|i)m1{)lk8;CG8Y;S15^-`IgKFt-FprJ?fDDM4S zO9e#Gb*?dga?|G3Tehy=wtD*m+aBD$L$SJ@q=)ol^{(BkAJ!SsSPg`zoQ$99W625vJaoq; zck?0KDP+F*z4;I_W=Uh7l`CbbcdcAxR3C)^kG2=>g1}jPNDhMo<~-#!r=RHm%het&*MX;Jq(G3e=I(n&7RMP?7e&YJr9TQ zP{yshE0}pW+_n6|0yQ{DsJsJRSa5z0GHHjT`d*K!t5@@cAmnfvYBKNnLS9=2hYtxQ z17XRUmjE5y#>FAHYc>z0%}3A6tEFPW&FpY*!Ob*daU9ay*&k{=u0cKwu>GbWEJ0`X z={x+s4;<9$=~4X&1edK3^H=aZ0-Ui#ahfh<;h8LbEVElxDyq(Pb^b(^Xby$$ygtn1 zC@UVCvD94n!lOzg_hM*+F>Pji6CPq<=@6O1UxYZ|B_u@EtnML^ks7%|}a3xe#tw3Ym4{=oa z7OAMIvkEbTNHuf*uZ1`m(hC_m|H1Sc2#k>$HDAop)X;!$+<>sfagt_;nIpEp4GkMx z!jH^pAr2|ur78c_|i!pm1^ z2=4bX!$%FtZKVn$V-1A@4*HonvejyRTb!+8O_`V4U=Q0eH;2G*)Ba@!wdv1h{Gud8 zG@6>$H`&UK^lrK$BQOeLz$E6fNGR|-_H8jtmOiefY_ zTh*w=cwDd1cxPiv3!}c=7LG<-XD1^27YH0`WKOhmQzJ1sfok?Sx8^WM1uPY00o5k{ zZQj(vFJCPo9MV7z>dio)x&$)U)BrFO9t*Ls^vLE?H8@d}g7X^1#0&*h0O?v^$kAjZ z^K|5fMFe1w@@?r+ys?;#%F4aq-tBNc+^y6S_ciYv7A$-C0roX30z@N9t4FBU1Wv@|d`@$CH%@*6<{OM{?y=fU<-eQM5q^1a2;N}&o z<)n$GCLI~9R=X$7^=y(q5@_H3aAT8j`G^ATk|^1~3>B-=>7nod3z~N1KJp09u&it0 zE^I-_f=D^BAx6||)`DqyTTXkpKkxEJCu9|gFVvhVT7KjD)DkALQ~kL&rz zAAj8V5QHzK26;AIn5~KvUQSVc{Vpxif~2^q{KIHgMkI~=EEU1CRlO^1spqy0+Z!ba zar&_;4b_PblS%oDI60;*gokNHmd^4o#s{_9&h`c{fv0X`D`^|+g<9AQu-$^mcsz@$ zVFuqNe(Evf;ooVHfQCdD<4_;*vC@{OWSIcz9}_+Aaq~0nnq>iUXFP@ksX&I z<{)IFY{tX6owf%jYiJ|!n_IB%n_ITGJYZzE?YJef_ z+BM9%Z`in|WfLn|w{Dw1q}90Fq8&Dh(`XojX9qKPnx`Ww>>Vouc1Cd=i`l3wTcRM| z=?oPg{!nGU;IO9Ogv#YDt0YFrwvF4>ayuVNe6h*; zge~)eb(!aNeUWq_xjjC~^$5RT=RC^!Jm+c7r%0zsCn?j$`7CLIG?m;Qe2MfjzsE_3 zx!=n9NOHSh<&T1+@?RwhHaPV0d|x{WoXXTy)|u-v_xi!L49x=-Xj0w4?j`l`7CzqH zo${dPP0EQb%JowB0I3i92M&^eHvo)rcu-bddpN_hac~$oM0$k;o&(@GK;8-J9stjQ z*QmdXMA=Djo`k+W>gjold+>KaycR8coOgY|>JyL7aqi?f>g}ccWT0gN`UlD@X!y^Q z)OP;dBsfii-xPS1!M6;Y{wt(Q;7ER%_UIquS?Vv-UIXx965gFCaLu`_=fJ-V{$=nl zgL@g=%ivfB$1*q$P;LPJOz~_FZQBFv9`NZo17Gtb(R>29wBGY$Va(D_&4UF{7v#)4{&=$2l6n9Yz!y?zYkpc&ILL}zu*I}EZpJIl;jLt%Ct=% z@;kuqDbfJHd*Q<%Wy;8Gk7SN|#!3C)U^sWI=lutip*^SI&je)$f!l|y_Cfz3G);ih zIPKK~?o;rh7ykASk@l0P_5`OX%J;+L-d4))B?&L;n0kZX@MdayKlHwn(mO!gl+mR= z;SA3wp?w?}Q{?vnw+|S7@VXD(8%Kr*kcV;jG6i4zsJ~A#ikwd%TPJ|u2R?l-k*I&L zgR1KOls}hv??JQ+Pm}iydAt&;?rrcm#l2mPb#>eL{TOGJ+eP{vuAk#tht6H$n#WRD zTlu|<^cd+`$~;ecf%FHYmnr`h&Vr|B5_ZFoI%RJThJ3E~k&w#*^!BuS+ji4FMflta zJ)O|e3Ew;6e<$tH*+HU>I%(5Rp6i6aoxshbA9>m~53lm@AP-Nw$AODX=HW*-eCvj{ zd336qcJH8#iong&)_G(okDPSyOb5?*z{?I`bpWSBaB05|^uL4l=;#4oaA^gPR`6*B zj{@ybpgl@Fp9l9mv=o6^0x#JJ*`ES3U)nzauP>#v7r{SIDjf!{&eT~z4!Yn;9=h^8 zUxNO^xbvle{1>qwMerzsV-cLXp`#m`^2kRX-10nMgq9+@P!?U_R|HNg&$V)|m1pwE zO#UqS$XN-Q6TSs(T#xFVdJi1WCEjkKUg#`9L!SFZp zEvT)4(M^5bd%y5;-7nA{-2)`b6o8S}nKtiM;<}r5?FN@_+Psr{W%yk{c1om9@a+_D zCP>I&2XuD7`6Y1veu{G*dr;^O_`=^V;1=LR9=yAN-737{cUPV>?IfGr3hcc2CA@eh zkKPw3BRMR*C>@)mj#DUH)b&$bPtumpQSWz2$GEWy=RmsN!g(oOeu8`Rb@?gsQeB=M z$|ti!t$V2R%ORiZaxyzwNM=X89cG7%$?R|^X)kFXsYL1`?I#@|b(4BXy`(;#dz0tS za=wzx(vQzpcz*Os)5{%i0lS}T^7ahghNeQO)A%<#BzUiq4w8AJ*5s`<42-_5Yabf5P=wx&EhI^FF&T ze2r_~W0%a19Z6=7oCEf;e+;}QK}5VE@4VwQ_DV9_3S8{L9Bn#Vf!@+c!#9portnHK zw-;Q7-)Q*839d&DQa`-g)BnE!s~BJjj@svwwA;T4d7xeQb^d&Z^eOW4q(35ko1`|q z$$6a&lz^mai+^1ZH=SQe#3_8Z3X9OJ|gO)My9Ru$%(FUK#u%#o^JqA5vdIns_ zpl=MCMzL!Zo~=O7DD{qF3)Ds<*oq3aYZTj!p4_fLo7!q*)c|RilU7!pw zM`@#B+OLr8&?7U z5qM>7j0}!aUc9X!Lz25u@%`c-0{>JEe95VmgI6Q)XcYQKB-3g?Xc>lI!`RMY_&-dU zVd@&@nPGT3LjDMHI0Ao0^qlx5SwkL1)Lv>Q;g0M`en;WmD7aN<_ffTr^o91W0Amb3 zk5W#&9)X_~;mfmQ$o%Mqx50be>KeYly9&G<6P@t40$yr&lObfst+Dgui4?vMHKGhj>(hcJWa5K)f2Jo{_WbKa;C- zn=m|0{_q~^{c@-`$TIqDatSX@m#IfINlq)!BfXMth|i;H7xGkB1)ZtTrjn&GwfX5k z0ru4z*wS@9FI|%!iZ4e05#dI@@P`h`QAM(?Jn#`Oqz`5@p+&k|5gfIj>W7w!^b|gf zNgnpEhnT0=Mt+X|ehRJ;Evl{`y;Lj91}H(w6!txZMCHtg{`HLzrle|YVxI)8^c zTh_<6tZirUD)4a8wjJZyVtCfe{b2fEXue3oR{YiUx8lpcg|=_j(uR%r!S=!MSGJTk z{=xUTyXiv@Zb;kpn75DFN^IDj`(ShwJM+WqbH(4k1AZ@Tbo?-7b!GVdHS*Tc2Oc9W zqd$0?)QFAyebTo`Pon4NNZ%$sjh?(sT16Y>Nz7wI?=m_;Vth@L1*f;fOvh#nTe*NR{>7A6u58uZ--qz34?~E+b zN2xDZ+7E!9Mf-j6=o(W={vSv_ z$WwVe=lJ)~M=Hi)<5*}Y(C-!Khg$J>;#l3ry!2rjZ);qxalFR!Mfz`z%?tQBC15DF zQQUhS`FkqV!!`Z1#>IJLB~L$6z(y(dqu7MvKdpNmj}ktC#f3V1MjGmPj(+ogVnLnw z7cr({aTjc_#dDBH#cwQ@gFn|nImLh!?@@gnfCI1xUZVo4TX z!auOs5-_{*gA}jOcwO<7o_&v@Ye!PL6`S-}k<(Yehp<=#yw!NWfbUr5*)DjY7=U6x z8vl3D*K54r#aS_d0z6ZU*2ew7EMxZ+&rw{!;s89SI6;Z>CA9~Bj^ZYYhbVT@0iR3A znBpo0a8`V%fN!aog~e9DrIqVEFpKy)1<^}e=Bc|I8OX!O;;DZGZ57^?E7{@tbfAg8 zU$L(e&$Uucu`k743ivZ6c&6BuVlf49D3Vt|e>+qT|E)kFz#7AO7+q1imMgW ze$b+rn0TW&l;TnM6mz1UBED@A`6_~65ndOeu?Sy_;8Q$v7J9yh!UTHGIz2VzkW;dqdB%G-UF zgQh(Gqhe&DRWU}zG!@5;aYV%k6(3wQ28e7c{wIA>tWEJR#j2#Ak^#k%6th!1C@z?% zT;Uk!GbCtJj8t(c#ot=@|2TcbsTAK<+Nc%yt+bC~V2X(qfT1{9LAX;_0X`HcQxHvq zBzRm<+aDr9QvuovCrCkN%9K^CUUr~BTX#Tz2XH0B;#&vzJSHm}_0PcPh3%1lim53+ zEB!5kM^QY1H$`YILX+Z@ioID3Zjv)~7pc35E*GJ%6M8zS-`WfqCF(ATSI}d63~x%% zR8qTAw$vNii#kilP)T+U`%pqBOVC$>KE-B@*VJ1=ze?0wqF%)?6^|~#XT=#6&nqDx zC3szu&LEp5a4NxrE@Y?+T)L2V#RR*+sS8=?f*)PL?*gapwm0C#cT!$h+>-JZmxLGH z(9li!Zg|qoGu?WIw&{kBZqaj;cBGBE;bAxQbfXX5=xR4Kbwg7(G<8E$H*MEVTXY{G z@k}=|)eT=;;a4}bbwgYCDbi^Yv~{B!-4{sE*bR-{(AW))-P6vyZs_Yl2792f2N*rj z*8_b$;H%hk54e_f4|;9R4w}l8DN{!Cc4g@3DEtR#|Na9m2M*U_(dc7=^0MQy7iw48 zj52hWp}7q0nrG4ckLLDlUJ&{<2c|hOn=7PU%kaVG&ESL0g+X&V2S%Hgp}9&%U`a}!V`FS|N1IEB>2P6r+oOq>TlpTZTSBVot3?L z;h`uKe-ZuttIh7fOr*>!Sc3njlgu{}0`Cs$g zrJCn{@cueB0h@GZA02(d_Wf}EbMa|4W6|#fda)buu??dhEE zDeNb7YM%5j$4CD)=>7J?QO61$j_(h~XQy51qYL;Ye>Fb3+Or4xWsi{rh+5GY`^tJ%|l{j`TeC=l6H<{dHvG6zL}EJ^1wwFpoXr z@rqNNgCCFYviLl7um$)fcODmTpSIUL`n~)9qVr!v=emz(_1kzk}!Rb3VIrz~`=s>HAzZbI_XG);#y{vHt;F zp2*5AsL2&%DL#U{+&#xNcfbCppow{J(&#wwpL;CJd*TqY#1>}rz|nlV=J7Sp&)mnnxqP2< zA07WQV4SLfF?xpbmz!SB7ryX&NnOtiiOI{46A$}trd-p@jQi&Hf~(dEO!e>M{(~Q{ z;__~LQunXOdn%I$F04(c^!5xSb?*)(b?Zlyx-X1T$IGHgbN@$ZPoLx8iYJ$op<4Pqf?%&VqMn~i-XyY2a672tu@{fn|vOABX7nexyk)B1aj*;FcwZQi$NY9cAq=TeOr1wd6 z;Pw>hdD2%&-y=N&%rBA@TmMpkf2Xx3%K?L~=I>XRrN5*Pt-IpE1N6t!0Y}H9R-e(^ zyXx=n0^^0po$tujVTV&GxjwsoA@}2|?`6s!31!9e=lNYBy+cx8FvD5pnn}8^Cf!A% z8S2h~=T+{{?+e~1Pv!L-v3Gnrn|~%Ip!s2~b+9!J^vzn+pm}*)Pw|@JX>+l0u3z(_ zwoZW9f!2c9x)921Zc^(vw0^|ajt~d3^&`YmkSm{CCtjd+2U-WBxqPh&(OL_ezvlNa zaRsdf(0q}tyWl)J{6E2uU7yUztglze_V(-t zX>P{mu;AZa*R{}Q**SJww}Oml&P(f8hWFe8pLIW)(neh8-qtfY4{VJDZLKvhm5ZY1 zui+CP4Dg)3k++C>u4cGyEDN-6VaPy1Pk_Q}*+u0_h^pmN={a#cbQ#+{@ZEt*d^AysBO6qn-L_ zd#$n8dU)+EP>eI~RZu)rYvHx#-qy2ICc7`e_GO@Rwod~%Q|PDmYiM1$)|1=b3}nal zWt`_sTlB&=ti5TJNvD3VnRBxUTM}7-Rm?XR`d9gpM+Bw1+}_DQx{eIy8t3X@5W; zyc$HGwa#AgtU=0%ZtZPQjCqjfwO^zxIPgz<0|xhzO603Nc=REwedP7gE7 zeJg`JI|!}XH_-#nv`0mANdvEwz}@zpz?VT}aIhB`!bP}IxAxZbpfA>LYBPQh!skiw zPz>DmR#0B??!lq|9NM4#tkX`}SIHMl=u;egQ0>ok@5_$cpxOgn?L&XHAIJ9IppU(; zQ5HSZULEbxvHd#es`fkBejRA-wY5xdQQtF9WO+SBJB)|*OeRa8Y_jnQ5W+p__Tariw> zJB`y`ebiqT-#Pbl?uY07@LKzcw4cZJ_0VoMFF3~G^uecb@a%(cmXKYfV(5O8^(Z*<>j`qBa zpCYNu8PZu2&y1h%fCr6#J<71{kGa6}&^)g8MZdJ4W*oZu#1pkC`ZkVkX+PJvXn#|@ z{1?Dk_TyPzO4qgDNA^N{YvLXt?Qfbu_GA|(plyP36Ufj6eAT|83Fw(X7HyvpywF~u zKI)Y1vAspe)C97jJz^8ks(oS;@OJ`UO~CgF+HV3}C!k@1cAB7_CgAx5ZFM5-51XK^ zY%d*fC(ykK+Q#fOyqTbFCZKJCHkpvVK&x!_1Z^`VxT;rmqPr8Kf%cG%o}%2u_;TWG z&jmhkP5Vq>YbI!yo-k)UL3>Ql9Bz&5LN0ZPpN&ckrfg>9? z36Cbhg|W|V;uf|?Y7+iT!k&P@V@?QoW-NX z`ua)k&F|~akr(@VI^Jr3G4p|Q8(DXhOH2Jb z-Ndfv-&d?cF|!3RoDkcp#-9qW{2iWuJK(bm8lNRe4!_E|M0${We?aOc4UtZfE|I=R zlFwQ9)Y5YJ1o!64;Zx*AImDMn*DDuZ1&1$Z@{LB;S>GVPkjbZP`^SmXS8DUlsQlj} z|5R;0c1Y`JwT95fRp__IRHL@9c#87x)RsrDE0qt(|6V5FanZQDQu#FV0_*-p7XRVO zKOyh&OrFZ0C+}(U{!h-aZG3z%WbzFj9v8K-w#MP3r+$Js^p`Slz?uHwzV@$R=QIwD z<5G>GwN`Ls^gjc3u@*M=N^5&He%4sk_Nnw;q1@Hla;@4+6WRk?t=NUdCno-H%C7oc z4KL1nIqiSZI(Fh{zQ2KIw3o)#Gs4HwOFu(w{mIO;{+#v+d90(I`(IsfUu*71U;Zz- zSI*oc4;m}^=0|CN@_&)DcpqiVVUHZ#NB&HBu1xzLBT3HR=KLM~=9x!GPm(@Q`XVV$ z`WC5?=RQUHGO0v5MtYm{4(Z#Ze+BHDoMWBfV`J*IkKw2ObTvQl@!S{4|5C{RB4^?8 zWzK!%f0grp%ULvR`S@bA3{U0#2(qqtf~^mwy(;@gDSM8x|Kp;tw8mEZ zIV$4)8xIj%yh+*rh;!s2ZH}K}`&&9_L;BPq^K+JiGtc1HNPe_;#rCk!FDiCq`xAIh zv8u7w!@z5K+WDYslF7et=XZewZ0%>VeN6a1wr2#tKy_P;O0-ai;u6)h+Sh>l`zc)8 zYa<+kZ!>bl;SWQf;%hN3rhQ937Uzt8us9RGiS}BJ;!`M=!Cpe!w>3QYC^5n5v<}c#&drao>{d zJ1aWAisNaYmEwGglNuhSA0@uJ?q{QXjD&blT)%C5@z8zSYXu#Ov0Cg9`=XfR@T-9r z$eQAhw)YI%HnR600k;s~hWdkzihI%&yBa}0M!!>(5H%QGqlG& zmljtA@8J_~0Qc=GJr+Cs59Doq#%V8MCuFzEoF_@|k-kl8L|0akzC=1l+WIs252S;n zW$^Orq<=$d0rq30r%9Jc>wx8FWxJs#@VRY$+Y?^g1b=5BW_*eeMw`%eSx)@h5W*E>|;nX-Ww(r*5pFAnQqvdbb zz@lvVto)A0YVzZI8f;9DyvK39-j~r|k>BxjO?kaLqW=x~9bc)*kK_M-Y+64yQn9g~ z>G#2{SW|9bT0Y3Bnmk)ihzyob{0MQvZ-#qZPl<<|Y4b92Z)*+De}yvNPRscFT)doO ze|i^);$s#&!#?)Cafb4ZKcD5r{k_)(SjeH?ZxUlMic#sE7d>yuS9ziqHsdC}2Se|Y zDZ{HWV@!)HUj8n4bk~-JSG}}LFS6e&o>5kDFnfOtc24oI{?mV*7~yoybBa^+qYsKr z>Rl%m*TjD6ohy3hhu)XckL~LRmSPQxE%m(qHQ;==22L+_ss|la?4ci98)FXx{g)~G z)GuUtR)*#>_PU>TRV--I)-!*fa(_@$PVYaNJR$$4yCz?;qcoO8pV?ph9OKAiHDweN z8K08x^G6|n745u>B;9?I^B<7%q+_IM(tD)ulOBhzBIz9IebN&={{pE02cE zK36&CHHO7!X$G##j$%T6r{(KB`>f|b%~|z6&so0C3!JOv2YclAe61#L>ZE+2QcYeu zo~FO+J^BsmJy?4mdC_}mES86yD<(G(?7m`PeLSaF-(YVeWA3*z&w77naXj&jwzOCt ze)xFl=PCRBOj+R2Ure?Z$$#t@oetVwbq^7Dpbm>;oO51ST!Vg~7vDnhkty143VS?& zyxDtu@DBz;T%?!!dTCF!T@P?3p~2qcLjR!Ho5kb6P4RJy&!IL5`1IKY7$+T1RslIU3MJx&X`H?vG>N%&rYI`_C6WpQ}N_Ubg2)WngoBv z%`7$soN?;4cp1-Id=0xZDcpb`V`o$JZ+-Ayv9}3modW+U=$pc>Oo7`JI8Mzz)Drz?)G z*jgWQI0e2_T-$sF_cT8-mFGVAl(BCU;HdeN@yTC>rf>dIl&ko@E4`OU^8iy8w*`0P zsF!xJxE=YEk{j?;41NClt`s}dJFgT^x7Zo&+Y9|3L+hr#pLXF zGtIXshNiifN%X|#TgbQf5QTSvX+CC3JcE~gC;l67UiSHvN5S8>I4JU?Sm+cu&X2!q z{>tK`l52Qi@loLl?-ZNX`?M7M)*P7L1*KSZj7MwlfZh|;TXC5f;J(e1L9=4nitWXD zH0?pqe1>AI6UVs+%sa&zr+_Vv<1CtHXEPN#JCUGlmWn_Mh*uK5|o z;Wdw^_f~2COmj(!-z)xWFmeZW4=BhMrG0;n*4a=07!p03qzJ#;nb+6Mr zpteIcHQyKKSTyIPdDMR7N^@>L|271j-M^aEw@JyC>Y@AqvZy&f*2dkQ#3oF@JKJ9Z z&omdpx}4hswCN;eC&PGGb6sU%E)*>a?=l;{lMsN`|rX1YrmGoeW0vy(G$3 zIzmD=G*@EtDDc_lNWfR~t(s@i9E|2-dXSaDc5kmKWNM21sl%j$BxGWW_MW2sr;xEJ zlE}%PP)GL!w=1|*?cCv(wwK};UN8Is0o?}a*c@#qtO%g1U@aTX5p?cQe`rMlx-?MdqX3h6QOo~2xNto9t&Re#X; zLu#y6B!3nf{$tLyFls~2kPK|b$i-?HuL1eU$y4c#gDdO7w{Yi!kB3mZMrJ`L@g)?QZIlRTg} z@cT98T8qAiT6?0k&rom4{8zzRdh(jjLL|nB`F^ythL8o^4$^`lG#KddHmY znMA&|uhI6 z>3LF-bd|IUc+Zduq;sSh(oNDT;5|apIO_2LTk_$w7bX=$E@twm8Ze+iCA%RU5(|-?#e|^N>$IUzInPP3@sA z&{x{~WRG#iPS}20`fTkb*ZxAidsZ~3Yk9C6de4F0MXUE%T8xc$)qZsOPTGH>cO%&Q z5Rm=&js)$m)q4``eYVi5Ju2l3e+XVj0$$KK>@@2=n(1C>e3^8=IP$3dQ+h{&?TMyd zy%)juNaF`|V?(v~y)@+XmBee>QTuaC;9cT=2|q=9?(IFH*edNwwY|d7s`o1}uYQ|- z5VyPGhxWZ|pY`4LDeJuvt<#5(4ZL9Y;bc#RtMDl%0T-&~NuH)Wy zy@x@2-1F_eZ`j_$Af1Fy+7EAgzR?}+Ew*=kfL{sRO7Jqf$6foEi*bK3@a(-4z|ea_ z;`=!DZVByY>$Z1Qau3_w0iW$13E*e%BM@%LQ{iZidFqzGozfE4WXHW!ddA+7O8aVG zU{6YhE&r z%;&{haLB{gJow~k%RI7d?}9)#@+aTn`N`VnX*Z1_%VWZG1#$KF!+m4|xwHM;=!Csn zRqaTd#CMr$pQ+vlqW$Og9sumSy$e8XgN(Nh`a4kV9RiX?^iJ&1FBM*O+dGFjBk%s+0Ow=6&wT9j;JWHdX}fj>-GiU@z7^Wv-b3*^yoL_#`?U89 zpo7}u-hm9ocldTAKYIT|foJW#HRey!KInwrKcn}!Xm5N0ACmn~_U@Mgw!K4kxN|>v zT&m(>^ZW9>pZ;CP?OXJ#>YFuB@_l|kj*XY^{bkMt(p6F(JNhZ?NQLwSdbbMsd5`og zZE=KjmDETbr$|o%_wywA-d_xL>;nENerulO5@+#3e)JIji0a--+C|D!|2rhyfx2%} zF6(>$5!X-uEPIN6_Luayj`~L))6ZPpe_@yDpZZupIk`0ZhxlXnAAa~Z?BC0ihyJg7 zDfQvY)b-Xfr-p-BZq^q20bb3=o$tCpboNsR=@%gQvO@ZGpX!HlKB>>_eCD(Ejh&zP z$)9@aZ+z~jpZ=Mj{kdoU=Fk7av%mODzx?@M`PE;0?hAkG*T481zxi9w|MuVhoiF|F z?;V=V!k=GThPLprqs=iZAP_G(+gB^9xP&_qC0+j5sXwpQ7VcNS&5?eOBLMOO@q;}P z4xj&d(n&k?zgK}R4Q1))7iG<%|Ko=M6n-CiZz;He4|Pkm=b?YM)RXBG5kxpI_Nk$i zYohwl+jj$b==*mrQKv7IRNFdjoQO$HbqnP0(7(Pj^hJRmI_eM2m(eJgA66sk>S}eO z&q)?L4qp_y=TD`ip9#{}6vJn;4c?Lvs-H1h zSg&%@?+z^qVe#h{$z24(0z+D_FQp+j;qiF}6$t4QnXfF~$4^11MJ@eQnSHZVUkjUW z^=j=^7Kdo#_`2DB90%|E;T!6hcNo&Ng|(}FTaE&JVK*N7%v$(u-)uAp^C;E*v^ldM z>zen`MTfHxhX6l4rA-mgs4{RV2znxY{2qQRhQmF7*4y9%fl70H_Lr}@=@UQt$WJ(y z>qAHWQ8#_=M@^sGWcU0-Km6p&Zj0lPMczN&sjp9lZ!2bR@>>w3n0KLl-nT9@K;maF zGg%8hGgfnN;l*N9)RwBY=KOZ_a?Z*4aWB3V-Mma6isegStCECIZY9aOB!P!X(vl>b zHYdrJ@HMap9!!!QJCo!g<3p@8BZx8U?&o`g1{HR{L@#t6}rb4yS&|M3NCqJIL!Za7M3rx z@0NtdyYsOWgnRGwmw-_HZs(>=^X&h}_2J5lL%jrq@F6vQWOPxN2v>+hF6)y(xZfkT zeE9O-y+N?XTB0U{P_@-TGX%bBEG4`4wZIisAZB*$d$AcD%+REdE^Sk)VD$OcDAj3h zB+@ewlzAU!P79_#9EX&Q524>c5SuuflIBET$GfuxF1+gya0l#Ls`?=Ns?`k*K0=d| z(9+PbN$1TCTN<`DG;HJN_6PX$V8f1`4G-;VXxJ?(pxxUx;VX*%J!AWlE2ILdzJ7g5 zv;Ek>x6RX|MVyp&>-(YNtSe@2&DtE_;Il8u$-T%iP{=))%Sl9YyK}jRbGeV8tB;tz z20k=4H8(acTi!??)yUyrHRJ~lO5^56)J(Y?+aG9ruyF@Jc0Rm;r{}fn__@AeLj%AYHgB=7#akB>K1^-=(IFZ00?|t z-XW~7hxaX;;scwv@M~-Rw(a!~)IZ429Xkz&c>BK2rmyfVKya->9z@4-F~YErK-8P# zu&LgSPOOCbcld80089=@vwI%M1P5Ok)W;RqSc~%q`OvYBgqZL-`%Ssc%HWfOg1`~G z4D)7k;akr5F!K)ocBA?N1IFF;nGdPD18J?nC&0Zu>iv`7YwE34z&bR{Mzt)2i4LbC zLADy3^hZZC(z&8>WuuE{;~LLxY+M_DtkZdYV z*$Z)$hK7g8k_G4V2+1IrW}#ZSW%jAY)#kauuv~5DBGWsJ4{Ak9vKyv)*OX+t3sX zDAEq&WMf0pppVctG}tHX`BeRi2K2jOO@kCXwFKO^W9znt?F|ilQIo5k^5tNIIS^`P zSt*?nyT-M&yR~{FhDyg~{n^sEwb3k=x^%9kn?P_&y`rH(_DMq9(6G+z5E5ag8e5IA z=7`ZXB%-0=VKP1d) z5&IVxkLB^F+IQ9J#x+vzbu@3|hHz(NV`GbHH&g~zh+uQ9W%L(6QqvPP&NT~(NDS*R zTEk*y%%y#e)^5-LW5!Nx;kwC3?rV5x-*iQ%!ec(j$F%Ch-S+A3a6|GS`%wEKYxlw| znj&)43C%y$t(oy~2;xNTP#ft$9%~-+Z$GO~RgWlbwL=hiIvhf!>IKsOghRs;b*N@F z_-)lo={bxKP-MN1D1(`C@T*_`om(F^=n4bIp|9TRP>&=C(G!!G)yzkqljZ!tCDS*b z*CamNiyqkeWJ9u%VIPN${F1GPgAmZb8&k=Lb?vLdUJG@kmQrHuwp%|;FtL{b2mMgr z$w?iDE;*t`_?QP+v0?po_`AN!Nfb0PG3B5*rOw=2Gc=&tP2KUssZf{W@~93Ro~JtH zN>x)U7wdD@fm?d8Sxx4C9#RsWoq{_}_vh)kNPURAjbPvldCMI(o&h7@2D2ke1$hvZv zKSu;geWpw+hstuqFK6qw%p6wEN6kU1p@KX94R-lbsmWA-g>&r@I6OJ)^3?BgJSZGE zq*p$ompoYg7+m$&!jm4`9Wm?W^q8D5s;{qqDD`11sa8a?d z^*BO~L(uN%m^%B+pc!cQPlZ!@7-Ix#qgpexggsAQkW6=xgLRQwOQpqJ9nN4m&DIub zFbI&8=`=A>l6!shTjq$KKfvdE;<=pq?A$JfY#a|8AIxS6JkR(V7qQSIVQRSs^%21aj>wt^O&@Jjk zlx%w>{0UNSLPD05*2a;#ZLX5*Zi<6dZ^3C0kdDhfP}cofw-9=E!667yiba5VfmzE| zeL^d3f+F5i|L|CmFhk&`*O zf)GU@G`y;{t}^W>$uLbe%WGK4ZrhJ&X?0P3gM zohK}KK)(@2C{VC$c{5Vj+}td~zzN*>+uYK;X|vAF%`mRHdHVzU`QVP`=AF$CH8=0t z-RyDuR4cNPXj6l#5K^r>fYygPiKh4&iBcK4WztL+DoI2f+lZl=@w&>I#V|fZedaOi z@2X89$J4af#<~&!Ng)Rfp_7gv4>Aa*kjj%Bh=Y zGEE{E*z8{FLdc2GuqzI{qeQ98!}(#vx}32pXE{I~&q6ZvyJ16gd^CE@jva-AH3iL3 zLq_cKrARVn9?3EaY=kC(;@E9en1zWZA~u7&L0-%ZqwA&HZw>quMoIk#K%kxhh3LPB zhjlWKs(Ni5f}#=V%H}O<3qMT72`QO@G_M^u7$H!vr7kaL@gwzK^b}kX5827dNABVj zI57HO#<<@`{>Ds2OB*x>S7uM{4hVlgLxP#GBnmC z@T)_?-{65T@(*J)fp7?T5^+%AAwnB3`8Y?7tXP+hNQKFztey2;ZXh&5j7RXELjR%h zrW>4fRjCd|5$K zJtXU<(Jg;t9oEH$5r&yZ85^^3xI`E&YYTaE3yv@bRel~eEF(xW=2X6xRo=Z3^J+lx!p*Or5t!uWp#YjC#~O+*%cM06?#nL3Rqwu z41zMFmRP^(@or^vzyuCKuyMbMqe7(64fC8W)v!?v0LeVy5nHsBa4FuYL$Edv90=Or zO(9Ed<}G&j>ViGyu2EXV!TRpl`9}a5PfjBlVTrTdm?Z$`LbsJ3oBUN{0r`@gJZ5Yxfr{wk`^aEN^wAv$lLk`+S?tgr>UGs?SfA^b z-R3@`odVg1>UZr1f(~^$blOq}8*&CHW|)Et71Y5x40S-ktMS%UkQ8gIv7OvuVzm5{ zi%*=^th9~xZEA~|o2?C)OR_bo#jKX7z|0yV=^tmKT}r@0A7m}7OzEe|sYSp8gr?@E zWlbE*S2UTi*6(#qP3t!_ZRA%AX_KR{tGZ(=C(0yJZN{Z3=GTR_Zn9$AsxXz}Pp2wxaxpe8CZraBH)LWt5sV?K-JQAsmivHv5u7UPql zT0e#UCh*hPA`HBz%a$~cRc*l$T!?Vn99;h$8kCFBB+52or1j<~8U*!vX;duj>w={; z6JdcVAL>w6f@xkYC$n-g*6RI3$1mct@kK5}_a7z(W#HsVDQch7OpudaI^Fj}QBrZw0Be+h}LYfYY6GNIA+OjpwR@WK^8`(%4EwUIoepT)Lg^&Kioa=+qO$oL6KG97v zD?v+SjEg<%O2I%yv6S?1K13e4=acq<>WE`cF3RORaoE5q&g__W2ORu%^>1(`$k0I6 ze9|;#DqS`4aQ}faQY}uY0~NG0BZvkW{##FMJ_R}IJj4eMtP+1E4H_PJgxQ13F)-y$ zsYVDkK#&8Vl?bUnY3glmnCdcn8~k87AYkn7mqvLiphIC^dOg>y$VmB7ej8H}^usyn zb_=51p9pq~vTh%$j-0~(Hi2Q&2r-g@a~vrOG$Gtbwod}9HLGlly>9I2qU;95QZ~9? zE7!b1cjeR&I)uKAe0t!L1?v{gTh%j6ZMF2N=J1vc14r(-U(OG8s+??ufz61mNmHUv zECk^&h0>1|`eO%^@2l-cn0#N`=t>qQ=Ohn6U_DLtu!Vcf<&a0Mn$59e?K+n4B^z13 zXUo90khwJx1kf_8VAfu}ulaLQtyDj)1I`9!C}T%8X71M}7=b6QWtLwR5;x$MY5qT^ zMy<(Vcm)2%j>nqT?#4f~k^Ae)aATc9AO|3-y;`+uPE7{C9>vH2*>Oj1$JoDl3Dg=r)Hdj5`*tDr$`lHUp9x zsSrQN#3(gEs5pYf&vnvaLo^@q(*21F>v3#3iYtN^rMQ;pdKn86I80A8Z_VNGha^6ruHFY zD7}dOM$=_E=2lqPt;UCm+L=C8@Z-)N#ig>)-XPf@dstwOlMf6q!|sH z+04w=Zu0np^%hYj1N_X1%B>HRM4C?))Y4etGh&(2;iqY-Ir~-5+MNOOzueZSY?yuU zMhJ>g3vNM#$W=8KO10ZFsyZGeJD3Rf0)kq(W1?Y)AFf%k4K-AZvP6S=4SUwDWNj~az1bx&T0Tmc<6z>s~2>fn8b-OK!eGWUUE zo=JpXm|s<;!uhUSLL@jLx-{SX5)GaThkwOV;6!U0hTexW->wsprWXf6RC(&<=s~-no?vv zF+wY`chyr7M@yX4mD%Q?8ddGo9S&7#19#3DM^0_A$@|R!zydijI7eZLM0!Nm!z9@i zjeBq;;tU*^F&DlnSlMBP086EHr9Ekf_VAp^Ns}D3Cqs1tmtyvi@ zA+(h!nm_Qz?WQJXG}j!Y6c1lZ-t0;v6{yxam>8-Ir9!XcqgIRV85J57c+6a}951U# zryq3Q_9Lu-^+B%%c{M3we28PL$YTUY82Dv|_2!d%T*`cMAIXD5a3D;%&1*=fpPL~nH9w+!9si~7b+n`y2j@Z5VC|BX2>RJS_u(q&8oM9%ZcDV^N zbQY_$Rh=|`bwVkuM##v65BNM-AMCcZVF+euwC8SNXk+;zNQKA5s&Ria``pkxN|Xy3 z$0%0jSwfBK95-@dt-t|&KE{Wm*@*ONXsLA^j0?)fA z>=xM+L}MEXv`e&M;_~G4)EsE{vdzLWP;{7#kGxh`Mbdb1WASBnPn}4XU_dKkSbi z%#68;-i-6s?Sn9o>9?6?o3_^$l-fz=dHsZ$2MfhVP8uSiVu@r>RP%9Dnsnb}EIQf< zr>s4P975@K@WfobB@k}lQ=trTt+2?-rqsMGeAo^of$>9zBB%t7;e!*qV>VZ&Q@w@w zYHcA-!is=_gW#|El)B22;a$FRP2AQy4qS>4?#P*6S#68Zyw-IIn~bK(o2(D}FJwQ` zr9o~c$-&5aK+R07n^x;`eGOcQ6G|RrrbD+~HE^0&6JQxx^|=J%EDonUUuYh}j0QnI zoAE(9>As$vP46~^svXryFs(?@LU}s`!4B^){I~suw=%ls@_VOY=omIt>uJ#g2c^GJ zzdR=l^z6dLJa(zpn_7QJld3g2tSRi5x2%RKHdqSXu=>x~b)%k$fx2IdIvXEMGu^nw zW>j_VigJoRq$I!vIx}S)_+ZVU9!JsM5JgFO68gXN+J^HQ8`wIHlnR`Xbfjf{pBdT^ z?xpV3EzY_k5^dqYZ5wk(eH1;i_CAmZHp)Pdr4B>=k4=Ke-Wv`wwWiWRHzG55z&c?& zM^z00(zFi=RHz}XrwZc$8@}4G(REbHrD0q2X;L(zZu-c?$4B$H;p8|LK})05suQWV z`K-tWGqypeRcGpt#ph*o?Y9pyOhBqJv1(gM$+Rlfy%=+iL&&@82l;Xko7GWUXi2bd zeGLA%d*d>-e)y^$I_It480i-HQ8wA<$CA#AVVXGSlanSbGT1h)>l!4YOKbA-Bvl z%T{ruF$`bGk(mz_@8!%!8Q^C%I+xQ-aXbPdT$(c@FN(wbA=w(3&t;TJkEM`d5Mpz3 z9TbFL@lYGZ-|7<8&arzICc-(X9?NR+aI>ui$#xMwl(4vFhz8jlE05r2ORAlCBiK5BBQ@9s7o;H1 z)b37|89L`qy7SR5`D+>>eXvG|O~4Ir1(h?`x;8H7-G1;tvVNGefQMYJ;>ge7nOgBn zR0I>rRjON#3ORCQV!Q+}CKRa~!=38d18W4evl@YiQqNeVbEub;c{Sg@>e{$t|r_yCsHX$f762L;QH{NG^Trce};&|CP;d*TiV4jzrjC1`w=zgR|iv$B~SF(w;j0;xY`%JfR zapWDx>*mobrf87_Uz8j64BCD@O>=0fUGp96#nnuQ<^UVl+YBHx?d-g@{g>K-sbj1D zY_mCcBi}STm}*&C_1^MAssar&kW1%<4-sUd!VWKQ80nX7^FpDe#O4k9tvmdsEk4|V zSu%}GsR(ftq}dFRnFq-;M|QyKIrdkPdwJ)=A%F{E6x|M@ZBN5cW!Yd?PAN^Hkd7Qu z_9oZ+N>r2r@1<#ZQ`3r-O--wsR{Po~{EepdO)QaW+0?X|tSwDVtcu#kukBVqj%`zu z^Fdt|-9_l6GFqkD?{eH5CxZd7zKjkmJDPX<5ZPK=TWaKe;A6(iOGInWmA^qE?Jv}C zhUctnFtG~ZSoJxv%fVJSDB2>^XN7*ZYNk}kmMM8@*A;2259(vCwrcQzo4mheVCs=yZAiq2WUdaz*yWh}NAK=p1w#`+a*`-Uw_3S^TT4Y0aHAxRkD0bd^AHAGJRUp? zgTR9lC_lm|Ek<5cvB^@6k+k}~e1zc6fb!JqczGLx>N5n6pvwVIGW3S6iUfNLQHhHmBHT9OA}!Nwi)lV;k#j zBTCrQ8YU482f;J561&|nQ|~q+mBqzTy)zYtY7kfJT3vG^D08=r3MrP35c}{8{#y6K zfLC4^mvP44U!-KyAna`lI7pu)2EkuYkkPckheFm@YI!+_x({vllQXw#HyMUQuux%t zy=||zV70cKCmbZzCet?N589AALhj$2BVk5@hk#i< zjFW<48Wr-rci|%A0s1Y|SmU#JUtx76BkNvA)*sDH>oD zIzq~m9~3w#*$=*)M(*y)kq1lUjz&+;#?5*(9*iLc!J0zmt!mwD#2Jg-`MeY#O->A!GNDvC`JI|rMr!c* zV*_8C2(gi`&7zo|+hRG4t~O%Y1h4i!azq@g1_vJghJMibqS2Yp1z0~GipZ}He26yM ztem%lHAD?azn}pXlN}G^hg}5p#1d05wXn4=XCQc=X(joi!Zj@P8=)5o zu`cCVYy{(#;@}0df7O*$y{qh3xkEp!oe(J%@Kc91g~eO^0oWRZQrCf>@fH=W ztU@4HKtzZKy+bh@1xLTwds4|&wfjzS@CQwZZpnV)pe6tE5}?!Ud03|T3x6zviVgf1$I@d00map&{G;tO-4G|juS2o9MNOFWb*k*-8B!}#S)yf7?D4;>n_KgsZb@3)xx@Cj^hxomO4wN-MrS8kg@4r*qXJ4 z7F^{I%+IR(?qAxs3YMs7K1TO{4X4us4`KdW2~)eYV#NwmxGh`wSdYHlvo?cL5`HUR z-}6})lD_M+nxuR_Pg%Ex#AjIRhDkd9y`SvRjC7mOkCtV<2BwZrCPC7_BM0$mEm~@2nD(NWcHPSKC@#KTIULhSxKA3)y)RxTg z{j*uVaWz}uS-yRB&f-e zH5+nOx($h1d30NJo=v`+&1=G`Uvd z%r^$Fl_=YFCb_o1kHq=FSn|QK{mHdn%J%}R_jq!xk2(jaZ)}+KYI5x*V7^==!HZ)D zNZrY`SHS6&Gq-7juf{gGc4S|2?N#8uN`0?_&#Q-%Ye%W?=;h=Z-$%c8GN0VwJ9pPk zg7-;ao&v@ha6H5Pv*(j*=Uz*$o$mvF4`=8+Kb2g&aEbJKa_u5@P9Gvc_Z7;$c`>>6 z)=SCt*0JPzTL)=xa=o4F_WtBL-#fhCeui@o=_2V=a(&NGa-DBLUWX^w51db~_fUp! zDqrv0pIq-J4dqEZJEZpOB%L4uZ|F#JefU+u8$0pfH6WnBX7~pmy_$2 z{mBPMjwjd0sN*Hz9HQ*Yz&+T??*cL*-hsob$2gah>qo)qwO5ks$H4FS1ZfWm*vH>Y zuJgV2>wMS!`pJRh`YGU_t|ZsbaR2nll8Z?sJ$Hwp(x zh2%y@g|vsH_U}(_yx2;5Gr6(%G>J1Z^}(@$67`L|L>eU>1@>TaV+?uR%l(6g zk{gHila7!sCpV6q;{FgxZ8MVGI9le+b4N*hNBzdcYg_|w0(wro#P6}>#`z+NybIua z;b3y(BDlT|o>##0%|n!VDY?ma_HK5)LV7E?dEiCTh2$pRvAo%PF1gv?M;azgQ1<2I z=D;bn!Pgr?8+>r=Ao+)qn+JLB@cHB>GIR6T#pLGk*OQxktNiBpo5{_Imnj2$zGr`P z3V3|W`R3VEB;cQ;{P_#qKb+irLoy@&zM9->eJ#0#jDK+KXmX2hRo*Ia{o)8|kn|F1 zigbc>ghYA1O?#`@P1;MkoZRADytnvX@GZVie5-Sq)Wh}boPo2K)OnF~3A@GbeZbsD znSI^Vr)%olcaYSV+~WIxxA?B(t$lBB?-;+Sd*54}$4G71#8V`m-wz%Kz~KP*4*-|% z*xllrpts=TExt+q!D|(sKc3tg;kl8M$*sy+(i_RGv361y=>Q2F$Ef=d@D9C7`Ek-j za_flNbuzhi6xhe1XJS}wP)CPjdT?t3+dOribSAlV0yrnA`vkC0!GrVQcV2A=zb--J z8$G|u$KVQ0;n}%-KAFq6lG?ESCDQ(6t{qyZM@XY2+HRWrZKI@0!#B>=B_CYLH+vw7uVv!{!sPGFQt{rnbwS9k{euBeV8N%!}X_K`}YE)ulx zz2-UUo8w!?A58Bfbv1nBbX~(gA0%BA4P(h{Co()u`%HsNCpaJ@vqj-WzdGDTg5Fc~ zyL_j1mT$by^3BN)-U8?80%x9m3q6|dAdx@4hqRY;u;Cl8@yyU3Qb#h&_uOX(50Lhg zUR3+N9ot}*@14&M(AN&oUk?C(fO-b5ki@Syz`Zw_-J{e^>LK-!*9U$@5^(qO{N5Ky z;JUY+ym8WTlIXzx(!bBX$n!6jxz3YRhPw8`>k|2VS8RjC7mOkCt+KrFOn{iUMF2fW?D(e`xV;j3T=qb^1&6_4V(DE6=dy7 zCy6$^g1lToC$4mn=JIA+d=lB-x9N)m5Yef(EKJFaf^PFoPBn^>A`q_d=Rr1PW;q>H3Wq}NH8NyuyK zH0cTnd(et)Xv4;|$%a6G8}zq9KmG1p8}zq9e;f3-K|g-YTpRSaL4O^0Tdr5tyGO3?5K*EOp z@epa4G(s9BRY+r`mq;&@4w4R$4wH_MUL_qRy+%4lI!?kK|M3~pS<*SudC~>aMbahG z>!i!1H%QZ@E2K9`Z`C#YNuJb7Y9|#)9i%;^7fD4@XWa#8xwl5~m$%`?zE1I;tgJOj<|3NPrMf$kaTo`LQe=$?V@8R(vY z?iuKwf$n#q`(1E;w~Ykt??U^#(Ecv8zYFc}Li@X&q`jnlq!Ou%w4ZdK?mO`06oXQ; zO|xbCgfe|VxkRFmDbxR!=_|_gzkFwVmhWlLmgx)2^hfxvvt{~^GJRQ@KBzoO8YCSi z(RcBE?%DDi$!z~V&h!b4fo98$Gs}!i%WskBOZcAmEZ_W|Ei+E-Z~M7MzH`fm6&)AG zDziQGL-@#_{gtIyUqAfkTX+ z7!M9kaqnny6FhI7WDNBR@B#KV!K5Q^}3j-k|;|#yTgHo7m-> zd<*;LA;uSz`0MnWx9F#?(PmdK_mdd&zYKo#0k^Q_Hx8d9enI@;Fma8`ufUf}$&F)Y z;L9=S--l1ln7#u%@cXazUV)E{(?<`2AF&U7np=l82A!bZBgxJ3l>EG71cIy$ZVdx( z7=N6x^sSdE-%SkRz*+dhSd9MQ#+z4?n{R>RC~eZk7(wH<@yp=D*bbiGd{JXtVhBUT z6v~W=C&#FRG0`bty#^io8IPZ5+(~@q*1&<}8ouk*%Zw@TDQ>~Xn_Y|zj+CeqoChu> z*CwIi3Um%JwjX6Ieh`?a7)PJw_c_L`J&Y?y89!>wagedvzSHn=G`V?PW1}g?-e>+F z_U<&u(j~nQ`X!hS6oDaxmp}x@mK}0P0Wua~Ue`o6`>B1euIgFu%-or|Q{5U#V{0T!SCyNjd1ow*WVL*y;Fo>7 z?783IJ0CKt`<(a9%xB5WC;!hs^V~{f_L`ISTq_lq;3J#%l1Kh8hKsFZ4Ub~CDaEvzoqhI>{g3QF z?Ty4UrEl_9Ihec^=DjaYj=T25=9JJ2KUvz+j(=aWT z`LMpE!Tww6nKs&E>a@=~An&<;?(y%vF?yq4*g)9rzZHA*qZc+Ye{?H}m#OKi2lr?%K++n#>~ zmh%MOF*BvmQ)fUw_HQMzSsH>FEI&|S5vxz_^XK^? z8J^tAE3mFfc-A}&ZBaR=pJy-~zh@us!g}s3+={*Ckb5v8d+IoHT5YiNM{dSJ=MG#6 zZnR+h9>OKWmuYkW{sDJ6GzXc}@~pl37{7gD?CzNhdd)NNm#}0GYt=EM9Ke5Im~r_o zUxb$|Jb+F1^U-lWYCI3x%dfM`Vck2Ee{ur8w+N?#KTOiYJ^pFG6zDoUq>FQNNk5yn z;74=(WX`+x(Ful_7R)bjtGrz0ub72@+wT?eR2f^;&k=j~HQ1l=$yTv_VGnO#55I|n z#?huRW-lMt`1ykQcE_A|F?%cYvCkN6jt*i!Eb9Q4cEa}OeBJoVOXgL3l$dv zG54E0hnM;BCEuir9)7uPtin-3zj+2e5{}t-?1}NKtrhZZseh~Dn#SL${-4s9_&au) zm*LD2HXDcZag-m-^5uDYT{Px4eGdPLyXO9O6VJT&IqC`kwb5?Bg0H5+3lsF>C0Axp~%jZ}XW= zV|Sb1>^-~{PUwUV!!u)b2%b7c-f{AclXHq*7R?=tUDXCBenS1#dJxyx|AgJQ&7C`* z-GwKPlD&P8AJN4s4EewuR@a5)p<5aDm-o!W#!NmZJM5w?k`<<1Heu~&p0)1^UH&c) zvyu7Z9t`!qwSJgyZSrCBPNJiv|LM}aU>(ZqPhoQUF}P{oFn7=Jfrn&!$REt_kuKtz zw%6Ec&YU?7YdU{GC+6`j{?%nnOu*jYJl7|5b}9#O-b-(f_$xnpNatJTWPASz--)Aq zV(NmtcNOczK3VM{llIaYTd%`QH?2Dd=Jb8@oHZ?uub89w+aO=u?Pf#1-CySy<7xmt zeKMyH`mt&*Jf@d^W0&pHvN^9K*Kj5$akimsRvUc(>--I$pH#?e9~Qdl1V$O;Rzk18 z55yd>zW^5vLwsj!Qyzd$_I(CZ2rzWRYisquywx+G=z<8PB6J+!VZSNZ+BV@w^(;oOJG4)L3L^Iu!cv+4iO_=7$0P0vk<(Vz^np(r@gYiAz@CoGW5C^I(u~im&W%Js9I3YsLm# zAZ#0Zu#NJh=7aQq!+g|hF4@)A?!9V*kNpcb<6zL(U#Gi0?@aUW3*&wrcHYAmpYVe{ zeln*Yr+jo?e;=?zzj^1O`H_ESd4_Z;-r|$RemFeP&js(bjooK=<&ca^Yh36yR^i!U zicN;hWi$Q8vCl6Sj4^X5Oe4ynMY*xqV=b36iVuzBQDXBJ_ zLyoMSr*wRwF9X&qdxAV^Em~#kHF2jkA)i|h=EQ18#_@f=@Qe>^n@iw!QS2UDZ^}(r zZ)>h)o_*mRv91}r+J`ZvHTFET7R=vPFB?zY<1h4l+nNA34e*@MZ7#cKto1Fj1zk^x zE9Ur#c`}@A|af)(`xPH#U&pi}2~xN3Q#ux6*(yIH%ot>+0dDd6M72 zQu1;?zmX5vH}20{Y;5g&U_O|z9?gq?*`l24L$`4_r& z8EK#17x)iMDD#6nWX+ghk99GU`J!m6O!CQjae=w$`b_@uOg{2yoy*L*kLsMqS60Pk zmvkmpi+9;(L3``s(nsc_1##lK^=F;Gb<_uwy*`D@Z}+KdNo;2xzVtr)I@}(k2X%Jy z*ZXu~{Dpq?4_Zs*i^9W4bsT*5kH5A-uulnNo|gv*Gkj7E5jy6ejxh<>565hL%&y1g zo~q+BIzCg^ng7F3BYZG+TYv6bORU{d{1e4=@iD)h;9ryC>}hk0yi#27%!+wxmwX4} zw!<2`(&gE-wOG6(CQ9@CVAXoGZ_PNcP9GSjhjLX%=2$ptUVPhIR8)0}y)-)H8mGGW~E)3Pi-vGG{k!e8oKf1j;~ z$o7zJ7Dvfsu7S7bU2TY+${Brj^Obv^e`KAR( znfA^ZyTKL$EHc0>LyuT-%9=i`uK5{jJ9)SC?SjqvdbcMN@GoFbdH(*@ny_kKrOQ-7^1LdxCX4 znB&8}<7$JeKY23_w)tegdALPaV$*28j$3p)CVw_5c6mZyHCOy#K%Lg2E&HOHm!2?| zPw43GV|u@9onadoXlxl5qvp){S$j&l5R)W$Rob$qoYDUizP!bk_pMR56GhA&t@ZJV z*k{Y0=e+KH%oTD6*B4>|`Nbf|7l!C!+&G@3!$tNop2CXuS3J{U$6fQviGG~;?wRoh z1B!SFvGM{s=G!s)kmrfx`Z(je&Vs@>c3=SyjJI~*t+Zkd-xnJl@RtMY%UxrsOP_ni zzsr1P&0Mr*US6}ttQ&J1TjVg`?bGul{VdwYbYL21b?;W^CVlGGx6ZgVnq9l^>62Jv z;%>FU5C5r~aj?m!?DyiHHSV6d8rG4|f59OW5U<>~ed# zQ^zs8nAh_;U2PfTlj5%vbJmb~eAc*L@^^#2w!|&)|LEN)f0oAT-jm;LiBVvaXvMzR8AK55$iIaxt8)g}{$vEiURck8lLaF0=vaSc@c(ht=@RdJ( zGYNT=x>zj1&6aGY;nIyoX+U+1l&L?!uRvY|vM6FkQ zw9wDr2Ke8DUhkTVhsA88+8<$;$LxdO5@0a_78AD2*E_y5e#6cqrS_*wA^*8LF2t{W zbatPwT6>~>dW6@+$8}Bd@5ko33G?1G8!wm(R%aD4>7Frs#AnQH@zfgJ#ZSA;W8%~V zKTT7{`~${ zS*Fb;)9iU@Ex6A* zyl8CU(8NQ17GoxPj5JnbUh74BhCb=~pw4yrjF*$g%z4WS3?_?5vpr=9w^0h{@6>%xeQ~IA`AJrayRW7!BlDN_kKV4&%_r8-@PMr!@UyK&HfF0Ga=;Y?hErEd#*jZm1>N1{G^V9{5`L2kWShB(i+#z@9v3R<%sf_b$`v8vriAl z=0`Y6F*eHmj$*Go_NMq~%NVupkFlY#k-FFlZkm?q|J1nYp&#!Dcv!H%4zS`lXihfw zMlp44+xO5*l2b@EhFnr$k zJe^?t1Y<6=)rVga#8_e1{EJf+<*}n&bbP>$gT^ZSKf-+Cu<<|6eG}^`dP}o3IaB=^_i<3r{7~HFKNq-xmArnJ4Y_!X+Oh zLlhH4T&Flm*LZpHTt9IXa<}oB*)^DTY1O63=UX!YrJJX zSr?1oh6a8R?B7D=uEM|Lpni<|cgMP5K8UC0B0P~at8D1smN9?CUv8@dwPkmS7chVO2RV`jyXQ~HWi7hyFKUJ`eWn{jjbs_}JU z4EG+~%2VcT+@J#APB4WuYHrxD7IowUhS`(-(h5Ic=R5M!VZ$0QErv7qU7y>JY?+U& z2T=|uJ{C93icjTu@`QD2UVm1NO><3w0TnshSox;#qclKou>SmLoULmP)cS=78+wgR zd6=+$SZ(lAfA+=()_`zgjXLw3yj{Sx3h=LR$&Y%?@dIMAC-gdHOp`6iU#AgxB3wKh zFS*OyWv`W|&86%742Llv8INMWa^L=Z)EqW<_g2}bw`wD~_f+wVDLBBMJ+2&j-Z!@m z^2f?iKJeUvIm6r(SIo`!`326B#_QT_?95ve)E5WUAy<2i`xSA>;;cF0l5I!m;KpXQVp0U=+3nth`c*ysAt=XQvKBIHIuwaY^v1#bDhupJ2$N3C%=CdvB zo`^f-nS*D;xw`NvBYso7Z=Awc;}9Dxm^0wKX+bO}XPQ>60ms%ob4p&lOE>2D(`x(S zYJ=bXS6|zp;3t(X^HwjPk)w!o6(1R2!}LC?{&T+dM9c+)DRPr#h)u*MVVIv>8lNre zpIm!>rj9=2lRd&b8{&0`-P&jKpWIIpD<@o#EDp`*3&wXHANE4>53%k6#9axeqfA$W-}bfP)j$R_NdcdB;31g9@LinM3AcqaP+XH-}}bJkvR=tE8gcX4~@%d<6xf6 z7knmOOp{eMx;mx%Bl4KHlRaNBSEg|>cH7+1G5+9hsl#{ot#^m!n0xQ@pTF;BJ-|`P zqxRq9bXjAOP3z#UIpRbt2Olf9{e1}664#eGvf{rN^#?q#fM*;YS{M0c*kQjOF;mOj zcp&DSG5$Bigg9AQZnEJ0mHXXfgKO1T&bk=n&%!0&x5lMDbHucL+OpVTd+An`!%Oms zd7bR=thhE$XLW59n=M(dcKIa@PW#^$6t$Z?zm?x$*mXs#Ug$Q z@@%p0pYQ3vJXMkR3q3G?d(cp^fH868CLg{-w+~>t57?p2XO{Wm312j>gRvaj{QDe+ zXa0=4)5a1#?ASx$isonhZ-C$LoAclTdBU81&dBz{C;eiD|*Fwdo_P$Ev{!* zVESR!*sk*!>^oZP(}8;VYVNWh=rM0y+Jh{cGoKjm$NcoZwY$~v8U0Nk8oSd~s4+eRPjAm~mS&?rZ6$W4z`dHy+IY zalyQ3FPof+N&Wh?N4MhZTzv#5x4@wDG=EsB>krwTMYx6ogg$fS1M^`&{mc&OqquUy z+PTHo_r!x@`7Bn!c~HI;CRNUss|~vTjT;;E*7xalUOc~LUdQW9 z9qaDKDm{z8%y~)PFO8ZD;3K7vUf4X&su?8-Xf5qH#Y<|D67T-0#7p%+c)#R+$<=VS?&TlO-1%6X#nP;4<}yk5SFO~38myjc(M;^Qn^TGPXT`JnPAHahxe z{cvU~!`*VlM&W?L-ZPCZ(6cz|w*JeBgcWnay1DRx9VWzJ*1c=vBfx~CGbd3z6`$U{ zm8>rb?vdw}HU6?&$ES5|$T~5u-pY@tXDV=}iacF*-YQS>cX`b)EMB;%cCrRme$#F5 z!zl8;`E5@BD~D_NNc@2VcCN3p{AEeM;G1FF9MQv{Du#&97UfqWUQjfrMER~bK}U!5 z%zx7+nc+{tEhTyu~*H};rwUZ!_4jlZX9;ZmCksT z1#;T^W@Gajwi)_r?94Cax#QG>It~W@t=Be4HBayCU0$+wFY`%zvVh|r`>aD^=xb+O zQXgO2vX&WB;i37;zBnwH$6+q9PygjpL)+gyHipF{Jf|WT5y#Yt(|zq6$F(^m$fX4N zz;J2~uJa=9T%4_35weU}PwkHj9!T01Q_a!4a~+}Lw-eSfIj!K_MVjG*@*-(VUvSOC zk~YO1X8taeUDobjfc2xy*F=X@qD6Y%d&vvajkvLC(YO=0lrx{tTEmv<=rMiG znDe*AXT#RA74yogy}xlZV=rTm6KC~p*SZ25ycT<1JKGb6%;EBuampCMwaGYR*O%tf zQ{&mWy6ehS>aKJ7?P`OOf9J*q&S+%(;2_5pr;Mi#yNc~ojn7~&VY`P7v<=h9!~D+~ z!Q6FEUnlszbqRi&ri^{KLs&B3IE$M4#BH<20`6%!q>Fk66IK%NVnUBK&7L_tGIu{7 zqzkd-GkXXaPI1mGteDIDtYzo=VI7T&{QSt;cx=x)y+9VR_#^wzdX{Z~zb=c1JLWWd z+%%xzU?hCU43En#ed?-qqG$L|vMxk*gnBLv7d7k{$8wTs*BrXXcg<+EBei^{8f_w0eb@_%?%9<%RxWIT0Q zbLcJZd3K^zZSWoc?rR%lbAN{S1o@`x3u{)FG1_mv8ltx?`Z}enyY`Abcg@}EwWh>b zK61)ej;veumuWy84C_v9bEzC`Ua$MpI$mHC&I*)C{lni4OO;Ct7k2jL`a~SOE^c!! ztjvke?WM!1HK*o6wyYIr^gN`UAv(7n#7Tb8HYZpcBOS$x;rEy~@W#`+wcB~&4137( z^H~lwFI&Uqr!p+M*h?3&OIh-MxA_3(6*t*t&v-GX!Q|y<)BjHl2H{AM_!&6K-33@pIygHLS)hc%A7X z|LZlcJvFYM*bC$Hl{0nY?g!kJSotsq+xCgps&kwO{Jm@Ph92>$xjP)OyR&@>za}l& zQ`U2q@Tc;`c%3v3rr6cqvs{>0p4fwQYP@Hjyl;QwOifJ{056zF({?unK!dpn&`~Ys4opH+3#x=Ywbk{jiz2=VW98(!EUu^LC+x)*} z{$I0hb*u^dzV9+`;+#cXyW-sP^_g*VW^C;kXO(9car&43 z;%m8r^P1Nu_$MdE-U**Q*;Q)nBt||lH=o{B@Q>w;uFw4YjIZog4xI6H&pL(oa(y8i{3;*INP>cx?| zw$5HZQy-q%^)vN9Bd@y(uARRO71zNb5AcJ4dmL~JgIw?RQ{&;8x%IYjaJ$A9HIBVh z#1PJb20X>!9A3ari(-}_2N-bpf^&Gm8M;t&5YE5_SbA`FE!_2)^J<~;AMU>5P5teU z+}PkvF$!KwaDFVj$uFJV3Sy1m99F;$4)E;Yyj2j31oLGuUk7>I(B)ZYK|+_d@!dm> z`K)oF>r63DYY@? z&lBqD^hrwwrlIdZQE#7T`^b!k7VbY#e1D(pI77kR6T$qRFJI-!-}v`$#`mSRaMpr7b-?cr zu(i-n$M(0uJ|y&Or=K107t5k&`sWnw^w;O;(cKjRk0cD(D>{=Dobd^AXkkEq2gp0X zHqQG5Im0lZ9|PX4`1Auhf8ae_jq4Nb!2JUZEA-Oy18qJakNjF#ViOockn0VDY=r9* z%=clC9pst<3^NSU<=~OE*}i|rd@P?G;A3&pT;rU3z$p$xeBC}aSU1B%@>#3GBYm*% z4KS|oknHXn2(X4=uOA*x`+m^eLk?$qLd(A&%_?Mgq%Y1&1>BhMNZ(rOdE~to``{0R z7P*Fd{pBa}w4tS+E$zUd!!SFvUfH1QKe!nO_E2G%Y%s;p;tz5xVVK;*-oxPu&WnW+ zwj9=H^Klr~-(hkLtAB+4N41Zm6PyDGBff`w2mHP;I;M>KOdsTBgPdcqriB_uwb*0q zzCxx^GK^|>Oq*kLFFp#R`XK)m@P>lDQy8PaakjK(hH>wVlVw~xu)BcU666a5u0VLK z&2e>&>+55FKdygxgaJP>^?L8|fkIa`j(@CQu=P;+12q>qK}WEcV66^M^ii%PIPVjl zs9QcZJfRPJpYX){_6=c@&R`k=?>xYKg4}Cx<|a&P57#M74lCrZ*h9^Iz2b{J^H<-e z`f9B4ZU5no4RAsO{(P9?gHzsM zLILM6%(L~p&*iG4d}^5Y-W(mzlM9v=7V2O6g^7d(zOl%T3;MXAzYFA-uM3OXS)`Xm zI$2czA{iIy)Lt_z>R;v1!El1}24PWsi{8h93ifqjiLS+o0lzEMGZYK-vEe^JV zvl*eorgfjz(XM<`=#U?GK6EA(eYCF+&ItrO!{EM&&=E(E@t2PJx4eTx7q+wu{|npx z4MPZWSOE?ewzUP94%@!pCc`${ZmV;fezw)QtqJz_jc6lj7->J?;ZNy@y-t2 zRZOg&gTYM-aP|P>3%jrKBH!-vr1v>HcxYjlPj`0xrN3Rc@TvEAwNbGud-1SGzCHcI z`v~^60sa>Dd@silDvr9ZANU9XmoDtHQ^g_o>35&3au&hi)?{Mmpn9uE1|p?)8F7tRn4$&FJGj!Sz3(tu^gZ*f@(B_5b>$y9) zYpCa(F7^F_EcTW`Y#PL&;gY;~jN#Hd;?!_SPJD|1?+BM0R4)5WFnjyl};5bt^qHWhI!;$6?&eZ?2~j{o$v4We^V z(Y-AZ_bcADm$?huxm%yLZ+cT-P7b(L^@H<_Hvi0(0q^(;wuZIf*Bd{Letc6+Ydey!U++qsI9lvj-Kw%EI< zkQa|J%FD-IeV5~i^$f0fH_AOmXL;g1^~r@re4r@yjrS&B?f-x1#s)Cuc#nR>!ci<7 z@6qu+_=K1^_OV|dU5SIEGaIpwt@_xbkIwqEbN{ZQewbkt1IPPhzE4)1jCfz)#l}&5 z8=Z@d_vyc%Pr;yKKbeN>cly^qrRZBf+56Q8|B3eY5sn)N>gW38TyJ#NJr4L@3>^FE zTWlO3@ZkY%i)rIS^*m6&*fkF7^C0=hcpD^Uy^-4zfYlJ6mXz*?g7|M8K&iBn_6 zOh)Lm#W!2t5ue7Ec3S%1dd2Dg&cAeHgJJ$Kti54)y_hz(=t^uFhsirk_F*_kwc{|| zJI@{MCE~Dt4r^9SISqJi@)ByAmRfP{jX; zBUKK0*U^4?3VjpL#!-D9rPERGkFtH`(T%Em^u&6qPh!@LQyjTpIc&d|#&dy93W^KNlQo3rYfRrf3zXX!zXInIz1-!+PVqr7Tdr^`9d;9SQ!@5#x; zdG?iii1qyMg8JszP!2QB>l+?UbOtYqb>jkA7dpy_qKyT%bjC0`0~y7`abBMm=w*Ry zV&dqmcwA67o^{0cjf-rth4xTJqef8n@si4NsI z;u5=vrQ@Q0iG`z>IWB6e=0TU(zjDrS&*D=3UcHNCYXt)m%hdpX9CL zQvF`PmoEIB@RtqR-o>SjxZ+WK9NX#@6USxGuRQdZKIE0-im{AO9apU7&d0?S@~zZ& z`0xt7z+U63cb3h0%lf&j56k4iFNiDZ7hlI!W5~UD5x+cc*7x;iMO!QNUG`o!K340q z^e*oZsqfu&uiq8lZ*MrUf?8XM`a6G*6xK18tw&RAru6uu-kKmWa4gK06n>+KOGmvqE z?&Zd#_&sjI@9a&Zcs_3Gt2n-Fl4aAgo9ftv)mJRt*_u*0%^iIe(?>j(=sZg7=(D^~ z6wk+++vu=Kjo~}=)1fOdeB9D+aeQ=MBW^ub=ypq=>KToiBXZUzZt;yRI+5>>&f&)` zzOePwo{n#9_bYU_t^RHDi0`AgK5oNU&o1S4=u1o=cl2XNKWeUIhrV$mBhFFWr8DQd z;vT)!JkTEbop+7S7DV}!xXZq~>Vt>JJu<;k1O9NRzen1` zAC8Cm=X_*5^xV;)LI&|+#AS=eK8MXld5UJ#I~6ZKUd4Nh9D{QNUIK2tZ`IaWOVj2-J82xnw>&Nsq*x!$&IHT7-YA+Z});CchxOd@4QZe<)+?qe{rZ_xk+9*iFcFxFjLQ| zqCdUb7vH8{xih)M)GMddTc43jhSR3rS8MWz|JrLCq+aidYm@jj;p!)x^5nk2bWeT= zM<$6?lUOy?T;@GEq+EA$-X`_QL&0zpE^mU{Ch=(!tET&O=R9)~t0r-3x=#l88YTJT zbYDGk*hy@f`pM9*fAa0A-!t&o3RxfNTg|t_Q4=0ua=t5xP17U& za?U2<@}(B}hsiNaCNX&$dUX%SQL=$AZu8qrqeu!>jH2wUM>CoyKK=j5FCNuzA*+)^6FbHi6m zqf3f5M>iDq7JH^qeRmgff|aIGx`wSL9Fim^O=J4*4v^%ok~Bs)?mS83^>g|Zm!>g# zc9t=XsmFahX-wbcOVhYI#HdMpn#Sup`UzW2<8(RhxyST4PS$Zc9w+y>`X1BWWAC~f zCpkBga2Jw0iqc~~@|cYt>$?~>J@%fn25CZnC)jpE-{nHn#AC&?;?^XFO_j?9lTBjU z1fNY4uQ;3^`7dv5FrnQEvdhb+34MawCb4d+cMm+#7x8Yw>rPMT+4=nRgdUz~8-AO_ zv`O5Xp6LH1eK_}@#JFja%#&oD)Q?H}n$)(lBN;}V@MIILHaRPl;J9f@|E9#Q*&=b!K#6Wlh5Z&N+nJIBZH;gWbV&8bfunC820r3LMX zNz(#d&wFmcy9=IO@UA#DEqD%}Il*X?STVWxB#AqdGt>$9HoRF<57;VA>OKrA+zb0JY)aDy-*#xIecv`7_rjQf=Gr?bz zSh2XnGcD_rI5REtt!27c_S_2Ja;H%e6Q&h)udve!8Qj^BR_O(&B;mXzXU7t3HZ5z{ z-69EpKCP0)9mi>nkF4njd^X|NCUId}!|if+S*mxXtZ8eFJnQNd_a$cr68=P5=O62A zzEMB-+&UX=(2H|g2^YS=a*}fcX@eXa`r=$z+VF18S#Ri*m@sWFZ6Kpkg=&eJqI9f@pn4H&5;>P6OnS}eEoa;$=ZpqyR$sGpC*@PrM zOxt%9b#ME8OP%7zB=-or;qxYr4moDO=b4ZiT-+}Pm2y9eHZDW?NAbWSY6iPM30>bc*8XNo=^(iz-1 z9qKzQIUV}$P~R&5@sONi)FehtM||_peBs`abf}M&>yCesV9LoEdm;?e|PPDf{Sd3BBYHYw^J6kO)0V`gN!*%_$pmXo&dj8GmQS3U#GwiQB%QPr`VoUB z=T;LeI-RKZRKHKz_Qbm<+IAi%iBS_wI=Lq%iB%K+QF0GW!d*!2)=2JHOQ-zlv_8wm zr~Cw;D4nX~%)4Ubgv*q1ITL(3;UT4Z9<1_<-S3gk*s}66&iDZSV8VGwXY^1xHc!d- z^sL(8uYB~z2K7!Vcye+!BEgi?h4*2~$sKN~-o+vYO&8?4;F}k8j?0kT)1SnzNt~L* zvkAtW;K~W6oZKan{MJE&EvGs+T#`k+n%onT@W+#QHPyc3^rTDN={mM5KUWN!p3$lJ zHHlqQ<+8iOE#b!}adCQ9_jx#$_zd|rPKh`+-^OVar{>E2#<9sT>5LDcy@glOAH@}H*BtFjWp3Gfq%A(@4?pGYnFaPLk z8x-qq?$#CzIm3E$x4i$GxI!@CjPH=e%UPV9;lsHHUM6nNFyGvRC)RUU!Br3^XMBg; zqYb!m#)HT`+Qe_j_zhXioO|dS&ms4EueZL3A0~#*aNyjl&0cc!(i6Nm_mV^YH;b#Y zm^#CTvzR=?gY!LnoqOKDM>o!qW*pZnuFm4>e2?t-V)-6kk9%t}>^F;}bDz4!&>1f= z_o*AdF}sT+_pt>GIO9d+zWNS%@gH&@&Ul~q#oHM-B8#&#u6cI1OosnvxMdbcXIzJj zZ=1!}xu1S;9df_E4wBz}rn%pPI1d@OJi~@F-a{6T=Xy_qcs&o0Wzc7XWO05p!-Df5SzyK)eGd@IyA7|&Av-==395@fDSFE0g*vH*qc}V^4%*;b{Jwz7|)#c8G>>iGc z`C_)xDOc~oJU{XjrG+ZyRpHjIv?vB{5ZpnGu}gXXHJ%P&CWVx zF?z;p$YS^`M$a(gJWkfi6?YFt#*NQ-5!rc!JWju3{J{Csj5nRf>u2g5=YP)DWL$`h z>yRI-^D+I4!?RdDi_Nq1l3DDXACpzwong0m0xzs`h$plQC(h#QJi$lA$r&#&KcUYj z`clX8lL6&Oq1Vb8#Z}H?=nOB;bM;xam{gCLIm3hVBt2CQ?<9F9z2pASJmnp6bH;(l zcw1Q489yT94rcu63@6Uw=Zxc!#nf4hou~92Mx3YBJIz0)^$8CmPkVlv zeZ<#!nlDVh8V4W!?{942ZjcO9&hXOjVMZM@?Bf2ZjANa})fs;xBgNXc}{=uDY82Vvvcy<8Q(moJ^YD` z6QAci=iZ?_N7v3vWWTkN=k)`ZBG)rAIG1_e^Yhxr`^<3S?DuQ({Gpz~*-d*q>Y&kFRFL!h11v+%UQC_6$MeT^=Gn_f&UF1bR11ru;>cOwbV)l%8 zp6mG|m~w_cXIzWy?$F%!{*pexm$Q9D7RTqdzP0OfWPn9yyo=nf@2FRNpW8EaO}_pc zH#TT5`%J&u{2X?i-4&8y%oz@y;m&zk8_Rq{?4Osl>Gx*xGMz26`?7bJ`O~s@V9r_m zpO@(Z=A2j9Y=vLoWMnvVwjanV>Rr*FRduei!K!fr2hK3%yy_WzjSLUYxT1N@XKQqb zr=MZLd5tdC^l?pl_5*pHzpT>{JUF{^DzEF)I@_+RV_m=SIP&@;o~ZA|`WYUa#rN57 zxa1AKv!Op5~EI`SqT+pO=YA1<6X^?8$hH$86;P^v%H zGclX>FMZhq?Xvpqm|w@${@$UAiH9Cj9uXPk{J2G8)`4DZe2?z~Ii?z+ox z-|XB=-lMlYwuAxaJ$by?j81{rZ1xx??sUvcaMDod3*X z?tG-~Bk~>V>k(awr?a~T^09XCFfu$h<6>ld=?uHgI2rkv?%Z3DkICTvlq@FB$8-XV z&GjB5Jl-r;&Zp`W7w3~5g^o|}R~!7s|8QdioQ!MSkvlAKLBfA$W<8x&Ej(o0eXD;(O8DYQqsXF}@N_HgqcP_{d7tUhud_l$wZC88Xabz5je6gTt^Mb6G{(q@HadgJd z$YSYyX-wbs-QJZNF*X_$EBt8O9>6E?wU3 z(jL6HIDb;QoF&GqC@|uJH&NWZTg1f$FSy`Sly1-TkOvpIh>1&&`tTu2k2ZR6_r<`a zhhD_IMf_WO^-1hoa3M-B`S4hac(?S@5&mz%eJF6`f)`Qlkq>rUa2^V*xcD8ma*sZ6 z8A>1SexEbNed-d=mfC;kunYXSz>Q0vx}EVXFyeyKQ1B6o__yFM6j*V&?;Jos8Srn5 zxV5;$uMBKe8+`MBys?41EY8vw@oE`3_q@8@#ZttW1^>1@&<=iW8Pv}~ z9Q{Fk9@LIAFU7rF1+TWifs6RE;NO;^X+$KuY30&gv2RvD|iA$%vZ+s4X#?;*;gLZ6@0QxXxm*d1wWv;AE`{}CtS5myjqig z`fuIX09T-h`^p4fH4L@DR?8FZ;RFXj#SEB-4_^z#Xye&QK1UxAwzv0#Cn7T9UQ zbuI4HC}P0^Kh14*$YT~UU71vmxURrSi}3QOnFD_S8xRiu0WZh7Z_@(XU*KR zQKsrUbUQ^K)854qDAV4ZCfl@j+(S^rf(1{YIA>SHe!+gJz*oz(zQR-sZa~2sC^Kv_ z&9*b@fU%YtZMs*e%&23A-e$Z%!w1EB1&5%_(z|%C_#MF_HY~8!;x3Wmp0y(OOLDtK zyjR?hSj2z@)>`K1!krOCoLA=P8!xut6O?)1BADez+1}_ ze~`m3_^_o-Z_ZA$TWaa)1GmSy%9cNKTilx6b5T+1^3t&n%cSP)+o zXS~Xa_f~wr;`S-O%c_3ETg#fy*7RfTwn7d#Y;pd$ ztnm|ZSb@csHEoHz%9=i`k)`6X&eN1Nx>?sIytUxXmJM~lRf}AEfvc7cx)4v5Y8&xY z!J{p3)#Cn_A{Hy|RV*9yEDkFhukNe7{XgH>KyJRkS__=Dh{1|{eA!gTraCtD!|x0f z@mAT?7kt~Ysjf}+;^3AJ8_CfZF<61S7I9d?y)7MeiLr`!s>sKeEuV?2iaP-doV9GR z(Uv;lr)8Tg+xPvO&%#m*T(xX_-W?ESTOaUk3+`>f!!3Sapoq!Jwzjv)f_qzb=n&>w zcGwrjT6WmeJ$6N|zSOe_JL-17V%gDeIs39hCVBg^Q|t2nu6b%lefYS=8LYBP2XNc6 zOKzOoBDO2enw5P%weR@@?bQ2|_UZM2YzN+R2W>f6zE$9k?bE*4$1D^UXhb8aM1z-Ex5G>zFFMES`Nv7 zq>o3QJz|q1&m3#(SQ|%d3G*ysx*|tk#C1iSSLEXhu5IxuQIoF4$7HcgBC&fGMxsb-k`aHwXO{KMoQCjW4EwbS?gBOAb|8a&9xIiALO+6KPW z4AaFhUBI-OVY-m7ZeUuCv)RosT@2HO{B<)-7x1lSm@aTA8#q`4|7wQmVwf(5>0+2J zhUr3XyTPYyhUr3%yBVen=YbmMfg1VlW|%JIyqjUV7^aJ1x)`PlIq(MevXKLCD0IKSF+a^=5?pa_f!rN{zdP8h0Z!BjlH3Z{T$e+^!iRKRmC2=QShb zcduhJLVjG(24}UAi*I0jjo-g&V1UgC`A1&yzz%-;W*p#)HY0Q~LKh=+;jD8rLKir# z%?Mq<37ZkRa2Bd@e!FqMQsW$U<8JQ8Ij9E5v>Blb{L%)`w81fLoTF;ovDLWqyTJiy zM(DyF35`1#8yI5)OKe8z!d)f}en8`VRWnK#qjZ6r+TaN^_yP^Au^FWc{DEeaE=K8M zlrG%g(u~r@C|$TqrGZB__^gfdSq<#68Kn#OYJ+RgIKS24wKn*z%_v>C_oW%7i&46O zbvF11%_#ZZG1TB8G|sv872QH`JDx8oc(G>$q)N%M#&F1ZN~1@aq!{);~7i8Ka9ay1;#C#M}*R zwZVI6#NLfNRGKlm7^4e!A2#klY+$Jk?6n!Ai!r(opEqN4Ax3Z9an*>^8*zGrFVVnb z8#ru(H_cIqB8!Lp3U(vvg8+(k#UZcVDXzVkZF>Q=%10T5= z*M|K@Gp-Hi>l!@eW?UQN+JHMZ_9V@?HpXA^z@Gk}H#V?8X~yYwoL=G4%{aZ{i!|f( zYQNIhw>0)Fjo(sf#_4sOUdQQmoL=o?8rXF+POr}MHSXPO*7XJ6)~xFb%&mdHHS7A~ zHvk%W_-0*S*7apwU)-17;A=MS_HWj;kH6W#=9+cwuWNr@`*QY;e0?K--^krJ>)MCe zHS5~P`)$^>zpnlD+CIC&_Zqy<2Bz1nvn!mhf%7%%>kNjUZHgJBd*`N#fW3xdQ;^M~Hutsd$Y|w@H zxDg*WI0%jNWR3G>jeGhVT!aQz*}x#14Z6TdXvENs7`lN|Hn7M>EZvBu8yIHeKC?zl z-M};(_d+$!r!}~(jrh9RpbH#^Mx5P0aH=)(S@ z!3S>OybZj!aX(UnqtSHe0?ylX=mI~u>ClC{dYcYi;D9t8y1)TxI&|SYVAG+C4qd>7 zn+{#zgEa8r21lfk$8Oy3+&C}T*vm9{Bu$4dI&{&Y3%ui|Ll+&s+#x?ax#^G}7rB8e zH(TW2BES7lgO}WFk>C9{jo&saZSIvCaIev~yH{t#y)NJJ7u@gS4vwGth-d#j&pHGDhBMe*&H#U# zGpGa3Kz_S3cq7h$eTOqhQ_jGAr!yE!&H#K54*Dhz^!MT59^im}7zgnw4%|m@us($Y z^n)LzlOM%Jk%RxT9Pp3GL4H*Z?4xop*Kza_>^ zkof+4lua?__la>1tg#<9$3Hd4eB`$J@A&(sy6F7}{rx9&yY8J&y0q!DkNI2wPvvji zYR&(yvaS5O@=HqRR%_wqkFv{`Klt3=^W85m`ux3b`8@dlAMO6u`sCtT%L~e)vZS8Wme@6MT^0Ug%DL=1#I3r0 z8@6x=TQI8@9%0L!i>(zhu8?tsd@JNzA)m7*trhaYzgqCG)(ZJn$Oi{&!NFQ9<`Mb(5 zC|^~6QDN5=_FMU7jZRY>)D!-~+D?y1$QnFH%UsL$T%5NxNQyS&#$~Tn1 z|GxfKe*SCf{L1S(|2Td9Ib-^Jd*67Y`bYii>l=R~i~MwJp3UajY@W^L*=*q-DAgC) zbDmune#>8N&TDgF^{=Y$2R>MjesuJ`qu&d^Iqds^4}5P8YFUF?)}WR(sAUamS%X^E zpq4eLWesXsgIe$XedRY5?Y;L+<+qjJQS|3M{dw=D@_Rq4{>=~6@9u)u0{g;ZTMM0k zo+AFxy>FFsf!{5>^I!P*JloE*?E+gbT>qkH zcRuhe-fjyIpoP2JTBy3AgU-u8X-@v?2cP?;ANARX`o2|G@k2}e&=Nni#1Ad;LreV7 z5NSZh^Ve#5J^sx6$|mVA9{Reh`4^;;J$SaNGsy{p=XA-7iffP3p( ztNOIcC)^d@a^G6Z-GHrCc3369`xjbp=+^3a(2t+~fSjww-|EqKTch5%|E==lM7MA% zS_|68sc5-#v9+-LH$C?qAAF81^M9bQr5Qu$rw+r9T; z<)g|^D^tq!>2SH7bB z9p&#Tzo4J=k9*RZ|AJy%bohPeSN65_&DU+cU$^{3%h|@3Gl(tui54D73opIp&iR%z zimfH};FYxSN?P(3Eq8geq_Q2xI1o62v!wi}(z(;0qHYo1P=(`>crx=q*k zHmx>Y-lq39y|?MT zP48`bZ_|65-rMxvruR0zx9Po2?`?W-(|eoV+w|V1_cpz^>Ag+wZF+Chdz;?d^xifP zx9Pe~*KN9P({-D!+jQNg>o#4t>AFqVZMtsLb(^l+bls-wHeI*rx=q(@x^DlL@=fKp zmEU=-cRF=`q9t$Fnm_p8$^Ih`zIE>CsJElu&TpLi?uQ3I@ST2i^rNF69sTH(-}lT< ze()K3>d;Mx4m)($p~ns#b?B-?j~%+|&|~LIfAOCctA6lZy6@0qhu%B%+@a?Vopi|6 zAz$Zfcf51;!FTAmL&qI@@6daP-a9|{NzZ*~=mULcgU+ws62E`%>(76LfBzV}{}uB8 zkUHyJ_2d2yD4$i{Q@+cy->>|~-ur>q@7-$c(D^5S?|pqf)&117S1ZbDpZ@&q*Zq0FA6Lf5XZZXfAN!0xy~TG<=<)OHTDQ98YhC$!b)abf^YyRsdBRV3$n|-D59#qx z9}fTER_jymYKtDP$Z}=;UKzj7zWC4Bd;R!7>YKBht!Mn@>hg6T>+||{XpEiF^&Xk7 z^!LhhZ`05DTM8fignnMJ&FA>U$Fx0P>*sq{)dpL>r<-?-!5w|S;>YgeX&v$9PkQ#4 zFJ95>XV~fG_FvYY4?Vik)k`)y`1SYu^3r^C<((ZmI5DOV_{`_n^Rx7HX#DRPqgU$t zwE92eyDNSBtp2}4ZoiArdg;0I&nW-Evmbk;osrk=ykGyP`1&Uoyr+*lU!X7ccE4fk zj9$N}Z=awS_x`qCR-Lo|7pu%X($SDnIWT zbzJ>j%ohxpt_mG_hZy7;E@lfM6D<;RBKcw@rzKjCkUQ(pUGR2N_QIDMRaN?ZE)%XEK5 z-cQ$l(b>uGD8KFBzoJdHe_H!)Jie^{>fKLPee%WQ>MQ)>>em!Hc!#a7e%;uj$0O|= zf8!UlKlQqO@1MT*LH55Q*GpsKs@9>c9rk#;+MLd>s!sUVm419my~n@l-|YC3uRP@| zpP=hcY5&OgS8R27^e_Ek^W?~lzhAwc1FznrUw&|`FE5QFcPq6%TkHLYd`&%HG+wU$ z;8yGTqQAfIGy1sj_xSX`RbSWZ`rhyJ^Cj(l$+P_BIbV5;O+T)FXNFpzr;q1tZSd1~ z$n;$Qo*UQCS3EsTl(>F z{di8l&&l^$@}02Nm+JHMaYPqytLqc`cf{78u5JI;pZOziyz%%S_wAFfbzJM?PrJs$ z^Ew}}#dGbSDbMvK)_$2YK40}{etB*_cy6p;^3A9IzGTw_I)7g6#3o;;wxIvd@!#is z>-lqq-+#K+U-kH9v{dw>3<#(?A+xUF>*5A<2KR@=Zr_6; z2j1b&pEiD9X#e>y+-iN3O^)inzpAhFbwRhE@Z59%eoNgi$@aYV!8`la=D*^3{eFuK zyT9joef{jb&);3s{#ReOuZ>@MUr*1feERz~U4Kj;4)~+H;9JjYza#yg`5UxDXYUwG z7xeR4x_Ddt&l8_vpXd7Y+~=QWzvpEBnD@{8`?&g>F?{|xe(?2Q*ZyB0|5o`wrT*t% zBai-`ecivSP5k{h-+cZX3LAf(txs!TzM($8az^gYc;|Vo+gSb_pS#rNbAR{ibJd^p z^W#-6KKT51{_Gzm_XpbD|CGAu>v`3;aq+y$Q2m3xp7YOly!%q0PyBn255J?WmweDavstrzt9HeJ8a*N^$`g>uBMFSL1}xWA(H zqLyu?)?s`<Y6XYBRXKX|_{Z`1J$bHdAa{MF`*L&cbXLGLe4 z$j{cF*N-#0dT~mx`g=)s+@978zVVW-KC7)4=L(r#c>cvDyU@Xrc6R9It!KYgbun?H zix+(S;^O`GKUO?%48Abt@s0l<^6mso*7Gb6w9aP9wrtB-vSnM|umBNEFhK+pL=eFQ z6HG7xf(a%-5Q!5+AQLl?2@EiS;3Q^n8Z($+f{yxVKazUi_kC~a^uF)=-hH~es=6iS ze!HrVy1dE+XUH{uUGMp~?|YZ$dET$;ude=2P8t1PgLxYt*YMOfP9H^#HcDXAV%w;` zR@=_VSwGjU!XWZ)Wo>kSRa{&Z(Mb|c4dxX;5AUcI4+T+Q2Y*j~>m5Er%jA{L=bBo( zj7u7S4OTsRyiDz$?U!>c;sx$%uGMp%cbJn;kJn#PwaRoNLCG%&Cpvwh6~#6!CQ}__PjRn`g98EZz}u{`7`Erqf*Xs-0eTUxlb z$LQnQj(O_ns{PJ4`uyc3|GOEk@o>%j*7jzSo!24x7G*GqGvv+9AVb1&sS1HP3M$ zEc+f~kK@vuPQLqK)ko9KaqSs~=j3ob|6LjXX`lJ}q@o1AdB!|pJk0u@@?55{IstInD+5iBd?L2B9`B=*diW$qjA_SX*AK^YPyQ zezs2=)l?ux-!;|`16<_8pbzf_G~EZ+8vOOe{y3w@zNuH=srD>C`PK3coTG02SV%v8 zv|kk1!n4n7P~RMlAkE)Ch*A_E1!K5(qSz@a!G_h}?d(P>DzKEI8eIM-l=({iQ4b9Q_^ZZw-sS-{F=Hxlo7(66t>WX6+)<(T* zD8pxY_&k1ItoOeZ>nNRXN7RMeem&CnqAkArX|GhQeAoK<>!+*!M;L6IVbf2qc{EjF zJ@CEHoJR5bX}6!&`=5S;-#g~rh|~W}I!*-)OK{vtll^qj|E&46=x=m#lHn6)z6Y9< zj5X4JKfO1_`Jx}=@6LzLa$bwme!Ta~!QT$$^wWMnzy9_or;rx=VclQB7ry)HzQ62` z`S@tYhvQ7&^jF!Je-c*73AxF!21otjGyK%B2HfePJRG*uV80%yftSD4$!RsGXj|TE zBm7^z;lFbvU2}^ZOL5Z>_^7qN$v*4HU%wvgZ&M?Ec&0(lb@=Dc&=)>yXr$S-ibZ33 z-uf1we_TG*NQZoT;@1;5;hr}7^;x}I`)Q$>KAZJyvpU-3*W_G<<9?P;Kh1%Y9_y!x zTD{dTuj-zk;{T%=|7pJ^PrK%Nhnnlv+9cPc-1_xcXVlWihMmJh2Oj%}7;gLZUq6g0 z9{qDZ+p>IiL>?o!ReJ$F*K9b(bw7^F#pw^O@X!y_{?Oe33!Wn`omE;ZYQ?CJ80xIU zT^=8;YHbQX3(S6hV5ax_muKW~*TZLZ)4w9$$Wvb?`6vhu@ZHTR3xf`1%z zxz<%=U%xi+*-T>%bkQF5ZZX{FAJIbKzayW(beHYD`>lR2pA|b_Ek(w(sI4P-J5)>5 zh?i16lXCBjI$+ZrwImtsB<&}oCUN>x_T`a(Y@hkRw{rURY~v%gcv z9+nl3Yo2^ej4RnO9>*6fDrqH;4$EL#Cq|xl1L2##2A)(0pGD#gsH01a_IzW^%~N~j z^DF$`a^-C9dGwbTdFiVGe0AY%K+OZ@4e;Z6W;p|Tse`7<;5mS=0WoTx`Uc;D_?e6^ z=WyD4HLdm5F30+!LR|xLZ6CJ9=Rh(4mA`1-)vO#^;WkidT;ve(aW_!?ta0;M;|f}x zrz3yYmordJy#EOibv;4Jd1XN|0h(c(bs4nMa(a<=9odK#e10T>Ph-n2N-P4naM z3tyc~Zw&N)%iFwf&&+jvEnVLL9tPlE3A+J(TaMEKJ(OH^j-DFeGeCy}`nD2oo;i}! zWvpkYhxk2yt~aAm~l?r3bhv&@IMC^ zx+-XMZPplAR=1bR>DEWnSgJSkIcQbjZhX<6UgWon_6Fh{O}DFUV97NxO7ziy+>+K9 z&zs4qWdm}klxsoYBF_Q&4y-e^wLWzzXB;n{N0KvOP7+T&p^e}R295f3U`rjat2}}W zUaAh0a(pP0V;Zw|HP`W3#n-@&x}LV(W%A9#UjuE{%6q^X(ju1UrR4aV&zymnCvFXF zlj00mR|eG3g@b{FdIFP&?I#)DtKjEZfH^Jv)Y3znF|7}O$J@O}c&_s*gK#OaKj3;Z{u*3w#!nSa>W6V6=HM0fi20#4xewCC;N!m` zW`8DT8iPTc6v=DwNe0&fc_z2{(Mv_R8iYv~jvC-l79oD)mf3?O8 z(q#ob4ASagBjdL)>eKgwtqk^qdUdd#(ZpaA-+N*tzK6f-S^kpZ4#I5^Zi5|g3;%dX z1|HUvTJr|G9Lv#jDsu+uWU%LV`FZ~nS#>_|{BsOf&2&0QH-kg0k6mL?&j7)`{Gw+ z;-_Ob<(fm+{txM#Hh6j-Qcg8qn%4QoO*8B~^E9VDFpuLAc+y*0r!jKOgJre+{6Ee) z-L1X+-}h9O9)hzYIfgFuaS#3UiZ`fV2i03hr$g`@y2AA6kbK%{wMK12cp1Xi5FCfp zKBSHzybhT^^b}L;klga|&?JW;Ih2Z5pw`wB$9l2l==JaNJAtg6I&eCq-d=Nu)Y~E6 zP_fUtJ{tvC37FZ7PQA}@5a?9g)i0(V&Q|@}>bI#)@skSa#&(X>$>oNxBL-vR8 zQbi+4H8-iNL~cVBYLjU=w#lCZ20zg><^a%{)XP%|8j&2O-aqm_g1yIQ-~H@I|Jas&@Y672AN&)) zZ)YF}S|b-p_rQU18(wqW3o+WFKc2y=H%!-RE_yi`{Px{|sAa_gTAshxM}$ z>G2|VFWrBN-Gk>UcE8%6WA{FD(@pW+miugP7Ba*09E<|T8N7_!;;)_lhe9tn?^%LB zEF17OG>J1dWPPiHcfRXGv+%ce3>jCVkB0Q+(CSaZ`~%Ns#aVYgG<}`zux-9$9&MKB zNB{R@PId4V8e79}^uHb(vOX2W`8}pT8|kgWx=;{3x52^({!8>mgSDbi{-x0`n|~&U zyzCsp56utLPRg27Rc))!hv~9OK0`$jzHbig3aw$_^w{@tfSl#qBOq;D0 z)(AMX!EOk4!*n}Le_e1HmP<2Sho6~}$Gv%Hv8WMi*xJwn*WOn9)`t{-!!Rh9L!F*W z$sEf>|YOZ0{t~?y4m7^@$3KD z$*J>NS0HYIb16CR!j^h+ZgF`v{HK$zz1>N9ewoMn-6Ge-~tHds|f{pO6opn+yO!jJk!;5+gplhX(;M&#K6 z%RC&nq(HQmBs#m-KJoZ z^y(Shl+%;H56>B?{^qaod2-QNtyRW2oL1_g5qRgxbA-<(xEG6G5;^O?Jos10)pJU6 zn#67Ecm8=jF!^u!ytVkO&j$Q>zEIAH97kf@b8y0a6K?Cr?bBFQ zd!DVC(?avD`NjPHOvbNkLunlAC(Jc|gdfk|%o!PEaB1zc)yJi9C^Tk-^~j+@oJKs3 zjKa?xfA61Di@SWF zc)~$9ZFa-1NDZF7kTarZM`*c7zWJ`FLYHdmZvXbL_1%Y(vzU#nOV9V=c&;8b@~jfL!$@!5GHjGSDQDTHLp~z zBQM}C@S^LHBwP#l$j6Cu&9)=B8#z|D_^ojBOsSkYd3NHskp4y=as9==;QP+fv-Ne; zb9!O3X&giqy&Z8g)Iqxy0*^1*8XO?oC* zPKSEyp8XH}FK5+M2FFo7G1{UQIkjJtC+&>FWwZ%Cv_IOahhR4v*n~F3_Uwn87P>2S zt`;|=u&I+rv)bBYerK~-A1FJE->4oP)t?>e7{G6xnC;G0@Y6;YrwaCDIWz%%^O z!RQdp1`l#5qL9R{V*4{}P;S{)2)%x}Eb9XM2+<-J55qkHTSR-Lw? zmjkx1HnAFMDlhbw;48G7w55S2*!0Muk}f)oOX0jzjIqcCFQe)ieZl$0*L}VBI9V}A zaXEGwcaz58Z!A|VwTPWe^}giR-STR(VE8kIhd5fs{3hq%dwrM)Hik&hj3_u*O+U)aPQ=+iQlnj zXf5(|Zj7$F=&(z!op92FNk4Ur4Y)u^G%^)chd)Y?rmDLjthpxpIV8W>YY zbLeG~!Kk>``51${8g;cb4an!7s*%tY?h7YUD*08=a|KK~xAaNa#Vc%xjWkOX$noI@s3XuQW6^0#7*<2KQsOe2vX8_1EF1(Ag;BShqc$3PY(@@slS!)vB(!^dFmNkQA_A$jjb|k))@aaaPF6184YzuowiNp73xXP zAIcdE?c$>_>fU7VY2JLtH~6d~D{j$?KKC!shfly>En|2qdcoHDlo~s6IDVP&JN}sS z>T85?vzo@AaxC`vRliXT`goiAQ_Ef9CHd#vfImz8}MP7oNw& z^moNMO|(3Qqj9}iOVi`eszJS;MV~XC?^>LL>9~Byj%?LBPG95jXrYI3{XLHRasAaa zoGbnVwP$he?!t-wAJ@MP_#dya?wC7X%y2MX&rj5*?iP5bdhP3}aeS8Oi*dPD(?BbH z$MI5v_i;RpTQkPh-7B}kQTyc!V$WyA9@m$J;#A-^pO5i=e>`fV!zS_S<9Om2VqxUtu&nPNR*q z*bd|IaVCcvcy>ihe2>#|nLG<*KgAfqik*C}uI8v;;<>A$g@>JdV#);JRZA>%!>`J|EBc6r(-eeb^V{|-``%T~IzAigQ7*Ejf1U*hXiRTzct0jC*(C)-ja^X9L zgSPNP!xIJU*?+^=2OG}T+pU%fx*DIfEo4RXQ*5j5Qk;1fSWXE%3dHJ$=LFm*=yigg zis_(4?L{?({C+yi?}Td;G(4dP3TUP==IDhYHi3%?oK5J73A&wVvZnD}CvJs!?Re_I ze{Y|dS z9b$IUZcD3U+HYILMQriY75?daVuI1{L|{7k@Aw?g_)P0%Vn$rnmG3$%Cg$LcgNb>@ z--O<&W$oqol4l!iQe&0;ytnBzwva@~U%cZ7H!&GfgZnuGWcVz?cegD~OcwI32g_mHTfk4XYdA`=?it7G^#4%jOcq~y zug^DI&gMR8Udou7Mq?v?xJ~jgS>`+(dT`#1tCj}G^j0W#zMhz*kI8!18^4dwPh@=Z zF`wpt5{{GROsco1-&Xyp1$EQsq+XbWMKew&-!X$9OI? ze-aLpWB7-2GtEs7GV$_onh%o{Js0S)$zgi9Y8zwtEr-J-tW)AlPS~#74s^=p!PYFS z$7vYPlcNl-W!9S-xHR&a(qEHs>K1Eqh`H9hYpVw*X|GqDs+!k)v)|EVeA4TS8LaWt z7Fyck6CTy{I0@?>zRH6Ge)2YLw;2v6BbFSyBY&7S$6UFmHhzfz54L6H92}{;D>#F9 z)x)-Wt}uLrUST)McLRS7QP%+r-ctNNaVcji*S?;c)T@)z|CRr%S^kTYvs zf8ep>`_KzQ_tM-xBTub%i6*>(1y&u1_C-0{OKkG^7f2J;ANF3ah~4cy%|q-ud%xH5PqJn9 z5wC;&>>g|TFSBv>5$j?bdyhW<9X8A!&=cG2{j_z3U4-w?up)Mg`aj0v_lLip!Qz$D zfe%fm=sTr9rh+5u!<2Pvs)Z(dY{NQP2eTfv=+7xV(+KYdx=+zpUFbxwPSNDl^JDP- zcxRRdgPT5c_1Tp91;#exuF$+c1($o3YfGPQQM8DB&SFyDVe)W2&re)6D$Ft`q&C{)e#YoPd|$j+G}fdE>B(b(DbzZd|H!tv0A!XSc&5z znqr;CcZgS4Y8*aW8oh2reudxotv>hdNn=Hq{m$WeI`etxG#}G32NuOOw&kqCT=})( zE(L>WYgP?hrz`y(+2vp2?`p2}xk?X)>vQ9}po!ZCkGURS1RW;*&9->tAJ z3r_UW0ts5rOa?0P_2CE(#D3MzMO_b=9BK^>_Y<%cLpB_E(tLEME+$ks1nfLDnf!T!X z=2gO_34YV`b3{u=p{aSe(d7~U)AB8abz9&v$MAF%`hs^^bvgg{XZ)u*D%OwFi*Ufh z5uNnVRfD>x<#h!6BfWJ5w6^g7!T*S!3| zX-7ZBdAat$=}4^U>-ssc+hw68I-b^#74VvlJPyC}+q@6T^4%RZ;chy?lJ2*dgx5t)7io~DM6Em@;j~STGz;XuO?RcMo%ght? ze11I3=TV{aFq(ny42))AHKV2(Se46bMqV@WENWIaKh0{IF{e&nRO+St7^6qK@!Nr` z85&Q*tXU1+#+B1rZ8h!E_ci01_%FcAOv#1!d40^vWk#>ggnxc#Xk@g3HswDfRvvw} zsi6&DJ@T31b4Klr<8m>kP5$kXzdr3zPbscu^yWiH}dZ$@o1T`Xei)0rN)M9k1w)C!v! z*v;s@TKUYxwSFAe{hoNo+3}upO|Q1|UlZ|0m>!)`f0a5b@X~zfSPe}PcS5~%Faw8r z{V_Ak=Gg*l#FzEeRm1GVEEi@`BOGRF zxs}iMq8}9Vo&Be4%53JlHAl2I3zOz2>4e_PaXD){`#5`oKG`f?%(^~H6SGg_pO%hF z7_A-ASetrhX>wM~z1XMyS^Ao#`^snjK-^Dd;-=S{S(RR2o~7L`oORJe6HU~^c$TKCXP+1I)`7De)xdFxziES=5L_beUH1~0uo#?N?Gj9x3<7L;w3NT%;~Q=ebx!j z*%z&Y@|jcbT<#2Ck7xO+!S~!FbV*xt{LaB_F8az^F)QD>CmH=6(O8x9J+Q30_U`-K z6J`9k{*-k%^Zc}8m=yC?$6_sG*_uD%jwo zSv_;`o-6!$aqb&FT@U7Hw`4f2P6Q|m|f)4owM$wn>tQThvCUg3*6(+T@ zPbZBtwrZ=vU*7l%zqgK@=3o3oI`=t#nxaOS)XB9AF73IF!>1l-|(I8HE+Zz&;0Fahd!7yrqkHD=fu+2`Mu`CAP??y_UD|N zgI^8&=3r46=fp2vg2qf=lGioOc$87Vopvy!6P4YGtJTpGdVu9oyL@qd1kX8r+DH>~yXt+!-{=OH z@~tYgp0@4C?UPx#&FRtks7a2+@|aWqeDs)HYG6GV{OZN#r)=r4Q0}!bX`gp|?0sv@ z3C#8Q+zaqK`j)@zvxBj-_0Pkq9X4&Y&3u)ZKQFg=T4{^=^mZe^&3rVAQ6ZOkwau$( z{z*nx^XAXXVIJS}aGQUOUH%oZKA9D(14ab{uJJoxz)D#OZL71(oJu`2pU28s5rfP8 zv#_JTc|BefSn8EJwY0%yzQ*=SsW``(IIiJwKJ!^pn|Sju?&vd*KISVJ{O9?Y*FRNy zqou{Zo|v~kufKZbGp`Tkdst_Z?+3Dc&=@A94Umwb<=wLVWf^MmT(XP&O-BX63Yr{no?Ho+oi zoXpepym~w0n1;J%e}m7vCeHF(qK?wwWX?F4*3v{*U`!)D@NK1~dh=Udt5#DUT;^98 z?a%9nqRX@vHPHUNx$}!`lhOUW9+=k)^IL3N&K0%d|8ge2bD3w`&hOc$`7$-thj#X9 z2?q0G&%>mn*m=InTOHGDPvA?7^Yk`Pck{+p%4Ht!rEo1?J$Jv)18&4Aelm^Sf?T`A zDv$YeyKu#^d|Rt%T&>kGSfJ~wK4WlJ=~}T`J8-^0Pxaz=;kD*Wqm~LdECjsoXA_BEa;&|wJqqYJmTLZBu9whl8&2!h(_?NmjVy?N1h)ma)CE6!ZUGMqVm0A=AuxhLM?c*~e3m!q zTsI$4f7dI&Tdi5K^7(BMX90c-k!$3shZb<$N;_5jE$F$0h^vnl)Lt!aCtj+%9E-J} zj~2!mo)-cKJ+&bJg?f4R{eYMsnm$`!o4ghxFPf;Qxl+EXpHiEcwfxrOa{)gK^tC`o z3!%FOHp*t%Dxgqf#-{_|9d`1&bqe9?-5KEA7*-G@d{JZBJD2H+oFD0 ze1bj6TOmxgae%uvc`rWeyXzZ2BHlyU@$y_NpnLc%()nT$ zGq;x;C|jg#uAL2oQJ;}AECdSH=G7wNM|Zbj-?q@~49ywOPa+)!Yb@jLJH z>$`kb`yhLWjk9}wUioWmnceR*x-0BD`>@Z!ir7s)!+9V3G}~q$^!deav3~Y5?&Ghs z2izO?vpd~4eu7(Tp7QbH@ z&tL%?`svNQS1%9T^mSEeD)#kh75y~m!$rMXPK#aobuo_h(PHo(V{u$XV_l&g*BgV= z!8d=89Ouq*xu^#h_4T6Ostf+dm|pG(z2K={KP~FjMZMh+V+SwM}PIwT$@@J^=*y3+oLDe*($xLxlA3EF@Dp& zYn`FD$VW}(u9w3ikIxEYT1Wm&%(ASQd2(L7u69~(RbxZcrq36x0gL-ge=Y9uEB`Wh z<>~3g9hPA7Yk@%tOqN`4t)AllJqu@Rsua6KztqurFYR|dW1jV+PTs}AgSBPxm>n^` z8^e#9oAl{Y?z`SklUe?j^x`6nYvs}o%OyB1SwG70+{@omF@x61N6Luw-ugA}rwF&hJv>Si}mQ z)8k9ljV0XH#}+P2feTG7sej2@(pvk7c=s))@o_HmtfM9M7Vy2)%Z+D&B~3IsUg}`hko?H6Ye~$jnV9MKFiYLe)5a2Q zEWxd$+Gm&WT2g0SV0w*D^OxZHTwsB#j!Al>`FdDa(@Fb|Eo_$XP;UHEtjGFnX`Z>> zAh*_inu+@5RR74=f3MHPmTuIZc{WWG{+DQONpCIbr6nmvHehrts6J$yG9-yU4iW7^xjEhV^)ABNH7mP3(ST1vZRYDoW!gM4XIW1zUt^7jVohhq!f8v?+s?%5gvBzQ=h5e~UR|b}W&PAjN6QhL zW(#RxnO>KpJ{Wdye*5=%?On~nhQ^QRtK0P+95p7)KQyXw8K&K^T&AVMGTY#5oqsWw>3w;bsV7N$o$&5e&vN)ovE9Gm z_ahm<^2$7abs1kB@azhm>WAgX=Q`V`!_bjDmv^k;>RG0vJUBNP+tK*lAMk$XhQDRn zSh<|;|2Ehy8&@OODjcrpm696u!hc0iv`3s597j!25AF5#!k^!E`5wV~$l2f1->iRjTN=76f!zlfki&vT41`OH&Jxo?g80=TdSrwzx7WJ)ET8n9NgpP%<`oYlsP zJ}RTP;(pgVeD*|B#q#WtS4rg2$-3x=c2?xqLJN5n|An7l%kon|Q!Ce4A5(8-75BF7aRx5;rO zG(iXL>S!CaKTBUP*wXb1Jr}IK?jPWP^9KK!XYF<3az#I_=-ZXxTK}x*lNI`3Sz+pF zj68zl7>nbTz$0+bgDW(>vh~A!KbZ0TN^jl07BA9baGPMXv8sn^V}9uSMTU`HZiOAN_X(uhlX} zSF1F?N`I^Lw~C+Dn1{C&T&&XEDvhqv;VM0@w*CZvkKf3xH1q6~RT^H!U$r{Q>2Ok= zs~wJMrVy5^G?-6YHMFrxi{&)5N{e~4&>l6=TkWcCoHwp<%a#sT>8@n*PsL1R*Fcx6 zbXBVM2KrgW!z!*D0)vPVxr@C@ud5Su75?aPHOA6iS@@P`o;p{jCis7F`)p5DnAd~n zRr#&bWBtBke6P|}cf_E%RTy@}7H<`>>!E>F+FPaD8o8{h=g75g8eI*e$vU;xzW9z0 z`W!qf-YT81(r!oih+Jv3ke|+{?9*y8Vu#LXcy*7_^s1azL!UIan)q2h@7pNM&qUO zuBDqbd9_5%css&PY2-os4RR}%?^*+E#3Rj=;$^J~7iy}5TQOX_U|&z)YkJ}cceSlF zi>I2=e<}W_Gx5{0*P>4Sv1WXQ92&xRo3S+3?s(1IN?hmD|wb#)65lyXiJ|*UzduO>{3%mm>eNx6>w>m57s+Es5y03HGD39(E$1o`q zzfS#Yk%RGNVy_J_SRK*vnx3qig_$}UaaRyMrQTw>9O1dCXhRO4$j(81Yw&B7dmX%s z_*m1Iwa)jzqE`-UYFJw`KR93HOCD=;jL)@sHtibSufcsy%x+q(6nAZgO&SlUHGNpE zAIijNNPW{k^qJ80Q~o>glP_l8Y?_M}`d$mnaMmK;TGXkowTR1C*;QNhmaDre>W5i3 zJl5!J4d-imuRU^=Ly6qhuKyeHKAnk|;hR3zQY>_?Ki3lSv!@7D( zVYK$5{fAjDOlfUVEj8w@(`cEz*5!S)T`1Nq`=_<7XYLy+X=t>^7~HNu4vPZYC)krr zKd!53{po#kKbD!B&a*MDJ;U<8?T37)HS5|sj$0meO}?E^+lEg)x~@Oh)!zcs8hotN zPdToh3qPf-OkH%eUe4VwJ3#Z@sZD|Mi$d59>5pC|(mywBxA)H|6x% z-b-^d&=z&#w1`gY@Usr9_0S}&y69%TmFcbG$cM&Sook4BJMK%wTNkghwNhSpADrS? zfcy0>dW2n*_`S_(d@9XZ?=&9<>vUT0dJ8Vw_13z4D&<^B7d3R)x`3y^De~(!hK8ze z*nACd{2Up#{ycMBPEYI4y GOb+RI>uOrpo9ndKKnLsUE27c$7!QMWIys`hb^Ws* z*iU}fhkQ18c((8BLbq~TS976Q>oi(VkLxoGmhHGY(ksQ!{3r!ISry4N=tzw66P-RpQ;hiNhWuj`Y#$eph;`LA!XEf~{hQ>ol+ z*8`jVOF!&$%WU6Kt6aOyYYA<`em!alzxdvWx%z1R1$Oj(=6@)07K?Q~*yP%V9^24A z8xI?&&o*GYp|3WcVl-X{-woVu=$8#~Hq={PXsd5Fp7~GwelpAN#J=zoLeH)=ciUe5Nd2R7(*gLbM0ZRxRCj8guO z_%EaDjYfFDwK;sy{|3!hMGmyRp*KqP=0@9V{*mvEC(q(h*yp^SsG#MIc19l?biYBf z9eCWJ^^I;uryDd>9Q8fN%xmSd2Ts)yrynP<+=%>WbOS%#^*1uxvk7W7H$9ZSM966TCr$qdYsB4AM^aec_$g2hR z8}e+Wy=Gi&sH-~gqvb9fZA2b4zOgG_`yD^xzBm)-1M}8acK3pQWBu&jMV}e4JC|U_ zF8VC!Bdm?xyW)2RY?!@&)o1?Z5=gY0n@zYl1Nt#zu1y-$DsIxA!A z>;ts>aW>8F!~Lh(E$aSJc9q?Jl>Ys}UA8x$+*>ukvi>l=-nB%};jK6{6#We2O*&}N z*NvftJy^oEIdprS1y9bm;<<@#>jHOtH0X(j=;wW}^XB%3HdD^wvbxwDn%}TaY#h0c zuMKNLyB^+r?8otR&+%EEwa{oS-WzGUM7&MwLwBh)(OTa@BL#eJ(%q&Qo7Ry{aa;6t zqy0Sk+*H%19IiWV(8rtfm9LI^`Id>i{ksaH2k#4MAeygT8vsg^3W zZ92DE&MM?_d5qtWy>J$XJi0G8uGjU=8aczWH2kS`)B4qpkHUVw`6z)+bN}0Z)N6f~ zk4@({>&%7yX1y)kn*+B-*6`ED-}d6!m@RnTY=VKDtAb}-H0r4;JypBzS~Ii8)ml3? zt$CZ))XjD|;Ivv@n}HLq%VAs&^UAu*V%(nzGGTyrj;W)-<*UgJ=Ch>IB>FNZmP8j7RUPHm=-(rN(nrV%{k_G)3wcr75UD6 z&5v0Jvg$p4%s6^%alKHD$DvRCvq>+TfrC7@)VoP{J!`O#+c6xDY412Rx%Dsj{M28Z z_V01#vxw%<0*!212RF^z+%}$WH}Q4+tSwxRLvMOIpH?=P;TzZSSQGWob9vNX$oT4P zdqSM$8*xf9-=C|-cMH8G)mk6(!xtPk@!O@IrqHpz-=vXay-*)HCs|^RzYpDX?quCb zbF+D9jPafFJLdDag3;PB?Hto}^^tA#4URkDmETY2;y3bLjF%)#HUs-wx#Q)y;T!+4 zH8v~8aTDD|4t&+ZrdF<7INl1r0{?pTM;tx1h2t%C9arO&X4+|_3Lm}3Zqh@An7v|c z;e8ALTaW#cco)xQ)%1eAjBkN=Gi@{t87Ka6x(VYlZOH!siz3n!<1R%ilA(&N|mr{+%DT#$8C)B-T<|hg&1C4J=3LEb<%!I)(>F!K#>%DKxwgO)9$Wfbu3Kc!(A88>ZwG`9$G8a6Af@%;(y!t!mHw_y%6Txu5Ig=?Z=FR zVFmnaV0%ml`QrCP9%606X`2p@X=6L~`PhD%>5pyw(*vVzd2G{u9bDQfe@{LSW%3bE ztwk9nLI1uzm4Nb>~Wojw>w$H?Pk5ssp~lO zkMlaQj$z%U&N{KS^!dJ z!glmr_>1v4-quff^4_M&ZGBdQ`|TO)zS_29AGX`-UW0W<_*`I%f57k6Y`;s+FS8Y< z*NR4Mg9CbKrJrs17T{x>pKX1XFVB+t=lQvK^V$45#BIWN#l!kUKGpozM%>7G7q7S} z5~mFYEzZ{-;|{K+p`Qb$H#_0ma#al2ZNqW^S8_kNjopk<4Z@69< z_(VK>7pbL;j*rz+)RbYwWH3RhkuO!x-9?ga@bMt4$bc9 zyPe1W*qC?Ta<=ZBC!BwrJ*hVNF59Ae^I=y>*E@Q(03SQ%?c}pUR>btsPQ=rP$8=Go&Ye<5?>ptJ;;kQX zuag}^4m|S)W86*$Gj=EZ z)5Z=>?9kCpKZ9xY$cz}jmK9@1zwYR(;=o9s)x*6k_VrIg_>TPGyc1YWzx${Bt}`>= z@npL1cl6m#@PLDzS+%NnCrp2pz-MQU>8qVZM%z0yze9UFQTOW4^Lf{+&emN{cRTBB z173mq=3~bEa%POhUS1LFQ(5`!KJ0uhqw!rD-!*slF-Fh3G`vgGyEME@zq_#7rN;>x+kMt| zn#C+G`i6h%Ci&H8Yb?BM4WPwc`RvkZSNMhdE}ibidGkBfu}ibX^6Yi}7>2v_dOZJ& z{QYQ_zg_yxqpf2Y?^amLBA+r=$zZrk!@I8U(r_m&Rm!sh4)t<8#>Xx_@8ars`B}cN zWPCeUpT>HZmdoJ0+rXMx3!~v(+N)H51Fm;zaJQY&^)4-z(!?$u?$YBf&E^&E1P-^R zaS&@IXSfcl#La?b2nT`g_ACP4Ck1E-mjq&&FB!o@BJw9x>@N5C6ORY}dTP zE!%Fr1FzlrZ~1AT!(`%SV$#PhjW)uelZJXChrl=R3q0s_cjZ^i>(83k6nL)EQTUA* zG`vfzop|hmQOk3s=G^+4vs~};zYDvTz#sOz8+tc1LwmdQkx!$$G`bsGH5B4|m!7NW zpn$&0BUk#|JxcO@f3|NN?jAB4-hI()D4p!l=^l;dt8I_Y_8#U#FLcq!9vvUcxs&fb z8aY!6A{V;cqsu+G^x|+2wheNtfX`lSEnoM&_AHLaah^{1>RH3NpY<74 z*7ZI5EsI?6ut%d+&wh_Fk7tje+daD7qtU&HNnd*%;zur>bb!;nZd-cVquJKLw3pG{ z-Ze(g)v9kxbJ)2S)BIhcaMIX>7Xop;J9AC zd$8T3)%MWD#w-7s_ix$r+SW{DsdT*$3Q< zf0`Y$2i=!ev19fD_hp}A*V!%ZOX73QyKFzhrrGV@mw%ew<9+Jm?491zU17)U{occr zu{*tP-^V`5uCw=eefwqB&u;fR@KN>&mS7*WE`Ek3*pFHly4Xc}e;@l4+h+IDz;CgK zSQC3MEFNdm?0stf2{j;xk_VvxaKH8_TeLb_UU-oH!U(f98 znf*S7_kBIEuLt(^z&`Eo)B8TH?bG}|z3r8803QeVIKamNJ`V74fR6)w9N^;s9|!n2z{deT4)Ae+j{|%h z;Nt)v2lzO^#{oVLtcwRYIKaUH4i0c|fP(`Z9N^#p2M0Jfz`+3y4sdXQg998K;NSoU z2RJyu!2u2qaBzTw0~{RS-~a~)I5@z;0S*puaDamY930@_00##+I2a8qmcQy$7YFz_ zz{deT4)Ae+j{|%h;Nt)v2lzO^#{oVL@Ns~T1AH9d;{YEA_&C7F0X`1!ae$8ld>r88 z03QeVIKamNJ`V74fR6*~$N>%xaBzTw0~{RS-~b1QI5@*2ZuN~#K9pB4smdZgF_q~;@}Vmhd4OI!66O~s{)JbZ#c!` z5Fdy5IK;;xJ`VA5h>t^j9OB~;ABXrj#K$2%4)Jk_k3)PM;^Pn>hxj*2ZuN~ z#K9pB4smdZgF_q~;@}Vmhd4OI!66O~ad3!(LmV99;1CCgI5@;2?p61P&57NZ=rWg9Hu|I7r|ifrA7N z5;#cUAc2Df4iY#>;2?p61l$sEOTaAww*=f0a7(}~0k;I)5^ziG1Qxfx@f3>$3==R+ zz%T*B1Pl`}Ou#S!!vqWyFig;K0&WSo#ovF$_r2nC-T2%)zRR10TM};ZeD!$NaC{b> zgj*7BNw_89mV{dpZb`T$;g&3n_prZWEx+?kr}-q|n1o{zj!8Hs;h2PD5{^kYCgGTb zV-k)@I40qkgkutpNjN6qn1o{zj!8Hs;h2PD5{^kYCgGTbV-k)@I40qkgkutpNjN6^ z*#H}4Lu{Chuu(R~XgN8-CK)X!X*oH=X4xE@XA5kR;UtNZBu;2?p66mH`g$npH) zlo;_`;doYXJSX_{`MmL5*c89<9M*VdYCLZ>o=+Oj7ftaS&-09Da>jEwQ~bvBFXNe* zDcr`hC*v8C@r=q8Zd168=Mu&<2jiK5r_Z^IXV%5D<>EPV@m#lf##=m#Erri`URw&E z@qDy+mRUT{>jxA8Zs@%NqaHh`(Qn zzZ*HiZT!tf{LMxD?L+*{L3|HCzIz|vvp>Q?eE0nb2S@XPMb}$yV1bYL4r_czGQQ^+ z-#3i!1IBm$;=6iB_=xY|#rNBe@NxQGr=z`CdrGZ6!*4zH^;fs9=}9>Mud|K?7J=*C zciq4O?tgXb8eg>kzs_0~SiJXbr&#=ttZV;ku0NrNq~5si?WY)IuSfdm|2J#UX>Z*B zjvH8f&YA>||Dkp0J09@6j(48=|H|GwyC1aP|Mk3IKE?X#OIX1AD|`RUzt`Zup7+eL z4wb#@R2N_Q`)Bv5UW5Po+%uo9Lrq_u#vncy>-Sm5w0rz@_qK`KeQxDm<~Hw{A7WR% zUo7)Jsmc3;=e(}p<@M|y>-fFavG?iU_tVuCmIu=+KI`6n?xx?+du_Jq@BjVJy+?N+ z>b=%qkNfh|-n-}S8(8SQ|GD?+;(7o3*W=zidhgz^ImP0y>^|N5-|YJw$KL<`W$tZW z{yjhcyUabv%fHV*?Y;ZIHjP0XyEkd6)i3Y=y0hnwd(Zv6@9SorJGqbc{{7_sIPQ7e zPn_KExgUsoos;{TxaT-~UlI2daUT))4{?7G@B2^Q^V`Pzcz%xDHyyceI^yHl>)3G} z|MoUUnaF85WoMJEphGVqSLda@l>^WqvMS zVSHWo9_O-qpxiv>9xB&8RIYodT<`63i&+UPW$vMJ<#O5m*k$))m*sp}?w8#!UVehf zIoCZ@u3B^5L*=@M%57%q&2mDlCJyfnda^;ch9x4|Gx$dEI-9zQ7FV{U(u6w9l z_fWYslsmv+l;KvJ5C1?ef9Ur-&-&hbr{Cku-E`AC{jTRDUWXoF@3dYni<4kC{SCjr zVSgajZMOFxpF4ly;-y#Ie9J3e_3B$+^V-+l_WG}S!|ivx@lAKW`7Lj~>uqm;$2;Hk z)$hLhYrgjD?)mz^@eS|!#=rSZ@BQY#^)2^)>)-yi_kH`{`HuU(^Y4DwP4|EI-}|2T zfA8P_z7Kr=Klp(U{@_3Sp%4A=Kl+g${jq=i;~)NsfAW(b`Kf>U(?9dG|Lo@;`1ybS zFFyJ&|J5%%_=_+7{Oe!(<$v?P{o9ZI%ITT^{a1hO-~Au|{?|_rZGYqc{LSC`?f>gP z{Lb(G$KU(-fBMh=C3EEyzyE*#!6*M~&L76%r=*|#^HMRH^Iy28lL0rK`@*HgfG@AQ z)0#51d{zOO%rl9dc>ju_|KsVO&ria?{-w<2A5T;8x#^x>|Ki)1Bc89$`uQv=-IT4R z06S~=m(o?%;4k~&bHsConU}SD)5{w5l^XPN(ElvFPvCw>=I7gPI_=@lEArD}U#aa^ z9Q~J;f-k%VeBtK*yqKI>*8Z~S|791>m$kI~;ivxS|M}xj|H*&*)6e|bfB*A`E({6qMPo5HG9H zzg+rfa(bCBTR;Dm`T3uf{^_gk%fj@Fi08A^^I7S?=F9%M>C2w+S2@9#TmC=(Nx$d% z!f(3HeW`a{FTbT;@rr--3$J+a7tbi*w`yPJE7JK3nSmECojdo6b2s0Z_60qhzcJ+V z@0>b3_XRzC{&}D0?C0_DISc-|%sbi4^v`-j%fpQs7yeQ|;UPPqV}6O+&Hn;FH-G6IzQD{Ir$3*E8y8P@USjjJc}$PvA%FI{pMdg;<_moB*zy>#jJOPB6=C)TYe(BOXPH;F4 z`sI*#I_G7qK{pn_8*^Sl{T2G=6o->>cnj9P=+8?_Xl7W(!{-M2qHfM!JV7!eurIYC z-Am_5H~S|%oIfS({Hx;PtIwZL^OimG3mu*0@OeH&$k6+yOUV1;KVQhh%l;VR{x9I+ zj+3AGIOC2xK5PB|><=`)fQOgyQONt=cXB87J|4c@pHt>D>*ve!a6;A>h;-uNrL{WK z8R7n=#WJ*;Uh`jaaE=uE>DCul;OAaVd+^5Kg$sAY z_Kg?bbm7hm7v605EpPSDT^HW=_6zTL=Yu=JwJ#@Apn>J^7@~9#`kiy*|7A zuR8aJmrmRsNS?oN{`^I48_1>`^ZaXHcmDisuRs4)Z#aMQN!@uL)t$fV{Q3B_?)=eQ3=S7xar4ECx4iPA*Qkqr(jWBM@eb+Y8!u{)IP2#vZ@qZe#kbjc z`#b#e&Ug9e1`dJ5g$pO26h__gbL)lIyf(de=HJ)d=HT@gzUl(!7vA`$3l{>1c&C(p zZL>`Baqd;;yj%tbmiepYu+I zi*teFSH<9ypEsNX%gNrG?#!Gz_vY|G5OJJ&api!Ab09hJbLmCrG>G_bOYif* zS-b(cIsMLqCj7kmR{y-l8;{HneZ--zzgm)t0!4FZL{G7a-Ie+q^Ai>PZ zmo~5RN|1gnIB{nG^(XIPf=n5myn#Gn79=P=^uwdYP)v6ms{4Y%9BZRURWW1U7ZrWO!eiyCFVG#A7sFEgmr0KVvba&8+&B!2L zdrw|@Gen-Un5IzB6Bcopt|`(`MS6K9?9fCec<7p@PPvG6Cc^_Mgtp?cAL34Xu%CW6 z9c%oloAf<_{=gAHTBzdZjq%T$F5Y?ZWW@?< z97k{RkY1@@b>YIRxs5k47cSg(vJO$i$x>~twpgFUPrn(Uhzl3K+KG1u4xe*35U8Hs z`JTLB#$8eXl3sK|+9zvQXghF_MC@hW3dL@$QI@EaZm_}x{Fb&ezg#(Y&S$jezV>8n zRFPgJPnO6NMV?%Uf1;mGd+FS{+llGM>h|VXB;%Jg|1WX(5?fc7<%hlM`|5sQb-Q2H zUG1uFySuB}j$;D`5(Ek01aV>@L686jVgwFgAV%PU2N`7GK?Xq(1QIE}#Fr>aq$obc zmq=06TcRY2B+!{Vs#yjZRrBn9?x-gjWRO9AYwvR}`F&m0ZF`afY~Fj%J!hZ2)?SbQ zT6^uwfxq~o%2WwYzNys3T!iHOl`q0(uo|Kj&ZNjZGtt?HFZEEY47n^`r(DYtlvkE! z=z*xo7r#3&E+Ltv2f{?Rzy5wq*46PVgSRoizxM0j`;AcU-!i@5`|a+V-}&D6eps{{ z!5u4t_5!TK=>OuQa|OQaG_GnEiRhK_cF`J(dCgpg!TiMs;(n|0q3Grp-!hD*1=oHv zjB6Zqy^LuU-Z_4+{Ea^$4@DxX|L=xgQCP{Q1Ucb^zI}vSE2PvOf)m%n)bM}-;J$HN zF*?PkhDQu-Ek}{b;e`Q3u23Ms?v4Os;ZVEKyFNaY-VrhxNAWuGro<05_>GStW7Txk zPsL%7lgixiNYO)$^~8COuY0}k_kP72knGofz1RDVUJdukm;U^q_uIYS5%xJsOmodbd@SR@5al}W*KqG3*qp!il)~~z2 zKhQ(Wg9C^dFmcGiI3Lcu&Sp1(#cswo^{7;Y%c=4h4jj*iI#reG8&CD&2VWEiUUCT? z6-BDKjKNVl@*yY*D$4nqi3nnfZg)&6J%j;te6LqtzWO>$c3@H;0bC}#9KXq>I>LT( zsRizaPYphVY7VF>uOZ=uC**o4mqfB6tZFd})cY=w6=QIH!Np-+9R<&IJ~K?K zh7F6yic?|cSh>#9#+jImcy8!J32ClOX85bXbj9I8aziZX!oMD4aD-mfh(6?@Jf8sx ze;woGvEh|)mf_{%wg6!s|K0EYQPqp?=Afa*GiWbVR{;neF2fk0{0^cT(su!&I)+ZW zi;W0mTi90&T0F>6-A8!v?kJ3ju70O*vd+Z7#&nWdpyj~2gj$!#u0pep!2z1fT*NGY z54Mlj>j$h~j)7DE6)yeH9e-s&MK`$eQuU;0%JtK~;C)!KprR9}0`7;*tTrv~3aCGX zGuOMRvT|(<*PKQtlHKJ4RjpnmPYpgsB5zpfq6k z#qWRdMTxxJ6I7HQkaW#yR#(ACR6j|Yy8eIPonM5{{^BP>Hpd?qJ{0IMFsS9(z6xg> zenz+#h_r-zfAGa0e(^_Nd?DcbW6|EmhhiFlx$hUNP%zwJ-l6O;2Nhsfge~+f!7n@)haRpSMbXLTz+jfI1}YyK z7bhZ!3+n*h(Ds;%IKFLT;#?=?1rGQaN?U!N55@IY-5rjh+L^e`07A#ZKDf5x*=iwt z{PRcjFp%PE@CT|H*Io&x4`Jg91;buTceMv{9b@kBOZlSyscJqvQ3Skx3UMpeZ%9Qo z5rv4M2K48(&vOBt?m=qH^nnp`Yz8BN&j@@8OZ<3qtc zHFb66S;An4;5e#X4SZeVcJ^A#_T8Tr%_?IkT?{RK+*bj7s0EW8_jwI-A0hW2e%IaK z{q9e{`^SY3-j?a?B7zcYRW1%huLN0F4(IpXQG4Pxf)5xOLijZ){QB#!14DW-c7MPA z;n%wZ&o-K6H~APPh2GtEmX!S+uysx?!k73LPdQ zUgGHFp?d8OFohfh58YhjRI_O=OA03LDdAE{fe3M;hd5&JgX7wil(bUF@(@B$j+m1w z6~&R)xd@jB{D@e8MXc&I08q_mk&Jl%`IKJh;!%iLy^Lm zm2j_8P$IMtD929=6~)2~Ohf@OAylNJUgU2W#)$kPIW-W~NTUq#gDyI$>ZW0MYkf1w z0d%KpXOUzKQxSZqM^SMprD7mU`T=qz1mU&9<$Y1|N8!DA3ZLXd{?JQ}+=EjjTlD{Z zaes;Y3o|2I`enr6ak67*#gbj_ROYl``*^xz0BNh49)y_jjYC34N~Wx+MYI{HzNBVq zoHb-aNkfGRB}!oxV&Y@wheu>{iae@ptSA3CV*g>_-WjN3pM76VJ>Hh1Bz3&2p;0*% z0PhFC9rDl}Whg^y`zTH#WA3w$Yof&;=6|MdO%^wsP_Xgjd-&f zoZq^V>h4;?-5mpEy#`R@n~u-XV~sw`7|H;y-8&2u>aqo=TQO~y{0)5Ls7bbBVLC${ zXG?5Q6JvvC6c^h?7{xq>u_+dgpfFlxE&|Q{xuc6g=M|6;Tqm!|VnX#W=*- zh${+M^1k#CCkI+m{ASH}$7u&9IHHFV_ZM-D6e+qfud?MTZ8S&#g?WI8OSV+H6gsUv zlsWG>(5Y0N3VoHtR=Atu?!yHa-|gwea}21sa{hx3t|7VNHe$fl*AZeueyWE!!s%R(lDb}sVd@}Mx1>~rDrBld zHFY*4Ny-{WY!`4?j@G+?`0}*HN|$KAENxl2`SF*icRCietZD@nY;_sP@K0r9`4|FL zd0AqQa;`1|6rcqabUl3a^;h5j%JD0|`V}Vr#&5>^-}>sSAN=-LzvJBxwcm|XgX6D$ z^`jrx_uXt(%M|@r%g{-8F(M^i4lGf0tIT33_mx~#P8LQ6puFNBVGNrb_PlCUd>AZ7 zmA75uyikD=g^wkw=)gn3hr&l;l4S@h5H;N#>w^{uBjsIq8K`)8bk?>wawlU*5&st` zR@{FLj0Rc`p@s`9W9a%AnCUAuuja9QUD18m=o%cw$Qodd&ISaFyUBJ3&tnCo$b%EbOrbo!92_yF zjvD7gXM;GUOJ9_c8Cpn~A-Gus3$fzgFw1n0NZ)y)A2*a$HFex}$c{wl_X7rj4@aV8Xmp6KxlEWE(YOgE17<^34!Hb=rAN5KGS`&Is!lT{siYV<-;+&O;g^JQ%D{I#u)T z!i1|8<`N(T0EkM2A)YMiU0_%|tJvEP2L}MDZZ9k}UlSL^5oz8(`tDDz^uoEobOYa0 zz(l2`Twh#xnPQxDrdo$ET}7e>0$S4lwE(K-GHND6#=NG>g25f}IjU5Xgtjc|5r9Fq+4`m!3{|1hyOzohP@;b!p@u?c? zVGquPnecM;=y-C)x!znmhPKZ+vtGw=ZSDc zQ1a*T5=RNqYRJp|1r^2Plya1+2vL+$wIn`&UqOPS=t-W)5Xb=B1CQ0Mh}8?P|1DZt!2T7o?wA;My4sq!p<8{Z z0@*3X^^T}X#5-|npwm@V2Nw;syPmkx@quJ_Cc@nVO&J)z2s`Q#oQ%l5eu_|WAWOy9 zSJWA6n*qvef~)$@F5^9rsG^=Gqr{pjI|E-G+)^4X8+Uu}|o@Vp@2;0$FO-s5_cZ7I-gM< zdhHL&t_{l zd>y<4QZbzT%M)`^LvA+eNiQ zJ$|>F&Dud&lP=1PH=$xzN0Cfj)u9j0>vS-N!SD+M>-Qc1>xYn(%8Vl8S zv<}JcmiaA&l=a@4xi?{vvF}Phx`N8M-a?3V5LI+BhO$uXL#+yq(_MvtQt9{w@s^+7DhL@`P|9jh`?LRczMV*Q}rUcQWlnOJM?s>5!F=#u`0;&TiCKtQSC^W zd$Un|P2>*35_WbW40E{3nxwAT_EKcjRRtG$_M{SedyQhR!DMIR>#tt2+R`ql2tePZ zPC|?dj;L9^SgMU4y5q{;cYLXcrn015Q$Sq6VPGcG)v<1Tl_Pb3r(i=M67h01utlQF zNN}^@hSFon$HZI=?(H1RH(*<6M+C|>>sw6qfT)r+?>ukk>IR7y^BI9;L?IPJdSFQR za1fR3lF=x6xvCS@c@J~D)u<2MTfOHO{=LS@U-w7baF5UX5C3TEc9(kmag#F`UTq+%S{nP5Bc{ zEeI}Ll%r;&ys5k`J%mWcl6_riF3a|@1?8KI%-`}8#XOW${D6}okQF@yeyH(tF`Hqn ze6BdsOOdhi_+qchin-IF8KK)95(@-|7h&dnS;2KgcVQ!|JUd;O;BOg2fyHrd7`Yci zQG%0VC5D1ENF}*87#k)#dMILDfPM6Gb;O*O<2o7D<;Up`kX+|OFd`s+P2AU;I~Y=R zz5tLbqJk0M?e<@UsTh_94GdJQSl5JFF|iTm#UW8#Yv7`ifLs|vF|?iAzA|vJt`;|h zkqw`#e6{4^;#@5>kJ~M)AvAYB!h^nzt zn7S+1U7asu7mHd|vx;66v|0j!(o;OHx*RXpHL419HMQl+;AF=IF3%y8(q&QNQ#m^S zH~3h?`G^floyL%g0w7AfR|2hqKs}?99uFJ9;_FbP<3m-;0JGI`UPIr+d0?YT7dndc zPxzk-A#kFMp$1wdpeWjT&AwDEjWG;VwHSUnG4LTB6)};;Q+07bC1)^`H3}wbLrgOq z#y~ea+cNBoL z=5?VCB{QWRiYd^zOL<@6ph4L?eT^QXB)D#U?C^L+<6&y+QLB15?QUyLoGqb2Y_X|h z2o%%Vhf*#f8&nWj2`NK#LcvXASv4O>R;->oqKA&sU}rH=Uh6Cj{YEj@SCSDobh=XN z%u5$Bmo?6+_lGim(@e%~VLXbGln>?4AX*%p>8y4avsLx1-^DzJvJKTOMiC!TF+8xe zzP~d1^>g(jHDKsyxf)6Bp-AL4pHsv-oKB|}L-h`&=#JujEYt=kOBKg3hfxbTuC0d# z!vjqYWWd|2?A#YMLaDuW1MwlSZ9suIVj2p(tz=hJ(;2wS!%+cU| zs7rCj^+XuKYURRE7XwuSy@8F2!N*aGGV0s-%V5=Vl_F+H>*k`f(j6Qt=yvenVy3R< z@VeCu6Hz%Cfo6G1O*fZXkQ!H17g79O@pi5%*`Tt<>I0Zv=At~V5IispA<;W`ehUc+r+l&%1-_a*o% z!DCR-nMmh{x;0SFf^oyRb^fP}=<04rW>|YrB8;JvaL<*E8+yq?eBjAif*MP$GL|uh zZyz=6`*tee`c)+k>Q0ooh#0Y8n3Db~ictdof;@b6wOCNodSyT8pvI~20SAh;_S%{3 zPA4h{y7&V5HNL4nJL-(1#7Ym9mBl6$LlBZs)Twxd612Osy17bvc~V4+3K`3;5e8bB{lq@eRUo29!hjS?dYaj42&Ktr4=PA@da$AvV*S8)jmh-vud4s18 zjXeM1=-hd{EzBNptK(#xH$7L*p}2+`fL8OuOqHn!mlF=B99-ZvpVj%@D>D_>lrp7y z^#Bb}x@#bFsGCUWfLL{QMX}1A;j6zP2h~Q_L4+Hwd@y`eS1cEyb3CU*3q#F_j;dai zp1VI+dtr)9M%sihb+Q=drFz`~SSS{AaQ{Hd%4`+`QBr&5>qv8Y6Cvw$Z&BBuV&FB% z6T3#`dYy|1d1KD5F|G=Aj3Kb_;K9G(wT$5xoG+)UsCF2;Y8)R_u^5VKLSit6K_}f< z%EwM{3Twh}7Mcd(Qnj4u&_iI_n(mHDbq^`kdNw#pCU>QtFl?=NtObvLHQ*;-{?z{P zzu`9nN)H8zn#_pJVw5FeGN^5f)KytaD;ou4^TcQ2 z)kSx+oZ42gqXx<1tD3y1so_#!Up-eXvmazJN{kbbw&r=u zC7t7o9LgX{a(=J^QG2S+bgqKWva+gcYBu}>kLipG5&@qRvb{zMZe#qVj$p!lIkYPr9~9I ztC^m9cPH1i2RDX5)uW5j2AP+krTm7Gbm_oul`(X}P% z*F%ip%2|ccA9yw56cSz4u$zb)B6cbgQd@iI2>3U8`6eg-HM$ruJvdopIzU+2;!uAX zC4#6fI;@4GHu!}!mW?Rgp4M&=p^Ty9xx6uZ$$G z1DGot2LsIgY{}8^ij>Q8c#jIZlU^bXCEj zjg^S%d*j=I?uDD_z+YKdi(9*pv8Npv)UyOX*GJtZzx3}f<3m7!xT(U10WCGD6(g%hOs5`V2pt7+z9?6* zkOTK{%}NK7>ylcL#Bh1|tS|!Ka9KsZubF}9w-|%s$cxpf7Teihuev!%W2{5ZsX-X zAfmLWEbw-AcQA(Xgm}vE=%mby;7i4-zN>z`yQs)Wj3LyaI~NmC=i!>K8g?3QOkmAP z4bGM^TpK_bn_`cLW}@SL^jL7jP**zvt$Zk)=vE)j z{?C01;}9J3MW}mWcX!c%lY{vf*t+udz;zZ|6>O}ydf0zBqncH#59q$=w4&%m!A)0= zHzGDN5H2i^nqVAK(HXI!(7K}Vqg-3Wr9$=+kH!p_+4ZW2>NCrg{&b{zHwe_qH$zNS z4X|@1r(#gUF_i1R@h4o_wQ+poyK5i*f*!72_2=G_;xhf5Wl&MS55=vLP@?Z*O$wBY zuL*P@<1WZ4HS_()dJoY_cV8V)*I#$;m%Qkq zSQyj~1LoiPVHa-Kog&JZzWEZu&+a-|pcTFupLQlJt|Ge&goy;V|)33g?rAlbJwhE z8~PjVU7mV>V@w;@CVc;?_wyU~wL9*a*FNcMqxbX4J+Eud?`wP718qf%bL*~~)TZ=t zPrL7ZjPJ}n#&;IanAGC?+uF1?qs?k)xiPQZ(H7h@t<8SrL-~IrTASDAvhq`QLdz zpPV!{{oU5bZGGJ~#@nOLJ<$%e82^EBZTEgYp^u4sKHt#d8qd3p$1~1Px^L3`Q^qmn z^OXCij+}d_8OtQzOup6P+*5RWz3~D+o@>XN>u>1q#-lI)1uo8tdLH`K)N60C{qkQfXm_7(RQ^xZC`t= z9cYIdyZbL+X|J_6+FR|NcA~x4K4>4cQ|*&>rk!gS-}&+=)sNPDUsYtOXj#r}Qy`GxoB{*3O= z=>ClE&*=VHj1BFd(f%3jpV9sq?Vr*98SS6Z{u%9`(f%{E|IE05Hlm^bXXyVK`hSN0 zpP~O}=>OT2c3Yd)X0%ytPMc?!@7>VY`g=1Pe{zq1y~iiq<6rNw>-TmwzV061bML0c zPu%0H?k#Go+OoEz@l*HsfP1ICpWmPM%J$#m3+^3gC)$O^XWZi>?(s4A-n(w(@6+A? z)BnyK_=Nx0=YR42PM?3ippOOqXMwL;@QejxS#a+HKfJ(?E$DlJPg~$?7Cd{wco+Dd zg=d;)FL>6%OYN0rd}I0>)8Cl>#`HI)zcKxd>2FMbWBMCAEWYVaXX)w;9h{+0v-EU^ z{>{*%8M-~gCd|^+S$a7W-_fxdIyXbFX6g3~`!Gj8=ji7g{hXuYb98*3O_-yjv%ZI2 z{`AHsze&I6XT3Uqo6hpTe|lSgw>|4Not>nUlXP;D?U`k3X4#xsb5VRUT8jTg?<5=$ zzB&AN`0+`7-^TOeqr>k%IsMZA7VUUjXuSNm)@$x9^_qjxUjM;GuUWj&OSe{gY388U zJbu^f-`MW83vYYv%vvuW-svT_GtEEhrT2Tiw0!Kl{a$OV{pW9cX?wBPtUc}}xFt=! z>^09;^>L@yuAKJz{+DfjyWPw0&U^i5bG!y0mNB7T6_0q%TUV1dy z>%&0(joDsWpNA9odY3TMC0~1azTRv2#%A?Zui16)<9o(_v)8u{F|KfSC88eRA7ro~089qKT#x3JJ z?KSXB-~aSYCr6&U+iUL~|1a#&|78L~=6n4W{jI#{^&f8a`kSu5Gu>^_tIEKW>APOKanMUK=J_|h^y;FQV8YDz=UZOKR(g5j zelO2l^zwUsPQCN|g`fg>E**-W^0;>59H;U=Xif^9xv8< z>9+5eKlaiAnSM%cJwMM)_wt2)_m=eYR72ybvArVGua@u%PjC7Ba=MqsJ$quDyuRyY z82R$UO7HT549(&d{FL6~)gj()zBX6pbY_VxKO@KFOMG&9?w&LAe4Cuilb;9Vde{6M zk)vnk;rSynyFe!#nZhrRak4msbz@7r`kJH?-iBXfwSBlqxOyO$=|jmf*cH0|}?hySqm zo$vhfzcP^hz$tF6r>x<6i%Xd3kG2_tC$)(rY$$dTH~*dwiHA zlVYR>ubVq~ams#7oAbLL$UiyRa_=+tW0q`hvnhvkc|YjC+iTx?FShH$QvIbJ)TB(%xCG|7ccY_vYx%Q+joPM~7s4n~i;DCLo+l5xZ1urMwvvu+Jz;~`h9kD^E}AFk`y9Pq37x>3t!;8K z)@$#)WP9m>II*2(BNz9{?m2lx|2SEEPA4bL8^3zH}{+5_Yq$1(6gt`AAA3jjsN7kbFbp7eAk@A9C>x8 zm)Gdu5#4@9_FrfxbV!_*FJ7?4?3(zy=hCCeg`r?QF0(-VZHkaacn?2p5 zcRuf$>&XXr_TIc6nGdfgiURp!%GWwR$xrQ%0?8VNlko|x58=dT@ zLv#M#Tt8J~j%xx*)p<1?Op7-JtM@NI#NlA}9# z{*3Jv-zWK-be~MDouPL`;}2e=Rm_+@FCUugC(q~z|MG_Ie$BS=U1|9-yF}jR$l}W} zb4Z@2!=})snH74nWemn~!2X@!%QSs8cX^+kJAQ~a2ilSLl$@_>XcTKTWB72y){dFq z39qy8#0)<;3k%JYm!+q@W*Z+~J11Ari2c(IJQaf{F>#tPxA#5&(EPskylFO>56qi^ zG2Y`1eG5IiZ;nP!dVM~&&*t>^_^U(XI_3K&*t8e=ddL>;@ry6b7r&hL-jdTP{J%qA z`2?|KGriku*2&%p90hZxrCsw%=bncbM*ZQ-o0|qI+;GB>rbBa@;Lc> zXzpK;jV-^a^y<#)vEz%e}3j3#VK6}o%@6g@*^hF*kJu;5>o^>C7I>6W0 ze85|F;~gLQ0gum&WrkmZ`P)@K=fGSa!jx=(d&=%_!C~*{?rpMgK?a_)A98XDHcxj) zd+CB-eMo*DnO`}L6u#l5=gS@CL-YBT&3|-5zvg&tlDy#a4Ypq{w2`xE#@Me(`Zcv< zF7SE{e%K->Y-4k(pK2WFcg-umHcRhU_?k!XEdKXDc@!nTo*1DNX^pWv`G zVm`J#?+Ki_!0v3rfKT|DCuHncfAXxCA2!V2l)iT1Hum=1{qoSwjU{~0=NK8ijTdyT znb!XtpE++{?kt4t|C1kfvfqe1nkCn-qj!TG!UxSUyK_trpP9cC^Lk<~PuQE_@kc!V zsIQMc%ZDa;zcj|r+~za*=mgs&cr863t1Dz`6>eTwGRO1MlQV)z#dq{8Cq5fN#pM2(7x@--g75n9T_4JKU{Z@l>kdpzSy zB6i|GAv%*D=xYrg*yNj@(C=e9`DU9h3R?+pK4WM3n1)Yo*z#ubBxL^||7all z&&lC5dwUnJ;LgM@r)PM(bVz66l85;99G0J*(I=ntOq}!Zf?U(z_jok&0N+RW6LTY< zneNhs`)uQ*O>rS!z#CaEDnH{pKH~pF^81YZzUGU@-ou0ZHlLmz!ZpvtFsBjAun%(o zmuGzbBs(-u=jQQZneMLQ;g0#DL(OB)f9#rL^Z1f2d2bx=eRn~}mF%bIX_~VB38%bIAT2vc-pd z$rE~Z^b8$r+-rPZ#h;y!X?cl{5sQUAGNv(OJ6`6C&Fk2tF~Jlo?7~xWBxXym_^(Me zS&kwvv-@Nv@8Z8TvDVsEJ3&V7((&^RHp5(eK(Dp9_Biy_T(IBmDgHd8%d7Czd$wtw zz22n1yIzm*=ow5Rf1li&tas(5h#$$?Gx$TUF+YdBtR19HHvBf5_mcg%Z{FUcH{!5y zvh#vI&%*A3{ow9A#!u}U_Z#ut4VWr&9Q3$vO`;83FE7=|r8U#$?*-b|`E2VBS?;UP zR`w@g7kbxDv#rm~oAsbH`oZ|=+dTXI46ml}XU+L%#xl)E&a;OH`X6)OJN|EsA2ct` zEf{DXkL4Vj=V+XB?*ZTWPHY*vyc%{N9Sa8``~T?o2eMBln-_R=vH_!z|6AsUpGa@m z;m7zw#`4<{xMEg3!nRJxufYlJ-M|3jy>?Ho=9%{&@Xfkb|HeyW60`6-{Z+a$zDAbe zIcrhP7z{8AQ=G%xc$zlp>`Tv+hsd+^L%yg#VGbkao#%UY@%$NDP9iqo8{XshE3*Fx z&&Tm~!n}*)T5;Ir1-*uY(u2KT-rzfq;GIb_8M+}K(wy@%%XDmy4#@4L6SnIkoj%(Y z|3)tTJX2#e2O22`39=)Iw zBkq-Zm|=UZH}oI!7YpX{hz!2Lhrn-g*=d8Xc&BgvDb1pNom|o3cHVfzP5o6^d&j&* zjI;0&-|+K2-ru0F_vzUKeriIWlkez z$o{@38`d(DwTrZbKM&Zd4R}S~G#|2sd~JU38MpBJ)l)tJCTBm|51zkG9@HqLY5mT* zcY&|F{lMIqk0pOOepTn!mQ+9)YY-Y{xEZKUtV_wbA3v|dIq)C2f zO22YbX^Rb|7wI(~zoid+P?B3puu&!ldF+h6Glz#4y&U-G6yEF>>JfoL<`jR=M5BZk4lH<(#`2T^f zjN^~{8+oiojNHiUra88kjZH9e+7rj%OP2G`fe&{zdF}id-(JB-Z`c?5+_GKm0iAtt zY7Ff1C;YHp+)R;sxr1h&e5jvk=uAV;nmzrg|7hT+<|R8jgJ0I0lQrWsYaZw5r~G`9 zt4WJ=ewoa!lK&IeJofpqu~`$z^2?VW$%5}Q+n&iwer;?g`hN$<8cS;puAMcX*7e%E zY~1oG8RP%o(v=%>b#gHMIr6^7wjJ=x)=Qd*dB*W|g8bckE3Zc%)uCLn8;x3p#=JJO z#;TSf=|8QL@%Q?F_u6%vuA{FnVG(g=T8^>M`G|G4$wuS~=Jf*)HOH{u3)kF1lUS~= z&f@aaHM_3gH4iW8!=ZV($G5=h%|7|G#-66g&gM;Wz%T6aS1V$f$G41Mj!NA~6aMfy zdA|Y6yiLqp>4le(j{iodV*b!wdI2ih?@H_fJQ^9^#GeRW&?8{!qY{r)N2 zCRclTO2);?%`SiPlunHE|Khj)iC9N1R;K&Stmofn7oK_El-Tn22Hi5=SKDH;=W5+&AK}#`;B)t4?#qvF!aZ`_BfX5A2T`j=ZTI8Q(K{ z{*H{?(1*HS z9I^H5@ELn|c`Ckm#s;zb$r?*~03U3^p4MR675?av@f^@c_N6a()3=VA@IA}>64YG(jJ&lQh<18@9fA&;NY%o%ORuy;CDs)tr-^3ATI&#(IdCYjhVq z*;;bGC-*0B-O`cv78@mAYS-D!CuHl0KE9)Ouw4JPxcWX@wKdY~zs9SW7wh0T@(yd_ z_gCUn>)GvVHf)XzuF$nNuG?lC*r4>74HlpGz_+9$)i0#*3n$w3h(@XVNNgY?( zr2FUQ^B%h2u~G7~X_w5vVaGKaf--pd#>J7;Ys!@gOqMhj!Mr`vQobV6)n zeINyczMY53UVHWpctrhX zUkyawf=%TNn%j8&ai5;R*L&tnJz^7W3{S`PDYj@PZ?JuyW&NPBmeR<1H_wdwHC=ee zj;WtYx5>*Ly0}jEADQ!Q=U~CS8nofn2fTlW9=1A*;TrZaFT>A!?8PyilQ+x9WcM|{ z_Lg0lWOLPtwD-l$%lH>K<0&8ak}Y@-o5^MMZ+N{U2L-41x6pThH~MVUVl~socZbg- zi_HsjHVzNnWdq;9kQ?;;2*y(v)mkI$tG(;r9z%~DRA4hcud$}poRfF{D^IZn>td~a zxZwG2FIiX1*7e#a=#_^`hmY_n{2tu3%P+koyLi)1n`3K2eL2N^gS@Vo_m}vfhAhcL zr&sjHx^`a;VIMYWtbL`3fhUdM+EL$HTr(~QFOF;?o?n6spOV{~_&F>8I*a#vlAqTJMfEVL7Jef-FDbE8+UQFTOE`=6TpL@+mgY+I<+ z`!E5+y^1v@KKE3PL(aX~q|afyUGi-Oh@;UymDG%zn}9NuhFRXBtPWqw$cBX4LM=Q&-mF9I=#*3KH>A^$ND$P z?Yfw2hyM>-ulA)G;j7WooIewrkfZ1BzXLa{(b4m{ko~{+cL#P~{dw9nfBbbb!v;j{ z!qKtu@e||g?5aF^o;l>tmXC9DD|zKwRic5RWfd^u~~!*&SIYU zx~M0*;eL6B_BETfW&BYywfGLUP;+%^tefOz*SO>&o9FDpIC+ZPpZc+6{UfQvN$g0n z29;Lu=q)~z+58mEa+2*hjCY&t$c?tI*qPVPzm1p!ZeLN;5PZFBzGB@>ZGEfeuQl&| zIo{?4`?zOZ+vpU_w)F8*PO_N_Tud&lH>WkeDb~ox%;7G-yiX3rRgD_*G{wij#FwXN znj&A%_$j*6++ml*w#_zsEmxAJjM=(ov*-1dd6h%SYKi*R3eu83)lXl(SL4H0G}bp7 z>vGKpwl?ga`n0qewHd~LkFONt_SIeFm+;aSUfVO#M6Pv(pR&%>*wc_V$ep!{{LEO? zbvL`72~*_fnsu!99IY38uiEcRIJudgk_SQWC%V1?+gy;PN%K2R7uMLTS#%!L7d4pe z4n9ZS)FC@O%}1*fOJlxQ*OBNzdX8W0a|@q0H+J+z#?^*23&yg=4$DtB&tM}lM)Mk< z)qORQ!&6_BX3epfCdsd)wds)kfB)ayRS4*F`$`f7A8KdAfr$Umz4Zl;!CJvL@PWKP_9K^`yY!6f_g zkbPgHrA`wvzRa zw8kge-;u=|nP2EfUUC|5qy8)AX)ETO{O_?TYcS`9d7VJ7{A*H&ns?|LOw#}8{3c(u zk4F#iYlCfn4tp)~S&!M062H@(4Y7%sC2bnpOa4Pn?~)zAv~Q-FXSZ($kLiUvmsX9| z=lXE?>~>vMXv)^AsGmN&eMz_TQp^7d>(ujXIQOoWBzHHVbU@gE{oW ziWg!6xtIQHI`x>%p5muYjf0O&J7oJEzjq?;T;Dc+*m^+>d0?()$ml+Nd(3u;Q}c|b z{voR)Y~{|{yT)`Y<_2%&Z8H0x^wCV4Q#GE=3%YA< z$`v*0^&0En*&0u)-l0EXKI|jOoBFa=-JFrxH+-!1q4t2hew;N{GA|F+E{S6n=+G^` z1>e#u*RI?R+5dO{y-xO9HoldoX{-TVp7Bk$=;buOG>>o3@aqF!jfnTgN7!in@*QcD zTznuO@AxM%VxEC(<)!l;n`teyeG)Nd=!pD+TKxX1@u`b#cB4jB4%dE?%l9zu6PV0C ztNs?eEgo(@@GY@c@r+OSh|lw$Gmq!&ep)35d+Y!onD8h?j(wc1P^X=r@X_aFME;<) zPTpFVZ1?$U>qo7;abG;#hfDgq?jK_Vzu$S!59X9f%7;1eE z&N9|J@PZnOyu9rhZ2!(9b1I*)O1=U!pYz>wY^fY%yWpNVnCZTGxQ*{`@qzEk>YTFr zoh+`(uh^idI~42ot)*R_^J&(d5?|V`$nAVo-}Djou&#V5Mru5(dG34oI;j^(?>?D7 zIRbV>S59bUlo`{y=1;a<|f#$ zPjvaAcvj6^|D(Ru!#8S0(mP{*^IWXQC!MNCP$PGV-ew%$WTTsR=Gy+atez$BiVNj% z`tnBohjet6?5~+i@nipt{dg#*I1Vhw9^T$zyC?B-1eU-jHNr{lL$dEGM?3-pWth6X z`8;I*@BRk^*tyvghf8e(xv0B6muSet!jCGCez3n-N{9&xY+aH(K(7Z=p z_Sw_7>>$6Mr`R7g1NphRm*Z>g8*10-vOHHa7Pe2n>_uyDP=AJvI3nja$oyS){*Zq< zX8T|J{ucYF#w)33>z}+bcXZ_=eR@H+qJDE(-}l-5UG`J$UY0j($L^Q9_{Ltx%lB$N z-qW-9R%>VfIp<*D!0FI}oHzC0ycr}{aCZRGSWPx*IP?ov+T(pvtdJ!6-j+-pzcr9F+8 z_LE(nS*JLQd1nXC`O9--Ig8v$L(ux7+Ld%v2fKNxxS|B$J_{r5VVYDQrY zwIq$bSj{MTv=6F*B^rC08nw2KoO5IEQUhx=Y-7VVH`Y{}TduXIqPgYSYQ~$ubo^O! z>!U_Lti3h2_~%=E*_bg{*KMp3H`ZO6F|v1LY~qlHU25omGwzykeXi2kao3G|jvAQ8 zzRPBu&mH%ianFMxn{jwyd|Pw>xckTHwmf|kv8`IHW}JT-H`Z}DW&+(4`kGkPVB!`1 zOt^0XZ4<7WaNUHMW0G&0q}!9mH%SL3!yf8;(%2^TZ9SoxGM>m0S;KC`sLd2UO}XBl z&1UM2rr#;oPN7-tS95z-^ZjkKtJ7(2n;*8kjdhB1{i_XY#KVmm`9?0RnZ{SKX(OI! zru99I_i6+CJFc1D()2wY*Wul?@u=NsX2g8<_%!y%G}g148DpG5?o%Ie`QCHn<{LSuW&&?#J#!Wf*1DQq^B_OaSa)sa%!~S(hHY==@ZK6w zBj?!6;osalzL$S^!S-5DZsfDlD!Ve_do{YvJoy%nHvD392Yq}|vtSJ3*G5jNxr6pQ zu9GKd#OckQb>GjiGw84F;Yn*pIN1nJ@#QVFYR^WgAj|Q?Y7HSsJCI{HuB?HzznniRkx=-CqWB*li&-^VK zGuzuN8t)=H7WID*|L=Rgx|l{SeRI$Ea?_1Ey5|0pw(OiSSR-w$1vdOw6FBLv`B=KG zq3J#v?tAW%XD;DA{L|bw2J2FdTAfBb)GXoOvbp3Rn`QSbqh;B1wa*)hJTRg-^d)a*Aq`rC28TBAmM*6iXh?ANHHYGUufHh%27ch@}a zlEGc$-1V%e)q!~$>st*h+w9?$^~h$=v-Z#+*Vyc_GkfmaI}9xGKmYxK?C-gM-~8=| zpW_S9(Xx*p`}%&2UysS%V`JSnM-fXs*6)EasDo$@&;@rj2l#HSrco!@9D2rKe5SJp zZFZo{&u#u{lE96Ev!4X^!wlUcWgqr-3ijJvB%8@N`CV?NjIA-sT8x zPxbXwzxFpY$L2I*uVc@(4%8f@U;TM=ys8Bznj*aISHeMnx$NGQf9<^%C zGtZT~Yo2>A7tmN+YUHq*=bj~x+&uUFb2L0Rx6k$Y9Dknc^SLoR*Y69@f8o9t`n9*D zd11a^;P(snyuiE2XT|;z^+1ihcq2d8ymXCvujVB=K7Q#H&tA&iesIrA{YGv{9NoM^ z(<@_9Yte{F8~L*4mG7-RG?D9k?b+%98g**TYjYEM!`FEF8hzFh8gWh&wP50o<_+Fh zOK;?#nm6Vy_HDh<{~P_k@m%%)joP?IJ!+%ox_L{U-Wuy$_sS78Z_#Q^zj^0b?`~-$ zn)}|ZYrcO+-rsrlJ9ND>Hu$_b!OIgoIYF$8H1^mv za;y#P*Syz+OG2lMm6cs}UogL^*6tA6y{sH1}co2V%{ zHO^CWb81|t^CA2H(?1xURzrzh}_+4TC1u$RY;ehjFhZ>CTln8 zhS&y{OgF_rexo3%n@E1wAc>RHO?epkvUGDt6O;OFgLG584RfZO`nc&CBkq$|N@^U^ zh-+ZbWDimD8zxDORT>eKjL5}|#P{N#QRB0gm+Y@kqjCU&Rn@^Id;gO)=A@Q4jf&qQ z&jE8LbuDRB>^N#%_TnV#MQPNS{Vqs?Lz7%!8b#Z!xE`JMprl)3>04rvTb?kujSrNXbtI$*K~CQa(k8dXw*lVI62xf-(nFaEPm_LIDC zn#3R2Ho>;ZT3(uzTYz!XlsTKiE4Vh<>yW0*)s*>|!m}yQxjmxkUyd)qwCOgQZ=+RB zM7nM4ux^4~lf9zpHvUhOBl)8=ji$x;&iJO+G-I1a`?UV#Zju;1$-AbRIB!h$x+Z(T z(~R%o+cb^eaBrF=w=(kvd$8M}SpX-=Q^O{BTFH@-Xc z-u?2iY2Nko#%1q7Qe&Rx(KGK}d&koqecI=f*a>ZBhUC;=N}q8k2SF1cN3uz6mZ(_Vgv|(&?Ul{f0nNm!0IMliw0Z>T;5r zi*zr>ZVmMQwDkkyflt$Y?@b%%R7;v*+hmP1J;BQ@*QjAm zTkf-Nk{+2~>jNqF#BS?v%N$x;OplCB?Mt#>Ey1yA8?D>N+C9xPw#}vec*!2Y1nZ_p z#9sTYYqg-p+#W(8` zY1dr9#%ae`VA})(ryc#rn&hrIkJ>IZUTHVJ*VhiZ_FSVTA?=|ReocGmi8X>fZral?jGOjd|M-qqJg}~t9@AO%$>}jaZU0z$jHbtN z54nAe7xJU&z&-nH+rDw`8^b<&tna7C`iGa(0lhiEJ2l$rY20r-k3H*g+-r{a>BK=? zi`Ui$k~PSrzBQ?-OZKCu*neivS31O-1H3zQFD#u7(Rw(c;q4*1tPiF`{6290z_};r zh&6xppviub^d!#hgzWzh|J6YDpUAtZ!%k1oWAAc0GS(;Ve?l(QZl)vSIzrnKd9X(? z9pSxo>I9Fcr}A#%%LJdNr^X7G_n)HWscWC=>Epy4*e{jd>GuSGtO+H1BGQRIt$QZ8 zJe|aS#&@E>6aAdH|HSxWk5$wQe~8y;zPATG!QV-ZaC&b{AB@|&V}iev8kqFncQAW; zuRoYQz1LsVuBiP=QRDs*Uq9+wZa78G`=hyw{r?})ZtrW7pG_Y9KWv_0@dS$}>oG~4U;2dKr~2{xW9f7zWdEQ4!-4EaEuuY&NuD>! z)21_HJad24VxN;e`P(Gto7AKvSUkbs>5N>R8S6P(;O}%1=kPP?j?U2^`x)(xO;JO3 zq0iWlA?KSejQzs+9>_d?Q&gy&fjcM=I0LtTLdG{PxTW&YQ;8{L6omt;e z%bjnieNZQxZ@kdrdut3ggMMoSBi1Eg=WM@VhHA16+nP0{G3(~`xnz0QJaOt(-IBa(w#J)b**u~C zaQuU2JQJP|yXFaNTGsgTgms^ZxW>A!oN9(k^Mq^R)C`Yi_3l|+cJ`ZidD6O#x|9ri zX4o^wy5gkktu<$RQ}UGcAvxBpHa5$vW_UBhp7}O@+1Hz4&kT3w+s5tpd$RT0d|N-( zkTa~Ar;U5sn5=i_Y1hb|X1_C$(Y5f{Yd=gj^7N)>Z|jNXUUi5nL`ba zV9h+MA2_qGJ|jo{<*YSVd#3WNvHJ~@Y&|W@lV&wv*;;b8M>o&AM_qP?F|+;NSspac zZ}jqAW4SZd%P?cU6X)H3$GGi<&I|Z_2mNxLd0|CE>w>YxdbgZsR&ST>h03sIUNA2E zQ?i=5d>8$T=vYJ(jGgCShV1{d|GJa?3{Pe_GQ*eIx_Fky%rInL)F<4T7mZ<&{q~zS z*>6r|I5OXx(a>uXGMJ|ESm3`EA`76e$26_%s!cX-`v{olkcl1Qx}-; z?`ocT|41|6aAm%4>`ShZ*Ub0vS{^j3;mGi2UNUySf06w*M_$4kzwwcm<2-)CoOubK z?e)t``th4HdCAzVUFKzdz@HiR%*%0)ams_{WxQN=-2;4FM(Z*jFQa=|e-H5PfqVTH zOt$wTs~yOGhbKQEBM;2c17n9z^8@#(*Uu})yJBuvjNKY#UU{Io7ADQ`X^#3S`O^%q zX1UZ1r{)#UT0yTh(!63E@~Rnj&9U$Pq36S|S#5NFh`08p=Z9#2=sx+?45MZ^Ha|4x zRXnigJ;SVd6`iZ-TlMT!JX-ZUdoEfz+^p_2%d2MlYO*|QUNfdObil89&9yLWR>P6y zRWr<**Il>nnd`>CZjRP{XZ<)w-JE?@dEN6jj1f-F8|;qUYTnS7oND$PIT`-U8?N0z z+lG1B@cd1EZW`+*J+bDV)evSm)(o%a*zdYUuGF1n_%Ltj55~)n#(H_%b70K8jlYjv zx9#3-*KWHP?#$b+Qy-k=Q!^Zx{mw^*DYJdWSuJapZ_O}h-gz3b|4;v$f$YPac}HJz zs(DBMYL+tWnRoTGi|6vGS-n->GdFUjS?z4zBM)+@Sxz;phst{&HFT=2%yOj}4($6~ z%Dit(Fl62*Py2YW@4Cn2$?x`LcrQQJ_ha+)7!7`}ARpk1nvSftEZb+5I(qEDDEtGmzY7xEMG@x+`T z#d+5~F-J%EVoy_6Ti%z0$!hQO5ju{H#U84BjpYJxrUQ;{Q`LKlMz%U67xWiKlNhawI>S;k_)+n$;KNW6zPt&Bx|azBbFnX8GA{ z9Xuc7ksNK72hGQLb&Qv4p)%~3?P1MuVD{T8S^apn2PUg0%l7SO`}eb&{tWNs=QlNd zKX?9_KHI4^e9a>t%V|EPtD0Z@~-vmb1-pV1^CzbNu$3Fj@XK%j;%%FuyRa z7v}bbF~oj}7f0He`#t9+9=_D4{B4d}b-CR9(s*CG)*hYw(j2Ir$nv`RC0f;MWLPo3 z^4%-Ee1)&_xmlf4wvQTy*ZBTg|F6;h8ZTaN!`);B zmdvl+rv@miWzO=x`OSF9{y+I|2eSXhy>Hwj|C`^KH+!nGoNj*OIk6Y^&4p%+Z}Ciy zH@`J@dEfljcW;d?Y75_@6aLKbXMRT>-?9;YXCuEg#;6xp|B&T>vwgc6=FBi>mJ81B z(5QwizeDdkV?8krI5fY*r+4Q31WopTWtcO=r1=C*^1|6(lN|frVAu>}X7wNW{ap=z z;LB`ZXO=h4@Adn^xIdWN_wIe~+4iwy_%q8NXTOV*;n1w+C;Q!%tcD=_U5V_s!}166 z^dYV_#~;Xv8lLr99 ze25yCPw2D1J;!e?$@gY^3bLGUK68(pZ}xj+Ieu>hrp#w(IU|o}_^gf~pBX1Sn&Hk2 zpJqAWEbp7;e6!!q$mi~p`^{kk&W#`b%zhUmtHI9jXO8izqsixLkwc%N-W4Xz7x)N| zW>_>wJ-FW^%WBLsoSQEqR#U&ImY}_%jsq@jZ>Sf9JKLzAR@c(X8Mo>a+8b&ZZ`i9K z_uI<-wl`g;&b^f%ZsmmAo7C!Or~`PX*Lv*deQdD(W%n)|5w9QoQ-tw9U_ws3DNm)nlZbHTx_{A@d}9&3C= zQzroTwrUO9anF$BZPg&O5ziCa0_cEU3!&@q8e za=YyWI;_LCaB>SHxAM3xjNQuJwv%dPCfz@YH}+Y!>PK6cxrLeANwllWYA4mw_??zk zp002<b39b5rRzA0#L9?31 zb_QQy=oX%Cqh?6mL95=NRiE9;-L`5DTKKw+-w1%e+Zp4Zb8gP~?Wt_#YTG&Em(y+4 zF0}Hxt=h774nO=BXDg4}+EduV+^t%KR(`j&&$sm(hOInpJFj2ZyPY>De&?#4*T3I+ zZ0GTJ9{qRp<@W|!zdO;Yt8DLhmO9mTF0RKLzcbR#qi^BZXX8xM-FEn&5;*Wirt-Nn57u+u5hdRM_ z(fy0)y^Htvv_;p;^S1Z!M{c);w_AIFTR6N`i_k8{nDA8HK`VFL-k%J+|BwE=PWIdT z`g~w)a=on_Z>#2@^}8^w_0QIRffnX&)fBWac?)y5^1JOaTBG*bZ$Px_%Ud-Gt(yLJ z8Go0|z5SW(5?YqyoIaPyoINS6I)ql8LHj_T5AYwZZei~h)^6=5Y+>p40b1ecR-Uz8 zQHK>ZxhtM4r`y8I?Ft!zfm`)=?L+*0Xe^<>4`;M@8oow7rrO^YK5pf9+pW0PT&(H` z9&Y7s+f{su`q)+Uth&chNdHzxH6?YisN%@6F{u9F4%-qvqnv~s?!{BFBNrZ>>O z;l2%X;dhlQA+^St@)lv81`E~;h>e*Yl-WGOl<#Jm%x|IiRH_52|0PWViW~`g| zx``it1Ek$D2DJ>W-_UFA7jNx*ZMQs6?Lw=ryxnr0-_~ij@YgutMFT|>L=-fj2E{kGd=%I`_G+xX@; zeA*rS-SHf_yp;!TcU-$ePULmlUHzzSXkqYH?RFb`b>x3r`QcWbL+kf0+dcR18iQPL zD=ui^@^;VI_ToA;$Q!q69@@RQN5AlTySEXt{}2EBf$Z6Zq z-#*swW8*o{=Ycsmpc`_wt^99$;2O0Ot=w&^4zoRU?hp^vy0`MS?IB(q8snko!T0SG z^6~_a$+-(c5w?}w%M0Sph=Lp?L=HV&+ z`%Q}$hHsD1Ew9@idA^#8_9+>A8u#g64!3=3%umhlQ`f`v{gB7lOY$^c@e8JJkBuLG zZ;$^!_U<%1((B3(`|DuzcpQ&oIhGSSmSZ_Hwl(oMmgAXNj%Q--`zkhfQsPdEi%5#3 zxXX>TP*o@tPz9h+r~=SrceA^>HrWf=>~8M+zV8drYykC=!~rQ%BqcIW@_X568O*0V z`4E4Z5C7-B^)Bb0|2gNrb?e@9Z;3rt+`v{F*mDCtJ8Sk^cj92bkd{7f>rOT?ZraNB>X9GY()Vp`AyYrMb=P`e<1K|O_76C9 zckIiDXl?PVbrY>Ep4mc{{%%XIL~9HG%CBu%N7KsQzs77^#&cWxzAbB)Th?{8vfSFc z@xPmHS$?g4Zp;3~Eq&dVoZgnP+m^K=Eqgn*5` zaw}R}$+jl3wG~I>w5@Gq`hSj=JqcRd#KSf+jmfs;y0*6AXB~J;K5%QB_}j*o+dR8% zi?z9)*^aw0+?IZIYdenH)t&i64n<4;MQi)@pw8{M-sAH<ecH5#E%aei z{n<1}Cwd^a`Do61Q@d+{^Qo60vxjq9ep!@wT$2-3X# z_q=tsd9w6R(@cNskyB&6sWIL(PqsCXsqx%YK0zuMAl08uq5f?{miP{=R+C(ms6pJg487T2r3ti>7^B-A}f?M^gRAR9FO7=WE86Qpc&r*H2RG%#!p{tzHbOdkzU6bn1rPc(d_FG7ejiw`b>#wCFWEdZv zl}nx)LrsmBrsnHYeYjNaXj&sjA1*atpX$%0HM$uCP3=FIjujwi!+c_@kCryb(N9Z_X{P#fss3ErWc#LP^yO0X^r?CJ zw8<96JJW1kmVG7CX7&twHrZg@v*zd1anFw9Gp-(M@Kb%e)Es?k9a^d{H{&-?YAiGz zr>pVL)VzFZ&OV*shjIR#Aj5cQI-yQ`=cE&4Ot962=O@ISeq3t)KAmK1eYtc}efoW= zanRJ>8L2(PQvJF)bF8VpTxx&6RR1nDE}E`j3;QLc`f%wAHkNOin#)hGb6qZKs;`z_ zcN?tFVt*%l!mu&3R zI+S!B+uW#5W232j)bu7YjDe=+yi;SK=}l~*uasuK(RWJar>4e0Q~RBy`dO)c0n?k< zSsyFauS(5}r^Z546>ruMi`^|#X7)O{QM<*}yg+0FQ9x}Hysho{Q=YU^fq6fuE)uodAdH6<@wvakJghXw>7n1DZQNyjIpM-<1Lpp)o)9! z%StzhqYdugsGe+(pbc!f5x0$=vsY@m@rG}u#t74mbT%)Z+AAqFW|^A*POTqHjZ>!f z5lD?wrklS0t^1ef?vDLU;%O6~nHx_x;ci`9YHmC=hM5|#Oy#Vm#v)UDho+nG-%Q8N z?%m8Mo85D#y6#lRX1+8&nd+~l=E_rjwp1T3H7}mZVNLIJ&0KnVr})X%SlL%6mAjhC zSxxoPQhBJUF~!u_VX8ls8aGV!qf+CBsd2;9-Y04HUl8_#P0eYicdP$yGWDrad!nTB z*i(Crr`9T^)=#Hf@h}gbZuQ>SO1?bRbSv9#_3T#uH_x5QM@_e~vpMZ_tGe~IQhly; zD;>7sz0LSxwhm2yE8Rx^Hh$2DO1JZ?|ISK{MW*^psj>H8sDT8jDP=Sx>jq zO+IRBPr!7$dhQ`d-zv@WPFI*OU!#t8@RSd+OPmt~>q5%#SWu^v_(@kF*vv zEwP8SFRf~}uE}_6$JTGn+QV*krSry;X8kUo(a+m?m%W+f;O@j@=QexzY_pH7KHyII zvODdavQs|nPUD|Djfd{Mw`6_Oa&x)YJC-Y}pEhG`a>m%>j9k>2jv?!nHiBGP{h}Fr zMa^tsnQ&NIfmW~}X-(Fa(t$H|Pf z{WBG^E+-_$eLdp=v!Yc6SKwL0V> z&8%K2w_6>4W6t<3HKQ%hSLgocL%-Xj?8S36< z`@gj;hbh~GXiTn%wIj2>>u1O0X4rFj)_3*7DmiJsXJ?IX%o>N7H4ZXs&Hk*hiP@Ez zz38yof6QfhQNBZFz58d^($Bkl*6-%ob!4xT$Kl;P>$mRgZSs-)cAULk-q9Vd-!3No zo}2X>ZdSXW)#hh6yJxdp4DESV8=f`CFza{Lths{OEuOn;4fuRFImX*(?SnXL4~RLx z2j=`&;+(PXIX0Z@FrU$7-lNN$R<~F;wmc`Fcww!vb^YWyW4LpLujk!g`}ywJFE}TT z7K{zdSwl5vjB!q$>70J%oSf4+`KELFj&p22C%<&gc;lS)Pjdst^7RqtD(*FIIOo5h z=7x>+kC_`7Q}>v8fH89p){`#S`(jSNW~Sh}e#4wRzq#wosa$6sLhjpw`Njp`p9|T3 zS~vKgJYy4cH-PWFIb#M3+1gp(ZFBOh7K~ZUZSu~@_NkD^KeyTZgx{=lTj*&G6-dXa&Q#svf&O2F-N}BV|%z3X`gO=vJ@9lw?+KVDJo}L<8PkX)RjiIM< zPEz^Ksj>7l@BQ5CJ!)TqR8C21ygW5tp4tN}mD8LW-%gAEdvI;`S$%R!(xUGMc_L|_ zcc*djg|*(zed^BE%*!W9`+SGU6G`Qbr2X`eZ=A{lN#%W{1HOj`yTLnf#D5tYTUuD_ zdqEy+YRofjZUFD}ao?5W`UuuOrQ>w8e`jh>sq{Mk&1i3jg{*J1D)Xgx_6=mO!{;Wt z-sHV&zBSGE4K;6?%9%@VCC?man(gbiDf1B<$?ZzF4t~8JcZYqwcbFsD;kV)rzZrL! zAK4+NeTV({cF2X_(e1y)y8VZv-_Q&4&K7*nENtuer9W7D>Egw>4{O>(UQ;aZfKKRw zZs>s=^gSdfl)_H;fO2xwL4wVSR5HONe&- zjVFZf-7xnS?fBbwExhZ)7(09shRx<%)&18PSe^JO0{C7>5Y^poKLZ(T=}0 z8_|w`JO0Ke!uMyi<8OQ-%;!Zr{_Xf1w+L%M!kXeRuNUq3``^iE$KM!6wBv7{FN|Y^ z@r>xeU(P|8_Y3dPF!vY6TcQJhV;tdoDXjYldnJW+BGG}ragXr7lVKl*klz;O2*dYy zbl`8zNLVux_Vfw)Z(;5*%p*nz{vG)HzuWNt0%7lm@Sg?IfxkVvq62?>4@C$5)|!NI zm9VE(bl~s39_Agx9AwCw3*#-(fxj`Au*Xrzrwi*)!uU(r>muxR9P;d<1OE>EJGN%O z#h$u!ckFkth4m`Y!4@5C;lC=QlPx;gqLVE;*`kvzI@!WLV_^?~u>Lwa*+RZv*z+nn z*`kvzI@zL=EjrnvlP#=?iB7igJs##mqmwQ4ZNgk>m?I5iLea?<=1s$UG2{S-wKUPm z7M*O-$ri?s!u)FZugd6T3;X^=CtGx~MJHQyvPCCbSnnO?TEjk?VZJr=8N$A!p+6PY zfQNNAVcku1vPCCbSa%cF+k`pRkY^a3_;=!OT~1gl9$olbmlM7}qYHm)cf!5_VULe6 zuNz(Xcj4cKzx6s{y-xVPjV}E4Rl+z|bm8BHzju9DcOG5%cj0gRE37>abHX9NF}m>Y z!rz|Mp}!N>0!0`8=8B^W|1SKy@b`TY)&hljfX&S7m)bmQNRe>eW!_*+*L-T3Q2g#JTx zg#^3ir_&x~V z2jTl5d>@4GgYbP2-CzIbz+;#1j(y(^;kzNa*`k{*y4j+eExOslzNyi}7Cmgy!xlYk zA-6Q_pBFuB(Zd$z;KSHt^st3-%IIN>9=7OV3;C!aM%1a|zr6{TsHK1LY_g$Hwb;8Fg_c8lSK}HeW5UJ8#(-q-9`@o9RB)6p3waLFi@*K8qZfbq4xwKbavs9kwdloP|19jo5WV=zfe3psL@)mOZedJ0dhz#r zC5$zP-*6#6BJ8OWz4-UyZ-48MXB@rwn-2#H;xB(9{J&SoRgPZ#MV>8;kw=~_@@!#@Jo0RjXA6DR zum?pLGY|dM$g@SBE$l%NdA7*2MV>9>g@itB7)OshTjbe7o=6yvk33sg(-(QR$g_oY zeqmfb@@$c33;o}aKN5Mi$g_nUlE||~o-OR%7WUbRJX^>qi9B26#ey8|$m5^KU%xr@ znh(zzF*+hkTbP;9tOB{&?7n zCkpr%@b?=y^!=lNzyCc5`>%!^nUEV31^f&6`>hoP{0sQYIgbMV_S*^jcZ5Cr!+b^f zAF42S5e59^)@_nL+e-Zy8{(kR75r1%AVU1|m>m>Tv!kkd_v4wq>qmM26*rJau`q)AaQphn1IYwcAD9jCo zJtCaUe+hqiRZ+sfgntSD68OQM8-3I7uQCH$>*2`9$AOC**`|+0>7XA45{%cE`1j*4 z$1MCWX!yVA@PE}Q>cY4_0Ci?OBpI;%rEc)@6pBDW$WwF0) z`R>>^hZyD%!(KSi&lctt!~Sbw%rLA2iGH?_vljNqiGH@|XA5(U(a#pvheSVH7#9j_ zlB1t3%4{K5Ey`?R?lG)Ijxt*qHwa@bVGc5kAw`)j%4|_)3wy$boVO^mg?Y*-vxTvx zD6>VGEy`?R%qh%mhB?hBvxR-?qRbZl$103%hB1k-Z%>rjqRbX$wlGE&WwtOE8fCU9 zvxT|QD6>VGE#%ro8UHf=W&F$d+xI@~yBhNAqKv=1yfD5M#)v}xT^RR>GX7=!<=I6U zf4O>5#=ngJ0RHv}iUIu1t%m)d!+M#p4m*sM#Q^^Hl8XWS<@Ln?{_^<3f4#*3{^nt0 z0RI8}&CiB;+8Ds!dhW1pJN!RO*poWU;fDV>3~R{4enT;UzyE0rxqxBrHsl4y0R98` zTc;Do=VAbV>%PMnT^OqibG;$&FYI9y#_VDM{{j4s>x4BuVQ;yxhCIv%hq>Vxz+aAG z_>Yn>Hyrjw4f%y(KcpDIe*phM{LLB1ApV2+n>P+)L?Op82Jtsm6!r^@LHq~tAH;tU z|3Ul*@gKzBKGk8)IqahtgZK~PKZySz{)6~iTNLJ)!+dmDUlfD*n~#n`{EhvFJz>N6 zV_0t##`a?n|3Ul**JQDOSLg27A7l&pk6|7=oysNioOsj$yf$PJAO{`PnZ z|7j8x{44lZ@Hajh75ppsSMaw#RmcyG3jT6J!yW-q!QVbqA!jtI_{$HCD*jdctN7bH zAmodN{R6^&R$<@BkZT%M{HyrOFAd}NVJ%q5FAaN;Miu`m{?>*?6@R&=QN`ch10g3h zs`yv&H#ZYi{Hyp^@waX)>_ZS${H-60D*pDx3j1P(wPaDn-+HpB;$OwTihmV<>&wEP z1yRM{`m(UrEUNg+X^krW_Av&7chw!&%Er#&7ZY_rJwR34~4M5Ls;h)@@-=XfBCpEg#XaWEcQ3{?2di=EW{9746(%!TiDYxhS80Ra&}{gEr!^_yiWLEfUw_a_%Fz?A6VF%A%@t(z6@c1hOjq746%j(h6w*L8P?au z5L?*)H~dFX$oCC-y)n!d_T~<2@4`M~G0YajY++A_um&%z#S3}AG0Ya$=7ss27-oxM zwy+<046}tX`mi^6$PEtrK!knDLLPA#w-33_VI5x#vxWU2!oCnO%og@Bk72eLW(#@8 zF^vB({`ScaYy86gj$zGT4C8O?KZfxi#(x-pa~Cm;|1kc;_z&Z6?OzPzZ#`hhHx6q9 zV;KKo{OySr_CSka{N*9XF#d9wV+8*Z{OwB-BlwTtZ~iUh#f04Eu#Pa~$Ao>rV+8*Z z{QVzK_+Oro%N%l_!#I14;4gh1{X2u|45eKCr^b)+G8Dn{`i#eWq4QT*+% z8|FbZ*hd%s|QPlC5 zmlbvV>-g94w>CAbQ;j|q$z5rlOFAtx=Yw~aCU$ME;xhcSk~bq6tqzg)Gj z7B}Rph1|6;haJ}A#@N?;C*9n)JNC`LhWWWL2ODE-VV*n2*kX(=tY3&Rwy;-Xn41kb zZz0b!tZ4{2aACbdjIqTSTi8o6%<+X>xR4hY=E`G?E#$?;7+c7V3%MI1KQ83Qg>}F& z#uj62F~$~SY+-Ia?7JBDya{WB!#<2*okTR)!di*&UnS9C3psVsU<>(m;r~oSeqG47 ziw0XX*us8|VO??9voWlv2>EtlZ9>?;F&b>qU<-TYgmo1mCodZKTXPZCT7>;`qJe({ z{|5dI{H;q4`{{(W$QI8vH$;b9+6z4zs?={>)fILV!1~k zvh2U|J@N-h@|@hzb6mRuUXpNh(%-gU!GGiW-?M)8JJ#{}|M~;`kM}%w-qO7dJ6tPNV&E@w)P>w-MVh3#?;t-W86=en?6E|i?t1$#d&Y`+z5 z1G#J4Z-+Zz18js%AQw$u?1J_B3)|&F*-L7{{{bx6FKS`?cDM)b{nmngr55ZjwQx@d zbV3(&Ll4NCl5e%1^Z4d$a`J5NA9Pb*9AGa3-^pb4dnLS zBezdJ?1KMQUXYu+V1IxG`vff9Gr7zjC`Z@};t*@%53n|PA8RD{uvY9Zt(p0ewF7@H zhx&)|bf1&2_>|nOhvcx_XD)x6InBGw?QC4`H=nV-n|t`qZ@*Rgz$^3xn%;?{Vq=JZ zUxH8h@-1cNXD&_J+DG9qD8jXH2z;J=;^JdtOYi%Y^UIUJ_^*@XBj+zyUPRXK<#bLa zZJjINI=CKI!YWt|H^3TL3+v!UxCw5CTi{l>4c5c$a0hIFjj#ze!@Y1H+z$`HgYXbM z43EI0@EAM}Pr#G#6g-`5q3gFByL4^qe8#zFcX980&hhi`0=x(>!OQSU@}+0CEk5(L zox1i*+Pe0DJz+1{8}@;HVShLP4upf?U|`3tLxF9(4u>P)Ncb@v16V8IO;T-r4dF_bAvt6C-HzeDQQGr<12QK&gS6&?fe zoNGW6Dn7TARb{VoOt~}pSAU0%7VG*tR&#vRp4n(n$+zu%+dd6Dk_+A2TzYT&Hs`m) z-LTa&BT!Fnci&^*xbLmx6X!l!dM>9u~U(i-^`@;dCP2{wRoHmiu zCUV+DPMgSS6S*VcNYEy7MyYZI)8HGp5&op1--0Gk2NuG?WP@Ix2=T^oRJyS5~k)8mXqJ$AMIdz{~xY;pd> zrRUq}(@wv3^|#ZhUH$E=k}oqJE0)GSF6|S*kL}~Ym+fCAfAx2LM}FhJ%%An-KRLf_ z@qAl*VKH{{u8GffaoYateA{s^+z0o= z1Mna`1P{X_@F+Y6kHZt7jdwf+PlNW{@hm(C&%+DwBD@4I!z=JAyauns8}KH)1#c%g zwm9UvMZ0%+FLb;MQ!ouX;62z0GcXHt(1H}+hY#RGn1_G`_y|5;^xHvfe=sbAqkXsS z0esuZx1D>#KCmzB2m8YTa3FZD({r7Nz@cy$91cgok?>=cWgVzE;!c3utFz_suzSPt#b0iDnV-OvL$=!HBKpa^|Xf_^B& z01QF}sxSn@FtTWOHf_hhot@f`O8&M!^FAw=yc2Td=E%+UC5O7U$Eu~*=#isGjvhIB zD#wmFw#u<%?&rz#o?ZTpXW2f-jyZPEv2%`{ zb8M2sD~DgMl>GhwR{!T4&#-ZhjdSdtWA_}p=PpZ*cHc+exQ`EVok`94@2=j(X&>=@ z1i$|!{y%bW_O4o{yaF~t3%>2%AHeIL`{CkqZN2X&ZI!WI_Uzx3w2d^Aw(`!Tt^aW4 zdr4bfTOOuU?I%gw=n9|3Xo3Et*ClNO*C%cD`;xYzco^39%QNoV=GeJ;F+J*fg^fp7 zy5|e!D$i<{6|(!?JGvTfNdD2^_giIApReClqid43Au(SRV?$!TI-Ruj-A^}uo?*w) zwd$HxuA|Qe_tCR2T%SwY8tSNto9dV9TA7?o_7}Uk7MJbfIeMdKZ*re^RZZI&2{wd9VJg!??x`?zP`abC;}k9m%rirRmE!F6?4PjOBg9(_nj{~F!{;$Z$r zx@sr=HTT|={ITD)%hxPviYW#JHFfuo`urq3 z=N#Y8i^0(sfgbZmiBKoi*m;M1NOeqJ#-t@ zE{4TQUObNS)BFiZN{5#gb;#ZeA88MV@N)~UV2dd@$@Qn;h;>QwFaLq>5ar+0PubNT zcak+vr;G6u2SZmUZBuMN%J$W3lx)`bDSYBstj(XuhMDf#(s#>b#XI) zDw$gyi-r0Du%CM_Q0@;0y3Q{3gW(`tA4&f0f2Y5>Tj!#bzE{8`G0cLqD|_2*Zb>TvimmRs7;pn zw$i}ida)?h`q*ZkO-lWqcWvYmJkO*<-DmgL`Kx-ZcgC<|zL-DVXZ9PUN1c7^_zm4i z4quIC_p?WluZHh-&ql|5UCsPaP41+dpDAC*Wn2BUU3%3sc~j#3SDrnK9$zZeUwTM+ zcGC9Vhsty4mD%xUa4wvOhuG|Yf<9-^ZMAbh2R<3us$~D+E0q_*MIi30nf%M(61Wt8 zp^j8J3e0E$VdmguXrh{h+na|tZPwy%Y`7!s?b!gK0j^sZWGkk2Z{j7=EumaXN*9AT7d%Ut+J#1FfmdbhZ*kYLcdd|5~C7tTdSF<=OkmLChU-k|8 zTx3snE|rsOvoXtCmhi9abiITReM|F>vsfwne7Ld?25}aPrA(Ir^2AE%E%ke*p2^mh zhZ}Ta=en|x-Iv8vm5hv64MviCGu}(Hz_j?l{+<{;$mf-w`9i4;6b?)N#&`8CZ(WSb`E#9Lwaexs zm+|%8p4*rHuR4!^>qW9}bu1Nnoz5zDDM%au$UysnEl*Qbg z?0N;Aa4*uSewXLic}QLLEr3(q{q=41-P=9t>1CVh_M|(r#cjLWs2DGwv>1PL?!OoA zagIIv-gV68LuAw+P`;tgJK#g|*ruwicz+G`(<{^YAvS4wZkgkU;So9?tlm%9<^%d& z=vmJdwbz<>sz2^}#_uub)+UeA>!C%xcDLH#Z~kKUWwM_qyFd9`|Iqj6`X%w+f23|DH({Qc-h$00W9|B?;P zQqBVX%OlRS%lt1q_p-W9b1%L6+}HP@=d+k#`^p~9f911SD2u&1o7G=)Kl=@8WBvTt zFaGlTvdMtDdwl+xd)`bArsG{pb*#Td&N=Qo(|tL|XOsW7XZK*Nl->9cwZWYsf&PQeZk3&pG0u3dcG!`#7k(|5L~Fz}F+!DaAtlV-P2Ge(Vz;BioZ_$=~^V`5*0) zU)Qedo}a&r?9hf!^*MzsCfUF4-2A1=&yu#Wy_8>oI_H1sGaJ-@t327W?k^nSv-iaq zJN1$|ws-RP{s+H1?^xv2yAl_+8QXKQZZTE=4e({@5$E})*XJ>|9NQ1}=S$Cw@$Cbd&E|0PvuYebzFHGkXsNB1wJcu`+Pe5RDC1L%w}S6P#Y*ZF5c+#8A`s( zpPu}~e`MZevA(ZuFm{3K=RwBvA`tguKZoEw1QLq zLDw#ZOW5EBpV?rH-}7R6j9tt8H+C&t4cEZ0l5uiQSt=)g61_7!XS}b(ZA{s&%xv2Q z%b`y-*z9nRWhHg zg>`UKvRXaO-`8{Vu6jy4#KE&-^BDJJadC_1?}fd@S|;;$$Lg5BioDE!w<=##-jU3a z_XnGo_KO7&A=H~D=aFw%U{}9(|y%W z-rOZWuU(BjM&|L#Cq2^%+H4h%A^KIED?REO9^~7QML}#YTm$^K=_~j*T*3KM$`s#}C8&IQBB|?br+Ok~&u<|K@)*X0=r2aHhwr zWSv2mPt^N?&#wa?m$Z+uH{dOJ6SA0m5vJf>5NG`t(Ahg;@DiV=9rIl;8AG^MGCA+T z4%i7ZFq>RLhd;b)39qp^`eu5z=+0JoyvF#ub|N1fu3gcwe6~6=|MS6!Ya@3!{?Iux zt73OhTnzuxxq0CGe1mRcZES%)Y&P~0e4K1jci+;w^K4acPZhV}%x}LT>r&;XVnoc& z<1r%k$JnOYt^6E5bKdcMkK^CM7mjo4Y&!lOUDqhT!hav-m*i?g<(lWoY3#wS`y`)d zHrTSn28})0%(Wr59$||i&o&OyHjib8Go0hkhW6Rm3-(nX-wcY^5!b6fb8bJ!nNE4~ zA5-7j#p1oYDJvEk*za{ylg*#^=lz-RjG@(#HGMv)G5%|Ggx{TlRb^g&)bIw)zIc+!1YJbGrnpB~;74P|2huL)(@ zb++qou){OT-y}sk_HA3zK8J_h^S*0jH3spxNm+p^yFBl?yIjB6=OOyv?)uGei_h6} zA2?>)dG$0#poX9KO=A?Fhg{p!aTbUC-v5UC4<_T+O7SrC8SI%nO`jibUyPw*#&fZs zP|Rd{?-adns!y|ldiupvV;ok1@2}#QN<6E_($n?ox$fbUL9tU)XXAQU>HJI1XLec* zHza@ee=;7nSm)PmtidM*dNtOKfh;*eH(n)xC6vrbt|3Sn}5&ejj#p8_%PoOe@a%xJ>sDu9?NXh*pyVs z8(1oDz&(w-#iF=vh}FjZKyKm3%5Cs4uzlk}xEHdRcz|sF9R4hMnY^i`^5!$YiR%Wt zH6CNPOg=x%^LJxAUwN+agwK3i+T{32cq;kt|CrzIUCQ%W=br(-s%CL2ZW=Fx7;3Ov z;{|vTULi|-%!`ZKPM=?emy+YjyW$)2Uc)JirPtk?`SMM81ALD(*nQwbHrflcr9thh zbO5kh=|DE-yM|{=Y}WK*^IaAbGd`#EPh*C?XXz?*D+tY&NGM5PaF@iXIY$<`K9tc*`M>_ajqZg_-fB*pRe#) zy!DBd3LSgJUAf;mI@HceP9^^b_b-iyFFf~KvM*Bp&OKs$RDBKYx$z~v&Pv*vd%)hX z5AfyiPszls$uG@)fi0W+10GF&ZF;`RcTHTIbj$O7g^ikY=o2G(T!)VK`EdIFHd#q0 zYX0XriD9wSJc1scZ62vUZKJu&XMP=JhyGhV$Cgbpir0{RJ)U?pk8!W~DUn;b5cp@l z!AHuzEXJO2&#}N}&7Y7XM&_IDTS?9>&K>W0dRNX&X6W?22bSp6Ji)ygpA+4y{^m(= zGO$H;M0pCF3Szf;6#N+Yw$J%tcA6JECG`)}u|mh;b6r1!9mPWaOvf46dPLj|X%o$# zCI8}|$w^$)p)K$Efg7Da2hJu}U4t*|iqGZ+&YcHj)>gZQSGn%<`E+x>OwVd&Lq2Y@ zOY`S&vHNx^e?b>EC~HT}OVpjk(7kjdXMVylTQ)Dn`Jm)y^!f7#m)K+g&tWzxh?${% z-FF$A!U#K#uvgymO>*b?t&(?qxpVGq-UL^ACX+2*o4;h6G37PMP3m}Pv5v%C$T@Hq ze9zp#HSk?y-}k{D#)9vI9~l!}4?i;gw+)sV2U`!zj1#>De`#!GJ$&2v!f~()zTwj)+;2Sz*^2K~p?95+>*H)!=-ds&?D7EXRcAFQkP1l>* zwJhG~(#H-p@1ep5*R%N2-iE|vFFOpq>vLwitSxEBBic%nF4fGgHzya<+u|+wn z%e$favUiX6*<42t@|x^dqQk)BKGUQ31?ScRzJp@BsZI53AA=7$&UDYtYYWZH7W8Uv zbbY7tPPjYSpx(8M^|l!#X)Euu*tYL--8*9Bcko-s+hDu;UL=#=O|~q4XSgPfzzW>E3(-o`YB2ce?UP_gs_w zyMN(#)lz+G2f6kJyh9KEt!4hseE1f;j#K8x*WhhB@n@B-`p)!u3f_cipZO`D#d}Jh z&B>MO_`zdKIcHp2IA->oh0HHmT)YoEz;{d~#)HTKi|Y|)>Y{$J2leN8@Xl3V@>yWXr0_2!+M7pKiH*@~YBGCO^hw9WG8 z_#WzNSMKRNJ;wKfz4`xm@;#>@_*9f)7^TM3+~x}mo5YN%!$n* zw(8ILduIFq&x@Ji)k^%v4~7Hb5I6`9b&V~1`FQwR&$93MVIV%r8Bw%P`wj z=ruCz^9k%V>2o1zS8r>v-mm*jSm$tx>Q^gKI{vtMygU3@xz zG#p0{&knp!XFSJGasS2csfeGmA?F%jjGqG+z|YuwT={c$=mnk^Z2>Wvw!J+_0Xrn21746e-Rz8O}_P~N%F-~nS*P| z%X~w}@k`)BcH;XA-ws~wSd8^Q<@|E^6`7;-)t1Jupy!=zFXo4iNcJc9kS7;?H~!0A zz8k#8v!A(_oU%4Nei>Zl{$D6BC5Igf?iq*LIy$ST!jI!us^<-#9S?M|a}QlkbRO>_ zfAsN1J&c*sO`?Kdb8RKLO^F<}|6Cc#XW{vF%IP{8<@ownw znZ9|~=Wp@3*FEPXPm=v7Pc8Aoc%OQ=xX$L|CCK7$5HeoJn?PsxV;-Y4U0_$c#LX1^QYcF3Nk*Z3W>S&TKMIeqk-GcItiHm3>@~nQCaV_dE|Tk)PQ!llNQY%lw%6fewW)l&`_7 z@H)KVoO`NlSHZW~M>f3&+xhBhdf_|%raCkKzni?N&hI_D*w*Lo*yX!YrrSF>iitA2 z&2RGgZO42#!cV2O^rK7ZIG+!MgFG|H-yQ0B0DP{C zlfjdL9)qtW@2U5Xo?rBN>ET^IA7zuie)SweZ#oXM`#gRV2b0YX7518NZIstO`0W`j)EBbDqha*^Ys;202>1@dX1W~jJPsqSPn-z2)_QT^$B9!t@A{CK zocM|7*mOLz@f00??!1_tIK}hZ96ykpO`q?)up|~HTp#+vJ$O%?4yVygTOTQ@<9TI{ z51ydgwd}(e6KA?UtULpL%C7F6I1hg2z9*I0J(=#8(C?9Co%&WS*4H-ApM#I=^2xAx znz)QF#LfiWhX&L||H2mX#buf7iu!AZx}MqhLbw=kn)oH058`Ix7jTYy@gDh%o)58y zcrM-LbD6wTk`FS@FD~Ic|G4{~Vyi5^JUhU)19#wZAX!&2Mol=Wc~H(148V&A=X2 z@i3u%Pl&&Xtz^BD{KdbPPyF%{zP0oCWW@E&;`lM;Hl>)I*Z`Ri?j>hld5^Ni22VSF z05Z6zM0=2S7v_N2zZYkPG7Myac6S5x}RHG_r(3KE#sdV@j%AJ3+_Kc z`LcSR#rJr}FTsoO9Axn}4cU7xv(+<@)%QrUh3rFKS;A`~^Bo!Q^TPx?lup8*zJpoJ zJpq|r@vWWD-dP-Fyk1prR?oZe8qjOvJ$MJ+_PqKAyB)uoe5t;*->C0(=chpY4Sk~g z5a!^0*y&j@JnS7g@doT*Gxi+G>ii5+{-kGKOcj3R^Yiq8GTToCcz5(`M+GrkIW+mJ z9~w`4bt%^m+@IO#BlwgLHUhs+{93sOzhyT180a<6#uNNGpV@Um$<~GC$$uhqXi;Wc z<($Pf{yX=4LAQ*D`X|YnxEy{9S)2IExr1SU$0g-{urKVD+)rNX8#;=e$$emNIFO&S z`wpQWS(69AL3H8M`B&L*wapWKmMM>>YmTk7 zjUs#G#eR)FCy#|=Ks*)2K@s=Dwq##&yOzqGbZzoPIN7serjkAL6ZdLMlc&H>;Z!&c zPFD}v0~^Ga`i2K!3a{+^uybOi#vhYsz?sf1SDuyR)cMw8oo$n6@3Qmc&s;l4Jg{x~ zTK9^XesU(y1@Sqsmy$mxFMyxJg>VsE441$!;8HrTq;n?gGS9PbA$#VR{C{flxO$Ix zeU}Z}#une<#Z0a`C$FHpI!Ail`>@Yf@`0G0*9M08XGAPcUIo{{)sWfr+T?Hluf|aq zWq#ccm~2-sjNImW2XwOa-pVfMfo@!2_&B=KbLc^Jyq+9N&iCF})UEOf8?be8F-Lmn zAu@0FEZqwCcy81)+E6vKEnk=Ts*>@~!ypt~7Z-!tPBGJ=A|^ar+{f`iQdZX)i*@bN zx!?IBU-8fUn`Eh@Dh4O}Ue}LS7UyLg*>&*O%9_tj7TmcQ|_jJ$M zII(XPuS%xVN>JZmru&Gx&Q1RQzvc5cm$aMtcks+&=vKHzeV;0CbPm_*M#rnj;*-3% zDgDIfHT2KgbY_42Cvlrx#}Di|xt0#+BuA@b+tNB}?k(dnz>kxe%sbfRd}S6Bx08K5 z+1kqG^!+bP9MF(+H*xPd_xNk#JBlr7nEzy1QF894l_WkZX+&!7y*28A!r=8>T zDqmIEdwvI5N2}{n*SCRKsNJ8uPUaPhGTUlhi*4@_*F7`2-90ZT@t=QBJy|=-+QJiL zW^wfxJitE3Djx@NGATAEpY*-`J0-m)pQ8VXp69>vuW(z5D|^iEbS;aWN6Er}em40> ze{M`+DZc@>Dv06Ivz}GYUIOva%cpsE zolli_I`@ir;NQuof!xw5O17S#Q@*KuU-@EkGF^^)d#SD85M%3HdkxsN?-_NoOXWDv zw47t7+F{C&>KUcD8^-v|<=RZiM$^X$iOLbmw4eyc6XYAd-LirV&7L>E_0gydN z-eAV-Q^@@G1-S=UJGGbN-@s?^PV&cpp%1)NezDGRh{vL`?G-2H4q&J?>&9Vm|IQRrl&cAwQX zbuf81D(PBb=P7Y9wJ+=ghbC*tT=woRd$djM@7#WH$S%7N&}C|GcEf*4+nG9o?E943 z$kZ}825_sMraa1h{4;fIl9IW0x6D4e41VrB9z%=c!&Bm6>SPe}Q{ER-d^mLi`>^>C z9VYK&3o$x%5}e|B?}VwJ!a?fb<5tG^3^*tGm;YOme6?8DkolzVnp0T;-!-Q&0N*zb z-UT1RrH|`F!*Nd}$w#oyljfk{drxWK@DO|j$33l$!Jj?Dm++lu&FR5+o+A_f;CW-- z@JBCr9{%V>=ix&*_X_wFPMO*@e|V1aZyHni`a5dsEcO!L^V-K$ z=A+Z$Y&cU)UZBiyF8mD6=f@Y6+Dv7b&Bgt^_!?O0+=Xy4T$EhE-j_}=O6h1EuGZ+dTK$(&y&2fl;wGApZ0GK6M#fs?JQ_6?70+Q&+<; z;VQV2TrtoqhUfQ7J|^$mJC^8C%bvTItSp9?gZJpvHE_8$rHxK?B>(o`vD4CL=C#`? z?PUH_&lMfhcX+*0%#Li(hP)F7wW0Du$z`53CGnqaJ1?f^wbz<` zjU~P6cpS2KKtD|2~EMDkZ;rFQ z@AEpiQQiFBpFMX|axJ-UEy``1TFe)py2Ufk;lmeGw<^U$$544&X)@?uZN+ThgF z2n+|>^CKT;sDss@eb!dbiBXgDIEE0D6`8n@KYS5WbeMM$-(6R+3XUI z#ctPj(t{u3K&7}E{M0#m1>47=z;1Dvb9AoZUBrLrcknakQurV#k!#rKKfe>E!uj`M zUcH{nXLec;hXYEw*4QZycl>MZ`FiC?kj0WXp88l^u-8vhUxOyQeCEx zaXynz?z9*g*Om(OpFY<2g!mj<3y+a|n{#AN<6gO%e6cvRPW_qwKXLs={yN{WwmF@} z5r0pg0;jSwU3*{G2KZ(AETCug10_9+`zEi_X<2KD&8Nl3^cip_oC9a8hkXah8YHu* zzG>X1&x5SapTh+>UZ(t|x-+h9GtG9>m(rC!)7iC4*zca?AO59x!8hu=(6x)zL4H~M zPhSC-!SOM3uS;jH5!}X5I96l;}SDkHQ|Bd{Lk1qf|o)*{B8({-o*lFNSeO|JsH@VMyZhABQ9`fAFj$NC+3%0oS2E52m z+xRZC@m43nIq@1MLE0d z^1SoU!3*#b;5AHEnXPJ>j<{FZWBL_%72X8xaGDLKUrYY<|Iq*YaA{n=<^0?54!lc` z?Aa`?LOG2O+Yhl>F?F2jzr!)R4rKbhmz+o5DNE&**mim+%&^-ku|mITzK@gWMaL4I zi)4=MP42nQ@oVYoF;#! zQJy^la2`Bec?cZFrsv}8z8#0c!E{$gSqu%I$TlzY$*A*3!jF^B)$@bcUC%jWzp|^I zQT`lU<{owA#bbpnh9~LCM{$<(t`*0WN5iq8oetr#<9HB9JJeNV^SpSjKA8ObJ^Vh~ zT~GP{Chk3;tT?g+?W}rKfjp9sKpv?z-Rhm5ot~MVot~YZ8N5e$0m2CHodgIgEmgSk z-eHCJ2=9&XMu3EsK!6&`R{@WQx4ZLy_eSJ! zdoKB;(Pz2HBxN`Kw3xhWa4vav=h_ftM|y5gpe;$4*!Lzs^d+|+Air4bF999N?TgI1 zJ6kBH>18XYMEl#*%zUnMPu5`e11alko*MwzPs}3HIL;je=wdSR%f$!8NgCxR#37#v z91mrWPUe2h^LL&9qMY@%9Q6n3^cxdfU!vSIjJii7n|O{#z$h3FBgs#6ax{DND}EyF zqs-h-VGQ*VJs9g$ug<(b;L-EAEYis@S7bUKJ^|{KJ)b>!4#h? zJAr#vu}@^p;Sy~-#BmZNb4)wZ*K(Y~v%RQqUG~T`H_A~%it%_fGCzNEfME0D<^ zhkr`W8SSlGZaVkQ0O}Y|J#sT)7GzMySL{WHCs9@d_UK_8bx%Pind3O0ii`@`XTubj zhWze0yD6i}6;Jzf=Wsu=$zY#OUhyZnm%8Q7Bu&~kojQ_lI(ej1M&fnSq;2zH0W5|k zun-o3$Zals=9I5Nd%R_3BBR)2T$6m4!x~skIkYp2XOhHbK8JO%5|B&oQe@Yc{W99O zm%3mpDff6r60zA?+DMKAGzpc?nc-ITPbe`ZQ8~0 zPT)BA3w&lP_WJTvt)%6YbJBi#qTsr{U=tF4_^~&82Ujlw2PM(*trH`pMmdz_GZfY zIb?Xwd8Q`6<-F$U-+0=QP><{9xeuA9#BiU;IG1`L-;50Oq&xc-=u|&!7P;gWK>_5^ zmd{9+HWY*CQ$AdT3s4Fra0&e6z20d?`R#4_zTC^UO;@-cpdPd-wKd1rkURRBdlisL z<|@(?(5)Vv-=JP1-&=4S?f~*i8qc17PZ)rX#yRPfbH*(vzP>3ZuNrNmti+z&d!K(3 zs3zysH=`Y8G^ZV7NvlC#^hIJX_7lhpd(K=v2$kNU>T^(N31c}-*gE;OW1q#pEN!aUAfJC$p(PUI~=uO;d40ezY< zh@IEwj$>kY3uvY1&~8xA7pVH89-ipo{@TYgSMn~VBe8v zHgV5Br!D0-z2Rwp9@pd1+YIz0mG)$Rg}jn^hVuO%vPUi{(m!2+e#oP&H2OPFWP}Vd zkJ85duUk3Hc`viv5K6EaDyptQyHp)yP-&FcD zZyZd3i6DB1{^pHM)sSc`h#o(EmK?Z;?}~^G0oAMQ@o&?MO$Kd1;W&yqI$H zGJrhNrQfn36S5%(CIRiwo9c8XueWb`>L2$d>7q~5o!ML)Hk*9%R`IOp$!b^!Yhexblm1*!S%G(SZU?Xe+{8-*5#+!Q1Z|bmi z?=3S{+OQ3_!w$-#Pm&vQybE^HhxAR}ZrB5R(ZxJCz_I8OeV>JnWRG=vlkcG0My`j? z<9BnJ4?_a%gQ|JF7lz~TyL@6lU}?#zRlwRjT!gm^c?SV!;E$|d^n-2ChT0Zu|y;z2?=Cjj+`rIte#Vv8YAk+E_JoP&Cd zKXbsrm$roC@F#r9KB$MC?Sns{hYR3UWY`NTOrg%~ugf{@-v$#aa<7$zFB|>Iv9Wq0 z{hxObJ3Pu>WO#^U^e6Rej`0hLeUax0j^+F?909ra826!LSr<6wdK&&F@3^xVnIFI7 z(dE2vN&f~;(r?oLr{Ft$i0I2{$`N}y183l0 zc#Yuv>8`h&0@9115S_#x(r{xbydQ=?ia}G1NKlD)q!iXAGk)(zfdmfNS7~E96W46OdQTJ#z-ElF#*w_RfdoU*(>sO-bl^Job`;p67HYpCvqZgLCQ~{}IQx;V#?(@=lX{ zXmi>!@~q*kBER9@{PMBIJY<}LeP)j59(-YbP1-k*{K+rBCDa4tltkV0>v9cWm0t(& zgK7AIO#Du24fxKvLH_$}{=R(sZy)A2;ogSO2paSJAoi^QUywP0HYBho-~6V~0-BT7 zmHm6rntWy72HppBD!(1HrClAJf2qej@V=3cFW>%KNBOijmU`uP1NtE!Uz6XNd_H3@ z`O>HP$S%JJ^rY>a$I_?yz0f!GHfbTcL0yyLXy3=A_l7>)BlYX+jG)XMTc*x+^81mF zZsemI`N%DP6Kj{~PCo5S$z%T^dF^M9Jaay0KbZES-*M=CDzZ*SPcl>4Bb$8sA(8v@ zhtj?;*^dLRr|#uE6P?+@Idw{{DAe&6?N!raZ{TGLh#4P7H z9+Idl@<>6}vB&94@=c&F@w7KTk+fpxKkGZrZEwDDGf77V`DxUrnD(6}f1b~uPC9*( zKNTi}+>;E{GwD2emeNPr*v;46H;D8MNQX&)yz+CLD9UR3e>^tiM}ApfagFCXN?*7SkqlA%7+N%k1S?`gJzU0`#7LP~Mk@98d~Ru2bIx`ZiW{aUOC<7gA}9pT5ms4;#4lEiB=9E$PFZhz98Pe|hSiFV|KB`jx*1 zRzVi5fTgrU+C+cmZv^R!&49jTAiHeovvqLDsY|{?%H&HQrqF&rIunmw#3TFsZPeuy zI(d}ioz(XvG8XynqhBtv|AOnJCD6Z_^nLz*KsWuOdwbw8YtLC(c94&>S9ER{ z{ZN-ZdLDys&)*6M;Q)0OJ(9A|(k^r${~SpBj?tDR=K%Ts(Ft?PGYqO;=AWVLQCvgD z+4NCb4$qNCW*X1rQYQTrBeIdUA?H*{KLWHdpRzL=a$WiseaQba&*eBzHDvrRQ-L(cE*B^E@b~yma>YP80IHUM9~A)b&%YA=B)k z?9u7C*6fP_-Ods{yaa_%LJV1pG~}IAjq@vT8v;%$`PK_F^6({Xw=%&dGLdK24DPuF zQlG1EjlOHe{sy4eX|yN*I_-RX9HgQk>UFtdj`AfdYz(0oj8bDKM=Dg6zaRP2R1+{D$SzJTD z1$BV77BmO+q<}t(rQgz#X+a}s0=20#6x63a+@I17og_Vrc4pD$WbXGzbNxMN>9nT2 zHsKz<$-z$*v_STm?2$Cj;Uw%diL~vK_BQ#|0S{SM_ti{nDx$UjfpqC`NW>*`iJll(B34eKYfxx8wv&j zc3m(MhQKfw?0i5TOT2j$3?=L$ua$qif$AnKn#6Z;>@I+fGx*YVE?VXEc&uwB8-Fa5C@4653w+o@}-{0KWhPd z`nW*)MdXkIsgUe2Wp~iFYj}G4$OunFb_T_eFA%Vc7fBA=PE{6J1tmf^u1sy z*OtRFm=D-|!6sM@D`6FgJU1X`>KiXIU*{|&uX;8w^??Pm&~=g5TG$9{U^8rmEwBx~ zfDy0@w!;qC3A>#OVX9Dm6@ zqC?n9jQCK|vxCT3`tKMVMuy4kkHA;7MncqB@x+Wiw=}PDeV;fFGkMvX}0KS0Tj_j`YUC+vx4&0d&?^*XKxGQ}@n^KTld=|&ZKD9UL-FQBR^d9JJ3iqFM?os|Y zTfW*`p|rCXaDU=vp4-N8Pwqv>GO1G`&nD5=u^(~VpYn!ro&=Pe(~mTvFVE2*@f_z+ zuQ=MCjL!RGxz@+|_hzgkJm%^9LXo$~Y5@76i`ld@DVhF|J{?Sb(bqKEnB9tVWRif+ zrflI@>OlDk7uXL0WaW=z{~_1UA+xDy?Ka>*-U5qsL3 zNV}7cag5Bekw;+~WI{T9Ci+Po;=gB4xy|YC$Gx&gKME&9HcWyX>PbF@Q^<1}`)M$h ze5ga=XOxMI3a7&im`T3qS{`jlzQy@0u3uzNz5OXpZOXcC%kmZ4c|#I9H0>bw%!PS8 zC-yWS7QjM~HZ680@@%IkJoQX#K>8B++}Y2ysoraaOOekUu2J8tM(mfv3RnsBRr*QF zK?e#~BP;qUNAg(%YiUKMS?4+44SSGbWA^A+##nShp1Vw)+mp77 z`+7KysaM4(t&fN;CH+g~)@o_>?M4CMR}eMvi$(2L|V zjs?*RA2ag9Dq|B!woAHV3&*MJQqiaveiBvXe4whqQm(5AwpaGbKxgF@OD zCp!8KoPcl12mLEN1tR-1&JptX-BX@EP2t%j>Q+db<0!lEd-BR+|7Sp!ne>$(osECj zdA=oUoZe>(kzX4989S1DbIAvprSNR3w2S^I%y(Mx%#t$C>N}v#mp$L#^d^UT0 zM2gg%y!a5>S9lRFA>(?Kg}$V+FATsnhhfz@S0?W(q+iAUu#fb)93%U}>u>{Z@o$>Q zvv=Vh+;L9v{GXoo$fEEzWpJ&i8q|X7+;^XS4X6nXpf>eGzD4wHQGKWb=wEVk_6?!2 z^GYkmK5xE7?~>jOnnDw30oC{Qen_ zJmNkgy*K)YE*JFz^rNUR^hYn~$D%&a4+a7D7BB4^2t1cTp4rF=rS%mJ<``KP4TT{< z|73S^_*BnH@RnCJ3>{45`o}N|(5oWyNf+6ThEL#A>XSg7rGLgi6hu3}dJiA&%_~Lf zJC=4XWgFZD=;G|JiQ%%_|g zwwyn(?mHDKvfeoewn0_a1$j;8lw)lx0Rm8u^`O;Im35GQunT_A8bAzOglf!xbD$WS zGLPH_m6#K?hdEFTO_^&ffeOUR)gS@RKvQDP*K$oqihvd2%&fVZ*FUN8qv!XMDxA#f1hp})q#b*M($bHI5vOy3_=U@vPhzEotH znr+A8dB}@?ix(Z51n76sY~(v18Hz5Xv&UZ3(Z8Y$kbWXPL;Cqkjz#YDM=CavI*a2> z#(AF25#5|j8hx4ElKas4qNy;2>-e6cY4ow!@LZ>aeya4GM<3EpaXyz$>?>_V$#v!RCF^YmuL2qwv2WMoWE^Nf7tr^idK-m96slrI5rVy z|DC|1B+^#FN?6VF_@Q*_ozZZLVbK~7u9W3aP~Jl1>jC?dURE6+bwp1x@E2*=R8oLG!S;%F!Y+JSU@vvR29xQdB9YTR>Wz#Ok$KVw z&Ofzbe5~YYSJ6T4#a|R10CXs|h<2e9Dby(gIVRJdqC@P@vOf%8!PjsUs9*AJ_Q#x| zV`k2o3 zxGo%veilG36}2x|JXc>gGode)QJAi1bU&9r7IWg0)}2U5iK;T|h^QE&$IJ z`MDpxExODeJuX77e(bX7I{J^U6cr+0xn7Daq&?_!BK_-M0qAK~Pv_s-G8Ve!#OE4$ zCU>Xq8=3#sq^}zB{8d1XMOS!+K1&llz6R)sA6sC7(^qs0ZaSZk-=ALe_Wcd+;r^_5 z*^{S#J*)<7!jE1j;~)I1c=k5>jl5z9v#0#DG-OV{T&mACk^L6xjt=^_IbTplg0~F+ z4*Fi|aEE?Oge2r!4Qg;d_4Q*1$z1bqCapTqE8k?#Mm0 zp%&C}!rphBfVaG&d(?~j(~);Nx{-E*`zYVPi{maF*M)lYE3zwYK>ALO>EB}7lKf|< zCi!)$?2%F2B(61~Y}%O0aT@mI-;M6PPkLiOc4@SuSn_M?jOY2~-sg+o<9_V2xGl7y zPI6x}Xb#wQaci#crM+7@mONVmy5!&I?3K2a$xGV)0d#^6(4IOYpLBGyxE&y`V%q56 z&%P^krq0N$xV!UMJNmwgr(MN8NbkkHU%~;}bByzz=mLFROg|U*hJMfo`a*vg2!r55 zK(@sn!B80HG$j9+GWmb(B$8I_O-oznd`;SYo94?ZFgjg4oO+5ZN6_ax*pH+>^i3>n zilhJh2iYGdeH5T)#h<{ZFoyJRfVw1-ma&?&Xo!NbJTLc8fblR6COXfyC+>L3D~CA7 z6#BC`1`;41L`Tup;$&pIgnbI6LOP^5EyyFqn@6TRmjRj7BaeL+WFt%Dn~MBmW;rbB zImhiYzSRA;-Plm3lrsg;twd?lWb|F8zgG{7GgPlp+_ryBM%j6R=Ao4+M(CT*7X z&E{Hl_OsAM(L;V>j94nH|r48@Q*N(~k0AeZ|PbmvqPW$wsbk;@Q6J zH*^0*_Um9PYy&Hi~CN1_Ao1GkH@^1~N#eJ}IL6$TeXk z*RR7hWYmXiizs6t=g6`6Ds>;keQ_M$bmmg#A7AszKlVRlQL*;6XbN?=}Vr!FOz2@ zuF`@@&Qcj?ur8 zp6J2|>Z?LEGdWK(WRD%Vm#_Gy4@5~cieaGrB?rz8`yKy)+**)L;1 z8G8{urL85C06CXPnbYAjXB1_P@z$qg2I(_l7R-h@Fc;>*d{_Vr0sSozSuH`2(Xo=H z%-?PzgBH#f^1SHHGp-tS#r8_1KA)q{pQUB~-en#i*lJ)$2<#QsX4 zlsuXOGD`o-sn0XFz0Z{Rxd+*$i~KLb1?nX_a|_UqSkckza1Cffoaki$xi04#`jt4A z^Sf}z;T3}OyI*Iu6Xb^sOItuoXzo1IjrX}_@{n>` z1M(?t1@uR0TWACApgnY;pL?-?A3dUOiO8q4qtlGM-g(>8R==dwf*i<($uI>b zIcLfDxHsSI)uc~_Y2=SQN~b$-^gxe)ZR)&$b+0z87cGbD@HXolF>nrsvumciz6_}sIz(H_`%f~?_;?xXyl2|MSisARfFms?B!jsw_d06Pp|j{$5ifZYZfLL~Zwim$m0v!Rn3Uq?bfE@+80yY%D zUIN%l0DB2wF9B>NfSm;T0y-7IMgrJJ038otBLQqA@Db3@0dziq&Ii!>0J^5FA6NrxVI8c84X_b5!DiS3Tj2}X zrn2bvjw_4pr0sy6unTs>9@q=}U_X2b2jCzag0J9fI1ESNC>(?1a00%8Z{Z}Ig74ro zoPo3OJ^UHY!FkAqJjjOvD1;&?h7u@+3vdxGfgdhI0ItAQxCYnZ2Hb>Oa2xKxUAPDL z9p4q~;7WC<0X0YU^ILJpTZc3f@l~E<5U)-|C=j|@uW?Fi4X&^5C`#)0Ev(U$&do6kOt|H z0hy2m*^mR1U@}aBsW1(u12%DG2F!$6FdOE;T$l&*VF4_JMX(r_z*6`emcepZ0V`n@ ztcEqP7S_Rf*Z>=06KsYpuobY0E8Ac@?0}uHOJx!Bx2`O9leP!;!amp!U%~-62#4S+ z_!ycI; z8bCv61dZWcXaY^488n9$&=Oj~d(ax%KwEep+Ch8h0389FxY`LiLl@`@*u>TD&;xox zFX#<@pfB`;{xARr!XWq%K7zq81ct)LFbsyn2p9>YU^ILJpTZc3f@l~E<6t~YfQb;J zvY7FAt}J3ni-UMbfJ8`wWJrNjNP~39fK14OY{-F0Fd3%6RG0?S0h_ow17^Z3m<@Aa zF3f}ZumBdqB3KMdU@3eK%V0UIfR(TcR>K-t3+rG#Y=Dih2{ywP*b3Oh)orjHcEC>9 z1-oGn?1gCN)a2n3QS@<5X ziL2+}Jmf+iTuow2he)tj&z(JM8;eT*tafr09;A=Px zN8l(NgX3@lzJYJyB%Ffp;53|pv+zA&6W7kcdB}x4$cF+bgd!-05-5cWfK6Px1b(;- z0k{HJ;Tl|r8*meD!ELw$ci|q~cYN2YL3OABHK7*NhB{Ce>Op;I01W{Q+d zU%)1=_lE&65C*}A@DU7#Autp^hG8%qM!-lI1*72;_!P!K6hy;V7zg8F0!)M$h=n+a zhXhE3BuIu7l|}JCxw1$lEe+Bk12Q2CvLOd1!DN^MQ(+oR2W;Z{444VCU^dKwxiAmr z!va_ci(oMT zuow2he)tj&z(F_!U%}UKSY>hj53VeZkaiS~!ErbN-@vzU5>CN)a2n3QS@<5XiRWJ3;2 zg2^xirouFs4%ozv888!O!EBfVb73CLhXt?@7Qtdz0!!g@SO&{s1+0Wsuo~9DT383` zVFPT0O|TiZz*fK}Zft|?umg6&F4zrwU@z>0{qQ9mfP-)dzJjmeFdTuSa14&CEUNs` zmBk6tzJYJyB%Ffp;53|pv+zA&6F1JmdB}x4$cF+bgd!-05-5cWa1kznA1*@xuE15e z2H3=n8*meD!ELw$ci|q~cYHUiL3OABHK7*NhB{Ce>Op;I01crLG=_Jf2{eUf&>UI- zc5t&5ya%mS7H|KnmBr0Aq_u_jp&hh`4$u*>iJP6EGjxHj&<(mn59kTKpf~h^zR(Z) z!vGivgWyB>2nGW-adRkq48veJjDV3a3P!^x@F|ReD2Rr!Fb>AU1egdh5DRe-4+)S6 zNstUFkP2y#4jGUMS&$7mDvRI$PgfR`NSh2(U@A<5>3~h#oB=ao7R-h@Fc;>*d{_Vr zVG%5bC9o7ehh?xFR=`SF1*>5Vtc7*39yY*6*aVwl3v2~!;^sEk4m)5c?1J5}2lm1~ z*biUA0XPVU;4AnV4#N>R3di6$oPclOTR5q*_|w0+vN%QBcW@fcz*+bnu!)=J;5_6) z9^^v-6haXcLkX0^1-J;8zz>%p09W8DT!ZUy18%}Cz$R|qfxB=I?mNC))u1}mfSOPX zYC|2U3-zErG=PTC2pYq?&;*)7GiVMipe3||_nkae;5D*VGw)>AHiT40z=_r7zWtHtr0L1M!{(K z1U`i^5CzdN7RJGNm;e(Y24W!&;voSNAqkQp1yUgm(jfyfAq%o02PVN}m;zH(7A^nX zmBlpDrUN!{YX;1OSuh*sz+9LI^I-ujghj9zmcUZ@9G1aySOF_x6|9Ceuol+Ade{IP zVH0eIEwB}^iCf!XJM4g+unTs>9@q=}U_X2b2jCzag0J9fI1ESNC>(?1a00%8Z{Z}I zg74rooKabH`VUtYXG!}Wu!&pe;5_6)9^^v-6haXcLkX0^1-J;8zz>%p09W8DT!ZUy z18%}CxD9vUF5Clb;&wHt4mF@A)PmYj2kJsSs1FUGAvA)<@GdlgrqB$ULknmLt>8Uq z4Q-$;ybtXFJGk8eI>HAki+=xUWpTR`X`P`9bcJrv9eO}d=mou@5A=n8&>sfCKo|rc z!bdO|hQLtx7>2=c7y%<;6krp#KY>qS3`9XRjD>M99wxv&m=6nJAuNK$umqOE z=dcWx!wOglt6(*(fwiy>*24za2%BItY=NzSP2AoF+hGUngk7*3_P}1)2m9emH~%p09W8DT!ZUy18%}CxD9vUF5H9rj_(dOai==efSOPXYC|2U3-zEr zG=PTC2pYq?&;*)7GiVMipe3||_n42B^v6h4MwFdRm}NEij9;S=~2u!%cS5DjBt z9E^tvFcD%P7UCct5+D(hAQ@6171AIbG9VMOARBUE5=@3EFcqf3bigL=%z&9N3ueO{ zmBrMWt}Nz~HV@{*0$2!(U@CS+4QpU6tb_Hi0XD)W*bG}>D_|3M zw!wDT0XtzA?1nwC7xuw^_!17lK{y0o!PjsYj=)hk2FKw9d;{OYNjL@H!D%=HXW@Im zChnYr^NP|KA?0cnL$1jSGSrEmc*!X@y-WeC6(xC+hk z;J$vxvzvF>t81I`+Vk$R7w_zb@UChM?`RTuH<81d{2bPzm$L@D`S)SYzJCaFj{hU? z-2aK+Cb70~`=5Ci&s?%1bEsFDJG?{8{0CyiYQ#v5hz;5>CU#>i7=#ZTjqS&v^BMH@ z4BEJaa$l`u-v5{H$@dT(2mfuDOS_!EuqCUsH^@*xa`hCY2gCN)a2n3QS@<6QZ2q04X4GeReUEKLA=fD6>c>8!&^JFmAu8EP z=e`OJ%zg4r&U*CvAhf4Xd(oaj!X!jvsXD+@))`?mc?;>fNVrzy6_Zz`#Kt zel&Qi|7%QC^w@FZCrpfqjf=Ne5)zY=Q&Q8?en}6}i50uB#Ge7Il`B``UwQl-3(tkkSD(*Mz_AicW z!w*$*_qM;*{;w|mkSln!4|ufkKU5|jxAvDx|1Wi%Kg+eGXJlq&=S-SBW$Lu)pUs## zYxbPE^X4yDxM=Z`rJpZbzGCI7)oa$STfbrBrpYZ2=TKT z`j=JTQ>ULfY<2(ZZ2z~a?~b}ZOQt`fJP&Bk1J!@(7jMole&YYn2b}xFRsT;n6LUQ} z=nDI(sO#sORAgkIzLEX z(0-*`D?G*xk3SK->&dXEp0+2?$X;`Jprw)?>`t6L1hw4Uzqq=1`$syeBu<*y_;uGQFrr*lm`KU9k!$TGkZ1+}< zp!0rwdsGfTdl{nIBXW2_H(Abj;e`kM|APw}kI3O?EQS2>k2;h3BRTxi&Fy*XKYv~h z+F6e%NplGKYHJyieaKmg?i!yT%0%7nlXC8$$`K?SI2yhKjC}wDWA`*kV&{u$>)1P z_AmM>`>ObSFLC(tEBtxY_uA{eH>&!4Z%Qi=q3PR*FycLJtFE+hL{?#8&z5ceb79Yi z5-N!#!+qi5Xjuhs$bR_?zM3Z-s~d3R8Vs z&DF}GTx9ujX z)0IMLw`@=Po_g9GdHz0Ak&|bA&-uvQ_hMzAPvjtxk{R1@ljIThco@T_$N)F*ZL%D{ z@M2h4<*+I*$??mtgoV8t%mHDdKIOwIgrR3ogb}HbMVQF(Ik{Q4=fe<-9#yVllfqt- z98d^3w}UGgkVBYOf*hU=L-v(ka36TFGDlUyUV1s~m9SSieC>6ugM0ZG?bTjsv(3R+ z75X6UP(f%dL?Ob=@@trJI&LA9|C%`_2QrfYq`Zkd&P}k-&@vniY78TtNsTms)ZPel`y-4VVS74E zdxaz0G0#`x_=Pa-7t@LebgNvX{E@9Z+WC07C(0T1EcdiYEm!Utdr(pK&z394>U6ns zFW4N^C^T;NRaA`=Eqq=qlg;R!UB~wM-XKY)RqWmd%|R^-(+a2Qy8JDX8v+Xte?C0C z67d`TAlCKjYb3dA;T(pC|N1vJmQ$Sy**1-oV47$eUuvRgtQ;9g`&BE^NpeJ|UsLOr z?xZ)R1~T^Q$ZI>&?M2gt6so;QADT8vHE4x#uPCw6xwaG*RtaSadbgLvNy^I_cf1HUI;GQ-vPP}$LNw=zaPb*<4Q4A0CaUwe3F{wx zG~}?ou4)!#5gN(a1q< zGyDO^NVg!hXT-V6X5N?KTAALly`+ETkLZJHgc<*B)lC$pt0~eP8H66(WLVRtm>fhB z-f60gfD*u!c}$&-j;S&tinZ#dIvKoCLXl7uh+^AKf-xCT?bO>8FGkNMIw_luI&z@% z2Q&GVQ_(Twy3Cml80d)+u8c^MgPH3w&toee5m6!HF%AgHo_s1I;^_!8-P4Qwc{bv? zi07I1vFXe&qKei*Dj*YYT&0<8i#AFrlo9llqQ=H|%YiDU&c3w{k|JX#I~h3Sl+CpW zGv^^Mw`0v^`}bLLkbYnzh;W4%l%S-`U~YQTcA)xAxnefc3K?>YKFR=&%!4*%jH*nj zoID$@1Gugw*jA`kGi11%X2glKL|UQgW+g%zqqc2@qB)2IWGfe;yU6n5vLzo$%Go)Ox2c6P{T&9dy64U8`M7KhC?}6e5JvG~VQ(0_un$Wc%zTEnYpaa{hz)Bs+$i6M zs8lJ8K*-d=TDSTLiELGT>d>ShHZy$42yQnOjAZq^O49U%>tn2DYG~?F;GUa>Vws_in`cy19e;V+`p(*q(4(VJoLQV<&1U-sFcIizky-Sas6iJ}6A% z)8r`$^@HJzHyfiXo;r924Xcv&cGpzRC?Zj}M*n*CNv#7hvA7t!sgYvP*eAVcLTQxA z24RHK1cu=+hllITi)W-2ngdPp44P)BV2m*1B-&*2f0-x4Wy}t*%9M@mEtP|Y4z5Gh zvbiLKt&B5F_aq|K>E3JMuZO=89?pdCEoOUfbJySe+DOty9};-jC|oo~6-L4a4Z&q{ z!|Xu>oE0_ zYw}`ok|2{f@eYJHSiAIvY!CVvNwZq6;Q*&%v}VlXM2CK3yTLjbKO>J(0kLuM58P|w zS>qu%{oy7#xLRx+zH6FtZ%8pY5g(^52>!XmI7Oc8rb28IlB30@j zL%&@$l%ZEPPe@oM6w-?(AhLS;>T8mNNKkt~3bLM3hRWbLNwQk9dS0!K_-#FKJ*}K* z++&umLL-YfY*8FG<5wlV)_FVrnmJq8n`&8F2hAer>E$^Sz>8VnlI1z};_hY2{dyQr zhlRZv_Lj`zRI4|>r$%$b@vj#3Bh3c5l4iqu5a*$(+)NaDS0_Lp+Sr&7208L;;%SHnfb}$l&h+;j1r6=$iixs?S|l^=D=M8u*oJf zS!5JfA#yOAnm9{J>L7LbfyfahkWov9yl`DVlF^Hif-}}bUT0@!?jk8Po7sN_=KVVJ zS7FL(sZZwMl4u2LVoAGp%F3z6_EI{V8`2s#?M^Y}3L6VDEXn8_HJNQnRIf`jW}X!k zgDyjf3q_U0D@eyn&j&YI%~5^i%SMy<~h>IveqS=+X~f7@pd|P1;cB%g`%SzyJ{-)P2+GX zhP2w=i*nn|HC9i6Dp#zWB}X&+)H-MdJkJKF3Ffs0gRY5b?c%S*H*98+O+Act)RL-m z1G6yZmZ3weonfeZ6lbFz4n@IfX!Q{ zsb+H?9577Hjcu#52&$^&ph_vvnhBE8!l1L10A3ar$L}&$~5HD$G2Cum> zx~YQ=ASg@X0NWoFE~B56XoMgRD>&rY>1Ne8$w4+5biA`9n~ORo8$#JvN~%<%Q#PtG zy(x>Ncw?E{NjS_JEk_dKvremCT4($EYKu2FReZFbWO=E@TPlA>FH0<;wxzu&#vRftBS{sc1e75OqKx8`#h)9ik`wo3lpflJb8Q8J zP&w+X!Uhi#KByd-Ch;1AHxOpIS>6xwf>4&cRhAMJ2RG|&bs#5EswDG&4aIc$Hxnb* z%85{A2-7;)JX|*&GIQe|^|FcX#YdaTktB+pRFWLjJ@L54r82Eg zDR%inYevh3dTA@sGtdcYRU{2yS+~vGP<8AvG`~UGOdr zG-8#$V6!2Fy{rMQIkp|ji8jL|YPX2hi)>5|q6ooNF{Vi(Nh3?wMd-p*@Qs6nHX7Bk zQ!gjZT1J06@Jr*o>x-Nk*R4yO#1i7*B$C3%;kJz=)#1w`sYYXHqIpwb7g{At-E?7* zBVBN{X~FnGwL8%R%#62xnp62v(HW zLh?G$eK90&hALOFZ>!5X260N_-OXx|9r&euGhUe4pDy*uI*8OkjFIbh*yc#QgfU7D zc1%F-8U-VbC&CPAwG?6Joifi74L5TpcO;jVOMYx(oa%No4Di&!Tn_#9)JfwoT)&1v z+@S%1s)t(#H7%|L11M{q9!1ogb)F&KPqH9I29KaVNN_INAkzc)4JAot-JNMd=nb<@ z5F`MQFA;+Aq?)&eVN#a*TN?*U0Ahwc@z9Jla)WHL%=<=I)sS6~CNZ5m_GmC++M@UC z5UyQ}BuO#eL0p$=l&he+{BJ&hGHV%TC4&`nvs^Cs>0+B%H8(GT$-yH=yMQ9=CuXy{ zYtPirO8LgFB~_zA6Us?P$fkNAk%zkxl373Px;GuYv>$@LT1DVKA$!;Fi?5J#)dx9{ zL6x16gqb_49C#}i$(wfB)S%?xarvVgFW;Zi1N-v*nR3R+?8`ZuLxg#Yqwi<^F4Wo6HyteL`V))OTB`6d$k4=2ZJHRQk;3p!Klwa|a&nS~nBj2jg`)GtN4g11aJr*oBIg zl1-e;foBW)KGNuQQwLA&H3zM>1|-~NUB4#}4vor*?YeS6t$4QVaHU1)-4a?EixzwK zZ1{*!9W)E8nQEo($ZH=EHPw<`r(uRJ$-%@A)+~*4lhDOJXjEEkoDDNK$r4BC+D;XX zA0$yFp|T8#(prjn#u|(r3^iZrjpy_Yh#0M|AlUT-&l;t?Ae40kT|bwdY&u0VQ(lHY zX@!nB`ZkVz^P%Ou@fCI^gfN{uaO7r+XthN)-b#oVJ0%)ktElq zjj6gf1+Cj8glyc^Z0jO;+O-td@yWEqY$8dSxtlYYD!RI)W4(zw<=v(PAn$*l#u}Dltc{9P4ao4;pFbm#qnnK@Ft>#!1Tf727cXQBKN^i3hCOh1U ziH9nrTCM(xc7%i`qn?H=X4S|H)Yc}l*Bsp@n+>&@xZ8xS$$gZqT?Y z)Cwbaxg@=3gAh5Dsk2cd8~KQzl8{j6{_5q#yGT%N-piTw9s&l@ykG#V>yv1?d^M)4 zr4rAG+UplqVwvJ0LUPdlH=+F!&^7- zG1oMrlsrX}vgt<@dKCI2#>%GORRmWXLzhitB$0V&qgS*+p%ixvvc5r0R22^CN_dL1 z3g+Nim;1DgU^YC|?$mX38w~{8BP!zdrg>0|TBYjo6*_AS#b#U=i;+#$!EJ@BRXTj@ zW%I`xY0&W0%H62SR7)f&H>+>9rV+AEo0k+Rb6+_%x~--y=JA5-jib zm|3f??rAH`H$n2StmT+{Wu?<>4BmQRz5$T$aZCgu?;@BzYhRdw+6bM$62t|S&?9<{ z$!!223ZW5^ti#v^)d8SSZWgSvh1a)0kUTSJd@@Df_a`d+3AiiEbOvt@)iHO%2 zpxh@$$j**3C?m18F37m!g#-}hg_fv|8EfQ0ok+;uWFRAlc{unPK`;jsg9Kfj*t3Kz z;ws&OwcXay=?aGA%%**zA930@No7Ab;SHUxRq9urbbjcClKmRNqYq}~-YnKzzpZ^} z7c*qGXTn0$#Ttvyt!7OuwC=BNpIhWTimMm$b(O1D8d*LNTWTwe9}#y?Z|GPfYX{;9 ztzQtwEJLMPq&BPV`jL_SDp>WIl630LUOx76-{v4svyNknmv2*a4lZL4@5U;dnAUt} zW?us7r(y25DCC9m^H(>1o+cv|ul3AF&XOqW_VlCVj>zN61_)*I0=UdW@Ncq-W!M3NO|5GSTGQg`Lc1as?k~#q^WU( z=BVp2(iiTtc7Q1pwuyDfMA@wRs;hPzrK{$4I-R$`1o|@^r z%nkHAjbJM@fYAA#PP8-vr3}+_Da;Lvy`hMegE319X3fCqiM~;1*GFjfoBHI(}@z9Ybs@q$72tvhx7b9JeRUEErV_#x%idxVCA1 zOE3=;pm0FC9 zF11mNhQ@ZuI}``GpS@$Rl7oB_Y<~J^<8c#>i>o!8`KpIO+y1mhQgvz|Kd~`&kSNCb z2mM@v)gX<)bV@0zBL+@4>RWSHv*hhLo8(|yD&kZZ#oqKnaNJOL9nuVWz}kv_XRcXD zUz&NAd0vdMtecd_#CfQZ=!yPuXNzu%_1bpMX3W!ElYSIq3!0nMLQZK#a6_c#IOO!r zxfw^ygu%8YR1=efYNTh(QMHyq$C^dZyu~Q&rlSupYDJRz6-RIl!+gl$c^@hQmuS+} z0S-f}bKz!&Vsf<=;Y4Cv2?b=6ZqV@7G}}Zq*1^ej&B5(X&fURRu9;2x$UPQw(c#!6 zh!ZqkP8_v5D4poJK1wPtn|_pG4&^Tn%Y3e)YDUv+Usx|~!!eC+-GbFkh5FFzHN{03 zNylDPp zm@W9rM|*B9LUr0`gVj7c*z0X#V!?$%)kzgXunOKd%#0d5CQd07;Bu^!Kb<^EE3Ato zJ!o65acYb!&drWLTBFd@L^8o|4|IkR93*%qV3zgt_n_`KPAUf^px&Cjb=lS?j0Eib zg65m~jTy7$J7f98iX4n6)hDPU5KT~X(osPt?L29QIn#74NoI?D$f&i2c4_wI+Tea?UYK&{>kmn@XUwwWZpcl^J^GoFx!a8fFgj0= z8MIBBU;{BT*r{RZlQLG9(F5ZnO(kR)Hgcf)wA#dSGIf@6Y_t%x49UpYh30JkgnkR7 zIw{L0D3jGiaW7`nb%O=DsV6b4`QFid@W{U!P}TP)zYqTv|7L*Z zppht@DRVQar7oDb-?qupmA*^U9}3EkN8Stzd&~U3`#0}|{npe$tUIy-){T8fV&D&K zPex+!PeiPZ&&pn7?6KrKyH?Q|3P=sp>8Xzqf&qE4F-c&rgmn6 zdo@=q#>6t@z@F&BS76 zWzVeq%i5myrqL#Lju~%EKo@en>UlLsQBQXcP7YFo&|oD_ z-yPLZC(&qQhPETj6w#W9XsyY?HsCMXm6hZ#$ifx6NK$oLf-wDwgZY~EWF9dyo*8rWe^78%tVaBGb7I#$XeFB`#}{%}x& zxvFoHpmk6OY2K{z_DX+VuZz|4Gg>zDOIq_U)$p&Pxc`V0|AdrWl^o2RSKNaARk2-L zHH)LtCNonv-yfJaK<=-TU(q=)-6`>G&`s+Ysqz=iMF#p7N55gUYxVjWrhH3cTOnGl zX03C6YYk?G!5upBHwzwCm-Sr;SInl86w46X3_2J0s#L4YrWUJmmSoWq`&F=5qiKX0 zd*!NYdos+};7?zy$)k44sP9c}Z<>+M9kg`TEz$^vVI~?9m!M)Hhv4Ss5KMUFfeE%~ ztQDDiqme_%L%Hd?7f%z?Vx0qOcxikDw@4ghB`LbEPF@~yLpjo9(3OZuYR_qC(SQ@# z7=I-P?Fx-!g5J$Lbenr0`S($BkWfG#GGT+;7PF`&H8Y!ZCpkzJYzrh^jY~bGJ3M&2 zv_x`tQA-vvxLw99aROzAEY)w18<2d}8R$T+UdMQBQlB!m=`Q4$ubah`^cAc5m6NQG z+7}pQzHyh^WP6kxwAeC#q^eTa;K;Hc3u*=k`Lsx1 z@LIp?)#&sY`AR1WAsvnJ)HY8^Zk z5ND(QIOry<>?KEyBZ9VS71YQP@uB{Jlw*1I&A-GDl%x#bc5~I)cqn%ucdwd#$Z*^o%3lA$nK%cL z5EsPURowO_SCVdjxV}y=yF;h?DiNcJtAqK=U}RR+OabkY%pV!bJoPAZ&2#c2Ie6~+!690#-OpettuWWcaE&JD>|4EwhH`Qlg_g+JPIB}C zoqZ4tm^!$IA$@9%OW)|pd|7+Y1`#}J=G?N%DIY*E1P5DzJY`eO)b$oU<&PU(%DHQ9 z_L^F8Fb5JP6KRMUL+xEU3%1R$k+9S%^bWzBgJfc#GZnJ=*|bOO$U!{}tq)F^pRZ)6 z+vb-de8yDvf0(J{{ck}kjrr^mSqGCJUWTr(z4Y_8ALdZ;7j8ey0WbCA&GfeNKmOxC z9+89j7i@pl-$&%2AF`^bJ^z=7{8NZ;zwrkDv(Fpv{MMxNAN-KR&)r;Ic;NmY&*2dd zmC57593G-R+O_gqE%`SY%RHd$1Khtfgt!57XTgQwR6# zQF}3IGeVWUL(DDZ=l7<4cuaEHT*AVf>;F&xrvwUrutvZ997zW^@x#FrJqY=w#~*)O zO}297D&;9SB5%wXh=S;d%bOD*DI#y|CiatI3Va4!kDdZkeLGe=5tp}&@$Fc^e)HCd z%U{f9{{_!%fvwy#4W^Ud*ogd19FG|f6JR3OH%H`-$%GW1NruhjH9aCXW-j}wq|bx7 zkOPxI(x!1=48)R024r$9_1nTT)NhNF5d(5P4&osJ5`ngiNrn_i<(YU$^zB&T_;&Jt z#qC@tZI~938#{yjRG==g)FF00b&`6mj>w%94YYT;LtR$Fs)*ciV`(>a-aL*y&weqJ z2vYwA)N58m?nLsKn8EoNkb5XE4jCtq9`pav zbSELUHr<}kFJ89@f*=TjAP9me6eyxlN);4XNC^cNQbK_jDdB=5DkT&ug(W9<=FYy) zlYQU!eV=(UQ^bJ-dB5|5gBm#cZbmnWGj-s=U%dA{2ZGF#`*|W_tyr<*AOE!?w)cj; zKcXKa{y*aVkyC$LQS@b)Zierb_O~-~`}yUHJ}#AW#q(d(_htJ}|Mv&|TJ$Y>fBCQ3 z)^C0N@vV(@)BUV6r+ih~7%nJ_%966IG#&0J&7Ss@rr!hQP$A2=W939SRnC-i9U^U8v|0aJgFf@FZ&TS) zwv`=aSJ_kcl>_BaIZ}?56XjGnQ_htOQ$=@Y^m;7Dwcgf!+f0z7S@^{JKo%7X+ zfAVMl)L(vIp#PJrORg@ty5#DTt4ppfxw_=)lB-LuF1fno>XNHVt}eN{XNJ5{95yIL*t} zx%$b~Pp*D)^^>cgT>a$gCs#kY`i*P9aqTy*{l>N5xb_>@e&gD2T>Fh{zj5t1uKmWf z-?;W0*M9Q%lfR$*{p9Z_e?R&A$=^@@e)9K|zn}d5{KfY_{^ENzfAPJVzxZCwUwp6TFMQ=MzE|@X->dnH@74Upcc1>U zrmQO)itq3JWlPysc9lJ4UpY_?l_TX?;dg(zQErtxPscB{^`H8lRy3L zdqTgH=R0}6ljl2mzLV#>I=++XJDI+d={uRelj%E|zLV)YnZA?hJDI+d={uRe?j?&{`C8m-^u-*+~3Llo!sBa{cGzR*}s$h zJK4XJ{X5yell?o{zmxqt*}s$hSF-=A-@p3K)L+T}EBSvV|F7i#mHfYw|5x9c`m66u z{ndA-{^~nZfAyWIzxvM9U#IxxuU{0t{_D76J^5;V{c274YJL66uYcWBtaV?lJzx72 z>%>=U)z>*?RasPa73+pUr&8K_4ST_Tbur3!dx9U2gl8) z3G;N^{2Moq#?9?7%0`zNn|>U&au*X?gIe!i@A!q#tj;A}3?~GI1o%pohiHqkxJLqJ6EtmJ5xHH!Y zYloc(x5Sa_PPkZA$8;wzzjn&*T_@e|bkf6nr(8^S;_yNz-E4O9&ZFl>I^o6p<0GB8 zve=2+!<_;Hm5qr`T%Upy_dB03)2Fre^L@P&tc_vyrW5wOd-zq~`#RyuyL@0AnCisd zRVOaZb>d#Hllba1Kc!rC(&4N2&pYYyvXlAeJU!XT+q<27*6kGQXR%%dV(-hdfe8>E&Y4# z1bC+G-gM&Qsdo1|`Rn;V;)nhp1MnNhF3aj$zUq{ftxnnW{Pb8SOx@DUP$yXz()(K{ zf9T_?F`2mRlzU@w@}fU8okZt(=$r94=!B&uV>!@?XY1Nn(I<5sl4J6?6Ymc?X>P4k z7N$A@X8nAbA+LVZW1g7ml)Z6n>hr=wC!CStjhstcow$12iCgNtdg{bmzuz5q(#&cn ztqyn6@nolL-F5QVH9f9&^0EGpop<8HO(!j!dSjgNu47P z+Mns(w#=p-2V^Le@R`N4)J=n8&{ zPjq!mx0|=d%9xHXu;mMO%)abTKHt6bW}HXa$rSrpV%K}d=ad~?7>CPkHalZZ40Ym$ z{%+9C`M7@Eb`o5crn;SUFrmD&#c!R&Uh=517&8{*1N!>d$?DBhY-HUSoR~99$DMq` zW0sW49AGKm1M)!)($XDbRJ8ri)kpW6YS(KC^#z zvgO?i{$qk|@9-(d=JG+4f3}nF{cdkpV5zdOtDj#xW&OAl&do_<75CpdWqU&5_a@Dq zGxO?*j*i*(4j+5P&%JGS!ie!%Sf?|(7&|l9UfGbbe`Vk1T;AhL?MXhL)PKdEr`W?D zUw!n#SDK?+Cwvg!aLTvMl6lB{pER$R+nk`AtsQpJ>*VQczSlgkPt0R{(}g-Oe0FJ`J?rx`9l_gifd93o#=&=USHI?s z{U-a}rpsOP?9AWK{eI2IfAiV9pY~U2)|kT_X?3@g*37?CbNhnrUn!5~kbPSExZ;cX zHT&;uJNI6x`*!ikLMtiN$qlZ(zwr6~Y{G5O%#;t=Bu+S8HSvc#29eTL+H(Wum z_m5xb)E+$A6UT95JFop?<9n;UF+SNEm^K^6c%mEgt~w_wr_EPug1uxI+v|jNw)Y4}!JKhn&$ya%XKZKM z`gPD`_WQYc^f=0YJ{wcEvdz!!!!u|8|G~b8$UeQ|@M)dx1F)2Nk%CzYD!bbG?l@zrVmHj?D*q|8Qx(;V;UH@qg0)Q+{WN|G3uH^>DNO zKl>Mc+Ww^ZenNLQ-dShUZ|3^RNhb}mzZGMD!#1|`+ghd7~^ZE`9U_BkLK7f zEX59sJ#U!M&mHgWo39_;POv8r*0RtuKj+PbHDfZxe{GDJyZ-*RV_xx@c#GKMM`8as zXw9C~?`d;)-h9Dh#clm~($+lubVRSW)_{9{oxdci=FU|;Z;3@5lkgecI^1&EeS+?$*->Yub`P8pZ!nP&Tc?_d1g_Je&#Sn&Khc{kW0d=Sq0 zopbZ>!uUNJ*GFUd$lo*_ztHiEx?cPr9~$v~v1gqbwPskOBWx4lwYbDqm)X=R+`P`8 zY>{inGlzWBHTmvfvipWh>GEaWnhVRoJ87F899eg6tqph9<2!TneuItkrTFxWtIznc zj2p|nubn)|o^i=}0`}Q%zQq`vnU^xcCPPgYKj*o?lt!*Fb?Y_+&UtApQNXKOpgi64$Q&p2dWE=?(ebO+Py zT-&q3q>J_&cQ3HVg|(#Zova_Y-Y{hhzYcc7Jv(?bA0Msz*3)>yH{cr5R+lfZF7l;$ zmtCxT=fzmz2m)R);2*;v?6+pUo>SNMhIN~a7y9;QoJM?xD~MZUIX8cw_&4i&(a*$h zr!D>3;+L!$ae>|5nFmvA+G4wOQC8@7gp6xs({_5JPy3iKXx(1#+VAs+TYSWU`Go5X zFk`Ua37hs3JLdSKJ*K!z7@@COHe}AkC3UUA1Dn>S6Z8AroV?qy7Byc9Z(i`T)|g;T z4t#kSer&e?cmJiIwtvYE$N1Y>x`I0+zZ@^k^iq7+0q?=fXZ`<%3j~)W;27+wz^)1|U$6oHNBVF@nK%a+T z+XFUp%>Nwo#mCl?6Z7o!f*gF@Ej_Q&&u+76yu?e}i#30wPd$A*U$hn**WR!`!4%8< z!WlcVXNx!1uVFqJN0Ao!eYTSJ=wD1Mi(Ta*HZp6Dzi;pv#^Ra0VsZJr%~xZ=f9F^F zxiFVk;i)ISX^OwzG=KN}Jf))xm;`?xy&J{5(n8xmvb78N1J{@?VK1?RxXFi)@_E<% z$GmZSB5&J=4YHjp^LYYxZ`cp+PCe_?o_^oi&wYWZ8pmNC7cq(4d_7(&;L^gF@w+1X zx;0zeA>qCXUs;A=7xONU@vWD}O*|;}KkL8wHpPEm(A5b2toi$ezKmHTr})Do_4mB@ zVEyY^2aQV@fPtpy80Q!+$vElVBWve_y=9xrtIh9|W9F#Y{@?kRf7(8q3|DmYxB;WE z{{drTorrh*@FBghv2@>sD<2=7s+s9@5u+I^8jHip`Jgo9zPGHC3!ykqVL@x(X+`>xDb!y2YU-`^D4OcTt>%)LT=2vyR!J{MeG|E1$E7ATs;#uNSTRZ%|#GftmZ|lZ& z$DBXfRA9^-bM=9p@L}=U`Z~Zi2ly+vGvPYZnt8ZQ?|XjYsM4Wz?3DeT8IK#!+`;W# zK7p-fzBtcY>pY)#%~@?^eb2|{?Xmy2`E(1b4AO)Ba={swY4dl*7;Ut@FuuoH@@c+( zK9he?8L{SUvRQmy*oBGCcK9~f%bp|7k!79#ST~0EeEz60nYX?*oI7hw&T$Qcd~4J3 z5}lgYW%s?={@?yre&YSc3+_#@2kQm9PS5%(R+w=f8K+RJk9nQ1e)m4!@>5LqQ{4RX z-FSR8Zb$0AG>(_X`~$}6vFWzv*nh-j^LE#KIxrsh`V2oNv52(L@T_%Ve}g{h`mXsm zeI8{)3;f)Hf;-8uX0|6R;`hZ~tgP9)zE}@l&7WcOV_P3~+0B)?gI5h#_T$>mN7l^` zcxIVzfVa{auId!ux5d}==nr=qCgIU9^gI3B2^(EHwg2_Ecm>;wZzg(8H|lM8XZy;W z=z16TFwXaiHxaO4vEUG}r_*IULP zFA<-tU&bwcrCaT%8~$DFIqbq8yL7YvVZ9>H34d|QKUo`#T!pgUig^wDrX%_r;Imfv z-zT;qmKnt^;sX6F@l_k}3f?pw^M%&h^rVde`o1}{CcxzUM}F4+4ttQJ5XaOz>D?J? z-RP3BF&-!QgiCrjY5wtqZ++mWtaEhr`O0rtAH#(4onTuRyT;Y{T#*BR5QnWhBkILX z#VtP6yok4Sd~ZHjgCcGz!bXW5q~05UXAF-&I;r8G$CYOLf9qfU-S*S7aelX!_1M}l zEGmwZ7p&>W)|Oj(c;pB1AH{qqqvwkK?m|E8b75Xu(-(}P`H%*T6^=6<(Eqc!GDtt( z4|uF#j~wv2agy)lVdr7zY_Ne{`I96Y>7+jt(p5l6WmXBL}Wn=k{Zauf@IrH@z7O~Hai>)u_eB0~nu#LtQOsNMR3g@ujm1m~OWG`3bS$w{FX3z6` z#^Kt0I5sX{tu3&6IAEV*>~VzcZ1%AO>%zYEYS~`qa6tcYRPshbTMsYU`xjX5hCj4l z3-9cX4AFWYw0tb3aUIf1Y2s(B6o><>-dFrN1{j_GFhhrX99I-#ES4;v}c~ zIc_b+^JHTfrcRpe|IL5xC+3+tCX;#Ir*H4t-sf`%$n*$*p8EZr9J?!>d}W`7vn$sP zOYtEmaK;mxG4{cJEQnu3Ty>n(k43+q^Z$H6eCB`TaHLJ;RR1o_^9MHaMIG`k@+y6t z(D4K;gI^B2#$H}pT;Ow7__Gsu!*q;;xCM?>bL zI7twT4Saogvi`jIO#Cd!cM7_lLL6=13mkqwJUR zI-hyMwoc8*2lEb=E2H++^L*7-w^MHEs*Q^{cxt@En*IBYeX4kNzU9Lv+2FFdcIUYr zzJU*lhkUU8dBKmQ#kTI6FWY>-`r@QI#7sZsUqyLbansy?H=bX~{lG`zXX755fy2Uj z^GA=ciZxBFF5x7?G{ zkFaeF_pEu>tHMRckGK3e(f%rw_5Q zZ~)h^?eIQpPN;9)7(KC5G5b6Plih0j3p^r!v&ex+Td*n4AdJ%W%Yk_UU+)_;`G}#F z9-R)V)7~Nsf8qPIC4LaZQUcC9T}A?qTxa{+#(c-$V8OK7WTUHR zx_=-KU!CmX0{@s6;pct+;@q6Wo27HMduv_0=U0aLTzMjS-oAN}{u<6Wv&LQX1y8UU zE~|X;a~cN)r7P)t2 zv_~EsRKsT0ydb6(-r2kLD~<34>-Jg)aKYtXCyJ{jalL#(UOZGh-lnIv?!jGq)}?E< zOE-DU7>fxNoMQUIUYCvgH9g27i+JdGWB!P17deClHVI;1vF(9}^FG|r>@yF* z_k(=ZyFJAL-?(CqKeEkHYxL~7ztP|Nqj~7vJNwY-2ez!e<3T~B?DBXlosFUu>*a!yN+j^z>uG3vn2#~r@Vel*D|N@MzTL$|PVZZ;wx zw&08NI(s;5>kQeat&jHdVT6C2-~-3#XLCv)Va8=^E?H&5uhR-kfZ~2tz+?slNM7Qu1-Wy9y@3QS&ZjlXBYw*If~!4<|r9&H$=W3i9G-v=?@@HA*X^V?#Kk(}|$ zT6@j*Myv_;U1`cXJx`|RhJVZj*e|#Et2k=G9i$$eZrLZuw~6C#)?S~@Thq0fcG=-P zAHE8MS_6apt1wOG1Ge#E{^8`Ke4RJ~)0uk_uN)Wn?@MdOEg9vWq!nx34*3uHkVk&} z%{tpPr+2KmC)PatSm|T8>-Jo`*8k?~<-UZjwVEv9{leaa9bI~V8g5uKN8cx#?f=!k z^3(6jKaZQn&w3rk`GA(YaC)wP)``J&eie`2cubsKuzyVRJM;`AebIk0i*RWEpYVBi z#$g%0vc7$q69Io4kL+_`rTDGeN!F2syU5$hF&nvVbJF@XWj$C_Z_7;(%PVq}ir876 zwMMM6ak0iQ2N%4xakAF6e4;Pj$1~(xK5a|?Th7$n18gDZ>Q!Gi*~^}O;UdE&zc9$2 z8uurEEQ)_bc{q_DiDFQ3nU3!1na!p%GUFukAdEN4c5tKlhM&3h_xrZzfZLblG&H@= z8m|^NlUtwV{AJ@_aJ=D)f85uv9dg>sX7lkACmBW>E@qeF&2i1z)MDg4W4LEsK46FT zRY4AU9I?j0#GkKZ8ev}-)+uu*O!G_jwqb|A#+AeoeHPaY`+nXSR~$-`OH{-P;(|Km zPk%ni@!>0i_(l+y3(tIQ^MCTw;%3Xu(EqR2N_*TQ?;>5pOIvj9%tUBh>#}u9oGCcd zkT%$zSVg+f7kS-bPn$4Bx>Urm@;g~Sti5u-KjGvsHi8Es?>BRO1Gf2KOT)%@%v@OG zuO`TOZobID%)9j5@}`dY;W2BpJh9mGxx9{O4#Z3P;-52o9=`0Vi;c?-2{Zb##Si1B z!v$<)j}dO^S>9J@9G?85IAM(KX(E0lu8lR@|9Ahb-)%qMYD26%;a1a@`Gz0Q@{{u@ z-)vpY@(}Wxb!3li%Dc*K&66Ki#PSR7pvW;Ra&$hQ<^8=_ALV_Akp)IXW#k3 z9zV>3Vg6->e_u0CH_h{1^G8ip)_7{jBZ>0R~x6THsL0 z^5XBC)~W+KTB5HFzWoyRnzLpd@+H6R-_4y3dlP$>xT$Z~)(@QCCqMq_+)S9_w?~_f z%?o)hS&r7{JOBA?4!?Y`HGZhq{I@-fa}QZQZV-2hYv#?lv4quA!&^9$a5+ft+QUWU zIW~7>KQ=I|f6Hv$nuF_1YvwqHxs!Oaoys_CkYpnQCK4Pyg6Z*>L@lbieK4!)o z8nCv|TfFh?@@%vHfBWD0-S#sdpYb$74CwRC+B9HZj#-zc=IZPz$InR`#nAYR~65U&5b$2pC|cG>Ej#UYrllE$QyLMtNnGp zZc@Br>l+!Y6Z~poQ+ZllJ(%N}&yimcVpXA)+bHx8rpeoqh9t|ZSX$=^x# zRq2KgYI%qDxK2bGL-5qHaok$c4>}NU316(M@?qkJwW?tf`I2dx%?pgc%!mn zj;^x(HDhW2Sl;-L6?=;FhUNIf(OtfKm@d1p1U<S@5GhO}%emk{SYkP&;F5W<2*ZAI1?HpSVTMXX$xVT2 z*7Y>P|Hv6gm&P8)mz^8R>*g|^EA*Q0Q!js!oee7Ee8ed`|H9^H`T1k((>dRN>+=Er zQI1!X&sH99jGejiVm@7&TP=TcQQhuWjD3Fdt}~6F&NO~HPxkpHPVv^p zoga9&UcT$gTjNd|=jPe>89(`=cXhwh(SXn4iO&!9%0>FLj(&cqPd?b^hx$Lr`@xo+ zT?~zrk%t}Z{exWIAa5^-yMBH%4?g(OFYNzI!wwCbzAG?-Gn7FNU~r}_$ODToNf3_< za^-?EZNYi8(BcHnlLdTta1JbV{mt30(DDzuH~%l2`ZxaS?=}_sVGy|_!C9=(&mNtF z3a~_QrYXp^4LIlE>{5U=0^b<;<{+jT20ZIbMHtYwobk{wo%JjXyeQ^}*jpH|J`Y&S zdio%)8^nl%xJ&4;+{J`L*YARIG9?jdyzttv3_vU-NRH$=7}&kcEQ$ev@^ z+B9r#59{BsIWXM(p}L3lZCKsn31LKk8b>6C9qduV2tAE>-kHrXa;K&PK|V^D(YIOk%y@6sn26tpS#r${`N=lKOv9{x&T0ow9OmeL_P1Pt|K&gU zY5Vp9|U z=eX%0k1otFD2x844`QT2EHGHVLc>Y3#$#brA=5k==C!+^%>}xLf5N;zh)V^zI>CM@ zEYRPgv9vyhMei(k?aE)Ia%pK^|Zl^4`*&LRSr& zFX074O>%gjG7jO$2$|0bdiu zL4&g@VO4wbi^A%hLjJ}fw3yUy`5GU7>N`9Z(gIpWr*Bp9_*)m4>oFJbsY#ZNge-|r`Vw+*xdt3CnO%~i!*l9oM6rT}x z*u$=|+tJ4z{oNt6*jd=s&MsZ-(!;L$cgeU*kM@jVSN~eB8vZ57*$=zw+x5O&qhNm) z_UIS(3-YK!JA1H0AA8>2GfsPKa8Ez?wAFHTV4fhp6=2!0PgmlRVP9MOWWY6seST)& zd;7-?OZ?A&{ip5kd;h@r9kg}MTKGK1jDg5j@$pu*&}vxto>tSaN={h@8N`P!ieFNY$s%t&k|1Q2CpAZjcLOd z@}9yeJ)Dgzo;~w7xHp`V?Mz)~>UF*$oEy`&_d3_EI8Znzzx?xXzN+Y>{dtgUALR3e zbNxAojThLBUde4Xcu=EF8z)R2x3bChZQchg+~sTKEEWxrLnzK=Oz7Is`FAG zF4cRb{VVTXsn^+(aAmx&==;h$S9I6-tag4xK2X4m2mD;P_KbY5aLta-ul=O6YuxR# zcdpgjxF!4Oa6_gWeUWPs>`4Q@EZq29>>)I+^H$sP0fIcWaBFNDZ+J_mx8xH`2=+Ol z<$~FFggd$sOAq*`aA)k=xve|(->LsjyYl~o+_)egHORRR_w4CjU+=w(BMA3o71Iw7 z+IkpJx{CK6))k*Wu=fXTKalG|-{AA`NSBXv@-A+BppODFl3V_+|{+9@RYu!F>k79R{Jr$QlRT_N;H7 zgDr!7Wq8x(o9EjZH9To(=Y!t${f#X4hym^lFlKlsuYAGq?j0C3ypt1-2)K$M?>2m> zv+*RbWoSIphrZ*kV#9SGI2>3qI=dHf<5A2s!j;k898rE-{KCiJCZj!46#I-~H}Q+T z4J;Y^?1S7<5amro_Zmd|EdF#?Q{E|e*F{6i_X`_ejGrrg2C+;%-qKCgSJgAUVXD6RsqR@kRVt9NJaL zD@QPji^m~-7l(-LTq^t;#Q~!;FmYIYVpLHMPK0IS@M^RDfAAmvZu=4M8;9u!wvDiD z6w8alxCIzDju^8Mx`Jz?vkq~@SdAEu5jq>u&S+OrKaMZLv~iToqhys65l8hM){U@h zbXGKu(*GDc!XL#kGR?Km^lxlU(YG-ZhT5zw48;uF)CrIPP=!HjdFZ z+#4s@?YOq#)i|x53H8IJaZ;Zr$uC9|C+KKW-<<=Glj?MCB2Kn<+h@mq_dY&0PI-Px zznmS2a?Iltd8WMU?0B43r*l3L_YtSbDE<-Q)974%oF?Biec(x=v+;38-(b+#xR0-N zI?Fa^y#ss3S?$c~KU^8-*ub1N=J4n+YMiAXSToL%agMxmIE*%SbM)<8bF?>zbNV)? z{;%zKZOrMDxOIdpM0wc}Hyzz25as1WIT!J3>$@1}{FwNG z{=lbkUO(sQao+p$#=GUK&8vI<$y%vTFld&e8yAcXtQwsMiVNym>{sZ;zCOaDanYD9 zl1q+3Tx9!;`oF0Ei)30?-;z3(+B@W3XJbqH1cyd=G>S{aWqK5wh|6SOR;Tk$aamtr z)3{8(&H~0|?Jw^rY;{Fl&Mw6j`d;yl*nV6g!-{v{(YRvHthT=!=ap~G_W#@e=%?-D z_2LToR>{9=JXZB}iG8jb-_>J9{j2)dxU)6=f=Q#ZyAd9Zjh}@_;~M*1^UfL>*0uNB z-#ougC*oOgU7aoePE0yF`w(H%xUSv}^{=x7`4n-3&Nht2hI%*XYQxxVsKa@-xIr(Q z#v6`}&W6PeZEmV(Q{9_n+@uHb-ncX^%ZGDsb5}j9zaBSQm>(06IRnf+dv2-3UIwKfi-MFn!JM^+cHh4EWKOJ|} zEpIu>rH#ABc+Z%?xN%Sa_Q-`NjLy5qUC-^RcUK>At#Oau#3kaMv4D-^uD-yw5eAOC z>Tfa0J!9T-yX1Jqz4p1fcFDEx8951YpRDj}+$T?q5$x-Scv9SJpX=-1o1e>m()+%5 z<)%jY))C%~`|5>pE?*;j=c*@$78Y{4=HqeOfK=kcue0%{(j_dC*)``fBB%%d69V1{D-c25MJRy&>%kflSPrQG^F63^;Q~f$6+bMf+Mlhbzy*PD*$Kx5^&HggN z=kZKm;qr1umNU3lw6S4Q`JbJuf3m4z)(b&f2m_m1# z>c1opydL57c!?8zc^7-3FBm;u>Bp6Rw0Oo9eak_N@_gboojD5?Z|J4PYHrByJZO}k zAH_W4weh`HAO1StkO}u0Z}megH{P(fTe^kI<1L%Hp#wRE5k`+Ubatx_@x2JEN4Pw~ z;knJtJ7asNpLgEBqYpSd-rXzOxzo-a8@SiU2W`m5jraO=PiOa@dze)88{Ug@#^R&D z<58pdL3~ihqcLz^Dn6+9k$%L4qB9ZkQJvzR5iXC9?LGZ_RNtd|9=-plf9;G_%NKrb zKU?v+Gw2cij&g+KlRiD`x42`3zoQ(O_~bK~JwB-qW{*$mYq=|OzhcXAf1%eGb>oI( zmWX`;BmTZ0AsL zz)5~@`ZDHsIe>WFgm+I3YvXnk44&}8@lAY3E_eDO_d%X)`f{bT&&3$}n*3q}U2zH6 zIXN$wVBF-4TY{Yvte?8#>iynx_f>LlRqFRF&Nj*2NdsaP1O5-YCUNRCh&$|w!S;3( zF{PfkxpOWF@0x~Q{gk(acTHlv36@Pm@(%}}75y2~KJ1!?#I(ft(vY~%Pu#O-Uo-LpatXH#Xr_6TF#V z&ooM3&h;kPGr^r{RKMNdlf-Y+sCvYZ6RerW^m|O7#Jkg&XK<&eLz4XJG_EatX&OIP=m^$K6Y7C8i~Nk#@-HXET%DOp6Z-BBk|ds%@T5u3 zR}xE3&giBo@5sweFlKVzJK;go)J7-G>dSPmlVHX)-Tvx{m&csI^7$+t_+LM2!;&FGi&DM`*;nkD}nIp)X&W2dR>X8V8tKl$DE6FiyV$OK;| zaq)!5OfY1cQzzV+=Ja8X|8}QMa_3ZnBh%M$g$!Sf+gJS(^G;v2)$&7O(e%|=$zM+J zV`^v0oRdlO#@2bCG%ue_USOKvQ?xmMsu*v$GR^Dzf@koWX`Zg}ph*r#f;ZEGzPtY- zxtk*`(2YAj(qj8NeZrh+fu5c9OAG38=S*7Acd^T~s1Eou!JcWcy`!Ia(6mUGi=JDe z$3?O(((xj>7uB~!cT3)N7ff>YBFP;{?%_#GY-Gt8E$KUanwGpLUq3DD@3OI7)^{<= zw7jHv7A8&bX=?dX_|pWhCR}QQQ`54xmdPtdnwIqgubN=j)Xv?nXdiw}a--7<-8!3| zR>;2MJ^X5dQ4<`SR`hw54xD*UFl$;R=PLPDwY^G5tJ-tsBI9tAywikNP0rOMJZoCh zr!{iGuW8M*Fl>^;k?^VsW=-p!Ti52g{;wOOb)ShJrUQ#J8}~InKnGTLADL!vZ4J=b#ChGrgZ%r_0+C6Kw z|7ZW{Puqt%)2_O3s%cmKa+VV8nfBDPN9Xv|B;P9S8yj3{k~^FB*#izW;Z&1+sI>p0 zkW+4D!j&dCu(+2p9q1DbnGV>~0bLw;?vOpXw|S9<_}K*SB|K}AUy#nVgU3zh#u8tf zaIpzLo5aD>IUV6>6CO03)73d$%7sd>Uvh>u!GX!$DoOr$at0>JCri%lC+GK*oc;vw zrOQ4=-IxA;p-wn3Ilq=J>7nJ?zKNoyTFpkJx~djOt0aOQzUkg)_xjdy3-8GZe0TdOzPS8{g#S&>?IxHr!JG*foF2$1 zhb%pi_d#DD^#cw~5A^h4%pb|*{8xfG6HJ;O$%Ge9&YGll?hS@bFlLhfk)CE1`hhQ# zbDarqoSxMCtl!VZ_Q|_X+IEg5!Ji3#oZO3&;Ls%JC%Jbe$stJYl}PRmOV8}-xjk!) zpV^5Vp7gAa7w^KqN&ZllCz)``N$yW-XQx{3uDdPLi?M8Z5ie{&o?eoBkY4Da<+yw! zpY!dh-L-`8P0kb~oNs#b4$e2Zk1VzOMqtYHMwU1B_(sq22-2H=!lMc9Oz>&K0Vlj~ z!uck5XQX%U;eJ!|0q^<`eamHDGLjEF$@r$zxxZjNX&3&Ge z=brJy87G|kb`;OKr#AP=73sTDgj zh40OH+1wLz@0Xv0ug!7|GW?t2-i*u5gLp1DIOAvYpnR;st|CtW?#*%y@}M?wyjc!H z9@M7Xf-JWn!@zlvzU3I?A@2>f_vB&0#2IIshqO6Fjv;!&?dBnJh{I+$Im5^qkDFoa zjJwUla%6_RKTJ2yS!Vg88D`Efa~>wUysSJdm&QFU8Bd#GFXr<-N~89JPSu>`3YJ6LB{9iaWczk%;WR|LuYt8x11q)2U)&BmY>1MeL8Lyk=mgPzMa2IFB<7Q_HGt8akB4qq- zcFs4u!!YA%^OSmF?>uEp+;f$u)bF0hJVn1#x%RR_5>ThQpX6SU*c){jbE^n60kYV~fLr(eX86M9w>Ynxg z*$;(WbM)h!X2$zwTyUPF4|#%l&iixZou&J)%ADu%y!k8r;C3^-ot**BaCnxBkmp*T z=v3Z8#@*)m;pX@M&VT;9?dN%QF6kStH{*D-oP+FMm@NL8ofpV3ca~F-Ve$-fXZ&tn zBx}pPb_Yb3U!LV8WI6qLk$xA9z4MuQfh>#dZ|YoRbIzn>c?emaL0(el68*!~8TQVw zc6OdH!_s+)tZ;P3v*u-aSS=@aS-Uvh3@_(pHUa}@`FDARK3DXm&EJ)AmX9g- zH^avnx0|=xv&LdoJ@9bG-R4z#YWcCN$`W%rZvOMJsCug|}SsrzP=ko>`?a5up^2+m;=iIH6x9Hb7gS@ScZT*nP zklWc3`HXqn^V`~&Q6FZ{A^3?vunA?W_*|H{*x1JcsPQ%e?RXJ$=9h zXZwN-m*;(b+i%a20dJh;JmmfMj(XwsyuZXi(#?G*HmOqhiwR5Y@Te`ZX&s+VFH<97z?5>sE^3vVSmEq;=tYN+*b36Cu zj8K8)@*Np&+yAxcF4TNa@AuksCNjg&`9a+e%_@+g&~KV>9fVpVbNH=BF!#j-N-H?f~ zhse*~b#5X*d*@kQ@NSkXk)MsP{MzgsO>X`dXPfc48TQT2E@$Vua?7oKA^(fMwftH* zH@m+$!@5~cZ^qqbXGOBR9kcw}ESEOFkQ=w2oj=HOEwa0hvRsNRw<5o)+nL1tN=7_w z{-#df&yn3pkiW5qZ|cO!X1T8U8~L0A&+>uuH}?09F28yA+q1K|-gzTC4mZQq`HhTk z+HT_^ha$_r$ZtD}Hs8ql?*H%VgORh`hzuv^ck@8*ZI*MJKRo+E7P+*=xxM@$Ut7*? zhKDm=w%}!pT!;eu7H1C27iZL*y(;i=adyA7GYwzlmVar_KXr;TMMdsy!Oa%9xX7s} z?#?ba+aeFQz{#ag9q@7K(yu6+Kk z_WJGp`ti-q_!T(040v}yd-&Yq+(sF2zE(~{!QmD;3&kC=1Qlm((}w98RXR# z7`F_nPcA|k)W)FvcbK*e(gh4#;Mp>yPq1u}hfs#dCqJ~nuVsi{-=N@i%kaEHAMyywi2U~v=WIvR1)rAIf9H`4uD9TL%ZR$2fh_pkBA=kh1t{=r zkvmZEx@A-@{TLbKwH7$ExPz{YUo_kQn}7Zj@4E-BjFV^FdvIfMro6zSW&G9i>UQ@? zfgg*!)-s_Td8=hoKPTn6PwMlecAOO{?wcy|RSV9xz>Y;;YnfVC^bxmPru2VW8`Iu_ zHw%neV9MgGcaa}Z+kDqT$a5|5 zWpU1@%&6a8jRnVBX50JpgdZ*NS%KXO%vKikRnBNxAh++XDezozCa}0~q2NZ#0=eO} zvY-z9Xp~D{aHs`eTEy!M3|HiimPPfza7Dbnz;k6$-*BMC{c~lBuJDRwS=;VDDdP0S z9YAGSKXIT%oW6+D7dWmg%TdO67Tjl9(S~?@aVK0^p-*_OtmxYcJ6`b&3|DZR1-2`A z&VuJG@Q7 z&Skk*qO7%d=yQz@*1an}U)H_5PM&q`ID=ncyCOzkoI@+HT(IXUxX`k$ulUa*E?>m# z%Z71SH=Y~nz=xI%ZMr+BY^Y;{t~R{C!S3L=B7R>s=^B3Ldn$JEOQWtiW|i zjJ3dW#r=K-zAJdqvPBo}ODHg0*`j0lrbR5jZ2Md;YJt_t_N8*wZ2xckS3hlkTVHXf zWn0^L(t;-~@K|YgUc+MrE-N_Gvdh-ou~+u|e~5KAxeOv^sKIj>mu=|rw++1ICi`rlU%Ojhuv<-mBuRK*=E<$%2S(Q-h4hvYqE z|FBbW9;zIA@6hLmK0nk~G4gWAX5p!FMAt`T7B4S{>=9pDj`SNhT8{ngSU--xDCEGI z7H4wHF*|{=3f{CFYYV0-$NF$gmd2erhfu{TEx5y4z!%o1*}xs z*uYLjermyi7WbVLIIFl9u$wSB4o@>t6iz2Qg8l`+MK zmMdfEPPQUWURo~ymAc&zSg!P2yu4hINzA-lwYt22%^zK=`;-Fp5`JME63Te`d>+nx8^m0Io&It52q?(|t)ytpf=;4F*ycX58K;3E)6Av@=%j)hTjUi=5R0qZN6m z1*ceWhXtN0c*6om6}(}=8y0t;l=fW^?t?92+T}(2FY1J;iaSw?Joe(Q@#3sfaelhI zl0zK4yz(2b>X)ZlUg`GLyRXJyoV&`R_&=bG@T-PcZZhh5zD zcU)4mFAs3u=aajc{*#3%JREdkk_>L-(umN_UD}S-2>;DcLF_xEJ8=LqaIJUq*#){gNF-^gn00<0T8e_WRL zvh4fTS`JgYgJ?yrh_fTnS|3;BX1H@YTC0ET$w{-$M*K#^Lqt4CbY?%|CgN_>mp<(K zj=7c>WetgZe>~DZzB}4C$76LL%j4jiqrGmtl#gWZ7_a3W-T3^PP1?^zd$?%cM{_PWiz;eu`cHIO4P9gBLm7Wr$Cfqf&$(Xi288%sX>K;6gWIn~!w zepkG;w0lFvO^ckla-lvk(9-VpyKiGeM{>K$>&$QGasTLE?>~x>{Lx&%aD-T%=SEdAgA!|!%qooTP~n(CLX(yt6C zJ!McCQihcgWmFkc#+3tD}Dc8!4a;w}a_sWCvs5~jp%8T-Wps14^*+V+DCr*Y}Hwc+DCp|Ld7LiTtdYqRCixh zcluT5dn+!X_K_c-P_4UF?5*~Z-@R*|?<2olvFdC_?IV95`OTS% zhp6sBtIl-PKJq)WQTxc>M}GW7wSLw<^5Z9}cwX%ze;@hr7S$P$>P&GJ*Q9^mznp_A?pOKHD)v|LEwxL297nY-Rp&mcyOOGNBDG6?yhruD zlhr*8ReoC)Bdpf(+9kg;Bh{Ia>Q0|3|E-E0R&m7IC4ZOvzVEjBeu3)lhw3{EYM1=( z=&D`vyL+g1$?vR5#j8|zTGcN3`SmL9Sj8Z#yt#^Rsa^8pT&g>cs(iZY97@H%RCire zcO6%GcC}0XF8RB!Z7=qJ{llNO-=z!ZRceQl*R`K6K@H1-dbUX>fX@`PgQ5Yt8+KixtrQg7yWeM+)Z`fri!svd4{#0{Qcy2E~h#xUI)nU zTu!xq)&cT6yHnj8P~GuS#dYfd`3J~9Kz`?Ss`EP4dRqs`535u>R~;b#0Qvd)>fCu9 zApZdQ@n6;1^C~7>sk3>Hzu0ovX7& zwMYIQ`FrH=k>9zZ+9N;wP~nH#BY%(l@M-Olzej%Oo2vT*YmfXr@{3*99{I(wtF!Y} z-e$$|)gJlreAU^c>TFW&ksmgxJ@WU+FJ@hPp`_1RO>DkikdIpB z2vp~%s=J4(SbQC%3o-iYtW_PP3pln8(uK2Db&xIw=>p!bgLE-S7h?K#kS_3^RZPE% z?N|5f)Iqu!qzgH&ReZnVLMvXh%6F}UbTLR5IMOQaU)?WI2kByvE^wt4XIkBNQ{4wr zu@!$>2gyH3ez^hFexnYOAE#Pj#VSvrI_Fh~$nS1~>bzGSBEKAgif^q$h`B9U{NG66z57hsZxf{vq0FyzVA9re)$d+E~|1LsMn*lOn%s{;*{$!`R!LKuDRO7RrwLsoho&h{KMpTzjc*oT!+ao z9#nDDb(s9a|eyUOaKelF_gqJBCv zRq?M?JiW?WtN|Dn ziT0fZsbYuqMEfV&KheG%!74wn$``D11?!3S#T4s__MIE5C)z*J{z+?}p2Q#P2|bB9 z))RUXhpgg|6<)96lU1H!bw;F~(37(x6|YvE6{;ungkP&C^mIZ`&X&{@c5=c_HE1^Xe)2?QiNS`SE%cuUF+cR_Dv>DfxXTPKA%F_-Pdvt#ERc_gHa% z)jp((omTPDYM)tgfYn~Jx{tKt0;@e!Jte>M>ebnpYVTA}$uCc`;s-0Pu*#RLIKp~L zezDn#GpwiNx3{Ty!|L9XdP@FN^1Cmz%B!s6u=Pxzovo>7`YeW9&-7W0wu;YI9AlMh zS@DeZOrOv6`AnbXURJzg6~C?Sj;i>_ihrzU`iz6DV!0I$S@Dn+4_Wb$RcyDq>#&~b zGfuMNB8|L}n{_#)SKQn&57p;mH z*E8eiOnwzJuII)N$60Zm_1yTK8$aiQ>bda~L$2q>@7(x_Ems_9#er6QXq7)&aiR5` zF6;%Xb3^rI8jF(ANZgP0*LK4%NBY>fA$h zhPF=7*93iurPT@gvcIhp^o1|0ayD&C&@4Ot4@+%o>!FvRwv0n`Tw(br(tqcX@1~uJFBP5?rwK^ zx;!pVm&bUz+NQ_V|16;W(p)gAhC;G z0tp0&MIb=z0&hYZTWe41xIjKB1U|8veg%e(yF_uPz(d+rJTr}=Mh zSn!T-Nb^6<|1|%7Ul%;j3u*q_Ll&G_AJY6!^WPq`;CDfT--`}@FFK_8Z@*cvk1Y88 zr(oY%@ZNCne|m7fO-S?KZ+->)%R-v}_NRsP>UiH@x8(cW_Y5(3h8WVgNaMnD#o+w4 z;5) zT=?D~_^u^*1{r*Z6f(HT;39(yXTk=1-a-Z!o>PVlE_}BXGPua#B7+OxIR(!)gJ+r{ zgA3=>g$yqIj#cp8X7HUvaBfe?;39*I3@$Rb$lxM_iwrI@xbSQ=WN?weMMf@U_@Ci_ zhW{DFI%YV;jgXgp% z%YW~42k&hMzt0k!NgX`H4SwS=c!xYVZzyE>?{^x5y@0{9+hAW{$nrnSfA8r8-_M0C z|GoDed`B02R~J0%4fg#7XBY+F*@Z0sv;6nHPVi1oaJF3V4telAICwT3vi!HlF!+s< z;Ms6+E^4s9FgOn>Wci=ve~$m28HXJIbNu(*IQWhz*kc%S{P$f^a9&`@@ju7^9RG9t z&+$LU{~Z6FQyn~W4$e^wIsWJPpW}ay|2h79w-Y*I{{(BxBa{Tw*Z*V4T z@cm=(zESYqe#r4Z$N$`|G4~%@`hD)_aAE&r@EkkX7a4N6ux~Qh8yW0{44!KTXEuc# zE^@fY;lgw7;QgiGS$A+QWw2i|IBPaI%PDx~9X$UIo_hz+yo0lyg6H4CKFg5Dg*})d zj|*o!g*-02S08*w8hjrgybBeaOBeFEa9&h!c2vmYB9DtaF1(K)^0@GBe#qk@kBdAm zoOv1YxX9zecl*Kj-oZOn!S}8qj|+P;gLk$<9v9At3f}1td0cqsD&+a^IY7ws-#Jpj zIa9&j(2(c9GoFIqGzoeB=lP%Kzwbvwp8t9N=lSn^s$hR;$n)Qx(BO=KkmtX1sDeGC zp}>FpLqmc81^yTK@9cnJzi4oNKyaQ_aBgI<*EAIPU*Ny}rNQ_1!Mk9={?gzK(oo=k zf&bnO3kCk$YZ?mtclJQACp8rKU*NxIGoir$0{;vA_ug1=4nZjJ-}_^sz<=jr1?OS~ z?~;WA|GiHZ3j8ndzrg9P_W-O*w-6MxNtUi@a|o3 z&R8hnqJ#@)It1_F1@Gbo`+h?S7v9Yap5KHLE=ss?9(gF?!gut++2Fz6;NTpH;GD8x zA93)#eX!R#c#kiXaN#_N;9Q7M!i96pLkSlpT-bLUO8hVJ-#PigJAT3Wj=?*Bp~QdR z{f83&OZ+eK-?NKQ;(v+%CH|NA@7=#p;=lI+gZ;+AyMdv^{}TV5i58rJ7E1iL4>^?h zZx3@Q^S{i0=Td|+|I7UM{4LlQ6YOmc-Xje5#{}nqhcf@m{P%l2!SC_}dzpj1&%yWX zq0E1KXhNC)_R$2t#}MqL3HH(i?;i&Hp@V(U!F!0onQXz?7r`EzQ09M`|K3Xs_EQJ% zCC7Z<$i8JwRS{O)L|%7v<2sLBO<)`Ro&g6EsT`3AxH2%#z$ zs&c`;_23-6;Ea+`l?$GE2Jean?}-L`q(YVdRsMSp8vI6IsPf-?q`}^)Q00G>|5g51 z`R{z);JInApDNf3A3XaG&fyDH{(H|fRQc~rlu+frv-v`m|5g5b<{GN}ukydje|zYI z-!Tfk{I@SF^zy%#|GoV8ZffwJYUt&^vs6Ma|LxZb_HG6H?n5vC?coZ&{O{#|FaLY_ zZ!do6<$o{#Jn^50&sV4qj8-z(Vb6?*ya-Ph2||6cw(rzLm}9P9xL z_VWkt!-ih|_wv7&|MrB1UjFy;znA~sjScqv2m8f>=f%O<@S&Ig-jxmZmId$2hF<>n z^1qk=-klA-{O{#|FaNzq8~XU~d1&xHZE*fe=;Ob$3xnU;4c@N}&V>oiFbv)!2;L(I z_M`>x+lD^=_wnCvABH~ud+#9h@!wvx;9cBczgn<&EqI0h0uo!XC(&DW`jL%!9LI6orYi!T=2d^=)*-HE}W$pJmU-Y z!Ug-{f@kHS4;S{ug+5%^8yD=|2=>PX`{RQ5fI}ZH`f$;Qi#}X+d4hZ_IA zn-RRD9BTacjz*~Qzs7&>Xawi&gc|>A{IBu9#((GUgc|>A{IBuf-oIcEL9j<8)c9ZH ze~te&{@3|m=YO65b^hBU80!4DPcYQ^Z?9nRu1D~WM{wR`sPo^R!eBo_ux~Kb`EL(l z@UBR(r!ds{U+2I5gu$7~!MT*dzQW)=kl@|vQ0Kqjathw54t4%J%RSWjU*~_F|MnjS z?~a5z|D6{UoTVPTM-uEw49=Gib^h1+U*~_F|Mn?{I{%&796aw0-a`p>{ySSJco!vj zPdnJh82nyT@GLmg`EO5Su%|J2UnMvbGxYP{p2pxgaj?%Z^z+}IfZ+Y^V83Iq*D>_- z-`UQ=`zyh-A&>5H-G8(Km6{~Fa7?_-hKz<7k&?6FXz`Uc8>QV=NX?jgIwoZo_>IHZw?~Y zxli+*fAjlO_Owo|w^zwN*D3D?O|7?Q${yD#`y{8<+iU3E`ziZer`FpGWzXxBv!ABc z-wAhty=&|5fqUUTSPS=qy=eBuPI+H{YQ4Qs&XSt)djM0;i<(-$9v*|oe}BrkQd7>C zntH4amclZ)9&P~prtCMIdaM(=pc_)q1NKTjW}lni*`9Ll)RcX%Q;*sEY0vAFJ-Abk zm7xOm_C02ApZ%~?eph+Q-rOnY157z5VCu2KdCowY>nw=b-ie>(-Qbztk(}XOvEO=U z<~QCQ__aOMzp_tvtNn^E*t@mK9+nNB<*)Nh^C8c6)-LfspYQtC+#q)T_gm>R@N%C8 z>h6hExlt6~ZLnJ`w<}|ug*0htt-_(u4cEeK_%iuS=jOiVao1^IlKk~QNRnOJFIO%i z>vwXN4kj&2m&1*46Rd!ha5LNjx56s84Q_|kumwKdDXI+OqUTZ7)sxzI3bl%kT=k3ftf{cs=>X zoOO*k-|@8UfTU&F4A=+uh5cYA><kr!=-RJTme_YRd6+21LC<%+?FkY*5q%j-(BDH zu&hnnQdkDp!wt|59nc9~ASafkpa;^Bfh^>v`CE2b^0#Des!wzKW3o58{#pNYe#G*3 z`O(UkRz9_!0cXNlun<0nFW_`I4L$)nTj^}QB^f2}S3i)$j&`=Uv%7Uy@)v*P{?y#x zj@Nd)w&S%OukCnk$7?%Y+wt1YhIY1uDcA+{g-_u#*bVFn>Zq&^P#Z?8f{{S?>? z^0~bRb;!HksVpcvlzqyv_NB}Zh;4YpUdunRUi(__`mEv5Zh%BCzrG1^oAYNYyUCrYm*?KbAM=K3`e~Kpb29K`dLpP5$Oj{Ehs$z~A7%zd=WPiGb8oIvYw+%mS%K@Klcx=OGo7lGDvrWv}$Y~R+Ht}hb6K$)3+%`GT zChl!=piR8n#I#ME+r+YMEy#m5@op3UHgRsV-rD3xoA|fMi#Bm@6Wg}OVFPT0C*Vog z1W&=!@CCQ}ybf=`oA4IA4e!8qcsFUs#q1j! zytlb8w7m~QFbpFw3S%%16R-nz!Uymnd;}lEBm|g(UGPaGZU^K35SRx?`P()F#CECJ zF5M4i!v1go90;@EATV#Kc}r)*95@sXgSl`x905lHxl5zmqv05kCrjnYQhBoUcsK!0 zgp-nI`8xlmhObLc*0umnfm7i$I33P_GvO>)2xr4Na4wt&=feeXAuIy9xKu7Km5WOk z!=)e>m&(PZa&f6#Tq+lrUJcj4wQwCQfmUdPrLYXHhZ~?BI-nD}pc_)q18K-W7IKh> z0u-SH{*(JClqt zC;VUxp4xHKj>C4`wd1iJNA0+3$74IL+VR+aLGrS>OMWmH_w9IW$9p@T+wt6vlXiZ! z^RK-p`P2X2=bs# zZ;Xxis(H#QU@h!~pBTG0yk*|68uMB@K1^EjebaoV?@wCF^`s>;mb9b~Q;sGroz`-R zO_h_9mg;iXa`h5a?}ntMTRxPm{mi&=>(sSP%IT{9JdUd?jM<}HX|8pd zCp&Fy^=7yw`LjRuze>ZN@9tIATa%WeobQ%nMLAy>PFhkM*(T28c&x6XYeIP&d+sxi zovEOIN77QGqatq#-_W%pIg#u=-}~ARs5Lv~=L3D&|$W&~uOLL3L&IUZB5xq;jpXyY%s^oM#gryZd2)zeDukv5Md71K?hn zJuew#+q_#EYc*p%XXQ(EUBkvW{!#O-u^wD^@~_I?DxORDNuL3yvmM{n_1fe_mhM*f zhw5VxV=zZQZYu6~9h2Pq3+-y>hXN*W!N09-0iZXV>@kOo~z02h+Ap&Na@Q zj%UqzPrIBc^_hpKZtK5uNLw-oEBwyNgUQ3$YMrDj#y*z(x&LdI+}gAj z^DnVyAM@DQ@tpdw_#Ve^{8reOd%-+DPKtl^8Eq#jpMC6>*xwN4ANZUyy&lKNnq<>O{F4X8tCN-?+*fg5xJHSy z)Nc4pU9L?YkHcuY^*DJfd(6$B=X%tboKjv?cLEM7VpaVB7T}YfR5m%E{*H$JmdW{z z96ZSweodaBoC3N!#G~}0I?k)&Tm2l^kta8mSO3Czxsra8?c$uLzgvIxOXX3?UG)6; z_Qv|F?rHe?HGb!re}lOvn=AK=QSMiAjhxD<>fgHW?W_Do+Y@5YZ~Xk^6Y>@{`FH<= z&zs-d+$}GA=fI)Uws(@>JDbh;=sg_R-g_83w<(Wc=YaA^`sgjow_f?u%hz7{*BfQc zPc9|@7pohb^om`_r_-`i_wmu1%!qBi#)q5aqFhViW)deoY4i1!pXTQoZ0L1ue6M&F zu655Ssf)$rX|C~?V@EH3d-+$qogA^M#_{;*7OT=D#;jEr>q3l2A$gE({!RHVFI##~ zowlnt${UjJ*O_}JJHAoU-?K@1R?;&1v2r21B9CXoIdCpNX(yuM)DOq_gd4mezLddbDzvanUI$Q zmGxvUaV@8MuS!}zT*22^znVOJWjgr(wQKbP*^_+hjW(Fm6=U9NJi7~g=^;mNK2>;i5!-Z@adt zl1;tZ3o(zn$T7c1EK^0--T1_FPbRrGerI_{lmGcK{XP6)Z_lK9%$1Dm!;~q=@mVhR zL|d}t$(5e%^qbQgWn0Uo8k_LktL%#7Vm=kfh<;U|oID==Zr0m%8d;I!$oFbx^r0W{ z)!VCW3xC<1`Vxm5U0XMkawJ1`K`eXl(Tk_v8+}i4y#7%+da&yi=Il{g16_wEzxOkr zE$?jP<>WcqS59+YzErFqF>inNzoDJ~J6|RHPIWoawTj>O&>8bF#txsQaV1-``g)=J zMdfYALTZls8n^?ZjJt6DmiDj6*`Dmjj)#6{N6h63x;~$_r8H&y-E^I=q_g)vxF6QS z1N;~3GCO)=&OM0NE7-*MZZ`EkWFDT2boD+AeCjp6cO858GlrfH+!WR)*GDey`hJbd z@yrR0{M%vt_Tc zI7xqlgEN&A!2V2GJ6TcYd(*j5 zl|!Xn^y4E%Mi1M2)eBMnhkT$ry<2?}#JYT=QZDp<0`jC+98>b6ygqq}{ITE3-!(12 z*ShXCfAUhYgEf4L>klC2B>sD~O)ge`k+k&ftK0*0PG0632fbe@Pc+x~uDPz=FZ%G* zL1y26$v^rZ{oi?S!>5iFe8ElMJ`LS+s`qmc%busTi%o~?K3w)400)YtIpt3E*>DKI zW8WM&m<^XFN0R?gL;iQU+j%5eYw>%SF|&+sQyxU_a;3fsA2K(q9}9A~&$!&iq(sio z?rYfDH+R~;98UX=GJd7<2zH2H>Ui~|;TV_)$AO&gTLAK<@08>XvKIVKR%4C#okHpj*BBcGssX#jf+T-*M1)zW#F|`nd??ecuIeo?MCT7Xn#*mxH+XEl!Rn^SJ7WSq@L0iW!96^==#AS1J?IZdgH4ayk@}exxnGdwB zhsR(YY!JI+_&Xu?F$Xsq^9}ClD4Nq1==~r$mwaCfOn3-t)ce5_>D}Ov~@IuKG5Ud93nz zbC!ZNTi{2LeR*v?&*+0r`BOMb{aKI`*|@gYl{r6|irhTd#BcX%eJ`?w&pEk~XX_-} z`nKXI#`lt)lYjd^`Od0YW+~e723e=GC{r}Mh%!Y&bL1tIfH;YU+QQF1l8yPM^9$iI#ojXxX?Ge-{8jsWv& zhtd(tIpoNxlw7EZSB;L$ZOMAFWemG=$4HeHd#=7XaSvlX_%aztsZ65g# zC;!E~YGdAaf3u3$>O0Q3XoI||iCyi4WS_n4IcOf&`IPpP`0=pvME3M5qb?lRP7$+Z z$^~#LoCasWnaNUe_B6}s+NFIV$jci3Gjg$Zp80R%FUmRx&W8(AjCQ%+6*+<2gUTx)#=zLx zRd6+2oBYAQNRn%Qr~A5w?j`2LH9}^3huCd!9p&BW`aZhoDBQp&`Pg+ApX6G8r*UlR zj0%(eL^=s%eT6YvACYT=v%wKTgbOQYiyhBaeX)a^whf9z}C)Z)bUqiZ!HC#*3rR9 z%fR!-#e6hpGR+S6ikh;P<=22RqaSza8XjI$ex7u*F}1E~eU?hbe5jACT84k}6!-Mo#vek)r%L%y z`~vn#wy@_{>l-=L9sO*4PUwy@-FLd(Zwgy*Ku=me)%syM`1{rUjgp^*W7w&`aE>uz zl9M|XI%_w<3hmppN1kqmTarKdpM4+J(D~gOtBFY$yK1Z8Ho9)-6Ap97X^-*4Nm-0? z;@1^p7X6n$UGEx)vl>on^w;i54k!E9k2UdI6U*AYApZ)Fvf0?qQP*qXVUXh`u`lf= zD{qW^sL96+j%xQO1@f}Z^0LO%9+8XkwkB6=8-d)eBb4jlDZqX0Nq8J$PCP-jc$U6M zUL$X)S>9xfo4l^!t+p9&QNB1#ig#_jSeaLQ&b8R~+^_yTypa5pKNq*hoBe!A`->n} zg_x)EruG`hp&H(5ufVJDI$82#QeITXT)zR^l4Hrc;s^5Hh{a~`iIDde#Tay~yo11l~ zabLR1_{iU|v7af~nwN967`vDgQ|c| zudi?|-%@fV&&CdUmq}}5L*>lm6!Q1p*qjf0%=?P$Mar*@k>geRYSwe@8+M(UwA5$7 zelQcnvUD<;e5;E~eSg4Z{XpPHU0mzt*Tt^R*E-ue#XgUtIvY}Qq?513qg)@x-mj7s zY+~kreI`+oOZBgOo@;Tf;vs#fdAO{T(R~fsH}R7n^`niIKRx8;F9h+K ztcj5_6?5!4V~zow)lVWvj!f2#TS3kp+Kx4!-T5<;aW?(@i6)!s#~B;_Io??M>nFg8 zfQv#|xd2W9xm!OHjsUSuX)obvQttH7Ut(jPjiqz+pN>bl(0PV>1g^{Srf5yn&rbf; zU)Yn_u%V^X{Os-87s6TO(v^EeH=aW;}OIiQZq`eHsGoSe;`Uq9KzNtT}_oOH>V;{L{6ic=`# zv5c=y^XueJid()@{c>%_)>p%o=0w@@wSF0H`jpostLfO((2;l+vJf7EpL;fN4gAb^ z-y2|t?}9hLZ+s_uH~hx;f9qhL@4@bddA=vw4!`x?%H8l2-!IIEmGD#lSI>v#Fa~@3 zpR@?y!fgLfWnmZ0_J7J6NPJ$m%_&KI=InrvVW!Vw{?$k}!!G!Z&l8Jb7uYhD?CtN? zL-0%Y@D6wr_IB@D1RLPD*7$PROWrSmpNjJ;_$A-h!Csq^@AkIrt^D1yy82QaMIKwl z#d@#bfPeX4Ujo;Q{W$({nS0gswPFVK4tay`PW|;Z?tv;)$Z+q--70U` zpNi`xo&1}B>AQg+*bwE*`MTVhypdmzDy{SS&Ey89bzQe^JLPL#e?9iad}B)r4;A;J zuKV=I{IcGPazd>ucI@?Z6Bn7N%e|rSntPA+S-*`P z{rM?c<)AuTw?5^XodzWiAb&)xVpZdeF5jMb6+SpuwS{dz& z_B;dDc>T%b^XTt0P5#z5Yv)t_G4}DH{sg@=p%_WEw6pCV~6-w zV!UGvx5Ha}igA1s-er?`7I2k1!}Son1H-PxsWayL2kdzuxsr~(H#hqnec8#!$maya zxWv5p5Jte?uFlAP%!Nt$Czkb3U<%|~D)J--_1*9pd=8%`kJ95~&GdIa^)DLnjP~zg zD}8k_t&^KM39oDDptn=oq&%&EgDY{)MxMS+S|-G^e+FHx%6+u6qkmu6PyCNn&V>Ep z06d9B3ZG>>m5)#UGdp&FZ%3xfm;a%GXB$3uA2+S1|1kYW>tCy!YmRtV%BYxax&I%|D|x1@fRx>lY@sYWBQ?T8=L9L zi(~(l^t|m_J-ZCgH?ZY+?fmW*kCa&Cx44!EIX3mTCY|)J{GI-#4gHaSeD;&kPew^B z@-a?gP?4Jz+;#DxLyq)c4{fg5+o^x@4%Z#VEKHs!`xh@X#i2h%@5B0W-roZ;|8fxh zN<*HH8*tOD9wA>+boERnfBe7ro82rc`;PvKv0^@Xr+QI-My^XxR>w(pd2*O}FEr0f zv9(`5q$6K_&`amxWZXs8ePFHh*PzaC`ipo=?@QJcnHTai=HCh!NOENVXiJlS6*<{2 zhx%`XoA}C}$-C8;gZoYYO0ahN#jO8!x(-m{FztTQf2$b9SVjJBfqNj%Wmo^buvRWi zC9l%CprNy+|Gvgr7mNNFvzRMch#Wrza<2aoz)xD<^*;*h;4xSakBiy2_&tiRU-R*f z*9y6tl0E# zR?oWkx7gh;kJB$Ip#wMF zuNWWa#vFJ_-zjqTOyyPDkJh$T-#7e~GwG|7Ub>h6K=-T0ybRmOk9w2PyK}8#bv3*A+y4%oG5+r-@6h@4ml|t*^4{s#^+em= znYj%gT#R{!N;bS#0bL#_m#oMB4-U<>4f* z`|;L43?r`bl(()1_D}xVFMXD7*z)&%%x>x5$@T#R6&7XyXm~UT@g_Hg-m2x1Dn+hA!r_#r!$qjfofq&5!ap{-a{oiQcnA}KbwOMDs zSPsk(yY0q^-@v|fiQm9}WS+x^s`^Yg0Pr|4OMEx8k1aj(T^|Goo0AjoHaeaF*S+#2 zcOtMO_j)o)?;pL~hG|nTON< z$ng*xF3>J#2NsyWPW_4GEcX2Lm8M)6&|lnR48I3XgHzdNt(SY~cv;yl2G6nWTKtH` zz!~~W%G2Rwyc#=jE}U)L^U63T+I|W9o=$F~Z)HPY%cOYbo}P|LNj?o+Di(5QfbGRB zUF`3An0$GeAv;fhWsd&H?}cy?@M+*OI1l8_z{Rl8SbmqkVCN=$$mgDiTxZBzkbD$< zeznQx$!Cp!0ar1<%+2C9doN!OBI^os@!wTfze-tDT3ZAB&x%bKojtcJ`P;K4`K$j` zo;PH-3|vjd^pe63hz%3? zjed6E17}_P8o%0g%w6&5ihidd&!2R154{VwHSyT>t-ibYF^k=N8K{`^jdDQS^V-C4 zU=VJEo1vE;92fXBa2rJ3x4?4T%Jl)fW}~mG$aysRjJ~0UzLx5R+8ggp46Nke>#nPG zi1R?ddGaV9*FynTxb9QlK@NXY(T2Mqw%rN0LJgv?YXBbw`7mI856HiPN6C6U`RjjU zKk;i#{#MQvld}E?y|r2Qz(#%Z#AjSSkTLLz@pF~0(eo02k5%6WufkS{`8Evk zJ{P%q5u(1QlZVNk{d$vM12J}Fd?*eBc<4ES|Lo1hoO=!;ul%i?hwqq2(XTh?je6dP zH-TLPqwpTQYd(Fs>($>$zM*f`5A?mIeF)@V@iXPeume7XF>~c`$vtx5Z5Y8BKFd+( z7x002va?f8bzSHBWp+RY_X7dkJJQxsmz>SdN&egEL`2I7po1xY_I@Yj74E%oZ`7d;@!3fkq>z;@*ka3t>LDUV`nJFcvaZhUmg{R%z@kAb5>K6T53ZoYS|OZF#s zS+m?heS^otiRQ|ge4KNVvDVVy0yr5?fm7i$ddSY+C%5P;WnqY4vAv{Cu2jTh@N_ss z+Y;rONjsg}8#-GC&zk0W@N9hx!9mYQ8`bsg7vy;|9 zQGCjBaqud*2Cjz4>9xrp{%^iVZOHuYbHHFLy->bOe;X{t^?u4_a06V=7bwkVD?5u% z((zU@hn%0k-LNhH84hsW-Pj{t+(hOYbJ^DQn0Zxmtf4~WR;+u(Dj)stgdB9~mlru} zr#sq^mlNi8&s5JQ8M;ny=$f`Ut-V{U#Aosyvgjzt!NC+1p6AA;C%L|r{c%l4{`o)1x53-Q0iT1b*sw4;ijH;7Ix5Cy_>mRI z!6@@yoSdhOIdKo!$C7OwRSze}dMk<16_>gh$lfBW{ z!;Fc%-37y@Cdc%} z+^vdIld=o+9_eV(<~z>ROy_LTVYr!{A%uUnDQy z54M5)=n&IRyiR_gd{Eo#@Mv`rZV* zre35QFZucA?9_&*%Av~FKwlxRd>Q0k)qN?wE*T_qtRb_dJka1;oQn7uoFo$;nI-DD zuCTj@uY=Zf$H&S5VmKIev9WT25~qbZO14jalnj&qoA;V+p3=wfa*P?i)613L;R%>jkiDl__TVSxZNv#VLwFrJNFK4HYblOe zUDGvm2zj?F*_y}mkh~b$A7;Xw)F1KV2S)?n3a2WMG){bmj!8ZsbJh1UQ*6n7shuCi#`nWR@?q#ikn=A?XtLS;s&pcCE4nOluAq#u? z9();m42z%j85-t4mn6Gj=JTFG!Ovf?zF`x53-h;FWAMut#S(t{l4pAG)2(E}k6!kj zH~i5n=EEPosvSOt1=~FPgITZn8wWFe)>{rg@tGzCL+~qq$FG5HFw5V;4e(R<_7h+; z%yM5`3qP~Y7r`c&YfWs2Ux|MfcEN0ZFNfW*U}*aJ;X>sf_)g`!zfnVH;!A!{S|39( zMyJ79aE6>bUm0-@oDJuR<10#QCSSt2yq}a`*%jI@go|KNaz4Hn4>#!;jIp`cTcLf{d)zH;&8C(Td zk}C%~()Y!G3?~>k7?}vB~ zNW%c1+>eHqC;#y`&eCYsS0rQTMz{%LzOXef?nAf0&2THMqT^lsMs7cJeH+|Px45U{ zyw%CI#=FBT6$j5CeA~R??Z>k7>aWqAUEEh9)yR?WnWS3Cckz4h&X(v zeAs(rGm_u?5AG2SdEc$MZgYnoh4ruw9y4F8haM+$2Y=;oPvn(NLr;MFY1&#Vkl!8k z@g;wV@=3nTqqi;DkB*(qI)EYK z+=n@Uw{WO7HdpxF&Hv)paJIG&;G?96Twfdg*L%WH(EcGz(raF4tXX!&`U_$=^aXsW9%DEPdvN*$E>$EjH@2^nPGMfv$N|-ev?x;-nBV4*|emOWk(!yBrX=wBUZ!ntgDo9 zr)e{;=Tu`)5btx`gYH$XF-Kg6k4j2x+1zZ)@X^|%d~%27NWZnz#s1-A{GE`W#Z|DG z+`F`qIn4L`)#S^?;%)Rt`%lt;yLg?aZfy?7JQDBW1#k+U+1l}zH6Sj-X97D5A1T?{ zy?^oso969o;(SpX*Mb}??$Evl z==?DHeka8Iy4(CY$-nrUBw5nX``zDz;d{&xzw&ird_IWru)H2#3-_@FPuT~3<|TXh ze&gKdh96+xCi7lX*EjqSJgo0+cvYO%iCyIQQ88~zPNQ>Av(8N9@iABr#umRJ?%A>=`QLkG2!_miG_@g5mx%w17 zgHOz1?i!N*qD-?|U7XN12a z`zDu=Rcw}(c~1LGd3mbR+8Ws(4m589*gJ9%%;M_;>%@Ai;4-~6xt|<=F2DO5+A?x5 zUXGs5v2L7nlapR*?2+cq1wQ9aQ_hA%ae5AajT@N*hp?TFj2tQ*kDJ%Tq^kXJI3oFy zp1s5OdKQxX`m~;^c;@CALr154%;Tao$WAc|XKL5i-KRVXjsfem$d8d@K^~3J)s6E` z`CNE1`42PvfA+ne4FA)O?~6w0$(YxR*&ttNY4*HPvf`WE9(`^Z_qm-M9aZ1UvG$a#Rj zPU|lvM@G)Y*%`@tdge|wcoTh!B#QRheD0rjl83)y?15}zYEbvZGTXWt5+VPY)Vo4yAp zPbZF&ORj0QZKPoAa$sXOJ4Q-y6BOxqQ5kc%m#%}A^015TS)7!Xxvt}ALRocw&>pg8_6w@QJ|w|x3=ipEwBn!!y32^ZimR* z%`lk!!M^-y)>Xn$=d1dn+`Hj^SW6E-%jTrxnz<7mgnI!mBX{8LT;*N-dxkC6O7kCH89ulb$qHyi8rHDk8%k(?3tj*++Eb$A!vhIb&^ydB;H{+8nP5DtfuKiSW_ zoS!wtx0@fSS^9^K!)dm|xXAGcJMdd9%9AscN6M-5tXaH_?0|6?<;$S<=)+Ek`7{O} z!$Y$5L(k zk|h>B3zavJWj&YHYTt(q^p{W3$A)yfoWb?z0qntjk64Tz$VdI72a&~>9z2fDN?v2j z%-v0#XY_kvuO-Kh(V1Xk4HeEepAV){p+a3E4gSq(X zR~`z7h)J|V{8G2LJ|_7mGks6gtbcT#_M<^eQ;XPfkNSLNS}E2++i3IyFQX^(70(^f z*W=(+z(dbDxY&jR7(Kz9X!q%GthN)CCz7V;~lmDaoyX9?Be&qO5c@bY3 zbLbBjDe;nx@i`5|VU(`Cc#lSoa8P=MkI#|~9ox0Z%gQ&(bCX*1wOLmuxdnPgFMvxS z+IbmVOn;4Uo7ERX)O$JbJwtCkL1FdisEMVu$$-8v^_KPO}itHM_ z7Ovo*oJ*0NIhb#BX35Qo=jbxH0oozvo%|iW655~(I@!=?u6d&!Apb{WydzJ!p3Lf@k1 zzESHvL{65&jc^mJfRzyQ?Pj5ts25yJda>l(Vg@e2}6y;nds}#H9NBZxucm1Pe zoW9f#^xdiNZt;!$+y(c7xfOCo?=v^%$y#_29)SDV7vuR5U5Dd(AGsz@qwC;dcm&pi z``GBC{@%<={?!4#yKmOn8GYCQ8{rAM#3XZw`X+c%48>;jDR>&5k&C17yn4(fu`kP! z%F^U)au@BH=5_0^`|gPUham-bKH0H@G<;i!ZQfi4!`mJ z#d)v+X8S*W2%|8Q5pE;!x)N*mzE{vVhRt6&%W(r4uqya{{xJm{lbvI}PU zEOj^h%x8p3_y<{`Yvd%WcujSz?_&E+2!jEfgR_>11 z{NDiWKQXq!MN38gR2!ewd&GbA1?%t?W#n*+y8Ow#r0%}Zb1pt#Q;*kM;bn+pUo}pS zl|NF~pLf3*-IlDz`L?f`a(VO(?XSa|;uhoo7QF2q67%I9dg6N84)2Ot%%vfar=#zY z8FO#gy#19UAkNielw*m<2+421Zq_rdeFsd)N$a8TrLiZf$F=Z*{9$+LAoUMnr+nda ziXZ6?V?I`ozMQIW68O|}KDcLfkl7PuUXlEp1I40QX9t@{KV_$Tbn$Y&MBjG9F8B-r zd_pe!Q~2um#`P3@0qiS0Xl>wROn>o&>nD@DBc6VQ_ zz6ZXBuYl})l*8xzU1aW?+(+IO&GN>q#Zeq*t|h$tQ1Y9?SwfrP)4q zpg#Aiu>-(;Fz-H4a^K1A3vVZ%lfStkzh$g(_TkuJ#vTH*VUGEWlt+PkLFooQq?F{2 z&4nZ32yLe+kA`E&jpcke4&>C>@o+4^PD=j$EdK|7JIznaSmUgtG5&V4YwUCohcWk> zu~WzyR7SaCI)=NkGvO@0yY3Xzv4!$Y-llJp8*EK?@$WM2XTv$hMElN7uB5Zt(D~i} zI%DT)mm6bpV+?QIkNWOX?u_v>JF2{htY?+@tlp`-gun8;OU~zToslP{oDw%<;?QIK z*roh?PPq*9=bmw0k~8aFvne+-d6XT0^q;@?y>T{8Ui``Ta>NP z221IZ7ZtL{#6Bygomq7;8Ec1*9||H8`5mW zM;6ze+r*OG6kEFaJJzFZXY!v8N|HUza=UKSj)Sp0dv@~g9rDc|8_+H$V|D0*I3@$^ zOb?U!p%_)Ho0p7Rq`e3Q=mmU@Rg+e_=KfzzYbfBa{GvYdI$vjdzj_UnDX|%2%h>I( znon|J>|W)RGS*{USHMjm?;R-LlE-7tdKj@_!Cy(zKnjJbFV z-sM7$FF|a_9)gGUy#Z^~AJBe9^7{wN?f=qb_gL&(3-W91ez*_Ha1Y$UkLZ(ljy(b~ z7VAL16>(RIF?$fUBnOha_y=;uFw6fSXS%J6ZrqP;V9Q%_@)h+b+50ArBfp!)Iso$jmk;kY73`Kozjl=9|`&?!zGk(=ln zo^!GNW#Ho&-Ni%n$Jok;vG>iZCVza0zyCkb5%X6rX4sH9RQ}14vhk%ewU0vpoOD&# za*Z)xxE_U_^c9q2$zf#f{(;Po*m|8loK`MX%IU6SlsiCfmt!7I!UTNaGvrKd_^!@y z{R!-WT}h7IS-&^UM@xERgA;3_gwOJFW4?rF&!_O2*d3+(9OQMLKV!T3|1CR>Ep1F* zC2#rn^2WY$w)c!_nKp;Ej2V{^_p}&}?<-%{@%LKw{mkvv|BdVDlQCmov-JY}N4Yo% zON=`h=EC90Kc1Z=yS~>mKC_{ttPj8A2LNBkj{tcxE=HZ=R>0}_Y&Z<|XETf+#2(|b zr^`w0Wqy|VoH0JM=|39gCCAV=|L-;BP1SvB{7BrFlsFm3{rG%19*(8Uy|^8jX>{^)_z`t$Zv4#T z9ddr&(q!BCS$ug7znADg+xHgNsI#;3kW%c&&w+ErFReU}t#YB`q2!;<@p-dZPUo=x zi{N75Z#vp9CPhAsUkKLq_*JkNE{98!lgU`qEMxpq?U$MRy7CG-7qCrRSCnDhb@6Y! z71%f~#zi)c$DEJ{C4Lm&R2PSw+!#+mhgg1)+(^%^hMt!3##wu1u^exQWpF)oK@W68 zCoH8u+KK=2Dy0~Y$GAiuvXFyJ;$QY;{*RjY^kKfGI$vKEG*Ba`96M!zPsTrxD~AV@ke1T+zaYwFJ#6LZK~>4^8xm}f8GIL7Z)*owo9@@06DAKR0^I?QwNANa6E-!{2*lw8@a z9^)YAa*>0m<4t%8-hy|;Vp91A#If(07iGUffAsU+fDic@^M5Cv#k3N0bR2f@QM|GP$vyNv)U0oOLjOnP zMH$i7kMSn|%Ll6m_w#*}U&Ai=1U`k&;7iy8UnHNAx%VG5`7j>spMuZfE8k_`F9x@$ ze~Z(1mEU;ZoZN{SupjITGub{@xj!5L2eNlv^4D{H-`gy^a+$ta?7a!MXQ<1!3AUzg zBl{3_NO$X7pgx-~7b@q#Vfe5%CJrSx&WpMZha-#;uZbf8zY|9#m(%%XLuboGapqk%=3TZME0>ed#O6R3T&S^S&YOd z740}loN?97-icG-R9wiJRFC>;V!@{@-nz@`xX+!f{dDs?w4W(wv&O%fd_(`ThW_u? z+eGwpAsFAY&b$rkXBjKUN^F`iH!aqk7ptF7-{r2;KyURtZ4u|1Cm!AERd#jpJtOBs zr@nKNzd79Z2!FpR_7jos$khep$;Apk(;4xIF};Mn@-@%L%2BRyl9IF8_3F_E`coe% z7Xz+Bm+~V0LpXcJJhAJHYbvmZEkT^~_a=YKhAVzx!&T;8p^xoZ>#S?5>nqi@S2pv5 zO%qoG{`2=KZy*Z~6H9^2iDj@v-`C3P;2QI0@B_~it#GaJc$&B#7ezMHk=v7OWXHD+ zJ6g)((@AH?&~zRYRu~^S6SKmYGRC$IqF%C6w=4PE!|(K~>Nu<5VJaAhYb^hbmC}Y0G7jzCzGS|1eUtu= zmFy1LWPiGLH*~d3H2!Z$%c1@kjJX+ZF)yyCTVWO42GOV0NxQiV{;+4P<;Tepr=B5@pQQ`L@m)Fhf-z4T^RhgO@p%GbPU5*d zto{@{jl(%gIaXXMC*r&*HlLtvlW}JzbJ+EhKWf|~IzQC@93KuOhyLp6)47t)X@A!I z7_+yP`U_vM@?hxA@ z2f+a#|1w7?4}m$!pB?3IU$fjDhiX3@=E7lcBp6?2+m54P9vltFz_Bo&j#aNbcOjTpB(s7iN!zmH z5_MeexD*zH_*51ow(2FRW_>#@mxDd}FN3Q=UhN>K5V^Ysu7&H^lVWp>&k|^bw&c%` zb`Nism5uf;<>zYUGPvIVIfF2ueuMjER@pAz;+hrLV&t)dU$1I=g%0ELvywB&o%NF@ zPCCWBTs4P{DfV<*C#A@HCv-!X^vEuoRI(p5E4j2LINcO z7-t)UaL#Q5m1J8kqJ-_W-uwQ4?^9L6;L!7W(mQK?I(eVH|NW=E&ynOgEJ@!VOkgc@ zFy10$SyW+TaU=4g-*QBUssQ~CH6Y(b$WU~lgf;eBg8qd{LHdc~rP9x@u`P0^KZ>x4 zqI$N=i1XZADY`j_WAtUgm0X9;hiagj^Z1_7T>4mSc%dgkKTSM5K_5y!;ClMK7@f}9 z#Wf4i?W@s&8@T5k)|45V54BJSJh!Bm>+va>pR+G*q7FlxE9z&viF;^A5q6f_N?GXt zu(Y+A`!3)(ZOW(I&|=_x0eT%;!f|xC2;I!w#67QaY$@%Idj4uE{bB3t4Rvt59ol#& zj!k6SzY`eB=U68!gD&pJ50y~w@{8DC&hy@5y#l(ShjUXr_fYPPBNF708OCOiLFII= zSxKFdXYLhj)7DTQvYM&U4f1i%tZcQvduF??<2F%Sbu;_(4`V| zXLug_A0yLB>T)OhqF*1vN5}wK3}Y9==wkW9-1`mN=+`jihBz0JXGwiO_jFUQaAJFh z7jhl?Si<@2o7fip48SJX0@NdXFYC?JErKkl+c0t%MsJ4~bNnmMZputO(%SE^or@?D zT|h@dUjX-ohPfWS4SmfTJq{t)VeB%r1N}!=LP6v!=ZBDmvC8;kER=)L}RMm+n?0zf5~qu`Oj@3Fy-BE1s97ZDY!kw*LWU!1Zt) zbw)lV=w|p@Kwe?mIQ%N>o8d<4jLgEfc=o%NzMq`XuJElKznyDegV$-#TkPM4F3{Iu z`Z;_D+zofaU2qTF2lvARfNaAL!XxmQ=K{*l98>ldp2yTmIM?C*?`eXyoJe~Wc9y}`~azYP> z2U*MZVpsyLfPGaAv8Enjd=kHq>MiZ{9DO~$!q&%INL#b5K2%^USzqv+sXX%o?&$>T znJ@B}KJH+fI){6hv*Q_6Z&PLk`zv@3vMBkQ`_JbX^~~q`vgPb!Hx-mwk;8SpTr<;i zEzdvp7e*f5{N1)s`Z(Xuy?3!*$@O2d?uJ#c2Jlzm0eB9ObrJoQh3vxgS2@oQzX0e{ z<$1_rBY$J#QubeB`%TugJN$}=Kh5Z=vCq|UZg?H%-{Rb>@EW`hZ*Yuu4U7JxoZdCBIGM&ZiX$MlWyQ0|Cn+E z91lVW!aU=B))7D-N>68ve6#3}FntytW}ABEtoGbYInl&&%8+R>{he0}snjQfwmro? zB7-RXbR%W+oKj>^LVXHF_mOMvlbqiH+mX?ooLkH@?qeT0hPP4o`?)Tg?OmRQJo9(Q zCCX%k|w!sT!U zTm|yHD`_Kokxe@pD0m}NVH!;LwDOEuW1c~MBGw3Fv$z3vwXaGeVgYPE2TbUJb`{ArE`rHL*UC zT8`I2Jv6`qSO|@<2%4Z7(BFv2ss%kp$0Dta-*zE`D?9^~`DJ36*;A-1wil85w4ujR zuE>2E$nj2&(UwRT_fyYGY-@Nk`^#Bx^87!PH|3-RnMJy>mzA8`!Zkg#PwKM*dZ7>c zf%B08%FV}4F68;6^zp^q6X5tNps$95p3`n3FR*2MBdcv6uSGAu=9)F|JiGue!mE^Z z9_4Ie8(odO3@^beTrWDY9^Qa;)UU(ir|d7?vWG*q?DskUHoOBH;XQbZzNh__cd`90 zya|J_0X~FJ;A8lRw%*SA1IpjZ`ct6)vkO?ij*VQ+dXwixo_p@eiSiQtKu?R2LpeHB zA$1V>iu^<#K?r%q-^{#D;(f&;&oFvKKSad-A}~Z5mjW^>S?@WIdqxxQi41cMvMUk! ze+geuFVUG1KtHlXM|Z$>pbgogmr>-}&N=ie&(Hohu-n5c1kYdpGO-=>VPq$K3*Qk# z(UYMw;4JQ?ZA0kU&}o!WO8wB0q0{MO>Rf&q+vl@QTZYbt3p{U7c4lJPL+5h*9QyGo z)>76*fW8dT-;r&sFF}6DaOeuS5-#@~GL!eYW6F@{Oap;I$Bm4QO zY*%|G-NHOc;;L(_zgMC0vJc!J{6vZ&tNj~?K)Tk9(?wd z@HlLN-{HG5VGB&b#(N+Nr=atx@G+c-4%`j7&<@8Ui&9tzr_kne;YQkjDeDH-ljquR zIHUAS6kCmAqfz=UiY-U6<0$qS#SWv`V-(wqVzxIbf4f zY%+Qk(5F#sFpAAZvArmE7DeBq*j^Odi{1d(Rdfd22-s2dX26D`*h>_9iDEBN>?Mk= zM6r|TU4TwSv5_eD5k<$N*hmx`i9QJQa}=GAqVrL7K8mhK(eEg_9Yx2Z=yw$Tj-uaD z^gEiW^U2eGZFIsLMc1R~dK6ucqU%v~JvtlE?I^k(%>wi~icUw-=_ocCMSr8{Y!sc1 zqN7ptHj3Ux(c38c8bx2D=xP+5jaC6V8%1ZM=w=k%jAHB2`A`dWP!A2T02V?cEP^J$ zwxf$-3A8{fw82tnhYnZN2k*lN@F9EzAHyf`Df|&WgU?|T zY=$imfFOh*3=tTDFW^h~3Wniph{9Ib2HRl=?1Wt~0;8}SzJYJyJCAoOcChs{I33PV zS=|4ZRu)^&Gd+zEHV-Ea@w3-`hO@Blmr55dFm2s{dp!Q=1* zJPA+1)9?&D3#pI>KJddVmBrKl&6Pzu$7VwYWI`5XLk{FZ9^^v-6haXcLkW~Z8I(f> zR6-TZfoiCMxiAl~iLJFz2ldbZ3t%BM!XjvbW>^eMpaoi?4VFSXbigv`gf3VPE1(;C zpcnd}A6CKutO9Ie>l%0t*244fg32QEuUuKY$g!8;Wq1W%h1cM9SO;&wde{Jiuo2#b zx8QAf2i}GE;C=W2K7^0pWB3F<1#DvLXYe^}g3W+UYz;sVLJ)=s48a%hC42?L@HIqX zD{O=9umg6&E*ODP*bU#nxA2|EyKM@b2B*UrfE{c*3(kgfR2HRwZDq0TT#lUw=feeX zAzTC(!zFMjTn3lJ6>ue71y{pVmLrJC~SpoupM^5PS^z_Fbccj8~7H!^LV#U zfz#l0I0Mdvv*2tv2e5%M@}U3S5m z7c7Sr&<#D%3w_WJD`5au0XDIH4Lk>H;dyugUWAw6Wq1W%h1cM9Sf{cW{2NymZ*Xiq zY=A-72yen$@HV^y@4|cVK70Tl!bk8id;*^WHnIIP_#8IDX4nD&2to+L5P>2102L;|31`9Ca1NXc=fU}K0bmC^ zE`p2U5|zcre`{s2<5G@Y2A9JXa3x#?SHo182GijhxE8L1>){5#CU(q#8{sCn8D_#Q za4Xyfx5FK9C)@?t#EyI5UbqkLhX>$6cnBVbN8nL-3?7Fk;7NE2o`z@OSxAL6@PQv@ zK|0Ka49J8m$c7xqg*?cI0w`2jg#XT!MG?n}p#(~y49cMbDxnJIKsD6BT$l&g#Ex31 zgL-Iy1+WkrVG%SzGc1NB&;qT{21}tGI$#-eLKiHD70?Ym&)z4Q_`!;7+&;?uL8dUbqjiiJcF? zgYXbM43EI0@EAM}Pr#G#6g&;jz_XAFY2X7t%z|{74H=LLS&$7mkPCT`4+T&NMNkYS zP^z*x@b6t&lyR&aDxeaoU=CD64a|jkfKBYIg*vE*23PQcnMyHSKw864PJ+J@CK}h z4KN5B;Z1l8-d0&m{+%m}cR2Pgya(^Y2k;?$1RujE@F`#uJ3oWZVH0eIEf9bpgdhwN z7=kb0OZWY)J^z(Qz*MbHGzuo#v=3$#KTEQNOHfMw7LU9cQhKsWS2FZ4k_tb_qr z1=z%{HSip)h3DY~coANLm*Ew76<&kaVI8~y>tO>7!bW%#-h#K`9e5YsgZEVyzyC*9 z79VizL-+_jhEL#Az$SKm2A{(w*bG}B06_>r7$PtPU%;2}6%51I5QVL<4YtD$*a^E} z1h9!+yWt!77QXX%N2b7Oa5|g;XTn)EVAPJ`3o3^)_cg0tZqI2X=?^Wg%x5H5m?;S#tME`!TG-ciaLrL0lP8l|jJ z${MAtQOX*ntWnAurL0lP8l|jJ${MAtQOX*ntWnAurL0jY>k7CMu7ay!Dolgva1C4w z*uf}vFp3?F{y}AN_rF+KjLzWLjc^m(3^U;txD{@L+u;tl6Yhe$;U2gb?t}Z`0eBD| zf`{P|coZIk$KeTh5}pEVVicPg#U@5mAq{-shgpygvmpaAAq%o02XY|~@}U3}>cn;RW^Y8+^2rt3Q@Cv*NufglE z4&H$EumJ{PBfJT3!Q1c-ybJHa`|tsL2p_@6@Ckehe}vCe7PC%sW$`)3Ho<1t0s#m@ z2*MD7A@~Bmgs)&2zJ@4lg>A4McEC>91tTyDyWt!77QXX%cViQ~PlMCp3^)_cg0tZq zI2X=?^Wg%x5H5m?;S#tME`!VA3b+!kf~#RFOoQog4O|P?!S!$h`~k3o-8aHbaI?yy z@N_GS-7`6M3)~8~!R>Gd+zEHV-Ea@w3-`hO@Blmr55dFm2s{dp!Q=1*JPA+1)9?&D z3)sZ&H1L5RWsA}EFuD1|a8hYF~KDwqS+Py=&e9$*u@ zYoQM6p#c`CENaehWwDTBjj#xspcxj!5@>-|XoIED4jr%zI-v`e!wTqz9_WQW=!cas z0IL9-*u4gxgSGHHyZ|r4OYkzh0HGGY;jOjI&)?px6J!=TN=d(Pf!8 z9YKFb(BBdCcLe<%c~|xDH|JPcjG)US=<*1mN8~HCVA1iwC`*W=3jHn<(`fIHzXxEt<)d*ME~A0B`Q;URb!9)U;U zF?bxFfG6Q8cp9F8XVnjjTx(;pNac7M_`nad09pUQyP+TQYya8a2Z=0NE^zf?4efpo z*244f0=x*s=zY8!iutwwr2a>2<2-Dm=R()cu#JDk`=S5LK1gIC`mpjMR~FdD4s2rw zwy^`-*nw^Az&8FBekcc7zjCoH|Ia+f>irKqujy<0 z3#T%t{#)jfr!a?lA#;b*m@}KnT+#i^kvz@ZKqh12QpSR{jDcDhmmEtzF5d^AN-p|a zaP7c{ho;4{x$veJL>!U%ac5BVAp4|9*+H zcJ118g)0l}`rml2*gJw<{|A{LmUwdDm98wX>k;hwUp-g+{V|mHPaQY?jCp782;=^r zIoIsk_2jFJ3}oN?)eD|OZs&JWuTD5N{D$W;j{PR_*jMDXUp))x&{t)E&-`i~Fpm6c zH@_!wI!uQf;U>5lZUJ)VVRGhSa^m4MAa)NEyNC0Da)v9Q5{LuC_~v1J@GxZ#;}3`N zhr{^7;UP~6^*J-KK52{zhQIT8(@LQbNdfNZt&d?j2nE68+^#t$GE|VjC_n6e2)R+ z2Hz7ri+j=-r=)RT8ud=QOykqrRuoU#OgHaokn}psC(KB9ls>kc|6JW&;ScyAvD4w zXo6-~3`?K|TA>Y=LOXQ8GU$XZSPm%k58j6l;6wNbK88==Q~0C# zyT+65@OZ-066`1qxuzl4VeBIfeH;FUb%AF(*F8SnTqiMZ96sq#Y;q!fdMf-L*1`L< z?K8@|pKB|jn)_<)eW%X#cs^nOefA&Q->eV0)2#VT7>#}WTEE9b`SOe|2*b)6{uTlE zo(NLL`?dV-3HmIxncwk2UUz@a-+P`i-~I<2c+kOz9D3N{M@&5Os7aHLKIRw49(Vi+C!TcjFHiZ4U;X;jzx;21 z_1FLXfBeti{LSC~-EaTb|Ni^m{lowH$KU_cKmUto%4w&capqZPpL6bc=U;H)MHgRk z>1CH+aphH4Pn|aXnrpAS{)Ruyxbdc&XWnw_ZMWZX=UsQ-6JPGV@BRlKeCXjv+#`=Z z_V^P|KJ~P_%lesT|8HuV&p#`Dc1C7ac8)!ho0nfuSX5jhyQNfr>=JK`J-+WY=>?vo zeK$=m_<5~!+hp6aM+0olZN;?oKb!QYnq}{uaPNKg^ipNPiD`tGG|F%inuk8{VsuyO;gB z)_->C$6dj`eZanrf3Gr0aBF|6^#4@H`IB5rNoiSmMP=2T>YBOp=GWHMH!N7#xTvXl z@sgI-wx#VI%R0N3ujuaS?dxCpr&a&A@x>G0-0N0Ci1;y4j*SpMsiA*b^%Ls!6T{Xm zf1c&vs`_r!{Yf(Y0p;04d-kaQK|g!({Omjazr4Zo9eLHi>tb@QeJ5Q>KbCd50 z$!4N{HRz{gW0cVQkfYZYrHv2RHpb>}M^tKiZo-V~<5EO<`-*TlNQRwEv>&6VFTLGIYIlposv zehEo*UqTyx=w>}f2|P48IoU}`P9D!XIeCKqMs>$7QbMxZVafZ;$pey;O}~x3a$kE|hrLW9*zTR=(0M<+?5l*IJPk2rA0-^A zi%e%6dE_4cf6obxeU$JMrb2%AI~_^=juL+E;`Y4tpFgbx?W}z~NlS?PYHJx%eB4=z z?i!yTFGSt$fwG@a2dQ2B)*sVuxmo6s5=)R{>aTP|f1oH_7vJC8mZ?Lm8GnL(Q-bv{ zDb9FDX19J=1HXUPlt5yjvt!=<5AYs%kk@Nw$Ru5u==B~c>!ZArypz4&quD&>7yLNZ zd))Ef6HfGcPm)$3LesZS68WCCRcG4RqNt>#!^SrM@T4Q+2PTRnlfB8w<1ky1tTD{w zgAYkgKJ>8U!;eVTnYv`A>XMI5PL|oau`zH}DMFzO}#3sx3kw+yZO-h=4v}_;qi=?Du zV%ibxVU9xfN_azqkh(XC07?V+Tjr34g0_HA&b07^*GN>IXK zNyvWUk?svgO=4?u($U8x{UYgDHjg`A>)@XLS!=ad+H6ZOR)s!DJ5&%_3sHz9GyR%m zoR0eto`0O#rUVL;1Z2F)JkSZ20}kZJK_nh_K|f?U6i}07nw5N%93T^s5?D|wT{N3X z)}TNI?ZNnJeWc$b@?HAJu z2i+Q%B0ppqk9O`q?tpPdJ;xnvj*c65h}}3;)`yK7$L#dDaYxz`)F?D>_8zJlCt7%f zSSE|nJv)!>^`5{X8CJ161+)aUEKDnzrt9>#WNrv7Ir)g>>v&VV;}Prx@b2gJ?(d~zya#*5z+;|3&dDG<%j5lYJ`dZw(2Ge)7cbhjs&4S7YS?H6jOpoB5{~15l|AiF}JDH(U>X` zQLI%L)ydd}l8VH$Kor|9l8i|}wL@?7crkhw(Mee}>d1zUAI#uac16dG>oR*9Fwhet zT!~0hf*I>E&SM$xI1`-x*dQf4@F2%I*fGOBJ;{&5oWq?X81}K~$j_Oqb&v|kz#CU- z2HT>I@)VvC^OT~-#&^qxDyELUwGMJbVkavJ9J0&eT7((%P?p=V=Cu8J7$rzQu#iN! zLX1gJj!Q5%y=gm8{id8Ti)n>~9HWmCz>#^(ri@XIc`7@HC2IiJxdht^)oMb9yJ$h| zNK2#@dfd!JNMqEttx&WCaeyr299^Z17ndzLDZ3=NxNKbxA*8a1|0JYpx+^hN6L*;suOz3_fJY`5%O$z+Sg8Yx*p(U4i$3V{aUc?}rJh7=@)Ze| z66NGJNy2!1Qql>=F6_Ri0Aj;h4L8fTDJoS;A`vomu-2_ULNZ$wpE@*o z5Q_;P62a}Ff{~(*P)VAeaD9x`Oie9a?;>WcBRi9tSpiGZtbHN9JdWI6)`<(bzAkQ1 z-;a>~z2yM66}ED^GIpYtl6ZJ8+v3Tj6;_=zxsM6c_%yjoQvFyulUR(=m4rGZ1P!Z_ z_Hx%$O%#!=TeE*Xd!W{VoLF3pUDQZ1XzY_-G^sSoWRoybX%fTaW0I3~nbi456TPF6W+>fkz5eKw~g*h-vXxF;E@4)=~rK0f(` z1a%E0a}(4n zXb$K0J6X241CwBz44a{^4t~k!WTAwFMGYO@bRDLia!p<=P7cT*PP_x@4c0DwA<((CP$3WjH49K;QA;erw>+Lu_c*dFqtZKkkD^u4JGu-l8_RPNrm*JNr!3x%JiXj!5_mBST(aE9THL)1xsOlc?xduXl1^4Ru&Lc?M+7?7GE#I^ zPX}4?fO8CYn34z^A_oL1N;n=Z96x@%su zs~$t;U^`QSuEx7~S4iTiR;*)Paa5v(EOdmdWU=~SqP9(#L=QxU+-%0F^d^0&Q!sLm z4wrNagdvWUAd6JqT@t!Pr4`<)9U)$tCUFDKn>< z+so5g+?3Y1X?KVzXIPk!VM<2dsL5zkvU;7GG2^V57<3v+Tqvp}UO_rudOo(uY>w(9 zUpAV9C(GDBHgLBNO8qnEjjKnty6B`1TV`maha|x}>~PTsyJ%Hn-gXZ^Z*ojifUBa$ zcWGbftegmgVUCPeX{4F+WkcFzC-ZPr9FVal6Th;^eIY*P`5Zag8-0L6tLB&QhWo zeQF)F0txrVh6(1i1wq&3w081W@*5U2$)+C0I%+wpV*@iW<~~D1tQ}#fdlYA*9u7sp zX=z_bHut^7jzQ&kYy#FDa%l%K*(z#kB`LZfb-+3_?x|+89}5_!=EkHVg zd(8mJXkpA*N&+tviGn>DzuI5n6#L#7o+d!EtVmZt7qY2%aT*fb9<+F40e(XoMgR zD;DzXaP!2IC_xqpI*FqsTZ%d+n?l)FN~%<%Q#PwHy(yEVcw-scNjl6NEnAY}Gf%5t zT1Wf(YKu2FlfAT_!}3y#w_4H)e6?02_QQx#cSXUBEOqRm$INR0O|-}gYzZmjQzoRa z?6-dkLOl2o**-KS<*>t3j$msd94Uv~<*1ZNlg+m6P2-uQeB&9ccB>Q7@v`I+YFpZi zV%%}PGLlq5N4VCVVG^$)cmrXk zo8|o=F9>DITV*L(acr^PRs%T)rAjjX*HlcyzZn?0R!)X0Ax!IF%W&Ov+{}%8)YB%r z7awf~M{-c?WTKRy?upwqFV&%poVHmYTVh!{>nynpi_OW!Sz=n!ibNMDS0D}@lc_nW zA<0om!Q^gq+otF821NCN1L~$|xtw$t=~5Om&XL00af+S3(3(*-X+?soc84nV`y4Yh zX5M0%`9gJGZv10%&7Gf=2gDW|Z>&7kLr4uwq>Ej}hGwkN7c4e~u%|V_HQTmB+0ka0 zgW4@(^&%Tnf+#|4R*YeiNYcpCbrCu-6?@|#sf}i}tklbivzF*@1HUvbaek3q_n>+sf$i5vZWKQ_E;=`P_2-Ss*)a*ZYZOG9gbXvT)$#~C?v!zs zXt)_OxshC2F6FU^ajM(VG$5f4=5+jLLY*`Z!}V(##1)zlsCu|{P}AZ}EP=AtnV^VT zvW_#v`$-WTk>C;22T9IF8)SIkzM^#EPdqfSMlO&=rg=|DIx%h+9Fv^RjXj!7n6~Kk8p5@Ukt9cqcM#X58s#dePXC(^ zpv+u`naN=ej*vz5 zKr#<^AtkeZ+I4Rly|f=4tsze#kguWcKBpEx|EwarFHRKlH;r-sP~#Q{`=rE{7b-=X=f(e7+~| zaGXgn*^v^cmU;#C_G%3#4-z%D_Nf8b9qrnPBdsEONMFPkDNNKt7LkQr;!0v1xE>Z? zDt%^4(0W+;xq(N!)-6QWv3yr-aUQ5tw zYeK?R*7YZp!KP6;v0YaVs1^5)4OjXIy;@Q$W6@&I2@5_VUI#70YNlGL8+q*wqNe&} z*J+s0B_){r!J4IUZj!p#8;wefjk93p=CI@uI=3@f^9MPol2BR3MQJU?++z*K216}Z zdgE|?10qJNGYEG6AYqPDUJ%MWg3h1IN){cWnISLXPgE<(aw3Ab=?gg&lZ9^E7-X!( z1Wrv0jh$$~(CajplY6Z#jB%8Dh5m3|m+ojc>9pIJ9LBZI*j;0iGIKO$CniDRpcbZ* zR0%U=wc}%V{y`4wn@; zKh;V#*^g(|R*2%Kjjxd#?Ar&Ukk&8~3&Kofyd#HPn>MEEUKF!#b0BWxu4Y>o!QHN< zxQy&q!l9ZbXE)zTLjJK;%YMyk4jy0*7v0{;!M0qp7 zmAGr(7MKa|lgvX;R;^}R6kEIkLU&8hTuLvq111}8#l+(kQmt11L_6X_lc=XDio)+yPT5Vvq^~T%Fx-Uk zPf1FsV}JE>;$0-EHt*%kd=CkOXkIJ<*7-@aT)rC9*;2`8MD6tpE3r)R5OFzZ{~J+= z6z!PPI7icdeL*LqJ>zL5)aX1?O!1`Nq8XY@+4R;;e9Sq`D5Xr1q%8Uog>J=vh_SNh zcNMYO#`tNI8A)ayU+5KWQ2dA+gRE~*6IF#nx{{vatYRg&*5%$U5zMBC+MPO&ZnJ?{ zdqhRt-ZVFgQL9uFe1(o0J#BtiBaIoJTDhB5nQDn7YQY0HvF%Gg(Sjc%)Hi+LPrd(#vk-o%bFWkXCXzNltWl&QLVoI>3?xYbtyn)6ov zW=Ax|2t##T56T$!5G_Hbb zF+1j~U^#5R5a3g3*^@=S59S?!exE7jvB>LV`}RTiDaL+%Ag^QOV-#~(-pa@)g!(0l zygx9v>q&VrBk!86o-$P{pS`VZH&7?{Q29A@3p>J!@Z>Ky8H1Pf6lpN|+#e&B<*7APS)wk<7!`1cJ z3S}NrW(0L!S6*uBljP0jFJ5)AQ3n#THU&uJFgM3OBZ!q?a*&v-6ML4FMO>x(U~RW`bUK3}C9`N>=trFP zP14xUO?X46bCvp4C!HUEp=7^CNYDo}b8jZ=t>4x@w38V!+B0dP>0-@A=vFf)7N7T5 zx6dW=9>vuQ`MSzgE6ptT$St)M#*c`*r#Cd#$lQT=LhBdAF-xd4lhkImT|Y9iUj?f^ z^CTU5vzCv&+_yQ%)6C=8$IG`VItG{6!@IFbCZ{#unc0^>`e~T^Eed6!{QT5~Ur&=r z#cMtDk+U3>d3$BYolCYXi)fv`wr-2FhmE zS6#K+D4jL8k=KSgcjATql!2s-LQD?H14X-Il`zfL84aD6Gd5v@cWiFgIQ3X~GxzNE zXM!a6dVXIAjYp8PwggQF<4J^OV&-NuQj_**5^Ca<2-8k@YYFNc#I_PGeGk#XLDc*{GlSi^r9n;6FztT7692UzE+qRjQWMIfb z+#DxOaxJ4f@sUQKIjln9r`AE!VmTHYxvQhl!HIf_m}0q8Nn9&}6_+g~s9I}cFQvp6 z=~G=2n_)t}9JUEbq8vmJlH!|*dvmi*LyXO90upbO2qMY;{)M=T*r!3RgOWGaWw)#L_ovJ!Lod{yV+RD_6RgIEj;~ro4_<@?4j95Ltg<7i1S{9R%n>u- zF!`8Kb2p?KcO&tTF139jD(NojcToswlo>0DtBZ$j6MS)Y@>0uKmfD48t2!XilH_qF z#U ztNiQWo_QBx`PZem0^1`QK`kq=u(@-XliVyyyJP0``J78DkaD# z!RA*VZ9Z(wAnOW$qVa9P1|KHgO(mB)X$N z+|ivmJN(X5YjSGhnc7iPyxGpc3GYKi;F3+cI>2Upb}reBP)w<|BJ4!YOdvgk({ zW>bFRu*~Nws%A9J_J#G*HXYOK)_t(LsdyhIdQEW=Mv^kn)Tfx~X8jh#j4Mot(0HfO zj;nMwNZ+xtLz=C9p^wuByN*Hh*|l;T#kh!0wN61ij9Fs8`Dpj8MW{|2ZLpeWgS}oR zCKj70RGm~I#Hx^(hnc9sZQ_*T2`<|@_|w6ow8FYbj>l}vHBQZO#ktw|qcw`(O(qlj z_CQA%u^_=caUU0plG=F5C(S3Q@~V{?OR2-2iy8LqITet2m5zh#0qqMJBWez#(_d;B zI^fsLgH!RB1!h`Le;?HS#!2OX1k_uzwl3S+gpq(9U(kFrzA-UdzB86jtSG^VQhkCt z0?`CDCyfd^Xy;B7=1kM|NitgGLq`3rWVbhC5rZp4o!pVPJ6<>0sQZPO`6$=^&Y=Fj zp1kIeSMBn?gWtuKHy!d0aNJ?~29P)H{N}Cx{-yi|rYw`?$I<%E-Bc=;P1@+M!~d8? z880OPS7qVOJ}^ko-n88(_NBk(rQyQ-ZnN#OA6SVb|D*-Cr0yuz3h7Ogfy6Ti8!zlA zm0l0c=GF4kPC74`}eH-)Kr^cK-@q@*NbJrWk^BBF0^F(BmTQEs*^Hpf-+fM6!&7HuA3~V$8_&^ ztxS7U9fVHp>1mnfWJ89miP6Hmf0BxuK^|jQ`EuR#g$#M6&k_V@lv?T_xv=}-y{xqk zdpWL$jH=ok+gKbi$mC+Q$V^DMb#M!@b7{6toh#2eDKI$4LH$z62Bk*Oa5knmY|s^ohf58sijVsxZk$P)Rn$V z(_a*nUmiIrDd}YM``y1jHR&%+9mKj*CScvzcM1l+$8ul_27hph{U-7-&K{nkpGC@b zQi3Z3lNP&stlbV$J#{-r&(lM?MpGyuUWC1wlEh58KVeb(6a#gWJolWGU>77RwqdT( zuw_r!FpgGe;$&V`Y7CPLVs&s`EsxpL*IM&7Nx7Q~m?5(%fwvF(`oi|5`8yL$+ zd}Sst%+#=cU~eLq`OMy(#n3U1q_k$9S1+-FPv%hEQ4+`9HxQBy7qOIF>|B@lEUj3SX*0Q)nb|Wl|1!6yy=inx^~m0Cr^l?L zF(t}RQALvnm}64z*jBg-t}QWPLN8TSWXsI-n7gfBn-aKD6v`}il;+O7#60B~C&{I* z-_kl*WiTa3)G_hKBy@4dtDaX&6!mn+;FKUWhzBci`fgN1okXLJ8QP98LquyLqP3<3 z+kii5HCB>8qX<{%B1zS0Ny7A39L!%vkwKIl9hwhE`2|1GM*T$;`#Y`nC4$z$O41#+ zo46r1Wul)%&VASJhg+dlwd$&&Rbs1~K3Ijx=j!z{O!=0?wnDU8&05F&)*8$RgDZ64ZzepfF6+Ax z&X`3dDV8C&8FMb~S*g~TMJ-n4EQdu)>{r2JjiwPM_R3k;_9V>MHc3u*#{d|IS0c&*=c>!44Nr^FVkW%LMgF}W(| zOdPitsg6h;#2oA~=?K#g39%|xsBF-IW=_gIs&z=HfH)iV$1yiyWiKUa9uc!utDr^> zDhd1c!MwEAWXgPpA&EA!a;GQNZ<}07y29j9nn<~>Uh}8KtchFA-$CJW$q)4xNZFQG z-~1(pm?R~9+r?F9GqIe?IAD(HoC=kS)j_Wt^Fu;eLOsTuOW65=5)!WZ z-X>bC-A}NTR+#f*xJDCn^sU}RQ#m<}LQ7_B2RV9!jy^~ROdVXqkUq7>rEm0PysSNF zlL&4#V{Vz{ln)>X!Le2#Pgztmb-qP+`Qc`lvhSLkJ*QS2D}jSjh&05+Pmzze7kYK?5`nf0&t=_-{cbrq16- z(XqpOe}>Ml9sSdmA1Fb7CFuAc|0fuGNGevhy==Hr+~d>_m#~kU#+0#V340N|3dJ<( z#FNI{tUEs{hZE&bD30x|#LoKXfBEqePWq8$&sKcDmZn|bKkgp+@e<@pB%0vu-Fs!w zH-184e2yc2;s>`<3-&zi+41lCKL&XCo;CXU`$#&rh+JYjx)HbN{rBHrXI&;unr!}e zm9sfD71F@xe7!Ok@}158e%5oK8s-D%ebrFoUEAexz8*;Ru5Dtya+UM->IT-Uxn}@Y zam`$qM|pl{OF!GG=`b5IIKR@_lv)Ob+*1H6DQljyDRUv~8jd%@La2l)kYjVXE)%jS zqZG>6mii5F5A_?6XJmq$&xRbxg*>1wsRd97Mck7EdET`h9`Ez~&$Z{fr44hPO1>+ir`^Raq=nk^JU5tMMOWIxn}dSwFTWm85r zWo1*xY(K{qLo-PIo2Xa4vnhizGD_J`1-XXjWh3KUj%RXTCiiDik1Y1HxIb$N$L0Wa z$wW4p%R!E{&~DbL?Z{&(v;xE;+W>twkOAn~Ko-z{1L(>C_ArnK`GCF-(3Sz(GC*4fXv+X?8K5l#v}J&{ z4A7PV+A=W5*_?*Wr1`)Pvj96t!w%B0gEaIt4Sh{RU(?XnH1stMeN97O)6my6^fj#r zih+JlL+{hdpd2co5~@I+gI%W80Ctdu-KEWkTBw71Xn+N<5E@|-G(j^gh9%Gft{>n$Ye6-6)yL`0EN4tEq%SXF> zw97}ke6-6)yL`0EN4tEq%SXF>w97}ke6-6)yL`0EN4tEq%SXF>w97}ke6-6)yL`0E zN4tFD*Tl!sEl^3yIq?efzuKkf3l^3yIq?efzuKkf3#>Zf1*^sAqK_0z9@`qfXr`sr6c{pzP*{q(D!e)ZF@e)`o<`~9@vPy79}-%tDf zwBJwr{j}dt`~9@vPy79}-%tDfwBJwr{j}dt`~9@vPy79}-%tDfE5ug4>-j&5>-j&5 z>-qnb>-qnb>-qnb>-qnb>+zNA`Tvyb`Tvyb`Tvyb`5&U|Yk>bbyM7+IVM* z<_7-v<_7-v<_7-v<_7-v<_7-v<_7-v=7ucKv;0HG_Hjl}yo3C|%|Y5TNP7lp&mip? zq&U{VpVAg zR6_+c0CB367*N{pY%0rPjqfid7L+zYH>?I?Mkz6(lo(Um!*#xY!gk+JG5sQX_8t58 zPq6m9sfaR)h(ATdsv@3IL|uxww}?1gL>w!k>>^@X5wWI-XBSc5B4STb8}RHRo>kNV z%Ygc&Q(ijdrBhxy<)u?zI_0HPUOMHaQ(k(r#-`1A*lI2|n2SB-VW+v+UoLi(i*4uP z6Y{XtJnS-8&S7J@*jz4lm4|)j;ve#{&wT7NAN$P5#`Cf90(?R~Hk!wIa+l4i^NE|- zcR?O&j%Q=D#NW-?l$Xu3va#7rY%&v@%*6NP;cN2nIeGMj#$?)}@t5{yk_Sj^miR4k zJd?7sk-5fbiTjKDz5I_+D_d>jmcAM%P+IN;n*2_ra_`PB^#52{jiwL40Shpw0>QEOdeut(USayT~26uy%Soo%89h)JHgCyC$wz76Rz*(x-2Kq$NjlkPH;|z6RgX0BIH1k zd3jE7ZUK4XLT3v((-vawmQ{0|0I@Mpz03(L;NC^0)IH4!v~w>$FgUBg38uF@!O9XR zxFFpL;j2Ss1<>w<7WMP|RwvZG)CuFC!-e@yxURtoxA>e0@iRia3eay``pRIT6PQo^ zhy@XRdZ=Nkv!y512{d##!M=Lr(&L1hmLZoW+MnY@+Lty!AQkLdu(gPcee&Ko;y&tAI7FTb3)}yxF*|)EJ{ab(2rFSnA+q7rOpLiPH@?3CrC~hBKC)7 zu}-gYLK$UFD0j6J>Y>c66+FMl371#U9-g07?L@k&oj@J;lPd>1<~SjIO(3HeeQD!4 zY_FmpSJybfY|dBoIl(4$x&^)E`JwzAC$yS!7nV~_3(&@X>b4A>URI8*km)S;J93=h zY@VGl8+~2jgvgP%^j0}rR-;3C$cp?a*n_N^k?s6W`iefyEk~Ez&|~zA@yV7|+%rHw zXQL+t=uahjy@38%f*!Te4@>LN*&=Kr!wJr#zVnbxYcBQZbVB51p#q;1YRrRG=;BHz zguaBc>5CltB6k*b?RLVH8!kXc=F$g?v6;$dC%g=uU5(9>Pey9yIpI0j)@s_+iQMra zp)6#K4-aQ7q&#%5dX*FIOhs4H(UTJTl=}DQ(1tlqcu@m-J`Z_kV;j(qd{!@^50R;_ z6gkv8!3_LHX0a2@VO`q$501w(^8i=(Thp9iRU^Iwn_b>byRg%;TqiVVHvR&?gD(ru z??rFW)j8PfGVDJC-;%uwS>d;e#ZI8B9J{CfjXv~mDRzAL8 z%jwfb+FxDe1m-n3!TGD%Mh=+vbg z*m9$^zt{;cXPdEIgj_08-atJ|oygo~C(w#b(pSNS15Tta5Ab{W*iH*})r5?i(d~MC zY&(8#V7?Q`qJPTgA~R%>(}Jz_qeJw4Kl+W$g%{vU8Ix@3q5O9Axd44wfUj=q!&hRX zwTtmV_=Y9;wqn|xfxYKr*HvN@$fmX)y-0V$g&p`_?0|7%I0qkD(unS^LLX`WY;tSvFv2EgWxUy8|D;l5?wAGrkHH)92(Iq3Q-FRD=C3!M5Ab{dVZah8U-XR=4Ae z@oS8~!^G2YW2X~dl8ZhpaUzT#B1QPKa&)s?*7f+)h1ebY3+U_2N@UhUzb>IaSa+je z_?J)>>zb7uV;h|fcZokt!>3V39Wt)tKIS&IFy|4-L+8qgl~wrQ`PleE^rQuQU5c(O zD|7-q$OIV%R%4$9ZBDR;_Eylo3fftNTpI8f4YNe|XB=#GKiEv4_t4i%@saIZ+cALd z)Aog#=nk@IN_9eA_$u-LjRj7)sgm~MZ?ThbKW%4jBGN!xo6z5umH2e7WtK|H#FCgB87q4`}t<)pG1z&-Wo`((;(zZhM0Y4r@ z7Qtqo-Aq5#;wR@W$0z0?6Z~}>IyDPBs465T&PLA2tT!G1kb&Ha&{6cL5Sh2(dl}yc znZF5^p%XO&wATm3gHGDYm@&ljLe2E`;x=rA_|k>%?!>ndyMh&q@Jr}hKDyYEP9LJr zIpR~WrQ9m)q?S5Rk0$(IH*(3rUg^6~BYv)R4zg*2CD4MNR|9QitQAN{4omR0>GW>~ z>pb#_T;gCJxljT6Qr_YO>XAby$CxV!F!m3oB2&iTLB_7?*=Qq>8ojflGpG*u4 z&6gab2iah6VrOOak-yuC5Mv|woXA4rRWtSKC-!CF)7mL(4!&?9aj}E`A}$9PE=NzZ zkbfceN=#rZ8OT}S1m>c9-Q-c^oWb%1^eZ;kg6M7@LE8)GI}vnaOE1q)rR@dygj{qar-J8_pUp=qyYalF9+M@_&_~&h0kQ(BAAXJCHD``CT8bT??P<1 z40~Z7D_BQ8dU#eD`BM{e?IZ>)$8W44M)o4(0qT-VTq5TWR}*uZ=<8;3N_>B~AHQEq z9<~D8%|;hiqXSFvAI!-G$<2esekZt^xH<>@siS|H(+Emz=-~Ox9fg|d&*k|1x>U-g zk83i~7v!9Z?`JMFz?@AW9siYyePuP!7s$GX{Gk>-!8Zo_DQ7nA$-owJh(pA#-~xO? z6aFrXwq&oFAN%evreBF`dDwjwv8IlE7Wqed zd2Twkk&hqCCkFRoo6N}td+_~z=xqKhWG?ngJj%pp;m^WLxF27!r5B&dTx_5KeJ-L6 z)#wnpPN0?j?heKS*dB9xLE089!#~cWFM82Qa)?kTvaUyGnCl7C_u&F!Llu3nnEVI7 z5aC&oYV@#?CO(I53ZZ!vjh5q_th9B?sl zW-&U}N_ot)Zt0yz|7B6u0`fNe?JDkP9y*X(jvOd69UaX^7T8=Mhw}4@nFaJqVUg(m zw24;t1B^QYuJ;7dhE-$xD%C-&|rYxeWPE zs17}7BJOk&8@hXB?%tlUH!FZ#q zkKCh;SR!L5;sukWS3R*vd?op2 z8-A7;6CfrB@a2KbZqfZKC%L-66g|wr-xeb)^3EWBIoO75%bT%T@{&2oYbm*WUM^)4 zbJ`f^%vp_IW4}Gf$XAKneZ&*`hWX53F}6^KZ>*coxDZ*8Z-khO3bheC`jGz|^tTQD z?IaeZ_mB?~w~6V&Ipj5MjA8m^EQ5bw?tjYwF+USORDjJDAd3oYw;CBX&|lb4U=hz> z#5Jw-V+X#ZhkEpIZZ$T>Tuv|-{b9Z<(29>OM;^Sd306?Yd7Nvl2Xv#I@q8XOwlK>H zEh1KTlJ|6>FI~hDANDhgI%kmEHlj1l_@8EcaWk=GF?P13jdtMUI+1fV@@WvAW?rIC z#$w`+s8c$1Ypoy_)3527)QOy;3ct{T9x-MME+c+r;**)92vy+s(Us5wFy z8R$qcHoj^eK7+pKrMnjy>m*yG!mz z-W^IOPA#C`U5w{a$*E+H13QlJP9iM6o_VPNb7_Gb`mdd~&;5VdyYm>$yX-FPmAt$P z3R#?xL{_3mNDyQMQLF?@R%E0BkL@vx?J*w1V2?K#V+Y1C1{*tIplf|<->d7X>aObU z+N-Pg>aOnU>aO;N8N(QCFlLEO?ALWS;5{|QEKck{^7*~fjb`#!h$29d|2V4d=lT8a zz31F>?>+aN?>Ub%Til`WeKmV!>#<#|yEH&cgYxjH@mp_m_V0USH9XtvA63kU(G%L zJ|#DCt#;+1F}briciJ^;W$Zd#X3vR5rBOD(44dMd%}u8HhBf<8fBX<-#`@qdYCUt< z-FfGnJv(H64=+!-94_lhh4m~uGvAkzx#ICbaouEcgE>t zw>J1g(z$bH)f(Hi2Ke^!Q+wBQYx?DmJ6<=3`g_U_W_z_Ub9d7_)@~9{%oA+i^#x~G zXVZ6Qp8LR4`}<4!a*YjTUDZ{##1S2wJT!LW-er3{$Mbn-liRo0$ZgHOCuWn}Nz)V^ zo2GL!J7m)Kw{`dl^_eRHzw|9mKk4<+5RFF){|b($V5pl%E!2+wEQc*!1}Ag4+C z>0HU~*O{Ls_q(&hzx(#HHT&C!dEK(+4{jhf<|AwMgr3;L@~QK6gl>-5uh^Z1ud`gY z4sVhBj=y|VW#2h=ME~xXk4K()%x)jDC(zYuFRm-jI?vZ_YgQlC*z2Knd+7h&dOBvS zjFE%;a^o{@^VaXWIoj;*!u&nXk_+qY;uQa5Xu_FugU<5jrENCRoh^GC+smCJFX3gw z{;^>WpV;#!&B==Mt+R6%&B4t<9&1fij6Z$r@J%9{Ufhg zx7*g!p80rU%LwqNdty$d(oA`Zm7i-tu zU7tG-&a9tt>*JO&Y}12UnQTuy=s%a z!f#p*?S;-=YsN3VBMqv))~B)=l=!jrq9EpKzZXZg>0R zZF}p9eabmURu^aX4d-K;F~2i(>)y6`H9rsV!GDm)ojViS<(tYk?V;91J|^QQ)`K%B z^DSkzQK1KA^rijI93H-UyL9%?)AdgGKk!>#>wY;k&*#pvQMxwH78S>-SDopH&X!|x zcxoTy|7g}jo4kwMcdrh!eePM8&h)G1(0V8%=8BKA?2-SewK7IN-cS5k$sIZI>*iT| zuRS)ik@K#547n6O|I*oqJBVMq?33Fg_R(Yei}hUXUG>14?VlNgefb4>h!>{`de3)| z=I96fOtNN@b(VIu2mg`SPwAn3cAC7zo3og4o-vQJ)+hgb=Bvp|*8D1+y+;3^dS>7M z_l-?Vr0_3aJf{o3FZT9AU&^tuJ=OjRJJwjL7+jq(pW=FT(H^&YM#r50Ppp+Ie06*< zZI-@Yx3?WQm&Hp`cjp-+*B<>_e!{P3J;I?}*f$caLNc#u##mt)vi9=^9e<|%lVi`_ z@SOGfkS*e#nOD29So7UoXNzuhzJfXJu!quJw%-HK%;U*juEAMcoOx!)^E>9@q4jWR zUY4CLZ1uE9KgHPd1l_qYNDrI~yUwdMcbWYWS!|+1vPPFV5(=yK>rbp4_n} z#+?7|Z|$kO4lGu&_S201SL_S-^f%#dIk{Y3_EX`|tm)Z)~2qLp)jMgT{8Q?_GQD2%es@Kac$T93R{3Z`TLzS$uZwVP{L( zLvFJ(p3xa|pWMfi_(kTc&a=j`>fd+m|Mq}BwHc!9KI!U7WdJ z+_MMS_p=yF?z0bWusy|K>YDTDmhl`|kM@_wchkgCGr1RjpE6Bu{PJ~S)m(RRN$1ok z8TG73agrn!o9y-Jne*ql@5Ij%yi?+-W37|rb!!(tMJ%~2^ZoH#S8Jq> z*rVK+>V`e@Hr+b19#5=0wp^QZuU@fN-5h$m9g|fzFXG^(^E+I3e}CkjDxO`B?P0TY zaLrnK?71y_gFPtk+k@TD8~;dI?ap26<(9o)dwEtHVx|}HR~e2g->~-2&F3<{PwY|r zvw4Tku*1?uw;w%at2ood>I$Dkny2qQ=doumo|7|dR`%lh!6*Xr3eYE&BwYY}sO`iCvZhd;L@An|-7n43Uk!{Ir|z zrB3(X_uF6VeuEckBlf2rJrP65WR(}JsU>n>(f%2IT4zu3oiy>nHfK)Q9chVfoLiHN z&N(sf`brxU)};AJx6I*=Gw)$HX8WAjOkw*LSdGfYtY=%+bhjqlZNvw1XVbH(3d}{j z=B%YpX?`C6cZXPRafRKlbY44wvkYWtIKBYrnW_&GDO+yL9*1x%R}qGH%a>6R9ii z&8y_s*%^17aS!bU&)8;sS?!9y^L$Y3^mY?}2V|qo1dElXjBnnVM;Frrb2i2vTC@i~ zWd*kJG4&%7?eesXO=BT|3UDhjf>0>XbPa6KZ^lcRtyO=N^Q+h?0Z#yg5^<~ff#u(E5ZXctc?&f98{JGnvSJs9&dtS6Z^w@BZx|otP z_l%E&&pq9+p1Zw^pE^6!%VX`*&pN`sAG24TyHo7h8`rJzr*w1D8NGPdXXLl>)H?L; zWB1Vc6S}Ow!!dh0JE60^tcQzN_&GB_?u~iYx>)Jf1^v6GuL-h;+pBOT73Q>!k})iC z5~EJ``MhN>bRR8nMPQ>jr(;@6H*#&pRL8<$?XwXYz&lF5NwMk`CXsR@mh2*!+7Y-7@}b zJM0Q`0Y{t0$yn?o+3%B>Z+bRnJ=?d%7&AWe1840+x;NoWaPKN}&gm6Aop$z*wZQhP zUHnxXwecO4Q8K;ho&ax?r(ZgIeYfIF*Js(Lhb#8*Yiv+wV1mC&^LXB)8_%sjKKTr< zlPB18)?VgU&R6Z<_njHXc!WJE>(06@{O{XCp4!J>I%kKh=`CmOZD$_;SR16b8}3}& z&i`(&hkZ#y&T71*^Ly?l^yt3#=h+R{tZ z_?#1C8}?Ox^v;jTXP4X`%gPoxvyrYCznDeZxBhS2^B$XrHTISB?ZTQ!{I~hQJ%_E7 zUktrnoFj$rqTWJ>bmU>TCY@h%&VyC$cGv{5yauDx#LnuXGvXQ@7i&yQ?1GowJUQz+ zJkb^J^E1?Ad)iIo?=VwKCu|Ftt21N0L0@)^i!U4E)m*SNOu=`LHX#|u8mG|}0`^isSzUw1ZjG4fG!xZ_;jqlfNQ35GmRIAhqv7iV~y zpkMc#Q`SzJw=cQdrY-w5UrC-YW^v85>+d7;%7;>5iJDkJzN$_5>5FGDKK6#GB zD|J3R_@X>xj@@Z8|4P0-)#?84{vTfJem>TRSb5=FEjO(<{_zT*Tqo_#&eaNsP_H{j zcIYPDRqf6^_^>9H-}nw1j9G)xxj2RUd+vOM`%V*A*?RVvy-w%cJ73YqSJuI}{bk+$ ze%(5~VV!TASAK@_xZCHnO-JjUEA&mjaAa+QAFTh#yxWU!-odZ+316MuSrgsL;vf0C zGf{p=ao;G;h1U5cr^vR$e|7V8vzv4JziUsq&gOh&UVHfEf6Z{HW!qX~leFhPzu~Of zBcncfZQ9%Kv%Qv_S^M^q_wMi3&ZfJGJ4?P{Y!96ue0mr5@e6q~Y0kbq*~!?tfODxZ zS{LW`&r@so`763+9~$lUZ+94Z4;3Cai96-%*3DgW$yP6&y~Sse?vIhX{`ey55}iA6 z9~&7rzBRh;%;D=S*R65>g0y2_fkiD7?64d3AEvWC!T%0^_&5?AN*Z%sx%Z|8dvt#m z|7^uq?gV@yw`Wf{r_PMS8JV}~_K9=vse9+fmhrQ#7u+Ea%+)j<-DBV0wRgFv zmT3h4P~ZqF-&tKWrjc%L$d=!x*#EOO(v&%c@k|e_U9rLP&|dk7zS_Go%zo+cJXg(^ z7{~=*QG(Y?;@?G#r@}k5p81eRQf_EVtUA4Boul$sMswvupXK%dS0BEVSP4?wH*g;a`BoZ`X_uE;j9S7*#%8`6L(5*toaZ zWb&-qP4>3?a5{Cibg_zi&V=XWJg1*IGPm#NYxH2(KHv<@WRyD}`(_uD4XNdo&#Ty;2ko1J$HDlRdyYJdfn^xOZ(5fJ@TPD z)W$43%UI{x3osOAbxR-i{_R`llt1Gd{pxJyb7%Lgy_65KE_i2_&9q`3CdvH?IXJrt zoKu0{DehI}kv*ux9lGl_v9ybGXPUTEc9zyPzMbdrP0!gL;>s89NJ(GmzVF%B8D1ct zyfA;(%$l>={#*{Uf9yTD8t$udvp zdiJju*7CahEX-Vcu5Ebu1S^tHjQR0>cRgp)89V}v+y#Eq7<$=DGCx-u?e;$H+Apfypf+ufIHKoQ==`F6 z{?Pe!*WQ2Z`w{yij8}$dYfm4UJ8R{+_4L5n>hPPZ+Fr5m@7OOcxIhFqo2^+Ua_2u=l=bijy&w}W!BEPa|qVt;`uBxKj!V? zIsfDHEyS<&93I%3yEyYb{L%${@x>Y4I@8V>+lEi?;>`KZmb>7SxDd;~kTZ7i!n<-B zFXS{{$S1paDNgaSn|J%bx%2YeSYCF%lg{Vn+4BW|?M3I>J}09Q-?Jw!UTGH=>B2dB z@k)E}U>C2n{|dja=#t#U)cIuKu#>xgg5^zcdr92&;)Qka%07C9{$J^Aht4)VM{EQ+ zlnDkf$!SY)V3|#l#N!gIT$0n41!m4@k~JgCH$NOGDItZm|RPI8wLTO-*Ulf5~KsiqOn%Be^r`i2=#olWOF zOC!&b^&$3_Mx4(h&azQs5Z6sW#Gjncg%V{;El_N8R~r!mirY4e&jJLb7D{lLH^ zd6#L-nLDPRG5xV2(-?bUYzujR%==^3Ha~sp?zXU4Y0UXFW~^iEm>#}++Ui|HY~nTT z^t{)@ThDVn&-L6n#+^;$*7msZjavib-F~R;abp|Tws=CCFrLmwB!->bQPTuDO?Y0; zW}0}6v^(M12|UAorO6rO`$@dR>7+^XV=u2=oZ?*juwlu4IKjv#zOXb!uI{GEeIiY1 zdy4E~1KYM|rfwo_Pj%0c-IVdbZlq~_lhSc{;Yh>zS8qOjBc8v-|nNyxtQkh=PXJK#^C;%_@vT2-se5XPmtWx z)BJ|-XYDiikQ0*@{d?gC!oz~G$TdpvC~3ji7PYhBy+v~(exDZcwbb*MZitztMdMu5 z4?l5QBKyVnumV5uKflp^ccHX|H$K3$NC(6|(h|OxyazXvn{?%d@!h}|Y(~04Z^RVSP5j-^-wktj(>QLLo15l{KPSQSrCa9rme0kCv)E?3 z<-MEadJ8XnPid?BOQ!r8X^TE=o4YMz+%n!RJd2&BZT)PM#Wp!?YkwP$+vMoZn6{0t z!>aMWB$)lQt-WpU!x|;`v$R9LY`+9YmAc%6E%Mm$?v8odp@TcdxudTRtHb6=;#-L= zn|8@cJTmR-YZniEjcM0Dv+KRx!_JoY{@?RP_jkR&Xa4rObIw_Kj+Z_1*wgktdF|7? zePi7-N8Md&U%Lm!00)r{@Wt**2jnhRli&o?p*{|~|68*M^yE9_Q#vAtJJZOscYMa~O-FdUqpdsImEVx=n$zy?byvUQ zK*42+>-Rbd_N%X2i|!=cAY<~%O8OU zO8nx9e=a@r47^u*NRRJ6^q0&Y^4*?#=b?5x-;#TDdW5G(#sX`R+({FES$gDqv4_<8 zI*;`Y50K#0(y_Ve{D#M5dW=7@gyf!+IxLubM|w;)V(E$hDLpoKUEbDX?LXH3WBtPa zC)l_IkD6ev(-Zpi#8{trmyaMl!K;{lI?>n32pU4(JJ~?KKcVj@`aZ$eiLtTI(^Im1 zN+wV73s;n$UPbzSiWfFw>U>6Bu2zRV;_FFr>=GYqV*90M+7RbSoiF;-Ty+@c4nG6S zlDhk4C#zHQb80-N+Bx;kDZlD-{dPDyHel*7C1=KYW^T@m>uj#m{qK3-8{O~X$6cIO zJT{#fgV=34)9#tIe`fB^$ny+uXAcqn&&<0xQaUrIXXGvqDX|w58!^Erq!)PU@-Wm> zNc`35g*oW%sOlUf^$e042C0jYbw23s&ic}GY|G?cnO^GirRTdGHGb06Or{K5;SbMLT0(>Xrb5s9xN!QG};+U)!!Y|GU7nO+$?-&OAHx>tNSY{@Kl zFY}FOG1JVh%xZIF__ln-9>X`8-I21`XBNB3SKMvbl6lZQNR5IFH<8sf$nME`kROJ> zEDvrYcT%+t@}T=Rn==n;V^AMM-s4xwFb;XhGi=Z-hbXIIl3}d!kUPl`U(8VVz5CCw z@rmVS`Sp3251_ME;o!2||18FwVR`eg`&;MdU~^`;mOSk4IBZ;Uak6+(9yVrmK{7iu z^9AN%yp43v<5Lbw9&wi*aTgiU=O{kdrkS0ZM~r*K`y=`q#fN-`Jj%z@WHL(5qsGi%nc*rkJ2k`HWih(!&Y$^Z^O*kFvYD-#$J}S# zYje+MY}4G+kGNYFhspf&c?=)o%!RKci}7XtvE186_=OS7;^Mhy?BWo)%S&ayW^uqQ z2PThePmC(V;AFOJ9>3P<{wKclweDwr-#kt}Y}?GX&0=|ZoNs}RnF#r5lIxn~fahu7vv2bhd9!=-485J!H+wbDYiCCL?9x1I z%(M6xqscR5G;8eg!1Js&5<|RBX;dhA-qno=W@|M?}-3{`Ru`OwTx%;<1mW)ZBQ*T`2cU|!Sz+7_a#>)MjL zl-J37-8*9Yc^wby-eHgCb!+BY_qlmqf6?jw$G`lI?(^&Ab^Kk!|26Y*%~<>N^P2g+ zc8Iip&G&S$lV-WQnLV02|15hnU#Fkfy>lH88~S_iGtY03iFj7t&}N6f6O+zz zA2QoCZ)kT@`y2ECo+59O*`~SJ)b1u(ZJN7HZOCWKo8)rCe6wS-+_1c<&l}pgq3s)Z zyg?4)y?GO#u%wx7o5eWuZL+-S85rh#(|h73`Ih+=AIM!!?3VU!nnSV0e9PEiU$T6) z%#O`lc-^{-mXSWT%%yz1EJrZ2b@MG_+9H=Nys>w){OP=`J5-ECv!Yt1|4CN7b8%mv#xZyO8SHnV~Aw)VT2M-uw5`-d8hkc zTif{B^$bix-o-2XHSgl5ixKP^hj>!n>ApACotOTu`AhD*-i1xg@Yb2Vn|HO##?5=4 z-=FuF48(QwzBLPyL@9f#z_Kb7S820cZzMuEC&tA?4 z*3ALg!D#0@-TTI~udn^?U30u=O&oO3lC{`C7K6<2tr?~+%SX>${+XPwd`LD2WOwLY zwsbzk>tPR(?IFIz2lF9$ANc&hXSeau#r)wxvwV?!yZdar)BW%K$~U@yo8Ju%JKx5S z+~s^^thc>?n_j?f<|E@e!rKvjkRzCn$X=W}v&ZutemD2a%s$U|jFny9?%?H)XYXj^ z4u5**@0OF&I*jmLV`Zaf*pV!cBi}V<@tVv&&t3fCt~u#!^1I}7m#o<2`JQpJ%d?z^ ze6Nql_MS0yc@ACdMvh9pM>p<~iP(FVkDl+*g?lgD(dfqgDMWVnwSON!?Dfn}&-eL6 zpP!4pkQW<0KQN95#?i$y9*{Q-Vutg{56Mg}RDMJ*U99F2{^f&a`1~y9ksq4hhuY)6 z&X4fK_nD84Lo7ExqHo7!%P!BybmkEmz!YXSdVWM^$J!9z%WU<`F3;@n+O5sU=Jv61 zKKA}&@?eMO$4`)c9_!~Z9e84lC;EWL%}~p%uf1CMyGfYZmi)Z$Ceo3!h z8tXY;*x&h8_ZfM1xTACYclnHRV{?Zgd!@}TAA`>~zcTh$#>WSo`F=AyJa>60e82_1 zw_KU>Zx}#++`{i(I$N7>x3Iwre{g;&z5~l$uE0LP$(Ab*Q1`tU!(hk17{QRZ1lzgD z7c6YtBFC+;oeNvP42i1`dr$4FqHa|g_AH-mf!!%1VihC)&vq^1)MbqCa8wL-bPI_o zjf$Jgb1D3;rFZ5p+!DWQ5#udv+0uhQ96LqE)6+lOwe-Za#P~{2+^5$)Bd*J*TG*wf z=UH}YVUHGg_X3w))Wj>};x=$8h3#3`o~4T`j(c9LxyVf^6XHXBtOYi<@T(T~W?_4l zN%E4{TiBk3-B~7$Tm7CQep@EBBZgeqnq|tkr;JIwyG(h8@3g2hQTR-YyvIc5MO?Z} z!;f?|chn3i@YQ8nU;L$I`Vf&3TeHk)hn?BrGfIcQoDp-CGgW4cT@8{Vo>urt3(Qv$ zOD=MB%ba)MvI`rt$oDS%pk;3J?XqYr^P_JUHe;FZKKK5-am$4+3*ftf3d_+P@u5}w%DW$t08```LCuXVq$Cks2WurG_a zc;Uw^Y{;^tO?GElGKMAlx0*IZ&8fnUEX&gf56k9l*|@~K%d);Yd?;JAESoF%<-&d} zT~3)inX+PT<@=Nscrv)ava*BpxpIWeH@mW|82eSv@N1S8vgQXZFdT)wS*{wp`WHoQ zj&hZ3)c7c?-RI=V<}6pqS*~BXsvR|F%2i_*yDY2PV1E|2XIbsuF;0HavPzb#p6iq2 zDqdH~copBP+Ut{D-@9tT6uB1#cA%)kQ~GqIZ;txL&OR-D@4@SrHRD|~w`;~OMp@SS z$g^zH!agk>ev1FJuvZITYGJ3AHGQq&SB$i*83(^=VY`+t?|xnX?AHPtUDnA~ZhBeA z`?~k|R|^}puw%=*F<&DCIq!wdTCU;q8vd^7`x+Tt)1RD+%7}iE*)-8URBx9|E4jrQ_H4(hi|oP zYKu>`sF73HpJmgtn|RwaFPr+mq0Jk{dc!&qb1yK2g^#tcS4)@gdXrwkofY?+15VHQek_R9qsIpIe%(_w<^2lhOe~1&X!&Jz=vA+R0}** z*?o@i30qnCN((!%sY_Y*jEN0d_UO|dS?qakpFXMEQ`mcDU)%fUX&(>j6_f*Vf$1o) zWksG<;YTfd`c+G#z@V1{yd0RDLppM39DJz-cD1ni${{?Jnp~x;4RWZjL;T#BYkxE z`6GSu%NAIRa-^+0L&)=N+H!~d@8J24KGiNLcj&~OCx{;L&ldJx;b$%I1?8@O_;Jf! zbID&@_+ktHY!L@9cgcv4w(x_NyJU5jEMcJv+poxBE$qOewn~8?FLGcCJXw*qU*zu> znEt}vEB6PHw(tA=o;KNmMgCg3PYxZ{hOJllaSQ)#>2eDmkT;)gVFwnrVYyG zmWOzS*C=eo^2m3O$np`n^5+&fry`H2s9RJXJwjx_W-J}vg)Ldsfhugta!l^W+CRqo zFJi?Hb6a1bS>r>-khn5p^Ix*)@@g)DNusI8xv^>QVzi^RjQo6i1Hf&*I z7Wj|yY!Q(U`?AREEd0jhnRZW&`_$Y%^X@Z!%VR0*&%%FP)I}-m&;s*Q)Lkhs1Vvqm zqIOt0rBA2bv*!4ep1|;wQ*Au=F8jB@4^=qH!k1iNe@d4-)nRwlwkXfdWrvG+P6y!h z3hY67P7WQ$^`$O<7*z{NuulsgaN+kYe7;5PjB@ThzTeXA0q4fg{w(TZ6d3Hn{w&>i;b_V^EONJ=I=m~J zw7eom_Gn>?mJScD9$A4gFYMg%s=KSfFTxVkD{vg_(s~76klk53{4`ukGgmfq9mhLdRvm|>QKzNy(^fWeozOP> zxWfO{32nm>R&^-qgt_3atuP67qI(Cwum^Pl27AK$Z0QP@P}$HGcDt&jQu%5te`94M zSD1qe%Uapab&7mo4(gP#&f;H9&N}5;c65bLsPG4sKetZf8K$vLlM5TVvZrf@8G<{g z@CFq=yYk&un1jl`u3e1)_II5&{#l>R8o!*%%2!)wjh|1q!Y)*P-3nV)XURh?&dQHl z71OD3WreP3~FDS zee!2lSGIR$YghS%l`UQScx6Xde%87Mht*+n*YwM$TiMHXjgGK^EBswuC(m_b>DKT1 zG&(`#+Tk%_e=GaA^6l1}-LvN6ns(U3mG8D*Bc~1@dksI=yrbr2z3v@0afLsqa8i|x zT(6S>3_^uHsIUnYMz6vnS3cd!Hmo^XJwL?QYPI4P$~ws2iT&Fh6YP zxMB(@<;qU3unQHAy0Pc$CLZ9~D_?JAJ6FEk z%8su5!1V?ll@CyF&LLyHL9RE*Lk*C6(->eGsv3G#zIc`QT5swPcA>(R*PEVGTc_S6 zUwH=gmOgG72OLA~a!cSD>n+dU(mzaP<;SgC-DgjbF|xTUEJWS%PKVdq@*Z46-SY01 z_xOJ67M)U0vTl)^8a{QKe7E((F0cH+b=$Ms^n_ox?q~~`&Pb@+cP|8RwK zsOnwTUGMK017C1;FR1MDx@&B^-E(;0H?A-bb+>y*yX^J4yV>df2fz7^?(gpT%(!;x zHa~Aw8>8|ES3cv)M_l*xu}2@+@^w$2d&ap(W_#v(&%1kcXwN(R!<9W>_sD{OxbB;? zeYyY-QTc=``@ZgLci(spw0U3-4y+A6+sgl24?F`aQTc8w9A-WA*&!Lix>tVNdPo+B z#(1bd_IwtMBft?c!BL`Fw+=g4@D z@O@++?vTHl7L^TOkMPZ}TaWY)Q&I2Gu{+&++ULWqcZ~Ut`Mu+LHht^#vCAd7)BPnc zHhsNo{OtF7mmbOou6(-nu6OxzE6hcepI!NMD;vJTqgJ+ky-RLXI!de1v-_j-@K z?|F~yUfJ|j{g?_HQ6G@6eB{c$t}qgnOLapxWd8VQ z>m$#@Nz{krDSs`iZBp6U^^v(}M_0CWWn)*ib%md($ND+e=P_9wljpH#7~L_BsBa8(W93W#?A)iz{2V!t_?Y+bUP2s_j_eYbz{meU5Lw^(z0M!dg_d zk18xhg{`P(+Ln`8&+y1kTVH6??{ic&3F-^_@Isq>vK7{~zQCV6@CpxHU(ml7Wck9o zFHYs=dgmqH`EV<{y1vBYOMQ3q0Yg#YFY3!Jq|cXlJ@@}}?Xi(7Y(!-z*K_Lt_O`;@ z)>oc=g%?=bCU394g4c$*t?c2-FWdNK8!SX)`!+d;?TQ>VxmS&S+~n@JE~nuNZ26V$ z`Dbr8IYkZjw(-q2c5#ELXliFSKHCO|+t|r%P#f&yHmFZ_aa-^H{Yd{q{=(+NN;Ej# zrdCOVvmC$1PHrRK9nl|uZj-msM&#GRG&DZk2D8xA zh;8iL24mY`8QQ34#_#}F+t|2mOna~hZA>3y@b7HeHbxd~*v6i1J!4|aHaLXV!ykNT zW52c@xxmsk{@upU+h7vfIR5x~8@xf|*KOk~h&VH-7oZjjy-y z@wN$V%YkhCxecD6!2&e)Y=a$W{JL!tmVOEkaIK9U+SH(H)Au^vfB(nc*!$|BwQ2lJ zdyn1Nxeb$&~^&?lLsW;W&RU4meV>>pu z);70+jFE4*%^Cl^KIXl{-fV2l#-?m?y&HT$Q~S2D|Jpnm@#!``+_qqj7K~YK;U=%3 zu?yP*x$xySc75a9ZE&uQec9ysv<2;})!6uW+hX@VIq{D+_E}@QH8xwjYOFA$?JBf?H93Jzy@kd%+OFc8z1FU3gMT!`k~coo#$VdR>l+)c!H%|7?XcmRczt8fwN+!| z18wThwLV$#E4DR#t9{bM>6;orZOu6OK$|#y6Q^(NxV8qP%-`AgKHIuJ#N(TqaBZDD z*>i2(*w*Rsx@XvMjgPaj?HWI4@6}mP_tDjW4uq7%Ts06PIsd_HENVY?#kYZSaS-O?|4J(>ArSNmiTQ-=uf!xF&wz zZjd!wuHDcdyRY$sHnlUFnqiGySHxHwTdt|^*VuQBU$osM3-uBj8?N0XV|ddhmfvpq z9u~E+)!ME5=s~CZ@B5B7x_`@9`A*v{ee;txe$vJsYhBH2_E=+=H9pg}P1n@eYdikG zgMWU|wnGQtyqoxXV^cNuSKBd$9dh9tZ98;8EWN>*wq0_Quh@3U1lF|e8q+TM?`nrl z*7!@?p7~}|H8oh;9)9^p+aCGt<9DC_vz?lJsJ8FDec$is? zzR<=G+SpW0EWF+E-W~7V(YIRnjs4W_=pS~q-SPe%ZNam)yXHlFys@boA8BJ(H8|FG zS6l3-##U-#;q9K!*i21LyT&Kl?wOZ++T`nO_l^Jlq<_;>e$U1S+U|Q^{eyPj7+_Z$ z9BYGVZED;%_Ex*E@B79N$J!o{8~uv5AhAl+SqMPURFD%N5`Ijte>t%&@ov)#@l1> zsg>Fu@4eml2-{<078h@7B{e?FCjQ;zk2QYErj9`4r)*E&yX$_*pLnDDPw3MVb0#+4 zp5R?xTN4{^e3*^Dvcar2zR0F_XnTVH6JtE_?1?!!@yt_wJ=MpFx#XX0?6oFV-q>u7 z4cElQ8w_iE>N~OY_LTl~IaccGG}zS!v)b5b4Gy*ODK@^t#-3{YhK(K7_zfGsVN?60 zb-x9n9&8iSZqN1qT$^mFrY1^*V{dAWH@Qkp{&YLThd6jUvu~VfA5OKMk?omx&&?WM87qc$}G+e`hNYlm&sI^5|^@$!9r4DzQgz?=5?KgZU(oUW&S zW9Ey$>-GGU&W@A|+GfZ@?n_2be2)nhH4QDxS9*+K zW!XhZt%#&9K;pMcy*u)G;G)?b$?vM9DeX*MlON-+`l4ytv+6h}KCdLVFR=kG)i_CV z`_rPf;QA6jO%lsY?*2*KEUD3$?Dxq%{?h(+={}g;sneGCyPRIJq_nFKIHa_@4cn~` zcg*B2m8|6=pEap>kYHER1MfXDF4&QD4CDNG9|qfRopreTCwOz`Nc1(GoWfG;$NZ)j zcr|y4t(#uKc?`l`@U><(WtPvChv5=N;Dd(YBSzpEb+fhrd0mgP7HTDDDHrZzUGK??Q%UNIYXi++##cYm~0@Ef;v=%LBf3c5>mvEtBuX z-T&U7dZYW3KBGsMd;>)eRpDbSaHfTwSzt~JylG)O7BVmJrG>w-$bTyHeEDp|vglcU z!{WD~$_iiqy4b+FzSqS8*2Ns;lU}NQQP?$U()a9!0_Rt5iK*NYhk$*%6mPtAeqMI< zwD$Z?9^XXSL(aUyXK>l&&N|x)oYf_tMR{V+=;~C!@s|_v33t|VYMgQ)3%twaf%~XD z?>gfSHRFyt=l(S3E~(a2U34d1ai3dpuM_jX6yL1sMqY|_ULLqN-t_FY`zt-E&hjdb zS#R$n_c~|p<$*Sjv~^b-Fk#i1QN_2abD+vUxP*!>F{LJ+o(Dm4nuL_Iow(npzZ%KfUp-w{iPCA9{m1Y4FaCFTG9JpU3T^>Jl`V zlEz=&_{*CbU=60Z@o%>&zdd-+{a=4DC2h*t04LI>?VbGMmk0LdX?=G&^YA2X+8F{T z(%?qgtZ~2_H#m?6_tEB^!waLx9(dJn8S*V%9yk}^SR0>byMB!9=^M_<4K{+@r?z2? z>UTCZrP?jO&8W7+WoH}hbaQFX-qZFWevXXw$i6Gy+Pb=-;-(E|uHDm~7-;M2`aS99 zh>T#n+S$T;`MB?>>-~-x$vf_f@3=F*BR=vDO#3_P@x22J|IVo25*zg!j_%NxaA%j! znadYLf6fmq{q%Rg*87mt9&k-@We5$U5j2X%P!Elx2{ehO&@`GsvuF;@qXo2xme4X< zL08c#>Z3KZj;^8WXajAc8|Wswg|^T(+CjT$5ACA^bck-FBXkGdMfcEs^Z-3XkI*rC zjGmwq^b|cqr|3C4Lod)vbdFxV9nPc}#J@8r*O8p~g|b z(}g^g;C~6VE<&y2fU}Ds{14%O=&ZYoed>GO=>8B{$XAIWvKS%@zf~E-WHC$@!(=f` z7Q zEaZEKSZk=G8RD(MW(ajhgFO{;z(d|m$h(PQvKS@{c{d^7Cd60+&M=1YKa78QIU!d( zM({5$C!C)#f`7R?p>9B^@e$&>F@paQ{Ey&YzD~&33FmE$;GeA${9G}D{}KG#>qFjo zjNpF+|NLJe_dLXe1HLgv@IQioHK~KW6LNuK1pi{iF@paQ{Ey(@c@c7fLL50p@IQk8 z5&Vzfe+2*H%E3Mgbu@#2Ek^J!M<_<{KZ1YuQ;gtW4abo49&+77E>Vo&U)(w57R4z3 zNAW+3|55zQD~eJ4vmb)}5Tp1X#XtKrM)5z2fB8+JeqfB^e-!^>*D;EJaqN&gA8?z& z#}}jc=jRK#Ng+2WM)A)!iBbHI;$O@BB_yj}jJ4W$8ihusW7{$Nb zrhxs7QT&UM$0+`t2jM&j=Rr6R!g&zRgK!?i=zG68@X7Ccqx;T=a5ls!S&Wj!C|Qh> z#VA>*n;K(eF-8_+WHCk-u%)4XUW}2&7+HwH2j66jkp(|xjFH6{S&WedJZiuQg#4*c zdnm->V~i}s=tHhmjFAO9Hpa+8u2qbY#TZ$z_hXDK#>hfUKgP&{-!sJYLu^0P*NHK* z7$XZ9*AU+izR=(o4S3fWBa1Pz;3Exj|4?5b#>irfEci-;&otD#3H3k%79e0_ga0(f z@IQus*nn`~h%x;0sRmmy-~>XRSM>0&HbKbuiXQ%91cJXcdidvajUN8t2m-b?)H4Y_ z*nlYrxZCLAAMQ4K_~(}mHc!AA1iV48fr5WF+{vPcf3{HY+eQ!ne7DiVe-HocqF@(A z5C8B8(Zj#G2+_lT5C85+!G;PpRP^w#Rzmdf-@|_o|2_Qk{|5hW^zh%qKfG_iH3VEk z@DGRlv|t+t-*CuJ3pj@u$G>{tF^+$DhhUcl%tOdsi*fw3&q5uB7{@;hM5x6O*9RK6^ zAIHC14>68^{@9Qg7qAw=j~(Oqho1<)?-j7hF^+$D`P@vXJK&{PHnD787K_{tft%m>`P@vVb9p39^_V3$@!qot>B<3z(9aAd3mQ0HYlf z_@BT(yE)j+F@gUH{7>Lt?qE#de**s#_@Bi8B>pGyFK;j=@vp{bOyVEDJNODho?)md z8I$;*#6QeROyYkM|C9Ki#6Jv6h#7>u!w^#lF@%`J|0Mn=@jr=w@q}>C55IvC>MRGm zOHAT_694eyp%za};(rqV?!dwJk4gOd-GfknHDF`{HYO(VKZ$>Lt(e6BB>rK}V-o-B z?S%Rrp=N)GSA^f83bBir#6N6JOyXbt;czF6N&NFSgjydlg@2g!fL9OoePas$Q}~xB z8S)`Rj$};Xe+vIo_=jl^aglHji7EW^SBE=D$iEDCl92PHnk?j?#xz;T2MDz=18ynQ zUW#e5m?jHYrkKV*oKwI%g&HdX{}f_RF^zw9#zM`NfPV@xsSuBfY5c3X8FC9kE!%*P ziW&UR;C}}HGx&#-3N>0{2LF6#F@ygZ{LkQj2LJM3V+Q{-_=l^C8T`-Se+K_E_@BYQ zI9IrL#ti;v@IQn98T^Zf#SH#u@IQlpv9XxJzdL>S&61eG{|x?T@IQlpxeg(3Hsn2o z9NL({{|x@c(qabx?zb_6fBv$7&59ZP!)L_|{`oy(2LChopTWO8i4cd28T|XbjNn6v zS^Ur9e-{6<_@Bi;Ojyj~ANDI|@ek(}Fkmr@|5^Oc;vY6FX7N9Z|5^Oc;-9}R#Pebn z|1e~sW_`@!e-{5RX5n{1!|z3h-;0h}{KK0C99j7Nr+_;PdBfqJ9_rh~EdKrGSHPFW zEdJrsV)m%h{TEl>=)M?Yh#`hrI5A5W;)Y5PJ-{$T3G2{070-5@L|ShZJ*UF-I12WT7T(z`VsA zS%_1{99i%!#T;48k;NQY@HvIpW{7FV99gJS7jtCccdUYMGx#Jz-JX~ui#f8GBMUyN zm?I0Z(3m5OIkFHNjXAQIBMVr&n8W`Z{^#&NhkteNL*3PYuZubS!{r74R`3x8{9W*S z#2o(T@DFDfbNGkVi#hzy;eQ_gY6QhR{>4^9{pXM`6Y{WwuPo;Aua;cQ;~%as=J5~5 z7k=w4=J78M8}s;|$G`Y&h||VA{^fIryzTJ&ETJZKh~b9cI1D-Dq25r;%;SF^|MGN#e=g?nFYi0}=z^~<#CiknFVrv!KD(I5|2+QrbwW;0s4W+A$U{6h z#D-%Y|1gH(H%dZmIMhWA_`*;RDdzD%kN*Yyiy6lP{ul5sZXA3>0b>{o_~$DM^#Wr7 z{|oqE!2bgN7x2G;{{{T3QypT?p^joK;C})C3;18a{{sHy7KIpdh)0L~qFBJccyuh_ zpYJ!+gbn`3kZ%-x`>}xk1^h4Uce?*<_>Jx_kOll>h+_v_WGs*c++@H;1}tQVYloUm zu|O6JWU)XN;@lyBDa5)%UCMx$47FxMEvFFk4)O00_YN`dP}?cQzXQ%P7RdqzGZx80 zji*>73wiayM;iR`Ar~strHe(fP%kRfj*3OHSR{)@vXGA-i)0};KNiVikt`O;Le0xq zB#T9|;M)&=?~qd!{I0P`7BHD1XDb%TLXD`9(;tguA?GR<@h=V#i}+VZD%6<@*w9$S zzZy^BH%(#@|BLuv#6SONEaHC=|BLunpDN%(V-f!_p`k`VEaG1ss(=}dCH%vO#uEOQ z@V|tAwF3fPG}I3W^{hhO$bdDCCHybpAHFpB?L#hDz?X&^q_KqmCH%_`izWQSn#L0T z)gB0#)L6p*68^H z{}TS?mxY=Iv4ns5Wg*urmhcbL8cXC!?<*xe$7q zeF3ICV8}zwkdVU}YT5-{dC2Ju@yL+V88Gglu1NIl3w`?nym|EP3w`^7IAy@32RwTC zy||F;8R{p8-yMyeB2Mxc`7k&K8BMsQ8=;ObS|33cv_*Y*y#7zU9Dq!J5>^s!qi$4D4 znMNP~YNA9R|7!C^AOC&)i@8Q0|9$-T@ee~Ee#a=*@DG<2YxrNo{~G?~riMJ#Si`?s zDzS!tc&&il3b^}N!#@mHtl@tR|7-YP!#^y3tl@tR|6;izw>89bV-5dn_=oihIIn>B z3RtgL!@u0uSi}Ds{?%y-ao~Uf3wZvJ4;yRvU&H?z{$avm4gYKSU&FuL*ns&Dc(D*K z4z=N94gYdw1GX&W%f=f1*YLlFf4Q@wXD)&%cIW;{QwR(7!|XKzBj*&N6#vnZ2{j-tl`5vCQ64`!AN+JMuMSnZ2{j z-ht^0zX=z9Ya*7}J8D6Px_q(B-cge;)aDCy`C{1_=XU{P*%_y{N-VQ?{PxSgCG1eA z`!`o!>;C@>9MKp3#({zB{egjh4;~aWXyC*DzH{U^3=I4vZ0L9T?)%YC0~~$yH>p?f zpZNYilfU|3$m8?-^&jv%-tYH&#_#(re&_7B!jk@WzkBmL{QigEefnK~|K{C3kCCfsrJ+5%X{cPf?a$05IsW2=rMYNVA0@WFXiiBzJ!HR zOX||^0bHsVb@}ooI!CYGzEoH0Qhlk*^C2{hM$jl4LvT~@hL`6PXcA4KX*7diCC}m9 z{Lc2Jx>J{Mub1brpD?eNFu0fJSJ5hh?K_99o>Bh48{b}^i%;nGe+s(5n9e8W7kG>jBp}&Yei2mik zFZ=S7>!1DHU-J2tfiLJ%}jp(E3o6t9-Z$aORK7qa){TcLU(f6S5Mc;?MAN{ZB&!fM9egK)z5%V^31q}}T z9_#nhZ{#pCY;HofhG~17@0;hXco<(d9?5u`HlR!fxoQHAHDt=+5Sdt z|B(NG{>EqYqx<`>^kWb&gLoSJcJ#;5ccAY?{~Y}b^fC0u&@Ul<4(fAoZ{QcT_l2L+ zj&byiy=UBmpC0({{v-R-XMf)#*B-g{$hAkVJ#y`lYmZ!eiGF3^JG9^b?Dhxg?;!mhJU~YShra)n&-tF-4Ss6iAN&0CH(%@A;7`0> zYd_~Z`ZxFw(KB>vEX!!czY`+=ULURc_qU->BKq9BhOVPU|F8Zo`8)3Ky1y3#|NVbV zMz8yNPgi^9Xt0yfg1_c=(A*CG0(xiQPkZ+IXFogm!sjp1b9CmNt7vWDq31sNInVv< zz%Tpk)1UoW&wA)t4?XLlXFc?+hu)VVYo+%U=mW@_=vfmzYocdO^sI@VHPN#sdLKex zi>!&>*A0A;v*kD3crCLL`^gA7kK9B@ul4Pgf8Rk{=q}np_t7@GhjtM@MxLMtXdmHk zK*{PDo4&;QA1e?DkDgT^jXuvDeF0iVKZq*&HS|$qzd*l+ew%kc zh(3nK(OaMAeSf?4`qtq4ka-<6uY-T+b^q4Upmj9(4d}bkpFw{XeGmFx^ykp`q3=ib zp}{|o$bZm$4gN{=adUhH4Gw&nzJC67U+>9xhL` zhRn|poftYo+8v?;L*{*m4h)&^A#*xpo`=lk&|^dohRpYn`5!XRL)P06{TMR;L-bm(9fcu8|ab62XDQW`;dKM=zm8)kA4BYgMJZRpoB6isG^4c z5&FmIpP+Y9piA^=^h>Yj?e~-YA3z^QU+-*tA2PSY=63i?(fiStp)W^Yfj)q~5_xaf zd&3_@UxmIJeGU2$`dah{(bpmE4tMSTA@qk4JsGAa!}MhM8_`G6H=%DH_;I{`Wa~Ar z!{6ewZ$;mR{wVrm=ws;H(H}?OfxZ*{FX&I8KZ!n$z6<>+^rz7$5M3Omi^Ftr_>Sj#KMwEE2hZ}o5bKOLPk{{F3jx8}D7-dg*?fw!jU!-};( zmpu2vzkT*Do$mX7k&OG>p7|Ajcf4y|E^2$$v;AGPH}K#5W_Oj><9Tnd>hBM{wM^%y z=-4uyU;2fCx2Au{*vxYx$Nqu7vcHGMbL=_eoDScYfw!*dW0l@4{i?pU2fj($zw(CH zsSkgK&;D)i9(m4QwQB7wnE(D=W4h|SU-It<+O?jhe-8cZz+2|l%&vO&eBigb*IwEGthKoK zH;w1_de0cg|C)dQg8BUhe3S30u`PVcdw6`;{P+K=&%VjuA3=Y`GylZjA2aWs>;Db( zQ%HLg_+RPdWz7AbFz#Q{|91?0yT0pZ_dQ8p`hN@Q_gy--s_)sp|NnLLlRh)I@6y5k z-$usq?$_hl{Ez#7>ZX3k^xFH)`I`Q$i|K!g=dad|xnB91fqngb?BKI_oi;xU+unOe zTVICHKjUvVXMY#bwf;Xqf5$WQvH$mw_0s?Q+UoxPjJD0`)g}M_Ib<&8I==rgdH-q8 z7+c@ESfMKu^s#TA-u;GwW(+_5dJNsZ@M-JegXX!S?Jf8GCE?|$U94t}#|@b&IT{k=r` z8aE#+f5X4Yyl;N{{~Q^|qIRbj{rg{dp03RPh_RdJMg33tzW*=%{rZ9X`uUBwU$4LZ zue|2<|0LfJdw;o_!yp-%EFm4QAh=*_#|rp+_|rVDEyKws{e@ACI6&{z7NT-N>o z`u%wQv4Q{TzhZB`8S@mqT>C2Y)t?#r#Q#Oby~kNu<#)b+a;oQ~bEfB{bEfB{GwDps zq%$#-&ZINxInz1mIYB^00Yyc@J1Q!Q7gSUfbWlO7_N}V+-gUpBcmYL4K|w_YMFjyx zE{cL$_Zw6JyGk}&n3H)gYTL8@-GT1~~57fQM=3@7Hs^R{qY;d_;!}UV;=v7%R|8L#9&agcs zw}uddJ+V;phpZQOMh+E?){8aUX8z&mAAM)IrRcvb^U#=1RUyAe)E9OL=hMU|wH$!@)lI@IICh5^Yr-sLU zPjR{DU3&Cf_si`$Zgd7>=S9EsQ=ctgDE8&h&E}sR)4cX>wSL{cGsXXzdHMJ6X8Q%# zdLp($-Y@YP`Z3gwo;5v2u~vE3fcQtomDVCL)%7Yok6`0PntyJ-z|Mhaf;iUyHjdEC zy?lK$7E8@x>sRx2tC7!!HFyPU@v8jQx>g*?&~xkPxxD|a*Fdv|eb&>j+8Il!V@m&3oJo@^z8`gelQsLJ$zohz8e_u&cIH@jy>*Yd zzLEVe?VU*b7sakFN&e~@+>15AZ{j?*#1ilDoZakx_x#4#Y6$ggM zZ+!#XiH;~4w0h~g{`hLFH|q6J%@O|TkzgY!_6FCPV1G~!e5XcT4?(SKA2;fShNI9Y z4eFTCAGL2rAG6>6Tl+`G>^C^q4fYS+&GxV}e2x17gr1~-gSnyk#$!=g<9Oq7@Hupk zdm1zpj91!geQcV0?~6t{m9yD6A^L-V>-Wx=i#e4qmkVtg&nWuVQw`rhEtBt?SDSM8 zjkIh$3umjPJ+&3Cr(m+Y!?US4R}A+?7qP#-X#Z62R$Ro^TKb-E%_Qp|HlD-oGNWg8 za;SXD^`+3ejn-9fifY*T>6&7kjnl^BtEOq=#nwM*yigqKm$=;ZC76NfxD0x_aTfGT z<2BJ|Y|Z+ut>PJPyn!G33@xxmZzaz#UZt)r#%sZDOh3fbEVk7Bb-0?pT4T^m4^}$^ zao6!@-Oo0vUBz|LAN{evyA=JM(xCBH&*viKIS=~2@iyF|SHk@5V5{+7sC(o5=yEoG zwzlM)rsY)eu4i}PE*d=To(7HTUZJNO=~}6NjSpZU7U99Dg`HWYb}FtAchEWHeV^PK zjSm@vwo9-WkLZh4YPH+Bc{Tc)jTJ>3WsQ%H)uNFmF*!Frh8RLmlv^Kc$B{q^NmNCD z_OmED^jjMlbJeIsx@a%!x&}etI@Ie!_EU07(W&C7o;jvIp$^V@@(K4l^i{}L4vF{7 z1)I&$b$tEumG63|Y0Q4jSDuC1wxJcF|D4SPUlk!|_8OnWa?mzIo5pAOSi|m@*3m5; zYPJF^@m%y2Kh3}OvueywvQr;?tT!*QCiKPg_P>qsdM(&|$u%EC_p=x3_kwYs@#UzG zy&t?i9^7Qj3EK0KwI?>r??5z{eP0WVeXgxtFlIj^ z#)NuRt4E_;8{ct_#&@w9@5`}|4LvnT{|fz9qn?$6basxC-PUZ6o@e{`ceZQ9TepAA zeuZ<@xP{G2joa*b1kP+m9$E3F%_TqZ3>Eq(bFu5K&=XbRY>BJ#*6481W?hNC@#j4I zNGx)$)*ETD4vDRCCyhd_Kf$Nw)S*Tl8}~wO8+Tz3pHD`A_wRgXRcf;)#PJzhv&AyP z??LyULyeQpN8=Ybfc*$Pxf|{H8u~1CtC+nbs_$~&;acs=*~rQ@9qe?W6W!=RZ*-R! zez?9Quf{&{hB*7hPOA!eHL7>rYVI*N z1hubd5}RIYJS-lXH6Fpy=oP*brM@d@6|*KIx0+D5Z`hh|9MvOwc1RwzdcTo2nWe@& zj+u8o^r-6sj=O%0&t})(iuD=eN%>DSo?zD*s;sl0ou+YgofzeV2CtQ9&~ygPJj>F$ zmKIrio6dDMXV77`IrVIEKAXnlO#alSTEEtMp1H}~S*}A&73^=}Z$T!?DPJc)eO|TFHGfT$F$L$ygUwj*H;GL?YNlE9H1hV&ix#pwT57jk|CK*({RKGR z9zD=>A?#~9kB=};Wk*jX^g@$*HStloGJ2D(DX$mLXVXPKKTIAwL)p33I2XyMj5F=M z*XTSoO=thL=%4MYFYY__Gb{UmXO~$QV$e5DYS(l{bjE4^%|Yq9iucT4C6CvPSBj^> z7<|#V=^8a#Vw{C*aUHJ54bda)951yKJ7Rtg^kozMEA?X2E%tvwzhLWT+=|x>H!YG7^C{aA?J>`uX5aa265CMH{c8UCX^M+MtQ8-)reBkI zn-ZvSj?RtBTDMsj`q7@DlsLRAnv6|V@@h3!dQQ7k6CFM>eiOyTnAlKqK5J^M8T5>; zrfPXSXG|kQmrv|l@A)0>v*Lfr^Hq4>eb{%gBW9volGC zL!6#xZnj2Es`XACpG{9-x%oZjgHBK3>FD?Wz3;<{K2M#oCN+tPt7!#R^7X8oXjpxj z`A|Qa)T&Xn`o%)cLjL+E_N8?+YobXL|4lDN7qI=Sw@UPFQp={7q5m>(h}qhTF86Ek z8uWOL+SiP-m9|DdH0j4m8a2HVW!S4KwO3_L)9ZRs-!|#hrcGcscA;?t-UIEM-o@Jp zJ@F3P>REFv+RI*hslB04H+|hix27$03-;AvNWGihR4eJW{_!&$0!zLJwbx8ylAR=Xy9leA69sp)I=ds4q$>$=_ixooR(`YdaA zMooNgDfOMAea-#W2mLy%9WjbEt>>CT?LtrVxE~M)->LaVeyZgf*YoMnpS|c4-w@w3 zqc8cGxUtyhO@qbvmHkcqe1)DqYTbQCXR0aei5unEG%OCi*L2vrP~RisdC9ffWY2S- zgZPq@&A;qgA0_BecO7UFbKi6<`qQ8L-J$6JRL`d$w`Yp@^l_G+mHM<&UDAVW=hbkg z=TluTv_IT0aIfDIdL=E!a(!2sGAD+*8=`C2KYdeaKODEO!1g@jx7O(Kdj6W6=cW_l zx*;lS9)}5-2(_%anoYSit4s5lpk?#fkVmt+HrwB|h^E7eT+k63k&PMZe_v%_thtv!9(XyG1_#(ESkf%JFFR@nt zB-u^h4)qyoQX^v`^w@{i%mB@ruVP1!3^iM~oSo;*U24C$)7M8mV*1%TB{4N$W^Ksl za%=f-z5-W*7MWV(EL;P<+k6o&gxV&|*U)K5?(Ay}&CLaybx(OFugV7Zw}{Prr8qM| zLp5%uOY?2G!@6$conoOurE}DL7vG_W-WDS}L#?i9**ss)=SDY)=U4BRXi_E58k)rP zO!iFc?xrbf=~zpz3j3Sc9a6V+h3k9GS=;;^?z1P@*00U?(5BJ2D0+^M%|#!PzlF@f zdi>1a1{UF`zWd&YalQ-Qh+q3obTxkM`@apC?t8G+nC^R`1Ne>aR#xN3zF(M$C-D=% zSI@*UbmMftlV))eQ~W+vg(H~a_mowLd|vm@oTA8Q&T<^WM4!d{su69$5&YWciTOAJ z|70pU-OsJ{_=R_PIrian@2+{+h~GHl%W#^$UyPrq^9uYz?i+C0=IGSFZ8_ce+rQN{ zKSHCR<3sA=yf;5efBoOQ7)#Z@hyJvz-tGPYHA8c`zM*%8=gkirj~O5H>_y`e#G;{4 z*Y`^OB+S<$i)vJ{9rmT|Tdh{p^h>B$=&`u^E;Cl*LH5Hr%%Dci^;`03bFaEjq8@c@ zcz0Akqi@8Y2^9M?K4&0@&}T~|eSh~u>POSGsAzPuYU zd%b&{&*qilV6T~eNikGybuW(cUFKFmzSVlW*_lc?AJv;(huFisv(Oy05LfeB&%2H5 z@Ord{-xWo_WxgaStDIOo+v`2|j;Q?>1=kz!CV#ux6n8T%<44?!DaPgyeVSjxCTzre z=EU6mzA?lX;`sp1c=Nl_HzD5-O7d;qVqQ+oZ;4M1&F_eNk6bTst@c&Zji2hfKI3-m zz(=4@vvsv<788FnJrc8B)1did^$2-?B2H_X#oqiOcH%SZt}|}4W>NHC|I+VOrSa6A z>)99hN*wB27wR2qcmSWvDb#Tvz7&&sW@weT-hDgvqr<&ARfK*Y5YMa8eSDn0r8MV| zOTQe0p1lZl34Jk$PWahX5ws7zFr@#~viT?uL$4)*PHNCRiV=K+T=WJ%KGuwV_tSi= zSkDmuak28(tftNER$fKdRebPUVQxsDHlLuCI#&gqPDW+D>e(`muZN6hm={OOcuY|L zON|q8CeEUhS|sRMOQ+h)qyHg}(eL7@j9GK`SS(fY>C>B8TBSn%_Owj0U(eJ$Wt3mb zWSoO3I2Thrqh+}o*F0b^eOu0h{-|6N{nP2*(_4!<$1fZ6({jG&mw3L`IL#jQuCur0 zLg)6?P1hmXWYwXCE;Y1Ei>tQA{blrOb03Qy;3X7q8|^O9tf?H`ls*jknP89V44*y%*0w&Mh~a zr+;!2KjKN#AiK-_JTX2H{fobfqT{7Dt5>iWY9q#$yKp<5)IP1Y)eBwgvD9|+i}4_v z_2PAwS{8_N9qsjec3N~cyHmCmYu9qmSnaA8*?Y`db}F6Wmb-Dk^>-TQvqOiNH7%%H zDQ14s>ezB0KVP_aUA2VHkBa4T^YV_XM?x*qJKXDoYB9Au6jkv5~^t}6WYvx4T*#7zUk~*{`_wtbq@Rd9q{j2}zXLhNrs{NkVS*zwlFSyR?&!BY;YF*Q$YFTu? zecMa-CB)jIA5uZDMl|qw0UIx}wFb^gOB0&q&3~3|sqt(bX7hG=hW=ZQ)~K58AM7Z} zuTD?4=%JR!@q}E(Gql?EGI-y#JPBu~Ma^2C^hxQvmN&2gZ{bb6t!5|bd$C-< zmE-f#zxiwbwy89y1RYzPiI&ZB5mU__;taj>F5aO}=>7N1(XQnKyiX&(Q*35FRX=)F zsZGlkqc}2Wvk~@hjb`xmtB*?bYx&UpHqYhJq_?a1teGo5cCuX%N9Gp2CGHk|ochR! za@xdqSs(U>9{AX^YxL|5#{11*Vs58rC*-SVQVXL7zL$N^_ik%G!5;R5p21$hxK|xR z9mEhjZrq2@@HxIPXHAB7Y5B$zY>T`4A+=g4F8Q|X=QGs*>u5ipKl`|N)`wmmt6eh0 z_LUs5Dwe*X6xb883p1r|t=$}Ch zU>JvS(7aegJpzt#zC-YkcD*AsCT=-4_*eYc2DEXkSf&%wF&RIB&He7pnq4f>?| zN{FNS)2NHzAAM4+dGfunn%C1Lk>Y2HxW!mQ_aXVUPG*}9X?nGKR!{d@w$dxzPo;5) z(_HKM=J(+V)M6nGLaY}U=}t3xc8nwLYZ=dG7Ru65;dP{-D5?DssYCtI(wkESg_ z<90FJW?s*>&a!`l>vy6X#q*P0CB4wY0tmdiP8EwGpVv1Zrz8?#1dt5yD0Y7^r#`K(dC$sN(({3m^0 zv|ZM^kd39VCPTlW565zCy-%IR)w&1|stcVGdT&VWW9l9cdFbh+zNxL2L+GPNXru31 z$I`_r!Zk z@~xYzCbgcws*krAHyHJ7>l%a_yv@##@hxLN4R*MG2d}8{`$n-=E>fqUZ>alLW2nYeHhi*l68l{WRlVem<7(rLOm2H+CZQTL;2>E@<@; zg1`5p*Vvx&X-QtKp>}KxszWOsl2^!Iyw#!SK19$}zIC_IJM>Y=>ob0XpRchG;%e=} zSNPI?{;HR{-XERdZ^ifgeQv%T`Y$_TJcK?BqT60QT;mHD~)U`Ed9H(wUqoWYl z5RF^ab13L~*huTx;^@D#nJwBZOV25u@o%j;F1C;d|7~ow-irdlnK)@~GR}6LG@gYs zF+SSFUjO%E)H`hxF#+eOb67V;d~CH%!ntBm)1lAk_mumoxB%xxWq;>;x_u@2)@97= ztJVX?3vm(crW-F7>tnQXHsbWC(ED}tY@2~gpr7LUATIaVhUiRomz3IV^Q`T1TxqYK zNrydGS?esd&BE2V2G`;`e%P*Bqqq30sY1KF!hDT6y;7$hZL@K`xy8mCqR03=Q1n^W zcH@}NZ8v!~M?cWE@&Rl0Op2Yho1s6e#v9eM?N;1|+c6J!;4a*W`C?u!=3wh?`{^4C zd+t&HYoe|EPWyaJ!?MQWJ3Joj^4YdP?0nXiTl=2-`_w?s4mkr^^{Lg1ZTDjl79wc+ zK=d#Fv+q%hHcx#HXnTlX)V}EX!+3<&6O2pnD3;0vH8aI3&g{E&0@=VxCOV@r?F zfY$Nizmd*vW^;ZVFJQ-ct5Kt&b}{Ii*aZ77vu;gP$L?tdN@8zYZ{62yZ?g7$Yl3d8@v8X_b84PZ zs|>w|I@!9Iulb&DfL^HE6n)O-f}+i`x+TT4_rB-$w7qG~E~EU1y7&p_D4c~4*$jQP z1@F*jhH)$ONt@nm+vex?w?=WbZ5RLL_N!mzgK}FgS9%O}dlq`<1GeNp)EoWruY9La znqL*IVtP3FvAz7Xy)7dDo&6)EvNk%jeXjml_QLyM5A;X5npV(tXu!D6 z+^70MecN_`-Q+AIt%v%I`;CLf-O-g|nfYa@)?etcm7eVbT@xSiO_%gcd-~1MsqQ@E zUU-&C8$W^GtM^_?ZHU^~>@M0Yt8Fc6txj2bv<GDIyVW?qS z@Fm8&+l(~LOf`yq=wQ^r{;$6(jrp)=@~#avqjzeV@gz-S#$Fr*+tutUNyn zN&efZ@vgtYF?<#M`G4^lxYT~UK|R$jrB9M|^1RTxoPB4|THUH2m76uO&}(egw$V$? z+6p+~xw^EEbDfW_XZv`m?Y5)#ZK4S~?R0HFM<0nJ_6Ut0a?e-$WcHpliZxB=c74%) zCMIHP^bDKRzaG=0to>|rXJN{i?p0!GpFlVHw>vxS)7ai(r-x zMl`_YitlVD#8RC%FOO{T`{8!|(0(QKe7pBWyBfA%Mjx7I#n85n7J9V(3e2+KJE8q* zoXdwA_lJCEV@~wf|4$U1Ec(j&d(uz+O=TH=>Te2FIL-IqOK=GDxB3i?nIA^c5lr0X zZ&3KzcIO+LaS}6kIAi$5M{0?meC%&}_{mN-@qXNuX555Z)Nz;5nMv2s zT;C7rud3zdZpR&%7u`zl`5h%b+CpvawAVRnze`VlEPDR2q=dfL$X2UsLigI?|cmJ_#&r`;#(Ic?ZeuO# z#m8=Y#_zpB*G4(=mzv?a8BOAv;Jc*HT(=;+15#*}llM{kvgjXw?f<1w>MzSi`{Q^5 zpR&@f4oH3O>H1Z_swo{YpH`x4NgozUQI`*ga6RTh?Cu_u}o(+p|+XYSI3J zQ9q=gbN!+`di0oFYByu8`-<8XBejkn|@X=rDqx}QVx5A#< zki!;ysK)FKpW)gWY~R6-dS|EbA8N84+pL*}3tWq-A{8xVdrD79?J?uHn+dsi> z`Ce<>i#_<%*}lcNkFN>F&?jHu^XLP%R+QRG(5g-k#Kl&jC*u9~er>MT`p_R=vElFD z|8EqH7Wb94e?9i@stB6x_xw!p%#;iL+V#)yB%I~C)BGXVXS;5fqk3h7E*(&(;d71j zPP`FKX8#wxB{{~Ide$utbr?R!sIRI=&53K6_QO*_x8d{5iMdYRartMz#ZBf0a4<@; z>uaO`^-gFXHb00Ve(kFWIvv)BRYtMa(P{X6*E#3;3F8rjUed?yNA(50+Cv=QL?5%= zU240|`5RWd_G8Gq4mIq;ahkqEi{;TD{G)#-(^nc#csGf;-MOu}EGp|5=UjwQkHq-z z7!NhHis`XPooa{cF?GURvmKcpjFa)rbApE;*7m3 zZ+0@5ySK+bvMEblDvq$`B3jJjN3A-hJ68$ot}|y{@>*-JQ16?)gI+eSvPWGyE{U)Rj*rI zJDVM$kJP(k7OtVQSj#_m2GphF28c6r&?wIMnbBurn%-Zcd58Y!n2qZ(2RHIV-)gq1 z*^KkoA-9gX2tIGat#Z8Ecn{wpSK4&Yu4BGf#nTa<-9^8*qCfhLcft4k-R{{Pe6U}s z|2r1oUfgHBJd@9hx6b|ja^GrPB;Ph89jYsg4`T_Idd^43BUp?F@L+T~e=`S4^LxmA zIUdDh2sYwKAc+)Ws6r*GqZT%{l-j7%8y#7skx{dD?=fe#My)z(QG*b3J(>}ErV&kW zW;>jPj*!DLJWjKaW6kDLjp5 z=rzf>5-Xr5I-XO1y)=9=^xCi<%l4UH1wIEu?k^zp*J}HxMt}C-qG)l^@2Q^$9WU9V zezgy(@vTtf4t?FR7Hh;pr>b>6^RnIXign&|9j}USvweGAd)BcYuX*+bcB|6{wF?@* zq2>=q*YSD0)MsVT@h!XwYqKZVdryzcv4h=?O?>LZS}}KQ#5)Kz3BIlCc%KjX#X6#= z*uLdpQOESsqK?i{#|H?0wz2h?Jc5nwY=*wwiVyKIKEjTukDV<=J7cOzci&(NdeQ+$T~a1J|Y(6KN2tN+jEzeA;cdBFUa_zGW(BkT=*HEisV5ACxw zix0RC@prnWYgLG^E1JvRtWtYP+IDoKhi*^m74dbb{qPmy5@S-#aW-owuzRyPbxkge zo@Zxushtk~hOd+tO@?V+NAu)tHuYUr?{*wCf3VNJVHM{s)ANIjNqs}V(cj3c=UJw-*_)p;h)wyziB?K}sQ!j2!8r+$W(b)HL?OU8OEPLnu0sYk56$lhs?bMl0asL+pTTGX_OQ;mjiFz;Es z(ReXtz&Xvzqw`YeqfWl!G_TOlnRlaq80Yu1@BCECKUMs`sFR;c`zp4uA2iYvS$bCU z(@B%gYus1JCtT~3G|fBZR_RQYe-SNY_xN{q?_?*fW}P&tdQY96V|%>&VDoy< z=F`r6=Z%m{YRGsKd-|pG7SON4`Ag`L&bc(ZK6;a%X@`qCC5!*x+I)y$>?#<`>(t zWLR^r*dL}%-1U7}hy}Qxz0i}3jQT77nEd$cd=QJp6Z+th=!`S`-hZT|&ttXb+3O6N zF2w^7Q{6L0Hag4InnsPzO{aJ})uA)^PFSmC6QZ2g9mZRrg z=ddN0BptgZMSI0EakND9O3(cVdu7$)=$Z)UbNE){ndWadPQ?YTc4Bc`AeXtiFx99$@NTQ%Ba@E z=DI>2bm_WUu5>OBxn72AL5JkcwAe!fbX{Rjh+mvtwMbEBq^ zYpJgab~F5R-G;jn;=BiU^4}!4Ew1My_`Mf$ujIE@T`K3gzYB}85D#Jz9>V>YCC*Qx zFZukpu?*sWI2t|fRBk0JD({_VOC4ZJcAWjiB)(O&*>TOq67`n>X6lQl~qQy z%O3RndH;6(VAR83;(PvH@NBjE27O+{%doeOovt*o1fZQj^Nbt~cXdHB_6f_wYVG(2HHz z<~sC}+Slrlx<{g$*qwKLOxK+q-n*TCA4UROa9WqY3u6y{(e1Mze6*@G~0D!4I3n zY#a^u^52NZer#<~i?TZXQ(ye7o>c#??atvYW6*GiYyDIGv1{*zwFg~$p7y@!+7mrT^F4)3FqkmzErc&OYP97 zU0<;odauL2GmV{4=lU7O?#Q1JqThU5>ZiwiAA0qq^N`6~d!_4e76$Z>xNFXFJ&1n& zBIkrWQsvehavgHH*0UkVDS0crv&z{_2Ad0_zdc(mN`01#xhp45@96BkatXPO;s{1C zjHB#|KS8hZ6YdY=7{r%Z=WNiV+w<%d(H-pn^h8NcDSaMyUaItY{q^juvhN%B;*Q_x z`Z&Ht0c@v(9XY38WOID9hP?%)_PU+LE*e)kpEXOZ@hn{Gk54+E|b~2`5s{Qkf7sI=t=21B$jO=z# z!$r8z+;zrFFoWGN&ctQVQ{9*2Qh8k!{ntr;4?H=hPg!^I|8>+Y-wJVc&xSg5d)IVd z!%mwq*j3YR+I8Q68|Ci4LQT8p=r?_vTB$e0nu^Kq9`iThW@|!xbEEtCtS|aJ^}9~@ zE#~z`x8CTcTl@{*UFw}~c~*59?_g`Ik)HK081Is={*LMSYFbz7lbUKHZMxMVX?^$I z^83)Z1fExa;J!xByy;#{)f1yP#POs5@m=o4|2Iuq{k!kSeOQErcmRv>AfG#o58+`v z!k50NW4l}JtJJij%C(wwKZf$?fAEnl`Z$$q`4RIKpiPZ6srOu~UrdjbuXY_rO04v# zqIJa{wPZITmbiSolji!Pe>x|Mj+fevJ#L-`-D&ak%WpsX_IJ0MSCj5$G$O32gg8?j zY!0eXopbZCb@R+;kwF9K)m z(hJ=$8xI@9b*SrdJOO?0e<)v;ren49*8NoUE?*mpzRJ3v9Q%yh{fy`0O{i@}=*6e$ zt{1B1GOV`U>+zarpJA2jSIsYo{>8a^`=3kV?hen^LVtC?f;FhcOL$%$At&|hejT9} z8=&8^w5tm>TZbLd+3e2$o?SJplK-%ti8~i@+IMdh%jbG>m+N=MyN|{}-!1BL$oRJB z<`U{#qxRifp*M#^@4b(m*c4Upwf%d(-eD)?8+vZDI-G6P=jGn*-EUz#wuw3PQSkkx zy!1eKJ3@ZD<&uiFvHR=jccS0*WAId8b|2t-p=UI%Q=@dfeQeaE?djxGoyvnYAvZc# zhxtz+$8Nr}lRXc$)eqfY+gBg`tI2-;f6qtgU%glHV=yRLC`wZfF+Ivsn~It^6E*a#U1m)lA)XvY)b3*AH_+E<`E-xU|D-srt=SaqW^dVd z_PPuH-`?ZKZ2HHcW!=_Qs(VTed&cXR4f1`!^#pqxJU`(+6uvcQR^9fd(MJfdoF}N=~1H!b<5DSX9~{8nPNuIIpVRtYPOy< zUn|dAIagXg{IKVjV0tuzznTAAN#E3aPxV|x`x+xndT8G>6PM#szPt;1F4G^|j8oZ@ zL(dhshTp7lR^)%{8*M4I*>i^ZYdxQ1yb@RADt{A@b6a>O#-8i=lxN55uARA_8>0Q} z{H&}bww@d1vX{Phd47}cEf%>JXWe?E+V|Xyx$2iP-Xd1LP`*C;lc_#$mfET4@ca(k z3Hhc%{A!YwL(lDSu6ypseB6t>qN~|hRcfQ>Zu9rp`>AmOpR>efE*5M!cQN_(JOnZJ zsBu<|J)tM`L5)1J`&_F-wchASpj<5nqR06;QuI^SQ~ZDJ)v9IBV_1Tvh#`qMD)0#Z zAx`?&t}v=`PpC`Kp$gTgjQq+T&HO=$o<7W%)z9>-9{RM$JE1E0YC2E{3mW-+$yg_s^5`$l^KW`eZTCE-E|+=!B$i_pp2iF2A2o)(E210i`|-ahp3|O{ zWBuOqyl1QNBA$UW-}466;$^Hs(DOAqi#HxLUl*-pYf{nHsdr${6M8-9^(tP+E7*Xy z@Fq6mZQO^=*o1fRF5Zg{vX}iXwnU;B+XtS#ukW3yq&{quXU`V*dL|aM+)69GRk_#o zht`B1a#qU2J2dp!b{dEJ?Z!?TRvJISNAfrj{muFQF8;k7c6hc&Z(Xcc4!90=&~w#6 zgWzKyKE~(RuNFhb&k)vrWnZwpi~o@4m(lI)&-~v@dLU_E-Kb~c>uG1V#=Uy?bQq@_ zJJBWfFzS~i?dn1g3}8^6q5u2otfqCLM|;pGNA;>|jb7q!eW|~mUe6D*7i@%B57ABk z*PiQo*!%npFXoStvf43xuo)G_Ge1n4TvR_eyr(K_<>6gY6{(EzF zd&gk{#$%$`ry0-0SvXs~8>0U*&G)^fw(IWkY?64NpzZap^;@r46D!%C>>8=KXR};S zk<0DIsW_h=&PMNf?1p{8*9ExH8ujYE2=wi}IJ%e5eMO&Ty~W=-WAi+l0X@}wseI^B zCB|N7s`qkS5xr*Llphw)PU5Yx{!Gii_e$}JyXtP&;>w7<_i8m#pG1h`Ds`q+T)e&4 z;96SfnMBg{b!s7}D!RpMUDLk$CiAoHFE@XKo~^QeUvz^1B}Ml>}rV>M#xwKt{K6?eM6mA`x4r@(LhE#?Aq?Ng7q>w0m;Rkx>r`H%C zWs45IkAThIC0Oj)x5fvt$i8v%pmXm-c))r(^)97FR?K`1S*F_d=6CakA6f#O8~}7BsUXhTb+lY1G?_Wq6!jz1Ag{%Dnq0JU?U<_i$BoCSRjP zUuC_;-y2eTsAan~PvL3%!g+cIE3gtFr{|)_?49*5OX5tQYkn18h_-sxT>7l{dHOu* znRsib7+2#ZybQIv1}=eAq(t~HbC!}~OxYSd%d zNAyJ4cUa6dK4bfC_{rE@4cSOaY`48oAHaq;+&mQZQRJHl7_J^8%Ve~w6Of0v% z-=UWBOzDft1MDwVr{~Ov__kRS^Gpphcc>dX!=ZmZhBJ^1{q#{(DTWor7{=Zca_ZfM zJ$&hdUirmBkA8~1_>3L>*ZVnw_6MR**!ac2DyeCey(zKv$~ne&?^kTq8ovfDYt(93 z&&JP-{`GX*;^g*Qjgy5=wf?TeQ!^f`GXihFZ$63n#Svl z-Vs$HcDDRO=(65J7^3kczVu7AvG)i@B0pB6_V3v~YCh-uIUkv)T+_aH6yG54|7jBT zev1<*M4#LLoBy*!i{9gWc-A)#6LE%hCynDV0q5dO@zJ+WZTrr_Sdj7hoFB$3?KdR&0G2V>&Lu3|xwteB5Zfj3%_|yBt^Is_06#_k7Rx)#mkS z-z@s?F5i(B=DI`-X+TQCpKTRh}=Ebsuv|n z{q^0e2a}%PgN4vnee7g{c8l-;9u!YP%%MJu@em%4{`?Z}@KReK#i`J8bHmij%X z4Xv&p^}eh!KBnI4TBWYppkukbcAMM9hjr;m(e><3`f-US6>45vZ;u!g;)y#aH9_|Z z#1V5IoT1F9YjI}lTwmx~UX?+=O8Yk&Lmbse^YcOU3_r_?etzY9-)8*S_nq^w5vTcH z(4WboANX!7fg_mY`=GTr&G#U;U^9N{JAiT=!Z^SG)}tTO{2sXxKk+-!6?hW;nC5ql zRrsOL%Hxp00Zj8*b2U!$d1^j(VxrF|i*OS2{Jb2+B0pOWVWxL>7UAy!tHbC$wG2OZ zKIh;`?8C40?tE;=>FTuvqZlXmdPINlJE#7B@Izzx4yLS{meqB|pT$qpOWoq3hZ>;2 z`-2nI zGnzd2?&)h$<8X$biU!o_C;wMTKV&|)Uft7rI)2QWC-wFvdf+O1_8QsjYr`@;4t_JQ zS?`@v-r+vvB!)rHs^4(E!X9~4J7`R$jgO{<^e(#}-xNE1ne}%u# zjIUxH)_XQCx|Q8o|GGqn@_uKA2KAR(vq8-COkCtzu6?i5LOo)4u|1PcZ?bV$^dcMU zOKtR-?|aMMp#9rMx@SUdHeq9Q)cTX9>ocF2e}@Jai&39sy)V+vRO*PDID38XVzcW- z#`o|(J`jU5SgA&RL8mR^rg4(ysjH*EpXul0PfGIY+itD*Mc+2)q3S+)>4_>aW$9Qc zpS~T&FO56#5kAH)h_CXvad&h#yH!QIWqo_h?H%jsto2FjQlU>i1+DA!Nabw$A9BrS z-#(hP8$YLsUdrg5;a2wtXj(6po85>0`U3lDK#O7LVpuQM&bRkl*ZOOi-9FFyg0B#7 zN3>2{{iXR1KV_YM%y=HV)^+I59(1A`;^@E4*d?|BT8M3!4#WC(_*wHqQGw0H|E73; zhl}4uWI`|Kk-meluW#6TecN}~sE_;TI_zBbjp~2B($`Dh@O+RKAs_vmRNvv3pigUW zjQ;UbKMTL}6Ym_;v+{bezwY9{CMM#n=yxuQq9djL`c8<;`V74@dLzBpI{t?@yS~=-*_foRwCg|D{JXBzw_h%m zUq=(zoArk!8pRqsJD+bkR=Z9+Ps8u&oy*Km1?|%E=nwX$MN92pUAn*j66>AI{!1}a zOkv#xxDd{D{|wJRkndZrgU#vCOT$~D4?=F=vlVi`8nbXEt`IYQGJ3QBa?q<^j>B7x z*Wns5)2#pc==UyH`=6HN)qjKeIo5uNZSvXe{zko^*8S?-e-m!O&6tZ@aXaSW4$!v$ zPTY-qqsi=-f6x9sQPNz0>0EkU^s%{<#ksQDp0S?pUm(t)<$Y@Yj`4o+s7-~OV(K@% z-MGj6Lg=&p2k;;koBtGINt(;9HTN(c!Xx&F^^amHmf*4I53caJ?+i%j7f8`MFoko8|nOxyR)k@>}lN8OA5{BK_*r zGqcjYb#+g&=iO3wfApCce)w-oa*yZDzwEg)QQhuu4(#_^ADhgN++(4(PvaRpWgQKZ z`}yxslaKivZ-0n`ufCv@J{;a@4A;-%IXn;Nt8UOJj(+bX|3PY5_OYSB|gZ#|k^K*OFK%A+df2i?GuEpHH-gkCGe*rtzo&lB?ceVCZqK&jLu|ti zbMhJv{jbNX_!_2l?KiGNZ+t|<{)z$uO!oMqtVPKN^v!S1|;_doSZsy__m^&Af^}n3jF7sUN%f(wx&s0{v z=hNwAG?&d^e$VC<&(w8bs<`D;LA%r}_vg7*j{*Azrr|o8lLAL5U$1K0Cu zZ}v9V`fuPyy>K7h_0hnb=&1>IB8KV0MAC>Ph14OEW#t*Z8{3SmrxHp$?>9UboV&Oi-n5qh+q_AeS6 zotMz3avf*@od<%?Rz%FPF88k(JEMPQZ`_}i zXg09UdD-Auw>9hK7vgypuiQr~8Q1z;P_$h( z@OH7r@92xe)@;PP*o^nEm92Bw>2$4E2R^|2*kXO?iI1=Y+r{@%^a$IBzOy~tSG2v) z^F7#$Pw*LbtG)c|=eqtByRZ`<;|qL=1K2OuImXY~KWh96>L05#ZgWO1F?L4p@jL0? zm+BSzL!YMUP^*XPLJUFQpkL6V7k$z1UgvwA(tYWmXTLsDhkXX3EH~=|H66UgsGkOJRcG&n!P_toci?vMCF!>f>e58}w#BZSqCdRe z_avphDpp#5m-B1S;C$STduXl)k~OaHjmp~fbuC}j`f+dp?#F!ynlHiwaE=D~7<>rM z#2~+eORyA=MwjyY^S>z3Y49=g<@!w@B=)PA8}#vi7>jv@ z@4aUFzGyW@@pIpEl%pLBd~dKFzw*2B67*xH-z8U|AHVWD*kZI}6ybZ#ANu{I9NQ83 zT)qT9@i{e%ANed+g?{|fXP77P13$M<$0D@jr+&U&fsKf~v!`PLy76o8u5xr^oHM>2 zNAPn!zZeH_njW|X39QD?XpzNs{9MkHaE<(@8J8P>+EV;CoJZ89;H(y$(Sq6)oaKUZ zTyQ=M&SAlMEI4}w=e95zQ{YS%oXLW-Sa8M)&RgL^IFkiuvT!lfwBQW-!l$g@>=m4| zf_^VJdj)5&a21@Z!Yo_^=csTUoS}mAQgB`h&P&00DL5+y=cF(fdaB@z6r7KO9xpf} z1!tsiC)By1=L>qipyvyEy`aAfdb^;<3;MgDzYF@ipuY=?Pko;}^DoDGqO73T3wphv z*9&^Rpw|nJLT?xJcA*0Lx}c{Edb;3D7W8jH&ldD-L5~*nZ9(4_^ld@E7W8XDuNL%d zp#gffpl6Th%_DmAh_imA4a@L2p1^WEiKp;1p1}$@+ee#!cL;dQ)$4R{l8;caX@rN!*ii&`AnWbPfji_Lfs@8bh(!B%{TZP<<-_y`|k zCqBV0?8YAK#i#fT`|vrwzIczgI@HZ9|IV~K^(#mhH)52a1=R= zU=-ir81gud0=~rwoQ%qjItNG3z<5kJrNz9zDr#|bqPa717S6^boP%>Q8B;J7=iz)z z!v(ky7hyUs#wD16nYa{};c{GoD{&Q^iKEWM(Q9xmuET6xj~j3!=HMpWjJdc4x8gS3 zj(NBPcj7M0$KALG_hJF=!~Ix@MR))YVlf`V!*~QsPHC~|KYpjh(x@y?r#zkV6F{3h zZSu6q(=muw8_&ZPn$e#^0dj*CQq9@ZSu6q(=muw8_)P2lui(ZSu6q(=muw8_&ZPn$e#^0dj*CQq9@ZSu6q z(=muw8_&ZPn$e#^0dj1y)VlDx~N5-PI)@z>6BlBpv|Lr4CSam z3~?loL<*ItLN(IJAd4E*q7LIczgI@HZ9|IV~K^(#mhH)52a1=R= zU=-ir81gud0=~rwoQ%qHYh{g zoVw@KJ*VzDbTXny64nAr|vm*M(-E-=mQ}>*@=hQu??m2bOse4Y{ zbLyT`_nf-t)IF!}Id#vedrsYR>Yh{goVw@KJ*VzDbTXny64nAr|vm* zM(-E-=mQ}>*@=hQv77;2qU>zrEW)H*@=hQu??m2bOse4Y{bLyT`_nf-t)IF!}Id#u9qXn&K!!kUMC$Jn(;we0h zXRrb*@hqOhDm;%D@FG^@CA^F^Sc_NiD%N2=Uc>8n0~_!r-oo41h)sA0?_x9F!~6IE zTTW@Q>OXy_#a8_*-n@A8;?0XUFW$U(^Wx2mH!t42c=O`Ti#IRcym<5C&5JiL-n@A8 z;?0XUFW$U(^Wx2mH!t42c=O`Ti#IRcym<5C&5JiL-n@A8;?0XUFW$U(^Wx2KL5T4~ zY{Pc!z(@EPJMjs2VK??*FFwU**oV*Y1@_|rzQkAf`ji&y|Mt80MZ38UbfOF0=s_>~ z(2oHO;vf!T2*WsxBRGm2MlgzRa141IM*-hPWg|CY4sOEDn2TF*D{jN>n1?%XC+@<0 z+>Lv1FBafF+>eD=ga_~-7ULm2j7P8pOYtZkLpdrCLmY`yT5SGhQHznJxfCi&|@QdY($TZ=&=z!HloKy^w@|V8_{DUdTd0Gjp(tF53mJW z@gcTh`zbAU{@r(4>@fEcKE_Ubf?e2+J=lv+@fr5vb9@2)Hlp7~^xKGj8~GY~Y($TZ z=&=z!HloKy^w@|V8|gzo1~7<&&|@P*7{*~7!BONef>C^fW60w;3iuW$a55?z9fvb8 z9uqJTXW}fJjY&8M=VCIZU@FeT`KPov@SlrXj860USS<@`Sy0P@S{Br@pq2%-EU0Bc zEemQ{P|Jc^7Syt!mIbvesAWMd3u;+V%Ys@K)Uu$K1+^@wWkD?qYFSXrf?5{TvY?g) zwJfM*K`jevSy0P@S{Br@pq2%-EU0BcEemQ{P|L!0s9!<-3hGx-zk>P|)UTj^1@$Ya zUqSr}>Q_*|g8CKIub_Sf^(&}fLH!D2?~DGwFKSUx%Ys@K)Uu$K1+^@wWkD?qYFSXr zf?5{TvY?g)wJfORs53FT40If&<0u_R={QQqQ96#&ag>gubR4DQC>=-XI7-J+I*!tD zl#Zix9HrwZ9Y^UnO2<(;j?!_Ij{lRqw}F$hD)0V>O@I&rgiIg-5(puL5CQ}Q32zcG zK!B*AQ4@`TiV7MlDpsu2CJ_}BB`Q|5^br*+Dk>@}mPBc@?=RWx`};0!X-iwARM(X_ zJkS6C{ax2NXYQGu%?1Q*pXYq?o06+8JdVQS zC_IkB<0w3i!s94Bj>6+8JdVQSC_IkB<0w3i!s94Bj>6+8JdVQS=q|I1(KDi5!09NQ zj>73EoQ}fjD4dSM=_s6z!s#fSj>73EoQ}fjD4g=crc*}YaTFd$;c*lmN8xc49!KGE z6dp(6aTFd$;c*lmN8xc)JU#{f6Fd$63;YWF8jOP9fHCk}@C?`ueg_KR+1!-htOOT= zi@?jlDsVBl1Y8PMgUi6>;0mw?yaK!uyb4?it^%(HuQ4uiFAZG$W-aGl3tk6a57vS8 z;0@r7U;}s)xEfpot_5!fZvk%w*MYZzw}W?p>%k4+o#0(yBX~FX6Yw5zBX}=(A9z2w z348$jDfl3`8GH!*8Tc@`1^hYq2-pNRgDv2r;8yT4@Nw`7a2vQCd=h*L+yOofJ_GIq zTft|+=fLN|UB<I7ZVPZ*fZGDx7T~r3 zw*|N@z-<9;3vgTT^~l^6fr|n>7vQ-7&jolcz;gkf3-DZk=K?$z;JEWHHNOn(A5~a8beoO=xPjIjiIYCbTx*q#?aLmx*9`QW9VuOU5%luF?2PCuEx;S z7`hrmS7YdE?Db|Bi_Q*QjG?zN^frdx#?adsdK*J;W9V%Ry^W!_G4wWu-p0_|7&gHiq8D(AyY#8$)kn=xq$WjiI+O z^frdx#?adsdK*J;W9V%RpBO_|W9VuOU5%luF?2PCuEx;S7`hrmS7YdE3|)<(t1)yn z_8D*|*a|)iJ_kMz?gC!`e+j+_?lvx#pA)(G66d}Q{tDa!{u=x*@D*?`_$v4s_&T@` zd;|Oq_$Ig?d<%RVd6dEg)|Jc?-x}K;8oK7Ld1qyanVfAa4PA3&>kQ-U9L#khg%m1>`LtZvlA= z$Xh_(0`eA+w}89_6dEg)|Jc?-x}K;8oK7Ld1qyanVf zAa4PA3&>kQ-U9L#khg%m1>`LtZvlA=$XnhFKT9(YRQBUf|-t+1|>O zKjePOZ|^ZK)}9}^z$bo-Py802_$@y1|Ja)K6EnGY?`4q->?N#Ur~LLYUjGC5NAOSJ zaq!RJU%)HPl5jgPlNvgzXHDoqu@7S4Ez>619pSofdY6oH|3d? z;6iW_csW=FE(Vu?OTlVz8Mqu=0oH(5fLDT7fh)mP;ML$YU@dqpcpZ2>SO?aFH-I;S z4d6}SYH*F&#l{N)7tdVFxi^EifVYC{z}vvv!8^e9;0Ewc@Gh_syc_%pcn`P{ycfI= zydT^IJ^=m{d=T6WJ_P;@d>GsU{v3P+Yyz9X7VuGUEBF}rIQRs(4crbs2|fkx0G|e* z0e6C};IrU!;Pc=v@CERf;EUjH@FnnN@K@j-fFC@AA3TE}Jaeycar4T^#aB7^HSl$C zANU6N8}LnVKlm2-Huw&B0DKpG4}2dy2z~&52z~?}0zU>n0Y3!~gP(!F1&@GjU_1CZ zAZ|YMDEK?@_h1L81~s4-)PZ`?02)CPXa+4{Cujw`KpSWW9iS6*fo{+PdO;uP2LoUb z41r-V0v)HPl5jgPlNvgzXHDo zqu@7S4Ez>619pSofdY7zbsawO-{?A>;>FgB0vCVaYj%Io>vX&EiQV|bZhT@lKC$~= zfFES`C&a})FOOW{6aSCwRZOX{KOrveUlqB)Cnnpg*o{x@#wT{;6T9(=-T1_Ad}22~ zu^XS*jZf^xCwAi#yYY$L_{45}V)wIlA5RU}vLCwGKW_uqF0bdB-A!Dp+Qc=QJGeG+ zH+%B;u^0Uyd$8Nsd#q>At&_c`$Jk?elD&mz&g5D=Yss0cq2{r6SVGNw2DRc!YNR#P z2J6U)*O3cuBnIAs@85>a--WL4MaBpC+X9?x~jC zr#Sa$_S`Su&pr1a0mS-WegP2oeo5^5C2{MQ$oteqU_E#0de#x#(awS_7w5$DPr4G|DJ1MKAqY5Y`%>1#GB1`fvw>4 zK;yyrWSxgFgZ90XKs8g7*Qq z-EtFvqb+|5J_v3GAL6sou#Xo&&`)*d}}kjZid&V@Q=;d+f&4Z z&3EQL&-LDn8l(4KYH0Md3EeD%qmBQ-?@;aLp5$5Fe{%xg zn*{eUpS66>bzmd73A~Zdx`k(b)@N7p5L!I`?3P@v?W24)CkU_pKE~I3uR;g$@3X6z z2Y){VESkc-hdk&0KRry|^jZIRwtW`A`Q103`}^@wm4nXz>22}Go6gNGeg_YGVH2{4 zs)|BS&F%X?orzr4;`e^wJvW_OwfN09zUTdW#mE16ktY#g`PutaO_{pye)~^5VEX3& zQ+$2kjDrq7Wago>^0N;+e9qh>jy!7K{G*RqaO}e479GF%ge4~~J!#p=r<}U{w9{X5 z#+ffYYsJ~;oO|B+FS}sng%`bi)y0=wy85!quUPYnSH9}Xt6u$@wXc2M>({M+!y7le z>FR5)ee+x1dfnUJ{*LQ!c;~w|zWYz!bK`s8_x_tc@TVWV`9pv9;amRvBQ}>Q-guqb z^PAThFIeOA|ENt|RH3D*`|i81^HOEaUh6!~-;+6SGp?HA?^pk-Dt}Mnmos`D`ugx1 z-v-fNGJVr)O(dMR_xYGMkj~pVJ=lA~(cbYVGc30K_VG*&N-bmYGOWLw;+4%FU>ZB+TBic-sO;j_uErb41(zi+QEkun`uJYC~ZWm*@{=iHkWq9 zk+kKCZ8Ry=L*ldp4hSEoKo<;ZPKB`hzN_0KVGF!u~8J!mMu#G zK@owF5ZX(urJ_Vp;-zQNh!iw}#rUT1@iMgwysZp|X7(Btt%FE(xuHMTV++w1hQ}G+ z9#25DH7VMOR=y~0t~UjPVpA9(3M%3gO#>_Zd{P)*{h}5K1nkkC={&_8f(gBTbyTT$C5$ z(dHFmt}C5`l2#IciMyir#c466$^etn`S|@qw3k-3im>devT62VD95!E6{9RGheA1v z7UjsYQqN+oFlbB7q2yG!mDD6fS;MWok#EVks4X?rC#N!pI`_QuSe7IYT3KwKk1xFN zB2USyE~Z@)tyre)0)YE~<}*4pb{uaY4a4A)%C zN{d!OAS-|*jMqL^`cOp8GW}3J%{ED5)nsZS23im#^yQ>1RYT@TrY6Z01D}b6qHw36 z9<2}MQXb`05P734@)j12t7uXIbrGvaHD5uhE_(HA)F_Ky``QWu$t`0_2)5^1B4EWu z0|KTtOAUo#jI>;^$T?OhTF6kfsK8;ZEdHBr!&(C+d()D`>%{Q5FgEc-jGmayE0REG8~ZH)>5OD>k2&s#t|W zrd4z=S08yxzGdo@M_H0O_gqsUUS%oCJW9@lBUzhBAO#7U;;AB(r2sDiEjSh3D!ek? zNlY>U&6Bh2)Z6$qn3=8x7-EbyrGb(re!_ZDE*jN$ES^eB$-#2E?QqDHD+`1miga=# zH431EvdxM!Oil|DnHdU729{Gw3Jcb>!q5~HE0VpKxx`>$A;ZJPa`UWW*fZC%3c{m? z+zZbNF|Rb>O{gK)O!OiP;W3Dp6zZNwf`-D=fd}U7m8?=NCh4FnMaB^Gm5#H9i8Gb7 zKQBA!P(TPV6(3U#bi z8pJlDn>9B(qu$6j;Vh8bgRJkc+-y@pbO>7zOJD^FQElSJ5a!$_xx;!lhOuHSvuGBw z8Ba=R8H5Ydku5wHX_ksnvO=$ms9u?!X6DO_u(I%=?Mn+;qoM*)d*#XtRaLN4OTM*@ zh|4aoB#@$Y2y&KDWpi$HF#&mL7laV)R(Ol=`MG)X+?y;rTFIbkyYpBmi?y7U-YOS7 z-%tRl$%Q=CD4el}qIuI|uCeKB{^iYl>e5Rq2xOZfB%Tn`6wDO4Oe_~HvxW^0mEzf< zxv<{A+PuwD$rPIVTe3YjJy~8!^O7Pyn){gxnyy31C?lkqf;|T;Ws8YWQ$ZjtL)_fV z;*^cd!jy|Nf7J+5kqRD}nQO=@1p*#<$jnNHFUyx_%ko2&DqoiOdM$UlS(lXqXR1cE zav&{QW1a0fl69$SrRiFLwz<6dH34c@D_koHq{WP6$!ICA*A?g7*@N4-M8q_OHMx22 zC?0~7TQ0F;)$_X6ee!J+GA!98C>|7Ah+V#wcdFWQQmw`I=vXGWM8`7I(j1oxMp;=P z3)~eq#bOy$6xJ7OA+ZwWf`w`wrLr&P)?&QF<5czGakLQ4Q||H?iWv)y1gY3^moD9e zCK zpe5rA=>+@prbz5_Rwxd^Lb|EYLJT~^1qy4Ab8O`?fj~u@vw(m=iEE=8OLL;ln~i6e zVPOsl%wskGG<`3nwHeGLR1>JFEC?;E?>rn6(&R2`$z@pms9nK&&zqG6uh80$onpVJ z_Byo*1@h#HjzY5^$IeQE? zX!WOO*0LJYvXt4RiDSaJL|*^cBZf-zAQIF~@Q8s!mKu!If`@zpRo#W^yDV zr6QMx5De{NL8hiD`$h@Tmt7y4MPDsk7UYgScEJKgTopXp^pTCoID%P(QZ0mBPo=7L z;)Nn@_}ET}Qm1x8QXo(SPyk3*qE|m6ET`rGx zIF1}%6#{jM?fL}gP{30Y|0WN&EkVcIny9E=S{UMLBevW%uNc#+Pv&0I9QA`n~M*M z2p$hGz0kykf*mxN`IW>5EFc)c1bYg$VwIZq)Plga$dGw@%keTa^T7Sf+O!NQAqhn9 z)ZWDm3n^v^&XAJ>C)pNE!o09_fxe)kh9pK3M44Lp}+1A{SifK;* zl`q5h>NvM2E49BVY1@582hKR~paT!|=o!UTnhw|5d>!J;Z^cWCmf_|ig0{AfeLK8( zdl9?Ce;k2|@do`DwO@Qy=6H4()s7ds-ACikq{D*`{^JO=Zwx3e`15{$9D!bFIYL;~ z)Bha;K~R+Gk0DSD3AUK`AV6YC>k6gZY$%{=vW3){-c-V^SaH@_lyG5-_57Eee?FT- z-u^oYlq3m}ItFYHaY-&KfI{(Sm-@Ws36B*7vYZ+siDwW?9ZDa2YRaIrT-+L_?(zIC z_7nZShfrAqai-di+nW}ZQu16upqOsr-j51yuh~MKZL4p;qEB87Te_;b)pE8v(5tZZ z6V`WL2!u!93VC53Lm?cWDhU+UcD7_y@Q>RHmh`>W@`VHmpL}oYo>Xb&v{;=p#|j&X zrB+;ZTSZJ8sQC_ZLN58G3Se@W-<`h*7*Y4SyF6$A<{WT`4vSF9nlg3z)-4ehuJg8yJ% zVd-`hS0B7-4d+c4P|UV$MNm>hmj>t;;;4c^<~mjo$0`sh%)qcM@hoq#h#bX`1e(6K z*m6uhv+B0p#;~uTrS)=M|9LT6MS&C*d==mog*JraDo3^#T5+Qx?9NHfoP`D+;&RTf z9a((05I=rZkW%KsF%wPxje{#E`pQ8Cf#gAUNk2^8s&s`m)Z}4J3pC#njcZV%wrv`a zhvprXwx^P=v{_(lPi+?1X3+Eh-oz#T#fggFocN1Pn=1$;^+={na|KywKtEAJJ_KBg+V3WstH?%%~(DxZ`pp1-)uoYTRvJrpen!MIpl$N<5x-6dF7LySJo5VGfDa z1BOx!u`kvM*`QakmVO@EIkUo7b}9;#VuEdxXf+mB8{yfk(YAw%*~vos!QAWPGJDzy z+0{dYq&6w{5Eq_@Sfx@;Bv6QQA=VXFm?lx!A(jJKJonO=g4)kb!$&#cqbWc$X?K|?Q{^t)p7 z?aN|k#czvM5Xf$TbxjllotJU;nAv^t^1(DEWy#0l?PW^A9@`~@?dgXN;1|k+N=+?& z=k5ROlUlsz)M_6~MZS3OeNtVY%hq8c+%A0k)@NAu9Gz2Pt*V+>7dJl%Z*i0G1YHAu zQNF!rG49rnRnSn31fGekMDX%JX(!fls^(%{ZFPbc5Rx|+U+_9pE`-=;3HU|LL=^;5 z;bYAs!X%F#FNzMA+b_KKQr!w#qrs{{yToLsDCIr}Uz*gF;@2)K34{nGTlFatBzLzc z5N0UHvE~ZP#lv`3i=|@PlHSZxUkqXN9nwkyMGZZt=cveBd@JNJC1hwrmL5GsSF6p%wvrvdT^=K+n;Q z7b@B8>bNas{o0%*Cd*9|S3c)V_FeMR_u|Xs;}ff0)z5^vurcQ=JYrW^h+82bd!Y{S zOTh%L`SWveCn0Vq*v6YOZESz=N+A=p!;V#0#JLE?)wRpw@t4^;{ro>p1gRzAiuH-! zmipa>e#PE*-hbb+`n2=~|4<@){1dm`{>e|>F_911D$h+$d#5TDC==ptobSY$XZZG_ zZ<@%|a=vpCH-UUPP$rC5lAmLm3xxH&THY z+MYM+_q;uF!G?1u^Pr7QNQpVW-45;;h_O?_0acOlch}ENL^u^or`Ou$L z(hyFh%o#jK=_rJSxWlMt+riQTJZ`5d8?i#NO%e;{@j{WjD6|k9e!s9V;qRKfPm8<> z1X5sdq3kM=609PfwW3(4OzF0$GPIU+#d);IT$u2XC~du{#rFFv31lIGDkf8aS(Nk2 z0ij$Z6Qw9kFuz=|KdT~a;gG3&eDU|9id0b`MTPMKdDJdG7IhXCCx!VJqJkEK?vOR> zXn*JhUJxf~$a9cyjfAP&QrxHM!455`po9C|;kLtQ`|`G@s?7%5Ww1Sl3VT>f?R%`{ zx9vQyUj?eXx2+-})(A2$bCVd-pxVj=%cLZvOkJu-F!zX@Hn3IO*%g*p$c5cuc1=iC zFV?o)jr`D2rF}Vt0}t7X1-b^V7TiCEYiyP6y1+idyF?w674fgl@#qB-*990E@On?v* z{ReFMb&M_W}~@UkbFpB5Iu{=&6=cc)3kIni$rd0rPGDhL!6l!AkW zypjhG=oT%?9`?^E568$Jf?es;i?;f<-w@k_KvA&LXLm23HS<=a_FN>dqLEllg?eq- zb=-prT-(dCO6Y|ygr2iNUg^1Gm1r#-fh>dt zFS->J;_9d*--fhnS@-$xZkPN-;!Co>k@(j5BZ+$usKmjieJLnvyTQ8Dz-3X6{XzKsLcd5-{pzhi+Z+Ql;rYD5n}1`lcNxU{5}2*=j&f@Kg4;> z9)5|lf`;N^$SQ7IFPOi`S7=c>lTo>|xSe2Yy11ths@Aa1%RcSRa%f3V(@CdMG?KKqhYm!3~Sw0iXwr(ej=CtO;*{;+1*H=Zyzw)YAUcAPC$@WVBm8Cab{l+)ik1UaQUT2}Y z?6#~*8VbuF&pT3sty*JPi%Yt6#V7NEMO{uSyRh%5CtKOY#hooFd|`g{QNBAjFWgm< z?l*hM=_j0V=2E+TJ_YIX&sl0Kii`NorAtDju6$?H+bRg;QBM27*)XRlZP(o5CQf!m z>UWXZbnP~0y`t$lcWPSOS{xIE&JqEN@C^lv%i%qf8DwCYt++OO`H4)^6Tis-JPm2i_oJ1hrpDB(HKIGt;`yP6*)h>rAYtDAVo0r5|x@76`Nv`0DDXb4FK2e{ItB*^_FJ3pzd{g$N9@H+> zW}(DE9{=f(wfceS_#@MAcw+^D_TbY=R@MDs|12haTguqieGaEU!6EF{kF;N#vbuc} zBM5Lp_Flv@vWf0x#c%t1Wun=85f*;xGW;-h*v3tF!B!AR%NMQuwdVKcD}Uc+ml$^8 z(5@U7%PucmX6yS)CXgfw?vQF@Ey)&^$)a^-2+1W8nUxB^=nyw=*I1#Y{~cj%v@ZQ< zr)^}!JN5iONT?uC)DZCq|5cM%QK-zbs>~o>T9(bs9pX#oD5?pn?P*&!yO1G;O1ANS zlX08qHI+**zrmpVKYgeqkR-9DaHK`^b7{G0(`-ApbS0W~rdT0lvQG$LT7jK#!b#c^ zIOWu3(p)hxoTHWId2WcS!u^%@|608AmHs0H!X3(0@SX|gGFQ0CKm5dyt@)!pU9P-(>1)B9yMjQeF3Xq=3wo^XHGR zelpt7y`yGm$6tJUQ5%+R&CudD`-^f{ayCR)dhKER0MeDOT1~s<7Z6lfFFs)bn*fWJ zo_O3zOKsods8d5xaoTAsR-CTF;%rGeznFlps1y{EJ3Ox!d*efC5zdv8pfC2N!ZxDa zCSpDm?}tBGJMW5iir3-iN(t9Elai3NvuXOz5Y9cfg2_EEIZ`LxH}0jN;lGA(!F!aKxjeyvNp39s_9RsW^Siy%-X zGs~VU%V{t0;d2wn>j&Gku|QzN!+R*TmH%_9wGR{dwlioUt{COCOBfasFVfQ<1cKGF za$C9Hmk-1=E2?8nt+?gQzv)cG*7AWBsajD6UF6Y{`o(J#2xO_JJXU8`4imrB&yvzi zbR{fnb~S;D+Y9Z)!i({uvOqyKwhEGK6JQTGczOs))0Hr%PgkuneR{}}$4y^!{Bep( z({m|RdR1(f1J6w-LN@bdI?D3yCm|(9r##M z_&!5PvMpZ%mi)hef3fKozwZPX;rDF!PCCN)&tNMU+V?`5um*bu%pF>KPyig)3W(=?L#*e`J!ipnJXpb+7 zBLo>`d|}xiub6r*q3hx?YFc@#ILVGn=?Hu{En9YKFa;>Gj5Sr%rL8zZi4HU&AI^m> z9W*P|v`QmX(wR7{+$xPwGMnQ6rC^Pq*XU$(J{ zrgfNCWfMJGc{9)EpooxsN7wF?FQ&z%J%0uEASWbhS@ z7Bu$Fv$$CwF0U?4n-E;XvTF-Af|I18)PGfEK#33{EUpDWT##7f{H7`079t88b&_M7ZxYF}cjjMm+e!BTuYn?tl{ zSE;cXulg7psn?P7kF>k5{UI}g{L+>ep|iTvG=dt1pCK|A5BwUvtlFbcut@U< zEheM}*^|*FCoB3{W)x-;qzERhEicz$G{%_lvvEeoSPV3A1h;B2E?clspkx-`U9|n* zV1{f}8y(>brY2M1!92^Cr@9mwSl5(1Wcej=?SZ(bCd)i#0VB8#xNmwK&)TD3IW&jx zhj`O)3_+Shq|&m3yH)t?z@%BPB8=EbO@tD;0uNCWY1*iu)CD~(Wf-(?U94Dfwxr0o zq*zotC@-Tp6&5a*G!H+W|sPUs3yi*bH&&Q9^^bMn18xLkVPJ* zYh*Z>-QN|Nkv-ESM{y34K`n+z^*%&l(ne4~^N?=_ZOO}piX)Vml*PlMJqFK?w~QlF zk&zRZGJ-jVyH>a$aNq&*av7Fn5GQjFvI$_+mw1S-F7Hd}jxt_imSjA8%%JzOj3#>xEWi}N| zDnxSFfu10mRUn##@!*bORPgy`#(JxT+ZY+7P@;m@l=^R=q7>1)E!IYdGzA#_BEQ(8 zb88&clg@*guse0KCi`?#g1I9KG=B`1UzIV2NT1#mR^OCxydwGd<4=stme_ zQPQPXq6v!t=Rij7ZN6fYH@O&27Dhmw9$b7?FaJ7(+o%q)fHM0K3kSw07Ht{J6IROI z@@}=Tpa{Vs<{4FI&WDQZV$76yG@C=nnlfqcEnRxF^mS55zg7UKSGpO3G%j6Oi+pMr zYm6nm6k7}(NH(*0|Hy2Okc=rBl|RRYl3Dt=hgf@04|9lv1VWq^w=N~t&U5H>H0MX3^nza`LM z=IkHu|C?agOmQhJRE7tW$b21BP)S#`N2$S$dO%|jT38ETK9o1BpEWT- z3lSy+2nER)nu0!qA1J`fIVDGO?G$O^9K659wlM8XaP#}j79Mv@Sl2ApszCP$>;HKO zBe)UDu8N^tc3>L?Qmb2{Ps4Ms4GgR!;HcHFGKoU?v`sZ zh}Xrqr5v2tFykOfSsO);n9M8iX(fP(Vp8CX<{D0={MicgSjy#R*#MGce2Z0a3fLi+ z*a)62J!ne5-c zqdk}|EksD{I1y>mDI_$*B>z_b_o>c)eF@vu+PA5&`Z7?<$}`I79IkM$)t_kC*p z?^3uqDIUklAmi3PR?(|%0{ðAhU(%cV~y9PHV-cxLgqdp&OwRWLS-<$Xg5B9tQb>{b`f`D zPzvLi6iF3I5*}>hETm9ta;~z(?fI7xGF6aeM|bVC$`Yj^&_oUU#`6Mwk@GmM7G+N^ zMF{yJ^W&7oE#tJ(3Jb2{lQU_7J}!I1a4`c~A$x$$&f<C(}v~W z_%17EJsemym5JE4Tnr<)i`%E0U!>e+$_VmDHDZryx@)^+g_5knf`@rkQ3-BT?pjvM zdAug+#9b6C!h$`yn63Z|u(7119!w$}ug>Oau8R=UGHJ(HkX4!;gejO~%rys(b6Ao* z%O+ugUglslIO!e^EqO>NkGCP(+T;?Grjn9}teu3}k&Y}ehC<1bfTX~)V#Y|p9w~gM z*FMg}d-Bhexs^C04}6IA4lydt))+{UN}lAgjo*f#g)1PQC2R<1fCyi-I(O^z@fKD> ztUJ|On1eZY^l*t9206rI6f-F;A}H#uF(K!nG+TJuw+NN>Xu^Xxf}LB22^Hs165~A< zC>%%ze1adIabvO)$anNCai=(`nl`klp8LJH_na5@A>17Bk-%=q<35M5-ZXuL+Ss@Z z(Iw`txR2n=1Dlnvn#~ww*shOkhQ>#{nn}SQ3BAw^?9OKnA$QBFVk41SP2}NU&T4D! z?B0hmfW?aq)2wuXZb$?uoDA0-klOSyW6DE)KJ+bi7%DwV%`IWUmVUQq@;ujMT zMU6ovMQmP)#NonXMT1&%J2Pwb04&|`qXIsH8@5M@u;6n8agh{riY;zKI4g&X2W7q3 zOb~tMzVc+XK+W{&2ce`;1ZAJHQbcJ=pWWi4EQ#(Uj*VbK$Sn2u)WU~b=(l<%)`OnY zy+%FKRwz|d>`U-cgQqK*kphe-&D1djn;340nhKoaA!WV5UM4!=T_`Lxb58fmV_0=5 zY5MM>#Fnrnb{(Qzu@W=yTo9KwWE%VZY_2(nIRs-82NK_B5vmWX?6F`RTrCcwe5GLJ zBSd3_26uw!$x-HzYCOg*4j=C|o$11;@M(mFf%|se6OP9Ni!sM8To8k8tfXuXB0;8T z+6eWxC9UKGaw-);l4QZL^9XN?V$?2?BFKMm{(!J3IXHeiQb_)A2}EU}F{z99k|KqB zp955wCSu01QDU6*obL-gWei(2hicHJ2+Hu;#4$o(@S@Umkz}x(<@SJ62bE3><%b7- z%Z(wjgm`@@6IrzAgvC;)SH-T17;Tx$e(Y7sF1)xd@oTHA+%Xlp!gbh>$3ayl0#ORZ5CvF?O7HnLy#m~ zGY7>7wM=Df!Py=ZbgZBXq0v)MCjQ%cQwEV~NaQUurps2WGE^m7#de^s+Gm>Ex5b+9 z5Mw`9lGahNuy!R&iV*IDd-@JUw1kZDWH$g}ZAxYAJm>>OW3~kbjKR1QVTKVREM9K0 zG9yJ`G^j)jW)h28glb$_h4yDc$WQlI8+&FC*=fY^uh17tb?Xqz)5t?+kZ2B5rtGuN)Z&3rZ2`!f zMPga(h$EzMZEDX(Y`xD)4cj+S;bSp#p^8aX&aTbk+*4qYC0on-L-<@D&vGCoDs%Ao z;%*tDgE_PUi^n+2o9Yo_i-%h!ERWSn-O07gy?q?fCLKzOu+OL=WJ$z*1t?o5B_0U+ zvTn#T>n<8-a3BRfvoc%A%C@Y{%KHdtBA65J_ZmVr5KJHx5EfWcyz^zdN4a3lQ}o#i zv~ic);)1?aOOxhinM!QEp^~~}N6WeNi7U#779E2z7$NUvj|WN8j+)Y^>7r;h@L+8! zGm78(SGbMMo!%#fqU2)Y!NdsB-V7p6!g60oII*fS$M6T|r>G05!dsk(>&4Pn6iE8j zYFH9^3srIQ3fG7!&?aywKh+fK=|qEPEK67_gTw>P%Q;hpMDXxz_7o=^6=Ay2ic7|& zvdW}zb12Vx%r$)O5%QDs1*v1T%xZ>J@atbF+5jMD$Y~a{14f8GIA$YgNYl}?>Og|v`L9lMOOpO>?So7GG zK{H8Nq&tON(tYx^j3-~03#n-7* zEpyxC{h>ssZbL^LIai8|oLHO_4@N^ukQ73pDMHgc(0H7QWxk$$-Dj%<8I%Qi)9C?R zwa+w}mm)LlLoy2=lvd4T|cUzEU+Hwr6Qd16bdRD9% z=4b}qLNRG8B<$P1m zc6#_S?+;oIbC3+hTGB^0Bd%o4C2iaK(r9o zX4tTBBQ!<$)}R&EA#uyQWkHJYYQ8<0u9z!8q;-}>IWq`1#8|CFMMit}g(GvYRy4-I zYVs2eZOskeE~{8-7EjoFkisn?Emz$SqA_4R7N8bL2DPv*AZcO{aSjzGk_2AD;aq!em71Eny;dl2kXmr9;!>pID+@$%wrLIw zWE!=UZ|31%?!n6PjP_wzqv;Bnnn*>A3=g6&y0J(w_7s=Ah3%MBKgCUv;vAd`*a%aJ zPb!FL@_o0L5F(=AW=Dv9_Vk?mC)MnG7(sTDT4Z}X)q5DhOf3yj=>;N>`zFht1Q_=> z*B*0l(PFF(Q6N55w1<+Dk|MEVv&uYZR5y*%4BGOqmrk}gP>>A~ z54W`1Tyuz$dqFE-^a{e<~t&^-3 zR|hfWY4T!SpKC4^cS}TpqKP$IV%e@*wx+eTXVpXSX(CAYDME|OUY&a-8J*RnvK{YY zq*fqO%N9;i_X|8yE4(f}>BMDx{3#3VnzJz(rHBF6W2|JM3JPgK%PKb`q_;Tj8~(8S7xqb=>y?{BAAp$a0!$hR1u2_ z%j-%BW*6Q8i;7gvpC8FwdZN}@#zIKF(V&x6#KdBWn5;d`83~$^nP~*gAsYxR8_k*) z_YP)60`m$7L6MfX?FTxIhZ0>Ld`Q*QAoAhUVNY|{e|BL`z0k&xUt?GNA{Wg@Fg?g2 zr@2>9d`gLjF+yr`tjI%}i7ZniAcc?Nj%}lOXkeTfCir19y!%l{W&LtKBB?5NDm6$- zO;Tx!4k~+SHc}{O%u#(NzE5j;--|(aE;sA6RMh;*w1>&Zi}q|=LFsBWK4E!Lws3%# z2%(hn&kqx@;FK)VVpO{8Pu^wn#9gcq=8J}5_BB0Gx^-d-B2F0|6n zmMm$NjeTHc(L_d!=DZn&zjuNf()BY%6dQpg^-|5sqnhC;J>s@TvQS>H9DqBjcV&EFFmRw&-50+c@Itz}>+@ostes zrme|XLj{Vrp~WgOyP=qs*iY(P>jj zE|w-k*3h)(`1ck=6_W}=2_xORNis%Mr$2i(^hoO0P%P!h9^I$B1V3=bKCV#>kWr^a z+n~y0^wWJo7dTZ&S7F{k{16f{SPI$aNZu$t$c!{*LCJS>_$ zXj{Bw2FIoAS@=WPq?ah>o^j7NYjcQWO!%CgRQc;9#RNk5`(r9B@2%rF z!h|26L=>~**NXe?7e`2Jj2kLMKthK_K-aMXO(EpJcUUh)rlUHC+85zEP5CWfoylc*@Z{ypHm^} z#0RQTG<*D##o_J+FXzlET%oac33<3G#9Za9!?8t=*BXqgB9bDe%zZ4)D1oQar>I2* zS`S*-LEL-}c~f4g&-Z4Nh;t}QSDtu0@==BO{*v=h)L|@a%WR}9_GJ%kgtE7fKP-O2 z_*Y?s@qZ{glQk`?th9%&FR|OV4o#WCyQRpe#t;HrgLY-rcbTbPynL~5a7q_(e0R!m zxf&}thI@#^PwWQgwvB`3vdrQL$*4o72{Q;QlCV9zC~UsiMIamHv^awNf@ZG4ENrzJ z5rE?VsFzJHiIx)BP@`o@w>R479_t>>W@TU2B^D@W35$wL{`gCUsUJ#ZL zit8C67THdU#ajPW6PaMrXr>gEUAR+*2a%n-BIZ7jh zfhKq=v+?X<93gvd^4HmNrF?`5yql@HM~~0FafGmLt(4y5xd{X;j=&htqfN>DdgSCI zP_tHO**VxWC#hw|i;^9|LT>n!@r)@aRchH0H2$PiL|(&l`lY_{ldE*bBrN|!m;)c} zIfL)p#sn;{@LZiPCK0d}_?O)kE7MvpdW5B2x+`bdIz_vrwj7|iwjia5nWA3I@b+?mIwcPU9ZN%>h1r zM@Bmu+DNe)J+sou?9AEA;s`cX*JGuC8qS5ygv>@jafED?MX%ZBrcqMr71x5sL$qoU zlguZT&)Ua}l~^=_%yV`QWmb^YK*iUtmOYG6HsH9!FzTL082`apaV-#`ca1R4AktdI z_7#h_XT?iuUIw0cf>v#I$NoO@DK-3&rf8+4AwxLuz=QpNF1Mo0Zype{Y6^fflOn8g zOyyFzua=}e-bkVFV_V_M-*GoE=8fV)MOxGnT9-g<4py5G z6}))DB3z+XNTkSL9v9;A-bhgI6JrG zKt}L%f>Xd?OeU7P$#EX2f)AMjR0in#JfT_M^cx{e6`2hLbE{%`%d8wsF2^5=EMqZ0ZG8t9b zZx)GeCH}o?LFCA!LX>@eF_(zdVu4yYKyY@`SIXU`{5Z;4em)*gYE9$z-D1zZd)D}S zn#1IuKiLR-o<|&iqB+FBPyRg72z&SW6G<`o=VssW+~<((U1<*Gf1mvLxy_-{c-avu z{eALt*%9`h|LnMNgzUNJ_BxC(X{QMSF{hu~2#PM2vSO5=kS`k{e3a_m*gVvv$Jp1N zwG@avSbkMJuFw=3ec_-UY96TlkrB!`uxVIa)-1y9l5D`y_T5+A_f21d-B%Tv&B1bW zmaFo~l>SGOQ9ggx9Eyo6o3uPyhs}WFCT@v`J)2XdzlNDlFv2*wvND#wo?wLWpIIEU zOkt%XNG+C>P=C;$m7!W-u@I`*N=F#~(c{nX5$uQrGs!Q;y_kFiG2up6+F4bEmTp_)PVRWhCOEU{&hkIxM*n#K z>6L$S`HY_X@#KyfHiwpmivg!D&*k>#)2ICXCa@W70Urgof{%fZgHM3l!0m}4@AFB{ zeG1$GJ`Fwt?gU%GXTj&d=dI5fJbItIIQIqcm*9)wZtx}WW$;(v9`M)J=lay=e{t?B z;9l@m@HOyt@D1=c;9KC^*5{to=R2Hx0DKpG4}2f|5c~){1bz&DVtsa{J`Z#5XW(za zBVZfY4t@@Pk(;suj&^LeK2!Gz^6Y@G9q_dSzIMRZ4*1#uUpwGy$L#=)c6`eEtVn&} zYX^MofUh0!wFAC(z}F7=+VOb+M?1b?eKw{(@U;W3cEHsRxY_|%JK$=^Ujz8r0Y5vw zW_|8Wec))veE^YM*`rMfMAb&OTS0jHlvR5N}HL_PDdo{LEjcrta&HCJz`oKXo98|+W zH5^pKLG}Fro2mXbz(%USYkhiCANZ+;pKAE2{sF*lsH}{z@KytFHSksgZ#D2%18+6(Rs(M}&fCnXfrA=&tAV!~c&mZ88hERL zw;Fh>fwvlXt8v~|r9SXh18+6(Rs(M}@KytFHSksgZ?*7N>%83@`_#f)ExgrYbG2|+ z3wO0}SBuTn!e1@?)w<6;kov%7EjCw+&DFwTEgaUuVJ#fi!eK2O*1FF3x~CESPO@>a99h6wO=u=XYU(0sD;m3_^c&H)xu#d9M-~NEgaUuVJ#fie#`o- zPJQ6B7Qd{8(^}$HEj-r3V=X+^!ecEw*8a%)+>-jhX)T=A!fEYK0X){iV=X+^!ecEw z)^4{x52ikFS_`Lja9Xz+z+)Xe*1=;PJl4Tu-6yQiPzPsq@Kpy_b?{UNPj%Q@9o*ExOSece81P3i+rb?{UNPj&EA z2Tyg_S{>Zf!A%|9)VaNFN`2s|4xZ}ZsScj%;HeIKtAm?5xT%AiI=8onQXhD#gQGe) zs)M6CY^@Gn>fogwUh3hcev8fRiP)zej_Tp49**kas2*FZhnISIsfU+(c&YdJHjgC7 zKaSz39$Tx2r+RFy9*28eUh8vf>I0wk@L7+o)x%*u9M;2OJsj4fx{+4(s8t z9uDi_upSQUAF|JRGWCJadiboz*6QJ~9$Tx2$9j0IhsSz&tpB<7Suibf0H+Ob+5o2w z*jfWTHo#*8JT|~%13Wg|W_{MiJ`Hf%0H+Ob+JLP!z+(eEHo#*8JT|~#gVz+dr9SZ4 z0G|!`YXclMz+nR%Ho##695%pVgVz+>QXlwifX@bOvH|`Y;I9Gx8sM)1{u`pK?7ViV2=&(*8qPF@Yeu;4e-|h ze+}^0u+93cOMT$70h?@qzef0Lguh1kYlOc>_-ll}#*bT{J7S+kxNO8G8{w}J{u<%0 z5&jzCuMz$l;jeM4^?5Y)!6qBwvk{wYgu_NSY=px`IBbN&MmTKzvh^8Fec-bZJ{z&g zMmTJQ!$vr4#10$bu@N2{@3THjrUwoh;j|G>8{xDOn{0%~MtE$5$3}Q;gvZA3S)UE5 z51cl_X(OCAVv~*V*a(k}@Yo2Cjqup`u=UxR`oL);oHoK~BR1IxkB#uy2#-zh*aVMF z?%UO|PZOLr!D$nmHer)ZaM%QIP4LzPZ%y#lhV{8N^?|b{IBSBlCOB(? zvnDueg0m(#Yr^)LzHfc*N`2t03C^0}tO?GV;H(MGn&7Mn&YG~jrk`1#`qT%`n&7Mn z&YIw?3C^0}tQpRl;j9_kYyPP9c{cWGhO=fkYlgFCY_A#Knz6lRY_A#HYlg$-Pg|em zGXe+A@YxKX&G>OM95%yYGaNRy!(p@6eAlHu@Y#$VHp6K%w$}`g&G6U^kInGd z43EuUwa>Xb^?}o7IBka0W^At+9-HB@86KPAu^AqlzhixxQy(~OhSO#^ZN~PR;jtMW zo8hq;9-HB@`N!5LcTkiEPMhJh8BUwAy=Hi9hR0@jY=*~Xcx?WK^*JN~GmZnr+yr#^7n0;er-+JarSz+($Mw!mWxJhs4Ni^s%!QXe>N zfzuW^ZNV;E;IRcBTi~$;9$VnC#be^G)CW#m;Isu!Td>U*cx-{k7IcN477C3Ez(-t^w!8Tjqu>~Gm;IRcBTi~(9*BC2OA2@A+(-t^w!8Tjqu>~Gm;IRcB zTi~(f5&N8tsSljCz-bGdwqTn(;c+KC?u5sk@VFBmcYe(J+#CDsgwvgHx)V-!Vw*eR zaVI?PgvXumxDy_C-f4Y0Qy)0piQGGpXD9OPM4p|~xK^>be8gMM1kPb>OqML(_RrxpFQqMugu(~5ptT|YOb zKIo?v{j{Q=R`k=#JX_IEEBa|gKdtDe)%9~<>Vtk-(N8P#v?5O{^0XpPEAq4=Ppjl{ z{q&|j=%*F^w4$F@^wWxdTG3A{`e{W!t>~xK^)q8;H6XKxC;*3Joerc`?SGj8!@8|{@UQL z4gT8TuMPg%;I9q-+C28&pZdUM8!@8|{@UQL4gT8TuMPg%;I9q-+C26Srao}lM$Bk~ zzc%=5gTFTTYlFWw_-li|w(pzm%se!3&<2-n#EdrhYlFWw_-li|Hu!6Uzc%=5^Vqv8 z^?}PaVn!SMwZUH-{I$VfJN&g{-|cYN?y>jg*ry#n+u^ev`)-HBb~tQ@!*)1qhr@O_ zZ2z>)?Sa$>KHK559h+>&Cfnh$9Uj}^u^k@U;j!Ig?_;SCoVLShJDj#-lkM=>4v+2d z*ba~F@YwFLclNBnK|7qb!)ZI5wquj+@YoKI?eN$RkL~c-?y+}u>I0|kaM}*1?bu{H zJhsDQJ3O|-V>>*yd+fa>^?}oNIBkd1c5Jd89^2uu9Uj}^u^k@UJ@!5r`*gr*2b^}m zX$N-M0goN<*a43n@Yn&59UglhPkrFD15P{Ov;({BfX5Da?10A(cEys+5x8>aN2=wcEDo?Ja)ii2RwGbW5*B74jxK<;IsoyJK(ef+w6eH4tVT<#}0Vx zfX5E^?I%(nIPHMb4mj<=Hap?56COL^u@fFU;jz81hV;4Mj!DAOZ zcEMxU7p%{=)CW$x;Is=)yRgkJcs$6Yiw+MQbirvCoOZ!!7q;02k6rNC1&>|u*aeSWKe9gSQXe?&g3~TI z?ZP&@;IRuHyWp`49=qVNYrFNiBlUsPE;#Lm({60D8y>siu^S${;jtSYyFX!l9*upv z;j|l0yWzAO+w6wNZg}j5$8LD+hR5#DTA$I>2Tr@;v>Q&lvCVFH?1sl~csiu^S${ z;jtSYyFLGGO?}|B8&137v>V&(hR1Gr?1sl~cA*rx|hd*HMOPJ6J;9(e45#~yg>fyW+r?D71wY;NG72Tpt7vI0`eaM}Z>J=kUsJodn24?On3V-Gy`c>cL7^?}nK zIPHPc9&ED*9(&-i2OfLiu?HS|Jpa_EK5*Itr#*1mgKhS}V-Gy`z+(?Q_P}G$k8N(x zrao}m1E)Q3+JkNOz+(?Q_P}EgJodn2kLRD|M+6Rf;j|Y{d*QSf+w6tMUU=+<$6k2s zg~wjcKi7pm%lOo5!CjypJPVfZlgnKP?gq^uSCz}10j>x4fL&nflw58F*a+?gonRXK zn&*KV!F`|?%-A=VTM2Fg_k%$&lYOsM;AZducnr+mKbKn#ZUGO1$H83oMb>~#;34n? zn0G)fcO|$LJPe)$3s^U=1-F51;Aybvz+7$}xC1;2M!^!+VjI9#Pz{~|%UGLS3+@8- z;90PoTKzh3H)sYq>ee&B_23?`3rwYsTLCtLdqF3db|~_L8^L{`7tA2fuLL)N`@tZX zN#0upZUzs4$G~jzz-n*{cn~}e<`NgzfKA{b@C2AgoVXI)3LXYef(7`^T5ucK2A&3s zu%mV04)7=#1xwKR2Cx+%dhYIE15cy9O z@ugmTsrQ@qIaBAw&%v*H@vC0^s+aiGi!b%!OTG9~FTT`^FZKSw`m9KO@T*?@su#cN zB|i1yOTG9~FTT`^FZJR}y_);If)Q2zi;Y)oVv(LFV z_UXf~`tYkh{Hl-m)CZ4!@Yn~Beel=^k9~JqpU%_=PW#}r4^I1tPkr#%2akR5*awe& z@Ywey>oaYB;Ghpq`{1+>PWy;Yeel=^kA3ji2akR5*!Okob6)BLr+skR2d90+r#^V> zgU3F2?1RTXc+ifzv)X?Ss=k;!__y_Q7KxJodq3A3XN`)cV|)`oL))oc6(K zAMvRV9{b?24<7sAu^%4$H(Q_H*ry*(`{A@7PWy>Z{qWcikNxo250Cxu*#9Z(GvnyM zK|h@K!)ZU9_G6p<@YoNJ{qWcikNxo2{{`!_GWCJeemL!i(|&BTA0GSRu^%4$;jtec z`@IIaDfNNVemL!i(|&BTA0GSRu^%4$;jtec`@dzMbARdsr~Po+52yXuWofD1$N`-8!|4E=4q%%D z@HhaE1MoNij|1>H@Coa)D)t$G(*ZagfYSkNa{wL(;Bf#R2jFo49tS>aeQr*D;B){^ z2jFx7+Z=$$0eBpM#{qa8fX4x^K^{nb;B){^2jFx7+Z=$$0eBpM#{qa8fX9Jv*ylW! z`oQS`oDRV00Jb>*j|1>H0FMLkH~^0W-?u)q7X%Il;B){^2jFx7+Z=$$0eBpM#{qa8 zfX9KKS)bLZ51bCb=>VJ#V4DN*H~^1>@HhyMgYY=`QR{O{>@x_bgK#C zZ4ScYAUqDj;~+c^!sFmqt4#MLgJPyL+AUqDjIocpQSqA$T16Yx|rlQy(}Tg3}>59l|z; z;Bg2Zhv0Dt9*5v@$n(#wsSlhE!RZj34q=-^@HhmIL-05Rk3;Y{I0`ka5@C1L)hjpJPyO-Fgy;!<1jo9d;VE)T;O0B zPKV)i7*2<=&0%;PhR0!e9EQhXcpUcpvo`gC(_uIrhSOnea~K|n;c*xqhv9J;9)~^u z+?M*l=`frQ!|5=#ISh}(@Hh;Q!|*r^kHcR#uD7K=a5@a9!*Du`Z4SfZFgy;!<1jo9 z!{e~$pQlqFI30%5VK^PeHizMH7#@e=aTp$l;c?jW&!R<<12`Rq(_uIr#x{rHaTp$l z;c*xqN8oW}v(0T?>@xzVBXBwbrz6VM?C*Ln)<-$2%L_<=?Jzt0*@o`I0BC&@HhgGBVVz(jix?uIs&I7 za5{o*j=(-Alw!8S+WaReSm;Bf>VN8oY9^Uv1Q2Tn(Rk;~t;z3L8TT^-Kr_->8|!*Tsl z)X`u$HP3b6ZqN*J^Qoi3_23?`3rr;+t^gasy`U3JBR`x6ZUpy%UNB<;bu_pM+z$r9 zOyb8Xa5H!SJO*atPpiQ#;6d;>n2UX_0h_=>;0Z7fzOMwgf``GAU;*=A3vL73Kqq({ z+?V6;JhLRR<3;$N7)=xqIR{j`bN2W{&gk+g|k;<3AeDUGMMd%pB*hW2|epS3Sx59*^fa z)>zMGj`P>}=gn9W@8@E?IL;nTwZ?EUv>%eQlmEcv|tEN_ABk}JX=dS>l zZ?Brk`3>g`qYIDb<-&vE`z|NJ}RIgaxegA2D;E#bZQ#`7HKFW6qC_3y*+ z9LJKUIdhzU8SguPd(}$bHyF=zoIlSw8;$2UR^MqS2Dv%TpS!(k4gKcEa~$hE%QDCL zbGBEl<2~oaa~$hESB7KR>C@QPR5)G$mV;GbE!YS)fxE!{;9<}V2Eizp%G~CHGr(G~ z5!?#y1`mR2&i zvopu}ZQIPo7R7USZ?pHT$QKs?W}#;eX8=Rdg3bk`Zrajf?|kvYzPfU$1c zWX)uj3=7Qy5C73n^{&+T>@j3bTZmYVDbN9w`9OrKY?*Z@LR&^JDdno)({T~4J zK>I(t!g;+fztQ#ZL_Ei_WOz1noPQVZdndSITh)T8$g?cW<9g1$9lULu`O=bjp5y#= zKEIXm9LE}WZRR+?j`ytv7jCOs#<BFVSNrF!j^{Yezv>aQ;SKTJE4|;1ndAH`99=r~`7OVxY z*_wL-eO-?}Ebd@4`AZ)0{I@)u<5+gIEOVT{*!|+Xc#h-zD!0EY<2jDi@4C!!{^jl$ zH^p-t>piz+j`J7!ICsZ$9P2#~gk#y*B3_>XR)Y;-BiIDCg8RTj;Ai_1b9pwo7$d*( z5sRl!$8#KO+^MI9_i&uQz(0F-Jjb!#vm_qB%#T-Oj`QccOsnHLj@4&F<~V=eBUZC) zjORGkdp2c`^XK|FTjM#7^`85}v1ED{%;0zdSPoW#wct8%Gq?@h10Dcp?*|V&oBWKG zKgVTzI-cWL<4-+3yoclb*^gBHjDEA@Iga(7C7I*=3ZLhSc#dPeXH7WPXFm&OaJ&F4 z2dltZP{Y_8c(yswFMk$z=_6GabK=%`o@0%7Pv$s(rrYEL@f^o`&!d^+{28v_UGW^p zde7sTK= z`IDWK$KyGU^?A=^j`Pd>J=4wz{W#8_1Wp7eJW|!hVDsYNI9C4^ndAIo-go>XR@1MJ z=Q-BT~7|(I6_uQH}&M)+wcvn2fvEFlk<~Tp!?fBt%j$^&2Idhyp+{YP= z=Q!4To({+2>S>VUcs5uLR)TfldTX^JvET{(>=xMw zvaI6#17I7-f1cQ`9CHWwB)A!m?2_ph(Ye{#L$vd7~&j`KHwx391I-T~+`o_`zX zu3K-hZ{}H{KgapEfNR%R{VnfZ6wh;HDU5 z{6;^%H5^O7gUsh?FpYEbz!_jQSO+$OTfiNlmigSpv)KjDvWw<$Ed5vWx)Y?jA?o)7 zaQ8m&UJ!LG{YuYK$I@-AC8Sf;6H%{~>Iv!fDsVZt6hz%gZx?`<0qN`pjn8j`Qo*Tdh9r>@W_;de6MfasKt|&9;`sa~$Vi=lxd3a~!MR+RSnO)x7U2@G9`i z^;L5YBv;43bDX~dTm~*#Uv(URyEXoeV~urhIF``Y>4ML)_ZOY$Cz(U$D6{j=9}a70;}(( z--0pl8!!rf4Sogw3p@>;0{;R24gCM4-DTWWRk#2DEn(P!v!>N)Q7Cl@$HGC*0S4_TO`#a~}L3d|qqqwdR_0jPDq8 zu3q~GoE#8)=1%8c|I+B1Hlcqd*&F(ne)Zq%4YtPHnab~A-<`M(!N!}A9RIX4*cNOG z_MAbm=@KMVOCyn1k7vfe9FkF&K_v7=(W4gI?%?Zs>|G=!{P2hz@9v=4ghd zXoALQgb(l@-bP*2L2cB+Td0PrsEjvIVLewRlXyoOg%5-;N=lt6J5Ls2}BB6t?h zpb!coAD%*9JceAziL7`K4YdvB3@n$frL z{6ggUn#i+C(O2-?bo4nq*B^O5BJ%D<Upy;NA0UafsLbUz$hDty_krSc1h^ zgoT)enV5m;n1-pCj7gY?2^fd57=zImg^?JJVHny!_Ru}{@kQe_2|mPY{m)$b-~9Mb z`LtGjA*bk{lu!T7wSZ5B(s-AoPQO=1S-f z!T$fGf5>;a{cnwfuA%KYn2jV|r4yJg&qtPbKzp=7YqUa3v_O)*P0cq!u)7f&q5*;r|H=M3me)j*{ngC}AF3euP#H;n zywN{4ByxORJkE#zN$;R_&^XDjBz=Rn!H2d;@*~*a48hKzbI|xb1dW4zLE|JFlk7{< zIOxl+r~=C3HPAXLg_0RUX1fAXc+YSXY7MrA^vY8 z#6QWN|D;#2>2;LDzj7cdZ9drc3SP!b2sXZmVo0*Hu=!wXAq0Datxw@eJb_^M<9HM~ zkp-FYFdjlCWJCs}$NjhuX^{r^A|>ud3fzX9kQ~Wy17i5ApZz4R;4&`ZB2M><db{;b9Q7yushfsY)pq>XRt9fQsEvX z*?O1xVDBBc9k(FK&a3PSww}iy_#MCDEPllqusix0Kj9R9z)76IF&xEVc&;Y$yi(+O zy2vx0k!O%2&-X{(m59EC_jw}kn?>H+i#~(zY(!h&8#mELtj9X6!Ah*aaxBGSEW`rL z?-#ozjq4imI>p=ii!w>}{%AhQ=3wvlIF2N{kC+d(A4IU*GnLnDKVTZ{54H!pz0-Bg z_C2P-e(!Ha-VKem;-9v!vh1JsFR_f>(LBuV7u(PNAunH#`?WX+P5)_E(DR@A1v`@3 z-(}u=`~TK)gZZG}TC7IA9YMoj!(7b5OiaUgjKdfV$6yS?K=em%^h7swMHh5NN3=u> ze28XfipFS!2B?pEsEazNg&L@iYN&!YQ3-FL0$xWMyoOSE1tsw^Uc!qgj_2_#3ZoDT z;A!MXzJ9TpX8K-ZsvpJG%4K_AJu=4{1JKx8WST&CVw*```4>ZheSBlK#QApnI^7?$P~7hhS@J1Y1)f-qySPPJugd2X4cy zxEVJgIc`KU+-Vz_Y6t0^98g;@S8el%`)YjN zU$y-OoJZ)RA z10m-_u7^BN%JE=N$m#f4ha3(zg**C>1OqVueb61<&=p54{4DGsgVlzASLd=t+=^w>t<)=KqsVk>$ZJK23SheX9y_e#GZf$fXdc|CCQ5PDwEe{)HG7 zLVS#p@+&H<37>i@q~I-7$yd z-zj?p8NSwckRF+l6{YYhp24$Ns;;+eQyaB#boaIQMuboNY~ggq9Dclv z#>jox`J!cO66_mHdn(g4U2J6*?}${6t7D<<7h!lZ`_&uNmn_!XGyNIfj4M+vgK-v> zKDVz)AFG9piOy01`csDRyI`ceoO1kw}X~S|rjUkrs*CPNYX7Jre1WNRLE% zB+?_19*Oiwq(>q>66ujhk3{clCDJ63CW$mjq)8%85^0j?y|+Z~XeD|_E73bziQdsl z^o~~IeEApb@Sav8y%On_NUubCCDLn8u#IMkG)tseBFz$MmPoTinkCXKk!FcB+e5QG z?B3(uwmo#)L$^J2+e5cKblXF>J^J$=@3!snj^G~ev+eOd+aB+;?HOQP&lF4Wen-zL z|CMhy?o@WCvO7oGzn-vvMOxg7g5TRmW7ctf7TJ&)e;m_C&<9uK{%M@S&)9}Z_z1sS z-|8!U1AAz&h3%W^xSc(lX}U!`Hq&hj%{S9<3+*=3ZM&Flrr}n$Z>H6DvD-|ytzkWF zwu|9rI&Bxf?P9lG+_sC^W_oQFgHJrS{j>JA(q}78wk!L|L^jHaP71iSGsXEj?6O~aBuc8!Q#!D!H7f~F= z@H`5m5DFq6p2CxO0*~V{greX>vV-hA}0t!76OXYom#CUt28|L^I zg;59vkRSQ*B%VNC}jhuJ{IglNh@em%w1IUPPABi2)R?Ql5zOS)-HCAE;mSY)~ zVhI*w5$0na=3)+JV+N*UDmvthE%AK$XYq9xA1-bvis$hhir`rk#xp2@r;#7|@Feme z7jhy8vLP$7ATu7ugUE!8xF7c+Ez%%0BBa7SNQnn?#kzS`KgU~fzR$OO9_C^;W?=@V zVJaqJJjP-u24f)lq9=NwJG!7VI-w)lqYYZ21)AeSG(%%FLPIpb2dIzt@Gjm)UDQGi zR7W+uiOQ&i3V0oxa>Xh>?mRr+r*oG7iZeKkU+^=2!jCwGA8-=i<2a7tFuda%9l}9) zzd!P=gvfU%q66^Fq3A1oiM@DjrM}zB@@4#*?RdoRA@B}!bk_(r;_Y77b0{3YrIjNe zjjpv?Nd88`(xqtYxM6IwOvHH1?p(|-Cvu)}84t=#&PdV0Fd;IbZ*(jXzgnMnL)p4|& zoLdvi?wRE=HRE!(85^6RF&g20yoa|@7j;k@HBkfAQ59A2CMu&6LY!Vl@VP8r!>cHb zS5OKi@gj<&7>eR~JcnoT4DRi1JZojFN+7VGnR?HawEpM#?-@cZ1_#1Uh3#CF8vo7v+3Da zY_`g)H^gkqNBSeWG?x35jZ&ITm2QG-XZGQb(`}lZYa<_?$7B3Fu<`mB--@m;jE`NE4_#}=<%4g- zMEl@7b=_+sL<;qaE;l{%8yQKSs0(8?heiuoi2u8mq7pE3h0(u^7I~7-gol z_x`V4pFP9IrTji6R%_{3ftE=tk)FV`tYv*|MXvQLq#%HPQDi^dJ#>5F_DC+efj z^S1BEk37niUN6_!JwkjMYVUTo-)sFMHdA7!KO#6`Y;8~sJISNMLk4c}WCr{#q2D}0jIz0$gIu`b8ovM7U6cm*Z# zGG0JYJcnmd7zI%P`H>G#AusYEHy*>I$cC)Qg3Ndr58*+CaWoUsBLmVPHSR@?Rq~p@ zwHI60PM@IF)q&>aZc)Bgl`oC;iB6Vh;_HKAa7%mrmw(O0z0f501Z>-!mgy$SBia^G zCg^)7-SW}!5oOltPvLpix&xnok{z}Jp;__m#SS-Rq%)?yF z!7NP2G)%=5OvWUP#TbmnD2&7~48>p!!p9hh0qBo@=!-t6%UdNf=Gs173%O+o8};jMbo4(5(M@C7OS>y@A0*fKH|Sf>U(Et#CvgZ e9kOSF~4Vm#U9>fF4hzz(N5mF%~?#5lX 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âNRBaeOupB$CO=IotScCgV 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

        <0b9nZ83-IinfGfqZTtMBp&WoVs_ zIF{ajd2PS`Zp_cbS?X(To*nbz9sPyTdtczW(T567epNfFZ;gw4Q+x0G^bS<{;P!RO zy=nNuwng`<^(}jYx}1Lf&`*o8&yoAW;AejQ!j`MC2L2zf{;mPFgLdIL?)S~v)vU30 z!M+Pv8@`P7dI@WnuyzS+m#}sTYnQNg32T>pyo9w&V}EH+bvJ8rZ0!=>jBE2A=BBRF ztmAeGZBIeqZtXir@74+7-XA_ zAKu^5j>JRs^gI4$9dQ>;hOAg;YV;M?rjGs!?^|d?LwD?7cojKv7CFzV^DW-#5xWIinyfE|7$}x7Jsj+$4zkPsy!&5jEgg%?}#U9z(wpDI#&I)7;W%B z52yXVxzMj#FK@;g_7#Y?M{AA{V8$@b>BTf zZNKB+6}*dz_uZdaFSra1mipl6edZ6n=Q4C}+$-A9z#hFSCv2fZ*fyU3v&;KW(`g-Z$(ebVHiDLh$0s!icFnpQd4XEymL8)1TN=7G642 zea`R38u+&l{;q**7`%o-8k=pbF&dlg#_x~X%?%9VS+yHudSi@6j+)M9yMe(Q7`!nz zv^Lw|ao}XN8}oMqgZ8q9ztL`Bkp5=7VIK|7c4JO%V2~DP8$7-n7*tOV~#u^Eqc zW6o~Ojd-Blz~BuG;)Ast7*zXibUND&4B~S&Ik0vEgEugE1B3XqO%ATfIX6AlZEyZ zi_iKnn|QeC!))$gO+LTr!)*F6+b=%<;Wo3 z(CceMf7}_^-QBvnLeYm%^vx9Ke9`Yx?!^F`Fga?yi_QvK9c2mD@T&?Omcdhf$Cg*C za(`k3_-f}cx@;}c*_pUYwi)YY$~sx~Z+iQ?JY~Ui%&MQk6RUqXAZpa|Q%#Pj;DwYY zK6<(8csKpL?_LsPf3;4(sUcWTMPEn3SFE%g%HTNQFtnjzPiLawF;x9)Rg6^dJ}S+j z@@-K(#_>R>+5bGpzM`heezFa$_PQ+!-0y(yNCZ19o zZ(of0>NsP}&s%f%%GtB)`xexgZ_UZLlZ;sZ)HyNk_&5YzUbDyb3jjQ z`vrG;V%sm@`^$LgiEZxnO;2pYr)_jr+b_8L1$X*lo4(jKYU+4??HAnrg1cXE_Y3Yu zKAGNXqqo}Vt+v65q_^7Wt+roqM{l*cf3;t*_Y3xZ!QSAL&|PhGSKBS@-NK%DpxyFq zaB}IdHo5AC7t?64wp;k4!P;oBw&Clov7p7;+$WpyY`5@duWYnfn>u^Dg+F?%ZRCdK z*4wT1cFS)%tL>JZx9quP4}H{j$L~A7-LVz_x2ah*S}g6J5BLcUr?}BbY4>cuXFH9Q zMkA%sNNJO0pGl;SN(%mMrPoyS#s?=n^J4Gcu%#Xwy^-~`xfWkW?^RLzt2m2w z^w@q=gWiMDdEYtmqw-i)k73l`>moa7*|b?$x-;Kmqk3rkR_{Gmj&v3`0x!LaGb>(m z8TwMo)&aez3C?m+cklBsL0_YaA&R|zVn66FuboNqP@}i#gE1I6P<`L!jkDnCj5TCT ze%z_w`CeSC`pI`Mz^^^M4&K>{_#FqS(OGY+uyg2V-R;|!@v-LnqP_j6x$=IP;7DZM z_~6#och#?%4c_?! zyoe#&Z&>*~;{z+>yjBBh^jI4`);98H@(PWO?KiCah7)zZHtv9QSsPu}Mw7MCWNm}n zLX)-qX1Dx#Gp~&fYx`~e!bB6-w%_cM!bo`-sr8i zM|M84lg4VJvD(C@jmB!zC(s^^?;~3u*}Ch$pMB5Ikq?3=Jve1(qS1ybPsI|C?uPVw zvLRmbdtF~!89K+b!>V|-I8*C0HH0}_8~uQF+IQgsHTuX+3{n>T?BJ>XbT3p-n>bTr z%)7f|)!#C)4@8c+sxM^P*+M6#J!ki#xJTVABhO>*C-$TIWXAKYIeSGNwJN%J`Cxoz zm)Ojg5yx$bzu)+M?_%n&@S~j}o$gJSFR9|zvdC6<%c2*zuKM}mmww@{ucX67*PA)H zA9L}-&)PSpFWqtM;qq)9ue0bqp4g}A*vm$)U~q2U%kLhV1NW6Obo%!EyJyt5&ZqfN zXW8eQXOG&S`a(N>9Bbg;_4dbqaSlAfI8EF32rqb0&3V)4**5p=rbgLl*|tZ|p<~Oq2HD%clD`lA7|c_`lnh*XmSMa zHtszcykNQ$p*xW&cPKiunX-q_naz|sD4p5RSId-p{*;(=O5RSNN9f6hmTYiPGA(y7 z?Jgt_k!jDT2^AVp!6AvWIW(YxBbI3~0qv*IehS^E(0t0Yy^-cqXg-DJQ)oVg=2NEa zchl^m`IK>YownajANe?^M_!KBQ`E9T>nV6my zOyBvipUzWvk1TKI;Nierixu$j3NBLJf~{|In(F)Aoh~#0%etSz@h#)rn=$_z=2#9f z`+i0axQ{dN!2YNgDDEY>gjr{79ediLd$7EI*E3kvxVm@olr8`7%$V3W>aOpVqb?(F zO{XmS2CLdf8G90bPyKT~K8mFe#VTTIwaj`qY!Y`k|LcZ5=$Uw)eqr#rC-(!ZzGLK$ zZ;gSPVc_7Z zT7|AvM%{#NRpgg53!5~nf+G`L%E+B$7S3jUKV99-@`$z zK{q#Z?3v>`-Q3X44c*+(&CML!=HP&4ZfNFa?!kwR>TX%#D_(GW`4jG*ihJ3zVQ=ww z(f`+Jq|{N5dVGkfHyfBqKd=*=zapylwFe{(0SHtLDH z*3#gAykWEZWOx54G$YEku~Ofx+kf&x|Nf7^YhWHu=HX=C8kmQbdC%0#ka<{9!w&l* zXPbHWlrIQv;?O3}JpX7C2Tw8cFf(s0%)<@c#aL@m+gOi>G`L*2;plVm!0J zKH6AWFiz$t3+!58*QnRi9?k;W7TC1_%QT0x0D}wc8l21p7+!#3{H!d%@xl)ub}qoO zdsY_MDQ3;WuoI>iV43D{)MZ0+IE!pvWV7C@ELvyckl^)Zk-cJzjNJ7io8|N(4$q>! zi7rLN>J?`(3(ofsYNy-w#&M@y!QavI8MrQDnV4qeXYj@|Wxae7`>cz1cEmgSqYG|Dm7C2RKb&uUm)&x3W!t%RDDE+j z1%E5}Z{^S#^vXIPd1^8Ja~Gf7iew z>@330BJ3=}&LV6t!Vi7tjMxodD}FDFuteWEi+o))UyHDWyO%{+T7>gOIH&QPMRT?Y zNAed@Tg)OHEyB?v3@sYNMHpIyp+$4Q$WJx@&~nZa+%LfnepKi-N8TfJn?tWTOZ=m8 znnb<`F|4u>Xl*E7;?*+&Dds-+a`qNouS z{R@Q#avl8u`WfmA&)v5_K8I_Z&T0$bx^G zk+0UrUgYa4K3UuHZ+ao?hWiY^i~ClE`>IA%X^vFdrR}B92hS8!v}ZeFZ{M}~()wVh z97CmJ5!enb%IZ#2p4j)7thX8Ce_$NttE(Dnp-B_>j`9`;KCn-{sMA>J_S?yWF;R;z zLnlKWu)TAC#}jYP`0Cs$?xA^VFCTqU@7dv9WWgt?a$;S6t`3c;19zs;`}@wB_sZ`r z`>0ctp;@ipu72AcYv4b){<{X$)d=vH}AmFRtGrE1pHi zI&`eFGM)pUtDYtAl~vEuUlP5eab5=JBXp`GFC9A7p*a?@bYLm^aI*^Yt9+7E$tr(V zjsL2(xawJ}=RTgd>UnYvS@lf$kI*0szFF*rp+T0l6(8%5&RA%Sg}zwU_%-+mG{&M& zFl(N>#wR*s8GE2yUDnt^Z!BuG8Qg(2SYKn$;2p2AV~rj3#Dw&)8Ft+kAJK+di#y6ZhP2BR*F|5C&pMnhs?Me{qc4I&gjGd+b+5 zj%On0UYwg%PO9p~uJ|cMJW%zH6}?e)@F?ZGin@O0oK1sgH*{c}LG6>f&nZ7~tjf>9 z)qCUq;k?=U=6A(N@2p|Hq7_Fhav9~GT|dM}xC_BMtQ&vwLjU3I-!*`Tl5qyD8?$wo zTjx8Cx2)R>*I{8D7HDk*A1in(q3IUAP8s(P=V55Ng{E8RxW%0N_A$(BvFY_f%>S~l4-db~H;vdIp*YT0B5&VM$ojZNdR$rie5*<{BiJM4|wv_3Z3 zAUB@D#gxy;rsvaBi~4G4sb$nx2iIoQu8^r;|tS zclJ!$SbgN~ol#XTue-Nbb^GAzm3MNW>h$$YeLx>r9erRp#u@L~_zfEeY!t(kdzf5t zKh(p~ckGkT+(l+!a`aEXIr1#M`|@f2<6BPMe-s|K&AV|9{6`Oe*MR<|sDp%-U1-^bmR&aC6@M_BzGD+U^sI$mUFg+C|9-aM zL>@U?#sGgXa#Yd7meCKp#V`Gz*@9DfhtQ~t`+K&G{T6(v(*;*N^yxDCG3e7}3sz{< zWy`*@WzWKo4BeTGzR@lAS>M^Rw&>JF?k&bO&a^ncv&Bw5wAo_o7F+4nWs9BL?A*4# zw%JOvE;Q>xvo70g-e&VQoAK1M4cpt+**1J{!}qqeCMFK8x@_}fn;+tcZ1aO&UAC>W zZT4@of1CZ=Y^PV3?N2^%u3t9WaK6otZMM^>%isfVvwfT0+w2{8fNi$oIhIXv^YO?F zvSaYqtjF@oT+uP9uVG4Uv*KxtJrWd-bc6VJR0%qnsfH4F&;ggZ{&~N*Q)$b z8NBj4XOlZywYOAfNaVQU{L8y%Y6$)fFTNa_H~H&{bF1Q9mU-i=M>q2Eeb2ax_nUd> zJI;t*Yvsz=(;O}LFs`?#;(=w$Jj@#hJh<}SoZ;b2)OO3}pZman{9pWC1LLl|4L9@v zqrROda3ePzx`0uSj+ib_VC4yn&;pFUi_jj3=VbJ4(gO@Wdek*T3ouXM{0W@voeTYg z&;pD*R-VAh6XWp&UY_v9ei8NSJYna^O+SH|C$Mk734M`>i$f1E_Pp5h;y#ooFi!_C zPs{_Qm?yxA)>Nga&P;J5q3Ni+fX> zXUoW|SHpTdL`N3w5luyPLuPpiyvSeS=N4f){tr%Ko*)?a|2wcmXE8f`mIn^bZrBl=rtBCe+Q!*|s~x!7fhnB6 z;EhE7Ejw_9cNo5B2d?y2X9uo!27av7(eEn1muE9RY=6e~F+b1P{*1l&R*@6PGd9bY z8L2G0)gN`uv`mKe~*027Ax=fDe)9Vx3n$FWmv% zk2CB3OAoBzqLh!$cz2nKi&N$Jqi3Uh_Z|D@U)sI7n{r2BGwr>i?4c-+hTr;c(Lt? z@yGhxaj$)2?Huq!e^VX#VRg_#w>P+Rb@08O<3`~r1oyIxKB|%5(_dNX@71CI_5dTV z_-<|Wkt@T`uky7S{S;!ts+Y4`W9>6r{?t|2W`63utmr@f@t^+Jf7ifsIHFUZ!9{!y z`+5}e9QJ9`hjv$ig?DB=?W_J0p%a2_??6Tio zE4%EcyBWHh*|i>a`QUDvT|VscVV4iPe4xW0=Y4khF!*Hh>9Ln)mmjtWYi zIHR-6C)%9ZL0Nbg~BXzd2-pGePk%Rqe4)#aQ(E1rVnRpw0 z^wA#h(cPh)$OXuK_80ETIHE;=VqN#$XKZ=udujL-dw9E7V-S{><#b)*fu_!4@7%Xr^WluJFgR z2U~Pgvj+`INO6W_3rG!ntdaCaJC0$dvLY~XM1oqVnTaW_TX#}&i3GJ56<@BY!A-Nd1$X@ zkAHjoqrI9v{_PF_%)ve%_xZTb$9+ET^Ksw$QAdq>ZT9)O&(D2+jymng#fvMl&o8k< z_N^V7tJ&w*KEG%PW}i>{eA?&FK7aQ4v(J}(zU=d5pD#35BWIC)>t8;wt-BYG{1P5s z@C}2X6MCL?#Qb!}tKNz(t|=eoKjE+HAu9A7>$uBY_R>`k9v6eoAp%p`WvsedJZM5Q=7kTTVr>lGv3*vYdFyc>n=^9QFW`heY+k_0 z3;3sXn-}K%1)RJv<}_~e0`BSC=7lkR0q3-ABTtwY?0LbSac6rmY%r!TU>WZ{FW^~y zChCKsUz?Y(Ov5%W+4quNLnrFxx({1k!Yv(|ykyTy_Q)UPCA`Yrg??)2r{*OaUc&23 zcD!WAOIW3!8rrFO$tK#Vd1;(p8W-G_;DkkgZD^)OzC3zXW9}lh$t&YTGc~V_le~3a zvE`L9dS#4W86%phu}=q|rVgI*-L>53D=~?^%%_fg#>j)>mDKkz;$GL@*hkfEyE{u6 z9Insqp6~7L<2?;u#Qbtc&G}XEGOE0E`DpHOREkc-U2by4wFUCr5QNI6Y#L6Zg*( zHLs8SIAq`IQ|n2*CZ}A+9ZmdF^`?|#_NZax0ETfc%186^L(b~nnKd|+8}8@t^_UHQ zulj!(J>UoK&~nLjUtIvMDqca+^Id3?OmLYqYJa2mP%d$D`(B*oPVunKU$)xg>nlGy z@>+v4a{T8`{Qvsz|E_^ou<74JyD!EgYS^Jqn^$b4Pa8GG(5TI*SJG;YUgwOMYv?Bp zUdk&N9l9`ht9b>dY7!Z1@D*IptBpHbUc<#}7?tM;&Dzkc4V{7vy$@Qov9IMde7uGa z9NdhY8J*g^HvX@T&ue4-8gA`%c@4WXQuEq667OZK``7SmzYCqzyk_rfd+f-Gzh?8$ z&3w&fHIvXv4XxDZs|cOc4DK+E)C_GMI;nYW&flD`4hf<2>m_Gsvi`nP)+`VKdv&tS}xJ7L+D zI~w<(S^KA0w-3!0zhCjoGq@Pv5QAGPn|=iG`HQ|-GslNo~y5-Y|Goqc}#xE)#4#VKY7uc zTSsiU0{?PfWy`vh=d0iRy`G2(&Tn0}K1XhTY2^LY&Bpkc@2YOvt>fxkZSGHH)VA@H z>I@t>>#De;;Rn<)H=iEGg!YEFW8Lso98k9K3U}DNtTN#JzyHJEHK4W<9Pr2q=Z&$D zPYw=u-oW@9n4wvlH^yEcT=dW74b0H2%^Uk4&Dy-N7r%iWnzea5;{)e!;pZ)!zcpWP z`SKQq=+x#dtiOe!x8_G}KO-+jpEhq{=dJzuE&R}^4UO6iy@0pI`Yr6xsSS7Rx-opG_cE5#peRg?kp7G)Hmi=$p|CaskkD;BKw{S04k+=MK%a6Bk|CS$b z`C+W$ewcUGz~Ey?xY{>Y3|1jU!>vCSN)6i zhxkN|vg!fLh<)LCg702Voe$no(4WdJjULc*TmxrrRa{Ju zUe0kU2G`bIc%lcSsGk&CgGFAus@rrqi!zUEe5ZHpCtLKPl_$nb?`ZUd#T}-*=hQ3f z5kIcb$Eo7XF2-vc;uJN(GU_e!@d4rAv)V`Xp zPhu;*7L&o_e}w7LXZlS%H|`VkdnfWjotA64cHW)%P8_qcW!%Ra+j3WUuLsCET-5oC z^;&4?_fhA*5*L1Tf6<3k_bE#J;~)R;|MBk{pr4m_p7Rc--oX^@+q{D*{TX=&SMT8J z9bD1D%{$mqyUshdzJn|E#Ly@UE!@aqh4w(+!PPssqK%t()(3suyoagxFePq`euun= zC;GUdkDK@Q*Y_~>-dw$hC1-!!onj4V^n|ytlW$hbO*fnD5tt=Rhun+9k84XonDRJG}<9@1y5 z4fv0{Z@!CX#vV9$0^S7`JcNp~RP~2f>muI|?7{4RZhVIJ)(*^`u?zRSKKDD1_DLM^ z$s;?QLv`HI+-;jWcb#=-o_8+U@5`{^0d8jw{G8Zq@b-SWGdsuYlzsikIfHXn1}|n7 z#=YaK(mLovdqu6ffnTivN97dOiY)4}bo?EvcrsMx`PAUiz5G0Xya5|&MH6BHYkmH z_wxVrcMTlC_yK&otHk)_z`iM86?)e>fEyaQIq=*AxH*8E1LH{_H#kf=fNy=y`2auk zar41keSmE}6H)Wd2Nu&Bnd#gL(J> zFCXCL1FU>7Z*qB2ugM2~$&u#+dq1#M|5HA&@q;xuv=Bb9?*scju#NU@KElUG_I+gE zM|=85IH!M`kL;v>8``(|$WHoHp}QJ;VLr0+Bb?ihGh)?`Z2bu9AKCelogdlx5k}~& z<|8c7Sj|U!$wxMSWb;QDcYh0Q)rgJrk-fA{BHtOhs-dfzkL>;mV-tR2i z)9s}VPp#kqH0NY@rz`R}<$>RLw`K60)F1k(wL0=S#<1UfvsOm!5Dx;kXQE!##9(dc zYS2ySaw3%u#^la-%lj4lyJ~N)_s*voSQzo2oNe3w(^Eh9KmT0=`qx4qAacg}2tT7Q z=OYY_8pTIA`s8;%*~4kwhR$t1!4N)2@HX-ZhCUhVPjE!@HlN_=6C8blqfapZ36^Ny z<`dl8)A9+XMi020K|aCMCv))0Sbs8ipWy2ge9=`6P27BftxvG^3AV<0_zAXfV?rM{ zpWuQ%Za%>RZG_OsjehjVTjvv;$?FBLEO=)51Z(P_`DBgID2Uux^oj>hKcDzXFE@vL zJmjPMQk>hN!xr529P&>cG>7~<@I`)zm@aoQ9^h{4ikEj@R zBA=OMcb65vBQMzT?Ta&DBJL><#(h!mjy!8{GMb$DsEMY}T&Yv$ISrpRm5uWT3dc6q_V{(^_l)hg?_m-y}u zBZbaW(HqfU{NW2N{V#vlz@cZ+&dnjLxy$E}U5D^?2ych*Mn5-)@OEfU=;sFaHHTwf z;O!9J4&m+4c^frC5xb7qb;PbCb{VT2vFnIkN9;Oc*D<^uTMu#<(aVx!^L=dHA6pa0*2J;-IJPE^ ztqFC}$kFH6nmD#5j$!!NnmFdqF@KKvb8Jl<^9k2C$9y`rCg|r`mHk!Ctxm(|;9QURUvKM#mQ|hcUHYoZcd>hW!GeuhrEd`-uzucIFUkE-C=Oypqt;EL;gEI3w0uWTOWTj>!@M$hX@e?Byh`(hy4 z6)8;2{@f86_f-#O|QH#=}jGg1$2F)m$xZgOM256!62=kV1y46QajZf*2T zj{D+@b3ja3w(yYjQ5ChMqEEB9htxUo*w9fl&hh@9oGy=8XzhRfy9SQ!OZxV63}b`C zehg#B#_-tK9~=8)YvS1W)8369hYVdX+PgW1xnr0+hB?~1IX0K<4ei~?C*&CR= zCdaUM4134s^cePzVUOlaj$x0!WKOJy6WBX}y%X3wfxQ#h!(q$`f91b&Vh(BY<^=Xm z%;^a%(B#bt?47_KUEa{;%?a$$<;@A~sjK7!_D*1rR#Q%3?*#TvtSj2QIpOySzum2J z!tWD)pYZ#H-zWS&;r9u@PxyVp?-PEX@cV?{@_-SCZR{669L3BTbuC;V2I4Q^LX z_

        n!S-X%n6@QtT!=hEI(QxQpuRC?k)gC$iuK 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 z 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 XjY77*)+@FS#g?W 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 )>InD2B z<))RH=Kr)dGcC4oooeO_!hhIKHA4q%r-J8H@SJLf9W(UIxMA1P@!$V$n}Zo~n31;` zahPG-j9AaGZ$><3#CnEraG+|2y|AEaMttBw6&$F72UW12YL>q+pK6xRvvN4A&RO=) z%H1rxXT^M0%xASZ_)i7@sqV|!Ed8_e&(c53hgo{zKGiH=X0z@mL_M>voy+ye2^^?` z166Z;n-iZozQKbkcu+N`jyZL}gQ_|8%<%>OQ^9|#IWe1~doJsu|2}>9#rwYe-WM;} zPj#Qou%PO`nBS)h_EW)mDi}|7pN;p$;J!T1^B1O5&AWbH+nQJZyn5j{)x0>uX)5?k z1)HfBT(>|!e5P8UcR?N&N)G<7pR_qx5bp*0;WHIHrdlut!eA=cOSLGUi|Scq*P^&C zs&7#q7sVA0Q!TP{QC=4LxX8yvJ}&06Vg+-lmc(y~uS(OLDYC z&l3BW{VVER(Kg^K6-=dCQRfQ#SJ=KHwk!NzQGP}F73Ejdy~2+bwy%iy3SID)YLySG z^sQ=Zu$Bs*QmxXnD)+1GhpAMn+VJWI(SBF8uT{F?D%C0-YwUojRBP;5bECbZDBYxJ$Lca6_$d|qSk8hh8+x+Yd@xej)&i8~CY zS{LJWey`KLPB$E;TBm!R|Le-ZTPk=WrKek?ATz#23>HLYD28xE7gX$Z_4?mJ_1{*Hr2T)PMhMhNyjD~n{;gQ1;$dr zS1PzlwaE_HN(Eb~w%7qvskYd?rTi9KwzTanmM+b3Vu?-O{#4~gN}}W{_{2m+uHs%JGS|-o%Qhpu2SuY<&K!_ zh~2+M@%eQtfF=d+gcMKla$N#}@cX zwMXY3d-m9~Cr^8H?a{R-PkZ7EXQ}q(d!JqV^zE~2pU!=8+ox}zZLpUL=2GpmZJ(}v zaocCxK7IS_+ZXr!QzBmb>^h+5K#UIL9S&2$VX6apKVZv&*dMUvKzW!yg+zqWclOk0uBmaGeUSQ#}$J*i`jM*+=|>^HeaN z>XCK`^$ow?1a-)XY4#v_Dsyrw9Pa1!fdKD?dwe4u$t;j-Dm1P zqwh=(&e#CAsc?R(Cv1J<+9zy;&s0x*{zQFGJZH4!5bEvf(L`7=GX%v^jW6KR!?e hjPfzK7${#$S>RkErS;FRXHk@lO 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 g=>vv3dY#eJBK`|$uC#2h??hw%vJ;!!+? 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 z

          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 p3N5vplhNw&57~F5*jjgt(~Z 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 O5{{afss($D#NS#eOL6LvbI9`%v76 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

          Uulw|r;SMcOp=2SVDU5L=_}x3Aq5 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

          SDmU=Zes(oFJp28+7tX}}v9+f9SX_-`%=~le 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

          e`fdT@rxdP=~HQ~q^p)yQQg3$O zJKF~ga4u{QMn6V)JpFaLXkG||2?*AzDX7}m;Zz_89 z1NyT6fqJw1;^g@wdh|2SXFpZF+5JF00D*I1docPQgVZ-&S5PhbB;kG||1?1!i~yWfs0*}w(nj~;!=RqVg7-i+-r|Dfdm zw-r75A=k6NL%rF3e&R5H^!a`?`(L^jyHEfBqeFs6Kkf$h_3F*;M<(ZQ^yt^$#Qyi{ z&F<6J-_fHlx|RKM^=9|!>&NKPuTbBt-t4|6n*sxz3)_Ry_xK*?|5Uvh9=BiLa0v+tfidh{*o z2dX!_Z^D&q-~#K99{qwJbN;dF&Db8t@Be)LM%%-qFZ~Jo+tr)hPbtne%mx_qM~{BS z&)EM=z1jWZ^!Y>E!=oQKo&B%Wo86~hzl$FIdi8VEo870!FM9L~XK?=c>do$Z?~A?P zz5mgp-*O-OCF;%Y2PWrl^ysVV+5c6&*?s!{D|+;EA7KA4^=9|!|NkO-^zCP}e@(sF z{nljt(W5W09Uesi(J?qjK2OM&R?e943G1F zSoVPdMjt);qKDa^qTcL2eg2IeeVO|H>do%w;z~Aff%&6Hzxa2Y|4Q{{Y@c6$a{fh+ zzWn#>uT^h$zaEok1C05jN54b;c=cxYYxDK)K6>do#KXP*NDjQOKSKl+dCpHOdhUxq8$zy)NN%|0;PM~}Yi6YQT?Z+71mS3(~>`hiQ>Z&7b{KOpI&M?dpP_GPPi|1-PqTHJd6 z=+QSm&AyX*v-_n>-x ztAh7~W*?8ihvt{R>-LNu$8*iU*q@~H$?U!=c|9CG`tn!UpRC^OKK*`3^yvG(%D%UH zv-^_d`7nC)172f)wtBPsx}=XD{n|I!pQqmJesR)AkAB()_Sg)^-|T*2_H%+5;9TO- z_y3svK+SJ@QPqc3*=l*}w(nj~@N7PuXLcSic$DS<~GGqU6yt0Rh{P6xpkK@%}{Sn!9 z^k!_2KK=Qo=+O_^oAZy*@ix03mY;q1@s1w-QuVj0H@hE~Jby%wzUO|NzfQf`{qSV| z=+Vzm|A>0C`}FH?(W75o!ueOKH@i>gj~;#H{_Ov)-t0b|KYH|I+OprI-t2xMu4Drj zxv)JLeb-X<`@F>Ge=|I8|3S(9Eqe6h+p#}Xz1e;G{@wl|-Cr)cwkn$?`#EvlKL+2; z`^TB$VPbr~;rK_RTf5fxmxT%cIpaOuUmD7|UK|&k?`C{z>~FC?KN!a=`Z)i!2ezL7 zy@a=Cyr<{KM$La|_Ge@12?r{*;f1P@>`}FG#(W9?b|6Fz*^PAnL zuQ#JdKlfnH{{`LNX7}B2B^$WF@rxe)>O=y4rBjI^=9{t%y;$C zqwjq<`#I{(?$g)1(W4)v{z>&__g$0uqenkp{fp|&?mH*9U-anfJ97PRsW-b%UtdL! zer_lBAFDUJ-;%69dh|1nVt+t0AMecW*Cc)P=zHt+{*!vWZ+4%)U$Eb%*8>amdf-Am zzKzr4+emS3fycW$%UVC)9DGn~?vybeZ{`IbPADAFsYrz1e*Uu4Drjm_K^-6Hnv(=c_kkd)(hf<4QJgfj)ZlTTf^I zP4#AMkG>>%KM_6p9evo}qTcL&F|K3-7nnbK^b4!lPg8Hk_LzTi_JQF(di1@|V*jvu zv-|DLclFVu?|C-+KdU#puS@nndi0H7Wxq{~G&s>do-j|MdAT zdi2B3W4}qg+5MVi{^-&7zL5QA>do%g<4QJgf%Qj^zTzVG2mF(d7iMga^_ONJ81AD- z-%b5d>do%c=ga8P55Ac5_fT(kpMHHRdh|74XMd)8v-`=o64oC*`YnUlU!dOXehTwl z`yV~}@t3e4s^08=IId&^7rC%K7=24M`%&u6@HqbI{L!Nyc`5rJs5iS$=Z_wJ(_r>L zS8sNo&L2JcA(yd#K)u<0I)C)&8!l(RP`%lGI)C)&2VBAaS@mZ3gK;GrxX6X=!RTiX zVgHhPGyI;8fAr{kT*>||^=9|!{L!PIJe2)*^=9|!{zs3#{WsXRUBmmY*?oHaqenk( z82cmCo87N(lO2d`fOBDcF!~|audo$FCa>3`N8jx_&VQwPv-@HB*>}$$J^Cr?Yt)8{A1Lc3-!^X zAFuug>do%c;}<>p8S1B~H@okatUr46jq2}KZ+1ThSF(YNT-Y9rzH$`z|3UR;c-;OI zaU~nLKp#E&rPs56OuZS~qwkvB{?Vgf|6TUasW-b%k6-lYi*8`wtlsRNU(MdV{^-$< zQNLcj*?nC$1qL`5wg;mxzLE34uigxwKYrOI1{i(x=qIcHOugBC`uZ(;^kri>f7!qI z_+u{AM~{An`lHpG3-!^XuegcxpQ7GesE;1~T=nOwHy7%oN8e*C=f7ONxlkWH`o-$6 zQ*SQRM~}YhX3jrBz1e+9{?^}p`$vzyzxq4Wo871P|LD<=Q9o0?xlkWH`g-*X)SKO> zzmFb0`ibMY|4*woyRS<2KYH|y>R(WAc0W7mqeox!ea`=?db9iV{c`l^$E$x&z1e+P zGJo{wr>Or_z1e+f(npVehWgT%_4NXAq2AlWqo1wqJE=FjFYCkwfOBDcF#3h}^7x&o z-VBe&uST7~VD! zU!&gaer0if`McI1J^IxTasHdto88Y~zN?QO{m6&ePf~AopB}&H(JxScw|cYtreyx; z(bxWt^UqUnc3+e9(WBp}ewli+`!z`)J^F@uoWDuE+5HS$$p$WRVS6z8!SmU_qTURT z^S2@UzyPC<9)0do$#CikD{(NA8?`S<-d@Be1^!*C@V zxWM|ON5An2_J^o9V|(m>DXwG#7wDr$zjX=wqt%$m99S3SkPyLz+x#_V%o zfH8mc=!=)JKV7}qeNSA;1}@M?kG}G0_UEfNWBdI6BhH5V=+XC8KSaIReY*bW(U&xE z{*mg>{_p5pMb{)Uy(Rckb`$yE9 z-LJ=$Y~Ugnwg;mxeU|+)^=5e7e(B?P^yu5G|EGGh`)SGf8$J5D&vE`u>do%gCimay z(NAn*zt>vce|NFgKRUa_z~{@w?K4KdRsDhL&Db9MKQQ~ia34MTzJKHV$E!EHADyf} zdh`qb#lDw%v-_<{A3gfHud_c-z1jU}y#NB|!uDYF<^N$nM7H@i;M_hx_aE4u%Q3-#U}9{t9B*dMRnT&Ry8{eXSh_f~IqpT7Qy z9)0IF?7yboT&Ry8{SNh)s5iS$AHSnV-?Sg+ze>H?{et|hv-|vs9(`>I`?2cH?uR9P z^ypjE->%;5ereK2kACL7z%#Mg8OI&F<63kLc0w zQ2(rYv-{4tk_}ws!uDYF6{TE%vwAZ;?!U#^2L>2@^yoXQe@ngDeJ$c_xQ`zFZ1o?h zH@h!kzN?QO{XF%DtmFOH>^@z8^yn9;KU%%n{Tf`!1}<`8docRR?RfmYsNM{ZWszfir|eY*eAqaUdLO7&*(cK(XnXf1N3#E+db9iV`w!7${)$fQf2rQ=KHdN5(RWt=kb1NG{@FfYfU*D4 zqaUgM3H4_8<@tJdA3ges>i?qN?7kv-{TV&_*%jRXm(`nh^|+D^Twwjtqi;N#{hR8| z*dDjvu;l!U9)0KI*l$;FcAvigiXQ#oF6{StmG@t>`}FmH^yqtcWnZS=?0!YE{^-#c zcVmCFdb9h!*)hNX=fd`2^!?TMQg4RG@yq_VNcjOqA3ge>JvjeY)tlW9NpAn>(bt{K z{xbDu_vz0^Mvs1dPxjZVH@okftUr46T`SrDNWIy8`u(Hm(a-z}`zh+p?&so4HgJ&( z+k?^fJ)QkD^=5b+|FyW14P2m)9(~0b>}RPrV|(<2aU~nLKp#E&aedg&Q*Xxhd+MV{ z-*hJXCF;%Yvv2F<2N?55kACji>|auEc0W70{h~)dpdb4;)tlWnar#~RA3gex=d$0f z-t2xxGJo{w7oNwyZ42-JX7}}nx8DEg(GU6-`yO8V&0 z7mZ^^<`j~;!uI`-|=o81q~jsXTZ7q$nZ zpQ8Rq^=5b+zwy}z1{i(x=u3XV`Man$yC0peclXhwAE&;%db9iV`8#^_o9^WN{nVQa z_0gjrHjVvI^=9{5aU~nL$c62}=m$+_|6TQFcpSfaT*(G5&_|Dc>#x|4S8vAl=+mEH zj2?aQ-Rys%-t2yO_Bk-Xm_K^-HR|tCZ!XkFkA9{4->5gcPrv^ZJ^I>vxc=X%Hy7%o zN8j^a_K&GI7wV%&zft`Y>do$F=a1g*;}<>pDKk0$a`k5S>DMo#N5A?$_J3DzcAuXA z(WCEwKl@kJo89+L)*n6kiR#~0Z+5>m>7z$KuAcLMsNU>8{r#rs(Jy^~{Q=U%h(TBZ{F4Kmwl3KfH8mc z=vO?;{wDQi_vzP9?3e2I+lp?e!ly4G`R+vE1{k^OfJ_tB%D@+$kgHNV+? zUt9@&^yr&f*w0aKc0ZZZ3>BqW%&ef3f?r_FMos7q$nZ-|`{n zuTyV^$MH*lekOYKOFw4+sCu*eqR(ZYBpYDNAAP>x_X~OdL-%6$jm3GryAK|HZCmzV zRd06RE&2Xs^yuexU_V^F+5L><@2f^POZ4c+AI0=Z(bt~H{xkJv_vQPy?xROPqbK{~H~9Q(cAu_4`uzN-vOh?D zt=N6~`agQ~TeSUA>do#elG`tO^ktQt|0MNh_jTO;UB^Fq^!4h`P;V~OM~}Y8S2+I# z>do%c{f|CBzxpdYzqn9eAAElQPviX8djG|{dR)l{E^^sFWx=DbJ)Qkn^=533^Uu$b z?xRP)zBl_x>do%c`)~Bdl4v==1x37UzG{`!6ok*94D#i}(Ze=0bh+=*OMS z`S)JW#}BjnY02|%^ysTDWnZS=?0$Iu*57^mM~{BC`Xkkw-EU7GKcYuJ^K#DLO}*KD zdGh){dh`SJ`_3=v_npnV`egmlqpwl_wt91+K6>=E>OWO)F4RYleunx(mh%56WiHf5 zkA8vrFQ_*c>Z3=$Lj9TQ&4v2t(YL6-M7_CCA3gf*>aSC8F4RYlzU(IceXQHmn+x^P zqwlJIhI(_MK6><3>gTC97wV%&KUn=@_2xo-^yo*cZ&YtC)JKngvic_V=0bh+=K3=>;e3tm{;w!}Oibsg|*`MpXQGB>~ zyts$>aq+q07sXeKPx}?ubA$MD@lV8~#1D(R&fxZc74H;p6rX=L{l0CvzG>pa#M{J` z;;ZlB_Fosz7GE#kDE^W7>3g~TEb*l?$xnz6zK^_GJWG6-z8=+}uSazguMqbZH;K;| zuMrOxw}`(b-YC9NyhXf3U(Xu&Yks}!@8ZGYP2yqVeICh<*Fo9q4e^oU(c)g>apIh~ zR(y?kvUq~HPK^7z-z#KSi`FJzKO1sL>#wJc%y>^dB z2cpO0(PH&y>Gho1edAGB-R{?u_HXO>~Qd;Q~**Q3#6|F_n%zfAjYc0U?_crqK{T-Y9re)t^r zH>fwm;nUgK6>$p$Xa+xOG){b_v_bkUD=zHhG?ljjF?ytfxP z-aQX(eY_VX{B*`R-s%6Jall;e?`PRsaK4$bKJ4$b{Or5e8$I^7MLm8`3BB2U`tvW* zqn|jB^H0<9GP_TI{yuv23m#$rJN0Jw?UVIKkG@g;a`omyee~$psDDkpxlkWH`c3LT zQEzr%ldL~_^n>Pe|Brl=??27%)BTSgeU17)>do%cuYX04e&C~=f3SM9`vtg?4P4~H z_F(iyzh^&2y%`GUU(f6V1B^a;^gY#2QEzs?0&zCnM~{Ao`roQIyC2AWS06q40grM0 z=NUy3W)zy;PHJ^GS`?B7&x#`f6%^yeR`ONA_BXpP%RUDN81qMuezf|d z)td|T(W9?b-&?)eeQ|#F-SbC}exmw|)tlYVO#0~2S1jWGk5q4VpML*2dh|7aWd9TO zX7}miU-amAsJ~ym+5O67{n4Xev6%BORBv`aJn5rH-|Y$Z&#O1PUzqgKqi<3FntHSQ zrAZ$>`k6~O|916e_mxQ>J^Iz^JG{m7*IcNN9)0PPoc|Q{=0bh+==-X_M7`O4`tv9D z-`4Z>0l%)w@8O5~{_L=JH|F^WR`TF&Q|C=$Mum6<%y}m(9xxbUL z1>*VE?DeLPchO^iJ3ht!dhM^-eQomf!syY@e471F)SKPUO#0~2S3bl3A@yeW>EFM$ z|DlfekviV9#K(%C(eYkf;CRpaeCy-gxx6)Z&v;MAdqpGHdv*3ehU0DadM765cl6lb z0nf63Ui)iyKQ8H`N8hNvMZMX5`uJ|YcWw6iJ^SA4T%C{DemMToXiWD1g2P%LkIOUO z)A3lX_1u{KTm+7X+3QJC+Jie!O;d;zoPgm_P zIG6nsJ&td!`is^?oe z?GM!XRDK{IZ?Szm9v5|NeLU7A{6@xmIv#_yo;!3r%wA9W^C;0{e`;Un{&d#>^?mn(W5VUgY#FbH@i>gk3PSC_1Am-V)yC%wZWsW6HiuecAw54eSZDx zx&B{!{bKj&{3Y^->UHFt$&EG3~-oxXe z+3RgMFn{;ob^nhZ`@7}??(Y)qui5=@=DYgn(f8iUeua9o`|(L1J^ID!o7J1$4@~;# z^S9TBoPWJdo%c+b??bW7J=#-t0d8{q5+{*Q)=Xdb9iO$@vpK`f=NN{C=w5ysO8R zY~Ugnwg;mh{W1Hy)SKb4?=!Lw3^4lW(U*L}{sHx7_XBYy8@NCpJ^H~r*gvY?jO{Uh z`u;I`^rfG&U#i~heo*!~Fu<5Udi2B8zo6diz8-Nl+((bTXeZ}ir`}wsj~;!!`pxRi z?%U%^HgJLUM~{BtXPkeBdNa1i@#~R&V7QMS{d)DK@9^=bt5pyHD32J^IqUIRBT`o871Dj~;!0egE`kegD+#zJ0R)_AluDUW4B6 ztrItjH;Y#kct1ELdp;ko&y9-%j%v+^W{lT|>GSCfv&A77u&N#^TX z(R%)qGsgVs-|Mg1hsXP?I^Jf_-!nO0(c^fJQJ+(9cHc4Sqeow-9$zQG>m9TEhNO=k z{lH?b{~Ma$>^?nTqDMbX{k7`N?yHjdqes75{Y~o4?$hVX==1B}m+SwY*DrRTKHd!s z9{p_bPt=>;r|(yzN54}2J?hQwCnjHii9Wyn60ZMuUccCVdVe1nJo;MkGWBNn>F?V{ zpI^WF6<&Y%{GGGgt|a++>y`2cWZw_0&~1y0o3q!|k$39;Ui8SGzuxv-a{v0;(XH=q zmu9@D``eIqJYM6!&hy>u{Y`(rA$sg@U3>N&)tlXK(LRB5VS8}?cpu9CqU?bX_qSRx zJdRh|M~{AV2ll_z{ATy*?SQvwN%o1B~@YkG|wE_C=cC?0!XZzDAF} z=?M1Swf|=K#rfHH&u`yuKEK~zUf_J#lHC3`9Mk%I_+G|)Iv-YRJzFm3@i2QmmC1Ud z$NrRd=4)$jeTzTPi(KRM~W{k7SFsgT3PBUP>Wo`gH;_Fqxp_CN60*0=XB z5}ujyo^Jmk$MN_bs`Z<_{%%-YHo&>;pXjmwlhq%s-t4|SU+?atM_;f0%Q}C|?uR9P z^yrJaaQ%1b{4u+qne@@4pQ-*7t>5gvEa{_1KTrJ`>do%ECckeNJ^Ixras30-o84zW z#+4u7T-Y9re(jgo4_0r6$75Og{A<7ckk;qhkCW%0?mFMr=zKdvys^OfcXH>}=ikDF zpUQYo=U?&3T>tNM`}$0DX7}myfAr{gsJ~sk*?oHcM2~*Pshs~l z^=9`Iv)cdzoD187(Rb{{{weilc-(&J@0&)Ce*Kr(zpUQuzAF117+}mFJ^Id-?EkCY z?7nxt-rYx!ewg~UoA~%=cAq}}MUQ@?`eW3a-LFaJj~;!)SGfL4^=9{rlRkR%<4$8= zt={auBI%do$P8)ATSVS6z8rRwigZ-(E~{Wp5_>(&2Wz1e;G_#Hj^veUW$ z|4?sspWgn_qaUFDE%j#idivhA|Iwo#qW8;p=>4+Uefs*r{v>_(TwXZC^NK6>=S)OUPO_b;*giOhHP-X0$PdTn2+-t2yK(npVeP#@ht)SKN8PWtH4 z&r|mFlOcH@i>gj~;#JGr9gp)SKP+P3DgteU17T)SKO>_mAk&&sP7g zdb9g<{n4Y}p}ur8Z+~;4K6>Nvd`krU8|EhX(p+0)_?ayXET)nwa zA3gf5>VK@>?7lR+Ut)lBVS6z8qOWrP`_-GFaQ~~%J}|)Oqeow_{*UU-?$gJ&=+Vzr zzf!%~{UA)94KU`99{mpWucM8q=kR{t?Den5&SwLR{f{2|zg7K5+JCeA^!07@=sTXv z`S}bu>DPCnM_;4(#ecZ+4%)K8+rIllmjno870+@6n^* zp}vcHv-`4S{n4W@?a$+Pih8sA^!&FUrt`1-AU;2z^QEGq3eAO!TdGqxQy|9{Z#VvWbL)y;d(!5_Ihjd`M|mCpXjl_^}YbpV6c5 zJAlXQ933yS`}FpX9{m{gSE@I=ug8^a-~#K99)0^9=f6q48QbIWF8%qN=+V!+kp0ip zo83>rm2BVw^GA=q@*?)XRd2@jn14$4f#E)S^o{DDR&RDcj`^-Wdi1?7=KTLuZ+4$P z-bRnUPW=}3X7}m+Eqe4z)$g~3k2hxbRmu9JN54b;5$etEE0R8X^c}y>{Xa#$*?szY zBYN~>)b~?wcAp-<=+UoGf0=r-`}FulkAAEA>(!gxFHH77dh~M#asPj$-dw1U9{rF@ z*x#+*?0!fxfAr`Vt6!kr?7kRRvVn_S*dC02X*K8nvwAZ;?mw%u4-7E+=+W0*%D!2> z+5L)qy}OSd{ouju-%)Qa)JKoL;xhK1sW-b%f8H#5^!+bqf5?A%|1rBy-)}{qpMMDZ zdo%c{f{2~Xnj54QGGqY?7n?6fAr`ls$Zqv zT&Ry8{S5VQt2Y;G>W@}$F4WuKpx0Z&^m?mKJWhOJ^7`v8 zz1}Y?@Opnq@_MW43$0&&otN>RzFyL(+kZ~BV7%Tpd;JTN+b??T|CpgXe|Kctp*Oo< zSF{p!3h{K0SYCewZkAC)W&i}4@v-^(8{zs3#LH#G{ z&F-6$KKlInzs30ve4me>bz=AF{zs3#Mca2$Z+5>jnLm2;^G0y~9_r2RCnkOL=zCnl zzDm8>eR}>xpI^WFOT2!u`}FySBM+b zo88wZee~#SMsodsQ*U-ZCh4O`zgGRL>do%c_kYo&@B1Cj|DJlY`_;IT4P4~H_F(ko z*R$X21K$63aprOS8?z4#_tEFqul`W=YyJ7M2K`LL*>E2{`f;NQpY`>>Idi3qT z%l-`Y=0bh+=ohHJSiQMWA3gd3H*o$M^=9|!<5%?PXR80cdb9h*`J=b{_(hL?(2bn` z7wXN0`smS@j$!{>^=9{@llh}ZKVJRQ>dl4v=+SRdzec^;efszrJ^Gn9as8Xso850r z)*n6kiDTJ+rrzwnG5LCJ^yvHF!oGB?UjK{Tr;oqh9v=O0ZQnt?*?oHZM~}Yat(^ZD z^=9{F$^J)=zMJ|lsW-b%A3vi-GaFGk!gVC=Z&wiYGGdv!Dijvzu`g}iu{q63>yZYqsWvmW9-~W*PRQF={>HTkY z@aX&A#{ORQX7}m)$LP_IRR25mX7}m)m*~;gs$Znu>^?pJqDNn+{u%XV_vz2`MxUR5 zBKLo_=NG&GKl2BlpI^Me^9PUHKfV9f1&@B7c&mDIq4}dnzgq8~dh7j@*?l?A!EAtY zVf&}``?pK<`?quS{;5IlpX&8~sa)@u9u`*=c>lCMdB1es39a8hjm>yZ@1K@x|0fn_ z_m^yaX0Jbe{S!U*zsK#o{XWz2GrJ#{-}~MBA3ge7^#^^($6vGi8A%^K`tnJf|2Xw# z_cgeZ4P4;(N1vbn$Lvq{{9^Z2h_m6oHu&NAj~a)Z*!p-+Px!u!_jLRl^!Yy6pU2ixY0l82kTB^8J&M zKjHejWRJ5r|ID6$Uh?y7(PRDPzhFPYx4+nZ`uO4P;n8>1_P3}vyHC%*=+QT*pQ_&M zeqwU`qDSBNPOksg>do%c|Nm6<=-1xG{&DqY_f^UK(WCD;o&7WF&Fi`Sst;`Hxj! zDR!UEA3geU+Wu7aX7}mwj~@M?dpQ63>do%c`J+caP5lt{X7}m*(W4)IFX#WRdb9iV z^-J{VXQ;njz1e-=A`WmaY!61iR{eeI&G2~s@0NXFfYC>fzGNoX|CoBS`^tR1yN@1y zmHNM`H@i>gj~@L<_3PD}3-!^XpP_!cdUK&Zdi0Iz5BML?f3y4a_KP0HN{7AFTd-^=9|!`4nzce}jqDS9<4*R>+o850o`smSD{+9h5^=9|!`5!&{(dz%G-t0d8 z`#;g6ubs>JSEx6;ufUaT;35~c2cxfli2Xm+o8fW)Py6W6H$2S#E%j#igK;GrxWN3; zqc5Mw{v-8fY>)Xn;z~Affj)ZlJs)AefA)vQ@%qP%?a`;lKYH{d)gP(e>^_}8di0a$ zbN=q?&F*((Yrp_w{n4YJ_$d2x)SKO>=Wq1rs}`{ThI+I6^z~Qt=+~(Ko_e$UT3pEn zF0lUS(GPx%^Z#7E8QbIdr$2uZJ^J;Jv!AWr>^_}8di2Bp!2XZw&F&XuYrp_w{n4Xu zzli;x)tlYV&DXp8=+Q4#|9ACf_v!Oj^yoLLZ&7b{U!Tk$J^IOiba34MT!RlwIH@i>I-{{d7HFN$))SKO}&CkAj{^-%KRsSdTX7|O(@sA#T z%gda$m99uU237G4KCo_m#=(x9HKAzRCGJt2eu^OV%Gf`k8OBKSjOSeR}>!kA98%bJUyN z_fKyB=+Ref zE$Yqic>GBJ9%A(9n?7VeMZMX5&*c6aJ^JF0+0RmMc3+%){V96%C3~Hitup(wy6VmD z8N55iU_Rpy|yHB70?TfM}wl3M{K5R}^e*PDAe;=s(`}4ZL4}Nsdzt8{k?yc|d z2Y<0Ocg%QCU#}e3hU*=f&5irJ+3QVz-Y$CVZ~cDko3y`X_rvmgv-|Nndh|sl>|a%H zc0VQQqenkQ{rl?8?q?=_^ys_p&-wTIgpW77IO{rRAB&Sddh{*o4^(e1G=KEy$G7GD zoz==r^f9U%lCV`gj#R`ktTT`iH1DyH8*5M~{A``Ww}o z-FHpaA3gf5>VK%-?7k%Fqes6({hjK~h5G2x7ngGXA5?F4U!Ke#J^GI7m#8YKYH|4hqFIIz1e;CpIfazdi1@IWZzl6+5Ot2 zj~;z_1^biKo84C=`yV~}O7)fM&F&{B`yV~}hGRMZIqJ>s)A^%E-=aRJ-t4}8vj5Se z-+CP9zf8T^eaEDa9(`F?_TN-*cAtJfD0=jBPh|fc^=9`K$?=OG{fh4F&%K$??`HSu z&!a|c z`o!$MM{@k5M?d^)>}xf@+5K!>3G+vfzT|xNb?VLTXC{60=w}aLKTEyY{qUrZK0kks z{anv4cAx$}LrL)HTP|e(n0mAO9^Cz1$3J@XWdqs&NxivHA3gdi^?y@uc3+pwA3gde z^>3>;yWf(X7Z~7N*dC0&;S#RD=uzgfN6{r`FX*7oq|>#t!y zMZMYmAY91?E^=XeF#4@E>>p5XhR5xn&L2JcE!VPNtlsRtWA-^Pz?eUJ^rhcs|2Oq! z_vzoqiynR5NcR6yZ+5>u`@IkhFy@aQ{p4BfH>x+gABH#^?xRP)QT_Ys&F-u6_3l1; z^j+`g{5#c~-KWPddh~tOe{LrqKg{ko;z~Afkqg^{(Rceb=Py@phR5x{DfxO<^ytff z%l<_5X7@dl=fCLD4|s_Em(`oyugunf0mk~H&(Hrb`~IF^?0!YQ-rbi6kG@5Gg?h7l zJ^bvNKYH}*)el#1c0c@JE&z=6M~}Y$Q(XV`>do#4C&w>(^z~1(AFtl*eg>{&0~eS- zdi0flVn0c}8QbIbpPhYRxQ`zFTJ?46&F)*0^+%6>X(Q*Kqu%U3eg23Z{rYFw|6aY> zeN*!M89n-ie__8=z1jUdodDom*dC02*edpo>do*tet1oafeZA}qo4R9`&H`A*dD#6 z-_=KtezN+P)tlY-#+7W~0`o_YzOjk(uUBuz_L#pk`@nD?J^Ci~ThyD~uTPGD^yn9^ z=KMR=o871LM~}WieY?-}`bq45fDRxy7q$nZFZ~ziFIR7d-_!m_kG@=eXZ2?HTeF|D z!~kRd==1Zx!TG=F`Ni%l5NE@EY4GT~iF>OzyDv%Zf6=4w`6lQ8ntHSQ0i1r<{L!PY zRX{j>do#)Cw=tjyS>YPf_k(2 zqU8LIKHqODLFNM_+t%uWXj0q7mxNh5G2xcT|6qdUK&Zdh|WjPgHL%)JKngfcjsm zHy7%oM?YNs1M1C%`smS*SO0tU=0bh+=%=Y~P;V~OM~{A<`qk>qh5G2xH>%&D-dw1+ zA9qMmQAPgD;Xm#4{iOl(s`CG#leh$bI5r#I#f{=V;@bK2IdSht$wS54#iPUv7tl`- zkN!P*s<_)@0&B%URnyNrImc=*%gW#Wnk z@+$FK@jCI0KhbX%4|;~YQ(X3Ea=Uii|CQoS;>nHl-Nk*MCHD~*Ehp#1OT|OQv%JM~SzJCx{oUrk^Sv`4V}SxN9?czIeTO znYjL+^sB@}){xhU%l}2*EM6_%DXx2&zFisjf55-Vox~+;$=$_`;y&WqSLk!%-s{Li z#oNWB#0y`gpCBIHLY^w__8NJXc%yi}c=qe`%f!RpAg>a4Tu)vnUL)Qtp7tjFUI%f1 z2W}v@7ni<8K3=>+e7bnzM*54yRd1885$_OxU%dDo`d^C2yi0ya++!2@Y4IlUOX9ij z(Z4GmzL~t&!CZgEf5@K~uN9vpp0S1g9Pyz4k}ngNy-&Vgyi$C-c=8AI_lo;&CI4Pr z^db2<@lx?C;&I#PKM?o)A9?>nxc)8Tqr~&J)1NA?`G|bJxbw&4tHdqho5eFfq5p|^ z@DB35;`X1C9}zc+pB7KqN&h!-|If&8h>MHPD#G|s+#uesJ@;q)Ui62FEB7X!DBdbQ zL%d)g`U}M)i^*4syY5TAQM_J!ySTm${jbDB_9H(eE-xWJDPAppL0q>#{j1^uZOQ)? zmwb-A&!ODEM)9HI+EV)C#k~(8e?`1qe7<;LJNhfdqYorsFYZ=G{-JoI_?P0@2hl$$ z9(FMKkK&GpkpCiHBmTE|T6_BU!~+i{e%?OYCx2hu;|TK4#hb*x7SHWS|G0Sgk>qE^6`jcc6t5M(EuL`{{U_o<732dx z&;2VqntYUarT9zY$;Z&2Bkp@F`4VwaXYw`TrQ%z}?|Z<=nr)Cz6j4x9>(iN!%pL3Cf_AqEq+8?S4sb@c)(Z4uZT-dBY!Av6d!On*IRo!{c+;ny~$^Yw~H?kFFb?( zJL1uO$P*T}em`HUI^KIzI&v%!2#JS`L?Ztnv?@#}%z4#^juhGA0FWzo{ z9)0N%JRTdw72*-+)AzI&pJzXSewe*@to;S_Q|!eL*yrdM+l&9xzV-3k{8(%5c~EQK znfO)ud_#ZC&;OeE@X6$@;%4!F9l8H^{)GN;aqg$&lf-TBAXkZ(i@z?uZ3_Jeai5=& zZxMeio+4f}mHvM54L>J8ChlHGepdXBc#U|@FX-PDUwtQer?}HE$p;+_mUgMo5ice z56`6EC?0Vi`D5`hv&f~LxWDVfoy7OtPv1*iT~F>OZWdSD|C)Y;y?Cts1N2ku#Shs3 zhJLZVc$NKZ`t|nWZT1h+mmJ0YX%-(YuAW2R&0gHc{!o5d92$ z@x%5H(=W9bud@FgeT%*LefxRz#TD8=aR+hrBlKPE#i!ZNrypQ19%}z6{b+mfZT1W3 zr`e0=*#Dk>vAy_t`^V_l+KV^aKTcnCwDwPYu(*05eP?@dFZ(~x_qP{cZoi0rq`i28 z{U7P;?8Oh*FQ#8;FJ5l{1pOL&@jLcQ=y%wQ+a1IGt$vceLfkAq*?uW~Uwd)2{ZsTc z_TpRZm(fqL7tgYPntp-3_!;{K`qlR04fcPc-)=8%d#v{F8TyXmW^s4>Khsy)i!Zis zq#tfC9&7(B{bYObJ@(7#=h=&w**{0$WG{Z*eg*wjdvTl2+P}Zhmy4UlC)htv-`ifC zv;QmoFnjS0_ABWp+KZ>#zd%3NUcAJ975z$k@jCk#>9^R6_dZVh*F@i5+$`>5|2O(d zd+~Ypf2SW}FCJz85Bger@tyXo>1W%E7uml=zrtSpvVAlCCVTNt`+w4xWxsrZ-@j-U zA0w__L*LV0+|T}B^n>li-?o35e!RVSs{Oy|>+Qvl*{`KDSwfx7oi* zU(!|kCq7(Uy@9@)y||D4Tl53%#aG*Jq#t81o@DH%+$=u9zAb%kdvVVGbM(XP#W&cO(oeJ( zPq#mSey+WEiG4fzmG%UHex?-(K7-?qYuseWktlJo|&`huDip*&jk* zYcIajzCHbHd+{RsL+Mx8i(j_yK)=aeywm>k^krY<{x*w`5m%Sf_p}%HvpBrfNe`7 z?7Pzsuon-t|04Zpd+}}dJ?N*|i|5#XiGH!Y_<8%2>DSteH`|{=Uv!H0PkgYrx+i^S zdvP!OQ|bHLi!ZnDML*JBJi-3U^mX>)2ka~97ut)L+kb_AjlK9C`_t%m*o)isGx+l$BAf0cf+z4#vce)RL~#mnr^rEjtqzi!{3eyhE> zO)u@=*XYZ|&Ega6&!g{cFV5MYPe06Fe1rV}`ib`9>Gl`U&$SmXvCq-3v=^_lzmR^5 zy?F00YySq)w-+~yyVzeuUuiEs&;DZiA@<@?_Ft#3wHM!MKZt&|y?BxRCG;!o#V^}e z)Bnd_TwJOByOjQLakIFG{b2fj_TnM-m(kx~FP?0FIsGhq@k0A6=%2S2x7ZJ%-)1i^ z{fgFqCH*ntW^twcQ2Ly`c!d2o=qK2Vr`r#spKmW-Zhsa1I(zXp`>W~OoyPSxi@S)c zze(T6UR-TIoPLzOc#{3M=x5oB7uk=XUu7@eV1Et$PJ3~O({+4n=(~%X#r^EBr5|c9 z9&7(?`l;tqXue8__ToAA-=kkp>GpN>^XTJQXW5Gv*-ximWiQ@f|10{P_TmnG zb$n;gcNaH{``O=3Kh$14*8U#)srKSI_V>~+vllnp&!pdMFK+Wyt?xeiPU2>9FZ)^a zIeYO4`}^r9*o&vz*VE6p7caN}HT^n!@izMh=-c(v?Jw>kuKo>uAA51N{cQSC_TowQ z57N)F7ca7(L%+&iyutpr^gHdv9nRJ9olDA{}BC9d+}KNhv}!Rl{bqY{oBmqgBlMlb&Ej76^XYT;;t}?b(oe7#Pq$w{Ki^)w-2V6U>+Hqb>>s0V z_ch)A;x6Lq$Lagni>vJy(vPwiPqP05{VaR&BKt-3tL()a?Egr=(_Y-+JRRS~^xehH z;(qo|&=0j2kF{SyKh<75$NowBW%lA``=#`o?Zs`**ZQ8K?<8&(_p)C`pR*T_uz#9< zg1vaUeFOb`d+~DnKhdwV7jLtFhQ8eZ-TvY(;_5%s_pujO+c(mWvKLRXf0llhy?BxR za{5*F;tlrC(eJbucep^ucLjZSakIFe{a@&Z+Kb29KTki^UOdPCuk_38#m)9B={MVp z+vK#q7w9{Qo5j8CSJCI}#Ut!rq@Q3fo^IbnKi^)w-2QL$>+Hqb?Eg;R?n2%E;x6Lq zf6(`_7gyV_rXOW5o@Di z$J)P4Kh<75$Nt~+%k0I?_G{@k+l$*=r1iZ*-$~po?q$D@K4&i;VgD-q1bgvx`xg57 z_TuICuhFlw7jLtFoxa`0y8Xpn#MN)m_pujO+pnh|WiOs&|0ew`d+{Rs4fLz*#T)G3 zqTgvR?(lUT-;MO$#m(Y=_HWYT+ZPJ3~OY8~J0^xehH;(qoY(GRs3kG21peyY8A zj{PU}%k0I?_B-e|+l$*=s`Y(J-$~po?q$D|K4&i;VgDKZ1bgvx`=WF5-~XR)FJ5lH z7yUYW@izOt>Dvv~?Jw>kuHJ{fkG;6szL- z!(}?YCG_3J&EkIc`_m7#7mu}XOFz|KJjecX^vmqU&Gx1Ao9)GIF4y`FpzkDZ7WcAm zN1wA7kFYD#==<17iJQf}>^srt?8PJOkD{MoFP?5+K|kMKyxjh1`gQi=ZT82| zw;QV4U))7peJp(+dvUdWXZlh0;z{<$(a*9MFS74Kzsg>`!Txyqo%Z4m-_Y^xO5a`F zEbeFj1^S`(;<5H8&`-4&&#^y|ewn?v*}fb7W_xj)VOrlw^qs`b;$HUM>2vnt5%yoC zpI|SZZr_7`zP)(4{g>$1*^9T?pG@EGD&79#F5>D_==<1cX6}0pZ!*5yitbX(#h%Y~v+-5lUr$c}8VdB4wyNRcMjs8sWdFPQY7PmQ{ z{4Mb_;&I{$1L*G%pLPLxmUx@^_u|KL^o`zU@-_x#B*9$xn(u7OxU7x{Urc z@eP-gw~D)8LH_&*?oS`_>Eiz4%f*w$BgHGk6T~G$`1$JGi|gHs7q}O%5w90-5|>@c z&$mT9O?==rTyOht&>te6F8;i@d>H-F;(Nq*98y$Nk$+{(fBu;8{Ryv1`0(WSTYDtj z?(x>2|Kfy?N%*vcuT6MsZMMIk%huZK#{7bde<-dbw>O_g?riQ&?rH8r?rW|h4>F%k z{?X&D*FRjowlDp2iT_o?k0yMxKYxGrKQo_4{*8G6`3ZB5{Gxdv`Azf1$Z%g7oNO(o^`@m;ty>(Y{ zy%(6jNxstjE%IpdHROrrYsoXr*OBL$ze8>?Ur%l}f0z7Uanl&`PV>#=(jW17cO6Hr zO7^Gz-pn76{r_#gJ%&f+(Tua-ajw+=ub{2D>88BjEBkji{?Yhz^8YJ1_e-t+{{@3H z-qZgdWwrkPTlt|y`M))3#;5L_eGJg&2j{YXqVJw@#eYuBZ}H3QcZ)g)#`frY;7T@d zf!^DL(GT3h{`t@N_ZQ9Z=qs}i3^4lW(N9*tUcK3U39e)V7wDr$U-w_mUtF|Le*I=_ zkNH<;9~kbVM?d_1_Q$F>yI;zDS06q4iVxVIqu%Vkf6_;fzDE7E>do$lBz^Sg8`amU zHy7%o&#!+g*Z(W8UtFlK2p;`-@qG1W_k)u4M~}WqeWQA_`*BGhJ^KD1a{d2SZ+1U- zZ+-%BE^H4*zvX}I-&Ajg$NAF@SF(W%^wFd5_!0Xp>dn|5eb?**!+rGV`>H=+FP^_< z_k)@5>Z3L;l;yYG?o(W9TJ{3?+o88wW zee~!zs((wp**zZ9F>sL!+gIrMtmGCxpLNpn)7<7gKR<0xo{z?#-1_x&-yw__*!Hhc5_VaE38duAUP?xRQF<1_Z{)tlW< zWWKA99{ob~UDTW1kH(d3-~#K99)0J%cm|!O-i+IJ^EoC*jKAJyHB5=qDMbh{dMZi?#JLtHgJLYqetJdob%VJH)DJ3|K#ig!+rGV zXRDu~-t0boeu*CacJ+TyZ+1ToSHk?!qn~m(*Z(*5X7^o_K6>;Ek6{0vdb9g7PQPpa zqetJU{(tJt?)xTv^yo`Ea{l6dc>giGFG>37(U+<3sNU>8eSH!=`jP67Q*U-ZJefaw z^iAq}s5iTBO#0~2Pdk$P-&?)eeea}?K0m+ub3DJ;{nlcBg8xU@9l+IDmhS_nLd8TS zTeb>~bk?e6(?~H<$w*P@go!q7>Pl49WvG~_Oi?kZ$k3=zQOQWrreaZ%?x$2#RG3Rw z&RUAL5|s*TD%q_6bDjIT;O36^^M5`cJm>0qzdX)}WDu=zhi zuPnbL%E^XOXvsbmF2gD{r5fm z;yfv;Z~p6#Z-xB5loxtE(#7NPgY>}T^@y_erzPxd?W6pft#G$9vQxAsrl^+?RYAq$F-m$ydLm9{J^`+znNZHKE59DJ^bQj z=9kke%U2esMWlg@_4^*azQX)L^vd#^^Lozv9=_rL^R@KK^1Z?P9)1J;iS)|ylfnBQ ze%%Lb{w8{5`4-$s12;LhJu-ZGrTI>JW%PLb;{3jcFFnY7FTHY>_dR^!!REhBuPk4R zJ89qs>-Rl;*&*idrB}xG3$5Sx@I_VTe@U+_AK!2K9=?ix6TPy0{JhEc@J%1I`KRfX z-VD} zKc4bJ*YC|de(&GQuHVX!%xy5 zz{gKnK0bcFhu=a!xrd!U%JQT6+2`i>J^b*|w*Dr1W%+ph^gaAE{U7(V`IY5Yg!z3B zU-K~@KYC^PMd9^_@8MV0n?HibPg%Y^%!lN6xQ#1_zm>i(JRXj<4zj5$+_*3;X6NW^LNlIqffh3P@BFmkl}p~zmfh| zh4%O>%g4`?d=J0nc$@zuK7PvbZJ0a_WX$h-_~sMLUq!DhUzFE#-uLjW^f%Be%iDLK z^S*~4pud}5S-v>T?|b+m`UmKh<>UJy_1Eu`&K-Vl+#DSK{o?j?;r9JieE-t%hlSt2 zocsRyKmT3``BnQZ{PS-;*ME5Wvqt>nGpCSDkF@U%~6Ivi$nj zq@73uIp?-VhA%nA{6jo{l+k1Vv@S7TJ{>KXK@mH4b zE6(#-?|b;xbIiZU`IY74&rjdOuQ=EIYqz!6pUUzZZTi{yeGk9 z-1f-u9nI$VrB_Ce<3E_bFp%MW4_|S<`C58q`PRIi^S*~4qW=`VvV3`X{`nq$@&cQ` zgAi!22G4<|6a`^vc*Cz9xNP$on3?>SFW5 z^vd$_`R9B1LHb|OD`$D%!E^X6ZHGhD`$D%!`EG6>;EXda+dc!{0RM-^vYS@_wdUvwfQflSI+Xjhwr1m zj$S#-`yRfe&E~(0UOCJA9=?tK=k&^1-uLj+^pDdkXL;Ylue!|E{}R1&miImUdiq_8 z?EF>E^1g?!y4>b}2fcEZ_dWa|{r>dIS>E^XWmnkzN6{;1dEdi#(Vs-GoaKEFU(jyz zUr4W<<$Vv|ME@mvu#eQti=!}rtgPp>Rr61?x>hv;kRmF0Vi>>D8G-1f-uwb$7CPo`H!kK-Tr z-}mqv=+CEDmM=`-0|OcJ`yPHH{pabG<(Gul-@b?6+HLE_}6?OzD_l#mBPel+CLo#(H2 zY3LV)ToLlKVSU?%?{`t?R|J1S$WMp-pWyEg{evO@ENuTZzQ69``|Iy8_b@-i+{Zk{ zJiuH$XuqF3$oy{RVdh%q5$4s*W6WP>Ue7$lypj14<_YGPm?xQcy~pOCW&g^=8 zkNv6avHkfiy|R3KzwLYYMc0|XgkD)bUax%*znH#@URgfA-}60u2mLc?B79z@EI+)h z9RTE9=;5pSZ2fogdao>B8;+mv;XCQq(JRZxKX3Ov{OBz<|9X05`Qb3X@8Mg&Y5s9~ zW%(7s`yPG+{qyw7@-@Nx9=^2S=6}s=?e&hbeEfOud-#6(UFenN`@;Obhp+yY&A$h| zvV1&#zK7pR|6Y1!`LQs+@8L&pwfQUQm9xC>;X7|Le+0d-1f-ullPc^ zgkBjv_CL<=d-%fdnxCLomXF8J_wW@%=AWlmmXGuM9=`s2=Kn*lEZ>~=0RuVbwnv5^ zqu*f%yZ$Jn$Nop}d-%%l+x%~$SC;Qe-va{~^ZOotoc`_f%JLPslLl_!eGgwaZ1b1X zD`R`Ce=+W)fg5<=!u~&oaKEFzn1=!^vYS@_wZZj&!JbA zk3au?pI`sIw*Q~g`kCe9=iLpihabMr{MYD}N_wb|lo8L&UERXMjA@6(mN&0`%E6d08-}mq>57_*L z#rFJD&hoy8FB&obMtWuW`26)fd@KFC>6PW<`h5>y{3DzHV0vZw`19ZQ@EhoJ^vYS@ z_wcQfei0^_`08)|0TV$d|_VCdEdj= z(?3S9EMJ2=Y2XI)`yRe`%;tZFUK!hC{qg6&@8SD?Vg5h#%CkOw4-90??|b-u`r;k! z`Kv77j5}%I244M2e%{s6YM*y~C%u0w!-gFDgwJ!{6h068M%W(T-@m`#9Nzz)e!%?q z!{?{G(EH)Vzp~?TFyEgm2wmURi!Rc;CZM{l?}$i(Xm2C3xS%H#}_q5_)C%qTqcGzncCl^vYS@_wdd11N6%B z8^iU?_wcp9we^qEE6d00q3_{4A2q*`URi!)*ni){H*7Tj9KEu9b@0B2AE1AQURk~f zchbO3&TWqjKlqr6NiP z=3j|BY2XIl_wWsWH2+C@Wo!>0kH7EXD<3z1DZR3MZTcP<$e7>v@E!Cw(ksiy*F(OC zU;Kp4|3i9Z`I`LfbMyNieii+1=#}N;@%KG^(}d0cXL@D%@i4#d;VYjsU$C>CKg#m) z^_1`7N9o^4uPh(;-}msvPucwMrB{}Z$KUtxz4SHo%JThT|9uZ%^(UMEGxas}*dCsqjuU?VDr^1m=b!Jf|IPH_WW0tkDq7x9)9L;=69u6md81Pfg7yf_wc3D=HErH zjO}s#U!A@%Qu1`Z-`1tVsjk4A^5!UB>>|gf_=HEoGEZ-Kq@8K7{ zX#O!CA7%NH;C&Cjg#KNeUs*oBKJq>MR{D4H`l>8Hgga^ACg-+Ch98`<^-ppA%INX@ zjDKF@d-%2gGGF*QyS^yPPp0pIfsFZm58wT=`CaLi<>T)M`yRgJ-{#**uPh(0kG_Ym z*=qhEdS&_A{Oae{@B94v=|8IVGiUj3*TYXRpFyuIUmfQ6J^YeaZ2cG0E6d00i~6hi z{H){i^T_b};;``g0^d(RtFWZT%K6XN=R*Eh$_qVTmvX%;c)luYy=%kk0pDYPH~iQ3 z_eAi#P{&aU-h2+5&Z_evV2j#oqN1}4_`q)Os^~-Ur+lUeuVxZdS&_PFu(8N z2VZUL-%PJ8Um3jb;iu?l=#{g)@8Ore#^&E?7kj=d%g5J4zK3t6--BLReju#h_wY*! zZT=6?D`$D%!;jN{j9yuO1@5GQo1EJoIY0llHvekP&x{_|%lPM0OI#0Mxt;kd>6PVI zr|*G*jQM>JKR|yIy|R2E?xcYmc;CaXEwcHC=#{ZO*01Ndyzk*lUTglB^vd#`>3d+v z`yRfR{t0?z`FOqZJ$yO;KJ>Bt`_Rhri*5SZ`PKLFde_72-Pz%K*Bq{QoA`QVCgb%= z_d)Zoe{Vc^e%>?Xg|2^n-2XFq{ZrQZy#q`SZ<6(Z^!`JO(ekr}Od~fi+ho7Q9fL>XCbMU^0U%#`>e-yp4 z{8aG1hhJA>{zQ6Z`S^a)_wa+SGk-3i|y~_++St+k?`~0_wZ$JF#i>L zW%;S#eGgx}*!<1(%JS)-;m!}_oZG(OyY~B<1%F)l?~^_ij^C+O^N(k9$_pLOrczta z=XpGpwVq+zNki-LJ@#km?&fdj{wT}W8lUyPhi|68mtI*u{`;H0hwpo<&A*;rSw8-K z2H(T4FEjrXy|R2uSikS#Yu;vl3%#;@e81p(_)+?87V+~CX8Cyi)b{A%7wuv5zm;BD zKED3*J$x_y0rbl9U19%y55H_roBs%UW%+ph^ga9-{U_*^<>U3!_wZ|%*!<1(%JLIo z{l16q+{^rz=#}N;^-ukedHq{@iG7}M?xJ*U;9R)*OSm4MUNXPO_xIPsk`K;*zJ4X- zn^Rus`P;?y_wxCxto2Xu4Fqy7{m1v%|E9fd|8M2~E6c~{ukYd4(ceq2EWaKHBMoHC z?|b;p_uBj$b^Mv-R6r-6+1`yRe^ zU-Ns?E6d0I_dR^=`^;C;E6Y#kXP=wj_wbeF=8vUUmahrk_weoXtLc^H2XQA2+~nN$ z$nfR++5DH%E2CeMz82w58n}V?J$%jn=DX>Yu|0ge{`(%jxx)PI^vd$1>3d)xV}9Sm zR~%q|gkD)bp8vjwZ>QftuPh%Qf8WE`f57Jd2feaX4`NQqe!}l`R(<{rz$KUtxV+Yy%XV5Fl$H&k2 z`Sl-c{t~U9Sw22~i(C)CnfXR~W%>B{`5u08mCgSHdS&@|{qa3~KmBj$mF460&-d^f zK4|klORp?n8GfI|_wXejHedKgJO7mBj6PWz<4zj5$+_*3;oDc3Ka^e>JhS*kzVLbGPeZ;r0`EFZ7GzK5Tn|0%t){6-v{G>~&{dt~_GQ*8dH=#|kgNnZuw^H|^K{i)_( zmS>ia&;Mc9!*4##{7!GN=fARiJb!%;KS^Ikubkz54?jh}5501h_dWbH{h{>ASzi4L zK7Tgy`SV0Lzi$oCAACQ5zBhbm{`vlN$Xilg=zQP8^&ZFdDrc?N_t@VV`uq8OQI;Gzzw|b;p;zR{(5?4Y>)GO z9qy!o8+hNtmz-n%PI_f*58s75Y2XIl_waq^n*RyCGPZ}0&v)O$PtpIDURi!DeGd#| z%dkoP_O0DTp`vV6VqS?_!Jt@Ov!E6cYB?|b;R3vK;P z^vd$_^{VgTx6ofjuPmQmxZ8i<=lw-C|4s7D@|$tTd)LEnY&HKqdS&@Z1UY2YU3wnv7qxzzkK^vdY*__w7m3}krU!;jH#vzwiN%JQ4?dd~YEzQ4`p z--BLRK0bcFhhKb|`9tWH<=evizK8FjKZageKCa*Q@XeRo{EhU=@^SsXho7WhL$55q z8h6sbP0nqP3}4@F^IuD^j6VPPh1VOthu`oy^WUOZmaoN~G;o9YeGgyOVg85o%Ge(B z$3JiMJ$x_yIK8rbe7)m)__5F1{7=v;%g5`#@8K7H!TdkzmF4@>K42i{-1f-u!}P_w z+xf4I9{XRFzA%vCeGflFzZbo7miIk;#TRY;2h%Id$Ipv=4?jS^l3rOp9zWm1Z=r9Z zSC)_GzwhB2J8k`+r&pG*!of=eIp?-V&aa>T7OkH-%MZ97ev7S-omM;w6_weQPg>SXF&OIgP&KHk2^@vf#n zE?r!fxGZ1CV~Cs!J$yI)DV$$fKK{J(J$%!bZT+Wmer5Ui`<=dr@8~kW4ZX7bbXdRd z;ajdTe{R|i`>!lt5xno=2k9@NSC*d&-uLjm*V_D;2lFe-$Lpo<;V0#}|H|^sxRVBM za&CKM_?6u@|J&%5(Wn2ZAiiJmJ^YfdntzDzHLS~A-%GE`e#A%13BlmM}{BiH~%2LGJ0HphQs{6hi|#f z{GaHR`M%BHK(8zx zub;k$FQ;#%SC;R?z3<_BhRy$& zURi#5@V( z%TM4=8o0^1?UCUd?>GP2J?#3Rj2_RA_<6YR;R{C0?@6yLAD^GThwrA}k6u}RI8A|p zjP?5-zV=5p|B>{{@@w;Y&ifvIhW-S4W%)YXNdq^S-}mq}Ke74Gq*uoFIDT>eeGk8h zzKvd4ejt4h3}npjd-(QIoBzx7%30p`@XLN`{w8|mEbn{x4fJ=?E6exiS3kFY-@~{3 z%;x_wy>gcKJ$&iU&2OYvmXCjb!uR?0kC}f)>t~jae}22c_3+DoY5rw;W%+j8Ndq@I zxBWihdUQy5zmDx2XyG@9>&fYd&%eH0kTR|>Bk}L+{L0ps{TzBSIz#o_gb z@3DX551QX;PrE)S%a;W2d-zQcnctIMS$;Y0q=6e8AK$|l|Hk}5^vc+Nq34(H;rr;1 zrdO7a?|*#{-}$i3e;U2A{6;K34P>m}_wWsmn7@EtS$+gK4SCRL}r1dk)$Lm9>>)~5|Z+`pqf2@JePn6~3^+ElC;rdV=t`FDo^~hMp>ybq@ z^REwI5Bb)V7rI_-{e!LdNM0|LwceWT=AW;=$NpCT$^7ozUuF4KxRVBMa&CKM`2Nl2 z-%qcM9?$o9zWW}&_Rr=&La!`8g*$2B2J`zKzT#=~r_w89d(2;gJ89qs-uLh|ljbj{ zSH|}68`2ksyzk*lpD}+Oy|Vnc@mcSC_(}RfdS&^J;C&C@^sLSQAic7Dyk7bqe&uuK zpQTrp?+f$$9)2tRwtLz0MOl7J@V6Ovr{EMG=`yRe?+Wgn(mE}j% z_rO5L{Jw{;d*1vV^vd$_{j%@jSJ6K}uPnbRd|u;w_>nC(|6}yZ@?H7W&#mA0`SrhG zen#tOmhTU~&h_wHn0I))oxjTRD}(oae*PD2{-yMF%<}7l_dR^sOXfdJuPh(mkN6&b zi2fvc@6jvEHwN!}_~rky^*>Cn zEI$~$@8Kut|4pwfKN7s};rm{;`Io%I&L3s@xPITm7ya9OCB3rzx-h@*;YaD~>6PW< z@%Mdx{;f9u*_xkOz9`P`diWCNc6#M3?|b;g^w-lX%g5)x@8JjN@1a+gFA3}SJ^V2J z&*+uqtHb*x-@|YHj~%}WdS&_PFu(8Nr~YgHzx2xT@$W`Mxm! zkn7>=3(em^uPon-J89r1=e9?NpWep&z4XfHm!z-we%bf%W!ss5kX~87qcDAwG>|dB z@8Jh_Fh4=BEFaH5-^2G5n}3O3S)S9+&hLBpUiuy0Y3HA^{8)bVbL;m#e8Y}5|C{KQ z<>UOmhi{~R552Pd<}knS;cNNt5j8zv>sOYKKmXN#lfUm#b(#JC#}Al0nCrv)!DGVv z!4)B&67osGpAqsP-%qa3ct3gQ5%b?q{xsy@ro7Pm$=aRl@%TI6Pb%wpjD+iJ|4>Q6~X%+zWVj%KS8f7kN4ylxXHQgk>MK`nLl6W12g(1>8m+?VIae6dt~@c z-2U_Q%IM)|(ia9Yyzk*Ryus$biC$TL6>u8zzK1X0)%@M`%JMbFXT9&?Tj@vWmE}9a z>v7-17rxo%e}rCHejs??!>`@V{3N~dtPkt=J$(J{=4a@Yv%K%&x6&8A%bw55S>E^X z{cpAT7t<@t_lNcS9=@i`{8D=5Ebn{xDf$X}W%+?HzwhC@-)8e4MX#LYeGgx`hxwD} zm9xC>;WyKtL$53!Kfm)meD4yQ{|b6#`S|&r@8M_mGJhStvV5H1_wa-7F#jETW%<%@ z{qjBh_&d%2oL*TzejcL!!Ek;5WP0IR#>W~rBfQ=hJZ}G<)uYTs%=rHP&mYcB9|$%$ z|3b*GI%?tT|H!*+{ZH`vudMawFFfh{BInY7e2@JfdAIo|x&O-Y9bD6_=l00(HOtID zPp>Q=|9sH*@LT8$-fho+W%=qbzwhBI-edE>fnGVw`yRfP{@wJ-^6~YM@8PTWw)rdR zmF3IA`qf{*X#V-KF`Q5E{`|N;J^udu*sXScUYhbkuMZlyz8u%5to6mu3w)3L>!UxB zURk~{?4R%9`|1C~^HW*Ar8_wX|xviV2om9ah6ALsWye1En1$LN)_yzk-bK5YIa zdS&@dX$=_2SikS#mmOw)=VkW%RF6PW<{Jw`DqQ8P(S-w5|eOlkcSDa|;AD~y3FTJUwyL8|02Dze0tfFAM(D3uct5C+a7;q z`TzO-D{hY-zT=ZN|8Dfk@)coz-@}j4zn5NFzB72=!`FVw=0B2NSw7D1d-!(xPtYsN z$N7B^Uvi4ge?Gmkd{J1x@8K8Ix6>T|;_weKN@1s|ip9u5&9)9gSC+2{^ZOpYmHupcL`NHLP{wZg9-@|vGWxkAFS$=hx-}mqZtIh9Aubkz555JoJNP1=Y zrQ!1d-{;qVw#|Q**3T^eKkIjWe*K>@f4SDrEMFS-zrgkIrOe&*%JPN5`yRfG{#JTr z`S|&u@8QSJwe{aeuPl$(AQ;Fww>>ia6#cL1mC?h-&xd^vU(#&z|A}5%zBqjk3}npj zd-ziN7wDDc*XH${_dWa={SN!s`L8VB7`*S{m!EIze=ohVd>QVffg7yf_waR}HGc%X zGPcL@TbI5t>d|5fzLS>E^X-4~j_ zfnHg@6L-?UP0nqP3}1G!`5(|LqsQ@!{~mzv;cHvXKSHl8AJ1Rk!#Axl{||a)`SG*{ z3}md|_wbdMnBQh!JO7mBr}BEv`yPJjrRGcNmF0Va_dWaw{r>dI@{_^)9)6(B=0BcZ zSw5b>zK3tP%=~%u%JM^De&53{zTEuP^vd$1!TTP56aB69%JLh7_dWd36*m6}y>gcK zJ$z@o`QOtk%g5KBzK7pR{}R2jd@b&zft#G$9vQyob2fj;`|SKvMvv!DoZt8G!}NR6 zE6ca0?}34g`F#&xewEF?FTJvSe_qdd-@|XDKa^fsel+~~nD60xzi9J+j9yuOBFyi5 z_|{JIr_d|Q$MfI!@D*P&-%PJ8UlQi`J$w!Q)%42pO@;OikaKQ(WccB0Z2nv6mC@tz zZwarT)Zd%Rveaw*ihtg|_;UO6_dhbPV*Y0MJpAmmV`akWwj<=H`R6G${PUC@hwT49 zq%PynS4P6;8m#X?>N6Qw#V_0kH7EXr|ADiuPh&*|GtN>_`1!%L%BWwmF464>wEYu z^zWfpmXAL_e4pR{9-IGA`c2I8GwB#$Am`G5d=J0jI`b#eE6Z=l>pAax_<`%qx6mug zuMFPz@P#*+{~EoreEj+4d-!4cA$n!``Y^xm;fs51{s-xm<+ld!d-$Ro&Hsg7S-v}X z-^2IP|Ce4l%d7upxPDw5p8vb?`Cc<&f4=%IJ^z_M%DjRZ^Z7qddoeu!FU-xq9$b;~ zg4cta?078U^LaV5_Gc`79_)J@kC}e+Z+gEypOocm!}0VzeD$}?zlUB~zAbp)!;jJ* zMz1Vi6}<1^3vadgPo`IvZ^xZ9aFcV}Bg1#xX8sa-W%Rh7#rI>rhc6#6-%GD7-=Dq* z1~TUNJ^V)cA$n!`KHxOueGlJqyUqU_dS&@mkNfX?_&)judS&@|{`)?^|M%GXFV+4t%Qu9_Z@uf` z%fDm(T6$&q-r#+opP&8?&Ce`95d3=A!?%3b=Kl%3vV1)MeGk8ZeiOa2d|bcp;hTnR z{+H;L<>UG9d-x&xT`KJSQRqW-%GD7AI~4(!*8aqrB{~k3iJCOzWMt$ z|LOF~^6~ufJ^V)c%juQn6PW<&wt;;Z}_3jUwD9>Kg#lr>Gy;%kaKQ(WcbPl%)gml8U2#XCBCOx{@I51T{I8-{mXGWAJ$x_yb@a;e@%Z^3et`aNdS&@VVg0^`Uq}BFdS&^z ze&557&`;1SXLc8QU*OUlr*K0~y}; z@PqV+@^~oEdfZ6^H}JlPpB%UKPxE|I#`c&$J|4b@FMrVdHXpF-sj_?*?xcYm%t~kl48Gj;@FUEt>6PW1 z!uuiL!!Lit=D(6&S$-0C(!fp5ZI2AU__yY7qE|+b;}`#Y$@lQpzcW8XuPk4fz6S;} z=J!2(4gDCsa+X(L&g;ztuQ%P{^Ob*u-$!oe^{C)U`@H2g<|1ay=bz8#9zFm0{6fgv zd~D(8b1nC$hRT|&_wZBn)%42p@%iX`_=-pE@jQ;# z17-Q)@aGM_hoAnv`9JXSRF%u_Jx$TkRm;b^1bM(sSaX!ZN`yRfPek;AQd@=5% zfg8;4d-#q`HvcXM+Vw~o+hhK*^o1esd-%FPn%{$7Sw23We4k(c(HkWvEZ-cw@8KJsvh^2M z+WD(2ALsWy{1E+{>6PW<{Jw`@`X`%zIlZ!coZt8GE%ZmyE6aC>{r5e5@n)O9fnHfY z&hLBpmGo=qmF467zK5Tt{~Eore4O9+@Kt}d^$*f3%g6KI_wZx%zob`|?+VAy_wXzJ zV)Or=URk~;c;DyupMFaF&n({({Iu)g8=toMw?D|vUuF4$;C&BYGHHHKdS&_e_wjrW zKlY6IgXopz~+liT%Phm z@BbRO-kXxc>pf+Be;lt0em`U!FW+N-d+EQz*PF`n@#mHA;S2w6$LmbK-cy#}65fCK z9)9L|^RGYHp0CRC@%5VT;j8~){vGtn^6~YW@8RqIX}*eHS$;emKi|WbZZUrhy|R3K zz2kfM7Wz-qE6ewX`F)?C{{@@>D$UO<-xqwT>*3ci-$}15A7AhI9)5=YXY|VQ@#nqo z;a9(C>wkh?Sw24gzK0*Ce}!IIKK{J*J$&s;Hvd}=vGY$^KF;rZ_#XNL=#}N;{Jw`@ zHe>UDoL*TzUhjPmU;i)j=g=$5ufv@*aFcV}Bg2>c+x!>lmC@t+5!df~_kEZ>rE z=jQi4d^i0m^vd#u!K+`vpO;Pid3kgAdHL%9&(F*C;pgKq_49vTek$dKeqQ!)z4!9x zowC*&f8O~X`&;m8J6`{n?&9aIvV8n`>wEYL`ZfA|gjqiQnoxcq=iK(l@T<46`9I6! zt&D!5=d17Y>)+P=HS`6{^5eLZ25vCF@8QR{Gk*`gGB(Bh@qF<;e07oe-_a{)dEdjY zqu)xeoaKEFU%tJ~|F#d>^G!L+`yPHR{lWCg@*Uyzj_>pH7u)pAax__7l756~;i zPY3UN_>$L|f0SNXzCL*0!#B|XgI-y_GkD*_PtzA2YUhu#d|&Xshws|O)?Y@iEFWJl z`W}9YzLH*9z9!7?d-(F#+x#D=SC%isoiuQhbK4`s*Do@^nqC<_p8tjE3j-P6_wXy| zFQr$OPd^6oLtgz^{CP3VpBI-f7hGxYw}!&ckGF-NANPm;2mJhgX~yUG{|P@&E<1Mq z&zEabUg+mbBlmBdKVOu!fAQyw?{R$A%crA&pD)Vt@#l;0;fvm2k53nWz9`E#ho3LL zhi_eM{yIKB%JT90m#>E55H=6^93KW=eP2#PupQ2WBtB|uX?NbMfA$@@%@zV;aln7O|L8;f4=%2 zehdAf^vd!xxRVBMuzugePrc37e;mCsw#V^bo4zpQeGlKWhxs$;mF2sP&wAg(FWu98 zE4{M(ir{?@-$vg>ubkz555JLqfL>WX{`rgV;S2Y&_1{mgEFZ6rzK1WOf0$lbeg*EN zft#G$9vObs+im_ydS&zrJ$~wYcs;G*_4J`|y<8ryr$6WQvnu2Ix%YANub20PJd*N4 z*U#d2*!nkNy=l?PT7SI$`5yaUP2bP!pR#;oc>enye(gJL{uv%WW%+ph^F90weQ~v2 zKa}O;=TW|gFMPMnzZbo-{CGMp7|1!dJu>`y`U-kw^mzQ^`&r+^*Dka9KSHl8AJ2c^ z!?(Q0{HN%Z<>UOmhu=cqLa!{pGVKEfa?Wj!3}3gm&3`SuGJ5R)K>ET!hW9=E4EX>uUu~PZ~I|8|CHt9`h5?-mVQrq zW%-UUzwhD8_p$k_=#}N;=SjYYAEQ5pURk~;%2s=H}JlPFMq%JTeSbo*d9JU{@NZr`~bJVpI%wMFl~o{jQQ2C<@LLZ z*YB!uz5ac;p2IibKO8GRKL2|CM9BY0d7Fx5oa)*So&Q{w~_jju+my z;d-wuAJ13c!#B|XfY*Cv`A*zP12;HczK5UQ-{$`fkGC?m$NJ;--uLj873QCzSC%hI z-va{~^ZOpYntt2E?D?uJKbqHb-uLiD2iW{e>6PUxgZF)Ye)%NCCI@tWn^vd$_?}PXrzTyz`uRq+*A7%N%v=11_Ik)`-yk2bN z^Kj8iK;@TDSuNQAPetv#?%D7(qIQ+h9CD*$XuNTT%?+g~3hSuwQ>~DFM z?eE*UzsmBsj$p|99=?OVl3rQ9$@r}IJ^T#)b7?zVuaxEE>r>yuFaMye|JS@;Da()Z z0YlEY?UCWPe%SocT)#4UoUieE>3jIv!_1#fuPk4LJ89qs^ZOpY{&4e`(<@_p%pZ@R z@8L)3Z=_e2kIxt1!&lbW{6C;q&hoy8AEJMRUOCJA9)8&oHveDgmF1VGV}OC2bK4`s zucY6$hOf_<(c}1yrY{U+cx{giUv{L;|5kcs^b2|4!*8aqpjVcUudjU%Uv-qte*(R- ze0+WHd-!$q=g})?dEdiV)Y|-Cq*s=o#+@{9lXKf6!!OO5zlB~IJ&s>|{`elgg?^Y` zSw8;%UHTrrtIp zJ^W_+QhH_i)xrBdzy6Qe`uC%+W0tQD-uLj`-2Pa4W%;;%-@|XBKaXBnKE7V^J^bQh zZ2i~JE6c~@?|b+L`n%|r<>U3w_xbhHk7@nPS$>o2;p^*d{hR5Pv%K%&$Laq=uPomd z9zWm1*B)#0zwt;r|CHrRgZDjrBmFXZW%>B?-}mtA=s!rWEMFYv_dWa={W0{)@^SsX zhu=)!NUtnk80Pmq{3QJvdS&^B;C&B2!2kc4Yag)VuPl#iAO>>IZI28;PJb7@GJ4qP z)j!PFn`NInFKty&@HBHH^GV_L=HE)v&$|4U_MewSew3d-w(#@E7n$2KK93v?uTN`E znE!h9n3VB)_5Z@_)!O6ie4Xa&HD&GZ@bVE$S@-pcav^|J5bTTeCrO?qYdc)jsG{1*B_dS&@BTmJ0%;(PdYr`h~Jq*s=Y ze?QCj@U@NRe?qS;-x%iiJ^T>;uj!TLshnJ^YGKn=hkRmhZ-$ zG;ou1+atqIoo#+Oy)t@SYgXY-8n}V?J$!AG`2*>du|0el?xcYmc;CaXKF9nK+J9zj zztH^J9zFc{x#o|jSI+XjhhNrg{#1J9Ebn{x&hyPT(<{rz{r5fm+RvK5oL*VJGwmk^ za?Wj!3}119`K#%b(c}0soC7JLr|Oyzk*R(SM&_S-vOj0|s)= zZI2A!e4)+%V|r!u*#GE#4_|zd`G@G0<@?h2z(B_QzK35+{|9>IEbn{x+KX-eNqS}Z znf&Z?^ZOpYy4C!P^vd$_@%KIadiqz_+Vw|SJ{~{c!#A$6`FEjLmXFsT-@|Xc#Qbjb z%JM^D|9uZXc&Yhi^vd#a{l15qL0}1M>)&; z9=`qyHh&qta+dc!`~>~p^vYS@_wcK~X!9RJubkz54?jbHG`(_`_dR@jr_Fy7y>gcK zJ$%WR%%4TCoaKEF-%EcHy>gcKJ^a$EZT=2=r8_wdu#nZKT18QWw2`1@48hcCUs`~bbO{8aiL7|594_wYr% z=7;E&<>Tu|-@|v)kI*a2$Jf8Uhp)NO=KnRlvV8pWZQsMU++_X-@}*o+5Fpm)UF@O^2>tvJ$w!Q&h*Oiaem*!x6toK zuPh(`yu#lPg|#me$=|9uZ%df|TgBlJ6Zk>VIe+~fA@`)b(Ef~bJv(fdu1D$nDdSt?`qUqOU)J~7pQe7>pCh?H z%JT90>U;Q6`g(e0`C8mb12;LhJu-aBtv3HEdS&!je|&%Hd-wtRv+0%Po6`5dK*s#O zhhKb~&3_TSvV2|m`xd^3Z@k0&7wDDc+w-%}&F_2oDf%9IW%-iu`1u}w>sp(?k6u}R zE$*a&o1EJo8Ghg{^Mmxt=yCl2=lF4Z`Nemezn@-NKF;rZ%s)D4{y}9rI7pE6d00oA2T4>8I$G6@g1oS)zIdH;azpU0cqqlfQfK8;>kz7Lb9fsFP0 z9=_^FHvc*F%CjDK(!dS8@8KtYZ2mHOWo(bNFHT<=^1g?kp}&D%S-#x(toJ?qvY*)e z-=$ZUkMsK;zMB3)dS&@IzwhB&=>JTwoaKEFzn1<*dS&^ze&557(ia_V*E{7b?|b-7 z^n1`N%csjgejw-E_Q>#4^dF#CM!(SG?|b;dQG5K3p;wlV^ZOot5&fC;%30p`@Jr|~ zrdQ7L>PtRn|K9Hmua|p;>*d>dy`16oazEyR%?n>Yk3VVt_4D^3Kb!JG*UxgUe_vid zm9_qn^f+K3=hA@;&_WpW5Sh3%#;DFQ2pXtAAfOUfACMJh|fJ z`NyMh)%?6`$_pKj3a;lc9uH-$rx6Du4P+b-^+)`F)^ksofB7fpuV=rM7g|pr*RzuA zQPz4knX<*RWg z4cy>(`W}AOugpJ0uZ-<+eTa{T@8QSjAE#HAuSwqn0~z!C9=>GU=Klx1vizpJp7Xwk zpQ3-6URfTmF)?t1`F)?C|JOGE4j;4Ya|yHjKwi&z-@^}c``zf3<>Tu)^@s6#)5hz~ z$;=%Y*PkDS^SS0z^Uv?2Q(ox&u71e&@2RvP91CTwuRffgzQ_Lc{Kot;?w_)Je>gtA zhp&9t`~mdJ@`bpQ25xe0dt~^kN6a5iuZ$k&XG>xFPa4SZzK0)v)cgs0e3<3?)AJrf zUfUzXuYAJ%Y4pnS@%->TeBp%oi|Cc*i}JJ2&F_2oV)|?7mF45>58uNtp}(14Sw8-K zBj3YsdeYYaU3z8t`1dz_55M^-^Y_v#%QtUh2LL(ewnv6vF=_rM^vdY*_;;l*3}krq zd-CUh)m8TUpP%9Lt0&|6^=x=Poqx*w=hvE)7kYk8a(%b*=ZCV^hyUL)46V=i4fr29 z-qbLEzW$K!Od0dvAAVo7`0sXnj!n-4JinDS|Iki0f#&zUpZ~~H=g&VL@^4ed{3Buh zkymW~b8oTvl{Np$`cjPvnTmXDvu`5wOUSo43RSC-d4BIEq&pv*>hcExQ`G3gb`E8G}pFhg-gJFK(!!JMH{9<}#`9-*s z25xe0dt~_P6U;BAS4NNLS2gaWfg5<=!*_hb{0Hcju|53O^o1esd-(R1=46PW<@B8{5e(Oo*&!bnCUyVCy;3ns`M}}`)W&RR+W%Stp>GXwx4DWmR z6`wT!C3_t7iMm!|6y26E1A zj||^?n$7=ndS&!De(TZ~1~RsH(RN7E}~d(0pA-}mr+^q-(tmXH5Fo$ukt&$jtLO|LB9 zmezoQjP?5-zVY>(p~-@o`CzK8yM^vd$_?+f@Ie&{@#|L63|@)fv~25zu^-@{Ken}3{M z8QWw16S$KGZs2_nKmJ+sFVHJvd-$&Og(2^I_>~u!-{n|){wm9l8K3pOhhNfSzMNiJ zK0beZ55M$6^M}(b%lC)*eV^Zd`j69(Gs_o+_lLfR-*B_{0#1-ft#G$9yve% z8uMpserELf^AC5@zzzJk>)}^iYW@m(Wo!>$71r;2_@2wmchf7&Po(dGfsFZm58raR z`5Wn#<+q0UeGlJ!rTNqN{y|y3eCPc1v-A5NexTd@f$9Ddm*op~nD4bc`n3jI0Tg*R6uPomd*6(}x@^6}- zrdO7)3f}kd&GfH2&Yu6XIXRqvtAh7E{090GdS%TYz3=nu@3-~uPG8O}-x%iiJ$x^> zUq-Jizbts)!;jG)Mz1Vi7QFA_C+Sb3SC)_S`yPJLw`~6}q*s=&4)gmSeg%Cuy|R2< zzwhB&=!fW)!}x7i9`rdLLf z^EW>KeGlJ5|GJOc`L8VBoBp0H1~TUNJ$(6nHviuA%JT8~?|b+u`a|fIp5TG zdiYW1E_!A8_2Kg;-@|v8+Wh_W%JTi;^EuzcSL|W_9(rZ@`2N%P@ZHilG z13BlmM~3fwzs>&;y)t?nfBd-)1~RHGL1?ak%+s>6PV63iH#? z&hLBpo}(Fn^!x;j2zHe>}ai zd^zr6PVIr8Qt6WBtB|AEMvpczgaU%jco3k3kH4Shd-!#i zng2g}W%ud~>Jyx6mugZ%Vs}ft+*O zBg5By$^1L$mC@t)b)+v0WO(1hZ=^qvURk~+ujjn)^YdSA^M6$HGt0;4U!CjWJD5+V zSC%gd^ZOpYi~d}CW%>5teGk9r%eMY6&@0QY58n6io9Vw!uRQB-1f-uL)X~+ zx6&)4$K$s&ePJNO`yRfAf8S&?|GtT`{NlWx^S*~)MZe>SoxjRi-uLh=^lztE&hqMO zPEWsIS6EPR{n;PNudt5!mo1i0WZv&0%cn6X7i&)+ZT z;O`ey>Guu3YQJw#$2`n@DS!W<;LrB^g*P)7G2?jaT8jg6#%c5aJpQ?m|B>=SzYnm9 z=i}dROXpwurpkIec<9w*N*3Rc^`^_uMH{~C#x%1KY@B{SU9Wbvf-xs{^;cLEP z^WQ|TEZ-Bn@8KutKTfYK-yJ@W^*wy^*KGdp@%gMQzbMS_d-x9eGdRDpe0!MR_wdEn z+5C^(ZpTkqK7S!eYe3Gq?UD2Tdh_+)q-U0I!<{s6llQKN@4UhM&$<7~@=Nl1&ifvI zkp4!Vf6DUl{PTT&{k=B-!90G&%<}QilY9@q^hWcKasA5j8^Zd155JXuZ_ckQ-+?=6 z;3ns`M}}{|+2((S^DCprv5Uvg_wWPsyYl&`EI*aL2L>|c_dR@fpUpo)uPh&55BMIw z_#5V5=K7W8yYjQo&F_2oF8(|@gg;M|<>T|m_wfDnE9jN8y!y6uzL#-rxLI@P{QS@K zYf8SqXZifR*S_=ft|1>Ea!bgKA#X~D(a(op^Y!^|UjIv;Tln|Q+fSc={ol56e%>Wz zT>l>kzmL_+$M0@F|CL{rjtS1ap742y?{WOg2kr4My2Gv?%JN%rCk@=>-1f-u%fDm( z6MX(FqsRQ?;qy4(!*Bhe`MbYu^DE1@rSE}(jQM>J-+Hh4-8jFp{F0(PpY^_n@B6X& zSNQx_mM;jO2l_tm$IX{>{yt{;;o|x8`yPJ9W9HAHSC;Pxf1c-i_=(Nt59aYxmf!H2 z`Sbf8erVGC3VLOE9=_S*=X>~d^iT2lDa*(AbH0ZkdB)~%r&pHOYb4~H+a4Ky$#dq1 zzh&o-GJ2eUmFWuu8Q%BstLPu3SI+Xjhwr67{Z^Y_Im`PVexue;ubkz555H*2_W#ZF z%30p`@OAWs^vYS@_wb$cH`6O;dEdj2(LcxIubkz54`29K+yCX9UpdSB9=?kHA$sL3 z?|b-G`e*2sv%K%&hv~1RSI+Xjhu=bf6uokm_dWdbzuED-kv~6_<>Sw9-@{ka@AwIO zKdLNWjXP=JCg-+ChVS^h&A)}Of0fbW`5Wi=J$x^HC$FE%^6AHZejsCh-@}j7Z=zS0 z-+()5;0E6J@O{tQ`VZmpQ^xjKfAqeGZ~mwGU-J5=EFbsZ_wXI`-|V;RkFtDWS_1|$ z*6(}xPWrd-@l%$sIX%y3z4{;X^~~ao*E6?=*DvorWB%)z15#e-^~{D7(hI9JUcSZl zM_KEMe}BRE`TbdGzK+MElX=#M_hY_?uRhuQyLCP@%a_{Wm^~ia9zFajZeLBWoaKEF z-%9^UdS&^vTls;UbK4`sm#wn(pF^*Veo6X@@5g+fpP&8;&Ce{qDt!+OT@9J^T>; zAL*5|yzk*xoM!V+(<{rz&trTKKSuxRm3BQ=mXGWAJ^bp^ZT>gXD`$D%!}hdRQIi_dWdbGj0DjaeigZAKzd2 z9)2}_j$TSu--@`9C%l5yM&j)4sc>H`1-$?&X zzP?kIUynO!;3ns`M~1KXw9S7V=T}CL$1fg#-@`Z4e~VsOK3-RnUH2tsXmE~)2Ck@=>-1f-u73bUhf2LPPkMn0N zePJNO`yRgFv*xGimE}8u(~$Q)d?)=Y^vd#a|9ubNbb-zP`V;x*)y(qkHvR1U+8#ap z7H+>My|R2f|9uZ%j1NB3*q2^ez9`?$?Z5Bg7ttR{uPi?iyzletr(db{Gt0-{ci7_k z{Q57l^`EQtGs_p_P8zt$rT-MW9)9t~<~!(>u|3Y8q40Xt_weIu%=gkO%P%cV-y{uW z%r4uuPh&*zrKf`q2EleEWZeM(!dSY?|b;-cANhd zdSz^n3=)}4W9)5v&AmjD%^WpXId1uXkeSAsE3%x!b=kaaqPwPpG zQr7z7@$o(Ouk-1f-uE5B^M zpI#X~&adcw55J+y{5|x_^6~uiJ^U2?{q)N6>9FPpGS=^V`1L&BAK>#tSw7CMey8u- zzaKl8@qAdcdj9$UwUBQ~d7%v#T=?au7}XnXY7pU!SO9#8XlD9gvk!}su8>HkTuEZ-I8_kDi;uiE@Y zC)>}@PG>i_$|zDq*s=Y>-T*FHsUzx?D@xkBILiNywLG)_?oT%H9Y>xnm?XT zzW4KA^_lteZ{IXOzaiy?=5OTuhjV^q%^x3s-{bf#`?{@vFCIT-`PDo=$T_z?GJFsH zd+C+YFG*j0=?eoH-uLhoJvM(Oy>gcKJ^V)c!|0Xe6W9XM*!L^ZZlR{FUMThwrie(wl7k-{kt0<(Gx^`yRfA{_~t)Sw8-K7vICT-fZ*V z&-s<*;XA%z^Z$)r zSw6l#@I8DV{VVj!^7Xir25xe0dt~@6x7hqUtg`FBGJ0G;y29r_zK3tW)%=_2mE}j$ z_rO5L{Jw{;zRmnHdS&^Nyq@#Ehp(qUm|i){tKXZi2PQIJ4?Gf{f5)CX|M~c-loxtF zHgG*B^7){w^~9eCzQ_J79kAn3$Nf>3kIx6+!!M^lnO<4GF&t0d!}rjyrdO7a*Hhoa zm)&mbznorKepQ&?_x^hLayZ_t=gmLE_jKV{;xc+XpIXB8Sli1_-f8|;&aW&VA3xt?{<^!&57R5l z$Jc|tho7MT1-){X_kDi<@3#3j(Kj*6$Jc|t&(F{8pVj=qm#5FEG4TCzSg-5h7yZEI z|2Ms|=HHOlbKdvxlk~6sq+Jh{v%K%&*A3hJZ=_e2Uxqtr;0EjWeSZEQntzApXO@ra zpLBhG{(H^8U-L7|$Lr5J*Tc8nXa2+V%JL<+lLl_Ee&54)tuucNy)w4P`5!;8@ICy> z|1*Coy|Vly?xgYm=sF*`%BTE|htLpWLI@$m&JsdaYeNW0h>ab@W`tovYzVQTr6o3m zmJq@q3}zW*g)mIJ+STrc{0w3T8H1Lwe&@NL=b8C*wtHT$=HB-_=Y7xL@Av-gh6}Xs zbND6Cn|~gCG3ulJ#_)q8-{LJfSbjaOIN#^+3tq7HAE7UnAGhyw_`USsq%W2q zx9@ZKxi4D#|E4dN-)r4pF@B%JAEN&~eX;!b`1Lvbl74GH?PNQC#PXY?_I(b2fd0nx z#qv8N-{ZnZ7ug?{oOY^#4U)oXqz*{3`lO>5G&3K8IgN zf1^L!{uL+leGb2cej$BvGT-O$yXc=pU!2VMIsEzbe@kDS%=bC`LHZr^#mRi1!ylvn z7=3XvU-_c&G2fhUeo{G*&ripaJU`ted{K6dDu>J4BEBc^RL_sH-mvp)IzNvrR{zp@ zo8a>BkIyl_T>2lJZ2Lnjzk3b40r@_MKk$~dzZKgT%a5Pm`W*fs{b@a+FOKCGMg3QO ziJeX;yhTnPmi<*q&$e#YO-f8{P~UyL00FY)~O9DX+a?>T>B`Tf!F^Y|S8 z=%}?n!uG}T!%tmeei41K{I;+LDByBe9}K^peg%Coa;#tM`y77mXV(6&>5G&3K8HV#{(1Dp z^5e%>K2Nm&xwU_V+9%6z!j({PQ6B!ubvgX*FU-G{z8Li}{=x8rBH!om>&MN1kiJ-c zzv(M{pTjTw()_3Ci{&@tN+`HM|9uXB!BX?zqAx~$^gn)l>~r|3%gq0jzF2+_u7rXM zwC{8HbH6tKNBUyaNBawKB@|r1_c{F9Z_VGhhK~=)s1Ls&I{s82IsDH5nEzAyV)^mw z3qFTG@SXVw(HF~~8QMVsqyIjKpZmS}C(;+oFG<)deV@axrQfLWljY|}zUm`~-@*Ew z^u_WsBH!omd+7Jl7t1e=e4oP~r{7OsEPotVLcvA3s}F{sa)~{@e1ne<#E7u|@$(a( z!_T7sF@13|-{96vl?Y|YAqmFQva3eQ~n(eGb2x{_ga}$$X!~Z=ioTeQ`41 z=kVL;pF&@p%=bC`9{QKj7bo+54!@6n7kzOu-{xZ2pp|f4}`_=S_Y*yCC9$z<50SLiGFXqd(aB=*?ro@e?{BR)1!P zeT@Pxk8+Hs?7!w8{44Xt@{1vdBH!omTj~Fk=L50)0@GLcK8N2&|JD1feX;!b^)8>o zpZTNpf3_zj9+i|IsD4C%H8f1%yq2&bLflZ z$ImBx4!?%}7o2~w{FV48L|g z^B?E>i;-jhjf5W*FnpiGFUc@}5A9#F{P^*R>LZ6=$@*P; ze*^n3mLH%0d=9^!{^@+bR4l(K(fZ2veGY#a{X;o^vHX(A_c{E+jjjJZ`u!EM{CNMW zK63bjtbY}KvHW>a`#y)?oMr7dg%dUIKg9Cm*ZX}Ae}ewsxc|lSc7w7FQdPGxAk8ve@3)_d=5V+$J#%M>nE0<5&1rcpTDj7=hGL5G&3 zK8HU-e@FUa`SJaS&*5kN)W*LLeX;y_|M(n!BmKkai<9|2hd)Zcn!Y%h?{oMiJ6ZqF zrZ1KspTB$#e?I*t`eOM*(f;u{{MMbV{dW3d`CXCkbNDmz&A*?%Sbl%x`yBo_{b%Tl z<+nz@&*3-jV(kyn7t4?DKYb2=jQ;2J#q#T-_I(b&YFBH2+NpN@h~+m$zR%$g)8CH1 zSbj_7`y77tZq|M=eX;y_{62@jkp8dei{&>)?fV>lX@RwWK7FzLhRF9h{66~E(-+H+ z=ile>^LMxQAE7UnANSwq@aNKhmA+VhbJTyIC)(e`+W$c9ljZ+U`z}wkFRr!yGglni z%?&^Q)4t0S?eA&rZ%IF&oV0zHC)y|fTvH&ch1ULY^u@{A_c{D-`sdLX z%g@1;P;gQ1>Vx6;?`7?`(ibB~{}+cJ6fk_B!|(Z-`CatI^7C;e6kNdfIsDP9Q}p=9=kTlcG5=-yV)<#&`*A*pUtMDU-|36xcZEKnfYE=S!%sQD{154i<>x^T zMZVAB=h0tAUo1a<{^@i0`SjN~&Gx@o{!CnP?fV>l>w(t)P3eo}$FHaR9RB=+%%4GD zEIw`sqPUo1a<{OWV~h4go$FHYtwKbhZWoO08- ziTRzS->*vY`re7>Pkw#x{fIveJk|TvrH9)540qe}8?pLVf-9lmqCEWLbBwRG%=}}t zzGT$L@s*nz{s~3C>Vx6;R+vAFzF2-S$NRx zflGcf`S@D3VKT217{^!q_ri17Uf-H_e2LY+6rO;=<>4QnV|+Qs+xS*Jo#!92{P^`R z)kh9LpY=28i{;1r)93Iz>2F0}EI)qy;dA&|Cs_Y?rZ1KsAD=!?v`>FuwNI8mjKv8B zTps@EbUFO`6RrKj=!@kqPS`7bpTn=JHvd=j#qx_I-{_jGz878b4Wny#EGV4!`(R>;EbA#qvv{_I(b&nf|%-#q#6tXYe`v<+axS zrS!$}i=*~^4!`I$^RJ^XmLIR5&*8Vw@1!qY;p0juxF~n^!SIJpxAuGJi;?GspZN8E zpTl2#hWUS@FP0xaKJq#Is@dkhMqeyHHG2N&bNDmQGJll5SbjUMgo2B5S04<2e2)1` z=!=nK{AE%5K8Ig)j``ow7t5cIE1}>5?fV@5vUAN}d$yf_#Hf$<2f`1Ee4oQ#P;dUG z^u_WgOkd&q9R9rX%-@c_SU%oULcs<4?{oOW=bOJLeKG2z|Bcc6_dbVTd7=6H(-+I{ z2)BU(M*BX8zl8pg^u_Y?a3vI6!1p=)%tmYf1o~psNB@h%4~l%B!>^=&hWbxV=Bqw( z`0cEJK7FzLCNv%j82$HoqW>3L|1Ven$?{WiB^3FYE{C6WiTO9s7t60QeTDCH_;vIj zq%W4whu&{r5TiHu}}{#q#6*Ce{q$?~(J_B&h-zn9!VUo1av-{)4z(oSblZX zzR%%jHQW5%OkXU&DDr&{zmoo4^u_X*;YujDD0lV2@Jp|>_8+D%Mvn8}7_NkZ3-~^V zpWkBsi}b~)55FS1|MWThrmM~W2Ys>pLM{Lp?fV@5{2R<4qc4_Uj4Pqw0>01TPyE6B z@9B$CAN`*j-GBKUeg$8DEaU5sV)^m@^Ev!l`Ze^$$$X!~Z=!!8eQ`2h`6YaPrj4)9 zoX^)k2l@Kv735)ZH+hu&9C?g9OdcmMB~OsiAOCvKebMVXJ6ME~!!{{LG2C(Eyi{7jd_ zZy=vfUo1a5JvZ&-Z)|zxZzJ|C{v1@`s}F`y75|xB2hU7t3D~`96oAa*z4T=!@mYub289eg^$j z=h*QlPUia@eh&Q%`r>51&*A6O--^CCneTJ>#q{&(i{;1Xd!NIvqQ5_VvHW=cd=9^s z{x9i^lleY}-$4Hi`r>51&*8VwZ=^3y=KCCe2mR~mi{;1j=X3bI^zWrFmY*3t-tam6 z{`+kIK0#kBKmNS4&*2x`Z~iOv#qwuF$B)n9SJNM+FP1+Z`96nV@qo4e5q+`zg2?wd z{AT*g=!@mY?>G1ye#(Q^erlZ^zhe1ixDpC3%3Xb2geJK`EmO`hhIZ~fBIti6=4i0;Br?V41XT|W9W;KWBlp35(+Nh z`y77X!`A;(>5EYxeslOik?(W(C6AbYF@3T8`0={W;kQ3({x$T)@<*)s747>Re%)i{ z-%ejFKfeF*IsBQAoBtSnvHa?&eV@Z$K);W^SbqF^ug~EZJYntsmA+X1yr_Mj!ylvn zA$_s@zR34E{GKPR{jcbY4^5gTZ&*AsdKajpy zems7k!yl$!MPDqxHq0RkxZKqT!!Lfr`hPloF>=g*d-y>C!}mG-A^I257t2pg*eiXX z!yl&qd-b0zzc=z#A36M%H?9Aj^u@`1pTjR)Wd4Kn#mRi1!ylvnC;H-KzR%%z3|jjy z(-$Z6eGb3$FXq2ZU!2VMIs6IwAJZ2n^L-A#=dafO*Yw57e4oRwddvLObM5#S%P)-9 z-{;G(MlhpF#h4`eOMb zxDpC3(7w;%r+sYgpG9Ac`Z&MD$G6Yn&!>MCeX;zweV@Z`|HRtAiN08V+`iA@mwame zL-fV+XNEDLfXiKdF#In1ee}i1G5(zJg93){bNGGq|4v_w`tYm64~l%B!_WD*^?#hc zSblNBUg`TBel`8o>+Sdy%P)$2pTqB@zbSojGT-O$hw10j7t1e++V?s9>?Jn-1L=$9 z$Nl#?{3`lY^u_Yy_I;ihKm9oxKUseKe4^9k@CV4v^u_Yy_47IWw9jn(?exX+=SK7A zbNKV<-%DRCzbo>64!`nqYyVI5#q#6FM?O!CpZ;4KKUscu)c%0W;V&kCPG2lPem}?O z@Mnx$|5MMi{V$f^9JTLr_`UQuqc4`{~851&*8Vy|CYX3ep%FipTi%fpZ*&=e#FUqpTo~x-NwHq zeX;y_{62?YOMe&oV)^w^|9uXBg#JPF#q#6(KcB;|Uc>r7lfGDf7OsSXi*i>V48LJb z^UtF%MvnWx*!Ma7wlwow>5JvJgxf#?qkW&l&zffbAL)zb*CgzfzR%$|(tm`$SbqHY z&*$)a=)Xu`EWa*l-{*<`uVwuoQvb>FuePsuR9fxZ|Kj-O^+2?ZDMeGb2Qee5JvZ^Y3%`RrDXFFP5K~I=OwH!=Js8wf_=*vHbs8Kh{SMzh-0e-=Qy- z--;`t;G*2s2g4uFGXHD(V&s^=`1yy=;TLXd{|P z-_n)i_c{D#`d82w%a89rd=5W-8*AY<`eOO<<42#vAEEykeX;!d#Okf=zt0on&$aen z)%eNsue@BWGTm(Uj@$N4Ki{Gfp0`yBod{Z{&7`GpC4rSEh2=`*bT zTj`7Cr$xTc;b+o+kiJ;{^2ql&{EVMk`>)U!C-Z%t=>JaU52^oT`D0Q0=`M%AjQkOO zvHb4H_c{EIovr;J=!@l7MZVABkJI1yB0K)X@{6MLx6k3v*v;C{qc4`96}9hk_$Bm< z=!@kK<4P#FD0lV2@UwTf_K%`3MvnbEfh(cl0>01TXYOhKDfGpt4?lkV;&b>p^e>_> zmT$MdvVEV!ucUt~eX;y_{e2F9g8qH<#q#6%_c{EGLhIo(^u_Yy@%tQpHvQM>i{;11 zug~G<(*GxYvHVnA2?ZDBu09xk-d@)KkLZh$WBrze9~3ZrpTp1onfYI-|77_UxDpC3 z;Hy3u{_MTYUn~5gB;LOhBTwufTnPmi@O=)yp~(D==!;Pw{^Ib1BH!omXa3y$pVAl0 zkMDnc4!?u`p7h1?>#g|}?fV>l`aafv8GW(*`26E@_%-y8r7xCW7`5+n_?`4;(HF~) z_n*(%TeV@b6*x%a!ioRHW z{Q8g2;pdf@zskjS{H@^7F8W`K8wv#%<-UGk_-zN6zX5$Q>cj8Cl~8a2-{CWO zz8Ll44}~8T`96oAT5A4Y^u_XLn!dvKIs9t+N75I|?}&V#!=IpkI(@PH`M44aF3Mef zF#O&_tpAtO7bC~`E5Z*77{1TpryOd28-20-`1tWT{CxU%(-+GxMdP7>(Z0{&H_(5Y zzF2-&^!Uf;@UsrL{=Z3IEI5Ju$qVu7E(SM)AUqb&|`eOOnxDpC3 z;QJhY+ELbi>Lqskh*2NwSB)#7-~ztS;n!B0zbSn&>cd|ceo*B59Dc#k=I=sZEWbAT ze5KFfcmB%!V)|nFORV`7?fV>l%S`isNnb2K{{B3l!|y-A{Iltcg`#jPA6U}c@ z|H<-4BEQq+@EfYlzmC3GepclB9DW=9JL!w%XGgxz;m@W26n(M$jL7#n`~~y}=!@mY z>*sU$z5G1!z5G0}SbjWypTi%Z|2%zhGT-O$N9q5IzBrlhbNCbVC+Lfl`96oA(PV!Q zWuuqu_!TGfeGWg5egS=PGT-O$i|JR;7bo+54!?^28T7@;eC1vIJb2E{=O%X8p8lGb+VLz-=KCCe3;j*#i{;1XbDzWS zrvFp=V)=3ZeGY#<{e9_+<&TCbLjjk&`e67S=i2-qPhX52`#0{t&*9Ib-$-99zb4!U z3K;GC9DY{4wck!(oXl6AQyV@n9FFbw8%q+m|5NcT#s%U|% zEhX1>*!gbFt3rF>SRN;%fByK*y>#;Ndq>1Qfu}lt8#(@4!VTj16KnkO`uiO7*GB&V z&YxI*HLiq$3(UXI;g6qZ^ZyimG3w{?CtR%XeGWhKeDhzSFP6U;awuT5?{oMQ^oQt+ z> zo4#0n{CLji@Q3K{N?$DBMz?bQl%LK0f9pNA{~O4i4;gRD{oZhk?SI^!-|xFOP2TUl z5zh}i)qYRAzvN1ZoBqKZuULL{PZ|G&`!D6zsrO&WWs~>c^ARr$jQ!UYJzi^P|M7S3u>ZvB ze>{Ia$M}2bf5P#LJCT{Q8yhC$zuj+x}W0 ze%^R*?zfgC`|bG4C-1l6h~E!9)qZPce~Y=_#OiNmG~YhQcsuAH&GCxm&y9Sa!!K#F z`97JxSpMS3_c{E$%gmocUo5{W@_i1!iT#) zS$=PDQNZYbtIOdR{m%Ta=!@kSLk>m0&*3-HpLV&OZ^ZKRaK-sPhu?j*wVy*@EI+=# zQ2wTl&lm0Z{G0e?;}68I8IO|--Y`x-&7L2WlYdISfP4gbIr#)~+MDK|LCz(gOD-i} zOrA}?irhr5;Q1uuHoN~iiQGZP`2FLlvwl1I{PIb}O9M}Je(B@<9>(*FSo52iSe=#Y z>vOEn5dEKVeZ=ysBj4xn3$C&CJ&e9se%!v#;g`~{rY}zB`yBpE`sdOY%a8Y$&*3-F zZ=o-iANSwq@LTEsk-k`dTQq+@ho9YQ^Y=7;vHbY)zw&nOw|4Hg+r)#mf9G(&4J6rb zmo`t{Z{J0{+7-6n?u;Hk&0v3z<9-vXzwvze9OEsf|4)urEPp7PFQ3ED{JqWBXY|GL z?e2qy6G@e}26)YA^e$$?b0!c&hd@*#0VPe+7qjbHh)(UOvZs=hDBB^DS2Y z`=b8)9R6bZ*U=ZtkDo929DdVvHhlFO1m!en~uPd_DL3aFYE#FWO%_ zw@lt|y9dU8yDK`scCdfh+;3v_H=Zw_W4v?e=W)DZ`PI>W^Ev$VcAKxg=!@mY?fV>l z4*f&ui<9|2hhISdSM4t*GXS2 zKkmQszjA-|zi<2NAL0*;KNNp#d^h)B^&h7`-##Dhx1arP^8Pz0@KpORm;K*^`%kR? z$MffNjK7fn(;UB8eq}U&K8N2*|5f^8`8kpAbNF-Vze`^%KmL4@&*5j@Z0q+OeX;z! zsC}QqFQPx~3OnD3<;S0|QvQS1cg)szt<&xK%e+sFALV+FC0Xy`Xnl{mdh&W#2cBxZ zD?4nwk8{1n>TkT>KF4@#=}+f)#q#6z_Bs3o^tYxjmLIRT&*6{I-;=&rer~j0K8K%j zi;e#%`eOO6$M`Gg&*u2W^5gaQIs9(=7tt5X&xzXi zIsAV5ZS=+R5JvZ>+f^;8MoQ|JwsnCKR(|mKSS&Lg{|*3;&I~+a_Um! ze{uaMlC1w)t&`XLiimFrjP<`edc4ulY5o5j*I%suXGZhybBw>0{!1LcSbn_zK8HU_ ze~7+Ve!TuZhoACC>;EV8#q#6z_c{Dr`m0}Q=WDV2c>R42zl?q+eX)EzXF``Nnvh>)&+8)W`oezn{GRw@3V7;HlQX?sl8MkGTF~^*>&JpJV*Z z^ta&n#qwt)M!$0WK8N2+|EKiD@^d2J=kN#V??+!OKVE;I!(T@K1o~q6@%sB5e)b(U ze`nGc%kPW&ulzq+-w9jaP0q0U`;z|{Z%3Z@o$=}|_W6UfuBq3*=-SEa|5U{Nfu~yk z5%&LEuD@9QkJsPl82>o^-*Eh5`SJWIFV^^$+xRx+_}Y?;@966$k8d#IcLGl}zN{`= zpR`na{Xne##pCli#y5lhl^mZ~e!RbZ4!?^2jr7Ixf1hLg>35m`9>*`1AJ3oiJ2k#lZG0shUssax zU3LBB@vVBpWL_`uRO2gP|90f~#Ohx>KA&TJrSw1N_{8!n6RWdweSHqUll~9dUu5|? zk+1s5;V)qQ4X(2LU$Ok$$oDz?QTjX47t4>=$LH|V?zZ*)IeoGGI$Q|_7v--0Gg{wN zTi<_)S2rFb&t1d#SgwEGT~qJxu4uhC`@`h*-y!f+>)+6A{Xa;L-^l8Jy#A_>9OG}5 z&+&`p$LsI&#Qf7gM)M!FpA*_a!R=xGMqLg+R42 zzl{D(^u_Yy_otPwI@|8A=cd{EZX=#%oKH?)+xRT5e{YiYef1hLgjr6-XezE*`{*)i8@vURyYv%Y0@1A;p|2-Pd5jRdA--&^z z8ecd27yevm;`M*A`WKJS=NR97`j2pYV)>QWoS}frU41b8^!sdnpQA5Ej=h-^eo(;h zeGY#H{kQ0gQ6GN1zkLqBg8mou#q#6z@j3hk`v0XbmLKnL<+HTD>)HBVCC)HzCugp2 zd@I+#FUk6U8Ljv1nLbVadssiM#qM9k^5gaQ zIsE1HH>NL^pA*_a0hhb_VEEbhTmNU!7bBl){e2Ff zD7ZlXl|RDuJ!iVD?;yE8)A$|o(1ymnT>sMUsgM8kn&J)klu;&u9IUIDWDGc>R42Km9>#zmC3Geokly1&sOgIs6&)ub?lM|3Ak+>m!F> zLB5l|Sbn_zK8N2xzn8vPe*E``luu}VH@5ZNVLfcKF9cn=|9c!i{;1b@AJg^J!I{_s`Vqw&k5^<0xl2# z%y2pUGV;6h#q#6z_c{DJ`rpwP%a7OJ=kPn|Py3yn|HSg+<6rr{T;Kh&ZGBHBmuzl4 zhupe_@d($y>Yk~O|NU;6y#CKd{Bq!_)_>?>oBzF2?ffrR|Ks)dImSOme>%r6mLETV z_c{E`N38uF=!@m&VDUo%m%I94_yzP2pf5%~)%oA&@T=(8(ih8**I)V7TAv(SpL@ky z89z>L-`aR7*Kah*`WG0V)^m< z`5b;9{dW3d`8i=7P{8G`J{bNe{a*TFqTC$o$+eFv)2b}@16SitGR9R`n?zNzXMOTelytroA~#5#Oi;%em=+ei|K#D@r&hG zhj~N+WBz>(zl;7i^u_Y$C+wBJ&*4`+YV*I^)pq_9%a1?5>~r|N^rzDo%a7O3=kSN= z=g=3+FU6Hma8d5+gW=~qZvEexz8E?7UrzWz0mJt>{9^hg^u?&3@T1Q!`y77t6V`q; zeX;yR!>)awC;TVPZ;(%x-xypJF#2EZa`+?UtLTg67efw3zR%%jKV|Lzk-k{|64O`s zK8K$+-~4&>#q$5>^Bk<7c9uO}T99YQ=X&BDjkCo&8SgIM*?2#4<*vpjkk2AtO1_1B zH#vJZtKUn`BR@+nBfmthBQGMilm9{PA!qXZGS2f$9=YMZsn0hTbxuCtd=v31f1LV! zlgs&gYFgNzVUop~@62eue2(=hr2i(@ODw-V@_i0}A^i{Ni{zR%$=r~f^DvHar5 z_c{EcKiPiExW>*`V)8|`%$d^#QV|b z7*8Ypn>ik_{Mu+dK8L@U{#^QE`SE`AIsD9LY(4tvi{%$b?fV>lCH;TU7t4?LqtD^b zrvD{uzR9FJIjydQlIe;NJr=!@mY z`^o2t`Fz&aT<;Br@gCimm~B>VB{X#efrHF-Z42cBv_ zrafotxtRM=tp3FN(dQUXHvJtq97PMgoXqz*{2}_kr7xBr9}hl?$NSOe@MqJ1 zi@sQXydRa%;eIT>f9mt&qG3;Rgi_-{ zzF2-98V?1G_I(b&i2e@r#q#6lt3HR{{AX*wkiJ-c4jK;yjP`vFznlJH^u;Uu==rM8 z;rI7j`=`+t%TF}y+V^?Ff64sI{5JYx`Nfb!k?(W(P4w@j zFP0xaU-dcs*{@jp&(asmkB?{NAMyEKKcDY?Cf?niPktxf%Xs=6dw$#hGvgfc%%2+< zkYnKe6UJ)0TV1dixyf)k*(tu9sN;jL7#n`~mu((HG0liF}{K zAEQ4lyupU&+hY0g`P=94(+6z7&7d!qAD?f04!?l@e)Pri`uiMy z5B-zri{;1b?{oMA^e>?=mLIRb&*3kje%i{;0^FQa_5Iy?VV z?QiS5rMSd+2D$nG<7c`4X%9|){O5L0UjI8HemF4JzbAUUG2?aXe=gTwtp3OA?{kd5 znEneKzgT{}{yv94oBrGM#q#6z_c{Dl`d`r(%a7OJ=kR;!Z`5Yz53&4s{e2F9nEnj< zV)-Sw5(+NLUH$#Ez6aU*o**tYK7(9$u<;Przb(o7?|aYW^w%|Q|Liwx{rBYh zi`D;l{e6z{=hNSV;}^@1*Wc&xXVO1_zF2+^CNC5)=FjKw8|fcMUo1aff1kteqJKVp zvHW=beGY$s{uT7a@|$oa6kMSH$}iLU9%}3RM{$|)1LUT|jQ`E`&zd{+@qfa-lh^+r z5sw9)YW+(W+4>*C^%txE@%sB5?0{_XU|@^d2J=kN#V zKTcmPKVE;I!(T>!5q+`zc>R42KYP&T?_K(0`Ezk46kL?M`h8m8!)<*>#1+P$Xg?fb zyz15V{%BW{^}p!8$?N}3#H;sAz5WA#vHl;=^%txE@%sB5;~$|v#_@~g$LsHN`1yae z_P?bsmY;*k3k8h%^Evzq`svr(`CBYMUVop%ucx0!Uo1aff1kteq`xP9vHbY==am1b z^*zegceAtY@jzXraUQwhXyZ+|{&^2gef)QX^{q+Fl>M{G{gZi{z&QTn@Bd95viZNC zkN?H$e}R7foQ%CesJ>q9T|Aa_50A~?|aT)Dp~Uv?|+|T|K_p&zTCfJ`Px%p ztiR9Ux6(hFzF2;Jw0_E~xn3RXlqYJOOK#6FevR`r&iVQ$xozIm^Y?x5)jh)Zyp0s>p za>i3rk8gQ2o{JxvJiaRfPc^e0yN@KmPulYW9D3_Ft_2cSh@@e2D#>@rL#HBl7ZTMww@UajI+qS3!NXGd6`D4Z-ljrxLi2odTs`*{c`8|m9E7ttR``_m{{tG|0n1e4u1*#f6y1pkNfX)_*tJ= z`xErV@-w6Ml}~U#r_|bh-uN7Q{Lr$<_%ZI6x<1=KZ;&%yFdifKk~jIi?ca(&TaNbq z{yM&Q^8R`^;-!JHzvAx$n!)kS;{FnAeDV25`5qik>UT#bW}uQ>RdZB=4`F}D+26Cs zZ7)vU|JFw*_kW$oCi9kor|N$N``^s|i<9+V`8n)w@gtRq{$8v8Z+disZ(x7(`>nr^ zkq61~{67`-xA5`F{VxxU{>R^sP|yB%vH#*^{a5|~`@5k2m_&bHBWJv4{8#q3?j`I0 zcjSzhr=I^$qyC;TZ*u?Z15efe4)(u~{THkM@%hQ;IKGDH=iXq?55)50^OMivkJ2xu zFP0y-?{oOspW5+#0)4Uk(!}hpe14<+Q_lCq4)%`O59G2Pjkmtmj@Mq!_s_@`uh{(m zk~~gsB)1Jry*{fwF?l_jBfd89RO?g2@x8_M5o>($@$GZWPYeA<&W~9B>}Y;`4u2W_ z>*VLd`$_v@w*>4<|=x-@` zT?_a27j>gn^^wb$oDz?)Gy4R zL0>FC?!V9B=hHuszF2-{)V|N*m(V|xzF2-%Tfq~*DbQVft)dDjQ;!cW7+)4=a)Ak9u7R!`DNzUHa~0g^)a#LCq6&=9P`^me`n6G zSbj~kK0b%PnErnB#q#STUwISPW9E~#9yjXz{3qj9&Q~wz>o#)5U#6bF)BZGh{yvTP zKY=lS@$XMnePi>N!}$}d|Ffh1D}O-y>uKxni{!>_PD~gNu)pK%@6+VAzgqtnlJnm( zeuq3r{)${T#PPP-{>%8A@%rRmat^uT@2nqs;rG|IPfwno^`4o`TLzwLe)>5-dvSim znxFXbrScKYN5-!c^YM-5>jC2e_II59J&4@)w)KA|Ie*yrO!6QZ?fdaP5shb$1(V13 zi@+FP{CT#NZ*BdL;`qeL#-}`^-X0%y?{`XKeA|%oMva@;-@1QT|F0!y{L}b$axeKo za>c(akH`0BG@iqsojktd15Y)+B93ns$0yeKvR6-ZKg^81eyV&Aj;C_8Hc_FRTwHou zf}du8$JyV7c0S<>Ybl$>g^8 zEw3l%|DSOSd60Z7x$XnYA0}rkHtr+$l849@A6otqd7S(mx$Ps%({Hfx<$r9PLmnjW zO0FBT{6KQXC&pFeUhyF-~o_{tuF~$aUXZz7siP!gxP&FS&|b@gK`)lgG)IliR+t{3de#_r`O{ zgXBJP-EzwZ$r(Qwzf0~Ve@?FWujR|hSYArb zSk?F#axZxnxnecT>&fHfW^!Aq(*R5fBA30-9<2T8@lgj}()NR%kqcG`I{I&M;;_EB-d?f`8(u{&5W0jd&%FEE3z$5 z>#*^TlQ$-}ZEkrkIe!b|-N=LF`2O|F=>GJa=O*93UK|+rukq*8s+Jcd?hh~F{i|5_ zukqt=pX2d!BmJZK_*pDJJ#p(RUw`vC{1*DB(HF1q!}ofifXiKdF#Pr(t^b$O7b8dC z?bV-^zVcc1Vg6IY?_*}19%`keTtu$>igA-?p0hf1@v!KaS3a0!IIR4!kMb@$|*=xvLL`pObF>gY?D7G4|M3-p2Dy^@eAKS}7^_l500LKAGp6UY>92$rW4K z`KOsYPQHoUwzcK=lJmDQo=+Ym50L9}E&nGuV_V}-$-U(7$Q9dJo^}iGzsOnSw(Tv) z`2G12FSD%|{E!AkjJG8>^&4Z|QNQzspN4DUI3q9l`%Ve2BxmlibAnGL z7kxA%!RL@0t~dV@axeK><*(cA-A=Cg-1s5#Jht~NIb~IAZy|Xw(|ClOzP<6k$rHuK z%gOa8>=>?v--`%i!}vyfc1ZAMrc+X`Bv&r5_VM?nQD1*Q`d)JX@z&pY)7g-yO(VoS!|!i>?2~Wc__i{JlHe zp8lR4{vH`ve{bwma>Xh(zH`Yr*~U%ew$+SpB&Td={2)1XSL5f&m3tcxlQRx9UP5jx zHOAkILVxu4pw=Vn?^EIL`ykif@7az#`*-H!@2?=&-&Z+^tnY8d_kAMQ_j#T{*7slH z`x24s`w+v&`xC71$HVujA=me%Jx{@Heu)|NkR$-R-u1`2KLz*Y|^` zr5a~-S&r{tMy~Hy-jS^DBgXf8A=meJ;rpV%O^=v=G&%hX+ixe62l{P)%qBOi@sq@U zx{zFOka074L9@+oc>0~V{hTi>?;)rEVEh!hZ96;PyiOkerSU(=BQ?gKkXvps{+8Un z(0E#S9Sh^B=lN?ha^=%@{@Q`O{2QykH+kOcmLH=0U&dABydSLo>Ey1pEWc3x`o_N_ z*JT@blH0a54j+$8^soPTbYy4kw_fE#^tYNoT z&~BVd&cEGwS8~P+#`}?bdHz0zT==%-r;}5^Fuqth&);q2v<+>)bdyVX{(g#F!~2&v z$@%+Q{SU|kBeq}0$z{h_{v&z3%XsZIZF~#wG~SXtW1jJ@+_NLJR(@1H^k@X!1{a~KJNt9 z=b7;NA+SClgwNxE^?4h7z6Gq$ui*0(V0~T!@6Utv{yX092J8K7ygvoj`%iek1+4c| z@csf=?;qgxc(7h?$LrT%y*`cS+XcE`ty{Z zX8ExAbmQgV@Kd)Gk4(e$bZal|Jj=HvH<9zngX9u&54n;&L9QX!oo}~SPtGAB*wcZxsZGidGI*P zk0s|DhMsSChx;jBh0ml6%Mluh54dl1U z8RU=2)#R_q6TJO3*0b>zGtVYxk#`}tkoO>Wk$*vMI>*+lgxp3xgxt&eN6BYiMeZU0 zTJ_0ik^AWXhFr@2Uq!Cf{E>%Q{|<5%Z|`Ap9{Cw^8u=x126+)Vhx{HnpFBn`CXbV= z$g70Cjs0Cg#&!JEkvAguoNM#9ExDJx8+ktYU~(V%B=R6{?^N@^|D8@;d8>`3vXQiS_LK zp92o(pN=!OO`J~(z~TJ9{L+0Bybn0sMhExD0j%G&)((mMX!7X$c?qr|&)vxKdh*OS zEx(MsV0Fve$m3sIeh0bnV#^;<{qHRABhNeD@u>` zAo*Hy3hUoWZe#!NB^NTEM=mA5K&~dgK^`CvlSj!Pk;mBnQgRme)2h>L{tC(Klk>=1 zkxR+>auwe7*;1YZLV`+IbQa}#_Axi8E3 zDe~Zk#&42)H!~gshuhEUu;XEZd2xp2>6zAE&Z*YkPT){~aI+l~?G=N=ePY^ac0M|S zdDDiLp9~KBt(WU{8o7de4tbRGeKC20+)VCb{cFgzT(29HbG~jR4>P};JVw5soW}aS z+H8*OOD;v;1;$I{8L&+di8n{QJqH6UNV|ewN+dOXMY&8jq5* zerr5IuHN7LwKuZy6uxWiZ$w_e{%%LEWBb1#S1_+8S2I7CJa)ac*G{fwelNLZUu*x* zQV89xgF{pPa?{UP^A-$Zl^rxtjgW49kH1H~&EMbIC=e#)ae- z@}cBD@=4_7xE&V|1Dh4 zUC2%3L&$xcpK5aL;dcAyld}#pzL8v(8LouVO)k9F_$l&0oAImUTJpch739yzOSpck zhGx*;narn?7x4DCCl6j{w_ivuV*igMm;5|j3FUZl`Vqz#lT*r!JIEzl8Q(*$B0oi* z$>VF7ynx61m*izUzBbs*`d`5Pza6=b>#-j>mHABaGTvStc{%wCayskZPOj$dJw>i0 zzfSHWkCW%_7djfsn%UOBD)JWOR@VOsx%Wz&-%@hfdB(pXmyqv~f41eXlbh;{KPMM6 z&)VGDucW^_xwqcxA4$%-#CQ&Q;vC~n^4!ynpC;F^y?4kNXIlOr^6WE=H{ZhA&zfy~ zD7l-rcPzP;{W+hU*I@OpBai;Z_(5_-qw&k+e%61FyqxvFC-<@bMq65c2H5^~IJuboGP!q-^>>t9ahCBod4jz9R@R@AbL{caj^xT~jq$h|=ZD#|jc1XY8jWut zXET44oI1zyLGl3e333N{%dPG9^Dnmk?M*JZ$heAJe4@QxQb(SDgz+WhOuoO+M$RJN z3C8msKHho^93IaVpHZKJGQj#nH{0#~ja<}WJVsttVf+nw;&tOSx3T^Y9c{b`x&3S7 z9m%bW+ambRZJ=4UJN%y#2K@)+NrK89R!t>veX>#j4tm|T3QwSO~t z@gc@{gG2j$m)m%sCJ$a_{3`3GbN=5Z56v`xjNDdf{55%iyl&Wr*uO=;*f}wtZOE1E z&+g>K2b*6?F5~;(za)3C{%Pd?zMT@c*F?_X`!RnYck=!8d&rrG+3i0~?pVe8vyfcN z_tW1ax0Q1|#m|2!-+(xtjH#C71m(bUKv3kaONM9wX2Ghw%h? zEISN5l(o0F@iuO5yd}Bs$8aEqvKx71i?ESH`8m01`Bn+8AeVg~UMLUc6mrjZ##fN* zJ`GQVL%D%Gbe!E@CperxO6S=5;$G&pS!s#-^T~yq8oxuX*~It<^7z4t>M3i5mo>0{ zxrZ8Ok<)Fvr))=__jAj4C$|+E?@OMTV|+Nd<~-wHkqgc-KAl`qYkUE@=nUg)$UQc_ zDR+>EkFxwh^2CwG^U0Y97~^FcjHhxJfh&-R; z+fU5>Q9*91vHJMf3hH+pZ#+l&uErOWTMjmEC8u$IddPX@mOn)ZeBl}rCL~cHH z&BTBFn>=)w@v31R(4V^UJrenbnHNP$>SdwA5LC8W_%)f!NCdU6?a{t!G)55+$e=2f}HzF_G)Oc(1(1yl)ke5t1K8)N;|5$S27M7n% zp8tAiB$V^W&2^SvMy`6zay+a+fBNvjs8DVrXCH2SpYm$sC&>lRnZJ-+wv**=liPMP z{(!vjDC2Q*_qE19lJgHTUMD;ZK!1iibBs?RkF*;9 zhP?1qhcV~DZE)+bhLH(Jh+5RmdPmuAk66E9c z(-QS-$;0=Ue*rk$KM(T$`8wvy@3#DQas|&n_bPufEpdDJ7z%E`=P~0~!Qu8Y>g^8d zZE_c%FZ>_5ny;UJMIPkqt*QCu7xMMoOmZLVZ$)k(&mi~m_V*&sC+{bpTtOZrSCcz< zdv)X-z8`%dxtKXVHiPliv47VqXZ_ohlkX zdjTeyHRyY1Txd>0ZLs?}v^IN7F?@XR~x$$1)%-ib4#~Q-2N(I+0p+Lwx2(7(qLh`@J1LPmbi{G{O)AzLgj{nE} zt;i*uk3Gl(AKUnjAs79Q`$ODi`{_dRjJu4lAs60hd^b7o4&!;`*{uH(dF}_6|BF0y zNa%PdACar@!TC_WB+t0t)_>LTycYA{^?>n4_q@`Al*P zK3E&dndH9d#+Q;avy87J=du1B-m3b$8{bB5&o!P)UYKqC z963MVcoDgY{d z{E3jZY%yUu4`!&bZk47IN-3t0u;O54kqY z=JQc<>i)LhULw!<$e!PQMouBGS7iOq{?PK>$-|3{k0mc)egV0f+(~X{{pZOI@0mYL zuD?7x(ciDgd8=)e;I+c*7T6!@r`ziTdF1LdjSmE8g!?rsOLf*uOdCoN=3vtI6rB+xR-kspLmhAHPTw%8TTdX;%MTa_7G-|BBrHnen>6u>RJP zwZ*l|k!^jon6UZ&( zv*nX7CJ*rW#P7(3%sa`WT<=H7Rm}UyDO``Y$n%+xk+aAX`J73Nsk8ET08_DzWivgirM_&FXJD+xwyXr0fvp9RJ zME$qOOExuLO3vKYIJLz3w{Q#NP03m5#ygTL)-f(3r*CasMQ%$oK9@W<)A(j`|6azu zvKF4-8-k6;J6XRXTqs&Xm4IKY*DQS3A)9-*|%YhUCuUjekn+s51UJ zxvARtP;v@iU;h=k1iuIs%Gu0mSvAJjljrmP_5t!d-rv5c`h`~iE!C(0F}ale zTSl(@nblwOARAu?KaaaPxoscI^U3L~Uqr4x*79<4O~dAi@%)XqGntQ*Gq_%BmfCn`er3-`HY6`OIV;h>ZOH>1-yYn7vDm8iafGtvjo3F9=gHK2k((nml=OW z9=qOn+QBxS;v0=OAJ*AvvGV=RYGa ze8=YFTXHvkQ7)9#4z=+O*INIklXHHs{@{INoFBW$MdXpC>n8jo$=SczCc!6@7oKZ; z4!HpzJPGA$a^ZQ#caXd4tUnKt%bvCN|3qFueog*!mj9DHHpl!ia`lUr|Cd~Oh&?{s zq|C-Mf)8qhvJ<)H`YjW@FS+(+Ex;s9bcKbEtkuPk&pG6)dUrg>^X8YqRa?07Z-Zzj($+weB z&awP{`M0Mh=3@alb&ll& zBNsiiMxsB3UIG!hNHa?4-^RV$H8j+|T5F$YryveibAyA}AkVEfUQAxj ze9a@Q{X*v3k~_#HX&@)-F6a^=a^-YevR8sq{=}j{Q2eGe#7WmQ*UDP<|zqvQR0KBve9$kV+*DBSL=U$M<#J z@7H~H&Rcyx-~Yeg^LRY#Jg;B(bzS#$U-xzY*l~p3bBK6&U)lax`knN;^gi@ybT2)M z{ZT@XZhq<&%7-){APBl@(u;%({k zZV~T859jZDxaf8HdmLlwgKA0o7wF!4;>+lz-^u*Fkv{!H@gL}6KZuvpecy;zN|pL9 z`9+S8Yv^e|i#MSsm_Ovk=WhC`)#82VE^a@QK5LD{`{>)Vvxh$+6;{=@;%6??X>D ze|Uz^AbNBw@oakhAn{^)SbOou>B*OCTlr_$>CGR$;j@rF-M&9a_l8USC-nVQ#kbKD zmW%&LZ+2SBKWXQuhxV8LxbUu|uS-7_A?xF2c6>GQuJqC#^{o1((^rm_{wts#_)69r z)96zfzlfexN%qf2^oR>Jtn#+f_g{>)-25{lW`CDfmGj|wJ3rS)wFe+R0>2-?`w@}G zk-mJAoKK_ZQB%d^=oc1TXO*8sPooc{4;m!(&!k5>#K+So(dW{`hD!WOdLn%*eT{jM z7@r^LC43+82z|p4iN8$WLa&!5?K!(v`sW7v8unK_efJcJ?@dqU{kDhb7xqg0aC!;7 zm_F}KIesV82Yo2%XVbG--n;ZT*5^}t)FMg$H9c~k_;2(B3&l^lcayyPQONcC4KkD;$P9%u|3CZe^cTs z59IhN6~BodvrPP6`i_hBt^M7FUi_taDt-IKCRThVy>VqZ9v-Fdi&<2zuIbIi7EzPkmRsEj`L@ zB@gLN?|Dg%*9YlCFUWYxpqG9x=fiCJboTe7^iwk%S_M8upI1ZrV-7w1ob=c0^d$3# z2ly5)ezKAt}3n0Qb6cKT5I zBD&Ac&+ar8O#XnHBV?9Z#M_I*fiR$cmY6a7LR@tyRjCgO+bD{pUP<*zwd+7rg~ zjp#`?O8VCHgxca===&nXAEK8sK962*eh37ghw0m|mh@BT2hK?RZ2C~P=Pml829kaa zy?vzkm-NjnZ!f*HhQuGC7yl#WpQR_UJ~f6&dlxaj34O^$Ngqddu|7%k_VuOw{`4$* z7JdKya=eYAr=61Wo~1{IN&dxl{AGz>K_7HUd;@)KLrMQVJ)yE(&-_Mj_UDaO{~n|7 zs3h^{=*34RKFlHQjr84MrEfxyj*#@N>62=Ucc+KZ2h)!;eLlUI<6|N{X_U-w&(U+} zuhPr^tZZ$6Ila*lnP1k@=hc?@t#t3UN>=*4^s?>Zf6zB@y>ybEHCW24I#k-bW`KAd zdRV-8Q~L3?;xY6_on-%Yq4zu~+e@QI_LlUy^k&@N82WCm*Pftn;rj1I`hiojzIu&5 z>02rPeR>Jsr~HDRbzb)04thL&KRx=K#Fx|OF#aEUaf6#e%;&~*?*E43iS%hBWjyqw zj~^wTO<&3TKcnf5H_G+-lk|BjWPHw~Pu(J3O5gsK_$Tz0J!)C?`Hmi*D1MM$Lcc_B z)J@`>X7G6JBHoq0rIYxB^ssxxv*{6ci;ttn^%j4QUbnCKV!ErR_=oiI-Nm=ki<88E zr{{DQzeI0Duj7>ZCMHY#ZS=FH(jRT1p)4>E%ZxeK&eBy`P=_n8c^kPc0EIr0=6YLEq2*o=so6NYcMUZ$@8FUv*C6 zchEzB6)&Slu|NNzk7fQEnbN)k>m_|d`lQdro6{rS5N}NneM|g)dcsn12R)I;dk)>j z>-`Dz;;UqSd4b-ZzL4IGzJi`i-#~ZKzo##yAEeKs|4mQWCdXIJVbb0$^d|IEgR5Bc zO*?ws?UFv39@ALjhts|HijSwKz9s4B(r0}uzKnk17x7K>&_m+i+ws4Om(%BMzS*kJ zd3yYp;x)6R{yTO``lj^VY)?FWEWH;U9}f(<9c1-%FpqK|IZNmX}8_ zXZ;_ghdkWWDt{*Zz!>pT`i=oo-%a$*C#C!!Y~Lz=h#qRUhrWpWH*&bNC+dAk--14; z$~D&ZJJEaET_KT03_vG{a)DF6Op9(`6{Y2RCRe2Vz{^c?y| z`j&bUzmvYbw)jDMOil4K^zuthtoB@&E$tm2D)CL}^LV`(OTX~Dr0+nV#lO$!Ne{nT z`agqSx2U>R{z&?|hiVf0kqUmQc9M1S5m z?ms2)eWF+COYHYm=$q-E(AV*OlrQO#d>>^uJ%+xYp2hc3%IRkr|2KU*zOy7b&i+--x5_ z@;m6qd3~2nkAAs^6+hZeUky7MpBct$;_ua5KFik{zZ&v1FAumA;bsm(k14USq}Yr7xvd_R98-UzYf0^aIR)KiwND z<>$~(ossm9(;Htc@pI`**?(`*r!|%F@CDsfTl@$5cJo6{_#B}R{Yd;0efk>l>qkg^ zn=yS`ddW$duTtsl8%g=O^sGN6{t0?&Wr?3f4>LdPfX{mRcK*G|0eaFh+5Rbdbkhhc zeQoSUb3BAL5^qM|LQkNtxk=&&(Kp;EKGx1}e&`UNne^0K#Y^eY^e^cN^n>(B`Xzb< z%d1x?_4756^4ic7`S$}!^kTm6I+T7qR{CQEy>Xnl`I!dO-VJ=8e7fytD_iwnOpm62 zLSOQ&#D7Dd{;~9@`DfQmc|9k{{y0xhqu0V=W8x$E_Y~%z6*4~PE~!rpz4!s~MEaz2 zVOD+m(bv(3)A!RKp@*KA^e@s6@Okt?`t-w6|K;>)JLP`aCi;%sWxczL-k5%fzOK2% zpP?U*5wBJx?TL>Qzk%M9`R}5iy;I^7=;JRpvD%kPU&r?;ob z68fA*691X)jNeO7yiwv$(HqgLkL3Pi`lfU*%e#-hnVw3IWcpnCamGJRFTF>$w~#)G zzJb1*{xdzKy`;ZDpBE*5?I@{VG}j+Z=u?YizK*7s)9!qY%ibg<@#Yfy}W)MEB{n_SlqRi&!P|I^TS2-L5yEUUl}dw*U+Q+eDO>AQs)1j z-nfmV|Bb%tPVp1;@ys7mEd8_Zcx|gbb?6~!lKxh@*ZlA%KJDmBPKx)Yw|BI$;)l?S z|B(DS^ypP`ygXv(r_ZD>8YkGW)Z}!)zZtl3sFI=I2;Dp8eN>-gBJPcL;qfeGI+)afzQ!UpZNP4L#ur z@gL}?W{IDtPvi5y`eUVjr+$_Ad*~aEiM!}4tIB*Znx4kvr^Gl;)kC@7evzIrHynn7Wp)p_gZi@1eKP6+cBEJ6ychIH_+u)8Aoxi5%aZ=+j3_`u_ARdJesG zgv5`duR1U7dz$WJ{OfcV<3FTd7$x~P)059h{=M{4w(lr?^GHb_`iRtjY_WJldRCEm zD|(qvd?>v!Mz2{oH=|qq6;#?2nu2s~X7m+SAvu{|C^^56OIz zNsrtw^Is7??hlE7f}X?sebeZT-M3i#dkH<-DgGIK1N~Qe(g`^}PSe{jk>fLTywv~r zV)1L~W&C}Go9Xjjm-zPdvrL~x@5%QoGwH=|OZsAZ(yKCGJxO0ONBmWK7=I7qU3%6= z$-kB!IZx96NFO_>UWoaW(_M$;0xo=lv}es>@#ge7N5s3(qvq(U!sQ} zmG}?nr_2wJ;j@*#f$@LSXO&BQ!--O#IR5?Jopf)p?C-nj7t9aE(tFYu($fw||9nOdD-+*OKlPh<=wnj9b&S8oI8II5cNAFLOJaQ1?~;BP zee6N;r|B`=-U@oc9}>Td9{r8@A$rEH6RlE~DdY^bIee;jv!|8Q@ z5Pz7yis`4(=P`Z(J%RaG(f2Kp_40c9(r)#w_J2>`&G#wF>5)kif6+MlD`vO!SG~uj zJ<0b;{B88j%-@!t#pjFN=tH|m`l0mFsp19nm=f{v^qeW;&(Z5%6=~IX0o_$ad<8v} z@f+xAl_h>Beb&b^9)G1L@O_YT^elRv$_p4LE=5>arcWm>8l;9{5^X6T=CE75qaX@(x(j+|D7I1KTF@h@@hOG?WsFV($}L$ z4HdtY-gB^c8{5;w@278|527zAlK32Y1pDVvdh`g1f118BOMEVUH-B&9U3#OD62H!l z?F=e_$(Q(4 z`l?)UFFk_kr_f#W`SfCL?;Uyqx3`XdJX^}!OP@1b{1|;@73r_aPf2}qc2~CAa}(V~ zZ%3~?L;Alj-N*a;>GTV9FMZJfncv6Ir}h^wq3_r!^_fmzT2uOWG5x~z;vdn6RubPt zKU-V;JNo`>#ebnsswaMm-u@QxDpRGsi|CQ`r6;ep+8<3%Hb4A~PZE74w?B|RFI3_^ zbl+{_Mf9P~#UH27qR*s<(U;Imn@RfB^hP1#+v&yhKk29FVNXkYl3BkN^b*D=&=1fZ z^bMD#|3}cvE{Q))kEkZwpKYhVM*L0sO7`FT^r%}UelvXz+jo>6!S~hbJj3IovZQZ9 zFJt{<=(CvqKKdehFM0|0??8G;11T?yKArU$Ne|`znL;1Sf4^d;am+u{IR7l5kEbuC zm(V|8es4`VUcRO;ts%ajezuzU8G3Xb@z7_b{Zs#u`qrWEJ}Z7Jz5HGAHuMXBiFc!W z&xjAEm(CN!iS)7;B>n|@>H_gs>Elm|FQpfAdmqy`Zk6SMJJJP4KzRC1;k4gMs`qWCY{XF{i_TrDwH($8Xs{hmU_|1}kj_pUqm(t7V zpV7l6NcOB?&gw5n z`x>Q7`ug-i$0Yr2^fiMez772>`>z*$I=7!m&qK6=_lDep0QvtPuYr|Ge9^0&}ev48f`%h>;?>2=xP5!0o;jX6FW(}#xFvHJHe`c%Gu*o_{? z`ECIH0NbBQpU&}COka7c)b9y;@9Qc$dsaKhXDmDf!FkQG3NJ z&ye2p?z52YV}L%e{V^tSjEdLzcaO&|KY#P6a< zEEGRN-@*KqUX=Q}7D#+udi)CUo9W*9;_>v*kHnMc+dq@_^$>b{zHjWIU*P-3MfCD2 zlKx40BfhUSkG_NNA1|l-R$OO|hxPPS#&4sC^Y6`nq)-1l%u0Wl?ma7h*^W2=kSRV9 zGo}5__p|4;=!J?Ycv9(uDr691?jPoGOqOO*I! z^!=>QdU~oy;&;)Ded0&x)7}ZUwqN-rsozqTe?5I3>(iD#=|RcgjXpG2d@wyaPrQ(R zf%SQezJ>iakKTyayPN2V*^+-3eQdJ$VR{(-ANsl;5?|+KsegQT@o4%Qme-yh&i3}9 zPwgq`o%CkI#f#`U^rz`b4vBw^p+LKdXyaD|{1M${$SD1JY`W$X=5WSq~z4TL|l70ex=snd!%;!0J6n_umb$V8W z%=atlYpTe2`JCRUNao{h^r@93{a*SG#+T7UTk-w|eN{{Gx^twxsj=dB(HplA??jKJ z52PQsUE)X48{H}Xl#Uv9@;?y>zbZ|Bm#fe4nmAeI7mAPS5q=qx5}T z56+_Z590l&JbD(rgkJoKq@PYt<@-!4jECa=^jdAL`faAqswDmsJ*1}i-}E8Z zh}W1W`6FwKH#Ux4-*|~^uMIuvZSn5(=^u&@r6<>w@i&UTyPo)S^aT1_^rZR{zn)$? zU&`BS+_Z=FKgIZ!Bb$bp&$aWVek*xD@h19E-rtF)XT2@sr!#$3{d!jZKJ*Cwo^Kkx z_#HVOT=cs9{n5wh^9pNN`Cp-L=iiU6rtdx_+xv=Meo}lNee-GY5^xZXDS^hjdte*G^ zde$}Ko9GccW3BZ2===AJpQrB_C?390+7tP;coX{O@5DRM=bdP2m6u8ne_7mV`wmGz z-gr&?djov`buQy$j!F7u^f~jzH_%hrzMb^5{JrBp>8_g6zAB5PzJo5y_Uh4>yej40 zMnBa+(zmCVvHi*Pse>ec7JbWP@p1H+r^KJ9$3HLSFQk{86kkW5K2Ll%J*kIm|4+L2 zEh(?cYf^vLi{cIGn_m!bNuTzdcsF_$(+{@uzb^4U`u^GCPtucK5uZm-jgb1RqDLK( z`hHCxN1EF^ak|0^cZ^RQAyu}eu_SfK8NK$PG80NSLst(-YWWTrr$&5H6A@!e{EA?$o&&n3> zL_fv&{`B}fi62h)aXx#3zP-NepCxvB`gip3mt_0D(8s?a<(;CJu)o9Jl={V$O8T4V ztIQAGNbhL>TRiSGkPR_1AhJi^gAL|tVnO@iYL+JSYNe|=pFVGw9l=fA7 zN9sSlw`?zpek)!M z(v#-O{<+UM%Ad*d9$8~!8_LVgax9S&3KRa0J6GhK)HMQc~(G%%C=~0uVKOFQ)9N#01 zM}&mz=J7a%@jL#O{Wpj1Jt_XK9e-MU6FuQuDSsDzKY!1*j9yIthd!3$yXw2rzLnfR zb?B>JmHul?Uo>0%PWrkVWqa-E+j)O1g&qzRi; zT7HRse4==*6^KXCAG6~V#b?^yO?(-BJbjbx zT_ye}ddNWWv&PYX2O@8`>Q`eW>&y5C^m#W*`WX7OCgMGfqy1YtNPFG%tOW5#=+TUy zL2pA}Y8>0Y(73g={V(X=cH#%<<+0+I=)2p9H+WC-hukZEFFmZicshMaOYu?k&D`E> zJD%mQpzo${r^nyX+N$4S`qDu57Ot+LqCxEMbM+@G0cA-y)nH%J+gsp-$PHXCGMlwrB9}Z z(O;!U)0f)u?7waFX17aur|402#lu!feaCMSzl|Pxt#}9e?wR6!=}SHrchN7@6Muw$ ziavurhyE_TE`1w4dadL?Og|nWevux}_Fes<)VH*$#5bp(Z7$x69(kL1Aw7ZRO{NcG zc`wk%a(}!>PonRkXEFUzdgL`y{$=`{>%_192>%9DNQf+MFanz?@2I@L@@(Z3l+RMW zT>0n9_b5N4{H*dCtAp#`M0qRaiOL5k&r)8jyhQm-<%^ZCQod37cICe)|5N!TOw z+kd0-yOg(6-dXtr$_FaXQa)PwW6GaV{*v;=%9ktuNcrc=w=4fa`9b9;lwVd}>*L`5 ztf%}Y<+m%3RerbfPRe^IPf_ksK1%sS<oGh*!221NcwaCsu#@ zy`J)$mB%XYsJxGIhjOp-@yef9zEJrJ<)16xrTn1sv*I`<$*0OXtNnhzQTe^f`zX&) zUL@{6-%VFOU-?JMzfitg`7g>(D8Hoq>Q94@mpaNDE5AeeJ<7W%Pf?z(e7N#r<&%}q zQU0d#RmwLh->>|X^6>S+{c*GM_R1en?pFS!@_EYFDBr34sPd~m3$EV{$~!7gRX$XC zuJVb>XDEM1`9|g6Dlb=Fc|&mhBbDE-yp!?=l@C)sM)|YK=PG|o`A5pXQhq@BdF2tG z2evWm9l_8YpkByp!@Y&o9#{<-q~%Fied-yGbYCd%6= zPf?z$yhQmN$WRNh~?NBKzQk12ma`C{cCE8niXOnH^Bg4@?bc`M~f%ALxKl}}UthVqY; zZ&AKa`C;W3l-Jo3+@2`qcPmd-o~eAC@~O&aD}P)0I_0~RA5#9e@@iiPx90}scPmd) zo~eAS@@JL5u6(WXUCNIt58WDE-#W@~Q{F~-H|1%{^OQfK{59pPm4Bmrukypn|5jdo zTX6dtDsQ2@jq+sW!<9dxe3tUJl&@31SNSpJq1%J&-$;2g<#Earl=oErpz=)R17GetGui7H09aKCn3`at@1v~bCpk2K419<%6}C1*YB)~5C1;6eo@NX zEAOE^O}R^Xf%3ie{_WkSytVRP${$khRsOj0mzBS- ze5dkXm7iB$XJ2srqm?HqPgg!p`3&XnDBrC7fbw(7>-`v9zj);i3Yj^2^E_{T^KZR?2%R&r&{K`HRYzDPO02kMh5iS3MY9znhe|R^Cnd0OcO# zW0X%*{*LnX%D-2BQhCikg6rQz`8~=9D9=+qUil2=3zaWdzD4;#<(HLTR~B6V+mv@u zo~nGf@?zyB$`>eKqkNb0a^?RhuW=~2{tcDir94r2y7Do~XDEL|`9|fxC_kzEs>70mDfBPT>qPucToO-@&e`0DPOF7 zo$?=)Ur=8ESaAK?C?BAFg!1QAMJ>l>x~ZsmQIXDOeke1`Ic%2zA@T=_2L`;{M2epz|l6T$7fU3pjK>B`3| zpQC(@^1aH-lwVMO?O(z5yIJ|&${$efRPIy$i1I1QUs1k7`4`IfDnFq->|}6z8YsU- zd0XX)${$efR6bF>vVA@CqVm_2uT{Q9`Hz+-_{+Pf;;Wvr+UJkIMtMW!&6US1@2Wgm z`B3Er$|otGseFO*rOH20zESy3<@=TYq5O>UOUkRB4(`8N%Ihj`C|=FpztPIus`U3N zPgH)t@&}ZsDIcmlQ+bZ^0_6`YpQwC_@@dLvD_@}e4dtcES1JEQ`Pa(#DgRCRQRQcp zhx{G9f2%9MNqL;|B;~!7r-=K-$U#@(!@}HF-Q(o;)|3| zRz6$#GUcBt->Lk7^1qdbp0nELA8$34H&A}7^47{bEAOj(sPd8G{`1W^<&P_WM)^$T zuPR@x{4M40DqpSqbLC$u->&?7k5qoM@_6N)mG=-2 zwa0Hi4b(BXbk5k@7d4J`@l#fzAS=>LK zpHV(X`6A_SDSub_2g=tg|4R9{%J(SWul%6$Q_3q{2p)eml-E`ssl18uX3ASBzejm@ zasPakrsCbo3zUyh{+RM-mCsZ@Px%t%%ayNDzESzN$`30)r#$RpaQ|PYyovG_%G)YW zRGzGSu<}gh`N~HrAFupr+3%FC3WQGQu@_@&_fj#PfD@;jBs zEAOa0N!-7Fdr*0{@-fOwl+RYaO!<1{yOjT-{G9Ue%T|B*>)S;69m?aC_g3y!{)qBt zlrK>Jp16N~wNb@?tNdr>$CaN~UJHNyT`A!2zZ)x$Q{Gwm1InGsed7M}#U$m^mA|U| zO>zHxxI+0S%C{=tr~I(;kV;nj{pHtGev`Pr{w3 z%2SmOR_<0lO8ErkCCaBMe^L1y<%^ZSqkM((waULz{*CfI%70aUMEObO=agSoeod9& z{dt4(rplWuZ>hY4@>J!+m5)>Yvhr2Rzf*ohd8N?c_S9A0TzN<3smfi-3za{u{B`B; zDgR9QUggJ>SH3E^J=ZJ0OL3XH<>ksxDnF;Z za@FAe30Hod@@VC4ly^|xO?e;X1C^&M&r?21`Bdf4E1#qMHRW$Be_#1p<(rgmQ@%&} z0p;b&&nmA}EqH&_QXZ+isq$#$t(7Mz@2>m-<%5;GmFFohR{ogsY0Bp)U!?q96<;Rs@P#zi;OA~d4~Qy z*bVl8z2FD15Bvyz2Ijf?FW^`38#n-d2M56)pbQ)Whk<$KUJj0eW8hD49Gn1ufs^1A zI1T;=XTVu-4x9)7fD7OvxCG2I`w;V798?BXKq$BhR0Y*Q7^n_vfU7|`s0nI;Yd{33 z4Xy=sfO+nJ9jFKDgGg{aXaE|5M&Jf;Be)4P22DUya5IPkw}4y0ZJ-%w4$S)lEx;Y% zP7niHf>t07v;l2FJ8(C+2eb$Gg8M)RkN`S@PM|YL1YLl67oi(S0^Py=pab=kU?Vf(o5?l`&fJWd3a1&?@ znt-Ojyjv3mZUwi2W}rE^9kc+^;0|ynxC_L9mLL|i0&$=nx&=2$n13(&h5DWwl zfk9v}7y=w%C`bnxz`Q5q0&b8AhJh^L0mDHy$N{+^599+c7y$}EAu#V26@igp6etFx z!5Hu`7z@S$^Ul$uU_6)rCW6PnB=9(x44wcb;7KqAJO!qLr@=GeSuhPe2c8Enfazcc zcoED5v%pK>WiT7e0ds+Qr|DHN56lM(z(TMHyapD7*TE9-26z*^1(t%h!8>3XCufP`YHP{Naf$iWM z@GbZb>;OB#F7Q3r4fcS&;0Le|{0M#mKZE_?7w{|i4IBW!gM;7?PzDZx!{7)g2S>p% z@FzG9PJq9_NpK3B27iMy;4C-?&Vzrz1#l5u0+&IEd0z@t230^PxC&GS)qr_FtU9Ox zt_IT<0bM~ikOaDe`#}%T6Z8VTK_8F|%sX#=K?+C({Xl;(0HlEj!9eg37z74`A;1BK zf^?7p%)4?f;0Bps7{~%1FdSrq9FPn0KtAw-5ugAR0v{*>Bf%(83`T=7;9)Qpj02B= zN5Ob70Zassfl1(TFc~}nO2Cs~3U~@k1y6%#z_VZ)cn&-dUI5d<4DceD31)$pz{_AZ zm;>g5SHP=a9+(dnfQ4WYcnvHDuY)Dv4e%y-3oHe1gLl9(Pzv4!%fSk;61)fA2Ooe{ z;3KdatO0AmCtw};6s!lIfeqkuun}wmo59y$E7%6MgKxoiUR61WUP@J`=Vz`P4t4TOQ}pauvB=AFn0P#ate>VkTpK8OU@g9gC7E7=I# z0B!`0K~r!uhyu5Q+dwm5-lM!7v;fiI4sa*93&enyAQrR&aiBG51KI-f&Sg7rH@FA1 z2ls;eKnIWjI)YB1Ge`tofO$8w8%PEHKz}d*q=5&)K=2S41O|g4zyXGWbdUj@zy;hO z6AS}czypSZY>)$TK_18lUN8cfcRdS%4-|osU=%0@qrn*PFc=HQfk(ijU_6)rCW6O+ zc}MhdFc~}nO2Cs~3U~@k1y6%#z_VZ)cn&-dUI5d<4DceD31)$pz{_ARcm=!)=7ITO z0ayqYf!Dzj@CJAbECp|acfc}G3f=|F!3wYvya(O~AAnWhL+}y!7_0^Bz^7n6_zY|S zpM#Cy3-BfQ3Ty#igRNj2*bcq{--7SJ4zLsK0^fr@U@!Oq>;pf7pTN&xKllaw3Vs6z z!0+H7_yd%IL*Ott0?NTra18tjj)N26FK`l^0;j>>;0!nm&VlpbA8-L&1ed^N5Mti5 z1eHM*5DKmW=6%{~APiIoHNe#%9MlBn{n~3l1gH(J1$BUV&-OY{57Y;d;Cj#in0Ia) zfg8Y$;3m)*GyzS)%^(Wg0&WGjfo7mNxE-_r<~`jzz@6YO5Cd9*SkMZ@f!3f6Fz@ij zgLdF0W9-t@a1$u)%AQ_lHnK_18l zUN8cf_k#<84-|osU=%0@qrn*PFc=HQfk(ijU_6)rCW6PnB=9(x44wcbz})*W_jt_x z9dmEzCt&X9bjP(-RmVU5-h+z4&~>%k_l8JKhHhu~vi&TC(QFTqz}3#f!~SQ%6S zq2Ovz6Vw8Az;z%AbO-l?9-t@a1$u)%AQ?OW`hpbT0JFgyVCIb1z+&(wcnfR-o561I zB-{A^?{DGwHTx3O1NA{9xE?eB4M8Jt1Go{~1R8@TpeeW+M1fntt>8A$3^WI~gBIWp za3_cXEkP>~2ikzPpdGjy+ymN!d%=C614sZJK_}1|B!VuWE9eH2fEknbgC3wK=mmO% zJ|G!90Q!OykP7;N{$Kz|0}q0M;2|&w3xl77y}*#W5GD^2zV5X2NS?V@EDi`9tV@b6QBe<38sLjz*O)w zcm_NRrh(_c^WX(A9n1hPf|+0zcnQ1=W`j9kE_emJ3g&_NU;$VN7J=8mV(>ax0^R^` zg15j@@HTh{ECZ$BU9cRi04u?J;C=7`SOq==AA!|i4fq(W1)qR*;8U<3d#fYz5oEcJK}O7JLVGfSq6$_#W&Ad%#}s1K0lJ)k|f7u*Lr zfCSJHbON10BIp9Tf^HxQbO-l?9-t@a1$u)%AQ?OW`hpaY3i^TmU;s!14}yWR12};TxIrcu2C{$$3WY z@}Q7|4%029GuU=ny7Oa@PY67VFL0-gd>!PDRw@GO`Ho&(Q=7r=Bd1H1@kf?41t z@G_VU=772274RyU2j+tXU?ErpUIUB4>tG3Z1H1{|0!zW$;2p3Gl!AA`a@B`Qfegr>(pTU0c3-}fM1`dGV!9nl`CVLgQMUW_!ArlC%|9e zBsc|5gTKKUa2A{c=fOYV0=Nh+fy*Gotb;&hPz8j7t3Xvy4TOQ}pa!@agoB!(7PtmP zfZE_%PzTfn*MWMVK8OU@g9e}>XasHmH-ei$W6%UN1vi5za0|E<+yCTKo;j4}-B_9C!pg3dVy8U?O-7OahOC$>0f4 z0-gj@z*ArW9V`KFfH%QgU@3STyaSejQt&QV4pxAb;63m@_yDW|AA!|i4Ok040qel0U_JN@ zYyh8wjbIbl488_i!8WiRd<(tEFtj0R)C!(c2J2Oa^Bg7IJim;AN&G-1;2p<;CFBk`~k|qA#fNR0p;K*I0pU%$H58k z7dQz{fz#k`a0Z+O=fHXJ54Zp>f=l2s2*I^|B~Teu0iob3P!&`IVW2wr|M$0WUPV9r zzj%KOqa>tph@+EdSfbnM$xY93xP1BPK>=A;gcSM;eEF^rM`DpTxrcjnvai7Up4K|1 zU1xWJFVOqCN9Jd{T~<&xx36=4UZ!VQhy!2!InDP1&&WVGC3W=q3hZoF$$fhUsl6d& zH_=^+WxLeg>ACK}=hpJ1fBAbprWv$tJbJ3GpoUQlR9xYB)YAoB?fQXjXdO71?v$x%ma79V0z%{|2R8uO~0hjWKKOAr|1x_vHEf zyKPuT%lMd9F-$TnBeqq`SifZ3-`siVUW^{Pr!e0UAK$v2qvaI=c1aaUu1wSFid=D5 zgxF)LqMSB5ja^TFk}Jx+qSz}+y`s>zdMoxA^l!x;SlRiWc!%91mJ~5>jwjdSv&Vj} z%id^iK8_QAALeCeGI?HpUPey7)9&p2jNxvl&*3XbcY5+LYgqdZfrZ|5r#)_Mb-0Rh z?a`O-b>|fp+M_HVUmfX%d3Ntxo?#y^mN`A%EdMx=5KdIGNmGI=%dUWBfrpEg!&QiB zvm&|MJ}#_Cciu2hp1;bbfGiwhf$6hdb|+XF@(LY=-fT}`ihO6Gzk#L%Z??10KSHfc zCdA%r3~-MQETRBMOppiH8KnlsnvE2?3kxeI7pqYJ{T33(ZW=Kx_W9YZg3*JG_OXo%SBKzGD*f_$p=x z2@5X4WO4ZN9R)=hb~j71(doH47`ATzhJAK?(21fT*VVF(Jxvs5rQ0JEU+p8hFw2wa za}4*`$55eXj62^RDTO#x+;)HAq>O{aW1m@|IA__Tyl`}3PQHBv;dsLE3OGwiK+t)H zL0K5J{!@m8xig$Dk3Do5l$$@?9;yK$4onoWF|o0ZY?tfbq6^V1hb!NipKDh-FtZi= zKjkdU&-7)a=h>45^9G!#&BTF*2G8quSa3Ghl;cFw3{Ur_U(tFy(1DZMzovGWdI!a1 zV*vVhgcMzfJ(c5jWQ_LNBSgZBe3|i%iiyD==xEu-(aIhYR;d4Mj4X)Fu*(tkpHz*u ziVccw73+^3mF}@e&nQoxD}Pj>qh)Msdq4&R*#k2m$gWL5kbTk#2#RA*1O(X=lpWNn z@mpo^_3tiMPrE~Z0K_OlGb#~mJ92C?&rH{iJWhy+yI&$vso)VP0 zUusu$*A+pga|1SPQsHdZC(kU4Gt-N5e4Wz^-Cgr@TwQb0aToRqfN!> z>G5>-jrO`z)2$_(Not3u=J(7WAni@V%CL$0p0S7`nrd?*?!5?t-y`*R7Ixy(?{aWSmDWTGwla^ zYxcI3U{bV>cl7QSlq|o{Q`{-N(9AsnnN29x{_Z@NS=|LhjP_-jMR7$)Uu%}`+pp7u zj_!RNo%(g{+NG}}u}jyE{d%T4Qo0Z965>#i$sN0OVT@Tnn8o5ScY&Gl^NMmqtThFu zS>yPhxX+X8HUZ}UA!d%{^4?*cIdD$LY9AL_GFgW>oE=kox9rp_ImMd1ZTI+sJs(#l zW(KiR;}QzFi?ALZi7i+`iRnJ{u=TY|o~utLlAuFyXfvoN*Q{Ah|5yRttTk*-&^8!` zvx_U$s=A~sNcU!WoIxqOcWfQ(DSg_+1&2sKacjMcawr+7Kt=ipIim#NpTq+GdJ-M3FnstO~6yrI^#A^)0nc%bq2Lj&af_>9o_o&>4yo+d`<4t zy?3hl%Eh3wt95D8*}meTclBTFIFovHG{yAkoRVyf{Jw4+eU_T*Y^&2u94>AdT#+Ef zI>m@5_voBrR*FvZ1@o``zb}TO*CXS^ib(Mc!^MpiZI+GBWV62MVy}Wklg%ZhmBvK& z_Y|6Sd|_(799)vd4t)@-pj2xS)vBGXg}wr>%qkLHoSReV%)*sA6Cge_Abw1~ zscyc*<;lcy(Up_u$iyk$;VyQYD>c7odaw>*Ku&%-4nwz@lDZTWn9DPFr{4BA8SJ(t zCi%ambo76<#=dP`I#+zNj{NJI0#- zE3S9)b8R!j&;D+Yu0Y2S3sQ`;K*taZR5QQ=9iuE*M+T}j-t2&MC)V0HlC2vf`3`H< z*HRXPfkCk*NF|dnStDMV){*<~$%|uRTeiaXioH1=r@2El#$A9lw|!g13^;qN59@<* z)3H3}diD})kW!F|M6GI%s%<02}TRQoUk?A=_80wxpZ;=m2 ziOcQC@tC`2n4wK{W~PTnP_7wNA&y*`@$jX$+sBo9uG!rPk)tTr+y;bMa}WOC*V=>l zVjW|-X176xqYcjV99#oa^1bG&6gLtaI0;y58HaU_kg!5D+vh+UT*;bb`31Pq=^10) zHuI+|$~9FEIM0VT{Pz}e^7FHcybf$J-zm8~d70?Ie5{ll=`I{rIJ8WK7?hDwl!;C- zt7|I>j#Fng`X0YT;AU6J*psVXt8JLz?cOwBF^`Qjd&MC$5%v+5sO$zSz9_HI ztUz7CL%I-cHFxHuNJ|{Uy!m#wngajFc_%PI(ClC${>RzJO5nzs(TOW>e+7KJl)G~N zG3oz(x(SH!Pd7nf_H+{z7&zUS2wa$CSVPo0aR*e$4BMbEpEYRAVPH;7)|t>cz60mh zLX!w2{2}Y%l##ED@gA;{0 z&~V-yh5d?Kw79l%ORvlJ0+QpR_Wvri*PAoi6d7=uF>@D6X`FW_Zb=C~3<9}~j`t^#$_Bh98 ztu;=?c1%$@ZrmwOcMUJXo;4%Zk>xh)dApt_i5Gj|zv2o!!?OOj{QsVYqX1=BY^`Fh zF@1!tGaZDP#jJrGF~u>sYOyPpn-S|@u^`odM)=Q}rbLtJKXyoNM%;gu7Zjn&i~H~L zFy97@?%a$#t2O>*P+*NE3a4i?k^&;oAGugzdJFJus=zneT5XxLxEf4(`8XVlyxx2q zme%kvW9^F7f$0DTlZJrbDae;I{=NzITj zP5IBVOoA)A5+}-lbrg#;iM=Mb`pj1lye-RBqM|&H)e-;W++ioW z@}Ty|{O6vtQ~dYgU(psj?SBk)JKA*AzYIq^`hOdBxB#^tF#In=&YERqG@+04oaT9} zeGscSk3^a$h~|pQD%gDC)M>&qJbAHM=FYM8P!GqH(^qV-HLZ9FK`#X-$u`%Afq4+X zt4upoRxm8Yx<++)t@+#vD$0zN+1;2t`86{W3$@l(vP5Bsyb2PKgaJjo(PM4ZJ<=<^ zXWbLb7;P3q%x_0Ywkx8%s{UqJSSuv6!ZB5}mW)=29pKK*@Z<+H0@tar2w}9>jd>=$ zuy7PEN%1_zDkC6_*X$B(9vBC9o>dvSTJ;uX;AVlNqPwj)+(IyOlRTSd8R&loE=qr%lK zW+68V11oKU0|u5k{wua2caV?D94Hj9OdCle>_ z3>;V16k<|eS-XIc7?y7ZRcznV!t7WyDlmanEjd{S1e*uv0d+Tdodr4n5^_a>?qZ)x zW-Z5q>tO|5krn4{^NN;a#|pD!K|wm|if^59Ln6l2XDHs&(HKw@5PKQND8kX@HIUH zrxmonD0ftTfeXh?MVOp#GH_b~lT~1_xyNAK+`Jiyo8XQt+~fI|Ags)pEZ2<-WEWNm z=5D(Q%kiXhTjm>Xh81|^>c@)2ts;jn7bmBpOzVd6zXZy{$(dhdp4FK6Jj`Txm?UD> zuJWy5*hq{nlc2yXbWs8S&ay&KGaRW1wjP1tUdJ$VPQ@D5oGI;WDiH<@UaR4D@y1j- z?j2yWL|Sz(2E(ZFxGlVYta8EIXP+u!B7)HZW|u)pW$1txU4bKK@0Ib%f~-1Rt8 zaD-ZS+U4nlovNs!Jafm&pB;P899&E$*S!H^?`ag9g$FKXRbXa&rtsiqL=hJK{(#|l zDaE3~Mf05h<^FkY)wc)rhi zticR;MFqDmxbpWWvffsyFq|oZ1Pe8D#cvlOZ|2xml;J4OlGZM>|kC;nW74P9k9TbI`41H-IE!NXH zlf#_0tc9A9B455dNeU2b*IbJRhH!*4HEspjPZN;HzPD+YX*+6a6=K{>U(!myS;vW) zpYg1#z%&*Yn|ao4a5SHdH>(pV!!s<_l_BR6Jg1K}XL++}^EIEt)QGiKWQ18-_!lk# zVP5lE2VO@Sg*6z1tqTwT_kaQ&v3TK08js>J=S#ns@3<{$UJ{gC4r>X`?=BCntt-A` z8Vb|`toY=ihCh_&C{wC?gui7DPhdeg6^DvRmy0)vWdvB3?<&giH^;mS>@OSNv4?Wf zt;g-GlnKjD$6E%4MHw;$T7@7~Rm>#x<>%+N@)u{1c9X#*_D7gI$1EN%e9GZs68Wb} zOY-IDG~WXzHA{orXKpU~3oOJK!I1EKQC`p{iYvBl9+h$NfJ+whT9W_xwBA+a0?||y z2UoVGj%-%S3K@pG%z1VZR!B~IZib89WCh^naJqGOpjb{WQWUP+|mU zxL;tH*D=fDHnep^9+hx*bh&VE&ODv6%)gj(T5k}@>lPAc1*GtKyGh*1|5pG^Ang_D zj6+CvEJs|!|R_M6hiyPBJU0cCWxo_kp_{zacN2}gr@9A<+3 zD?n%WJ`&QsPp68tl(TzsVAZ>)aKt+U7mUtc=IN5;?q$6h-rssL+?3zTTFx=f40dj} zxBXnVm%C7U-Pzld6HxQs@)nEa4D8QjzG7}lPqtqzx5VC$&c4<=3X;`+v}sb{JEv@X zwJ)Ho2sa+vyK}9#G{o_?mCPPa^Ug*8UQ(Fpi|&~i1l$?M`*>x1I|Dl^1*dUlsaQap zH+=9$5yMC4X5`D!?o92RoZ>FP#gIf94Hz$}S>{rXQPxvUQ^i!=#|`MNeu+VO`t|Of z7FeX^0cG~f%fNcr6}WfIy&DS_ z{V@9hY*lx4?@N~~yR^!dy(PK2d)>rHu6-PzsBHxKSi2=-ZKz1hNXTNqutc# z31}OyF3!CH+Z-)5*3LGv19UN&kJAETE7>X>0NMR@;M&qE=9z3L0!57SStx+ik_!3= zL_hS zBR3kGQrFTPq$G+Kxt^wh$GC6?J%LqHYqTuz8yy9iCTfWegdWGj2r#7@-3JV+ z0R}e$h5|?mmPlXWyIdJFObh(u@jczNV3n*XUMMPDFIh|VR z$FZt!LWe*&0EZ|kCKkrsNl0iTJUTyVKK8=VzdCGT!N{&qj~Ar$79IuzsGWZnQnM8&h6&SB z03RWv2IW*6H2^(1D!N%(+FG+NDl8|pH`Uk|=^I;@u(hBS^-QPR1yY#%F4$nqUIrTex1XhLe|memNz zux(u^7`Ybb75`WhCaHrq#Q4QB$zd6%C~_F5y^>Gik5xC$DIPHHI!t&B|KtAd;gQzf z#3l0{B1zU>@}+DK!t7Z6xHn7t6ddj>m;}p3$|Prxo-Xf0fH?p9?){4}2q)?Jiyy!3 zp=+xHPRcgg7&&7)+OMbBYnJZq{9APJ}>ijl}KT2ffou7FP9>P3gRW+4lD*V z)QI`{`u^miEZarYx`~da3tzpGuQ|V>B^%0{Q|`I;c71cs8nb^W8-0=0ZIc=UO{u`O z9+W^QcfAf6&)>eJBV6EUv^TbY?pc1mC*|ocE9l|;>N#uh0r17IIuBMcLWj{1-m;l% z!T*c;@0)$u@+$>%DUxF7#!g=%sgHTufezyRR7$s99dJSthHh_Um={VqpzH~yI@A`l zXiMag)HIJ}!29%0(>QlK@JV+!G&z%#|#nS<>NhA(#ck zg(w4vK{qXSXE@}*mNU!g4L!tihbSxc`x9|&u6k6ht|8v}2!<)ieS(%8{en2!NAD0r z%8Ifg>PYc%kRVJZR+i)D8FE3SSCEZTvbljF?MtlSfd*GaL3=)L5R7JMF-w9+ZYGbe zRKHLmL59L52*YvdW1q|o6<@~C`v-lgA)!K2=hixGR26ZE9q=Uq)>iY_nx>a=SczE? zLl67fv|4kAhln-LaSa)?k4>G);O*2{wM63d>7t-z*cp3KCxsUk$3%gg?Qb9I_yiV1KqCD)!tS*4&5xX6o93bnD9E^NTi>;9RU-q{$|Ge0TIfv=8 zH$u?fW}Ox{*$3EwkMj;Cl1(^<1v5j9-@SH>BSVeqcia(K08jR%uq*PQKOLz)U1+V{ za38kF6GM|hT+hPR91EHxx|c&)7hH?}L;tQi3bQm1ExdMEB8hclebFiQ!G`-+w%SV+0!uCBwQnuNbyN3|v0 zE?Ey_o^z_nZvAW&OkoC1>1-Sy;abxp+le<-1guf;vLQ1Q8sjs*+t^G1q=O#eHl+#0 z{Ol*_R!E+3cY#QYWjo1$nH;fWT1e$8Cj}WN zj0eSRQer!!qfHj%kwl=hURqaVGE&@N%Nd?674cfir8=rrAkh-cbgtDkBkmrrkLE)& zGT5?MB~D_7hh2h{FRcaTonRR-rCLZHk~CtGEAG>KbQ9wV!5pr1%29@z)B5cKm2Fwy zFaxNGarK!cMRyYW_1Zy3&tB|)+2?@|SIce~*r;xYY;r-T|MQVK*_5}w;mzkbVUut4-0WNhppR8eESs5PGw1QW)WS~dSR0LY0 zveO}Di=atE*9bUn!#bZKAYPoG_?{Tz_D632$B4by>&6#+^y7K5?|`HNEiyGu4Z4UY zM7JUy=OJ%E=d8@|)RA^TF_3`i&bL$^6oZ2@jA7{#_HwEB-QuJ-Emh6MnyIHie-IPe zz*d=-Dm8^V<9L{-zgrRxA0<$ebDLt%RfxD0c%-aEBD&;B^O2OdpJ3WKvNqKu>2IY} z92yt-j5}IflJ^mGNIYVL3mhp~c-T2!CB?aLLymre0Lwr-DLsbtTh({l{8k-*L6LdR z(sX&A=AzpiI>Paq#;wNCrW|d@)ID(=Uh{O*lw)RY;E&}HZnPmhC0#HafYzDvd4GP{ zr>(;iMXm>t>U9&-gd9G++dktYbHTFarS=)6`Mu~jFVg8ChZ>f4dLA<9RDyA0kjOd# zU{xA2R)U>g8F#}oyKUf9?&gwp)*FP(fjXhvv-%YeK()%=fwR-8<2U=1c*pxJu)PTBO$*&VU}3 z8y-?-T3c%^o9p1E{B?YkQ9>k?R&yM_+Eihj|3s*4`zlm&ZG^`nWI7siTs6mfJN86@ z)6O{q(8eoU@6fqf*`GyPU?H2soKwEI!8G=`9GPcBDC26z`A8|W-8#U~Xq-nLf&Rdq z>v>M1$y&2u9x)oaF|-#<%j1yk1z;yJwd_473HY%~XoB)ZiYAP-lGrcedx+ke@feoM zly8NJ+bxi?p-FohW}VM&!(uSnH7sq`n8Bv~GrKsK4PY8C^EG-@&^*a5tYK44oQ<>#A-b}lS0|t45RchEAU7X-ft=RUU`_b( zN}GN3v}>Gnuy|KQ8B^O==$4wKq_oO!z@14`4U=YWJt7d?gYU=dkt~J2BA15Q4;&1` zQATmm5bE|43@8pM(E;8|Yjb@XVh%Jd7QDlrY@hqI4Gem8wmnNkOZ5blDAmwekXUEm zpK^=H&Q$`;wAz1E*-GlG<<*u)ke@Afe$BEjIsQSe_>^NpkkI0wr~p_cV;N?@A1Ref z_vVB4$tn!u+Dwu{S%PK6w82qyvV_`M3iJzB5P4NYL8;OPfzYcVrAp5^_I5&x(NOjr zK(x@#af+jxAi{QQd~8qd-c$RB+~eY>0!AI0lSnYF7T!;*h4*ZzrXg0+ zt(9O%SB!)iQPP%^=y=m7=?h9gHA;KJfNsgr0_x%=yj{Wf|;NJHRj~NuidY3x~W8pppH;bc_BWqSj7tJh<2B$ zh2e2^DXByEaaI$cJZyE~0!P}dLbBkhbEb&*0yZlEFs^1YRgA#)KgO9u&0461V`dpp zqCo|$&!6NipZcy@@iZf@=TQdH)?A;&adWWLfGvqM$#pkxQlE@2&>t@Mctts=^L@a# zb%CKwQs#VV%VlE85#^AVrrDoOLrlI)nAPX!D3Bx%3@>WP5d7yO2W;kWjEu1^5D|Vf zPU)H4Yz|l(UIW&OJz#_1p;2Hr;R07rAUa>+SQ6e5C68d5}#f_A_;G{*&Kw>JcmFA{aWKV#6x_n#V^ zDIXj$qF_y-(9nwA6rL@`Lu0r~ZG*lWfe4KuMHCv8fN81QfV6O>dpWh#Kpk+Kv1$P+>Gvrd$pwcvh+c7$J(Jm; z$&%R^`Xl?P=9%f5c4q=rvQ3p>PQ`a7-l8q&U|khFQplq~i#{#4B^>AFYD=%TlVPN+ zfW(kX@sTL0yhc5Ol2n=DO>7$xn?foPh-!jEk}BH*9a=RKa?jP48F^j^#LmQ{Q%a{^ z+u>AtSG_A*<^rG;_yXO0+9N~mf?KSyj1kaSl2?KtuaFyVg@xP0ff8#NiLFwy24ZZ+ z4MldJTBHSX(EJwkjl62ml&Z;|3Q{Mg-0ou7LNwrwyxfg)MQFwJ0c6#)okl{0bN`W4 z9Tt68xQ57JqfH4;|NJ^)N zWotr`4eduRBR%wvF<^B0P~wsDP>ETI9pO=ezTeHUjpzm)FC%)SVKB zuAAxzdEJg0T}!DHX}Uu*>_L{8afLUbE1Ku{1LwLZppG9WDIZ44dai>cqO`HERQ+D1&Cw3AtH;y0BtbqVw8w}T3S`j)e1`ScJC-h zN(mzv+v&&~;1IRv9+<81D9Xp3HUQ(C(0YY=1n*$qA{)^683s(Pgot&yU0ZBeVU$LJ zZDbYXADDfzKL|7ZJc&(}BAxH_1?{(i!-fX~l1HAY$b34i$P4DV(UA-o7?)_JbB{G9 zjXvgbFhWD}HKZ$Y1eoR$Ba~X+QipgN!qt##N~TK?6Md@jCv0lh6Q;Gc+GPbzG5Lzy z$TFXG<6S-X_In66S9!g-EYM^Gn|uQw!ACsrHH=-F7fBS@9^HWJPG9Ed5xn~Q0e zm^8tu4tG>-g)4yIu;YeTVdJEOcZ;kd^0qDwpTLe7znFxCQ2=##rj=9PcaQh6#vw?( z|9GiW`0dd2wjRe7WIa|NilY`Knd7{Kj;=nxY%n zPQ;^eTa7_>1Z$%=iw6kW4X_3DUM+6_9-_!N_VV$Hs{<$hK$niPH_LboRm#QR$5TUC zZ{wvMj){HK0kzobyV0J)NW)pRTAS!O z9M(9c_-!X<3#J7TS$l@>fEvxNxR&N<2)R+0w!;zttFz9n?3iAytjKpaw@kF)Ajui* zdY!vqskf;0Ib5>q1`&$v9UT*TxS5ZRARNbEw#qCXY%&^6m!Smap*=TQ4ueXN7LiGF zMqt)dc1N2e`)k(85|6iWPo%jo+c4ux)PX>&@sN4gE^=;3n;~On8v}`53$%U3s=-zI zIww$4w@KOW4*(4~)0E;bhcby0g4v31Gj&vYY=}Z4mqTKjG#VI}poaY4VPz*K*pQDE z7~Eh|(;8q19U=!7Yr_Fz!4}-18zdoiPeX3FlAl{E$22;MJz);< ztM&;YR$h%D3r9AgK_z?y!Zdx!@Z2@WU~?K4n+@TnEV`0>8t)>Ek*F4I)~7Q#>UWLl zFnUqO!5P9Zt1nJGV|@1*>n3huDemy8DRL=$R9JByfVIy*8{7AuU<-_fIFfTj9M3x9 zMk6KtfcDl~B3dH`Jk_uwBZbw&-BR@)d$bfCVN;YI^;EXHRvPVg&X}3&03(Le+KlP< zZm#!oXq1+W`2xid=3|dn#);QAh*3deYgvixKD<%s8$l}&`9?Ar-?@efWq7GlV49aG zG)zw%XlZuVC^D4AM zAwcE*^#ua6x#!l0%b*Ca%IfMvNG-!gldfo@C^T4D#Mc>>Lo!+zGgXi>Fx7XdKnJ;L zF|O!1Iv$aElI)cxHVuJfyOQ8K0&u`SwJ8GNjc}r;B0%u5`c*)7`M2U~BTF?0J&|{1 z0xvaRgR!sBV(klbU85WY`<4mb%t<<&B%L?S67LtbdbM~ZC>ETaRwBg=li%3DD2W6+ zoenm_8xjXgn37?aJZQ>e_S!qSR*h0uB}Wp*SHFHIit=`t`Y;6%$MSI2Ay$93#8VG8Y;M8HM8fVaK<9k*C**2ois$-u~ zgatT)RcGE4Ev28#1I1B(X%np%6D3Tf6{(C$xwq{(Jhl)8jMo+2E5;fwns#69z8o}t z?R!H{l2k{~;@ZQ9HmcvoTcBX(}nuk!Y10cow=g7UyeL`Sd0 zH)~|Fm<%J~jMUuJr;nx?uG9NDs$R@4UkF31vCK(ZrnWmAWI>W_*24%WZ8|~(9GpK4 zl%^vm#<%q2!CK#NPc*rR+ZwJNn6rfvT=Su)YFo2Rk?Tb6UHje8{8sOkP|ddMw0MO- ztDn#Xeq?dtc&VzJ5Z!0Z0!SXL!|57xg5_LBx*nLi49V_m6;{dI@X(2ml~B^o5EC~0 zLW0~v-{zW`<9e4~m%FvG!U%+k#yk07ETG@D8%E_LRML@aB~8WLTdbhoeuqsUh(tPM zhnO@5v@7j|c?R-AXOT5z;on>{oBr1#?7gQy-QEd2!)GP+uZtW3Wj)q?nFvIO#kb|U zk1*fzWH7<5?D5?J{psQE6|oeY7bf}wxVn$5U80s2;wb9Ez@!zJNhYl zPwB@nStGIK&0)2T|*fpIxt{{LlZ9Ww!tq|YMHhqMal-(8rj0`s8umu!KN7EVjM4H0{PhyV?3offd!7mBYmcfSdd+jd^$aXZ$Wm1kt;f7h8(%F*i zI1=8T@6Q)3y?b0evCKC=x6@E*{ob$B^*))kvp_;k$Qhxf2Hbh91-MC*Q()w)ghDDN zL-)WyDb~gc(5lh6y(;G zOtLO(@Y&YjqqOCtnrsOSkn!+DJLB2IW^OKuQl5=erF)MER;=lCMWFM`%l&PeyFhGF zIMPRu2gAk=*vZn}OMKVWSchy(GLy%nW-%wWQ1mmsg3Z!Fl*Y!d0{PmIf^9xTVCfh1 z({j@~vV)=3#RVm9w=x{$G>l8G1DmocOwq=DaiMwhCIc4UISPTu&}QxIFb6aFiqQ<_ zW$lqeAFO<@qfLNKCkey~Th3iX*r4eisX$>RIgV=#_N_r51+0B|b8!KC9))65&F4Rq zaJYU}fQ83Z*GNuTGQfR(vRA#jC=k&!A*KW~7mVantX8~4hjQtZVR~v5De6q#YbHL| zz;NfFGx9Auww)%HPf}J8ok{NZ9Q*jLwpbY~y;%iwBN9P9HlBp0wo6eODJi#|oK6QW zn<&ojhRIDu(S?)dbja*zyULeY-Mqar;JGEuFh7Gz9K80iyetnqcIEfrax9Ilmnd;( zhRIm>;wD6oh9E;PF(2VqB}Qor((Fn}H~`DAp3ot``(2E-w*qt0x?G8ELz4~RXm2nfm zT4jm#;)!rJDHP-g@ey@EVkyJp1HON!Ff&tCMe>?VF`N)PZ8=Y-rBVTEFD+5Bo47%& z6NmyNmj#a|D`4=~2%$#jf+z}Fh>pApsCmxjy@(Vz)tl{{(r29_W6yvqIO`lw~S`2sno3V{_ALDwr17i!znd02f z+F65}IovkTxh$aaLDPUuscS6y0Sln+%;gd7opvgSd1IudjCOUxlijh;z$J_>Dr>Ja zhie1QJ0Jx_3K-LF1DjIWHiFG-d0XYx^8egqmynj1AWKFK&~oX}o(1=dZg$GZErtUa z&5$p9pj5dT7yLN1%sSEtensT@)$Ie%f<@D}uz#qL~F}ww6!Lq@XCc8%lH;l2DB?>>LF?F{{=m*1rAW@qM+yoA+x;y^n=g|tnOe8h=x zPzNdY^B=GLe&ZpqU$1VlY4yK>91sy2zyl(u0*XN*_i5!b9n@jhu~<3CLV}B0Bvj!t zzI-N7xM#>H7&GR>%hMjfDKAd0_Lq8?dyr1ZSm^_eV>DwHQN&?Iz(%%>E6vpw2D>=| zS}9uBzQqb4UZvy6&}A_Uwz5Bs5>$~4XPJ2rcm>`b!92hU9QKAbOErfTh(Ut)Pdhwh_Ti_3;w?3B~qt6)%dWidYb`*NO|Mdt7oOk~!8cS{k?1eZ! z2`n35Z~A=!GOjpp4wLe%yL62^T*6cNv<6xuyxzwKFnC_y1a?#TUC zQ)D#Yt*d*0Gh1#G6?wJU?xl^%+&n`#AHzRj&A`H1xf!-!3Xpx!`G*DMs&1_wrn%vr zFr>KlZ1eTX1a}Rnq~_GA@IeXXp!oEog#VeeAcx4a-#0BHwmY`qgAzd6y>{jU{Na%! zB2HChs@WRxzQfo4n!{?FFXO>Z?5&n{`^2AYIypfa`GTu%Pj&G?HZ1n2D-6k03I(sE z2Sj>g8WcR8I^@nRTNeIgAPO-M`eG^2cFh{FO$((GjYj3zPM2{q1ENPFq$krQv!g{Bk(<&C_{g?pbr|_XnFivvSdGtYMo{B3+ZY)C zsCXYVV*b4`6jpUod~*Zi*5q1ae8ZNsS$L_H@Oc>L*UT`F#Ct|qP z#0=I8Fka6mNgKF_qT&FEw#3YE85Ef8|0W9Zqf_vB6+n68yyzOCTej{Q`QiLm*R#UhMZFD&Pok1SSA8PE zo}A?*956as8?=Z0gY9A_Jgw;kh}#Wu|6Fc6DY_1!6qPpzQ*o$$u%YrU(^?BAN5@nl zDZ=T8l4pdjt&NUxGc_k{nuhfpnK3A$PLwu;?ry>+F%$li^OzdYd3L7zKh;eh)l5&6 z*%(#mif8U^ltV;H3;3_FBr=efCRz{rynbnKL+FGofP*yV2frl|+ zSdMvyM_Oe^eWv(>C*^qLz+ZUMoR zGd(Wgx1oNBC0f4rkVJf;mSeoE1_?r4TdIh9tTSDnWvZ#ttw}W!hKvu(n-r7Asc-w~ zw*QP8&IC%9bO!fppZzK&+vwt^aMpOh{`)$^O-Q9+_treo8jf5@BI?f)wivJw9E z%V%E^wq6l7e*Sp6duD_3W3Zjm9^%5i7@)`CG~E%fGX2vU^QR-32JA4?gdb#D@J*%( z&P=`XX~i11;@kwIMZVZY7z~%ZTH_ehs8qzHF`$=C#f_c>uXQjYo;?+T$tFhrtpsP;F%S0kx|V}V%H3a)FGM8vyQpl1{ApA}V7 z$_7HUH$9oj)&KkJ*4He$8^z<+%zZ6kctxdqac5Ssi!`ab}^SY*`kcKC+Xj7&P0q}A|e#MqM$5o_3OJ7d_b!*u}>3$)OP%G zIPTw(m{%|iuuvrdh~dCyTDvyT)h+1;gb)QQx(KB5#_p~rhT!!%@{?_1B8>NSlOW1_ z#()NOJ#@>}M`=n5CtkG!=`xM+`Mf&0|3%rr%@x8GQ#GT$t19|tdx4UO@7sM3uxXB=^q05_`uzFshj0FU_pQtyzSw2xrMGz* z_}R9pj(hXhufJ-j4h~$0R^(^@{^u24fSy3%HOZg;^WWAa0`w#buSx#>t7mHx0eTXJ zN0M(}m&xz*Z{Jwjc+PZuIR7EkNzXm}*Qo!(Al1$F>Sm4p?);&eF=+w$KHnB78n4RE znZf!QcEf zSqC4a{gRb5)MypJtt1Dy^<0-+AS4Zsv-y3by+rn~@= z%Cj}o;)xham6$?$wZEQ|EhkFeiZWhhjHSf}%lV1W7pJb{|TBUD2^XpF{;pqHzd zE(wr7dDsMMa9^kzWW0LDNNL1OPnc0!C0POy!!6ts~74$nG|Ixq^=f#EBNw-_lXHtjpZ@8f-xh5 zoN_wd-(qMu;thfdTv#geOeH9)XC#URWS=Grq?Jx-LciOH#8dPMP+yGHIvyC+4$eID zcjP+kqXrSt$5_DC%(;+^9JnTH6YLkSU#En}@tqkW0Dq1>wov?@-yvAlYUxIhQ(7+mAs9Vr<743AYlW#VUNyZT~}Zs%E17{imH5+_yJ> z^IRkR{N+!7WkV#H*=OP@&%aos#sJuWz1nYaE$455IrrA&Y8RAk)gWu6o-<2PU_%R* z_Ec2Nx0R6U|70$T{0(}FmQ_SdmPt27%2u#zk7{9fu2>+nWNjS7BvWlbB~}UP8_%6J zVZfGz0eZvP2!nPcQ`kwjK&9=l!yNzam;X9WKn}(59~q`X*&?X3k%GQ51SnYe)`Lc9fwh$b%y1z79Wk}WP3vCpg0X*FlT88 zCgYL?lu~Vo9*)PpDo-K z*px%>ht`-eSsf#tpTh|+mMc~9Yf`L2=|)V!Lf*L$H``3DY(sl z&R@6RSZ1q&2=%^SJn9yJEt!O345m~5RQ^(j{aje1l5;`xmaC&M48$XMI{kD{g}_I=(cUcV=tEaXK1L zWKhNg+jOItjn*uvt+%y#`-+oAABZ}A19S4g<270QfX66nh+~MUYfo`x;{A}umI1!= z*~!P4YetbsS>pcAXin=oKnr! zwhg*gz9QI1s-~VJsz<>yk93>lqHLm6(yV;Nv^Fcy(rTCs$=#kkF(pX=7f1|)5aETe zd>rc~PAl{pmZ4yNCDSuK|2^nAX6aC6+n^zx7(b17+~_08PcL4*dGr15`@h0O#6xU) z`(r|FR49dV0VHTpJj6Zt>H@sKXJ1?p6xKNxk`Mq!C{}hlX=qrsL22Pz8TG8;LrP)3 z*09nV@JH?+t1k3HSW5o%;)l>C>%0PuG-VcuEvN5<#q(~0R6HB|uFnhf5&6^Kp1=8z zE$rvNSa4aW{4_LzTkO!k{7r)Gk^)KRCok=XQL53K7jNFY{PEQ$(SQH@m;dh(5Ng=( zkAY!^0gk&xGzXf~5=c~<2|v~hGq$zE3jEKXHuY=Kt(_Wl;OmkpoP!lzYW%e{2Q4rO z%qCc2vkf-zXaqX)t7l`HsXhc_#Ad+!G{0#h%>jk}oej_5zWMgq?yo<5{X9Vbv3vc3 zJ^b$Ft8Yv7EzAWxs4Y+y{UY(^<#(Kz9@6OWMx=uq6)jBS)i{pTeYGNPu#WzsTnZw; z?Qi#Cilfcaj4^*iunUMezb^p?9Jy|yqjl63hR~8HzEuzLEiFrKVJ9FquNkiWOa`T_ zjL)(Eh~Vs*|FGZ~JY3%1?)LAvYF^3UY{B2}mU6a+^DZuRX+c|%*v@9yd$jm2cK-V7 zSKov>)L-x7z?~MC* zgBu%;X28So(u40g8^I37>@hfZ0cBMvHl5WQV9Otis&PbNyn8o|fCtzEvqH9eqM@7{ z4Lso1yH-f`jGaqE5s>q&P$72AVRzht>{1?aSdn*uXGR`2F}!^BHf^6Psk^rV=|AG2 zZ3OV<-Q`3zQ3*x_WUR9|h)9ysXUsUHsmoh@4(q;HtFR`BBf=fWh9E5@;ZUxfnTDNM zw4ATu9E-Sr#F}A~&1sAZQ{0yApv_e-hVLcz-8D+qe0=db?r=R(^oha2!x`Q2fMa4< z=%!f?dRAG>8!fIJuFvo##SQC|N12cH`ajk6N}PSkt^ffsz4rICvN5;2yak9usIw1G zRJK@EPmtp){f1V|BLZe$r#pOEJQR_FN3yF9(V&w?W(#wJ>y99~&$(Q5luDI5Ot)0I z(8oL|KyIFUrfSbak_8>DSQJX}Arf^PPT%xH-1>E3aEo}tPy+1BwzC10kG z(j{Og2?~p`A78()+ID}27Pu0zSK(Bu6&4Ra+M8*{WAQ7qokATEL-tr=4k_JP951A} zVLR6kl`w}d`x(D1RH)0i(uPi+h!I#6KgP@OL?ozIwurBJcX!S#7_bMYMQL3~qje@g z9y3Hs<4Q8nW*W9hop^a|F+;Mb*G|mG7^c%8tN^lh7T8Pf7rVFLze)cFe81WK@aDVS z%O8His_(7kpOee?$ZSU@>?bH80wh{xDprSkhq{*;vB<4`tL7Zzx>vR4_Om7_&SM@yrBaS z=bo^bx*akLm?%|B)~Jprur`oUvcourBMic8$TnGu(5m{8bka-QiP0R!iM=fpLqR~N z#a4f&SnH+Ujg5ZF!&M?hm!D!YB-&p%cUWz#^ff}F{GwyPZ zG{K)To{^7c6Qx<4Di~?PT8~Vin&_0>THIsVq)=oVK5MFF^vtN)U=yZ_J(-Cj7h2!{ z_~YMXM`(G}B}zzW5<0{_*YP`__4m2Zi&t-7%WQ2a`X*+{&v9BX(d*oC%lz}s$3V`< zan{Sv;GD>gjZ~@go>;B5jpnha40>6^^YTpO`rKUB`~|9%>k|48O{kYPJ*_H?GV*=H{8&lA^a~B%;6VXm?P&Q6%+Q!A&*-3Hq+Pmot!%1lR6-9Fx-yQx97<`qKRkwk95rQyXS z51P!tO%DkczIc}O2je3KXkTNZY}6+go&3w?UHMl^SRFP27QbjkDG7^}rz`aQEuXcjpf; zu0QVYWSbPhAMk$vBAg=s6;+gm?~YpxRF6gGL1<{xez||(>GYGkPtvOG@+%C^^vafM zIQ^>ZiYxN*>+M%;%67gcc1KbC&1D))FQA$szaTb)qE?}svxohkgob&*=?&9{>#67` zDval$2}#EsobKbv$v6Y@{t+jM0iuR?Y=5Aj=K!{8=h{(!}u4wlXv#tQkvUvu@9J%$6vJYc*8!w`xEE8c27Wq6yRTcQp@-& z#0TAS*57CGV_0N-@^HhYL;g}v`CaC3z18+EZt3aNL3b@r-$|cydZFtGe#P(fgXi(- z2kJru{#VH56sOmEQyE9+@*3zLN#^KqS|}EvbcXJqAa%)##YqR4?B!_+e}ukT*1u*g z(yMR~k%d~J!ALi# zEs(GbYoKX`6+j)B$|s3(kMA%&sc^Rem{|X@Ylr$BY(06UZ59@dsBJ4+cr?_6aWK4X zKY_~TWFkrnoo6Lc3e-;80E}WdjE=MehH7g7%{zyZC@2{w)xnB2_QnlM+q)KA3Scrp z;v6wg`vX>QeZ=L)47|{s&2L#9JmW3Z7Mvkl>o5s2@^v^i%g~$ihi~?_H1&Iu%toCA zoLwU1FbU5tbE=Bt_?F7qL$@^#!ky0yh~+2L%@qL{DLIHcsh#2&afN%7i2(b4fvEULAJG3fYGt zuY&PFO96@ zs%-1U;jduf5I68*r~%b=c9sQsfA&v&e3sMr3*>mc1Ex04)1~((v8Km}rR3uLYUc!t}3vGPd z?Qdk<5wS6&h4%>}3F9ksz5P_p;;)1yx)b{*ae^n9?zOQV5KP=jy=apy84bs8b5X-2jRPGKQZG^tc00<%(Ymh z^TP{se%Hd>f-KA#%9S`no0YhrW^yg?6NS;RX2tjYXE^1a%e}0O`+GPvbAsI`FNt`1 z|ML9XuO%-d=HGo2ySXoR9r(%y%kfl@{@x;jU*-bLuNUA;>JEpve1CFvb)tEVP8v?H zr9hH^$a71W6I?|}hUbsAZ2UaqFBXHs4(^RlxDV`cc=uQ@=)`Woum?E-(K{zJPXM5Z zF?b!cUSYrFSJlg{Lj2}(dlfI#;lqV(2n5pCf_`sl5q|j>zicx7K^xVt)J!N{uC-!< zM~q(Vy86XJ#MLhsdzpk%cN&3}js*?7ftv@r(7$@THk{XdzCdmL>%&Q?Z>}$S;aiR! zlr)wx{nfgqUsKkH+lyBREL+{~^=1xdvvg)S0HrkCIMA6;gq1|RjTb}t6ANjrvXtp` z2kX`XtVlxfD3n)gkLTO;32D{6y)NF+Itw&ZmkWsYIAhT~{ooDQ2A{}$BgPLp9mbOA z^p_BdiYnp(*6Md$wdQG8)h3H&_(8D@U5jOq4-3^&J+(&ES-elSz&9Wt-p-_4wvf$J zrC<$WYfrJYAn&xnKZsFDs;tIN0rNcj=SF80bXksun?=(&|b2$Q$Q*O!u&)+|Z9#IP_O@N!WgFBR+IfgeD4+Q6JKt>eqq^ALhjRjop#I zBnBGmA95!F2u2VM%6Eun`WOP30wI9$rD=_L>aWTq1W$od;?ieDTA~6lgebl%?xUSv zl^1%b?%(5H#WxT2d5L0*nP9lgxT3r|r)R=|AU=}?-@k`!#>27L#=wX2NjK#zh8w@( zr1D-)_!wtmEBfnKudO!MxA?ez-9G7nj&QO{zAj?*;7j^7BeN^R*a4~=wo3|&XT`c7@l=;l{HXk|5kkJ$ zeH?o~eDcOBq^bGHJ(Hbwo#R=eWC;FY+WhN9tc3rD%WFN_Db)lYW2EqmD9jDzH5$s3I~Hq7Z(;7GD#1kz%_Hw<=}Wpz zp!rr8N|Agmx4qvhpcjDcQ@V;kjmrz?I&l0TFWcuIPfj1bJEb6sw^Ntp0bW6w38%cJ zrFVO6uw~@C6T6{6OACgNC6dO6Jx?j)mK*bT7!o5CI5vVOcS;c!Lk$w?LlHqnw;T(J zV7$^S7p+%*?<;PdxrlDjF9Qwzt=77k&J}2nDk}wJN6yi9w0;(mvv~YX(hnLLCMqj( zu7Jqx>%h`j$po^j3Css!+Nq1)I|z7DrK>#2MbYg$mIgu2<;bmkdI+FZd6yOO_g5po ze7=b(%skuy_wTc%()SWFJ>sJ8@+9xx!c-QC_R;K$(JdzgW;Yqhlh!Z^kF>AVIjFe& zOInbYXFWNTuTWi)8~~ZCFbO%XnQf+dSYC7!QNv)6Apq}bG0>P@lu}PdpXbBm zZrKy5%QFHQeCB8mtRpHt?<69n)42x@gdR9qNFW|*;dLuat%6p95xfSMBDkXbqDNPy`^-xE`l(!3 z4ahJrYQ;=gOLuoZ9>r8sMsUsQU;EjX=A2==kQoo=rsVgSVPkOFn@S4~OI>2yZ)1Mv z3x7(-Lwf_|O6syi;k!pMP_YotI0e?MIBUB_E*cmaUXi2+@SZryWOzkN>#;;R{mdQY zL6w~#I{+I74OpD=tuVCHGC$>&z9R`n zf!!KE4h<7O!?nmJ^yHe^I>^BJT1X3d3$7ttXpCg{`F^`PRbDN4YEAE+Cx0zpWnKhl znh%etuxr>{{X@6A=}B2C;GGTI*Gh)=x;h_OxTVP&B#^!T|At1aCaf2?m*-#pZd#A> z!kvNtMY>#SkzcT5SCw*MradfuX?=>FYQ0`aHnXvAHN`q^EfFJeUnR`iBge31gmu#! z#hO?H8gtogf+2kW3_&5cGs5I$;TW7MeONk68+2&xUd= zU;skFLAr$Xbbv-WuQhoOe>=@RhbDZ|1yDdV3T$WJ?cd90N@5J3f+ij^ zBP|JI-*dM@G6#A>Zovs`f3}jTodHiN3pV>ApHf0MdbUS^rN{KVx-|b}bn);>TE~P{ zDJt9w&w2o~HjegjWS2BWJqzSwKNIFy@W|}hV_e*fPpWzL?ox#aYyut?Ri{|?YWKTB zb@|fOtY}r`J$0vi{)_>p&&vr-!C25oq;|ow-CY8SX#y#e4BO`+t8UA%|ndB);59Xhb@8W~u(!l94 zV#K0cIuae8VjhvZ2A$l12F;{mH2A|K+l->P;32zM0a1~yAaT@oJXyy57G;@|;!x%J z_g}x^`l+4_`T3_8uN(bGzZL*}D&aye1!I?=CoS)E*69kMbDN5$Xq1c!+xHPE6{&13 zvCQ?uSd3tdt=Qe=Q})R9sdS{zZMi~6b4>7_$DB|SMH5B}J-xtQnochoUS70CIFg0| zE6Wz|Dm|Ek)Q3Ixs_6LH;iy?;0Otr6Q>hp!)k%h-c?^^d(AoqO;>$*NyYdKsh=PIJIC|+>9t~8t%^#e6#{{Lhw!|&-6G~(e?UinVQ$zwHvU8 z8`^mUnfG*Ty0{H)6kV)G%+MrLb;#ThEN#d2)znZRuwdVRa!|%=?KAlU3 z7LXyU#a5pv^jj`2!u>UUhEEI{z{f0>((+-`5H7)ZcXP%Z#C(GT0Ztxu1S7Yc6Oi9p zW~7=44Xl!1p1k8&B+}zzn}&eDBvKp|nTVQ~zIO@Sw}zgcSua7!4`5@h4Z&1)CZ9gA zP|6j~)&5^T?775&&s`o?sKBV`OYuL0CEy;Fg>~}935X6csD=x1CMh;2r2)}u9pbX@ z-(6r=tCH7OG*_~Uj7=*_^#l+*U5c91M)5+PqSWpcAM^(1Y?wko*J8g#BOE=J&@DL* zE!ltPr7mZLk>Tx!8#*zYk|C9=;^Va!J-6-Y2c}#0y7cz+b;CctJra6gU+Ex_9~Qk zqMB+9Fqrn2WR>GBw<{IIbVaizBNald>%l+Gpi~u{zRHfLF!G_n3d(e7M)D#l;(f(& zT}4W|8N5GzY+188iuq9prCO^nIdf1?-a6BrlhmGYTw%=~S~6#ku+H#g?3rw&B6J$2 zMMCg9s{2#zYzF&jG0;?+T!u9HDj7@RP?0{ zv@3MRh9<_5<||c{#e7Ace{^gG(HXpFo8>_#6@rIC3JTtXTHQnwF={J~ORA&80-)Bo z(N&uz+{VEf*L-H|#pND%so2v`5Y`Pj+;d#j@{I)^Rgu~b*&btI?B=tCYl(Br)1cw} zvr6&{FP3YMTwz%dYzL%-a}Y323q_hbN$;==EK5A54Fe_AZ3(uMY+Lo3domiRpFi*Q zptXhvfMr&ttzGi?qfxaKZc;{bFPi_O$;}k}u!EL%y9PRnhqEh*mq+77!&_klkKZIB z#Pfgtb0DcZxJ$@&J zOAnDx44(qRH{c^VirfgL6_$p?CMvPsRVfalW8VH#KQ&HLkFvm)X;(z9knm-d`k80r zE>Y!M5SB^|s-cn=QA#uN@Lxw6xmAY zJ<*}PCpx_MM2F9w=+NUm(J^{Y2#$<4=V1b(d8;LbQBxBU71g9Cx;k788Ix+HZauO| zWaudcuH!kZ{Pn6O?DIlPoPK0hRO~`ZW5MzV)s?k~7rTExBBfpIO7lzNRN7S)qZzLs z73SECZDc$mErY7kSs-(a_%iPq`!_1k;$djIk2~|81WNgC1oZ)|0jYj z>@b7gBGq?l{xT?a=D=h3hnSi%YlhKcvIog%CMVk`Sp0xsvvz|XcY!TU#OZP?6xK^{ z@uY?XhaP~;>A`AVw%Du_O3{GGPXnB389dmlUFLpj1JrmLxrm|4-Yaoptc@TAVhCj% z0Ubt0-w~LpipBWYWFn~N_S~nG5)yoOBrU{h7onKCo2Y92K(q+wb|qEyMMPz1#NamG z{mBIiCJo&zgL^2ovtxMV+)&&=WNi#HvsNUpq-uW^wnkPQCMl>*9xmvqI%gvE8Y!QZ zI{9M%j`H3$jTnJ77Uqoap* zi=<$K;K1^R&bsGLPlJb)GBF+7_d5)$?4{YSv1unzd#uWV>CF3e=;Gz3#sYEFP}Iso zFCaOIN5YhtMi{}za|CV#Y_yu}G-al$rnJ=ebo5=lpBmV~DW9U%vPQ1i{OFH9}@0YNDjHJMjtX=64l19Uhf}K3j6Kuy`(#E^z z*eAC_-&a8fHtaVX0d=hCEQIMihKam0D+J86d<<~!%Skp#uqi%5cqQQT4r=bKEDFVR`yg&sMYf{00=GA~enzOZvEdjfr>F8&e&t;s zw#z!kmXUDOnN}$NksCqgeCQEqr^@q7?M+(PY6Z8WcRLUfOFF|~jb3C^!{$0+TsTR% zRBpPFsHqc}1z~^$z}AQ2A>8d#-fW9v{BV;%eDl-U?&d!9JkId_<;^>a=5IFroLLAG zY6dKLmzZi6V;DIn=Qr}&rwqpNk^;=$=qm-($a|^a0?o|c_5uZI#sf-=npl=K!j97F zYX}JnL>KC-<$_9&djQg+AgCw~m5pp>18BRENUPgIf$_jKi!6k1GAdpTj2b3M$azU( zK!^AWxIHUS4pN-HZWl)2E^Z`6;KNOFhzJggV^x_3yufPJ4BBk3w$tENKDs0LyXGQ6 zJ5b|0Ir8tAnJl;pbf)+R(suNq6}aFOQjT5Jt&k$G?} zB1+GccY-Qtg;8foCU>0WnL?P51C-1rhFEZBSI^H$=xgl06v#Oh*q+JBLLI5ul2dCt z%S)T9IaCX{Csc7sL{zub@IZ8q%?!xB74zP1Am+@9fT+&t6!WOMZ0P~G+PmmwwMo=N zUrhKhjPf(pnc#5i$ODG15Vyta61p|`THPk%3+|u-PZ(lyBm!hBP@Ry+yM>i>&!M#{BsH1r07M-rI!S@SH zN9mL8+?5T_6*##+-Q)d5(nFMhNiDdhq}x$Tf&g*EmMy1DRtUO1=56MnCW%ysgteJW zif&YO0?OB@<*!se?ob|ucHF5c=F2{;uuP!(83>!cepf=*5RvdbOFV#e2BP`qKqzoW5U|Jf zu8<-`)?*9IjY{m+xd$J>gIbW1RO_uns znW9i$=x`~bJ%pYULC zj}fPDd~jft<~V&+oWCVuRHVNuHUfy8@GW(zfB9iTIjCPl2gH-G19zeCinMgK@I4eKNfU2)Qko+DavLG`5lc_K(-6`r7^Ngcq@Pe>r*gc>fD)ldlPCfaGVGmM23H zIgt(}xHn1*fCkf@75F&zCzz(o^yD1|L$IF-@Y(4M#&v2fmw*3Z_hJxdKx3o_e^Gu* zCi|v;+!O}3Ab$uAsv&X!Sj5SOe89i6p4%lO!5SsOf-E_WX2D$OmxPD>HDY31wH$@I z6z}3(8;OPyPCgb;6AcIDoDie=cDI+ZEf*n%ou7S5q9LgMi)Ok!`4^M1wWa~1$sIaJ z@yk%~x1|Ap74OT4xD%Iw5P(8-FmeeQ4unKAJ|)pO;Dyp(u~3fBTC5C+g>rl@ae`KP zWC)z!v8p-ASk)ZrovKN${TRYJjQX5MeRQA`g1LwDg!T4Xp*i>_FvgxYfUJ6RZWN@G zDp+n8m!LOjU&Q7SLUfQkl(4+`-s?hofDXnzx8VZ44~kZ(IZ~D(u>rRU7Q-qPQ4MX5 z#Kh<$I6=z@&VuR1!r~q#7v=4S+FA4-(F;`YS@%J@6{@h7Vij;HSdM~fIflmMS~xbb z(e#FyrMNrsbTzD}8yQR#8PLp793IYaRAz>wCNFh9@M6sNg*}8WLrs_!7>bMr8*^a} z*GSjGrJ|mok*ZP3jS!vZ5qS#Fkr8lEqg@A}$Tiq8dLmtm_pC!>&6`DN&SOPrlezF^ z2Z)GYKC%ZIkEQv;47V(HFqclFY8@{8g8n!VMCH@MQ^iSIfz4Pnt#f-wb`zvUHO`3* zGiS|;8X!xwD#1+U=IvyXH6%#RU(}#27$d|Kicfcx0jt6-ye8@7E$2pgvh_|ZCF6!S z#r!RB8^+RKyMaS+gGeX~3B>gYVGXAv=!`MwTBJ31uo(HRR#2l`T5HrCZq1YNb-ib% z30bbCw4}EUH%g8_NHt`sUP%KRshk5Hr48wZ*r1W~(s3I61&FyfLN)OUFlHUZahyOO zjLDk8N-+=)lZY=V&w*kT4-23G>|NC_K;d>DOyItO(c}tgaw_{{pafkc23q)4}Oy- z_|mB&SMN@(bp*L|_Uo((OLpmw&}X6>XETYVCkF0>_{%EtwD& zOiEQY2hIS4b}Tud$waIyCQJfMn9n;_hkqK{*!-dPX6qmT$}Z^+yt*0)8Nq#QfErp? zXTo0_5oAxR>FA8W3GH}l+zCr+BA_Ext;n*H)S*QvG)*1F9s6KAv>w&1v#2m}8Q|%U z3bX#R(u>o{aRo}|_!#YTEaDevBe8(wqXh~@WcUrvuDbtx_g~{Zic68aO1<3OK?cY?PBXCQyBb#MS|2Y&20y zhwH+r>+$ERRaN1E6+soL3`-mxE-dv)I_+lo8cn3YVZ#Y}fdkkTFQ;En7|qiy50vio zgcoLo!}`6J1%Rx0y`xg>{bQVtOFGDw>In+QBsk~t5?hgi@XIE@&-9*d>6~hb0n|t9 zz)5^ygjGqq`!Ql@HS7e^)~<$tfyzIH=oLHfR;@twgD)T~G-491m~rS5gUdr{si?=C z!C~~>@Ze2;cF2kt8W_&@FK#huG_E9I=bTU40>tMo*Q1sHD4q$Nt5I*BCYD`>r>(UB z990U$e{r4)NpZ*gDIQt}yeo)Fy1@#TTB*{5Ac;PfDUB>@@;t;xoj&4q-kKFsx^eq+ zgrk#4&s|N=nj)iR#s_#+LYJcopS-pFu;r?=eSWf|7S1ZAKs0mV{i zxo}+Brj;i}&8=Mbe*F3E_b*?)_-6O*&##`p)%%oRez7|Q<|!#|oRIT%5q2_jvlkzf zp6>5XA7#3m+=j~1Z73VE({03(abXiP_?1>I8OeYjH)@m?F6!itax1T(!6O|P1bida z;n8RwAY<4xv<(bXSF=8ycbbByDeJU^EXJY6oNOH@#G~OKJ~t#1gJLQG4~5UV+$bM; zh{Fjf_`^9b64^s{)J^wDucaQ(s`A1HlT{860K~e=5SM2tuZCajp1YCX`nFx9VPtYD z*t$BvT8Ed0WC2)_u$UfpY|%WU7Aon<``rk0LqkWZ@;(y#67tYB4BUCzkRmQ!E6ad# z;X^jFb+U<2;^v@fz_IR?q7kC(6;h9n*ip0#+dLo+HKtGA7ui+?VEwj4uG_eOo0I^eVE(Dk<_7N>N0BE-S@Q?086lvLwe zhHEhwEwjyy!6q`fu+t$?lm;f;zR(`cWDml3_?D(C<0zM$B#b$!49jFJvrFl^Y!M1> zBwLw*o*Jr^GvHOq2&CGL>?PA;H96jv7kOd?*H9Qxm_vpx()QA7VX`b$+v7IX2y&`cvA3BXDbUr-&Q^bvjta+z?A@2g~yU;vD%Uu zu;XM#bjv`a9p8{Tk~j|Cl5!myYTZ+*7Ly{Nld5CDif3tIXf*;n6mtO6n*|+*yF1+2 z{$&B#_jiX_Pj`0yvBTt@c>}t~M|nrN$L;wN=BnT?x8DASAhgw=}}$i}vVP6J%T_j=bu6AdwU1*~17!5V0j zuwcyoEqIzqPSm~Z4n~Vdt<{VnfqVeuB zpA?w@8Yv_fmuB{tgR{RJoc-ls>#w3WlpqC|9KuOL#`9-up4YQppBgyswHW!o8b$+S zxK$bb_xubcnA7n}Wg)a$nj6oU;?ENj%-a;=GKN3jOazQui*9U4j3CB4BgA%F$V`{n ztr0jh!YBn~tekJOWk@K}7bs@oNE@->oLg#a0-cAaNKVTVDGxg^=1WKR;6rBr^9!&}D03bIq*Ug5w$8a6F}3IN1CO zpz9hSl?u`yJOeCq60f2M`4-ELMxD$e!o`^*)LzD;u5qWOp6nANscoPJfJ6a$K@Rul zMs7fL+P1_X;d4m@m2j%bATdDWzS)3C(3TrIoM)Z7Nc54HLG9t6QEfk=+=&B|iob0|=Y+*r(JDdKD-kaoidbI4@J2p0f1YhJ6W8 zn^SFCm3c&aU#|BCun^L#4!2l(jO9;8eA3<1 zMH(gxI(u3*&VRs;8?TSHEcezYaH)nArKAe&Kv7bbY^spjW+~T<-=EyQqwKl$)RL@r z&1vlRg{YMhS0|s}#gv>7X%M-C61SHCqZ^Vsp+>12Sq_h`Ptn{GZ#4~$0J+(do+aVS zar=H7%T|(e4l1VYJ&_!ZLW7>*8{e4We+;qzJqA+Rk#f#{EXECzdIi;N=zhEb_=Hve z@MI)&E+$d=GTl5S4O^% z&+dC+28^80gJlIW$+L8{LeE6IBwSO@lr`C~tO&{zOVTFr!pdNxMaqO#4pg*?DPCz; z0fJ=)3#`a3z^r4!;&S#OfrP8?({4U^9t&wnJ#f$HqVe>I^0NXp>W zfjtvzX8gYL{Qw_;jjjJk#))Vel9PVFX+oaL1j$4GSgK+;Ty8|uCX%i^QhMmp&V|`Wcfss6a+5f1GH1d#%wMn`cwPoy z>sD{vAj8Ns1un3PD-uAv_=1>#R`cu`-CVZ|NP~1jcYl&um6?=f_y{t8D#mFH)fGyg z5IQurSPrQinZiYycn+fVm!CPK5>?q6T!CD)#_+6Fvx_B~)N=r%i|%iA9ZO*JQ~{&3 zR;L&=tX_a4hXAVY}GpQPg0 zb-9LpP6*3Ac1Tc?Q^`v!xV8Bx-PNwn(?($ymL=XcybvZbS%`nqImZBikF1hg&_*P+ zTMkm)<4ZIe&4Pn`Iz-*)o*eXbOgnH~K>i zg1c=|?RvDT9m8M0$8ET`%r;&&ZmLZTQ#}}B<<|^`@i5_#8aHdqkU;Y4q|TuVGawN1BBRn#jrNsH3C9VNUFJN^Qc5Y&Q>#UUrI-_^aHuY?C;u zb8y|E(RJgJ)K#8-`~?g5kU%D8Se80g?c_dLq{`#UbtlBXRis2LONi-|wl@#G`= z4VPD&et5u$G1p0;s~w%=&$750?viV3?$~N$9}yvD%4$L7$ksMaHmSeqf(+WXOm8@5 zU+#{}DTJ*^(K>lv&H#xvrf-s~?Flf1su-a80%WZ!G@)GhC~@?H<|Ajw$$d94a}r#U z^p@H7_m&Q8w5Z?Mleg9%o%nD#%K<<3Caip3K8wF(P_0riR)rX83~GnQx)ubaPx1Yh zj@ls3AvfVhkt3aPkIj%vZSEKw4wN2`rf}F(aS3SREP$9b1tQvqu1@VJ2M?`IzI?(I z7Y3uY|uT!!Ao{C1g3gpM8SdLn+Ts%&7k01Ye+sllwm8F)*|Hs zn~=$u3#T9wL?+%w;+e0L7C*MvFxqvJx!mhH&U~=IlVIic6(zQ_VeZ8%sTx>PY?VFH zP+Pb@_Ycmb3~xbipNk#Rn(ppg$!B3BtdSy{AzyE+demWeP5x|2zh^0-u<$fe3l~va z>VZVfLdG+PSrB^|`ap}-u!95Re9ze zwsSMg)}r2~b;iXMiYAxSv>~e?0&izbIPzY?y0lcUkeb|BzKcKtHZ2KmNv4IU)vT>M z^%|$Crs+(4w-YIBzXTwu8-ZwO|=W(xj}z^4MD` z_*FCUGnbAL>M@#%IJOAe!7(|7I(a?#$p;R>K$6F;X>v?f=ZAIiB)N$mYk0gAzQ<$Z z1=B270a32Lidoko*)egQw_z^u(J51+D~iYQs`ETAVvt^PVE%afEIR^49HN}NCk)mC zQw11b!r0@{nyn`8hNafkLofy@SS7f}c)S)##4Yi8x&&>a3>_vQ`Y5AwB%p5~$Kbo+ z9U?50qz3i;wVUN8)ZeYd|(REUd^=s*U$9fkI2 zSsueghai<#LOJ3KYyfORhuz2k8tco<9wa@iBh?R^EEPsOB$Q@v-oAeM>bu=fZ(kR^ z3#nFW?|wkovHb#oO4w64L;H9%+(COp`%k?fNL9m{%hnX)XvJ-!r^~7(9lU=ylge#;AH;ISa+?5>2E{bw zFaS6H^m*FESrlO;8g5-WUuEfbMpHD&T#cK4^P(P#YcQStdLmzYjdzFS+0x4&U4{#L zi_A}7L5ZP=L5%LbRK(*$>|g=YatYNqi&0MI7i1KIhyxW@xKbqI=f147QW}(EgF`6_ z7b~A?r~RBWaA0(%L)bU10C==rT4wEQ98@q__$0R$%QOX=2n@v)Fb9LNx04xj3@n#t z`t8=wiEK2&XgoiOZ34i)8*JBfHDu|qFw3DYd4BQj?)8hWzuDAUz_LieQ!J_#cbN!1yi#;$2<8W zNz7?=q07WGhxSc-^td)>prK*DLX^883_;=*vTrcI*%4t!xLm2a0nhw)bW_o&@(?@9 zrnufl3in0~hrc-#<({Zf4Y$A*mrj5q7|c~RD!P^uyO*rr5>-VC;Gpf`7|;=^lC9`V zXJGCFhbx3+#l!f&JBq6lIdY(z;d2C zOp{a{L`zXwTw<7gh13cryjCs+TWm~3C)2pq$j*#o8fHw+LWj;}BI>Ui{gtS~3@FFv zO!Bwe*;gS(FtP4`*;j%Xk44TQCZ`h=|8k%+Gz0c+5!blML<^Wi2|hB9lFGsS8rjV$ zXHXPp4ABl-#%Wc1VB#&FO@NCSpR-sH`8e>Hq)NLihA*{_4e6VK$~07ewo&sthCzo3 zG?OLM{jX?jQ$Qpn_mDlq>4l58fMbOMnSl}{SkvqFqXAOCL?0BJ3Ovrr@G1hujEyp* zJh9iEu*EiuLaJfs8c%p|+!vP`XUv*@UXHDHImpM&n|El{(msF*21*}l6yzTJ{*zcz z>|0{Dd+MzVoybE;{^XCzX-`EV`_>_vPbHU0N7PQ+lw8!e;4-x5t!4Ygj|Rv0HuA=SR?qJn=+hm*}b{8Fcun9WgM-Vfw&>;7w2;$?CnpI zb<0RwLawmWIam=ZoOVlhz?&H)EMed4Faf`eWvHky5=x&YBYyzV6dCVErpAD zHQSf71^uP78w3Ema513whTGov0;TB5dNo-(t$jMAHnuf*mbmab>k0-2M zF;&;qke)_$*RJ{?V#o^G+ajlV(%n7YYU#?6+A=bBHb%7bh4;q#Ls??~$g>3EjGk|! zg8(qFX-vnzc6 zp`H1G1YeOU=K~fo4xeX`OloT#!VrRjq}$aaw8Wrk(Zr|l;U;Vy>QBbPlJ2?Z zza?Sa&YUbuwp~12B0?ZsKpTNOi*cl$8ghPB6VYX%AU&OQFSCkt7#tRpVDS@AbuW2O zA&Bw@!Q;CIYA3x8^Bxm}`DmJLl%gjKW+u4?O+cw- zCdA913;;Kie)Lk$z_a$vSARZ$J^tz00qo}^u=^vhH%DNPfBv^adPiXQM__M`z%GvD z@$C`V#gVk%3bxGNF}`{kg9mLICxDyQ3E-xA0=Q|Pq`4L}X|5$rn#X{fHcFbuFgL9f zn44w_;HI4tQ#23PjuDyWvla~2wT z?)R20UWL_D(G8mWGy6}o!S_-ck}zbCHyRNtpf^0B@r+mMV9Xj?tHyFALX&v?V)kcGJ0IP zna&?Q|r%(ofd36jLj}K~pa+o6HJjILr+MpOSqsz;<)4M&osj-{Y ziHVECw2>`*v}PJIxZ=TgBK0t4R?v==b+@C;;vajrEqoSiV8 z+|Hs(sZ~%F8 z3Huq@guj(I($5s+$vxnK;S7q{kWKG(oFiV4xm3haY=AnKJc_$s02Z2AF~e8H-|JGi zMcFYqDw;_J6Rzkcz?<%vhr{mK5@hXFx?w(WqF zq4AzK-ZKMZ1~cA#T~Es&?OCM=w{1dKKPxYKKcQNRcpfLpKf!rIvf>&jUbBLeL@Wi0 zUPpyA9(>5*>3TDvudkSb@*@-vH^(f+g68HIo-PeHm)dGpc7bey2ZY9c zt&jzP30$F&QnBqmaby|h0%=E^+lz-ARAnFV&tUAZnL%Q{=HU=gfG(#BS#j@`kRFbM z>7GwX)K{o&y65yR6v__zPZuL*FxgInXpvF7e$sV}ce;S~32ER)wyUA%!;{?IB!Cl> za8?F0+Q~O3%z5b9!q-uh2{@~hed;;Iv*1o-6LtUpNqe*Px^A3ZH_HF&K@j}7du}DY^Et9|Ab3S4 zFzI-6T#T~qp3n%=i?-Ucoa5?)rw46fog}|Y z6l^3T{MCU=4Z!)-+~l>PAHBx7AX=R{&ssCjT6yYLCg7`-rnL1tigsyAUEl+v3T6Nv zF{n;__+4|^pBLx#6EdpZzkw@PR6HUu==zlbSuJ zihbpzc@nyP4RhLVg!qUEK7Hm#rseiVSLpl@b4J`jr7-P_(4yTDtW-bTeLErEop!&Ih?9y6~eOWD)VZ|-MNohz5!}Dd9y$4gL6g7BM z_<^G$W%J@C5OzSL}r#=Y#UhfR58I|W@VO&#&Ij-=; z@J9hN)a{t}i(S~%|25FA@z6T&(-#%PqNS z;9~AmvGkbGYjPn3i&Anq_oli@w3vIF|B$cNa&M{|l3J|$%T2VVMQ$ zpy1D={fNO?tp4Z)BeEg?8pRzQ5wjux8qFOYZz5Su$>sJRZ)^V=-5tH$R{t919lhLE z{~GNbZJV-3Yt(mivWfhT*U0babkq20l$P;-x@qzpuhQSEP53`vrN3937^ax=a{FIx z!`~|XeYp*PtMvEfHvFy9-&fo4w@QCsZNuLx{e86we=k?*@9RzY(=1&czppppPiHfW z`Hx?0!r#j^`a6EH34brw=F>*J_*uva3rN6JY;cu1xzTSktSF7~5 zZT*#$w$lGi{8t;a#r!X~?O$H4(cjB$>$hwkR_fox|0HFuyK8smHbe~hWc0O?_`twBNw+T^>31Yv`bvczlnc-wMu`I%r^9YmHxKrKfYR} zKS^dA>R+WlNfw{aFDYRef7|pYk`h+(Z^ECXgq8f8=C7oL<@}N?HuQg${Qz;>pJ2nAP);lNZ}4 zQMUtDTCj~0r8itDU?URODDh<5mgZ>nOyoqJ+c1o)haxB2l%hVnTE@Y)UCq(zvB=4` zZOzf@xyZ@3ea+G8!N|!r#qN>xx63$C=eCT(DkZ9OTMAgE#BE3MN7{ldcVXM+=tz68 zl>*>Z8@jN1JaVFgi!BAL@x+sD`t76D1CkRRU2JK=Do@;I(r~nTL~^oii+7}YmPcXR z9?wU)D+O$$M4bh!6tEGAtCYBHn|Gw$_(}`5@x;}Gl9O%LAwJJuX~DLIW%a1!WZPEn zX!We*WZPcvX!WqXFIGwk`9~>Y2&O={8DSJv2Ev-6rC!o|>F&+ch7p9-EwO+cqC*u$D(b8ubly zuzGNEB9;1<0#LJ zJwG|wxOZMXKsniVfOoWdf^xF$`K_bXBb1Yk+dhrK zhS|7!v~s#p1+sd!a=K9kvU<33x={tPdb)DDQ3WE+=`s>Gsz6rHS5CLt=N+vcu$*o? zAU|3?VL3hCMu}QNS8%Y6rLCT^oNhZ~KVCg!Io+m5vMuUz7q+Q^j#tlEPPZvxj#tlE zPPf^)AFrOVoNhCev_0(#4mJ(ru{7u_1#Ds{$I_rL7qHD%;du3oK^2jOA3jsSVS4^^E0IyQwV&tnOGg-agS9yo|(c<_E`GgO>}~cz$o>K&9<+jg$Ut7j~)v|?M6^sje_3lDGLQ`Z3CJde5Rx`EL^6^9g#zKxFyFqw;ZD2yeJ(>J?0xtc#pIn zv&Z}AJ2`PqM<^~!akx);#{Zkc{HA-&c&3}`1iHI=YbSK+K~1@O5YF^3?yq>~*=5+V zl^lDLRgU{Q-~%tIb-~;H-57qBeV+sQAO_gW|ly|~I3^VIht@brjJdR)=qJJ6V-O^G7hMm^u;V`7Rb zJyp8WPr1j78gPsEP#gt~Pzn@4C?@OGBOWDjj#5+WMH=3D$7ASQITW=EFbMx_?EH*nV)d-vLuB=P znSuzL0V;?P6sM+Vaw*8bD2Qv%_+VPn^!Wbo)gwNR;u~*leK2X)HJWT)rlxupQz=#v zqNIR_6Wy5Qis|QbVv6|`s1XV$k7OIG_#x!6MKvst{HYJ#-S;6LTF}!l6m)t2@veP8 z?Qi9BHEYEEHO*G4i+A8dAD}_rK>5m^I@UdPbnTu(W^s|aL#twLz@&e3>e}Hq@bLW2 z2TpmZC)06L8#QN6D$of?y{F~wMTPlbK zJK_kbZ2|`8(O34%DQkxng1gBUK%WX34 zn%eN?Hfe567<{?S*~+T+`sGGrl{I77m)kB|uj;N(wkdja`U_XdWjx(t++zA#0jvyiMo(zM+>ta*d;k##Dy^aZ{?5NDN77Pi+^EYdW!1m@gT3(xBCO0 zB;|-OfGmTb9^HAs;oI3VF8h=GqN579Hj$eAbpE#muYUi%Miqo9nM4$_ z>NACHf3}SFr*B`;6EcqH#d2yWlaRXS)#$F)2I?l5(n3}E_bupc5W9)b_C%VB-T`{J ze`foMzg;$GOrY9_i+o? zdtP^tH~tbHd~$Bnkhe)-_H_JNMIcQVU6#~~Rc~B(X}F#w+P%dWy#>zC$SIT5i&guM z(`U+o?bFZY?AwmaW5vA=CI#d8OoiaArEP(~kS|}5C~an@Ci5{p{G8k^D9C$PFBkd9 z8#T&b>Q0Z##>@5Ivy1H}pJZa$0X->$!NVumJXFT4l|ro6N)#O9J~cic1)AHFBYBBP zqy>QgKmYpq&G)AJu_cp!J@7&}udVRk|2~VLE~P)8@1lgyjK`3+3w(Yg$HYc{)EMuh zAOm$Nzy{hDD^9fTogEJM7ke~4u|NVM7SGN01#Jz@r%yb-Cvha6KzVqUlj{%nEb}a_ zumS1hqy_V@U$l2ZYK^H89>;6;dpM1AAD(WXB%XEI)ljP9QMyl%g?Nm#YkC7wi6gXU znGy8)jyFum?Z(dE&r{aXb{h@jaAdH!Ms(o-svWWj_xAYRi|VWG|N^{ZtO zp89;3FFxWu`QjNlDKG=!>iq&X+@f-I2T$MXzb6Cke5sT+;`9IP@eIv`ALvz+e^-KN zJ&uI&^M2WbKINkZ)E(lhTrlqnnxn7rEHr)f5}>urA7yE|$kMgA+BrYXJcSwGuTlHuW(x5%}~9qLi*Fbdx||5(T^W5rc#z+2uf||LTgLGxema2!xJ+ zLcLZ1s~MB}o_KA9(jihDeS09_3b2XyFmu(eRTHWSfFD~5f<_zh-p%K=45UWT&?S-M z>;b^Tt5gDY{8=4#TYjTumsbzyvRZqNV(jwM-I-hHXC`@n6tPiMfU9&Ri)d9~1iFp& zX}&=B4QgJL;=7OUO!3A7f)z;B10#34Ktf=rgGUqm@XMIe1O#n>o=AhV&r5x?(jZw} zn(yR_Jx1STjUN8tW-o1V%|Z(Nxr^o(BEg7XAfl^0EZ_<22T1ZQ^U}G}o_9ja{RM=0 z>8D)Otv`xXsQ?b_nQwljfF~yg8om19Ma4Qlq$WAw*5Sd7TmjsIPY{m6NXkgjAngon zyf>A70axM;<)^bh3blUv*2jI~iCVwxk$jg2=UoeLJtLNi_o{Fy_Sy3D8h}Y44o3nLezLH`5FM2^?;?LA zsmAD%_kcdZO5I}cn+DSb}QdUI%UN{Y2RpyFx%H5_mAEOJVPo@v9lm~i9b)RT`b`7php>4eucf~r)%_Ae$j>{>Fj~!`=B@9^v;r&F!ozn z%kBOTEm)Z-v)`V_qxBio3u%5li%IQ--pD*XGTY+uG@TCE)4gU-eZr;I5psy$<$e2v z@KE{(K^J5ofqvv5?TPq^mU+eY|Y#2`gkc$zZe4NDYRUg9l@}?*z48cc$Oj-ZNJ<_d#gae z;>XxPT4mjglCqD{I3TZ1aiLI>hRa5K<}#!2g(+s-r+qbr=YA-kJx zM!JN8_gBnmP7gd9n(2e=<%P+@`6Z>sv7Od16!+qCrj8`s!T@tdvsS<}YK=NgDuGyJ zwE80MX%UTHloe76#Kc86k$KX_FD93m?nOquo>6pINIRBSB4-Ij))LC+dXQu@vCw-a zb}!K`VND07*9N7Mj9Kf-Jby_{R7k@doPo z^xw}iObR-`4Vh7lUA-)_j+^>?r!^)CSMY(8REB&4ZQ6z|Vl2@u$*N%`$m$JI>Y#}a9q|>rbFp!CH3tG3wR(+t zP@-u~!kCxyq8pA{su6JsZwbA*`lX=E)pIf>Chc#qr{4@^(;bs~R(}UsmkgjgQZQMe zi1>!icua=H52kqyy-lHy`?v23I9~LOBxVIU!p@_$_*fF#$NR@i%`?5a`5!$q_D4QO z+#t;DgB9;CONzalv)l7ay(JWw_2W138GT52Qz93D_7e|qHE(sGy!UbHU819_ZFn@V zhW;)_Wv8vxkm4f_xk+Xfg6G0hBzEX$0V=t6Il_C+r5w>dFKv!)Q?{nA>dosm!A;T0>NWE# zf3DNR%sDx&RTw!SR4D6|p7ov=Er&kJBEfg%@weJsa6%!r1yLwecAqSCLBdJ6O)FI> z0P4%Co#YN?mVA}rABHFPe;@XT{rR4S4;CPi+_O^4owrK6hdfMCN2P_(n);lahq*EV zdr7kO4spEuCZXHu{aT%=jRh$??I)}(5}-zK9J&)dYlR&L-G9sJ21~tV`h4svUdt+h zcth06ElHjNt294~HE)`tUCE@$f`=ItVhvCAN+65Pz$MZu5`9VkQS!ZJX*^4%=aRs_ z4}hN0Ngdct>pY2xaZDIlB;wvq;t1C`Ke?2zX6^PUZ}fg{v{F$Lk+c(YvkL%LAW;{* zK0YCaOu&}zUF;cK#tUTcw_-MjvumO9+{tabh%{%4C>WgTmf(C?5I!C>`H zYnV{8t3f~QjGU=u$p>Ce7l0>NzkO7{Vg*~wuq6do1SQ@gEg}$Xcuku0~6z+eZu2HBy1#50PDlbn1lqqq;8c zQNYyhnLAYsL}&;;ynReeXkXQZptlF69i@t19alrd9cqB67ErFoJ?phNW6e22Nb~4d zQ(KB5OuVVLWN!gth9O=_7kR|pDIYQ@l%&E-2APlCM zk}rUj`s$A;zm(dC`}o+#M9n2lfhpZPo;HOsen3bx0l0}Xpi&mr9%Z$V;{4cnNO%!F z0AM7dHxjC~8Hxcbp~o@uag0q$D2a2hOYm_LtrsEGmokX!*!Q#XDVW1Qxyh8*7l>?k%f*gILf(9V81$bdfBY zT~T#89H3Vm&cUSac|$gj@pu>=8;iRS4;)=`^gpD&zC37){&-%OB$ULtB(cK#IG*1} ze~1KFS)yC+K+M)p2Vn*tygzvJ=U2_48Xd>5)sOYkkGLPCjE`vR9nt(bRU}FfbEP~E ztwn?YO?pDPaoGL#%|HM3J!eHb-X6!epz4CHMSFzBz<{s-kCn6zBLxOZpK>KLBcdmH zR4<~GJOkyyOfdpIoMF*i`K|avbTBwp%NUP2PocSK>zIQzGco_E^jU@tVhgBT-mBg) zlBp2vR1mN<4Pr_$c8BN3${P;oY!g7o@}*LUu?1wrTXZN5dRBU0Gu^;-5Ca3*vRF?6 zD$ATjbL>aUTZyhmQ)j6Ci6`LGW(pAvIfah1Peyh9_TFN8D*&;Tg{?0#AmUtCs92Jh zW_xl661p_ld8$Y<)}+<%{yMm8&^`=Rmm3{%eZ@m(rQho#lN{q6Rho}vo~3&qBP3o} z91e+TC7S1M`$C5r4-l1}h3*s7vfBU+18~aM@&+lWi`uc|hOJRT2rn)CjU7+ zE7>F|7AUOexX6;5sqn{bMr7Uxp_7?viii&KDRQc7$QDs(S zb3!YcfjGq~F-5mIG+f5r5=6bQA-3-?Wz`Y5nZ_+pY-Tc#N79zo@w4eD=hvUV{a@dI_h$FQ zZ@ce){?|`$qGX?Z&8nRgyPPQ7#*r?f&;8wvEFJPx)G8AsgRpqKhrz2CD=9nN#j&5U zB3rkLQ=u=Je}$FBAomP`=S03NlOH7U1{6~rjCHE%P;SGJeh1B<_huH#upQSKd(H2S z>Fy&&Egw*bWuXDALR@sQVlt6a!^ktJ3KMF4GNv`Qhfjeu?2-1)kL0?;P^ie?NkvT@ z8!0%91BbbRJv{qn`V*&woY+>|Js%qiP_{tm>Cf0u?PPn15fAziS$jXpKZL&Ts}7y8 z6rc&cxEFW*LXQE|DDG=>knkxvJ^))z#&9kUiQ? z?YJ}F0ch30{_2t`M!M94Qsj4jM#VlGARWWu@%zdsKZJG@`u3V*~bwOha_3CQs+^sYt9nF zgknH+Hnbr|-J6GcI#3EBs3VO68rx60deT&yA-$Zx$u0eYHw#5s5&ewoyVfgoy&s^6 z80dI1i2@xW-FlrliI%gn=)bI?nIb5mnzp0RyxUY}jxJ#*4z$5nupVpe&apeew5MS) zyF{W!Yy?Cj-tIWRXrzTyc)dg6_y%dDMj<}zc7nLsk)LKzYL=#s`>3?65#>8B1V_`; zv5DAA>`xE}b)!H0*Bc=NTqNkrODIni7f&Xc2?9 zpL6y44X23js_~B?-1_Dj`)aASYFqbr29_)rEUnr_x~&)78B?SBRfvGJP|a?`@goRi zsEoLMr=|M$XS1XZP;q?4v?=%C0zq1gv7{25mWE+=cA$&G#o;^dX5qAwyZy%k zmg7H}h?d2^{Psm-Z&UiN@yvGRW?q1pQf#~_$SGJy%5RQ3mBrOD7c3UbC~Miu(Foj9 zO;~PwNUwKqFD|hyli{fG$vG)HC6>EqMm^m#2 z3OK%gzVW^Kz9a+go=K|XqcCx)`NER~ZO>|T9;nkbt7IG4+E-M!uBIP|m zA0uB~b27Sgg+QitIvYxd7_}y@WY~D$4a)$&9DJP-zEO@bh)JLh6|n4?g+*%%WP4-UZL1XsU{_e9#_3?M?Ia|NaD-7942B8D9UnFZj|poO?Y zWr>gMX%dkcuk}!p`mLr`~xVhe>0P)xAb&&OE}uzfu%y90Yi&^tsB-g zwoGL%>XLzZl7{pC?pmP5VlN?D&6$u+ICFr8CF!88XJz>PQ0$R==*KWI9#aM^ZlILA zGt|!22vd1PV3_rM&^C$UZ0+3^y$IiNp(1Q-LIf@)u{(9sZO`MJML>azAjRNELUtW| zzi{b23~OR`lfQodKi~hKUv{s5{ciWmn_q`Ssk^7%LlwHB9i1E%OMKTnA){8(5*kE*7y2QokHh4esWD-y zE;2*Z5JMr-lk5Sdlu=0G_6J11-LH9fL*ny4zj^&;_v1HjzWc}ShoAobGa8jJ<>#1N z!*8pO0Fl}tFfsw$b5YE>N)qR?u}&6OA`-O+acFN(qScV<9m{y$e$_yxJ&B90{hoM< zsf9_cjTyL(+bplm#vqS=C|CF{qHQEAca>FZ^rEHCa91c8mDE^jXt%iCXx|gA(HHm= zxW2y$88UK|1Kw5z0vzWjwwl)=P9r}JV5>@@YPsIP>as4sgWpaY=A zr5C={6QOKE1VWCE@B8cPt`u#zCXf*1BeBi0vOrx#sGr)u_-aBxK&^~kgG1POKfcpk zpH64a2`U20NtyI0kK7BA;cZQAWdzd`{6xYS!T7H0RRqOg8<&b%7BOX#X}&Q<%T6%{ zb>IZLgcvjY`7W+)Ag|q>9WM5JF(NVfa+^bV!(O!{E8vp6i(+=@$_HCb?R{#F0zQ`& zR2ul_9Td*Tla(xTD^IsZG1#s7J{pktdP3{-#5>>z$Gkj084aoI>HNw%mM zGziH6ZT^Fp?F%7Vk>frf9lj2`4Btq>V+VCIvT0A8fwpgpr9#>>(nm@z#!!mgs<5#e z66kmx71b4kpPW5IvgEvfh|4|CcUq=^U=^sFroJ+htuCFoJrldo#*n2NtqnK=u-v)| zUuaku3nEA-lFPhgH=1|1bOZPHp0V&n-?;RHiO7S)#r(uxM514`oj&S%CyI)9Ht2>$ zaVZS)5A|T&Ws!#|Tx{gt8o41UCT3#PCN_#S$qlh8!^9LVG}_o$<=u_A3YQ9}&^Rgz zT1GWX9lEI`6uSg$>>UZpGD?NB$(-QeOq$56M-&g!qBK5OE+5|SL3$a;u3=GGj3=YS zMMnlRfCa&74Tue~Pk}L6DYWnWggUqT*evL`0q)mvexv{55 z#JSQg!q+tU-+_(7p&D*$=Ka(p2)50;Jz^I@={$mklt3`-y;%`VYu~1Z z<~mi%SSn6wOvc)p(^J{9D7DX4%oThGhQ3^>SH9;~c6TwiU=-rUUH+UNB~PHWO&=Pp ztC7rUbT6#q?;uGQEU?P1ECuZ`#r?%o7Z)v2+aQ3v+@9^yaG_=K4cWLc-4d7Pl$FIZ z?~C1c|NQy&_q%U@{pP#>{r#KWzkhi1kDvebX7~N;?{@$G=GUJ}SI_B$Gdq!LjEP5=#)^6qL$avqK3f-}45ggFI?{xDxfArV4WWJY`3OMl zHs{M9T1R3f@@fxRi0+x;oTqie<5Lx1=5IPr9kdXNEB=2x_`Cp`;8$R4OSuCKxp;$N z=|M7tWQTf7S{r-TF>PdQ%h-j{7oE$b3?A$~MhP>*4vY8xyT-=N>5?`=C8cNrDTQIz zwoRWO$~RGhJ?)>=gjzctpbivkT1#~bD^EYQrL1~aVf89$+-m^L(Y%TDLW^J$q_f7L zSkjuBLl9wsFsaLntBO%0Bb^w~efZ7gW|EBFeepXj<*x301{X=2HD(R#Mp+45!@{vC ztYIltR4XceD@aQ^>Sk$v;22sg6oExJvHAS9?*TJj9Au@26n$&^ym)6#vf}xa%xPyt z$yLHnR0d21f8R?ic@4#>+p*_GAA|!LEwzvL%ohhuBN5Snxf5#X<4a`7b(i${#a%b% zaWN`vX}$GiKuECF$I}?Sy9tYrZL6CvSUIn>7%MLI2uMT9?xtM?MYe!vu zYn0;8N<${qQANpOl}TzS;u4IEotL7uPs6&HTjGUChcdcMAhHPMwV-+e9H!i?kQ$OM z(<20m;qPqZMAA?9@>{A4?=0{pfpV^8G(z|W=0IpIyg$}|_8k6k03nUmxWC#v5P=8= zE0a4QBG_xd#-OWdgi2t^gk?g$*7=dTjfG=f0!Ebd5<5T}s%AD>6BDcX4CLY+Jxpt7 z=NVEFsBzJuESv}z?e64eO)%${1ajpsjf~hu2?IXJ-MnABUfj^mG@BSTbaVC;R`X5 z2zv+t6F9xV_Sk6)D2-BJ+g==Xzudkx8yrovbinPP!mWFSd!OEH>}^`u;P4?<#a`5{ZG7p1mX2`ah;&Q2!|nETNYc36GC zwBfp-r_RCcsxI~-T$9-ThQZPbO{z#b9SPbO5?bjO?1~L6ZO+58s(H%h9zhzHSU!z`0J*BA;F%FeANYPNHM&YC)CA*z)gRM*Z z3h_TxUKWwc;F};>eNDHn$Jhq8hq{RzslBb4h z9bHOEHbO5RKiOP05RHG5S~81do`P18vTJ>-fLLyGEOBXKTdXMRaR|wcSK0Gvbdm#U zr0SMZfx4;8KoMY-2d>g4^UWBQ((+Godz}bkk|LrgM*jip?PfhQR`Gi0Er&w zAeIA`@FFSHqQe$U1*5!RPh1joyt^EuQj1}jmnO!|zYGkqbN`K(pnxscVgT6VfXDW@=DMHR+b zDs1dmv4v4aY|lp&+n7j%ikL2Gp&a)$(fa8YODJE?KfRy=R$Q4$YI6*TM$o>6T}exO{wU9+G}h5nV3`W1_^>}qRzy*&R2dYi{iG=) zp!V}E&nKCv3`CiH&*#cSJ0spN95kLBt93;6-&!uJOdlI|jcRK1+Efp*Oi^+87p%92 z0X}Hcl{>t=k`jq@PAKy^9V7QERfCUfR)deLR|lW3V=ZzzmFa_qNoU2=DA1wf5!SHa zB!NI#G1W<`wFTie5El!GcyuoUd*pELK^_e$n$bLQ4t^%JzZQo&6ACyvZJ8hpyfuT; zZibQ$h{>*;Mde6WUgwQ;ZE0nA3*c$TGYQ8p|NP;n@Bg;@`@eqr?#&NB|D=7!92h2~ z^i4JnhvHrgRv~3lQ8W7WhJSJQ=AYmHWNaxhXN*$CVmRn#TH5clHCbee=Na-YC^BM< zW5a{kNvnDlQ~e7FoZCn1mZN}z5Y^wd&rQM=JXEkq3bFaZ1=hv04;rO+$hxQHFfH>* zjcllURZQx8Sd5eE(Lr=xY0m@!k-b{j=l=i_c^u-kk=s{!P?{c4OhG)URJdQ@YIXJc zn&^8o63WVvfm62|V@bGDx=Un*9IDicDZ7atSg+L7hFJF=rY@~HWd!RkLKXOVjFx6@ zJ3}0n8)r~i>Ai!qajeibDhXV0_@ZqAJ2t&eZpixG(18^RctFRga+G=~mVifya4lh!bKGmQD}f6j z{hkM?Yh9M9MIZ_(wGc`K#W2=jC?OVs&Bqp#CyT3?tgRAFm1c!LqK7cL;qb2q##Ock z!56X>Om!(`d;-$;*%icOt49wN*h%LVhA66aBHC68OrVDUId_uN3>g<%->OXXv?^Cx z0~wTD4@!crfK!^Mm4-mycwT0#8|`v35~2s>%AP<}WXTAMO@A2&;^XZVDv&BG;c;37 z{o3C}7a^jWdj783)#0AK<2Hbb#bV47;F5%d&r{}#EDifRQVPe>tfTA^F zz;qUv79w)i)-?$2D~Iv2L&;MkJ3Z=0vy6=+YM+7#V(fzo`$9eUI7mkryR~2K=W|Xv z^I~n8te*CqXmdSKcjKmDwqmvIW;3o}dV1KTm{F2b6OP)>{x&ix2s<)gQC7o+=hTq)N+4V-L&Z)ddk969aNmu@F{X+1F2CYzd_| zhk2weSZg3{KIiEL&R=~8wA7XIa7$-9QddAJCZ3Q|<+&CfLo1^!xKFz)in~#P!clWg*lg`%;At(E$-!=UEjA~> z7;Vx)UVx>^2|`E^iGpxt6@&mkrul8E+RK%a&tT`+*JJWxS71YNys&!35x%9ciX#r; z3^jWm&=Byv-Cq%q$+5}AMRQNhr64~1`BS^loSj$*}lS#kvs{Y?|RE-o9~J${U2S9W%^lpEi!Q0C|qC!Ri>RM%yHSo(?NDyA3%3 z6<9NEtPlAlkDjZK+v3vH9oH?UCw_KBW5bv zd1UxMxI)W~NJ2vS*2oVc8ZcxdzP^Vtq8OSK7a3X!oV%q@&N*y`4aB~@5S#6(evONa zG=)#vSJL-P83D97NA6pW;uQOZq3z}^1EiA5kaLZGmZ_&fr~Q@o5Kbre-hKHEti@X@ z;<8=L-h+%P?I#F4OhJR#S~f13TsshvL0l$aN+6LjO9~*SQVFs33xnecz@lt{*#?#& zM()ThMfLEEdq;OqGJIvF=p^A!X*+Kd>k?I=Va{8#RCx859bDOE7ptvS$gki0`s+9U zclXWf@83AZOmdw7U2?43ex z;JL8y{SvQ^m3$%2MWvS5Vy{xA&xeP5DgQ$TO)_Io&Gsxn$}^-XMCz>=v?qjko92`m z8zp#eQ#n*D*?ubnRbnZ|>$ri(6`1lxZp<>JWEm%xD2xK3Q{R-bN|TC9LNw^UcCMCb zh_#o=v|^V-p!7ElFFn@gsWE?;lWYl9pw3i0k@3xpEvcD(hz#B@K4b;gt@vEXV?66J zov(pS7HY(Z=_(>4;<7O|;Z2O)vO+QIQK%8eVQ9nY(-*#$W-%r?MWz0j4E-7tkfZ=e zJ;PAmyGJbkvD<>l1-T`+AyI_;V&YUi3^i(kCges2hs#bnK=C?T%@GzH!OKgYvI~fC zQJ&W<(vVfcEK{L1wLtpDlDB|c6AMHabIP*S!^)CXV0}{ytZi8eq-$;g4Gq@pVWBIW zoR$^Hq`?JTMaKe&ok*~$ER0j9vrA5D;EN?yr2x&XlssECyY*{-psSLa`d-Mx33W zqnF_MN}snr;ky12Pe0MhAGC3P;|4oJTMd<+rT0DUD{UYYxttVMCK+Gp_(bPkKE*Ty z_2H+#taA5PXxsg%p#ifx9B|lp@|T1(6#xNMU;`BdI|=7&`pwu}*_F2*$T}GjXz=|x zSDqUj?neBX)-e9IgMiG5y{$AkhQ|ede?kBWBx8Q@!gWb`dwEuRXx{2PpFAD?`LV@+ zYM=W9uV7_i8pQk*u`sWrUbsbHbPGJ8j%=ZiSC-_FUOS zQ>gWdTdHfRU894(aJ8-8K7A_yR)PGux%x={(emg=`>Oe9OCE7cU#pY`H$U@f4c8S* zZG0BFNg*DF<+l3$wTDcK8DHG;#Kt8CVl1N>^AYx!AB-y-@CQf)Mk+qXG#7vkfFJ;L zu`?2fV!ThTTHoG&oD{;kjK%!zE@lY)z48UQ5OKRXDu%sgphm+}$)?LZ<#f4(P37i~ zUE=ylcbKi1$eLH9Q$7x=XY+5iEhbG#I?kbOZh%j6=oS^3??zMTOR;(vTgo~8Rxf%E z-M($y(p9QRmrZso9S}Lya1SQkcZJWm&3bz$RhalM)2(M1&g&B}8=<%J7fuuclB>Im z0zogjo*6B%rMk_#Rd<)khET0y@x2s@zBI^nzs=fm?-r5>$A}zWTK&0r0`1yO zBF1JMU_oXFo0XKa4mVXOhk)4k=)FI>VIdl1h^+J+cAn+f}C^&li zP9vl!FPC7tTiOgn*1eNHwb)7fN`%nbzVm=L>L^_)(dmZ2psRqTFq69`-MN~^q1!;M zEj2<8O35?{hPUn#*>Z7?5}Y7f#Col38n7E5{{)cFFfxju-IS0|t8hTHtIlJ!c#<~2 zl9m?0d1%aS6mGsuy6p386|19bz9PK#!F=qBk0=-!^uLacJ z+NsW@T@Qw?3WBLmY$XB+1`9KV+2E?!{2vE?jl}<- zfBpRCdk>IaJ4Ph(3mduII?~T~QPSI+`}5(v-Wd=dAXvYUn&-lpj0m+Q{nI(eDLtSa z_>(e6G|P6{5tOMjK^k!|Dl(;|?i5DGXg3UAsxuGYofE^CYi9LAy@a98;vB&w_8mMK z!hE1Lh&2TzR`ziZv|b6Uy2Od}Qt9PG%&H=4)m6jpLlL6)8aA@m_cd`M{!-la1%jc26mpNM3HoIKvyZH-7cmpV`` zjs;za26f`8*N)iD2O2oF+&QMKmJqsc_Ql%knc&_6tuwpKIj?^k1}I15vi(LUdVzd1XH^D)Gh>z%}A8(|7B{- z?TeWkb0E5rIq-N1_;Lw&k{TN*@?dqLg`ik``<)ZLg^hA?G5Ty5(FR>y^UOLX81a^J zN<<_LutkO8ran;^AK+n=(*o_FrEiek_Z^q3%4@JCjSQDLCBMPQighfS5GB%(GRST# zIkexgxm?+vF)(R}EHjhAFwKPxRyE5>D3-IT>t<8636#~gxx zF?OKPbGa?DtnC##dS(G7&Taw_C`=K&2?gXAD;5^n!uNs5_ITx6{FxwN%77a;(`C)n z05y>XCRn21*DXDRg4f{1M6+d~L8PCxrR+wz74g^N|jid*bh$GEO z!6G0}dw?-dxb0!@4UzFiYb00JaR3zZ0O>?f3^LnHBy+Zq$X&6qB+e&x)#MJqt(bD% zmK8IjVBCxdYp&b46d}h4vW1O>H&T=%@yHmkeTe#fl$<${Qw0nR<}(>!!YJy>>*dkB zEJ~i7v`y$*J5&g5N&i_Dh9Xt@uL6ykE*9U=eHf0j46NHk{bGNkw5iQ~DPQB{3=KF5 zib&AV{5Qu)t82-fyn}fO)9p)?aACvw)xr^5-MkVdokQtXZD4^H{-v=BgQ0?_VP9+ zda*`jYh|<)K|@0^i>smT2%~dZZj*7rfONGN>=LyK_nSIVwM#(v$~k=#q{YA;!PNCy zExJcJZjVU7X6a!D<~$J*5{>tjAx^ujp{stc0!wZ?3`-K30#kV1#Lw!frMV_M74#;agxSsyF?AMN5~Q8Y zm({o*S2>S&!s5B${AM|08(}Hf=SF2u*^R~xzEdyHj8|8cNnUjIh7_$nwq0rTzbl6) zpNe?OA>uK@FY8lWC-)SichW$(-yw}!7VqP1c@QoI7mtJbw1~c%D{PuIe@o%=1Xg1} zWjqTOjI@}aiHLxt!H_os*Ki7z^F?OR3`U{y<{!WQ{O{f0zIpS_?x*kn9SE`C;#!3X zQhr4%L<9Z&h&ojpm9rc5CU$m3W{P?=%(*)%(r`>)UJ*fsq&F~9_Tp_Vc2Vg6I84DM zmRn)BI(gxU(^ssBf|ONc+6jwu6}dWaH0Y+rXbks9VIszL;CDjUId}CNxrwFlr%MbL z;)V+PNR3d7)GU0K&oQ@~2%SSsfVe-K!6-$y5T+?@t_eCB3JyYI(^48vs66FE4~HER zvYxJjHwlgW5>xRz<~tIQ2v;V#$HP+p2m7b%DhX>Z7m~0G^nj3=jTBk?gu#WRVJwFO zB$K05mTCE`LdO&B7A$tkBQ20Tr(O|^AhQc?hV$qp{ZNHD`j~e`t4fg;p|YE9LFuxj zuFFq%XA}f2l9H9ZOfO&N2ZX%JZF_G`BwA1DBSPF|4`V(My%-te_w@`5>h~uAwmN z4TIWpk_4hdkwyZa7Zi~d%d3!!iD=gfXZnz`8j;H4xEy@OY-iDq`wpR#^WH&p~)F zdSql7ujYJ3y*`VI&E1e8Yhp1Bv+!hKX79iK81n{WeSg?_S6CDjHw~0EgKDBd+7Jb@ zyIPp+*D~V}QRXbnsHS`iGA~lAX3ZR_nq-xjE{XMS+#ZM4sicfuy0kaei75s~ zyEgdDna^(8h7x#RVP%lD<-neW<0-BeR{NEDJ}Q%e_*X=#^yZ z!re*W81ss2W^XvcM1Uw+We*fdo zzkR>^{>NY5{NLUG{`ciQhcWaNf25PHz5qW5SekZf+W`|W?Sj4 z!Dwalgq;;{P?R1^D^+xfp3ZpMO1RQUW-@ClqsI3iQTIzb&gjMR>%?6F?;)p0*oSnS zi#23|yZcNM1-DX}gz3&VE;`iyS>?P~WNq||^^Rrl|0G2zWwDAO`|gFCd)U1&|6fML za*m_Foa6W}=Xm*-bDaF;9H*Oe9Q|cnl^ok~RdQ^{Rmrg(S0%@GT$LQ#adrHcaaD3` z$5qL(9akmCc3hPl+i_KLY{%8hzl^JrV>_-&j_tTAIkw}f8?V_9r$IfIg&O5zBs@<*NcTmP;oDSFC! z;gq!`JFR*c_l5^)`1X2~nNlsXvXWzWh-`m% zVNdO{71N*;0nsT1D0idCXp0j^NZ$~rzK1IM$y^*o7LsVcqeZYZR^^n(@_!C{;<(`; zef(qhjRl__lOIQG!%{lam+D?boRQDa9QL~KN)zQX&bz`E@(wI4B{(NeGJK?fBKikK zJ!07~fzW^nMXpY-Ht-tZ$@UPgH* zHMN7CHk%(f@^-I9_*Gj_d$Bq1?hGd8so-{ z^s`Gz7rPL>>q3l47h*iR5M$AW7>6#TG3bM1YlQngc5IJu-pA6SqGUU}jx)CoA8S$6 zxDrLvR$|uk(BPFkw0$LpZmh(t_XvEi2~QQ$+T;H0_zIFSs7WVyD6>peYIHr=v?}$|;$Yb5qzgTUc2P_{_y}kXHTR zEK=lJGwl!C?P}FPB+6@0ayDUCJ5>dUbtOk9fvGsUNI!f!#Sq-Tay{WHT%p#kaJF{A zO?y29GHSoWdX6TNE_6;Qa)kKcBPIkA*3!5(=K+jf_-rqo(1bQ0vCj5tkH}(=cj2y$ zo8KSf3Bh2g^%4Sj&Tp^IvNHs;jG1~O6{^y!u^Eg)q0^@~lT`{5qMe zQ*<@Ar7)2y-m=$HWb>B+3aJxqC$haRV{txSJZu!*5b+Hty%`FnV%Rf8XoG5T(1Jv+CNzr8) zno93W-x$`KsxP1@Bx@v#bVVuiP1@lG@S-cL*B)rQ>lsiNr(((&$D$032{AOS_(QJc z0m>dCWhHvqDcI`AJ{_+~-rvYa*DNN-yHCvVA*TY+tg+R6K7jNRsBHqH*7b>%AjFoY z7NTp<8I>5HNpyXx)2QJrH2p0c#|@)l2*)NSlUa^^J~U@bPmhk@Av8fP zMU_+CA-9;!V%|KbL+<*MQqvLthuf$x{>Mxx=Q2ZWNzPH>m0$AJ8a2<&8Pt%mFIgu7 zLu6kndkftwtSENEXweAMq!=b_ndRGtI*5&G z8z|^a8<0Cg)eYXw#dZr5W0-pg*<_*6I4CM7|B2JE@z339m&}+!^uRY9yJKdK&fis< zUQUN}iV;u;@1Rj(n^A;W*%@=0RZ?nqP3wZ)7q5_aYGo3;Rf31*gzvi=nKeRo15y*n zf{*q6S$D%Yf8*G@w!A%G2wquD0wZ3BVm)tYWPo_$%Qs)S3X7u{hHe(?1~h2m*)7T} z!+DP*u(oz#EtSk(b=>p08}Y)uGnWiq5y|!bN+C5%SB$38Uu#Oq(G}v)zg9}k(iOv~ z;Zzh8&u|vJ9XpeZU6J{gB}>Eh(psLbp!)jtUn!}})D;!wo4x$iMmbYgln%ForvFN_ z`drh(Vj2I-rIl>c;=-nAdpF&*$TTmiojU#H0$bK;vAKVdy~JNEwaYmz)ZzsK^irIFP4_JmW}V39>#6WUo3LWJZ+_wqS~ic z?+1Uico`rJ1x%|Lmao59`jB^8@bdEa7i(B9q-+{oW$g3)nSwyd4d{qtl@7CLm~2L9 z7unLMVBYOJKi)sSw+pW#9F+~Jq&_U8LFj+(+2!TSk)<_5th3gFST*8>R)PISL}(6T zi)*1E4RUl>Abo6zJ&#LH6CARq&*`sS zBEiMG4|;sQW*Hx&hu08^(68)hFH{I2fG)oaM@l`l!kv#B_=)z>HRzn|MzO(=e#UXO z(RB&w=;r3?nv;}EJ!XO;2<1k+pK7ckh{TqjuIRQLB2t1-y-0XP@?-0dyf=xKf#U?E zXHl*FM|iVjU1jmGw^Kz3JwAcT@AnqkWju$=h}|<|_Uc3;TZAw7;0CFXzQ@);x!ih5 z%n?DOPnTjNgM4$iEcSY?BJIxH2HCuZ1<(Ahq4ayY3Q4Pcc2o4)5`=SSZu}*DV&;>t zV$)eC@)d*Y-M9Ouc?8UgaIFhcP3^m51}8?ynRJ@^#BCZVgB6cAnq@LNs; zgr*H)`#S1!?LR*M-y7Tn9l9$lkFBz#vC7h99~v3C=V$#itNdlLJt8 zLIXfb-Y%28arD8lvv0@Pw`1&ouO3G<-`(HMU>EmSTwE9`shg~>VyVH=j*az+#)q6g z9DX|cX#)A-&PKaq6+ayQF6KM}*$L}4#t|qs>=J*}4ef*U@qO^-9@2x);Q>n)kM>HX zb*MGn(e}#qC-GbZU<=ODu~I}Ut~$o(Ky^8OJlCPFR%E*~h`s$6yWbwZlk)rf!l?x5 z0yIC?jkVf;d-&<<SU&V)xDE<@ZaY!ZaEA#^3J$W*>2?_Vv}%FYvd2 zhU!!8owRl*3W=u@kYPUhd5r(Ldiw3*H(d(&Hz)kcFQl$y#h;oA&#b>aP&bqNw+9OO zl{*5LKTf%{Zw|V9WNRov6 z%bMwjG}EjA_r8XH^;ybq4?i6Kc6I&pFY8?^_yZ}&Ji$S0k5@1AavGZOZU9lH%MunnN4y3ZDk<`EY({JlAa!LVAGM0s3_B-QP22P>|BJ5ad)?Eu9Ea0d$E zEvrtlZ*6H5-(XCAu4&fh!X_mAW(ii|4-mZ#-Uf=7Z*MSxsOh7|8m#qINH`=ds0pW} zwJxsq^>}5y=R{8qkGm8#@K}7#1)A&H5kcP*v|HGk!NrXrry9oDi3SLEeGNPDu6#B} z5BKVFdj`YRZd7m6zZ#>9Agzqpl4YjYj%A=q)ft9Y*#B!SsJhTD87g;(YTM+m;he@1 z?j~&jx+xlfxy$XW3dIuFii$6g2~a8o8X1h-3WeI_!tLvA2c;56gyk1Lo56wCCamMP z1v25e3AXR&uIvft%~T`zO<>1z6Ebkwgf-l@4oo;{OWBxb!aB^i>@)0#FY}MT>CKU4}YBOGv{&0$TSI&^10GbJ}s|sY<`7CpGGX zVjby25pVjbsY@tQ_o0@$lre|2TqTVlnJ!R}z8ou#>lV$Hm^cloVh8$7=`KaCoLr#l%X1M?LWdIds_vw!PMsy5R^| z`^P8lvh4(?$S!2$9(HxgbOvdD=u4743#5%4o_2|W+GI@Mir=c1D5g7v)!Cg4dgn+IWYMee0B5yhC*J}r~R?J0rJlUu7 zgQEjk7Z7;5{UhM0#NzuFcn!$6OMsKb3>CNLvSA*(R~eAp1JhDne9#RI_EPcE2Bho; z$Zo=h7&Nhb;&Uxvmv*Mr(PQ!{^A@xkP`=KJWtD;&V#mpe=Bx=JoeP9QJq9bjFQv>x zgNeVc1R%d%pgCZ?cXP`E~rkomI#?$5PWta zPJmiUO?wAvkG3_a>Ns4}vY<305qkh3wS+G*r$vV96Of`#XSd5IZnBX!-eJLGM(!PW zf^{-@ri%{6Sgqx#QT>Te6jr0yXzL2eLZ&RgT=`f?5jL=Yk|2f1g{)OjT!@30{7HlU zBnnHjyU>(QaRcT8w3xfbt{0%Wy_k32`#3Pt#<0&2P_9cD|4T8o6@8>FF|BQwL1Vw! z@aLqn;WTtk8V1kF!r;|`ckE{eJ=H6mJE9$lRVqt#exh+ZFU!@|bQ$WNa~gKe>p@be zw3vdnwfIWMYYBe*+v&p05Om)A*Z=tDXd$t|i>Z%KUoEFs#A1$@U!5%HP{d-6)1%|% z9EvD8aFQu;fP(_9iWz$N_$W&$hd3yaHsiJ{`F4RfErQ=<6~gWh7G`)=0Fz z*tBzAqHx5>*b%q$czb8Ax_0d4Nz?jZqvC9=HIy|rQWY=BT9uRwSngP;b7-!n`HR6CT#CdembpgD~T) zJB`+-a^&tx$1eK$^xgF}`fJknwd8Ahxy3d%TN7#|_dXUg=@wzyOD)7V6fHys)@OAA zo?s>$(H@;kjFrYMH|byL-ZGqyIUYlPLIY{&rg zVK39ydT!RYw8h4?p{2NG+?Sla$#fyWtWtX#HWf={DoPKPniyK`bLM(I{;XQW|i%H^s^}I(Rl}ySD z1F8vd82Qp_extK(77qg_cUeAI$)6yphdl<^IH0n(_7W&1wKg)3RtP9!<}4@R^C>9! z(5}kM6r-MrJ@=TeaK>c{7YlNxX+&kVV;`oRLS+Lp8=V$G+!Vz1wJGTCnHI1CpVc#r zeb(cZZcN$B&N<9VZ0+rs(oZ3dpip0ruzXr;1WsvARbbvW!>1@nvd6SPhC6-N#(_3f z;y{-IRGRE^X?6j>=LHGzCE2EVDa-T)zQfhrJ}&7?!NMk;SI^?cObO7Q5paPKppGv4 z1XCE*%Q<47@61eQJ0xKm^0U9L*cy~XRgwMa2ktKl|JOl2pc@(W{ z(fuU6p90RWbOKPye0wjQe+hBP1c8YIaHwwr8=9Kwbf`N?rc;C&P}Yny;Nu=gjSZ@X zP}t4$ZI>URN|(G)BZB@w6C*SHfN^_fpSB zB3$OU$5&0_ku}3~4hO}Z=!nk$z>Pr~xH`5K;_F)_2?43dm^f!2or0rwbW=~C6bKDy z#zY|KG9uNsl%`Zup(CpfK4=+~=VIMT%HldvF#DUidEg6uP7%xKD=NC!;suB5A*Kho zL=SUXqpN15a{P@_x6-La{?dm}6)#@vTG+5QB*<4zeaf%Rb^?3O-+>CcqcGXgY0FU) zC>X0kf)08Cqb6`@9>0t0x|3vihc{+J)E9SLcXu+~m_UY7!;^lOtN?~odcPRUk9ep% z%j;l6+B611uVxMqmG{6Qbt(?`j~CB3=)W{~BZmkW>ceuNgX!Hr3~6rqVdC8yT`bIO z4h=Pg@poCDtAmhCzZg5@XEI;{>pfQHfhV*IV-+fm?uQ^AKhXZ`_Gdfs)2jTRgH_r8 z@Ec4u_|4-Z`n?t{TdB9$h&0IGIsZeCS981$@4|S1y?K^9J;?DkVY5UDh;?O>O2G6n z*h={R4;-yvI!{}hulqNT&sX318L(Et-_LFiGvH7An@PGD(O602yDg$Q01^3})yQu? zJ+z5{^3~V38#WWy93vBlv*$GKF9{OGL$LO6gqqf+0J`%=IXWysSW3DPig~K_)FTvI ztOaO3K6;&9<0&3t({hqgnsbv)_5ScrOvG;f_2%z5k3b*gQ?8sVV7YYd;(xvV`6o8~ z7_g5b>%}ht8(2`noSb=)!MJw+#m+^Al;h7pd_aqg+^Q>5WCtnu=|G9c4ia7bqQ@xx zi=IJe#Sa2X?!7!e=W11gdWj46D9hafng;)n^0Gu8+WTJ(sQa(6A1KL!*B}e@1uN){ zXi248wSE?ZiO<4Nz=5(FDyS*|H6b-01E?rn3UDZWlEHoKs^;DoZD6U#(MEjyr+i@E z9}w&ct2D7Jy^*6!hn(ex|r5<3b4k3VL6uKblX(OdTro%cZs3Azx+(B*x@ zG;^Fnu}PRG{SU(Z9Et~$g|zIZtMi?6ZZ2`c2>X(o_y*EI8xKMwD5jeQa0jU*h>;1jIb(cE9sY_lERWiC~;T3>8-?pHaSn@`bCV8AC--`LX;C^ z)(XY16Y)`S02VI=#jUnn3C#X%`_3#{ixI8LZ0t|sb*o`DI`t&0@o~{9D`_oCe=Sl8 z;?*T=>U~e1Q|^na*adaqI1Y)6w;i~<;@UxTF%8ae^$~1H)2tOKKfAQPf#t@t1&??5 zT4VaiSkTsT7QVd_&vZZx2g@oY7C%2+=b*hE(m*?vW>aTf{ek0tuIm+-?sos<1Op^} zDDJtes2R$Md`N_?83z?1Gvz;z4D(=X#n8v;Mr4Xo3Q?LMVagvhz|O5L3>f<8^ZOf! zEP`^gQv**r^U8KrAammOz5(6k&cE^jJo!mLp<)K#J>o;%U5(vLF-e4g$xn-qHV`hbr~;GXs=8P&d& zJsf%+7%hHBCMojuOpZq62`_Mjy|@MCU5KL@m$IpKfKgZqs}K!CH-KWt0W)WFFp0Bq zu+(G(sUoZdH!Pe>(Af*ukXKmv-{z<-FH9#>!&vhhy|y8u8=#6Kx!P)GvU#C zZGFVZ19-ptKc_Fg&esXAU|jcygC9)^i=PZXpi9qFw2Si>3A}jx^Z)@M?;{q***Ro{ zZb^a%%t2}cmv+5>I3OJsE!qU;ji6z{S6PrUU-H=+K0DkU>5#}z^!ObRb&Dn_g3rw6 zWbi*-t}RW-tP%zKRB0jyH|U_A-TgknjZ+DZp*~;qtI)DxHutDduG#7_qe)t50+XUe zs2D@niru&Os65XQU!5$Z_m1>t z9`UboS9%`x?T^3Afj^yenh zzq|bT`n$p>YBG_vR=IM&eu!Xx><&FyD7An$OTc?E{2{+CY*xS(kH##Lx*}$D3NdR2 z!2mQHv`D4u1tJtz5!41$L-+BjD{tSD(+3O48>c*n0+y03=60$zzte;M&h1b427;hcGqVIo|u>CvRVvt;apqA0*JGM0Yrg> zLwi}0-JY=;0_{kr+~X)o$~BJ?mh+U|G?9VRl$xN|H?~@CnP(s-OIJIgZgLPhFEiW| zA?`t!(nKftv+UM95`~1{P1N%{4%!kk7yE~IXvr*CkDzXnp;2(M(yYuho09Bo zL8t^ID2z40NanzY_ZNp#+2QU#KnP=oV)oXTjK!23JM^HiGwLCdUA@(q0(sQ?ovb`j zMJz^zfFWrpJE9?Urdf>YC^6}-q{|1bDH2f-dud;;oYqJCs&H;^G239c_OoaV#!(ld`uB!qQlX{o7q;Uyg`J zlDkd|Sm%oRbqHs4mn`Wtv-Jcx1LZ1_aE)6Y@plj;)ljs}VbFR4V?Jge1hfp)O%`gf zyX%~2s>#7DeD}|PeDnGryTAR+n>6t{jm2~)af{{&yi@+O1V&^UVfIruK|Nmjq}`Ox zl>JmqP%%O5Gj{ZmsYa{OK5aMqN{J{3l1!jL`I0&0jV$M@FtO-6okx%0h%daSrsf7n z6>AbG)GxuhCS}T@lU?qh+OY*HHF`3_?WKkl=|kfzSyIG2pU)yRt8(u$mUZ!j8t>w^ ztlE8xZZ9WYuT*t|0>|4CxG=TLYp&?=N{5 z?419{J0(SP3xETAuLb&k$G=3y;o<#$Xtx2gb{oo^Z2PYQVT0Ni#n5Qu?It;i1~MP1 zY$M|sbGvxHavEcAA*~G7*8MeR0S)5$&OJnN*FxsCP}Dp_#2s%w*dc&Zbc1$(!Aojf zFY0G=fi)B)Pjlt-*lbmafP3rkU#H|lhR{7P#VE(c6$glg4ogw)<5Gm2sl<8EP(}Dy z89)Q#O1Z-@1`rKgJw)vaNYllkD=48@MB)PX95a3FBwINL7|IWz4+M0cImD^|X!rLJ z@Bp8+pXVXxEj4hxsgvlg3dd-Q&c-q7Ss36NG3%pa)RFZV8gDC;!f-Sq&IY@b&bHW~ zR2(>RGT4UAM%&OCx(-X|GH@MTljsgzjtS~!VclQy65cd+k&vCQ#LUrCqo3X(#SIKm z2&&P(y1gFF)$!sNUEAWNmUT%`h1&F?qPkYY1tm^NIRxlO$+0u^Ug+V_Fa)pV2)2&g zF}7=?BHGqb{Z0s*!^5++@RD{*gy{@cSw-_cB68SbI$uW`TBp331ZKRJ!iNTDH*%Np z^seyzQp*ez5HDv5T)LXD+?ds(>{(1O!Wp>Cf{YN$OwNJ82HD5$u?}8olEVYh^Q|Ewgq@CiI~F%iGtvaMTsaZTm1hJd zOO0uk;+2CL5h{$8(;BBu+M;g!Zw_-@v(*H%5?4sW2YcOk8qRpuiGTG0-z;JoQGDSZ zW}5Yl37R18GDj4XbOFCWo2uKn#=Vk35ELg7Wn*BF zHgPgxop4Hu>tcE;R7`9a7P8ccNsjS6%oPuuk3uJN0*F$CC1OKTq*{ZbohLz^l$60_ zu~)TL!j!!_QSQpzurf^Co6}emj62f`c5Ru`Ei4527l=LGm3Uq=Dz!PjF zq(eu^+T%kvmG?J#I*>E#5A_U*2RB6OjbG*HC45F&GkA~0j8y0I!l@~t)UgaUsshE` zkal?rYib?r>Y1rI`ixUWN5*NKhcWHo{nV({BqyIWASS^KJdj5gGEfMxxO&_3`U+ga zd0yPD6Mcg9yvX}|ky~n69*S6r{4}OGMvW95CI6d8Dkm;HDub=L6mfBXjWyJACX-j* z5-r0Y?Nd&hCg^CW(OE>QF{_cv8Sj+D-b1@W8N`lXauO1|B2e zz!(Ie@P+7udVJ_ja9+mLr?ZZ)5uPOfa z_bF)qyL`yj)@i&O15{Ch1b66rA?O7#*->3pDK)Q<6h3-M=wJL7ha!hSo z)>4wP3cay!E@}yShNK8kYTxR3mJ}23O#W^TSnHK)TF- z7N3{;t6BWv;!qB1vxMbcdMm!3f>qGL%)N1fNkqJel@yq9(T&I$FHK?}P^Lr8ude=i znt3_hdEja}^E3Qm;;S zQD+x=v1SHXN-9lQm(Yr_a;LI`dlpW^OXbDBs&qSMN?U5w6X6Hn$Xp%&6F7Smo+;=m zRIb@v>?YzQsn|hBL{w<6;9aUhPmfp6ywNj6RATF(SwF{WXeh!<^w`N8slV9yaf!H^ z_^7)Y^>@5n(;e>?EX4WlP1l;Tqu7k7<~wMvP#1LkH{udh+Y zyTyEBZ6n(hBvmMWX=TC_b#>_Z_E;j@{w}T!Xrof?D$3%#q74d`=iPF+kSQ2dwPHSK zKy>Rwq+n{P`W^Kl*H-PdyWAH!4$zjB0j0NRm!yB-M0hC_#lNYs$&kokNr_hT= zNa>g2B;%~b1qr>PjEVtxjP7Vvw7alHL<}(l8itq-3C3SW&Qalr4iOq1>kE5iX>PSONH=LT zil}JdE|3rYJ02t-20#G;eXFf5dS*m@Oc_>YIY$Igw(lgg;ZAvEA)?@Alr+jBF=$`a zo05FCRalPf<<>q$wSeq_qR~zP+((HWtwfbvT$SqjTiRJNF2^cwJ&^C~8>Hk(MB92z zBD#GRegb?b)o-&3Y=*iLq1FrnVIQIQzh(I^a>{=8(Rog`&;;X0_ste^J^3EmN|8@U z*4?4SB>RA&(vq0iEoCczAS9A^F-!R9qSb!N?ZnwJyW$^sV&tN;S(>Mqo@UNd+#cR? z#fBX~HEfxui4z2^9_Lj{F;69pZbz*11Xgl1>%Vz|-hgC`ouhrUYaz8vU6ybvxTeDl znTlA%a>=oPypm@nO7$!vwB%cjRL+IrEcsTVlxu>tl4Aj^)S_&mN+;J9!41T*NV#Fv$8ns4hDs1|hSn$lAo_2da&z!6~J9l_izqBxI87XNx z=53JrKTcMI-T#3h*3{DFaCe?%VmdEdl3u8;mE;6T}l<2918Na^2u8bOa;5un%(_s6zARHsB=9lg>#Vh8<%(q~uFgh` z6o&O)?G!**sSqpH6VaLFNIbU5 zP=cDr_@xdmPbIQ;5z|?vSao<@QVVpta2EIlHh_ADVA3WH^1L8HmkO%z?(9KRK$R$N zrIHyXD*ZYkOkym_Ojqm>Z|b3D*Q-g)6njycv^#hB1e)ffrA42remOC)=cjADDOIA) zDh|Bn*N<^YT`o%15}HwH1+|m53hM3_4zQiyRvs&#VbpamAx=|Aa$ha7-x&!g`Fe_7 z!4~J7A|^~;Aeu9Bl?1jEs!|gvC#*(EO;;G^U_PU0#h8Yps!!eoux!SC56k^-8ohz|+Y2ct;B3 zaw>$DI@O1nELtL!v)flkzoSs)TZvLG_{M10J43D%aS(yrO0B4Wy>4o}h!OU1~X zvYIdkn2neendS0>+GU53GwcU+adJhJDIPt4-R-rq6xH929b+DzA8}~f3*xOn9%8A- z0%NWTwzJVtSvcIOY^OzZhoNIp#p8r>_FS}Om0;TuZ5J^trU9SLoWT8*R|Rwhp&G1} zazs!4F;DbG8BA%9{q`j45c;nkAFJ)kEXQaLFpo~Zk{wPjByP9%2xJ$cqde#FtIugsEiU%+8;9Ka;M$ zWxZ6oQhy#?mXv*vmmuT_EHmP&OZQze;p5Z0F3kPg8h6`$U%cb2I`iE00bDc7JFyER zq6MxoEwEo_M_q?$zrSs*L(6$d!QrlH>RuPaI~N!wXELd)OGVwcOT!~lm(5Q>`Bc>9 zKX?7O=>u{Q*HyqcbRpRL5PFb_hRQ3=dElA6{IMEJ+7^Sr^4+~v9+e1rD z(t$(-9h_6u8hQ(#EiN8iGL1wMluPbXmw03iJnVVhxWpXfL$Z}M79>>L=T%9~Q&{!{ zHUZakLo4A1Jbuz@;^C1#Xtz6VugnfwGPVWpTg!9QYP3jpp-FRaNjEgf&ag^nu5KT& z6)7R?MsMyp$&40>>FUuHhq?$!={y~s5x4LCQi>Bj-nMU1YYTa{rg-n9&pI70l+9&Z z2qwrV+MuOeRqD6pRVXs1Pt6Q)9^|J-ZuaM&&ThT;jx!A}Os4Rjc`++=F!%&oFgZ-G zt^SUf%livF26F+-!3t?w9QNd}1pqozamESit{EoMY!gC|lNpy0WK#E4ZKx0n(44L%u#7BP%R z2i8RB`{#m_M8brjM-b$CZ2xv-VFEEzB0JyKV+J@lHtyGD0YQuGdR6J;_LZempFUr_ z)3Y`5Ml8G34||?biyP37XEIQ*m1I|LJg?#!d2N{!k{n?NK7GniBYCD**wQv^Q z>*GJs5?tKc&&NG}=pN;lmHB`14&%g()lG~^H^`qprNlQ$aWc#E(lhu56yrbf z=^b8Xg2zlUo_>L5g*PDfSMqQt(-A!76|s^7NnS#Qhp$j%zo3dBk`E1b<-@kWuL|weIf|@P~FAFf19pFK@ z(`HDu?VdQ=Zoyh*!T6UEcaE9gCC5`aEb-aOk=JqtNQMtXfgL=`@#WS`Ifrz4v1PK5 z&=u+4;|dUQK^FjPg|=^6i)7gLf$YSkI{xX?4T>`P34|PR1%~5vGjqk^mkd)V_$-zj zJme~Ft}&bqlC04oQ*f9o0bh~)(@5-5`$t!E47;?{l z$hiDgbh>za$@88Kh2id2@3mwsIwVY))J-bU90-M~M1pj;jf|nE6M4EukH^W^RHnR5 zx7Hby#h5P91`<(gm^+l7`tyPo643=_OIYc2;Hb40Cvrc>r6ps6 ziU0ns{j7zhieJEfgjF2yySj(oRJCluZ`92iF6CVHgkR1G$n)O zgp%#n2g@n6|2?*e2pD0YTrXY%xw+SNZda_4y3&52K4Nr;0tuc=hTx-d9DIry90*sK<5JaNGyXU8PXeh&Y#-Rxi zVaWsnmm$I1BO8fiXt)5nl4KBxf)bdUVWJp78BDS~&Y%~p;gOW(WF~XpD4MD%y1vZO$`v1$`o4{F`RCS_B z+wLGB4L*c%L>OsNZ&lvRyMZ|5TAf{)l}Tk*Z-5_nzqc~;-t4<%R+cj0$iBEDJVALZ zg1CXAqxg_TpY))E3nIH15`n`F6-@M6&3}hYKsO{^fQ z4Ju8JT-Z7YZKQ&r=fuF4Mcd8m;~qQp9k&ibnzTm41A1}*p}1JtqY(y1+2D=&@svBs zM#RRd^)2`c5VV|_sg&?Ck*s~x94ACLh2v%U{vMof_WcUmf8{X#;i+(`oXkqnj}n|EfoBrtt$0IOb)4{837FD50;Zfq5GkW-fr-gCojhr3 zrX>lA77Hetn@LfMM(Zz95PK`>Gg>ehA|k(0=jV8_tiFPw&jXRt;G{w|tri2QWJ#gv z`Al|13a7E5KZLubX{RxnSozfX2B0ov)PNj#kaV=`ddO=j&Ua}LyO4!7sbM^t&H6=O z7`3r1+88Y5s(p|%rI?ITxxwtVG=aioG9XZ*^31POCNfC*k)O@aN%gKx7o=#)x)G8n zZf-QIDo0B+wUt*Q^yaQGvc0S^mTr+OaE%^#iR2#6lea%a;^90kS#fgTt8BlCafKDK zaE%%r#65=G69`4_3A7@2IKoB>`&EM$dk8O?cXAZzG8T@-A5 zxlci^a+86qOF}fW#WO!j=JYa^4OFgGm5jw88M&5zU}YdD9Y_8<{Sl%T=ov|Ne)Kz3 zj+)6ZEs3=FNM$NDC(|;rL#71b>bo|)Hey>6CzjB2FOOB5L@RPdE{S}gJ-dNQdCgWg7b73c9?`I zlhqxM1sl@UjmQuVGx1xDLJ3#9UNVa=>gRoWmI$I#)h8CUW*c>T)U&1dhI&VC{fH7J zOqIgD%>tzRFdZZ8j&}3_!<^x+VOR;%^UtVBe!7n+Ga+XTfGdeSU@9LSipwq7R8k=M zf}BdKR@3Fe3Pw%FZ}!tF7#70Vw@Gp6J2lV*DK3C8sJCq_STboL<6SbaR2AAYt^jgN zR3*8Z4!?zCf$+kY6mUTZ3WYIY!P-}3G>Q69Y~DFo<92=2>?L*;Xoge@03e7G8H-^)JDIwNeC_CUG&W4;2#c82Tzg-G}Y>1rh)33xc zURb*H=mq%{PIEgpBRn$n&}X9b;OCS%2QvWfRQd~tcLO%xpj(8tgB3x;TCZ)3SiM+v z$(QN&w~xnka$iioDy1f4mB#y;9CfDCV!u));XOfA2DqpIIGxeQ)&hpPf}oBxA>Fbn zj|5U!Dhfiw*M?}0Dii>)V?uYZD@Yr=Sw+0)!h+I(b@U!s=ZyaA;S2)03 zh*I9e90Y?`{^FuiXd21{G8EXH0UfZM1Py4YTo~u*C95i?&4OU_jBlYd%A($D;q_e% zN`4*&SrB2_0Qrl{NTF5(6xeBi0)wnr@u9+vR;Uu_m1>&+dbV2J^CtRRV>(UgUgaoB zu}iO&0vaeY=sN7WC_+MLp$LO0MZxeelQK9q&6oF5r2q_Xu}y4%;5JjCI=XJTMQj$X zRwL<`)Hh+MM+l+f7IwcP$_P{@)oNOoA@!0O*6>lh#Dkv}$8_%~o}xMzCPus(9-7ts z^r=t--K%UQ(nIlL@?g3&%n~?_>qwl2r(&-`(gZb270U;Pkfn|NZL4k#yUKQ;jpxuK zaXoq@T&>E?GNuD@E0YN$bSV$|%X$k#mR{GeGssHwAi^wjOB5>*7wY5kIxhnD%TP-^ zvs`1LXM#a1W_uGttrG@^2^FhQ6Qb~(&jSlLo&(|6yh;W(C%V&tNXV&67)fd(6GoCs zX(LGi5L88R-}3QUSV+(bI*%6EB9M_QV(pS<%UDS9X$l@qaqSTFR&O*MVEKh2RC$!c z=LAiF3PVsZiy-@3;hSLU0FIE@LsLZLvrEw|8eyX zM%sXVzS%&cs2EFxL|`U2zZ=z$((2p{m@phL?!uK6DL6&nTE#-?nXHgn2Ox_TOt`}e zh7nP`rj!p;s(M(D$ppB97OURoz*;%3Qm7nftUoZ;yH_P4LUZUOX`u!lxNfnXqQSJP z=2;T2+thdQy%_%({e}>eW)O`sbH(KbCWQQTf|&x!TEr|z09aDiIDn7F8Diy13F63r z2=6u>xzP|<6v7^02>qnZ8{ir^*qB9BG#|ocEW~m$VpHskGHkEiftB654F3na8CW)D z8FYg#9+)}8>JULg90?;=vixap7gt{f$eY%gkd$bv1t^r#7?46$Q$jb!Xa_gfNMrE= zOruG(V$(@(7;Slz4**?FdAw)ICCFDuBW-OS)aGk;J5o?e8e>@mrC6E{INur1VYL9B zSbv<^7W@7mv&*3)~3(|Y8n;LqEZ3f@hnSqC{@@IT2*$ux4Vs9mr?;RsNA*rs6H{c zNFa~0-53WYc7%UU!|(BEap+(wv7PE^$p2Nap8x*GvBF{g|7U&quT{_gYJfe*{Leg^ zc8C3HB4##2bxCM&2*|vXY$=K2$Rk6itXSQurt(!FXa1L8oLbe?)w3j_+5o16R@}z4 za;mu)Z2n2a{Oj5zI9D=TZeaV!Y^(x;_XO8Avw~a9P(YU{0XSl0jp~g4Q{a>MqHrP; zGH25P9j_q(1{)%gb+4)tf(_w=D#l_*Ayaj3Lx6i~Lx2-+$XqedBMb~QL?fFGVPK#k zE}VNrmtZ%9!KXBYaZYN8WU?Md;M-ggz+gipvfU5>gAK9avLUhrw;=$Z+7RGG8e)l* zCHpR6M*9D~RrIf`2$~18#geeC4em*3P>IRBlNc*e(Amrx=>XvJ*>L3iSy!7&XuQ(d z6MIvBesZP7V5P#@h!M1zxY_WJ5Zz!}{;^9k)hJ>Am7e3*Kg8N05a?i3k0*b$eKNJTrov(Fv7*75* z+9HydA0XP3?%WY4Et4y_?Sk$eOYWS~sW9@lY9fOuu`ktTmdQG~0#!_r47H)SI}T?E z#R4})G+}A04C+h{$C(??(L57$8!Xj1X}uB@W~6K|!W|IsOE(3i-=P(7SX{>PQzCJS z8XUk@jfb181gV;Zqu-X9li_E{5R@_|q(tDGa3R40j`QalU%;8T;`nkO4qeqKB#NpD z^sp)B#wtQTnzo?uu}zhQk1foQU;sBEn@(2*mUu8#3^4ZsmMBX~7Ik<9k^< z&H5DkLy-iQsOhg}%ewRsOt(T}^))LJ3IH*O2DR3JX$oc%zJLalS(c6w0)EnXI;DB3xh)Vm0H!10j@Klf@?Cz_2AUAh#4Zg~sm@;UZE78Na+8T^v6 z5w|Fg!CRj*OT`@@79186rVs2MaIBeAsLDjKPL61XWE+CmahSV@O;U_hE?u6`=0D+% zv@i_1EV$DxU<%!)>emqK7ppK^TB2n!n%~8$D9J9}y-tfykN{c2^Z+4ExPky1XKGW_ zY*2@SFR^^Y<+XgO-fphQRd*3VDcE8ps}NY+5ZuT?&;KB@#~MZ_BJzHqPm?7fRsp6M zgyIUJF8tB5|$QvGCxNdu#L(l5!-nbQ$2)bc(v=}XiWAsxM&&<-!h!6R^n z@8vFlVXXq)ML;(M9VeIZSZA`Yp>%u_`^g;*Aj!pM9Iivcm3115kFo7mgbGBE(ouUf z>`ab^fm{=Wa|f*CF@6t@PsxDpMiqQr6Rv4!@Q?Obe}p|=zSMSlpg}-qXur|Hl{EWy z24H+`J7dt1p1t;@tv@9I-R6S;OS%du+3Te>Me{&mG;c1=Q*ZuaCK5tQ=V82>Prx$j zQCRz!Ye==?t!p|eBkoDkWhw^93yuU6b?#tFRI@?k!esE62Fv*k6J;|5!*Ii0DHENA z4w&?4nmm9|jE1<}q0`4KI01QWMsN)^_Ga!k;3-l1*(utucj)rIyOp!Rti)$qLCMQIG=p0o8_O#`_ zl2#V(q8_LH1!O#wg6qL>BN~ORn5cmaG18A3bZk-IR0roGJ?&zuArFFj@YPA*00TFd zoQ@>a4DFBcHC8H++9aHVbU_kCj6-+KJl!Zh>IUPR51*vH-zASRc&)!tC=^%(p@0M; z@C2uZA%m&n!B_G&SJhEu_l$Ao0jr2qeO?P1SbQyL&{{yl3(HpNXh;|P#j5J&X4{bPt=>y^C z1H-x!-2r?{r7gFd$My<|Gk25yT_{iRe0+qHA{rSiF#rYzl!bxDON|C@@58NC;-2+% z!axzSb;-eAeUJ{WaE7QO@P+7Wrp9iNqR}s2BB!;Q4KRq2MbnZ-x13ohXIB#QQ!-Gp zD_v51?GFzzTvENyovFr?F4gQ}7g_ea0#j88|EnK&5Amu7u9d?L0Eok*JCAg6CnJaw zSQW$v zuY&OT2pl(9j`-A>uFg!NmLt-ue3P!ma6!P@zYIqL9nZmC_eb^q(ti?@|uwEJ=7@f?Q^GO zkd)!57fde-)Thfb^#_f8YoP*y<#nuVny-`<8kV=0 zuxrHO)dmQ;hyrjqjs6-$iCnhAC0RJnO6N9Hg%-l1y%qQ%aOU=;68(yFhp}6kLh@f?>t z)c?2(nwqV%*N8_j-|M(@N@S&mXf#i90n1~)tJbc}frfF#gp9eD zP7gqFsW3y60mK2<_v&^^T(P#r-BK;w{%U2?;vV;j!OP?{NTA1E+%s+C35 z12vsu2mqeb>PQYLvlzjui458dW9Cho@ah;@8nfcXIdF)-<9 zlnW*b9YaNkRhw^rBCiFRx2gO~a)a3^-_mTVH2oR}!eLvCVgOwL!jcmhZ06+2WC?gW zrK$-YEku@XoVei}TZb9~vPm_`tIrLsgA+ZlDR9p!`~#^`0CWMxg9d=Z_hpt8%mVGg zL#E!xh117kx5}kpHP*~nl$fQ)^95UkhX>CEv@BBPXXNSCrFk%vfH8r=jMd^kE@^=) zgnZWg>V~K6Y3M<~>@_q4UDqodTZ2PyRpdei`2wnaVYqgQ9+K1~gX1S*oL&aTW_{f3 z_jx^>-g08gfL{f>&rhbpK#7rIpa>n2@_-h2sk{sLSgj_Af7V1S@@bORGzk!4;@pA* z6`R2t2qt3Y8&K@cAYBt`*7DpB8$i`+@P?==^cw_3Z4l%yf201L^3hM9PW#FB)G>k z9e}}5frd^S3J_oFZ0R2#2vU3?NbrGTa+9_?dKz03;{8rd1sZH+lSQF3Q6RDJEIZ#c zlz2p%a6F|KC+yY4F+Kc%9;bGR<%angl}GPED2d<>((e@DdJ&U9sOH-7MekfYzUZ)P z#}|y`^*Ub%O7DK?mdV94yQ|fb5-ft&zh)HCrOZ~*9r{b6G3B@w*2ij?96aosf(ii{ zScbtpZ`OD!8rZ>3f12sYh{4`X>XS-y>WwxwgLKI{gLXqOM@4dZBPQ^by~~m!fJJc7 zaI}fwjHULyT&oyOn}^2a#k12U#Bs#_vEWY}OAc?#k>pXs+iItfl}1nb-}b-C}! z3owH90$&E-S7cI|BGA!byp*6GO$s9Ms2k&MoC8aebRjT$*pTFS0~y~JEXa{YE)=}0IXvch}x ztgMyKMQxj>=Fwumy9_l%Prc9tK9d*#*CM^;V7Y&oPJ1clk`W&u<+e#PI_*8DD*|Co zv%1w??7=`ehr3V^VzqpBR$~UBVO-)Ot)lD_FcSozSkwzB!UV72*kf89dk1+l!{UB?#r z4)aE;UdWuIS7h)$>6k7<8ydCYxdOw^9~nt-)J%exW|Hg(1DSk5Mv|OBMv|VC+U+1P z+2+DNE%GoMr+jfBOoF`$EGBl2{z%6W?-n@v(1Vcx3eTeE8Ncuf?+w{_xCI`UwK`eq zh9q`R)$y2%;q2#+F{Ei@1g{E{ZDW5O%40EwF^|9yy33wta9sW%QrGO=M?0)HV069V z3}PeQH;Xnxq4A3>`U^J$29&t`L}SP=(NA>0w*NYYfWj&pfx%RZ#I)vV+#BKQPJX&U zA)CdLapxja!5*A?RKrtoS1|D=fYlBv!g4_=TzV0}$J9WhCRizWD?sB)LP2m!fP$ev z2dU+$pj0JoV0lGEN+z!dW;^rZe(zJh);ql>+t^!BwK4{o&dxRdp`y(Du>(cXrT&r6 zu)`V3nHN|5>#VwQbHDB4iR6I)ksPR{NDeeqBnQgM%t;%QLfQ38SMLXCHgDj+rfi#f zeS3f8+w^XHji5H{`RZ?Z_rK0$-6Xr&8gthxGHg4mb~7{RDAqUF=!>&-rSkF|VNrFk`C^P)qfPYTfjua z>s{C8<*mztYJ?8!M08nqP&k0HfU3i5PnQ;NPcCdOuO#c@x=lg-bblXjoVMUH1=VO1 z@c{E^c z&DVW;Mu47bQ?ZNKvWaCOn2awDihKvF2sNSCXgSZGWUdBG7D7V)HD1;fpu6d99USl? zu_tqezlFHd#bszUJur_*J-F)%`~`i=IT#t3MCqwW+Bh82Gp4;le*hKE?|V|$4=DCi zyy-fV?A(#8T)1T>VIQYr3TWJ$w%XJ=^jF;?YQ?sI2ROc?x{pqusNWsAnp@l27=)zK_@J2ZfvcsuOypWJ8PR4lGTOv?G;HGTSssTrGm_@?X>ZN zEjEbJvm96i?Q*R26;Y*;?s`u={sfDS-(zIdz=S54D~IL(P50ipB# z`T*NKcsWBrL_`|JPh-~r%9`SrAo?u)8mekvT1u8z7B8Jk7A~IKMuV1;^|eLyPQ+|oFfKW5K=aAY4sh2ynv^7iy9pdzbIgcB(aqm1j zf-DPAEMkWXQiM4N#t63Ol(PUF+&yZ60hS!#7Iv{bR6i8c8gvaB9r6=&z{EdP{!iJL zCP?gDEAgOjAsl>}ul$}sv`l~ljoZa(Y>td&I*nO@?9QGg%N44IgILA~O#+}7A^F^Y z{1;=tL+?vME~{AhBV+`+$_oGsR2OmR)M9>SPBq0PEVZvgKBi}G4 z7D6+4pu#Ms^$VBQ*KslM5`Tyz2>7OpcTwmEN>o4b0tC|{hc++#u$mGlkI*Y{y^IU0 zXO%BbKiEhODzL3Z?_kpTJodVvL|KCUQfUDOHR%r>(qm`iGg2)hiaNwA@~r~>vxgvD zF-;G;9C?7Qp#w=krss4E=$E1JLjgiDSG+@jt3idQnrmbKJNZ-Kx+*}qBJ2>yOq=^8 zVlsqFK+FkHdB z+{avkRtN6TDs0hMCtS6=1^$f-v^XJ!LT@{Y*X<#qJh|}=Zx~30Rg^pKEul9tjG?0*4zpi&laeg2!U=*W*wyDJj4yPgA-1{51Rz%* zeoAYJhk!C8MXU)K-Ly`VeTwrvym%lXfHlt3KAG2aGbn}X2@3#&fWm#*;R{7mKqSmy zLhBQ#_=DsauU;e&Mx3BYjv=-d80i#F(H_9_Kd>^aPtqEwXcX09+uQuW%1H5nj@3Di z8`3c0<&m!2$zlwMJFTE74ul%TFvTUAAuF}A*mj|bpI&pOJvFfk#0-rBacWWgz}g0r z8iBC5E0MuaI5Nvcv${wss#r3-6IwANeO-b||1QZ1QHmPoSX zOt^&U{}QHm?2XUPCIMhE1e`O0n9dI{_il^5Ua)8BVsc^S*7daukZSy1*gNRqU2*(c zBz?-imayXwy$IMcy|m50&d~tnUu-4tuPw~#BKNi}GI_QTcrMc0Fg)9ga|w1HCSjCy zTUywyu(}wwu*ZvVqGNk$ZB3M_OIa8|(kYM6anh`c1guT^7v?_wL6_1W7(nz#G;f^~ z>jH6IG-Mq^2^i}Faa~ZkK4svB_!oOmz}OIEZ-{~~FzkXT+p9}JIP_FOv;0ii5K^n(6!}cTU>wu z!jM>kcIXeLf={I{poH`B`)Jli-|~Vj{3*q^BsD|m$7%?hUg06 zJdf2mUbSQJ2CgkQ#(z?F`hy-4;)7mYl(t?M619V~x-eSBXUFvcj#TjPb8S3EsN06v z+Nr2p4`l0>da$B)+k%%%XcGAdl7$An)j-D~xunf*PZDyG!V4L8zK17jM4j+M z4fk|KeJpGgm(Jse#I8y#4i6AMMhh4)_$Ep4?UFN4duupOAqzh@1dXDeWm?0La|s`< z4L~jYLP8dHP!B)FBZ`|2hN9@jX^;FtfC8gY9~=q3t@rmEg3mkkezGoF456XW8XLn`4~YmOZz044ZT)=vl-)`?$h@@fWAG*(HT?i5427oC^p~=L+Sh zIJZ|PZmH}Ydh4~`72|&Ucn`;ck_+{&6st|JWs9yLklZ>CLt;4YfjOd1Ff6ST2dVoM zoz7WXy&(h}F+V~swtDsMIN1`MxUef2wM}=G>+jdw2e4E4baqD6zkW<|#R$+}f<)p9MpT-(r7!z=;Si^i zCHhMD7`%i`-h?xi!|vYk0r`2+x!ZLJdS9Wf_s61h7wcHWGQ!Px-bc4?qm63=`pHK9 zSgL`weN0vqg|vWBrn>Ab;`cUevK~PjisCiA5+-d3;BO&%sTa%Y?Llg|b}DLTI@*;b zpNGY#dkuqvaUegveSy9~7XwIKaA>p|$&aXq=EE`)M z)<}pfarFY6)^-P7sKei=i`lC0?H}X(i5Qn#^=YyM!}X@RkPkVe_9d^k#`QfIZRpjs z>$VYtpycv=Z`!IKK`SyDJN;1)XVm!jtza<@Ni3mzIK6=Acku%bJJyGu$lg>Z1DBCD zV6`eX5J@*-lO-K4+t??#m2{Eh=0Z!&1dGuAyW^>3?FPM&M{apY1r&`SY?E$8V9*XJ zeW9v0&}|U(JK*_WJaiG^e5Dq27{iXzBSLDU4*B!X=Vz z9@Jd;?d_|5$rjS@!(^jB7|Na^A}<|xdsERy;^|m0V}~7}VEru^+q=^{1)=BbN0MUP zceKIJL5TDss$dgnG!)b7&2)bY*+dGk4E-t?2Q4SN_3^lBPQ>%0vxVB&5hrAzipYFM z#5FH>K*#0;^CNVeG$U`q!H3ik7n!^UfW08af34M~zCF;hElizs4itu$oaV*%+Tdh5 z1xy>7qN9fB4agd9^ccA&oxs;doMG6lEpHF^D_W%v{#d4$?m+DD2N3<$kQJV@z4VIZJTIkxk z+i)?%P0~(O*YW4K(17Qa={7FIqjQZ6-h%4^%SagbFm;l2d8Odnd^w6hh2MyjW{bp# zBI0Ss2P<7IDi_;bq(S}~MiUTZ6)XG0%R(smSF%MOIt0sTNfO`kxF>YFtiI%~FQ zRy9Kpoh9KrOBS&sy-WQ^a=;WuP?j#9m}_XENCC!RjbM z{87Sa1yph=QG*Lh5gPA0A0r9d8Q>#yw^YU$zr<9H!i!l%+R(7q3k?*#WG-!ubf7KP z!WXE<+83z>vVO(-1u0_%tn&gz8mnWVT{tghWcuE+)B!M!UCQSbcA!K-hFt$c$!X5I z8M-T+WjP8rSLR4si*rsJ>vN>jB{~x6DxDJPLLDh{t&XI_~hpLzGkhpmIsPT2bgKC^nt1-&A_4`J%Zg$NPw2O)B}Jo zQzrlt<|-UX(5M&UNTzFXftoJIkxpF*NNiYM1OTpyJ}n!1Eb3K0SEv{INVzLl7~bSpDw|v9yywIq0%3UEF~E_OO>F@ z4+y|5ZI}S!3riuvRWKlf@Y=Eh1)s!_)3qpqp~&ozrW`enTy}^jky#GkDHu)Gq_lCyV~*bfuq8x&?dr?>Kc3g*26lbNg-N(LKLVKy(&{7`dTB*&%iiZy7_z} zmsR7yFvpbFy@J)eSa|6k)r&3&2As9ZQDnwO%?r9e$4eRh-j@9F#rK(O&(2sg#(f87hV-1AajN?&7 zwUld-sOX^#HP2~2j#EXPiu>*T%VZK_Ne|~R{5Z}q3m2rSxxEj3n$dA@g#mMWQu|QB zSmpJ_PhX<+*h!tOz|#ip4(1cZ4ON{p0G1Wpb9qyRVq=?^tVu|*3UBs7T^C}zrcp#{ z2YOv?Ij(_f_^y#MY%Kj{+6$IT8Q9WbOEEQPppb<(FodN?B)Pz~*PAd6FLf#fy3f2p zpHk-VcSW&AS$%==Y*wbwW%E6039>~u_NIQfhYB#=b>V~128iJwCe9)WKzWHQbq*tlI!W%23}qqpP?DS2gggYt8nlDREPMuVXLR ze8R0yg+G!&7b%gJ~mXz ze5AL{@H^dSLc-l&qkLyO2OxKw2%z8=7U1SK7m~{EI??};&g^>5b~hAJRKVIuClY(d z4%l$z=}kLMx;t|K`ul8*nQpZqsW+PNn@qPLrx9infG=6G0{C77l<4qW5-`wL>Lc7+ zzkH0aS8^HX?^M5g+h-^|x`iLkH_qiBlFf##Sso6e(U4@TQ4wV{C&m{l;G!Vu@2vy$%M)&^u$cnl8u zL$f_lmU7TrqG{c@RSj3$rF%r1h$5z)C)g~m18oPh^O(+U3O@sas~sU-*u(4sW7oHL zTnC<38j1(0wn!ar+6=NXPiYWVoj4Ta5El7HQ;|-Y3bO+b?0UOfhu@amCsQ2{1DOhY zJVarnywdg2shGNnr()`nbt-1M06)#elUn_*mnfZILhiUzNzm%!RLq-{0AMpm3uRyd z9MC?7R3LQ2UAP-vsz(S#a(H-JnOqnO?=u|{M%2fCyU34>;`Bs%e9y_DW1tv32!5bt zvz_T5>Ql$vfJX-npajP4)gcUcMBVQVhr4+2CauZLlp*;ieSdAWrBVJ~eWAir^m|r( z(QnR4#TNqyAWy=d3*htdjhO^0avibhIM0LgM}zj!9?k8(q)Ze;iqBQjbpg1?h3-YVJ>M7VRwyJRFCW3YlD~f`|kxd->v5K!Z8n~4mhlCUY9lf(K#CLo) z5BE)(q=}sN)Bffl4^>YcF%uY0k~f)hv4O+V7Z5sd~7w zG}|l9$Qoh0+A0+_6|0U!^d=MW@FJZDvxUgYvgOFivPDT>F=z6ZHG^|LcK?b#8XL(L zLy*qSMi9iISfO@MIyR(nJV%{`vziW#*QT?geBnG_ArA=MH`2hyR09JZr~c`5DW-?Q zAl#w74wle^Eh6`mA(SNN?4!y z$NRl>%>>`Auz(OmD~*srD?R6=Yfc(gjfD^M(MrQeG}DW8@Ybk*(W!sYsejR_e{tUV zzT~9o5V2W4og6mPbX?d>JMCG7x4_DG+P4Tp+RAs@OUH1ne3-swddX@3lGFYrr~OM# z`N?6h~;Y45Vr-esq~%T9Zj zo%Sv}?Ok@-yX>@g*=g^x)81vLy~|E}m!0-5yX|%Qd&O!0iqrlTr~NBV`&XRyuQ=^r zaoWG)w135E|BBQ86{r0xPWxA!_OCeYUvb*M;_t4{k@9eP(CdRHBK zR~>p6W)s@nGl$?p(F3h6d7y=5+%(ekzPxg_IO~wOFqed&^Fe4S2rUPpl_0blgw}%4 zg&=e>2we(7mxIuiAapeZT?#^1gWOpSa%VNjoz)gs|sQ~_}YDZ&`%0^;$rHyU49hRlzg8OB*GfYUtu!>RmBu(W)1=eP^pddg98hh}t2Xgr_>>Gk=UX`lEU4~E z3#tcz1=ZbXL3L+YP;IVQP|aW>rHK3Z`ke_~cTaP@3j#Y`5VVL3!W83zpd%a*O`a~u zFPWKx*v zC2ho8P_1Mvs8%r+R4aZ9s@1g#T`5)_g#d`7LI6Q8IbUHKwIMY~f&;;nZ9}RaPSwY8 z_=noj7fv~l3L8>$xVTcRd9A2O;ld+P=`BK&8Ps!`klGmptufIxOf0b%( zzn46DF4bJAE7e@7D|utEPpRhdr{>B}spiU0spiU0 zspiSgg2x~7#@jMRI^2PH{Gr*(!Ev=jiDoPZ$CDqLwHzFGe3fV>b8tNV(Cp^mc>G!L z_(OA`{S`Sn9EissGJYH!k3Zz-aBw{SkfX!F@%ZEEpOUA4O62Hp%JKL^dk7AW#~*TZ zI5;kU%AWoyd-|vB>7TNvf6AWzDSP^-?CGDfr+>7TNvf6AWzDSP^-?CGDfr+>7Vj~JHE=E{wXiG=iXtnF|^iSE-Hf3_FI$yckrc7>C2glXMWl!6bJ#AC=tevu_ zZOWdt!xs`ewR_rz9LN?<#nV3(PybXr{ZsMuPsP(e6;J6r{Za(il=QV zp0=rYwoS!bTU9*GR`s+^)zdarPuo;IZBzBM4KAv7G+WivHdRmCR6T7|^|VdZ(>7I4 z+f+SmQ}wh>)zdarPuo;IZBzBMP1VyjRZrVgJ#AC7I4 z+f+SmQ}wh>)zdarPuo;IZBzBMP1VyjRZrVgJ#AC7I4 z+f+SmQ}wh>)zc(ZPm@$VO;YtVN!8OERZnkJJ-t!&^hVXw8&!Y2dzMVq(=Am`lT66v+tfU5 zQ}eV<&C@nDPutWyZBz5KP0iCAHBWEUJS|c4v_#F*5;adt)I2Rw^Rz_G(-JjLOVm6q zQS)>{&C>}rPbbto4N&tmK+V$tHE+DvyzyT1#(T{h?=?^6Yo2vc^K?SZ(+M?C1Jt~+ zQ}c8}&C>}rPbbto4N&tmK+V$tHBST7{E_R;aW!vls(G5f=IQX7r;Tf#9;%nns4jLla#!iid>Fs>djz|ECoq-@UTtdm; zJ>_z}Jyk##g1C6^)!l!^z6av?JSg@ff>5~|X0ZYL5<%P$4cLtc;;sguvx|CT-KuYP zF}PoaR_j0l3m^MayesLhvZ+sKx6+3P_s&p$aQ_Y*4DMC~9^9D&JVO6M1b-p8mkoM! zfP~Xt9U$SrgZt+wCsJ=UR&Q_@9pwaf7XjD%>kd7U9mZOuA8QeMYLR}dMd++W=t%=? zEIQ{Raz&#zBtO{Qi@?M5W6v&vALi#=EmChS%+I+rpvZ1lWPHt4!+gWOVVKTHf6YO& z1o;ygFLSl9e9qOv<99AHzUCrwG8d7Pxrm(1)gt{;i}g!*T+h|QdSh-OEa!7+V3^%s zG5Jgbz#RNYKQ2V*PXoi8aw6?Y1H&Brh@31&+PfGTFN+a*Sd7TSVpxyOEk?%OVuU}7 zk$#WNJ9CSX{#^|7VLqZy<|BG|J~EExBYI#yGA`yL`e8mYzsxU$`7j@m6GRaN$2(#P zBJfE0i(&bkUkvMQ#27@%5BCe=4Z`@5`E)*_=jW?o`J9i~8}pI*bUtE-%t!R_d}N-T zkIb|4u+Ktzcs`=f=Og-jKBBkhBYJy2qPOQG`guO0pXVd`c|M|_=Ogp`e8ldWkLcm~ zh#sEDF_$1eBlg>T8i;G@$@ztd97goyd_+&qNA%=;L{B2RCP+VGY$EV*dl7FF!4HoM z#NI^k!+INWI1&7?oO}CvdIoVjVf@JWLJUs?Kf?dWctliB zq?`!C^8SkaYcrQi9dnsa9mm+pr zDPpG~f+*as$h=&N=#$byME)c5cqw8BmLl_eDLo)y>9JD84lG6VTPdR7N{bQsUyR6q zL?4zS`mhw!hY`E66tNpi5jzJlOW}Tu*psD*ol}a~Ii-l5Q;OK1rHGw_=%yf@h;fR* z!~93QQv^S(e-Qf=!4Jzn;-DhSEQVX{73XZBEBN!MC3oB{}BTgE+?Y@ z%MtyLII&1M5&lQ?KO)B>sIfyZfz{B#7 zc(Vw8nE!}9i{OXlA8}|A{4oC!lNP}b^B?hP5&W?HBUUYfALc*e*24G^{f`*72!4eB z5&e&-wn#Y<{zvpb;@l$TMED=k|A>5xloR29ME@feE>cc}{}KI<=(un>5&e%yxd?tl z{v-Myv2&4fBJv;6|A?lGloOHvi2g@>U8J0d{73XZBJLvPMC3oB{}F>1E+?Y@5sw$a zkH~+-{zrsfq@0NSN9=#Z>_y6n@H3*%5yclNC&th4_(EJ?upC79Mc`pMN2Ff_Kg?%D z{YCJ@d`1Ld1V1e2hz5+{$M_JIbHoQm$_eWk#0p06!~KG|!7zSA&m)E~f*;|3M9(9t zFj7v0{}DZpIKxOe5&lQ?JR%PxMM9(8qF@hhF|A?MP z>|&&xi2O(NJfayRnB61ti z&xnwWloOHLh<%Qj$w)ad`HbO5Afhr@FXAdA@UWgijAaBrOb_BMBluxCN9<(; zKipr4!;IjE`wKCd5&W>6BR(^NAMO{#YKHM6dLD6`5&Q_>B6c_;IV0sn_!H5?i0zD& z6X8!p4reT!Jo2!2G~BK9+)LnGxx+5ic4kCn8r7I~ftA z;c_DS7SW^;{K)u?_(Kq18Yw5j&xpQ7#A&3Q2tOl!Z^WQR%8BqZVz(d$HC#?)UPe4> z7(Zg?BQ`aNZ(O)!?T;XGHH;t8=f*`(b~zFH5#t&zKhiE-A{WL_{YA9BZQO%Hf!Yp; zVw_zNj&Qml#N)ak90_tkIHBo+a6Huo;e4tK!r@aFgwx$F2nQ}55M5;Fg8VkprF1S9 zj+eS1pDwyj&c*Ucr5oj3ET2@mf62k38(>_JPd!~L=VJNYK^M!pSblfVMRG2d-$Qgw zoQvhRk*6v8Q9FF8w z{RwUy0*h=2G0le1jj$%f{f6>)>x0XECJoO}7A_yq>)lCve+XcwKSJfQ0sC|hx4dr~ z?>6^_t(l~Gh=%|~vpV{nNL)LHhYZ9MlDOp?C~f{vuxKXfAT=D1_mYF%=D3pJxr8F! zQ{Kl-@0EmpQH^+k;Fum~q`&+O#2y~~qy%nIZ{mS-K19dApob@L5BPAm-fD5@ z6!!7qm{H=Ye#kE0>mT-an{|KjJ~`ImahD$t7a7X!eZTQ%_9;%xQo+}UJf0nN2}aBlJZ zOoD%ce6%kUsS=3b-z|E+b<&r4gg#nQD5UWw>P4nt?JL2@Kw=<{ot8TfN=R$%D0Xa$KFs{LAY z0e|kP0ZG&8I!Pj$wKw|R5}Ui~9WMr$k9{@Uc$&6q;Yg5$)q|~uC*sW~!I~0g;yDRW;hbWtVL!kwzsUZXs(e&SIj_4C5Qh3y@f&Hxqb<7U54k2uw_zLIeC z2S2$*Z#K31hXwlE*~cQTvo{&m3;Z+^Rugz|3vynD?_q7w$Le<4$0}+dMtniMswY=> zcK&!$phx;--l&lb==@T+B)q;9}!wBM`_3hQZP4lF_+qMuGaMZ&Cy%xBI zm8cK!@$hEnojxH9H7SNVCRc=2;!%IngRiHBu^~~9`|Z7!Ef?sH*0gEE+IWOAY4+-n zccY6KD$p%SvP4HdK3PzYP|9&YubL+95&8(e4ztkl1YK-Y09-(zTpoeo_Zb|T^;<>uhXuUA zDT}O+x}CH40x?Xph@>9+?GAFwDno)U;P`;ML8eQJs7~Vg%Cyo1XlG8)n)# z7Qd{DB^Z4$u6Nsz{-vd4 zX>(&^^Fp$4@!Ynf1?ZCke$zH<<<3tbK9{p zlcp$Dcb3(3`Tl7^y@M+2ws6EtrUm(+X$XT}L&ZCMcoJ3SvZu{bPVml=RO0#4dKcCe z1`xeIO)7!(170~59n0#<6j16hyl(1hK;dpQB>*q~H8EdU;tolq0_mk_67%U;NtAd2 z)~rWB_J;JRHN1OxIZ{j`;@Li@ufz+o1^JMyY%|J#MKS}x>I62{hgeMS>&Ennq z-S)9nC?ruMi+1B#`(`hxPYS~WmS8Z3*L;{^`ZOWp(L%g|F4&u}rWyCIwhJ_Z8YRPayRd+oWW~?=MdSqPq8oVHEC_^Jn* z^tz+r^uWYwS~`bckBm|V^F$aahl-juIpEFW>eI=PEdzQOQds~R$kHHrq=80ttb;@g z5AYJDk#o53q#%oX*hpyK3BC_nd+iaV0!S?B^HtVdt4Eh=v;Ba9ytsb!ZHGL+zATY&~$&#{( z)hnCu5@S`(#?2+DukEF^HRwp#Zx`zW)|VE>&T0ZDHe?Z#@gZ1&aVj5qW@vM?*Kq(= z(#%!XCG-lO3WxF8@3z{_{yvHnZ_LtU*k?sRQeTkdFZR3363yTW*@1XtS`6dKzMlMH z*|xQG?6=_AAMLkh%h+DQqt4h^z`w;(ng7nwHDySbW{a?k`z>^}>~T{dWCrFPo^uQm zq&;dtBrXY3AHyFkx#GTYRtxJ~R*+$}*K*J=Ecqsvm|XB zHU@J1ajMxr=;_Y|WH{(xOG=DUhFGJMA?-nz9+5Y2dbF4}(sa=WhSSQn3H_|B<1`0t#5Q1{pz#4F7K;=vNi6)`qG-z$aTo@jauc=R#d46j zY2$H zjIrAe5buL})ids$Cb3saXKN4~B???3!CV|De;33Lbf+ZKR{+trFj?(J11U#Hu#JuW zbkRm_7zH*KnTl3VQE}sm!JaYpr?Gk7C;69OA23YX$fCfeWMh3)-&a;@)MS=l8v340 z0HZhi9RkSO$aEW;6A1v2W4JIB##KPtb<6rdVYI!jRojjbCt?RW1zuW8X!m(b?lZ5$BV&|-z3GIubuE0_($xUD zscS*7m#g#B&DszU+Std0O7?-60DT~4K_7^z&V1%p%t(w{1TDx5!*8!49$ z#KsjCNLU<ALv?-A~l`_}3|;dDnb-6W+AV zlwX`oaYRpR9OIJ|hk@5hm_~NKS8UUiC_swGv?ws)aajtG;!#!|uFN(Ynl}8(K8zeP zYhsyfDPa{ifn&`?68H&y&nS0JhZH!cMueUN#b7p*a`a+GRC(fODjQ+3FeM`G&h#s^ z68mVE54c?ZMGX&NGD7p9g#FXAaH*vtC}6Vz*jX_pNO@FvCPiFfk#^;{c=}OH$>BDW zL*W2BiFjt5kk92c14rv4dGpOt1h*?p5#7uR-F;~fZNrP^Cz zIS?C5%pssoV;QrGhGBjcR5=j4EZr#@OF(QaJxOUS0kN@Q;W#x4h>ay?a+7*vZr9}t zr>zo<|#Ks~+&q0$Q2T#xZnvB`t9P6`|ZbC*CPI*3a$zt^JeD;zJ>Ernf zo;5gp>)M6o&0DvVYDL%Uf|x!96o#B&j0bZuHERq^gEt0LOQ#2O%hYT%FbzH$P_IFt z-Qc8wsafg4+}brW4a@*HQInQf1Jjh*#f|wnjRQMPrMO0VS*FrlEf1V)NCKxVs>-HzqOx?q zGp^C&oVI8#J2aPduQ9ICUz|?$0o7yZf{lfxrHh*jJ8KIURI^+Vw~c_eUtC*XU!xFs zUShZ)g?H}a%8E7tfRv^c#@f=#`oaaAUeN`a5QTMdbHgGkOVH^ojSUZ<4 zo?qL($-pup3hUB&M9p8o3Q?D3LKsV}MFobDN^>u&@6|#UxSYF#slJ?wyP4$trLC&D zLQ@Hyrv--)4Y{GD77Q!FHYC{36mdC0h+Ha*HUT3|t8W0IHL-~y(;7o8q*Dx?HZbfm z#5!AXN7QTAVbP7?BQuv$N$VK9eFvldA)o7L_BbY{2hS9am8k91KCIi(puWc+ryEjx z@ZKW&Vy_QB+f1UOAzJ-0?fthBIG5X9c${ey9#ISMpTWz9B4~4&wpVGd2XJzOVbOwp z5k_N&nlL&G*w}UW>S0hACMwB>Ew;8c zH@4Q+S9lK}n=8vJs|%ObchK;S_Nd!#okM(3eGg<&@$84C-)^3hZjO!*5VS+Pt+G87 zW<*<8$NP;Tm*#wNfDIw+jBz+b13ZWC6Z`Qk*${Ydxg~0Uz1?B{AdCS%Y;X|~B6Q9N zu@)mR&8N>OeZO674yV*#C~-nN{x}swE=BCEk7-YBM((!phHSHe00Q)#@PqER>c?if z)xuFA${ux^b8~YwohVj|MUj9Ne+B0=W<|>78+@hhggO{88Q6|cViZPpKV~@@V1wci zu3jmS3~NqD*p|m)3!4}|(jz8&hmRok$;=en%xNUe1?+|Nw%d0~JQ5dl3AP5B_32ow z)Y>Zx=b+Aj(MZ}Ww{BiqUtYxNC83tvD{B|FE^b0EZ*O~LjIj@ZeG(=wEt!5z)ew;5 z1VcdLwFewCL)+If(n)4OP6rq$t#)IINCKi|ZF7+W0M>`i-F9nbG?GI>XDl=+{vwp2 zcYOkxYlFl3UY~j`ROUu~yemKAh#5gI)C8yC+ioHT=s+fq>ix+9m`Rd6?zI(`0&7k* zuv5{+*rPxU780pVsFfGn-S(A(9f;0wI!Vdh>o){n+j|{|C*qqpc`(ATxk7th3Q`|6 zdq5_QCZQ-4=kQ2(*gU6weF{91(7~{|*CJA7dU7?HLfx=96Aq+jMed<5Axr@~N<7?1 zu_01mw~hEaQ44eN?39B``v_Ho zFUZ8jE?0Z5jIAP^T7uZ(NFK*@5)3gWBFa<2iRisL6m5TieL8HOx6G2gfcl6&&+V^IW0|nM|wTM53?LGPc^WExr zPfXZM!W&<06)1>Z!8XNKF!-dB(Ss!7gEqx*C5Rfp!N8>3Mzj+{p}44j%@Pos2l@0gMa`qJi%3lzHx>RWjt((;fNEUDIHX-DOqY9%53sBYxjm->^x(4 zngkmMXyu%OYz|x_RfJ#~MC*`<5g7zw1BFyqe4=;TfK5OYF}AozFbXpAGSHF^i@QZS z0S~4VyFC(UaaQ#zs3pB4`gQlH1qH-`oh<#7V-}z0P`GU$iXOB0Wa4lZ+e7e|xPFOxzsUkL`E-_1{Fok0tVWPzJ!C@oGzR5GUC^yY)QU}4?9QP*T z72AXH6dU;n!a_GwyfB?3FiS?jCL%(Irx8x;1Q1Sxm)8vR!<_d(GZ(K^tyzUjEE_YX znIcR<96k=lR_BmTMAJcKVM(*6B2&k0Ov_jcxJ2QU1{u#? z%n}wa8sjz@IXaX1Wzt4w0gA`k#)P`XcM?oNdnN|N1_P-{f+$WmgfbCjKHNt%9~NR} zwp%(Gc+xnbpGr$%*pCt3d`#zF0wZUGOv3F6X0LTxUv4AtRz`#K8c?q#jER7zI~o4X zI}fDahpkpXO08E9}1rjxfQkaSh!=2YKopG6Knt7{kEm70Ae%W4$)T zUY+(?8>=hrQxPi?iauuR4H2WX#5X&yIo#t@K(-OiW}>B{Q3gpqtq*874~GIyXbQLo zEyhC#E&=pNy)ho{!OUkftI(v_K$0iFHT)%poncXO$RLXWXn>I`?A}6i1TkT={4|b; zSYY<*kWoyQvN(b!!l@BHje|Wi6o#>^Vu1UHVku-c($2>;W@g$n6lUr5T^oi&YpsM< zJaFoeH1UxZ7e%^YnnRfCbWGty%a!Dw7qTWHGG=)Xyy;BL47V!bje#>Jfq%y6O97`1 z-C{JS9R8pj{NNa~M=%4S#bJ1is0QX+i&nc$g(3x_*s#;n!uCLTCk^KD_^6c_3qC$> zkf!fx*)G0xNYe3+-6Nkg2)`2v4n=x}R(U4BeXM{vMTQEEuO^l(5LF1hOUr3#75Gh7 z3LhVUE(C9etz(mz-Vlym*u`%7g}EA3pIZk=Z>~uvcqPA8#kVFAm_&XbUK%CjeB--084Sjb*E31@Ag zbW-*?nv?s@lTffvU7kM)K^#@sI|=2IIyiC?(&EO}N!b^0r&XlCSX9>{oqcI%X@?f_ zK^c>@W5l=ONbnC&VedqW*lt_HKb5kTL2I*v@l8QNX6^2%<1cXRv)I5fOoK`n&rS1p zGIpMqv9y5$Tl%Cj_!}9ej_HZx;5&WVq_M0C7j3j>WxJFd&?!3#yvD(_y<=&9kI$Y& z$ny3=vUPFomW7>_lh7_+8yeFqW8*upF5%yUl}jhdPb$2Vl;tOA&TQ%joMPfknodJZ;7zeDDMSo7Wk$#ILv>Dv?S#WpVM zz&t`uujz>#bqki4uPHY%+?^+{63M3L35`5H!YSt#>8AB3NAPEhPol0h_ggoO^KDn) zJ;b5Kdo~i?a)_q(6*47xQxBUGu-e#7%Pu)*(L3f-0wEt)n&Y~~(j3>7CvwKeV=B;; zeq_+u1Gouz*OiQ%YZjS81#uisE6-fQPUQGZV;`=I_GtFZc+@;ofDuw3oT1|pXUO4m zX0A{y6q{$pyKwjQrUz#rLU8e%VW--eTD9107Mt+;H0IA1tF6jxrCptE%ylaB#ZtR- zw$z;KRA(z4F6z6vs53M0v=y2&*;Gz-s|`K)(}Wibrcd+WI3tQ?==j!NoBA{}t{5Z? zvtvWOMT_YSnIH+sj0JpEOJ?mCwP)9O+(wg?R)BjKS|J;aG=ptnEOs($yR1I5=8N6V zta@J5o?YYVDx6Vfeb4bJqwGXqT9ui$AHfgVGGMQLB~u1a{TU7btgJH|{8-s%*L02p z%dG99_RRX7tH#tG$W8*-tC$%Fxc2NC4_|V2y-$^A)^v(r$gJsHd1g(= z6`)zkJF3pC*%UCBS;M*V%$iOf-f?Da7qw^C_+fS}A7&@+*vAqf%^9{{QIK8VQ*3rt z%8moWGiy3+>Sxw;t~|4*t9zld>UdRuh78DXGYetBz3kMUacyd5(r?m`oea>uOd3H?~v6Go~J%^6=Gwgfu07Pc(m(^$1|NNjqR-(_9 zXV`R{I>@Z!`CvhIDv!_YW!CR>XfV5e7w3($>v>s!W(=TX=ovb(W%U_0pPnzttow0* zjjGSG`FJKJtD!GW%VyYkiV@DxhmRwhf`IH;kYVR%7`=njuN1+Qo#4y*GwgR z5B#U0?~#M3-1)7sHZLkR20x^@HrJAY8qJ+Oums-*J+e_=_u6GHgDM?G7fL z?AkBu&#wQo+vLddw6hpQ_KU`Fu}u zcFh;nXV!diCsk(6m(^$2e7ch(E751Yn_biC$}qY#GrRU{3bJK_zBesfPNZaH#*XO( zcQ0l&9Jun#nyzk^&aC;Gfb3WxUvJGy0C1HIzaE<%1G3xxI?QnEi*8KRS9539`6dw= zNY1Ox$Du>ku~XJ+c-X1|{q4~PUo zL8eTYj&Vt3)_l-JWXp;{Khw1WNdzuNV;Zt$#H5o{GaVSX@ER0k$ppS_`pnFreZ=>^ zWo0suObAjGC0Q|LzmIz!2i-F>xQG`|y5KI{20e3-otW5UWX={`P)U)Md?k8jOtFZ_ ziX}7kR%=wubl9X6WX1$}w|Zuxpz6CwoIAT?Do&#bxTASV9fE~OnGIH zBdMw1D1T(jCfp>}A51wA_sk5g(ABAI*<}!N#-gfzqm|5Jc#ecJ9lORP>0{tXN$^&~E(*~~4Z{X5=T%3Grr#YCw!^eLz<%u9f&{4lp{LPj#{TANC zh3f#Xv*Qu!Y?&iy5id+aY!prTV9;;?ABK2QEz40QxN|0Dl0jE47$qso6OSZG`Ct!T z7N+|Kay8QExnm|O7cA=GI*tr4HYU%LJIW+UxnPfZGhd!YnMqeJ7g`6Fq{ltKL=ZT8?jc(RMck4&|-L60Jb_n(NuZ0%}LhF2i@`Ei6~ z$zNIXO3|T7gDI(CnX`-Dc0Dsg|7Oi5ri2Np-^hP59dnn*!@(I`N7Ke_OvBNc8T~U; zHaS$KMAdIhe`n7(-Vp=S#NX^WCh3vn)NhnOGG)~M5bp<&WXT_ya!C=RXo0(1ke97~ z8titU#&@&3iGfT4B7$gu(#F4;$_#FT9pge&m;vHW*n|#8WO-hn_@jwZKfo!6y!iJNMoBIX%D*nLAKkNiXiz{ng)up9LZI0zn*P` zK!j6FSC06!+sbxD9AOiYl_M?<#>x0#H^X!Lv^EagQi`-3ackHdXLr*Fuk^yKV!Cp~ zr-R+*c(#~FJ3&&GGhS8l%Bo79bk)IbJGJ?fOlk;ruAh)?AYL(TIpbHeJ<2xD zETXQ6Urbxx_%+Jou5!Zc0%lPw`_8;d7m=1b zZXFJHGd}Eag0dgA1$jB++87a`x!f!yjW3AHlw$|=Nsn{`g%*onnGQ)s#2NJid#n0q zwu~AdH+$d`{mGU^Oo*TZ%wc+R!ABO3{@ci8`+D?;(J_o$Y)V;#Epnw%nQ=LxWGU-55muXNU&qZv2}m zKXBHed8WxD9_JwWZ>Ce5NslB4#~=k=*)pmjVg}EQ`&ZjT9HF7V*?K-l4oQMCNR=Qh zU+miJ!z{=tza(whGOT}a(8kHN5&zA03<^>tCAf1;kd!HV#>3`r8;5E$zYahNqdx98W#?rXYwfbhq$?MU${~*=Nx5K8{~(79(nRHg zMU!S8d6ZI>8z!|!xO6Pj8Q;}L#3VsgE|^5*jdM8OOuBNxsA(&YLoTH%A50qbujEje z@c5h}D?eEeF28N6)4zp`bKB1cmLSEM2=YewN+ zt^xCjeq_xiCI+lwT9`@vD_b5NkN1XnVRX!Yv*nN=MN$I(2$C{o&(*ztcDfEgrUdYYXBMTxF4VgVLDH+kqP%=OQBomx~M;iZvlx*b!?^u?y8z&|= zn38On(QJ>W89(W*g+tPkF+&b&^BEq8FvX+Eq-4vEHm>LxC;QVZuR}L^V$hQ@W2VjI za)vi3SWFSLWY3V@4A(&}LqJRR44E9|W2R|CLO@Hl4CywCb6H-cVM>UkC2NMvR?p6z z&4-9|8-kduS+biKcI;+6T>9f-QmvM1Nrty*nnT8*CtDfOgcS23Dh53{Va#047&Dib zp){W}#?0r1F*#Wg>!DQ23uDSTlbCW|7?a^eU%^=^%lo}R(2N${YR)94niq-5iCaZ? zR4p%zna#-(KywBJ<;0Si&7JW(n;X{T&B~k2jhQ!_H#-jm?8`NWcq+9EgOl9xniCqg{jG2Qs#$lAJsYq;{j(>Sy@Go^V1a&PZxOpSofVQ9}4~$Wv-I-k~X6q(JPCi(Zn_<;$WE^oW?P)pvXYFHF z+D4I+2Wh!nKd9$vt)c136LS(AHp+|eCBt%t2rZA`WuI9Z3+_ga3W;BlmvW z%)P$p{`h$>O5=Yw0CwHXy&m+>GuK@|GjkpOKQr?r{C68=&dhwxf0}vT<6i!)*Uj8p zq)+*G^fZld5f3-aeCh3P+kNz_{%rgsZ}`SnJn$>W|M-1(eD}Bg*PB1{#b18rA3ySb zzyJH+|I1JPr8nF*yzA4Qw_X3fcfD)(y3O0Z^2pyVy86SM}^KN?1cm3R>e)fZR zU+q8sZytWfL)6f6Ox4i2we)l2Y z`{?$!4_mzteC|KI_h%mWklVlcA+P_~j~wm3?Aw;VwEVJX-SViQDdqH$U~?E?xKG&;RL9T|Ru{kG}2?x4-6jPk!}l|K;7)H~rb~uN?pLH#Bc~ z(F6D9?j?gf8)hjrNdVTAAp7Q*s{`Hw>KWFl$2YzPtliy$Y>f0XsxOYC_@80&A z-}}ABpB*1we*O=Artrjby_FZg=I$^5hvt1A{+v6%<@;Xx$@ZWB;4@zKrSfCn{E*iB z%I)v}gI9m!=12bX<%hiYneTts;Ot-B`gdO}RKDkfPyF=He7XCmmp`ceqL;tzg+K9i z7k9q?$3A+?`yTp_55Ma^A3O7uFU;Kk*2Yi1<&*mhH@@t_cYSQ_37tP$`u6_(54`F6 ztzUZW^WX5+ufOf~kNxF?TL0xEzwxn`zWulE^U304fBlvBzV9DA;J$bL&a*H5^}l_8 z|H-fY^mG0)`O?$gbj$l*@!bD*UGKT0Z+rFg{`{YJYvl+1!F^xeeeGkP|5ZQqu1J@56i$-O`FmLI(H?vEEfb)UEV!q&}y`Y&(0;p>0!kIy{e zt1kWZTVD1Julm|ov}Ql?{HOoI-~Y>%l@I*TJJ0|1a`ipef9GRI({i<^h zefgaqe$~M{p1A$h*Z*PT%uBxeuBUDc-})nue91dM@xe*)nQwUR{f__s%j2K^-qQbl z!vh{%y76<5X}{`mA71-`mo@(E-Z$U&$hW@gUcdX)C;!C5Uh=fp|KWdp!iRqN$JXBY zk`KS-7q72YANo5t+;#WQf9bK$d-J=0cK(K|Pp)lT{md61cKr(;{SVK$@QhOD=}&#Z z4IljQpSP4|A^_};bs|MXvqAOGc-{QTqp=&jHG`N~aC`--po z^2dJXK2LbWul(9iZCv-kgYJVrf9I>e?d}(T-5s~z{i~07EA!>QAZzm+4Y+bf8yF}7gqkI_g^c2xwP86_vF*x^wHOS@@*gZ z(rdomG3^U2@6-+z15U2l5xZ+z`^_|eZl%RjPKj681~1ozBn!|mA1r-7p%60;Ov7mJq|U_ zbbehwPS`=;kss-Ct_}{C=Vuo4U(l*n-&w}_2n?QQBjg%M7fY>oSsBC7tbf{4EJ}O9 z<09OsYXQ&+q?Cp9vlk7XBucw&zW0Fo1bfuyP+7Z;&ar~phqK=&e9(iAHPd2@LZ3cM zeh$m8b%ES3d(ZDT@=KrdD&$Pn+7QCa-zM`WKa`yyc(cVs%7fWL_$&K20;WAVW z5xphmqph~m2f+R5pu$Q*H6}YT!H3stGV`eSGB%IN&M!xO)dY(!HNxsOsLzhB=3$60 zn{8q!iwM-p!{%^(+Qj_QA-v2tZh0Bix)kE4V%F@>VGT>ZanWH<=vIxI8f)44! z_E*Pq?oRUZ(l5U%ae+i-Wk^RX4CAGMyO?(ALo;UmX|X*)qn*;v>`yG$=5}f4chjoa zsdsKlv1SUC>tQxWzJ?o&m?jPO)7|B^lA&5IAz32IjoknSaq9rz3G@DM`Vqbna2)c_ z)D`^@R#)13r5jgU{@Tu*1bTNqfU{1e;j+US{!{x+9(6x>i!mfK00@;T4UfFLE#7pk1HxP=>EcjGYe_uDo zvsvI0uPcj|q1=+pIl{K!C8URf-_W6(#k*R8HPvd{pkd;|`0#c7{{~Gd4mB`otaijS z&5yKVUl7?4#za=$9LjiEM617ul0~4PjtsboIf}@hv2fxc1Rv-d*jF9FoMqhdD7SWH zlZQw_SaBIy(kCUYv=W&|jP}?;`utGkz?L*1=>a!h;;05IoP+5eINz4p+`;l%^Y6!5 zG*brVy<)_N0&bNiHPB5;4VV^|_9@i!yMu#IpqM>__(6YmZIb@aUe{(A=(%uFH-4zs z#kg^0tS^foT?#a72Tl4W3)n^jpRQRJKF9ohMf&TXhp-$>VM0Vsyg1yZS-=^5Kg~Fm zgjn7#y{1G(;xHrEEn2L|(0aasQhJ!u+6Tx+SDm=az8I?P+0PDwB$p<;ML``^a(@Im zQzCb%rk+2yN6&quLFGE#&7Yqc{Ieio_C^ZuRV<+%Xs?bm)N^zRzHDOXg6%ELlPx^u zvmU&%*RB;Bgv^=4r%L?&oTV1h)KhB+Dae{@9P!0U88ir7ooYhJa}1VdR)qzH%8(W{ zPFnY$x(0~&hOO6&r1O>-ao2l6AR(QAI0U8Awt^hBK7YqBrtZp>6SY6Xn4EFE0I2^= z1MX#uqmC}kxn5p`arG=YyeD%ctqs0?k2tsQs%jUoT;!F3hx)>83Iyp2auu6UgX2OUvSK||OpvyPy=EP`B2uhv9QOcP}95aMzen#@I`bLNggVQ`vr%TVsHg3n1Cj#jw&wv-3o)qyUC>2TUKEt_GQin zw9l}jFFDuz&3(6Xpuf=Ox{h?(>$4cGa|zgewJhJskc)qK*srsjxnc#o63iUU?A~f_ zmlBNXp(`9XTC145!U3lbh8S?4EL>$x{O;ikDD!ycUc_L;FOzGBX2lDMezv9`LYFA| za*5hVx9WLHQ1Rem)Ulm_k--U+oL<*Xg2n5IYL+>4J|sT4)XAj8E2^4NY5?WY>1V~T zWGw-2vZ=dz;iSbe#TO~%$AX#bl5<@hJv~TH#x0vmI5FFYsoWgTSM=OO#oO?D zjG>2yOoG~E*TIsnl{%j0{KT^dyk{HE3J;o_>_{KJCi@6ZdUOv43~-bD;SrqETp6 z_pK>!7KDix-TTH6%&^?;&w&{w)Lr5#Oq=#u|3T5mL(bO{X?KXgT>uY_u~BF|`Q@R6 zBY91bc#y337)&X*gm(o*4Iy&X_3-CCd-qxL3g)ecW9}VtJoJ&>*|dDLBhP0m`SO>f$o z45%Iue;#-`ljs%xj~}=)ekSO8FsT^?i<5pEcmlYkzdO~m$85~7K12^coS+81g1y1H zUg#UDaa|4JgQxgDE>?a0K}^gZXyGPEhq_oPLJsES^^BBD3R`M!vNN8qC$;E+d&?#Ky>CPnlU`AwGRb&*+ z9aI;7N%d3PT8TnkCYIv^d?ha#(SF4qXO!C3I%yH$?e+4~GgO!pv8%t|A+Rp2Y-e2M zL0PFVh3Ak~EldV=zx`6zAFSuJyMtb8M@o%AMZ2}vix3dCeW5rGe^D%Dd#f+ol?HmY zjpc-`CS-G-@b@nA5+Ax|Nnz?io!H@1ry@tODO3{6X&NG^ra%h61R>xo^El0|>JN== zKA!Z@?iv`g3%(8$g_rqyWbD{aTWn~*z?^0C#JJP6slZI*kr^KRuFE2SIvV?>_US^g zPlct>sV+2V5iMqEq6pn)!vJp1wgO!$o}-X6iyfW`SNj>o2=1?)pO|Yy4`a;^sUG+M zEGOKKljZeP`gN`7T)@W%I~-c;A{TuoKoMTuo+-YFT{xf|I+L?}_6f+PXt&-w#644x zCu1#hj`@dd#dc~nC)a$R6VB@^SfnMg6fG2OG|TGxy}^L1XbXbA#cU)j`IkT2=3EmuqxWoxLmjmH72*QgY2r#nWrN1)g{@eMfq!v zdmNCoOi!;J-6Zo?!#*i=3D$kb!4YjuzdUjM&&6@W$uRLq>A zJe)s9u?~Huw|3H^Mtost?%l=81YB?dKauylxYOFf`l&hwWlKzqvudTL#>T(jZax! z;$iI?g5)7)8dT$lGcGA_99t_aIRmm4YPj54e%RW6I6gkc&5dFO7fd2!*Bj2 zpYumVf;MiqxvOccv`#nq-MpnDKd*s0>+?H$~vhS?c3Svx4XwhRH`dMX+uUDIgGalK1E(H0nQ!-E99hI=K)(cAUiRRe9UE`gCK#UjEh}jwnfaBNQGDWsdHBi2 zUYauegpzx`zz{}NfgoGa^3g*ZEA0ziH>6d!^Lkq=H>uz?u(SO6{OJV&hauP2KS8<2 z{(g$3PCJ=%B==bKd4v*RAD~%w3Jymmh)-|30-XW8ou<%KZ-`5xV&$a|^EN^#gfRQS z;}uJ%AF!HQd*pR0eb z5vmA|4^QfGb+kzBwgtHEtFQB0t|;X03ve+02_jk-5q`@rniHKjF45)ez1IS|#DS@7 zif_E~)vi5|7=GW@eMkP#nf|$1-J?0_lcJizAc18Ku7oRb7aQbj?znp_SZ@>b(DD|G z5WOfHU}S)*;W4D;P(4&uv+IbNW^Zy%4^=MmJPQQWNkmg?#pEJf821)3ug`Id{S(E3 z;{?qN;5(tRS?crr*(neq9{nmH>f#qE6}kE*YHb@`|N5`zbgwT5p_A#QBw30N%q`uZ z)t;Ojd}G2#dW^kZvRGGRxeO#y0$!#G@x9>omQ@!3gqP=xQE}!G++hKrGyodAb)$>4 zxx|!i0F+ZPLzjj`L639((-npd^N3_1FbAOmyJ1)}iRHO8#??VS&~GB}0%Zt2%kFQj z7(2asP#|ik-YdC0VrYe{6K+JwFRsb-_bBO~=EN-~!m{FMcb*_Ok4S zNg>JlmHu*B0)$Jk*7dY>@zkG?`Wb3g24-K`aHQ0~8f);V-cb7`(8$}@?j2%C?`uI2^hH7}ubZj_9puCPa? zW%^ac-pJXWdJ}HQVCQU@;5<>NJBt3fk#&SY+TG7)FY7#=f#@|^e8c!nB#t1(t^|NX zoYyCb=lDoSOqd>V%R1f}=sL9`0mNH{v??q_>11k#8gwMdchTGc?ka<=(dah%bt*|x z!Afkxn>@>6Z`cYm(4sPzOXwve04?L&=klfg3tJAL^(#3}0$ZH%f(b3Gf$XC$6 z(m>AOY^}muoQszOnsg4yits=?HH4@J6+P%y`QXKG>ZPr*ibYnNy+ZJTVr=hBHhGxW!kcEHMhO zwV?9h3?LR&>8CEf{RRv10Rb+~*}7W&1B!>l@UFx-o=EL8FuQnT6Y@D|Z9tZ473_OJ zdR4^WlL60uPyI~TcB*mkPq+|Z24%4adzpGB;fk?|PS*8B{HMdeJ-)*pNRT1aqfM20 zvhn_OVuXa=A(`nE&}%PweL8$I!6ejd)Yf%m+K${ee>uHo@Yx4U=0*Fh$$d4T%G|GO zLf&Fi$WF;TbI5*D9KHYtYU3_s*EWW z3~LwNo^Z%ARXPWP?+`_S>{8*1pv# z62Q-^=M=QRzRDO1-JAI>Ow5L-!UF(TuvKqWjWcA)(Bb|0yLcTRp5e8>fRMIrYdk;L zRaR1O9BGUT{?$ma!)ehJw7#*tRr|R;sDD>869r8Lh{O!M+}(dEo?Us0Oi}y(VJngI zl=&Fyk6lA<0L^@)n)Qi3W9+Yr-V+__7;J^@{yvOPX~>KNKop6mFlmq`$Qr>$!m^w0 z@g1v{iS&dwQuEQ0P^0G_q;-STCf?0sZb6ShYpl9C@HtS=Y<8=^eiM>MG~vtppW-^( z5O-VxXMs~Yn3_t{|DT$?E6P&4kx@QMhlSI3DLnz=>KH%Og7p)Wy%i5J_&fMZ*dGVc z9>P!1V*9*&R4Bw%Qs2YjZAzBFUd|`6dpb;nr&(Bg6bi&$P z$nmfriqG_7j;4aM+)FX{+^65RscYEg)FJu2XZNif^Q84I7U8sp@B2r|7tUSOf=;xe z-%&=^`kc@f>^G|zq^`o0AtJN!f2eF9mcO_{Pg>hjsbePj>L*T@ugZAzC5zL$_!LQx z@)>f(XGUu*06A*jk_B#3x_pU$`Z`waOx-m@cjjs z#xEy4$;?CntFb}1R!1>X`A46MINn8@L(qu)Is7E3k=N-!x$DO63V85l9WG6KW$xXF zPPbX+$uRfk1f%r0@gXh#W<}k$?D!zI^{c$%XKhVycs;+$mBph${if(;ZXzDLw9T+d zY?TrxNj|AoDDnQ$vQFkMprsC?4=A2^cVA=CU{1Aw4fQ9(MxUbxF#Yu{sLj4xFgL72 zQ=l_PSc0nIV49phE^d#WECH1GahR_j>p?)q>^-_hS?7_+j8{}(F9p|lX zr29Shl(2H`c1;tJJaS6dmnr{037L{fGjqM=xrtO-Ll+asxM-z4Y@dLtSo8m(M(ZQ* zX0Z0z1-J&s3lP)>k4^cq%HZlX@@=sP?`6x7c$ZM&I4i1oUx>O31x=70Yc`;p6S&E^ zevK3l!IF)QPP_4uS)jW!k(jovDQ|1i5wScS%<#v52?2oTuxAki&penVt07RXr@9KL7B^Y`7U6OB*vvd8XpcoIKY1l8643T6th+3y&8dDzR&6spmd_!R`#k_M| zxee6ZNAG6#g?Vfuj1&&Km4ap767u{m%@A*hHh_4V{455H2j^Jp_UC z7M#ERTPBsTAbcg>=QK{oegl975(|BD(3&xGQzFLh+&c6y#JZ^axR z@T=3fvS2qJ2ud88yTc295)ltMGSdtj9~_*a-dcK4j}3sZv{?w)QoSo?h*(3%P;5^w zP^!;zt&_-oo`D;4qL%>LAT3!DzFFS&JZ-MIKe=dJjL)YZFBLi@)>0Rk-fM;W$XDH# zA1dG)0FOT|h!aG;5@+;92T^YGGNs924#rRns<7B-4;XRH$8re(zT$v3H=5y}oQ@+C z-KAFfr=t#z%Re@dz{~eT{{1UnzvIB0U38I0PQ4lzWYN&yv9;=IeO#z17{U&)LxWdg z7L*J)wJa+o(~nwB0hAaP0;O2l3#s$+5APVH-aPcc!GIUhlXlD=XOHm1?E*g!@}x^L z3YPbx&c`nB-_b&w5F@uXJl6iv_LV=V$F$_Ou3utXap6uAIMK zjJNk)WloCAtl)l|KD~+opk7c}Wh7|HmIkF~%{<_Y5-z=KL$}6oM7|YD3O|)M&{$K5 z1356g@=N-bI1^Sg%Yd1^6sG{!kj@6PDtG*-6KrN~G5GL!LSq=YSYKkLE$q^)mN8mK zO|$j$1uN~4u$j;^24>+5vymuLLUx1)=kT>Yf=ia|Pv+7eLrmEje_PT=)L*Z>Hj1;J zH^iZv6O<6hKs4+?)-BR#T5PV%RmMGF($qDMR0;%5NeY#a+ zb}b(XkEfISZoeG+OXo?Jo{~gzdX61Gj;Nzt=m|P&k{F);7)2gVT}pLFJwX_&SJQ5J zSs-W=H}ceYHim(7&e4^Ef(50X2`}tRd{J9zW!@>%m#UeVqHpj>T^Z08w&5{`+gR5; zItvF_wQc)oSj$(EZ`;|v11ITXmgEfiuywD%Kx8o;A2P*12bfi77e}ET;cyP6cy_g1 zn>%+(vI54dNH!378?Vjvwv;$5<#bMs#A3m=xIkq+1U(W21BH`hK4)kL#6Wnb-4CqX z5#$jxXJnJE1sv}8rrq)DYZ8pZL6j1R#fI@Sn~CJ1;ngZ37Q>bGM}42JJjTq4wrNZL z=cZ@n!Z%20$E(hC=`g6wKZPrrDYCGx9BYKBlKUOyzjbkRgLIq_LX%2L_Dn-Zd+=Xh zhL?baL$AT8Rbm+lN{9MD4qwRLvz}tBlV?vG$>SlP_g6#wG9EG_mmBAqLw|bRJFfGZ?W`TsfWg6E7k(uK zuK7;>Y=ib1Xy-K41IA%arw??6cpS{Okzh1?kRMj^aH5B@Dp|=quJhPE5Y{woD11Xf zv#Y9Y>kwRCYm9o9a3CMad35Z0jr7#@xCC0?*H+71AxmI3k2`wm7^DkZZXG`}1kvf2 zj;F7hH#Wd95F#uCm2yg|LuS<$;g183Jjfmz)-7tWo3l^74TD#j-VNlC5YRaD}Um#@~7 z^Rq`b$@cikqbSYXxE^AI&>j0}ni(F!v^6RZRm7hm7y7nZ$Mw05KM%$ANLuELnYL01 zl_B(DJEZhEo~+;w*%Qdje+j?O%_f>uEhdo}Iai}7+o2@qk_@N(#w#U#)D$Z)pFRVj zWqs?v9`q{waIu_l!)wFeSCmpTtz~GI+A>?4>CxYF{D}HC#w8j)NFlK4jC;hm$yvq|RCGtqi3DDw*ui4_7d7bf^Ov}Xypf+g*e|3~<5vZUDrGwg**_Y; zUM^Zo*_#NrmH^={zLGi1Q5M96*Fyo@$lXvm{ri*>!SPnH3db|Msq_5e5BMM4{@iKm zj4CibSfp8Czxu5)P8||RRbzA(AZRd{nl^2oz%#!IgG`V z>YmZNwdSUJ7USQIMeD$S92n=Y&6lN_yOSu)__ zsWMQufodlip6)WtdPh4p8+1i&@;><(gEZ>Lji&cbH&nQobjsXZbQw$5&7P&1vIGqq z**r|3DY%EP30+dNR(xIQX?|?NW;dwAkr!OV9B^-Ew}0{6n25E0x$yTLc)7vbvC*JJ zI4qLLq<7db6PZa3bw-ok76EWOEcf^*kpl4<#A>?6f|A(wuVZG65U z|H1fwi`V)7v>DO1YG^d{*2cQS?Y@Yf78PeY7rl-GhMpx zD~KpBTqSRUWMvM+_*xZ)ck!2EY=H1n7EPrqCII7q`izu5iYb&S;^<@$6q{eaOe?IU zs)aq~WRCI@NbB`5!XbUK>bkB9wP=DC1*}XZb>ZyaCa!D9*EqML{`-YC_+pe9t2k8# z9E>5WA|(Wo{lPN44=X=n2#m#dgw#fEqcw16Wu{@F^l_f2ZXJF;9hXPE%)OMg#iTMN z=Y1sh?W-tH*1rUT;Cy}r>0Qb-vi%q}cy>T?%ZTUR0jYY^mBl}11n5~+1$A)8w!qv| z@AH^#u2ZBl?&@^Fh(w+X_?HUPuy|7}=5+>YCdo@uP%&^`XYo6i4Bntog>7JZAEliT zH&~@j6Zy>z5EY*C(1b%8lY^qQ6(g zg7**BHHrD8zDl;4<%Q{|DXZ|mUy*j(tZ)p?k?PbNiZxk_^DuZ{MilmO?!tsE0C=S` zT&uoRZ#(69>O12#d(;?9HWI1SPZY^aN1C*DWOS0`&A;*Yv~kz!7}?c*(n15HG3ISF zq6~`+-^D&R<>;tJW$sGIOFR_Xf%F@KUGW1u&zK<{E4J12@bsRk{@PqB^$1vaFL`tQErxQjxjB zZF~fxka?n~C?68r>$0sZ#b=s-EzyKDjL>A2i0_2F48+uHueRExacCjz&gG#!WeNdp zQ&nwjaBoXIb0E(f&vl{qo~}^Rx(-o7h(4#Pv%kswM?!0feCKXJE=55*wdC>s#g^xnv!97z*e}Fk?EyfmWb)|M$DS-BU=tscw z)TDuza06HJ&@SE_p;5o7iXH(}IgK?kHSqbm-KYkqEW|(SBDP_a`MV` z>2`V01`zs2UW^`%L&pNS6eX+=D{20og<>eP?5UUm?vQU&gHBuQPhq9V=;*?w>4oG2 z;I&ZVwvFGGV~6=>XT% z?WxbczEGU719Q-;lAEJ-kbJWw95s@{`#ici(#YxM&AaPtAF3E_e{2zaL|Q3MwvOj{ z4{*1?;GJFpzCc<`Xe+VJkHL?nJS(OQK|TXITKNe*`c@hM`%c_FbA!rAyWa$>G12XZ zq(2oKx~e}Hs$4K_t$69I1VsiwIhX*~fjZVgL-e^#`q+9iBViE>F;f4n1m{AXxrU!LzADV3%kT!F*uKvNkFHxX=MSZfwiC?aJsm{*CowV_#67 z{fJxyRSJM{U?8RePk}e2`md>Ry0%lNx9GIk~v&hVnP5pM+Y=vr4-%(bk!*ogqqe_yq^+m$o zU&}geBDY&Fq2JWoog*g2=pz6vn_cfDN`}Yhn`V3Lh-W@$SKTMbqmoe4uRM`agH;Tq zcNMGzVL0}LSx)E}D)9hkIIijl!LrZ))mT@loPcICDv{X^fhI*%`_RNpErD;u%$>aN zp^t%fzE+`GZIH?1 z)M$|?U_5S*kvxncaTEHajK`Gr!kSM;kOHT>?{?lGyN5YW9R!t49;Kqz?(5Q<^C+P9 zpZ}K`e0d_0)Cayizk0I+WoAuv85Z4Z|DB8bpk$)B%9YSW*ebLIc@RQdp`LxEKzCM_pR5qWz0v8F!r2w3_a;ENm zeSj6}Wrg3Wp4j-!ever2}q6 zn~|TE_72S)vAj&=C*oK#A&wPEG_OWin>=Y2W>GPr4D{1T57z@TI~jAHglB_*@F-)z zZ^qq*^6UcV%5XV86KBsRCD+{o)wt^F2@}_DQjM5af*X)U_Fo`ry)_GA+Ff|>X zVewHHtk_4Ksp~?tKtj z8tYF~AZ0s#aZTBpeYj^|*up+yatP+2tQ(}u!jQ4)y+f<*8cBc2y^j$>a<}y^JhJ_? zBDh7@)8dZ7wrnAUHiEg$6sbq#%2ew&AS~ZcC2|4FG(=*KcGrK{r%-!&M)T9AVOH|` zE-*JYgNEj#q^RyAC%WdSy^rVR;cDUDfH{Ah*cNU~GmlH|49`JD{TKMkAtZ)0G->EL zj3Z>k@Nnp58L+~){{DC1$NqEcq7FGh%v}rkD>Yo9vGz>ewRl;3G?hF~EElUQi@-PC zgTS?l3bpeb^x8MNUTN#)sfbJQp(Vx>-Hz%sja*}xi9=Hy=e+Un9+i6<)4v;S_=lXC z&U8o=7Wv&(>#+I&1p^g+fLg+_Jil`e&zAqC+=^7E4pfpbySyA+VJ}uvNmUANv|IsE{(;Em&~ZzY?CXzVr5`O^@OXM#O}?-a;_?ogwFwK9R=9rWLe zE|S(8VmjjvDyq`Z%CkHmvT{u!7ew9$UEe%sfmsE%PZguEi?6ITq|TNZmXd#}S!rNwBCc2eaYcKi8ER39kzPsw#+dC^9}C+oMawc8sN>zX_Q!Qa46#Ub3b zT(8#g`iciw1my(;F4#;}d98SbGROg-Hl9i!Lox#(z+j5AZ0}z-pPj^wLb08*1w>Xx zGUV{eZ;$x9=As#8o~yCUU*3+~h@4Seks8{~k*1t$SU4Cz3EA_wc13%0a!wx0Qj(Aw z-kHf5k0fOzZ*5duPLBuQ#~SNKP59gETVHN05U-KTbn7l61mDG|9C;3f{T^>&>Y3hmr&ayM~?N2o=yvyQZ}(UZo>pxF)Sd$)#1B;xKAyJM56 zz(6O%iv&Ws58sfaZt#`=y!Owj2XqP!YQ!nLa>8_rS26J2%1s9xE{Rlw=j%k3}*f?i(}|)EtDQC)*bMe{`~u3-uf$g zkMis0tsU@KDN6dts|s-}{MY1Km?^2aCiXncT{?OiZK3ErKv*1G`B#?@FCPKKY+?pF z)#cxW3+S(vh1J*0<=6$@)0k=u>3i5!Vy2#ithUtx<#U3bQ8QOfr)hW=-71A za76hRnw(v3u-KddADFfw`GJ8q(GUT#Ru>@}#p3Ag5{F=~CuiAPd5R_Yq zBqV)P*QCZpzcXsC0vSu;t5$I6+w*eXn0`%rETjHeY+ky1txpFXOeu?7Fyaw`kUnbB zRvuL93Hv~9rUxuN3cbBeK&^yCBf~?@H0EI%Bwh4YN4blY*=ZAprO?fsrPik|Fm&e^ zv~WPSPAP^hAbFw*O+E=rdjs9FO*oVse2Ew4gO89c8C}N%VdvCB z+N`!l)$oa!g1ez!)#t!7=*+o&hn5tZ{iIdL0myIFcrumug22!b!OYjQ zo*E&vaX+pi-%*RQgL%wiwWpS9kO3k@0?TsCR$m4mZMAW=_!Bp*yw8Z5d{h35!2S5B zgWN*nKZ_gThC=Y00aha7!3095m@&R8U|h1+HjfEN4#oBE zwE}g5)t;-{I^L^PnHcbdPKAlHHFXy5A#gVp_l|HjQnZ&9^W`5b~b zgt2>#2ZRDgZlk@*2t`cg7q>}ECaA^9Iv|%{S943IMBRpT^ZlY`)X6tzNm2AF&+tDm zmih|61xg zJF+Funub;-ph-q9IVx&C13Xl1oOv<({q2|4buK_1izAsuZpSsG{C;4gKhhy6C<%cj zr+@bZ*m7G@7&||yn{bgG9|oX|dx6mOd2TAuso~(9vjjJdIDRSzKRPbD<}c>S>d`t; znTRZ!$`}O1tR(i^oRhfun-ibRi#1uE5gL*6Z7>5sjg}K#6~eB6JFW&7g(SmQn7KIo2+1Ol*1L%wwC66!Sw0iIs;RF6 zl|#3ez)y}eSLSPnk}%)I79%JAGC&1T;29b|_&g}<3jD`Y+oxW_rFYG&;Y{8mo^Hyi zcGG-~Bb_}hzv;{k_Di0&1f64_1Kfee9h?C;e4DXOgFeTZa->Ga!bB~HnbISL4H*`j z{la06>z1o@yzt84DAD$RCptkMso)31yBPjb)I~VeBSw4)|0*o~7&KImR$gNd%D_{o zoCdUzaBCxYz;Oc|IDNX#l!89w9G<2SNi2Z9kfOw{(zSSw@W~rY7TNykT2)0De^xJu zs}T)K1W6gtzwOP0nUBZV5H(i54nS#^UG^1>EEaGRS~N!DY7XA{e`rs4NvILSTs|NMH3AThtHe%vnyNi2-Hd9j&Y@BLQ{YpKAXit zH;xLyqpftvpD&JBY)fVTE44f7+n1CY&$FipH{U-W&E^~ZyH^92YdS|2FT|Wf z(;zw*b68CO)7^L*z8yu~e|=7$UI6*jPbgMOf%$OzKqftV}rpE?1>y+Kb zwo3|gUUmk>KE4opz?_oSy%I^z_K!jIxKWb#&74(V@PLAGZ0(+r>PCMP_c&&0N9|R$ zw5zS!?{9>65f8t690g^=*8OtKCogMV#x~M0R<|^EbPq0y=+pSZ&WkqCSM$R`){?w& z-N?_dR&W3@or9V3@E$P;eVS`wD@a@;`!(0_=5O&bl>EICQKd-|*y(aH7c>b0<-?Lr zzTw7Mz=HHWf5LL?i%pe_T3}`Mh?w0u8u(d}6rn8`I?Ybz8t*cbuRIuBL$ujo9_lz+ zm2k}(qJLax9aX#XJyxtLUYgLj_vH6qlHk=tT|9jka31hpKpNyWn=14(U={XUBB*+; zx%5?Fj^$O{f33~2;FVBb;Lmn4pJ>12d|e&pAoMcOgmQXx0;7U1HO4A&*$-3TZ6kB0 zot4{_J@m4&Rk=p$g>bbGYohQJm_W9KW@-J{w56gaLjp#e^OkkNI)>sY^#y{0njrD_ zyVe*`>ER~ri8Yj1YK~ctuS-e=$|#dx97Y@oR;z_)a%=#bdN z-h-en3b$_@tHm6ryS}6p&D6zH{U8@3EZ(_pxp|xYtdqk1xwGhXEueL5xexTokA!`T zc7pu0yRNZ@Hrz7kQXSE5)g*bIBW34!9)+pTy2qgY6N$)eodc!0O5ib4hqc@FCVv+_ z{ZpUEy~AOMotk-5|5nuS^6zJQE+6%s9=AFk+p4li|Dvc~gwN&cD@Q6evsMKxWw~A> zD&9G|(aHt$?*?f;076S3L9WwUl=buC1_QEIe*E+_((d?3aQ(Z)wNu(0TFJo*q+MIw z=R|l3Q>3rqN(D!pq0B5)m_P$Gs+2_NTxB9n6x>>;_Aijlxk@P{NDHv$DvtisZhzum zQ4F{?tlUdI)cJ~{|cU|bS@S(jRv!JL0lGZg8+zE;)F1*n?m zOQAZj0wrG36xySh8uW@Z9Y-GzoADyHyX|lhohQ!*rPqPr=2wdA#_!rN;`iQ16@NE5 zRx8dvs0hI+ZYA!CU7=cue6J>7Jhv-dVr;xwCtj&pep_`6q(?&EwHcP2Ll&rNuD`-( z?+vx=uZ$Z#BSZyVZCZ+@%6@T$cCgX|(+u5}6`bKb?YnIS%tg7LPL^CiMXueRY{kjG~XccH3s1EoZbANmR*(Q4eK0Sl-ek1r^hW{Lx{eBye!DccCkfj zhD?Dx=|qI2`@y~Qh>e`tild!U^}eMuV1rR%#9+n-qW_0@w>^*3Fq36p_RlWwTIziB zm8Mu@P1{?Y5|}6Jbx9;thu6@0-#lCrBnA?n=5=-8F(vZfb&(c^sv+i68!xX3d1~wN zUL(YKKOc0rZ>7C!s1{hz6Tp-KZp*t&TsNKg*s)WP+GT`vyqZc zY|_Q03tc!v6K}Sn_|Gk=lnXCF;Z~Aa(}BG%nHTHWcb!$5+X+U+)2p;XQ@=T2aD+y?uisgSAx5`?_#6 zHOE5c?Kwk5%T64g@d#T{2b_Tv1sR@dDW8cb9N{5-ko0RDdan2`fIg6OuRVJE#2J|4TL8& z|8)U-S3spo`}1A6JtygRC2||OSaFj(68-IZ#B8qoDtTqFKa_^m?EvHQwo<{X?(Eg| z?d$`^@tQ^i$Y=vbc1jsnC7F)`W-;myRb`aRgb*LUjjn41I$?-^htYD!aHT*&!^mVq zVg|K5xi*-lEeL%5&oDJ1b`L|h-mLtzRu}AMroG<)Zt~0A0C>S&C=&UymPFeH=fV%j zV20DwvfS$0A{|mO8y|YagjXI@%xU=3#q#5#gz>kp8r)oG=@K>dVX=>4XT4sUB+{Hn z@muIteoz{z%9{_Mx#J|_QkJ#tW@on_OZAae!5c!D1?Xv}_t=epy6B35-eNKoW_q(z zHyrJpQE$EZ2Qm{MMlKpprchdImZOZi_E&2_xK-u>&}F^Zs?a$+v}qsyHy`1BJk2lU>9bX7b?xG_~}ARfQe4Mxcwnw-NO`# zdJDIA!kyDo1-6x-NIl`og8rTd=fW76zw;^FeJ$S@1rk=qW7IU&6$P zU>H>*rh0UWWBw7(YD6wBn888h)`GywsKgfx9`uhXSFV2>te)&$WK0yQHyHRjN^!1W z0B=LhW6WyN_(GadvT_c0P)brNl`JJdM2QCp+Ic@W*w@bJyN7EMjTWuzFnr%a)>XXz zxSa=^t)++rSyqy~z&%`?eGgz4Y0Dy=PYXe-f~fqsPg zG7J8D9xS^sB5#BZAg7rV0}`2km@K?%F!MCAx=~7;yN2bmIcl5cOjx{w0H_H-I#LT^ z?3;qvK{@I_v&-IdBpcMEq$enhg{K?AN1k2> z&Fz`=3?5e$wv!Pu6Pd@C5l6(Lek-}@XV^HH;)q`(uPq{8Rdl8QXE3+eEAsNv9pUA#Ex3Q!sR045F0kHX5#J0hfXT0L3LCF?RgUqi#YS6E8XB-m5aZz@d5NPp_?tnf%bEiQf@xb>FrPqNyoI4M(-O zP!D=u31gKV{wI@gHF~RVqalL1nY;3@@BkyJ5wNyV-tYDx0|DbmB%^xSm`&{8SP=VH z4`~_-jCt`@RYmVc{tBq&E$-EhV{n9mGC{EPPDVuUK+W<}hObH@ktV)ebz(w$PEh75 zPcz4~D8VpZZHC`kV`{WrE=EPsu?|kWuii?TNnWS2aj3P-T+fWq`B93lNZ@A?P3MA8 z|Ke;4=II9ze0Y(5G^XZ}IxrNJntV#ej~LT&-nqVA1w(4g$16LNyPzE(8{_D;4dI!X zLe5Mq`pMfq6_#A@OCDxH7eIF9a8qM?Y6(XXUZ1R4S%py3q#Z{CD6_ zO$axEp2t|A{+rJCx)u;%W1WqXQ!TZjz(NOfFZESBYH-gU7Kg`rQeba@L3Df$ahUUm zN*mW&dV#TJh)In369Zyx8nQB6w0)uW9Dm|$Y90l|c~YShogRe+-h0-uC9J9900!(b z37~o?Rg!6u9hZa43cU)54DBFA#W;w<67NCPjV*r1pAf(;yP!9fj~0vATN*j3BM=~c zHJzIdp^EN2hxBqvTPB7<1nQfsovlf}yFimtXj$OpFhrZ)01OKx#aMDHVcYI`k}By@ zmh`~lVZF*^ex>x^EnmIGV;iK$YIUk~iOc$PusfT-xW}x=eqrgx{%EU_KNGf!=2&?!Qiuzyvyi%_=m*zHy8LO*F84+=yGNO^mScIp~-5>El1kQi% z@HIOn@<99=5xS51zp?4Zg+q_U=ijSz;nhpOF$$iL8@t(pMbs1R34BcLaf|a9Hh)^fM1@?_#j;ghUHZ&Rtn*er;J7_Zcw5>KlVNG83-HIDJd& zhaUb7c$oxK8oj(^opnjA`a2lt100sypt>_9L=`mNw%vz2tC{gcgX+EkxhERx3U@6( zfVKezTh4A#Rhf|9f5*qN9-vQ4DO5Cz-MxD)6qIMd7@C)QbPD*^u1&0H;vjD6j4{!H zu@lVUssctQXTH0Y^OL z(|B%F7@$GDJR^c{jq}LmYH;1hJ3e8- zClQTlW$!;Rvx@BpJ{VP=D~hJf(R_( z)P1#PGS)?AJ-s3{nN4xhRbY+5vdUZ`A`d^+I$rcDOvr_Lm}1g0iplY@lkT^QyfRL@ zUZ_tLT`!;nbuYC^2KxiooAhp<$p+o%9bkfsw4n!v&z8M-R<1QLdP}^KKfiJtVt(%q z;t=UPbz$|%WwHI?hn=)$J$CD+fxpdkD?w+Xigv@OPka94iqkD89=vB`HggKiGWn!J zU_PzozwAoAd96+hHoPMX1n#dL;v@lxpYWb@;X%*@JscRfQKe`?MI3ZRvrsN)VSls3 zEwt!ImP8*!Q# zSTWM8j0#)+0k+t#2|qTp)xx+zbZw`JX#zim~VpY5d&!&lkI0kkwLSA9k~reY#&LK2$lsz ze4FGOa5(RfkXHVryY2;>c;{B^vYMM0lqqE+xa{iDhqZ!;S!y$kh zRS)?A)USZNyqrRXC6V%@pRg4td!2fD7%RNJUjG}{JQ_^mRrp@k?8nxvvy%M~jyvqm zGTdui-c<%o1K;rxpuh}li@ETOb87s1%=|quwaO%JQ$9S{ylbw5x|4jm7-P%4&wT)k zXKa)L-L+r_QLE#xj!1LDG;c2BZ-sJU7Qu%MUuS6>x8_`w)VB)d({KcH2c6qnwdf(H zVdC9s-#8$xw3Q#M}tR?lE~dLZM$%l4K}Ur~*_zPHkhQ2sLJ@u}^o8vP{}!@K_c? zOs>~{3f8OJlT#h>EIX++5@CWDM4}Q(s7Kj|Y4U9L{h*Vo28pa<8KqS}<}GgrvI8bg z^3vA}sg(q~Fcx5byc7DbgnU$qGq{zK4s+EMDQUO( zYk}Mq33t%s#sLg)TZEug%3=4kDU!0tINZ_&R0&k50_Kq%(Sjc@$_)AF^i(#XY%0m?{RMTkF|w&6$t`GXv5%~ZVfRd< zBy}oi2$FCazlLRohb5Ecb-MFzP{DZhnZ6r-sb-hd_tS0Ak_N?mqKCqa>DIR~pc z0APor)CM6qMUX1?5=g^G>u6q6>OfCgJG-**_$BzS+g~k`{aT~zd3dvm!KKzX=DAn> z!&MZQ-mK~O!0cd7&lV*RU3i7PSc(W0-eveGy$3ttnASPWz?dN`bE1xcV^)xOYN-fH z2Qco;rPoA0E;m%~^J1f{Z@+9~sUq_i3RZryfvy1O83U4~cGxet>7B2fIURL4T{?YK ziM%ZK{frUW^fd+Vq@4 LFPB5H@M*w{Nqy2kv93qPN}WZ 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

          }|Fr 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 Q`oSf4d%Nft+pG!yAN%&s*#H0l literal 0 HcmV?d00001 diff --git a/sqlite3.sln b/sqlite3.sln index bf99164..27a0a58 100644 --- a/sqlite3.sln +++ b/sqlite3.sln @@ -15,6 +15,8 @@ Global Debug (2.5)|x86 = Debug (2.5)|x86 Debug (2.7)|x64 = Debug (2.7)|x64 Debug (2.7)|x86 = Debug (2.7)|x86 + Debug (3.2)|x64 = Debug (3.2)|x64 + Debug (3.2)|x86 = Debug (3.2)|x86 Release (2.0)|x64 = Release (2.0)|x64 Release (2.0)|x86 = Release (2.0)|x86 Release (2.2)|x64 = Release (2.2)|x64 @@ -23,6 +25,8 @@ Global Release (2.5)|x86 = Release (2.5)|x86 Release (2.7)|x64 = Release (2.7)|x64 Release (2.7)|x86 = Release (2.7)|x86 + Release (3.2)|x64 = Release (3.2)|x64 + Release (3.2)|x86 = Release (3.2)|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {147DE3DD-7319-4C90-8757-6391722E9DBB}.Debug (2.0)|x64.ActiveCfg = Debug (2.0)|x64 @@ -41,6 +45,10 @@ Global {147DE3DD-7319-4C90-8757-6391722E9DBB}.Debug (2.7)|x64.Build.0 = Debug (2.7)|x64 {147DE3DD-7319-4C90-8757-6391722E9DBB}.Debug (2.7)|x86.ActiveCfg = Debug (2.7)|Win32 {147DE3DD-7319-4C90-8757-6391722E9DBB}.Debug (2.7)|x86.Build.0 = Debug (2.7)|Win32 + {147DE3DD-7319-4C90-8757-6391722E9DBB}.Debug (3.2)|x64.ActiveCfg = Debug (3.2)|x64 + {147DE3DD-7319-4C90-8757-6391722E9DBB}.Debug (3.2)|x64.Build.0 = Debug (3.2)|x64 + {147DE3DD-7319-4C90-8757-6391722E9DBB}.Debug (3.2)|x86.ActiveCfg = Debug (3.2)|Win32 + {147DE3DD-7319-4C90-8757-6391722E9DBB}.Debug (3.2)|x86.Build.0 = Debug (3.2)|Win32 {147DE3DD-7319-4C90-8757-6391722E9DBB}.Release (2.0)|x64.ActiveCfg = Release (2.0)|x64 {147DE3DD-7319-4C90-8757-6391722E9DBB}.Release (2.0)|x64.Build.0 = Release (2.0)|x64 {147DE3DD-7319-4C90-8757-6391722E9DBB}.Release (2.0)|x86.ActiveCfg = Release (2.0)|Win32 @@ -57,6 +65,10 @@ Global {147DE3DD-7319-4C90-8757-6391722E9DBB}.Release (2.7)|x64.Build.0 = Release (2.7)|x64 {147DE3DD-7319-4C90-8757-6391722E9DBB}.Release (2.7)|x86.ActiveCfg = Release (2.7)|Win32 {147DE3DD-7319-4C90-8757-6391722E9DBB}.Release (2.7)|x86.Build.0 = Release (2.7)|Win32 + {147DE3DD-7319-4C90-8757-6391722E9DBB}.Release (3.2)|x64.ActiveCfg = Release (3.2)|x64 + {147DE3DD-7319-4C90-8757-6391722E9DBB}.Release (3.2)|x64.Build.0 = Release (3.2)|x64 + {147DE3DD-7319-4C90-8757-6391722E9DBB}.Release (3.2)|x86.ActiveCfg = Release (3.2)|Win32 + {147DE3DD-7319-4C90-8757-6391722E9DBB}.Release (3.2)|x86.Build.0 = Release (3.2)|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/sqlite3.vcxproj b/sqlite3.vcxproj index aeb58c8..88f4020 100644 --- a/sqlite3.vcxproj +++ b/sqlite3.vcxproj @@ -33,6 +33,14 @@ Debug (2.7) x64 + + Debug (3.2) + Win32 + + + Debug (3.2) + x64 + Release (2.2) Win32 @@ -65,6 +73,14 @@ Release (2.7) x64 + + Release (3.2) + Win32 + + + Release (3.2) + x64 + 16.0 @@ -107,36 +123,66 @@ false Unicode + v143 DynamicLibrary false Unicode + + + v143 + DynamicLibrary + false + Unicode + + v143 + v143 + + + v143 + + v143 true Unicode DynamicLibrary + v143 true Unicode DynamicLibrary + + + v143 + true + Unicode + DynamicLibrary + + v143 + v143 + + + v143 + + v143 DynamicLibrary @@ -226,6 +272,12 @@ $(SolutionDir)\$(Configuration)\$(Platform)\ $(Configuration)\$(Platform)\ + + .so + sqlite3_32 + $(SolutionDir)\$(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ + .so false @@ -240,6 +292,13 @@ $(SolutionDir)\$(Configuration)\$(Platform)\ $(Configuration)\$(Platform)\ + + .so + false + sqlite3_32 + $(SolutionDir)\$(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ + .so sqlite3_20 @@ -372,6 +431,7 @@ .\RubyExtension.def + $(SolutionDir)ThirdParty\include\ruby\2.7\win32_x64;$(SolutionDir)ThirdParty\include\ruby\2.7\win32_x64\x64-mswin64_100;%(AdditionalIncludeDirectories) @@ -383,6 +443,19 @@ .\RubyExtension.def + + + + $(SolutionDir)ThirdParty\include\ruby\3.2\win32_x64;$(SolutionDir)ThirdParty\include\ruby\3.2\win32_x64\x64-mswin64_100;%(AdditionalIncludeDirectories) + Level3 + + + $(SolutionDir)ThirdParty\lib\win32 + x64-ucrt-ruby320.lib;%(AdditionalDependencies) + .\RubyExtension.def + + + $(SolutionDir)ThirdParty\include\ruby\2.5\win32_x64;$(SolutionDir)ThirdParty\include\ruby\2.5\win32_x64\x64-mswin64_100;%(AdditionalIncludeDirectories) @@ -396,6 +469,7 @@ true + $(SolutionDir)src\SQLiteCpp;$(SolutionDir)ThirdParty\include\ruby\2.7\win32_x64;$(SolutionDir)ThirdParty\include\ruby\2.7\win32_x64\x64-mswin64_100;%(AdditionalIncludeDirectories) @@ -409,6 +483,21 @@ true + + + + $(SolutionDir)src\SQLiteCpp;$(SolutionDir)ThirdParty\include\ruby\3.2\win32_x64;$(SolutionDir)ThirdParty\include\ruby\3.2\win32_x64\x64-mswin64_100;%(AdditionalIncludeDirectories) + Level3 + + + $(SolutionDir)ThirdParty\lib\win32 + x64-ucrt-ruby320.lib;%(AdditionalDependencies) + .\RubyExtension.def + true + true + + + $(SolutionDir)ThirdParty\include\ruby\2.0\win32_x64;$(SolutionDir)ThirdParty\include\ruby\2.0\win32_x64\x64-mswin64_100;%(AdditionalIncludeDirectories) diff --git a/sqlite3_exports.txt b/sqlite3_exports.txt index ac0c154..de0c456 100644 --- a/sqlite3_exports.txt +++ b/sqlite3_exports.txt @@ -3,3 +3,4 @@ _Init_sqlite3_20 _Init_sqlite3_22 _Init_sqlite3_25 _Init_sqlite3_27 +_Init_sqlite3_32 diff --git a/src/SQLiteCpp/Backup.cpp b/src/SQLiteCpp/Backup.cpp index 842bdf6..22cb4f9 100644 --- a/src/SQLiteCpp/Backup.cpp +++ b/src/SQLiteCpp/Backup.cpp @@ -9,11 +9,11 @@ * Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt * or copy at http://opensource.org/licenses/MIT) */ -#include +#include "Backup.h" -#include +#include "Exception.h" -#include +#include "sqlite3.h" namespace SQLite { diff --git a/src/SQLiteCpp/Backup.h b/src/SQLiteCpp/Backup.h index bec1934..143eecd 100644 --- a/src/SQLiteCpp/Backup.h +++ b/src/SQLiteCpp/Backup.h @@ -11,7 +11,7 @@ */ #pragma once -#include +#include "Database.h" #include #include diff --git a/src/SQLiteCpp/Column.cpp b/src/SQLiteCpp/Column.cpp index 6af2d9c..e68798f 100644 --- a/src/SQLiteCpp/Column.cpp +++ b/src/SQLiteCpp/Column.cpp @@ -8,9 +8,9 @@ * Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt * or copy at http://opensource.org/licenses/MIT) */ -#include +#include "Column.h" -#include +#include "sqlite3.h" #include diff --git a/src/SQLiteCpp/Column.h b/src/SQLiteCpp/Column.h index 11975dc..54f8024 100644 --- a/src/SQLiteCpp/Column.h +++ b/src/SQLiteCpp/Column.h @@ -10,8 +10,8 @@ */ #pragma once -#include -#include +#include "Statement.h" +#include "Exception.h" #include #include diff --git a/src/SQLiteCpp/Database.cpp b/src/SQLiteCpp/Database.cpp index f78f6a3..ae6d0cc 100644 --- a/src/SQLiteCpp/Database.cpp +++ b/src/SQLiteCpp/Database.cpp @@ -8,14 +8,12 @@ * Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt * or copy at http://opensource.org/licenses/MIT) */ -#include - -#include -#include -#include -#include - -#include +#include "Database.h" +#include "Assertion.h" +#include "Backup.h" +#include "Exception.h" +#include "Statement.h" +#include "sqlite3.h" #include #include diff --git a/src/SQLiteCpp/Database.h b/src/SQLiteCpp/Database.h index f568ca5..17d5498 100644 --- a/src/SQLiteCpp/Database.h +++ b/src/SQLiteCpp/Database.h @@ -10,7 +10,7 @@ */ #pragma once -#include +#include "Column.h" // c++17: MinGW GCC version > 8 // c++17: Visual Studio 2017 version 15.7 diff --git a/src/SQLiteCpp/Exception.cpp b/src/SQLiteCpp/Exception.cpp index c1956e0..16de63b 100644 --- a/src/SQLiteCpp/Exception.cpp +++ b/src/SQLiteCpp/Exception.cpp @@ -8,9 +8,9 @@ * Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt * or copy at http://opensource.org/licenses/MIT) */ -#include +#include "Exception.h" -#include +#include "sqlite3.h" namespace SQLite diff --git a/src/SQLiteCpp/ExecuteMany.h b/src/SQLiteCpp/ExecuteMany.h index 937d1d5..1238614 100644 --- a/src/SQLiteCpp/ExecuteMany.h +++ b/src/SQLiteCpp/ExecuteMany.h @@ -13,8 +13,8 @@ #if (__cplusplus >= 201402L) || ( defined(_MSC_VER) && (_MSC_VER >= 1900) ) // c++14: Visual Studio 2015 -#include -#include +#include "Statement.h" +#include "VariadicBind.h" /// @cond #include diff --git a/src/SQLiteCpp/SQLiteCpp.h b/src/SQLiteCpp/SQLiteCpp.h index e826da0..5ee6632 100644 --- a/src/SQLiteCpp/SQLiteCpp.h +++ b/src/SQLiteCpp/SQLiteCpp.h @@ -18,12 +18,12 @@ // Include useful headers of SQLiteC++ -#include -#include -#include -#include -#include -#include +#include "Assertion.h" +#include "Exception.h" +#include "Database.h" +#include "Statement.h" +#include "Column.h" +#include "Transaction.h" /** diff --git a/src/SQLiteCpp/Savepoint.cpp b/src/SQLiteCpp/Savepoint.cpp index 320cf86..0f471bd 100644 --- a/src/SQLiteCpp/Savepoint.cpp +++ b/src/SQLiteCpp/Savepoint.cpp @@ -11,10 +11,10 @@ * copy at http://opensource.org/licenses/MIT) */ -#include -#include -#include -#include +#include "Assertion.h" +#include "Database.h" +#include "Savepoint.h" +#include "Statement.h" namespace SQLite { diff --git a/src/SQLiteCpp/Savepoint.h b/src/SQLiteCpp/Savepoint.h index 29e53dc..e963222 100644 --- a/src/SQLiteCpp/Savepoint.h +++ b/src/SQLiteCpp/Savepoint.h @@ -12,7 +12,7 @@ */ #pragma once -#include +#include "Exception.h" namespace SQLite { diff --git a/src/SQLiteCpp/Statement.cpp b/src/SQLiteCpp/Statement.cpp index bde8204..b2c6dfd 100644 --- a/src/SQLiteCpp/Statement.cpp +++ b/src/SQLiteCpp/Statement.cpp @@ -8,14 +8,12 @@ * Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt * or copy at http://opensource.org/licenses/MIT) */ -#include - -#include -#include -#include -#include - -#include +#include "Statement.h" +#include "Database.h" +#include "Column.h" +#include "Assertion.h" +#include "Exception.h" +#include "sqlite3.h" namespace SQLite { diff --git a/src/SQLiteCpp/Statement.h b/src/SQLiteCpp/Statement.h index 7929e06..8d17e96 100644 --- a/src/SQLiteCpp/Statement.h +++ b/src/SQLiteCpp/Statement.h @@ -10,8 +10,8 @@ */ #pragma once -#include -#include // SQLITECPP_PURE_FUNC +#include "Exception.h" +#include "Utils.h" // SQLITECPP_PURE_FUNC #include #include diff --git a/src/SQLiteCpp/Transaction.cpp b/src/SQLiteCpp/Transaction.cpp index b49fecc..c2b7860 100644 --- a/src/SQLiteCpp/Transaction.cpp +++ b/src/SQLiteCpp/Transaction.cpp @@ -8,12 +8,10 @@ * Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt * or copy at http://opensource.org/licenses/MIT) */ -#include - -#include -#include - -#include +#include "Transaction.h" +#include "Database.h" +#include "Assertion.h" +#include "sqlite3.h" namespace SQLite { diff --git a/src/SQLiteCpp/Transaction.h b/src/SQLiteCpp/Transaction.h index b9eb842..f4933ec 100644 --- a/src/SQLiteCpp/Transaction.h +++ b/src/SQLiteCpp/Transaction.h @@ -10,7 +10,7 @@ */ #pragma once -#include +#include "Exception.h" namespace SQLite diff --git a/src/SQLiteCpp/VariadicBind.h b/src/SQLiteCpp/VariadicBind.h index 0c33b2a..edd90b8 100644 --- a/src/SQLiteCpp/VariadicBind.h +++ b/src/SQLiteCpp/VariadicBind.h @@ -12,7 +12,7 @@ */ #pragma once -#include +#include "Statement.h" #if (__cplusplus >= 201402L) || ( defined(_MSC_VER) && (_MSC_VER >= 1900) ) // c++14: Visual Studio 2015 #include diff --git a/src/rbsqlite3.cpp b/src/rbsqlite3.cpp index cc0be90..d028bfa 100644 --- a/src/rbsqlite3.cpp +++ b/src/rbsqlite3.cpp @@ -1,7 +1,7 @@ -#include "Database.h" +#include "SQLiteCpp/Database.h" #include "RubyUtils/RubyUtils.h" #include "ruby.h" -#include "sqlite3.h" +#include "SQLiteCpp/sqlite3.h" VALUE rbsqlite3_new(VALUE klass, VALUE pathValue) @@ -184,3 +184,9 @@ void Init_sqlite3_27() { Init_sqlite3(); } + +extern "C" +void Init_sqlite3_32() +{ + Init_sqlite3(); +}

          3B`lR0n4)XvK+ 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%0Dl06 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

        S!aeS3=xc*DP^Kc3BzT-}bf@Hp1GsYm@ ztDirPwu56#+-RIWWHTaOWS~3e5$vzp)0x%$Wjg9F*a_-lx*5WQn?^5@w3?OF|C41<&T z{#w1B+-Kq$wq)D%BS}|V>+m1le@ZkpnX@aae1y>>nPMRat4wRB_5;tsJr?46p}lin8?X9OD5IKR^|&O$TJZRR_g zdYEwvpJKp9Yo>NTq}{3!(WYi(u%&^|j>E9{F*x}SZK^Hq8=Ip&&*D+hRFw62fxWPP zYy8jg`%?IZqs6k+E#|!<^&?u%WV08q$cKNgqHWodMc<)Vci+o#pSBlOi=Xr=DgO$6 zTn}BT4s)BZm@|Fg`{vo;&pKdIz;EGNe`EJ5*c3i=?pqtM(Z5J+O#M&peK34z+C4em zV)$6e&VqHz9#mQRqHf}xM3^&iFAj|Etp8m6LG>Z|8i(FyayIW??0z$Oo7dO`v8&ym zXX&j!{fc(f&JOmvVbAs%|D=75+H-A$Isd0}+LMMu1x7Y!vYE5D#U2_pXPvl<270i3 zv@1>KC&#e9(rIdceV}$OV~y==-=TM`-XHHJb^s&geeVV1tI|2e@;K{I4bPQ6(Ruc- zyMN}jL+wRXwD)z^T>phP7oKc=6CvjF(xGqmJUnUdjxb(M_#h{ zHR!XSH?ba`QOdiww?h9$o})Ke-cgj4{wCR_d590smA=4yHOI7pwgdl~VKtHHaW2JeO> zuQoU^)ZiWRe=TuUJF6f6k-MV`%aZ+-tNbFS@gO{QVEAJ>kpDz82>$ z8QB%*4i4?PNI+^#dVsqmiL?+%Cl`)TD(VEt++uXU^&;Wd4q-=+Kx5A&J~Z7=nB---K8(9^}w zUR+=NtdYF~`X?UF^WOYC_*l1o)w9wK+n3t=3go*8-p`bGUbI29R*lZE3>uN_Uj`1J zV`5Zdm3KlHyLfY+x1CctSzb#?;C`n0(8x0G$EXA!i_`9C+S1;RP1oMhG>koyc+5s{ z*xAvY4H>#Na`a(fj2zqi0dsWv#hH{BA9Feby4I*I*;%8$xL#+RLdlbVu*aOK4$eos z4Opb6f_D+wWU23DvgVSK`2|x8K(`;>)-BcZvjI_6Gc=Cs{)6`=CTj<@7!{0`j>M*drco_eE$h-Hy)qGhtXI@lKI%mH48+*oj;;$TDe{{6v9pZ(V`nZoi49^SY zUpWsxskX!?#g8mMwP$5FGv;dAa5iPxio@(vjeVH0yZxxM59UYkm$jR5w0OwP*Zgtx zR6ZSt{@>8ixoK-HomVupp4h>y;H>u8++VfxD(1TYK0k^#+efkgmLFVuZ}A|#b-mT6 zBS%A};HnqERYyyo^ZVsbqXyoA+zzg}e6{lW;jAKu;=gLk>92-?)cFjzVX~WMON>S4#EA73%O5*v-(;OZ1P?1EK-|sFIq01j!#|p zc9?Sw+t?qQd$vY%7ZJ9{TyzR^=VOs~sC_(oKeF)*#w2~hoNp+%cRnH;!87!U>Cln% z>v`yrL$D*CkX5#YH1#9f^R4WM=8uRrl!b13dOmP=F%F__oqu@3@b0|iPk5ug`rK%0 zV}|n&Db6x5-YGLV|4>C4@U>;}`!iA(JZEuLY5Eqf{x4;9=Mi@5nxLIpdt-~k_UwbZ z3+#dWIZKi)_;uc~;lr=S`81?2gpZxwpt0-T%iL>^`BFb@K>b3;jGs!{oY3+i;w$yU zBYE(y0Y8Q}a3)rAqv`_W%<*%|ijVWI-Bz?}$gEq6zqI}GMCJBk@0NbRXZv(-%5ugH zEUv8%-8p3U+1`}a+1`}gPiDTg?Th+<-do$gr2iMawe3Q0O4}vgl&zN$i+`$xaRqH~ zhhJ?qbf@vP!o!>nq`N)DyXDW^LJX76?Q2~MD9@cUjgd18%{s~cK0s|iv!B(*Vsuc~ zMz0KQw4*Bsufn05jlQh&LFwxt9l-7PfV;6>w}OMR-Si${eWaSpJMev%-hPyy&iGnM zKan*{=RfehM)AFCv0I7ubcTKdc%pbw;YBrg!Cg)%?geO!@Yal>qh`Ic!abSf*FLqY z8;^5(uWS2a+V*1NSN4o#rZY%Ey+=4vjZIj6e1jMV$p*<-;c_?|Tz)CqwS`UHX)TYk!M&`bsdQN;dJ_NH0DTA+i<#&7J`akw7fqUvj1V1_fE$X{+iK#2 zhuZsNg`+ zoyeir0&#sqfxqJD1pfsKyp-aV-a+3{ywZ(kJO#;Df3>?7ePe>v18uz0k>#E7O41!N z$0~LDf2-)*#VE}tKFrF9&V2FnHt0cdezFBf-X{H^Xw3>|#8?SGK9++Q~neQiE} zTid;cEwu9if7n;yH`132lN)Da(?-5%Eu+}`q^pVlkJg?IIx%Kq0*h0GTsj(xHX3f$1z@dk!$339QfNJi`op)@OZ_ zH84C(yvC2GYK+XBl(=e8_xOYNk=c$G!pOt02S0*;SA(Zfbna@_)$wlaB?OBwyn7~i zSa5!{tQz?mj<7cxBDi8Br0x{)Tx75A%i03($3D}9U+hZDXS?FnkRNy}3{OnWNa2@k ztaw!K{^cc~p?@>}L&pB!7}-53aT?<{X(7&<=+2dRd7_*&#}l(lz!j|_a4lt>vUG(t0xT{c0Stguuy5&5W^R9&kvfaMg=gq!!n2MsEY^2m46?O4Kb`2#>Ia=VuEzB` z<7!{3^J%?U_uj03AMk+tnZL-{w1qk7TUqE^S;;N%XwhpJxl^35cHDY@j3wO9CY+L= zU4DTlh=&};yjDVsgZMuPS~N5WEgC-nw745wKDgA<-WKfJ?_=Yd$iCOL32*Dt<~I0a z1N2x5oo{_4t6>*369@NmGSZ}MRY>9>PW4B{UdZ9K!f7 z>+9{@M!$c9HU@*2gINogJ{$Xdo#qSN7avgk$&h3n{?a=3I&S>E8NbTB@aVqU-_eGn zy}r<%`g3hzd!6$t`S5OZWG}yj|A!Wy1I%Xv`?Fbt8LY)w(BPTa(d?NbgR3^4u`yCQ zIdNA}ci)|CRM@MMFATG1hhqMC;puZ!Kc72@7Gm!W-oyLSe;tJP<|R)(=QH$j-q(8{ z`Q^q*vKkPNp zUekQ^-tckAho9K{Xf(zFpS0KR$r><8aGXXRjd?UTm5u4sKO@+YPRSz%|1|@0x7J_jUT*K#abV-FE*M zPM$}7$#^5X{c)K7iJ|uBJBFOoJl??WQFXDG!jEIxThF}K_Aco%ufKv9QOT7|j^;)&F6e8s^H4{OZa1L4MepZ0K~ zDP%%3`kB)iuGDYVrhQSULHGaWpkrjRaXt!-Ww2X!=(XQ!lHDl7*>!)d_8ej7^atkD zg&!b~w_?>rQX&7dstWWz7osztPFy z{|7(t5}&Mh{NKLMx)#5s!DZ-HajZGuY6v2Y8>fv{3df`*R&?b;=C#UP0DM0uJ2j+_@AV` zLknlIUgxlGGg-g0S;ra3ma{mA-yvHXeci4`y4{|F?yzq5yNdlkhpVXrP)!MXYrp@pUx6zjaHi8{ z*@KgWl91HbF#tA{_hvp`{ZgnS*^i{;S9 zi}+&T5p#4#NauL!!J%Lo&o490^6kyK8^_Vy%6!HuE7v3a)doe!!@Kei7%$~*1&U2B1iPkq0e1mos=TB;8ZM7GFo4z)Phu{l( z(xh2i`5*SQ*UAsH!S|>B9vgx5$=^da?^3=sD}T9t54$k=P2lL@Ec^a^AFk^t^A+G~ zeL~#tNvvYdxD^jB7|yvs{N)RPYdDlMTmGT+_0?S3vn3m{;3?Uxc`xv$H+aLH-wV0l zVtvTGfuS|U##H0(OlcnM+wRBuXN!r=9&~iH>3a5v@=cE(YtN&$9!2aJ--5#`?lzh` z#+$Q-`K|))@S!>4sWH~@DejukZ|Qlv*@J|I+gt3}8q1C9+8lEpa zjw9zaX6^s#kuTN1BSwHXQ>r;%JTT-u0Panc%^g-?pdnk4)>kgHGblW5NakisMyQjemTFjC&!Lt?}(P3K|iA7xb8z> zY-fZlztwNGSAbrov6?X*)0O|;S|@zW%$1GS5HhY!h}0 z(N!UKicg4HF!~hzTuPtjo`{EzOI!+%lO3uM8-~hUptG&My!ve}@`rg3W4zLzHAeBo z9{|srShsf8L3~v7q!^1Q_&tzvZNhE7xB2te*+Z3WCEw&>&sfgy;5yj(4@+JEJfVsF z{e8WrHt3*~@$ZKYBo|lkCgIz=@JZ4iy2Ix4p?mtz-w%CE9^$P*rf*W*>mKuNu$O;P zUoSC{KlQ!NAE)jfex2W^!n=?6$Eq}9Bdnb>x6|e~NBSZ26rbDb>-)Mh0{U4#h*+SZ zzzY4x*gQ&!9}DIkgh%ZIcA7&yb=#N&_i}Bw;{ZmCxgK7rw3venFq>Pz-9SEU=lWw7 z53n%J-yTm+J23dE6%VeU9c&OGcVFXzIv~>B1WIwO@!@o(5AtRZxwn>osngV zSZOVt(k28c*v-7uaVxOS3b8CMtYacf2TDU#JUinV}J?3mbFF4=l z_qVT=jV}eyZtF{&UXHzQUTupncg28;N?&msR9@l9n?Z0j} zu*hsH9puY6D;v&+SI&TEo(1nb6COGpy$nBEw$;m=9W~XwyLLCQl0KBnzR~GJl6Q~Y z-Bl+F+I8<^eO2bX4CB2&Fy1Y+{~KcOGTC-NLiUKiyhy$q&pVWVo^QAIZ{!>>^nGGr z&0ixesB^tVp5?jYh_^TI)we`mADFl}&+J<|^-s=fewj4ECj#%N;P1Sp-QR(fzGiqd z`iSVQ0h%d5uP}Qva6>$*0Q~~uU!$}LyhZq_b#dcf%^2g*j`B;OXYtu*I6GXQmA4!^ zc{9dYTj?cwCu-nXsoDZ!{$9+=+m22;XNk!xOqRd2yS6y&jk}Aqw(OEop->*W3%CcK z$u@W*>B3K^o4I%iz2h;PKICBAY zc6EAJ(Ebqb@7qeshy_D#%GR+PKE8rG$`(-nGQkWw)EbVyJ$lb&p?=#>E1~NtPi``(dkDME^1NDJN4_XN5OG zYwoP@|0cSg6?XILHvc}I^WT-qJpX0j2l{HIV9+XDq^~&ip)~1xcE6BMOiwsD6ui)$ z!JR2iBA*ODV_oyf6CUZ#TVPW;4cG`K<5}+<_aWxZ ziJG_0X6|pVUBmn(pRNQK>wSHAEizR5jJ5F18<3qrf8>S0TyPQ0jStd)t7ty-vX}x&YlXHoYsv{F8yR@-> zT1|eU%%$Dzr=1r`9P84W{j?pWiDH))KEt-xIxaE9rJd)eHBU(txU~EIv}>j&2Dr4= zGZGPSF#^Bp=h8~2+O*cbi9RlkI;LDpI1zGb&$@C)Cq8*$FZaK(p1nL zPpcV{_}Hbb^wZ88k@%-eYjfpBCE8rtgph4-!1%-mE-mJ#op);DuP*IbKg~NM@duZ- z!=yDv8ok8ZE^R`V+G~u|lqBA8Y1jK{b!CayT-q8x4Vb>-(sui4C6g1)E^R`#Z7+I8 z;(3=AGifc6lHrMGTw05tR(D+DDVJ8#OLbc!jVC6abZOW4Y1d3hJnqt({j`$P{~z|w zJwB@HTKwnC5I8e=kc5Q51e^o~GXa%1LBUK=+Yq!G@Y-7+O|Vt-fa;)aL8J^=G!UvB z#ro5HJ(8pJASrMA7TP}>SbYf!XA!Ti2!pV^Z$LxQ07{yv}I{rxeY z*=L`1_G7KJ*IIk+wfD9k)Op!y@@;2v(E$5D$a}t!Gjaw0wQ07Gv7yr6PqQn8wnnbK zR)6mP?3Vz1J9YvOsGL+lkgZ+AQ|I@FHpyfFiuZ#xU^#X9eic;3cS z?62v(63c-LkF+B??>q6l9V6{|I??KNf5r1QPOz`gd6qw3 z$3*+zb>8JFZ)5Rw`Su*0_jo+7cBuV1oi{99zD14{+B0=tQ#{WYW}mC`UWw;*4ztU3 z-n0zo+uCvVnL2N6Ja1z;dndQ9pZLr73XZj>B9ArcwWSij!+na_?}K>0KG%uoc~p!1M-GSs~8DW3nx^Wp)SJQv2c@T_P*Hq-uvPG6j9Z`SGSGVPz}bW^7N zW73CNZ}`qR<$OOZ_9)N4r@W~@mGXwh9@elsGVS#`{YIw!kWOc0*$8|qQ1eg+x5FcS@vq3K4qZ2Ql~E(Xy2mK zHx0CJCjC3U|L2be@_j*Usebq018teNDO_Y^+lzF1TDJW)ot~F%U$4{O$+oZ4=_j)7 z`J`(p*XZ=y4WyYvbQ%|*ZC|6)3(vN{tkd5)+n%e_ZD-qGB>gV%o4zPG&5vEmvuek0 zv+d98w3TCDtkctS>}s99F30|yPJchgo~6^TXA8oUM%uNysna5U;?p!Xqa<)VCpo?G|bm~U}`kX8VBaTHO#|3FqdeU|8ihn z(lD>~z+9kV4mvQ;YM4QT5^X+L!;BfE+8pLt_3N`eFlT9)S_fu|hFRPLGhV~2bzmOV zbv@bx6Vfp44$KcU%xgU`MH=R?1M?pmrXVlT<^l~fHcz#At%jM^1Cym;zU;s>YnY`y zFlid*9tUQ*hWT+1%wf#~&p9xQG|cNgFz;v>BVV=WIt^2ppJ?-b4KvY!xkkfW*aNdi z!$cjJF9M@@_dD{O7yG?_|Ah1WvVPv{Jnz)cLk27O-{|K`=Xslcp65J2t)K64p111f zUpUXd)X#gJ=Y$-y3RL-<^!tg<^JDtCR-T8%Ht;NRQPNNUB;J>W@~$v;s_xqp&a=od z)mLPvz;6crw~Vi~FBX8qyx2TVt2dmw3iw{VA2CF|XT5bzF*0?HE@$Bo${7~R1Ww89 zI|XhCZ5bB3Rl__kFhgSffKl@1h79$M$gzc#H{@=S!_GH1lBZy5o%a1xx97j5jG?i2 z^z*?XwrUG9`yb?~x(5!8moqe0r|T{ms_Oom{_b4od5?a++GIx?@&?CN z=x?oIPI>6KsLmT3&qLQO)_Ir9-QoqYuj}U~=lN~;Rn--fbD5>Cg4mmy=U;K|BX7{( zV819HK~G+#^M(y~^3a#HIqVvxj-3Kbi#)eDWrz+?e#5_>ZGQ!NskBjU zHpUyyz+o4plc(zJ6kV7f8=zrIfZ^Gz-+xnhCqLFr zT?+mt2mS+H_vJzR0hu#nPrRq|7RK|iD-P(qwedXci#K%M#&{lf#_Kxoxp*G-#$R;a z-gq8%$DedwKcNrz#(_J9gNgE-AG=sTf7y9|k$zt7ygy$*KQ7NhVwL*&kUZzb&ehLf zE>`7-_49Y+S@s9@#K^e!7f=4l!2;Ee&J25*>=TLx?dd;`=k?2U@>+`RGM$H9S8#17 z+Y`w1=Y`8GOU`;4W&7%5W%cHvp9T%HqXl0{Xi4}EKWAfD#lB{%zM(95#2cx^A7hy7 zE|qoA@-$;yi9Dw@sb{C0!M3%i;R)gpW(mw*6`v|@mvAP@L1-{T)jzzhfGPv(L3`0Ly- z;%BNmWk!fH8<+8JoyXH*j9V9wyJ$scN_^s9=-=QH>kyiD=q?veKG|9P;W16Id8Y`qr|Bv_n5#${xTL z=vzhK((y0*i~Y@2^$(ZDc$aP&w!ClSz3RIK55Th__<3gkLqGLr7k$#o-d8l2u~z4*r;`GuKc2SzKrcB;Zc04Q-iES%q7h`b&iD* z|4-eAb3g0tRzL3P$TuSG_&yn5_|=a-_otSz=jLGytMdSZJJ{-k`}=e;S<1~`gocOj*w5W&Rde&~naDN4 zNhR-PjjWP&8C|Yh2i!CLaG(02Gkmx}`bL}Bcjbw_KJ9RU=mORWFBV-Q=~mibaU0fC!CHB0>9Nh@M)>x7LpIA3K)^o0UVu8rV~GBQA}1wuV#zK%z~1*aXqesl0~Qm^_=(SkXo(hEhUwhvl}UZ_JaIPD){m)5T@Yw*VP0^>mI zg;K2-c$d%%`aOCwC3~*D4TyH?GmlRtGTc-)RplzL0x$d;%Y`bJpT|#H3 z%5^skvTJq`a$R^$;ObmuyWvD8X*f3>^%;DXaXaGy=(N<6*YO(vB6m4Q23y043Hjw& zU3aUsY4U^YK@CeB7_lbl{MQqUUQWE*gNzR!>uwDmU-K+t3DPegGGVtjJvQ2B^Tkm-Zr)EM$_{TC`=Vycd}y@(9_|C3Gug z>{LZY*t4)nw!=ReykBQ}I*Q<*M))TKJkBakZ*HuA#CZ???tzPdDhmVX5EIR@Q&E#srj-lPrP}ayx-l+`y$>;>{2QJ ztbZ%GFtLBB<%D@}@xF@x(e$@5a<*NMT^J@FQsOrniCf5!GO!0~h8vNSsjHqi&~no} z@DwzgDg1K8h=`4m34ckQ`?04xuzyb`eOmpEclehXc4L${Xm4gLoVIksjLat=sZA^2 zaAoH5M^;nLT;xr;nW@f?EcY#WTlja(SC`!3H#3?Wjg0267@5tMnc2L-%-C+M2p?`+ zVI1C2Y&`aW`YxkG^pwQHL}{n&Ij-ejVsRSz&d+yJuVrM+nu$EAM?XX7hye zdhX`Ppulm+GY7^k&qUU+{~}fdKAka=#TaQRn?;-8iw=obO&uSjd6%KahuI2$RsFoO8u-6K@CqFjPb0(qj0K6W;eWQo#Yuh@=_=-*9;~1GGb$pd+SWUl6#GDxhJ?5xhG>^(HPstkGx9H zUNbwrbIXEsBi%obI^TTj_S{S()1O8DTgaM=$lGFOHD-El4>T6nRxicoXg0qUs9_El zQgYE{Mn3YXNnNN+WN;DxCH$9Sw>y2zvga|sc@8|T zBz|Zm_!}d8Zk7Caq--DZ37LOj8D(qQhM1QNj%LbO-Wp2CMd_dD0;zW{<6G_$SO;#U zE!f(Zroy_*+s7GWsqf4AcBXs_T~go4{HYW@?6k8%$+`MIVCieu`N-&%!^3x+@5tyK zA0?w_fg^2eWg@3906*Yg@!%uWeSy%tIHP%W{f4qJyt@EeZ;8KO&HD}Tp!0ry**bVo z=qo(9g+3KArjdQQ**uF36rK}2olkl-eHFR7a=4Kzaie3%I}Q1{Ari1RAU{`|nX`aZ zytoctyz+q=iWeo`>H;&p`A4+t^ecu;*yqiPeFa{8)yz=5xPkUH(kE%7@S=a=+T2pp zpPv5PwYj6s^z@8_Yjek#8R@5Og@0EVkw=)HgqEShuOPN`*~&o8RYs&i{)cBTh%$y| zF3Fx#51);ueKo@!KAXA3np0mlx=iY+=hr~G0Y1xszvh9X?Zn13gPVEqS32WU={NGr z;V+3Xckmrhwyp42C3emba3Fn?I!yL{%GtVtD;Y-?{vyGl`@6mPi_*zk3QQ$1vX8QX zIve2?3!BcWZ&d!LI{6-4mv1fU*vnWeVSXH}=s(WL=MHJn*)IA0H*EaBVq0*xM~t&E z))Ze?YS;SJ87;F%p4C5*HlN^Y%-^Td4Ga60|Ipcs8q|D&=u>G$c( z&0gib_!Bnp{&{%DdHz$Nnd1aqX%;{c;!Kco_HRf*kESO+5%6A zEq5yKNsqe#m<{xA3p}zs&Ldgi@eCuYxf34AhDY{#vtv8pk)S72@yJ{7$n(&xJI*6P z(KuW>mi!8|(QFJ0vIl{k6I2GLE(y)k_&a&Ew!F^uPnu8#L1!g})7O zBQny@Sd;J58EZAbHUOJ`lk@#ja4B`9zY>3@4$f}8IDHv@6Uu8LT|_yIy-Ie)=*){*Q*7aLh(AkQ_-?RVc4zGH8eu@isHflBzR3BQMu$$y)K zolsZSgxz0NaY}P&W?k98qvwJXjEDuUeIG1+X)63T^`(h+sBvFeJ@=R?yiJ{ChlYpm zxCGd3e2f37YF{CGi1UzT&(m^GL30tYlt!CR`Kl#0_$lUk*yxkm8@^s9b4Xd^7rR^T zP1UiCaz4_bnhIjPpI(3Aw621Z0YjP%c(}Lsf?u&C%FDnTbq0^%U*UhBi7$8VFuUXn zbxF2YXqr*Yy|^s9yOCEqLlF5VjO=PjR|zGTRp4D@jZdOE|*@C$$c13hh-SxQd_ z(a(GFr>;gn!?*B5Q(!6jdGDa60C%1?SUKwg*+~r+7^G59p z$5*h!cwG4kHWnA1VSo6D%WqSC=D)&kv(c*d9Mf-e8?rHVO=BYZ#q9%g`?G%B3;cM- zN9x>I_@f@0xcxKxz@hTbz$YR2BLshx!yjJw<9K{DKbdm;J{pbp-KRS14hq+-r{kB| zSR5W_e-B)1e?4>rPq~i29^O>*6xuF)C-LCgAK%J5Kf0m@eiL00lJ_oueZ9Po`|HJC zk@uDkH%d_5#KL|-+toG=X-;)rEM+XP})|XYh3&s-~S4@NBI9m3Vf6@6g=yJ0$(}M zxcHWoz6f6nPJQ${gZ&^6r<9@IOP%pD>M3IkaQLB;+FZ*$>QYWUeLSD{_oloL$Lqlc zySO2>4bmUJ-N#u)tNC^n-_GM7dM4H3E(2pXi6#msQa`@P=lFIJ-#)_s*Hg;a&0J_X zwt?Iq?#6in5AfI+&R48=zo*>Y(ni4pHj1?MwSCYSI4S21>bb%V4_p!boWbwBlziRJ zZIrW`?=R&2JpM08fs^m09Z!S(M@AIr7xo*BZ!1gBUa9 z@S5W2B)dJ9uxmD2IRpMRc1_N}W7;+UUUsy+`B3HcuJ@Mo0)H5p<(9uXR>KFK>X>UF zpEibaf}hHI)Z$6UZ|f*p(2m~XEsDg(B<@bpqGgJG6|^W3Ujs5UY<5l#F7ZZ8_^IwI zx5>G0i^A}Sde5A^ByQ_7kHP*wMfDRHwSJlklj5%+4*z7%1aa=t>YB{_2|L)AW>zbk z?<)9?I^nN@wT5v--dW6N>zGSQI(UH@X^Zo?Z$-~HCCIvzZ>kgD{Kkyz;hPfX6+z|| zA}ghjoUcDV$UEudUb!1><%}b>Ve{}_=7@EilP~=h9xsaj`!a{+mM`;0YJo4WU>yUw zP;Po7)O#`andX*n^+vu&df!QmGqa>2OqzG@eyBF-^0*^8H+Ti*(00MKv{AKV($?v< zMs&JLPbD2*Hch3cla4NT(iNoJZk`s^ZA`95;Y-(J#9@Mmy~^*ecw*7qRx1PhMKgQ@tf@L>?-BI`EK@<^TRY;Tr{K!4JKW7Wp>^ElA^={>zQ( z{+?R`Y37PRxhJq7o3uq*oejzR>uCR2%9UTXZxH?fscTIj(P#QwZuaXCoozAiEi%2c z;x;6E{o=BVy;t|Pp7?lCa$zU)W&9b(JzjQnVNG z`rw6IT7}+cK<{qGhMV4Jy6BA`Y~$*kQ#iM@X?7-b7h2=<+xR?v=|mokh1PE|rn;B( z(7N4w&y=^s-$FTS7G1mWI%u6^X8Om)Y5hX|wPoT@b<_GnXf0<|}j=$-h3Zr@pew4pO?}V;KBM=x3b9 zCu3V_8XvsSIm50+_PY>gtmNYEv+Urz{KXG5;1eF$ zv6?zG51j6c&VIok&D~)|bH`Vv zb{nc~{$t6A9ig1;6XPBB{An3+N?*L=g83RS zE*Syu4DFM5w2Vl|N0&|zAG_!T=3qM-DPtaZ(fsi__#&w=Bhcx33_73s2GeA z_*LuZ6nVa*ID4eshRkOV`Rt7o`;Y}L7*8racb4`^Pi(=>r_qKjE_p9LJz1;4Z@#07 zZ_|BxD>cgB6O{UhZ3>9kqa5hqN2f8i%hAIj){_%$Lq-SD z!{;!6_92@Lw;p~jj%)VW|MZ6klX-dP_&)p2_*`SKr$dd;+J5$WzE$*~PmXRr^F-*h zv3SSXN@fe4KGQp$l3?xuCVAX>`)uobpZ^u>C8pBP(XRHrO@Q{pe_jngO^60T%V7J8QLz^b_HP(Az2Bh-P zW2{l9#PDca-pxY^or(Mw9!l2vJv^lPK$(7IfFBt!20ed4zi95~@GqZ%p1%%xA3@H? z_5F^AvIlYJn~|5$_vm`j@84!DC-nP4Z{)6zso(#Ss^75{=A)}$-Al}?=y~QfMqJ+) zlV9hlo3b~q?`3`d)%C=sz;j|3w86KhqW^#RzUY6y|N36^|KH8ql>V3VJhaZajX6a<`P?A@*}A9%}R3YktrpUrvaJ9vg9DJhX9?9gWWsPU(w>Trgh) zCP@yB8`CEbY5kwDo#CIS;2+WLskXD8A1a+enc5bJ&lh$)PrpQOi+wM1wZHocbG2>% zDth|w+1j>u=5KD>zAsyT1oG%f*7K9*A@4diU^j6K!XwN}lr1Q8(7mQJFOjoDWnQuo zTTtdDkq^3+ypnl|#0qKJi@hQ95_Q%PZPs%OIcrGK`;j=kcW2mn&^sBg6Z^!g`j$O< zidT$*cG}0~m2uNfgjYI?#}aoHpJ&`VzE^pZ1k(YGt52O)b-zCQBy$U`C){&MZ6}KF z0N&_aO&OXuPDe&Q${Mrq2)b!U_V{Ubl5TPN55$f?5ceO5uDOairRbVb@j0dFnpFQm zb=-eYzRMHY1K&P|F3f=kWgLqf8wY*GZdqZDoeY0Wmi&=_!PhX1eIdXrFq(nnfS}gEa>GFBQFua_p54eJt6)9l@C=M(-Ut3E42bFM7LR zu04w01;?bfdtUH8`tFtsqVHTX0lF9T&>cQ_zBG44Z_zJ3N5~PIB2IV9TQ@~~ z3F0?$dR5a z{M)A^OxuZ zk^h|^OqtyN!L>?8bRY0U=3#GiKj4Y%mj6ATh@7)`JM@^{cSIBwd-RPv<(k670 z$e|bDhwbFQ0B>&NU+nW|_ zB;*Bq@D)Eq3+%4%_3*Jx3~% zvjI56U@ozM#chT5_h_r^A9ubR@vm5uq<;J{N&Cl>_7-$j9gzJuEoBe0-?^OllOp7Z zibusS;odt?MgL`AKn-iXoIR=5dY2MMQUrhcnV(6%pL|&_QF4}gtJpKJ-|L?x?>cxV z<$v7$0z!X_G926}AJY@TG~x?oFA}lJqVFZmqUQf|{@65Xs`{aeI= zW~x}`%-DQlnYYCEUaXGCyRV~OiFe;OYfY}t^rb(0{TdZ}+i~j}6|ei;$~CMfHlkpSfHSjOID)ErA|6)Hl(DB;)h}YJ*kUp|^NyRbC z8Wj5tIyb<_8`zWhrZ;oe7Wi1oo`DXR81hcyOC^qcKe+dQama*Y#gNw!6FURlTS*_w zp@poy*1-cI`q8BJNY*FLgYYrV_ENUHoqMtIgctThFV%Kv(@tBTRdn+=`k`CZU8@3B z&`oShhyP2}{-b@wlcttehwX?Fo73?vhyF{a6DvadI&P0YpXbEfc0dQwGwDkP%voC8 zFVc~QpYN{bKqK|2xNg2taozlD-;a!e`eVdp`!DLje-q!OuP~~G-ZC$K_Ulr=KV6<> z&xOVOT4KKCSL?xCd##~zSt&ZQWF|Cemv`u0r zXK}8`=tYfBFqR{n6OK(yY`xO4BUGGhDSJtD47ZH0nT)U080|{ww=0HvCb*EjBs!L; zCLSAUxni`1M|+90j_cOscHjK=9~==UmaC4RmIa!Q|Xfv-jGY@G;PQk;t9`>DseV#pl1 zud;^rOMO<_kX+03m2!6QR6l2hl%@@t;O7j9FlR_8UCcYJzeQKC;-_?VeE+AM8}XWy zbLhU=&CHe3PqEn7#T`PSaJt&l$NZBs7;M%8r#A5|G@V++ISq1mkCZEVUGNf;d8#Wv zHJ*H?==iiY&e~=l2mM_|AN9F8vrapVUyl8R$a?Ibp7R#c;^!@(XDeBg2vd*LnOe3k z=bo{LS@$tI7_;D|;trv!?3?g`>k?x5&FU#NCacL?6ld=Y{#N=&PiyG*A_%z7$cuy6k(`Qm$Vz9@qBE5Vl! z-VnYhg4Q9<(VQ%IW-kd9Gn`b*poFC;fMwQ_`oeY#%>gRvNQ5h;TJ>83C3O!+g{>Gg$G1Vh@U~q zg})}roiOmlq+`g9&4#Z{l^KnXAIoaHw1l-+{hUf0HCDNUaledJ&H;!~ekpi@_a~)} z-OHgBV|Ni_V`?ZfW&CEw>6PP*-@fY8<9GcTYW!};rs}ZLu;2Ju=dJvMj9rNvFIv-d zpWsG~PtIpk^e{%+V~#}+IX_8cqoxP=I*K09tn_2hLyu3PhtRwg{77BcXOsFGuLiz! z>4U}v@;f4^!?e=+Vf36}WbfnfFKcF=ld%h482|ZjO@%nwyHflJ#Or?2GuoVT@KYaaj!iwE${ahV;M1F9Q#Nb6A3ev;IaSSpMQ?u! zbL<_*HOB_O|B^Yj!sq{kbL{NVi8=PqNB1(v27muo=h)!=UpdFVmOlQE&9P~_oLTh$ z=h%sT)19FelRt8f&A#c*sn@elx@X^XXVvdNdf&8xedC^EfAzEzn`4`&ee5|lvgltn z$KFv@5lYOlSLS`}Irfea<$UBE8yS7n92>qpp*c1(LhY0OpPpmWPB}-@y(c?CtNz>_TZq__ofbH(`s8|=6&by&75rF?1H=4ugLRT#MR51m8?7VwZ?iSa4Mz&f2D;Ts`o@F`f@I@ zqHoa{`(hV;m7i~JPpm?T%*T{3x_A1j^`_dK#G2IGp`+=W3Uh8MeV66;xhBQDXY=W_ z;Z^*;5}VT7+O+a9QifiecIfTIC|m&TH_)FK=))QCsGN^-;i9iBe1Wy%Y}Sg`#Mg=+ z#TPE|%CAB@nYRn= zgP0iBpR-pG|2)p0)?DNX?xOB$iA#8k^K^t}FT`nC6%Ci+KaB5JIW8JTixcq$%le|B3+5$Y zlE&!Pk$uuo$D+Ao8J_~jG7dFg>X_`LF-w_x%u2k`8LS%&%x-)8_UzqncMjrSGxkDC z8RtRchoZynr2Pap_3UYp{Y$cspcvfCK7wmlSC)MQ6XNkl5(}6bfApDn{LxDpp6aE4 zW`9HROZQ#x8Mx}p_l4iz1I?cy?r42H?&z61Pjz=T;}ZHmQ~V5jAaWXHpV_b3JE7xI zWbeT!)_3IB+n$IgPWP7H_N{oLxm7;SZX6n&t;R9+ zWD(PvMNI33@ctU)<7322Uq!sMl=B&A|LeBXR9y4`;-crUMwyrP+0uO0_9ZU*8c%be z$#YlWhv0ocV!YiN&~18*&Mo!=A`*pmDdvJxd&7)QMH?Zudr( zkuUX3=x?Xgvm)?!=+rIos+8CLiYHP_-0Gc+u37jJvW7i1{dElmgPtJk? z>`jvMqTWTuY(d6sDt`ICO`fb(-$%xT`A*7~^+WmQ8sx{Rd?)%t_(#&W`UlNkM>%&Q zBQ#F5961O5A#&s(G5aqaxpuN@&kdePhVV7}w?sa5*AZ_k&({%e#lP$==w29)cOv#% z^16{h75u-Byp_FGuOrj;@GpHDz?p)wx9U`IC;a?6JS%&vkX0KE?kRx(HWs%`w5NSs z{@dDPhZG_I-Fi%XZ0?wRWn;8CcE|`|cbwWQ|E(!@!Hh`ezctpLzU`1ynda7IUhtC~ zm*4wdJSESlBcaoJ*^8%iSzG4++P!$kx|8iL_-fPJ8TL!uxg~e8t>t;`u43*Gk@LO= zao$&6Y;*bt>dsBMr$U}L@vOePQtk}ufqOIs?qLnrU+(wmfqN(g?g0(=v*hybPl3Bz z!;Mca&rX5+7SF05mt@+io%^Lfa!-TwCqK3#0Was7<;Rw3_^hE0eE$(i@QZl=ZSb<| zi*nD8bGM3ocYR7Z*Cw9jp7H!xqb`@bmGYVYZJK?Gt;!jt%NKkOj?Goy>GRbF$FAV{ z9_kx1pvZy0y2!qp=YP(S@8q5&DZd~#N0)!K^iT4oKLxQ1RC)3&{Vj;iRL|1xA?o?O z#Iplmk$86Cr>kedmjgdF@$A$)De>&Uk5kWbHnjtPTH@J(4<(+R`bP4s`tyE~t@?SH z^s9jH1%60uxPq7V7O3Z;Jl{+Ir~b4EIJsxZ$seTPcKb-wil9 zUcR(%Xe>>AC-{+ahQ>_&-EHyqT&Url_H_A$|9jf=F3*aN-z|3Na+|=*d#8VIDtN)4 z)Bk-uKhAxzYo86;%jie(f1hmc8V)~=AHa9=&EVK>VD>Nui_ew&ew@5N>b!6E^QQzzFHZ(S$=d*xYtnM|Fd)XYgYZRP}6QRS<*q0K| zPP=Oo&rbg?OFS1U_|NmK==`F_kCZz&R!#mZ;CV=m;90k0aBNoMd!f(Z*k=>ZQvTrB zIl8=`XucWA_qu%rv9lDs&`Ihkh)vP(3q=0*z>Q0RJB??>%lBm2@4?f%ej<18IXpc| zzuPT$VLExmIxkP|w{-G`>AY}HUIBTkJnqm^@_m%FSGO-OHjwu{?aGU#^UOHgu}j@K z+5?xC0%xk{9{qI0r^|8lT^G+vkDMfJ?tyzJ1@0{kSCtI6F9q&z8t!Y!aIdDo{ZYd` zm<;!F3fxW&r|uW+Y2Wq~xMwun`^n{PO@aHRh8rcg?ix_nh|Bdv6NdT^jDs$>rUi0@tkJva*xO+$F-FJ^i>Q1@224?v`Y@D^lRTpy7U&3^ykQ?m`Xsk7T%+DRAd$xDlh0+E<bDc?`pVMGTd7!a2*;hSMFWyY2V*c;Pz;^&m_bBF$L~- z8t%qqxSc6*ztM0%N``wT1@0*aZq25@B*XnO1#Yv38!UIR_VnY&DR7T!xT<8h))csh zG~9nC!>vn!yI;foJsIw<6gXSM1w_yEw68e@?p6&q>eM8-Whrn=G~6Z0a9>Y>yI#ZH zk_vt;=->{oIKtJrN9l;aHl8pvo8fM zO~YN84A(s%d7OX1Gj@CDTJF?D|F7Bf4Z)AtJz}He$KFx!J@d-9c-|y;VqbE$*e7e& zKA4Qp*Hg-WO~c=Kc2fWUlmhpA4fow-xR+AkUeIt)Cc|w@fqPoR{XH3O3;92hJ48KV zNA}oDn^V5ulz0|9Hm}dSD<2;4LBWy5TUw8J4ZD_e4vn_S_8h)d>F`whBAsqK%f3LT z!)M!7PI{x!X4s$A>9E&6SEt+3>S>2x?#-AO+sxeb&#&>o+F$yG3? z15-jQn#Emp7BO!j;?Y9+Ms7*|;0Yn_3Jj57!aZ}LJYwRA5uUXqcTQvGu<^u{sk_%Q zSf4uoyo?F+i0Sl`_H*}I1M#1ux#O;pm`@$IhOccZahSOw>XPz9+>0l7WmJ*w;EsY> z+>JLzV()xe6H2z$HZ1xsiU6qeXOg^Bxbpu zyWX0pvo6n=+J?VQ{CO_?)Av04o&E~{8;x**-Ko=UL+v+pIy_9_WMBUz+VSm4_Foe) z#R_KkQ7|Xle@wuPvR~2Zwi5egoeqz-U({*V7+%on@L2mfoo*X%Z`0}UB>UGo-8RL3 zN~gnT+HE@BHqHK}PIJ%Bk;PlrZ%%I84x`PqA9rAO7~y{QV>;c|-~N$KhkfeX7~itL zda4n}p(S*~|E%c8-jE>Yaqs1w&mtaroD*LuzEr`tzy#+TYE47vTw-{dtphb>w(YRN4}r(C6<*l@f*b_E$g+a4;7wB ziF}vV6mY}T(uX?MBcyGW^xx0^*jfCqW=~=!|F`j9PWxBq+!koe`4(sG8<8q=b)Z3b zm-Ro@cH(oTJ<<-7I;Fj%X-DHwgS|Ea=WFJSqwRthHCD)%{Wdf4&r4rMj|rCv?5q@6 z!J*Kp&btD?wy{XsR|2jC&$WCf*4i zGf2S{9tD$c4^F@gQ82kj!36Bg1k7;TuhVTodw@=dN2qVTz3^tctbx(L5Pg!nC+jOq z${b!~ZwY;$2~FzxPkpcPC49i$LpfEzl~#thpP*;2LM3_NQr%nB7fdqVPO<-xreqA` z>{Qj}U1`Wy+U7g;mf59@iRS-cZ`hLb!qLdS^Em_fG>PvI`3mcbGYYx)E8W`nnQCjF zx7vrC4IyWx?Q-{mlC8*D;U%}6^&#^_4o2fNt~*@$QYrNb@3b3DQ)UuVzW-Ovvx)7W zWwDn_VnAk5@63_uh0hL@b2xw<=PxX!9hJb86sH$jThF8Zj5#!G{7QHI$o5s#FLkbj zw=`c#|N4^cqvJBYo^NI%<4Y>S)vfp5JA385n-}<(wBA4K$d_IcJj{O}qi{pou<`Th zOVyDtzcfGlo3k@3HZG`Il6imCk*i+%4Q;L3kXcxD#H<$m;$PyKGdgn(_nU42=3!v2 zd1>Yn-~A!V3$X8~tzHLL6Bmm6ooAEN7&UIKTb zm!!R-qZoS=xQl1Xv%hMVy))^8M<07E!{EG$Is`{bj>)^n!qwKy!AX6rqD_MH$_KzL z?P{WrmD`LQ{}OY~Jo=fT`uT|J=X3P45?omHvx$CI!ka$YE&VEqe;-Qo2zC}eX>r6&*E%=I857gd$^PC zG{T0eYbbU7Kd(cO-4g32`ePq5NaQX&rR1)b^MV7#SIBF|OqrJJGG2n{m{MpsD{WOE zgJ)SIUdo=|TFR}z`I{oM7R^M4r}GooI&@+cuu?YTopZV3I+3!~9$)y>FKPC=l(O$d z*QMp$$JGm>cV(=UP<|b}E<7*1UYYCYLFtR+D>#=-ka}fLQxp4Q>+?7t+BWS~#4(L# z{lChW-W)cA%3iRz=R=)=e1!euj1gnfI<;p*%JpGyluzQWDD?II;BsWvwg9-E;@fIe zTYodTBgc%$w?^pP8)u-K4RGbie&i9jV1IOVkaDjCr@JXzzmswWw!GMg+)O-%MR`HW zI+^tDc>kpS;8f1^r`+Il&f%vFv2Et^e3Wg&K1#7`BnE^^L6u?}2T=1110^6ye& z3VPOnW7&saGgWL*@FU-_zdrRFKlwUO?5tYoBlT~E9x@)wslS-L=0eBPINnFUY2=J~ zn!WY^W<(mGLpXHajjPoEMK`wlxPO5DSJD5OY23Z;OWP@Sp`4{)(4GdytDikhRrH~R*;BsAH_}+B$D`ob=QAdX-O+%|aDOLp2J)@&h_X{@_jL4i2m5j5-gs$u zRo=S$inE*V6Z|&jH!Im8a>E3le_@|`4SN{Hz9u%2yCj`9w((AAb6HaVBL* zU2@J&19mNKad5-;zL6_u``8O4Je%4s+0QF@3_%mhRJMjnBX=z1Pol5zf$A@Onc)4n zZM*W^CRM()!QJNy_VXvocF9bUCrw^sqMS(}a;1VksXep3@Tc6#BXB|=&7UFUX$bxl z8kN#6YtLm1OQ4IAi{M4s%iu-EYl&%Ymp18fCbZZp<5Aj>=Fl!x-V2WET(-T$!*EV2 z_rsd8N@y2^b~6?2R^2DOQI)?ckS_G$9yXbK{DnENnu|a`6T0_?gL-IGPy3`Sp|=H% z>au%ilvF>mOk#ng%-+gs0{`-@;NSgSm>9DJ{4r>oY)g3TVP0)Bq$wLeDaGw3V zPPYxVx9fCxsKVhho>ZHy(0(!jbCSJ9r`w9`U+8rBWcBS6M}0fe{&51P#NMdWZJep0 z)8W(9x2;Egdxrh}1k8B*0iAA}Xn$9y!&B`0b((YW@6qY-H2W@{W)J2aP8wU$v~Snx zHm|)}r^Eg2l{(#K*|+F)INiQkr-^5Z>U22UUZT@&x%Q1Z9nQDEuG4J=_6<564%iW$ zZX0HQMW@3-yHTgxitRd`4xeIQrPFPr>??IT9I|V4x^1+5xlR*1{RN$F8*5*p)8PsB z9Gz~PWM8Dy;WGOIoo?g&1)UC0w?C`XZRPg4q@&_Tok7Tzv^^2*WRPk_!R%F z)A$tssMGiqU(soNiZAOle#94bI$UhOpwn$9+t2BAc$B?Or|}*BTBq?HKBd$64%>7Z z-{CKH8sFj1bQ<5`PjwpK;o~}u@9;65#&`H5oyK?gu#;B)!u2|hzwjZQ#$WiLPUA0J zr_=b0zN6FOEc;%aZp*g6t<#)sc&ARc<=bm?Iy}VwmQJ??>{U7)9&X>N)A)kEsnhs^ zmg#icDfTyXI((|VSf|@U_ClTJ&hfA6bld6n0-ffLziV}xIqy834o|l0b(%Tv)jG|b zSA45inmsa^@d&P_+gCU+iTUprfC*Yg7k0kVb=~K1=UBFJKx{?PS9AII7tIK9o{G}_ z7V`nwFJPTABgB~#je9bcfAYnfB#(CzN9*Ii68qT7Ha7d)8_GBfsIgIe_VPQg`BKR* zVNXf}cWL{_%m}duGA6dgT2(O zyToS4udm7+18g&8rnfhii9O%i3q0S?&RDWy_W9f)Gry3tp4h8#Tfo@y`~ffbDW*5d zSyP-dpWf*m*!ULZWoH?=Z=JX1(t+*QmaTsG8+U9pGnz9z;myzSZ?h+-o9jir*!auX z2VZUsZ2TVcne6`I&DmcQ*zD%F%$)73&4JCU*&m;A(seEbQ6ns5LE_!L-S=i^~o0Pxu$iKg|uiW6QgXru@(8&)Te3ZrA zXq&C}I_Tu!K>3!yf#lDGPIYyqWfpYWkKHF{HVK`?R%tMN&6U_)VlP2&HSey(E-k^2 zRwVoJ*_*F%EOn(ryK=q{V-IqsSx!3T``YWv-teY3t_DxSBaP>+zEtvOQExr<;!oV{ zud9a#0?;x&w$5aa0e1HqVy(k28j77NbP4h;eYZ#495;$kB=xgoV5+;B=)Gp;fMNh|2tmBG0F=q=|9JpcG3jFqYvMx_8rSRe2#NU@;wu@k3e`!t@EXwG)Mft zzO-QzN`_XIs`t!|gx3;vx_ryll74e6e8Sr2kf=A4dR^-@iEk;Z7XESkE^Sly($}T* zRrowieu!Tk@=D%|AIHZz;BuFi%!jNT&m5^o<|5MGlB)s}Qoqr6acvd3rf@*N&BECw zIaaA^qweS2p|eYdTBWJqt8eoA&GGpZ-m2wXm5{HpROq4JWu7$0N4?_vQhnd!&B6bn z)*>ZOopF=tnNTk{<2eN0WF9PaMd@3;tAEmm^==-ZUy28e(2mzD?nQcHsf~AUq&65}KsazgW{h4kxq_ zItX1fyr%sFz0qF2leP&>Oo#UFy85I$-yM_g)SpCm@RCY*@y`nF70=U#b`R@Qj7N*L z9BD(MU5q7#b3JY}|HwGjxD>wXV=PL&N&Ezy;-`$`;3s#P^jYIHX?*wA9>J^oTNiDe zaoxt66ZFNepy=!78`t=r3(YhSsBum??s1MkB7s9q=RK}(6pcj2>9H<&()5mxb$1z- z?9l_@d9hjAEsg*L@o-=gjb|*B4^y+3Z9Rmq2Na9OQoUYrH%(_n|nOC z`X=p2q9JgfR3;?Ru($R||K07OeYJ6ZT`K%+q|gwa)%@(1(Taxgz9||~ZW0Y$-zCv7 z{>@P|jMGJpSxrM%8A&vhGU!_p4W)iJ4PD>HeejN)q3?1o+ivu*#2Se29ou4(;3Rm2 zeVN#LLHs`t@Go^pUWKH=kwuwd_d3EdBS+m=xyKuk^R^Oe41DKvz55Hcj(#WS{yhn7 z6hD*52zi!oqwGD_GDFqRH8J|vn0v~qYZE$C~yjOBKUbfhiQnvVdD+l!8C(3hsf1c@Mll+5o zX>T$1wTvIZm-yMG{Gr%5lBe(s9CmSad4&;qk}@KJYs2g(t8(eQt=z6PQk$*=?~xS#rOMZ$?|r5+eu~9 zkAH=X(flBIsUto_Y|tk7S#-Zo=tI9s&{2}VKE6JZE4FDy+tgO`(Bz}+QTa~W1&q0H zoF_xZap)ar-P^ZGGE4eR9m$m2Zh_lYS^! zJH$wmwW;-Lc`I^D*Ljq@jmuECyiIL`F2|H|;`JX@4s8)0a+j0Zo+Q~V^Z-6dcGDKO z>`rY*()ZGi)b9l!@Qv_@=yf7n`yH<*_AcKY zl(SJeub@)SJ>lMYt83{?X8yYST0F+%Pu3Z0-{XB7={iri>u!FgS+Kp$V>Zvd%2>Oe zXN%`{kJY^1V{{43N|oo^-rnD8t|RZ;{EFy@*bUOo7q4;3j2`LUWRQPk@j2Wdr}q#4 zmy+>)pWAH4=F-lU{KWSo_nyD&?MENHvG?fDKWVGtr>Yqw*a5aY(gm zNTPqQfFIe9wURy_l0F*7rqXyDTWO=p>t{UP&Uan>OmpaV!)rF5Ouwa{7SEQ~>7&5x zQ+dAa)&Q%yojxDpC;8GA){?fz_+Q3v25pk_#x`(f!gr}>J$V{u^`vF}TJR<~JF@s( zaB~i{o54M&6|L`I^R&W`;H?W^$a|mvrMi3X$YM|Hk(&)$Xes>{dP2+X`>qdiCWNo! zH|P)t*E4{Z^8%bZQ#B9xpgHk&2a2J46ug`ZPFldnLFy2iT}3;KKJ0$n-B!yun&wtN zr|r>1`;+TSZSQ-~?I3iMd&%FW?b7ZNenG?PkTtm`@Ue}b^kFyp-u=849XywJ<-kI_ zi#_1=BHAf1lHbD5B2U`cM0=#|J$OxSmz(dU|NY|qe=pwuk(66Y|LZ8DRh0{!DObvq z`rLU^SGzk8oV1hI5{K3O*$Vx4^g_dT1P^~Tt~HFT4Th1)FN0q?KR-VoKa1Z0e*HHX z(SH2A{54M9atmbJ3=ZL&_HMFGe+5yJn!XH+4*sfci-dcOL_fQ40yQFz%87AN5 zwHg;iXa7O+f5h3wUdi{9Ke$!ke=GSvGrFS45(U4!pw$=~o&CJzKTG|l`km=Yhw!2ig}zd+!hOtaTf$2#h$ z{h5>hS%II?zX$$VC%;1AAMD=)zst!#i+pG{Tes)P;^h9Njv3((p<^^_mg>)FzSnJV z_j9DQ!`;sZt6ODU?Pjc4tZmlaW^{el0LStCxtx(6g>MBHgQcy#;38Yf>;)Hof$s$u z{RF-jTzvTDo;KHlhq^yIV?NB7_Ei`=>;DYhtCzM)TiyZoAY)JH+bLf*8FP)#CpO2r#Zvemk{L=XK|dtl6zYY%7}9D)H&&M5D{6Z=giOvB zM!!rNxBNbl-FsMPk^L}U##7VTA`|nQo6a`6cE#i@C$GYmV+yT>eFodr{>Gkk#FneeHHJO9AmsJ_q7^3qO%{A{7aQQe;htTCI;-fFFN1cFYg+(ER%0C zl`OkU^1tSmWdlD_mQ4bGy~#2;BPV*>d1~yB0Y;B~m7g_J<&Qcl-;otXWo zi;_m}h|GC`w3gMi&pTuNS@N8*j@(&}+*yv?S&rOUj@(&}+*yv?S&rOUj@(&}+*yv? zNsvS%nUsLX+t>{;2j?D+xh5t#ySZ#r4}8kb2eez}N z5dTMAR=8{J48xW@^j<;-+y!iu?~Ly5$L}C5wvd#Ap57#JTe{5VcwK^Y5M;GPWsTMSI{%TGm}^eY59Teb?kXo2#9F!Kq`J`#fJnWy? z^M}BR%o)48jn?jgM%UZ|bU6A!=Dc%+CILqt*I{c=S69$m(9trO`AHG6=DZhO8y#vq zev_x4eIxDp0C_jmD>xn+`!#YjNSwgKtZSEejph#W9 zSJKwN0Kq{Zwjz#$?cktN;UJKN0}uJBILPY*2QrR73J2n23b98_<6&Dy4<1;DP<=VM z4?N6G?;8)%6g*fdcxZ~_p@P_E!Gniq?A5%@N}ddjO#u%G@|fV|MoVN&AU2-7_sQ#G zuJZ?eOTEK7=E}U$J18+1&Hz8d;`7~Q1?%p+QWNR>rZ+hwAvQka^xP zV_38BWgWKQqDG^22>%~oR|)S5kD49b7mI%*4|_`T9@y7?@gUL`KN)AQBKO*`HSwG9 zGd2iLx5=F4=C*131~SJT#rx$qPfI)t{NU*H-#%}&wr3e#FOP7>?Mc)TpvlgQ{G`FY*lo5X)`eZ21h@)pJMT0r_nl@7%6 zNE@{E$l}j3)<46TKaa70E;8Vp*2CA%XhkL{pH*+Nq>1lRWrlq{X`8`rv)^!69hr)(LymcpVa( z9j9*xxV4aF4t<9t(O2Zzr$ygbVGn&P3y)3TihyzPzk?Pmjg>CjS3Vf*X-v!uxZxdT?_cxRHD< z-{vV?1!9|#%^!d(Bhz?%Gi&*0E)CyVKER0J@4fh31yd0F1u&u;^gGd&dp&_Te-$M0 zm)H!S7Jr?H{8&aiJ_!yL{-Be{4zU@Ezy<4~+Z?od@S)nB3l)^zrDE?wie>hiW|N8!vjNA37opKa7bV#_j8Oe8yT| zI5MRmHeGCRbcV>3y$PL>O!H4urc`D3jGMg!k3DYo!0(@g=2~ZL#SYUt<4f@|@D{pT z)@pQ23hyY%UL`2AQizpqzk9QnEape4_L7t9`{km-27JL-{FDA=F63zVp!}l7cQC< zE{6S&;)1>234e|C5q=8uU*M;}{z&*K#18#=+~&yy4`QzhUWO?>JS=9BcbL5U@lo8w zZ(n-2YpKWA@c_Px65=WJy8UW&q%ZEP5I&Rj`Mcvf<}!Fu`zw|(zKXM6H8rn^5~N zemlx&{p}@Y>+eQ*T3=bvKeYSit<&}vguBEpbo>|bXY`}^FGPQZz{N1i6kA^Atld|z zHiHjY_6*7M2Ruu?;>!>if%Un*k$izW0Nhtq-}7VtAl>a5)L~%r*Jk0{i2Jwql7BJt zVS)cA{tc~<|3bdDL0=`!z9nFW#r~T#HUa*PO6139kt3f$o}7nVIT!!NIj!C2IR1^^ z);bI$+@*Zns;s=&Hp;3+X4K*HR_m;^&9}_lSYt~$JZ~oi_%^x_ddRl#(n*FlNMk94Y}d2iNxsaCtcpph>Ql_qR&3|Czlkp-tV)B zv7vt|Hsj`1>P!r9`J&h>7Vmt(s(0R%>RtEE9&Gyl;CKMIMousGVbgnvS?PzY_Tn=T zIc>z&b2hV8E$funT{jQodTd8#S8~3A^`}x>VxI<^%UIhS9Gk%y(6)YiANK60Y3s)Z z_1OBA$kSulvlY3Y%$^lK6`Qs=yT{i5h8jbIV+R@kwF8aEMaMnCoVb8FaWH94oFDrq zFydp-??gwf_Y}nE0QpICfKPKy{48fnXrEdgzTIQtY%VhOlgUT(F-R`IG(R!oP_acky9}KH? zcjT^&b6dvwKGyDwt_mMvY#kZA$7n6cG`jMN@$=qVv0>kw@Mhn6#%8mE^_Ys~l+!j{ z% zb@4WjX(O-g2KY2)8f(IHXDB|+|Gm-b`@Pwk7lKcpdTQF9oBwN?xeOlNdSW~}oVFeh zpPlC7vkQ-t&vwT7tP|dnvuOXpzu;^A%~u>X4z}Vyck6Sl!>_;e6Y%A?lKJxcA|v8H zrvJ@+d5N1ZiMjtHa^S@I(v#rJhGE8z@X*ivU*XGJ;YBU~TIt8}$Un`ORdK$o{1|-s zn=hc3`-smLdnQ;e9Ui^ zUXr;5a=%^csd#Lw;dSC*rJh#m3FU;l{;0;R8M{Pu19s$z#d$k%!D2&}(EkGZZ&CK4 zQP%zb+ba&ehpuU-|3UiSMjw2|hRu3vSKb9isEGbZzeQHcH(h*FbOQZOi}zdl7;^Qy zo$@XHOut#L>MG*5UhqRb@6qq}tQm*?6z}(tM8A8F;qHD)d>CoWHTt8g2cWYpbT>Bf zVn4Cm9_DIJY`*lP^|o2`IX~8(RY9M99j4gs#7Zsmcx|~W*>?e;xj z+AFVSeXoCb!E=q}f=$-?ZmHOC<>0pI_2YpVXLOl9;)XM$)9)juYJ%98UaO;a zn{n~x<);0eC;QneN2J;NPBpqhcbfJ-VmaoVn=D2z>n#%)i_`o7V;&s!Lid7QL^ zvy_^}mWpD_m$J4yi*xtRUlhn)on}@q4H=PU_K4PoF1_)4^rvPMXYa}X5;J0MVGMp) zK6w^v&P!QymUUg}-y874EY_Q=SZ}Ujy?H#i8zroWszudoyRHt@z9n5|1YR`D2#M zWea27@LS6-`|eYiGdoVCPY?X`C2cKoJCukz7gJBmuXBqJis9S zr!clc+Wn~UxcHA)%j>#}IL2=i$GF8aSjF_+|8{ZfXq_vQw1;nN|Y0ZS9CMlQG5-x(66uitN<(v}~gaT&LB2L5%CIy8|w8}ZQLe%qZVvpK_cql69(PJk?G-*XZxg7erLxHDnt>~q0-!2-Z zZx=d!D@|7bsqC&vG?;V z{{NmTt$3t75&OZk#2v^|<-Ey(uQYbx|6%Nn@Q`iTZ6)M@5kHyHdD~MrCw^uc3IL*4x!arZV-!*v#kMiIiCjuWNC5-T6Gr)-!lr3%qR&eO}8m z@zu57_&Rvs{K(oREltG1;eR-8^&wkihab247Sca#;1%={+W2w2eZay|J)j1lHz{**p|GXWsNJ* zyDF|f$+!E9STm&^wZ~pV&RCT$#n0#8)W~_pXHRR%+eP`!lz$J;pC#Vs6KXR`>?$(z zlc$8f^vT&j+q&PHaj+AAm-_$sj3tZ5@;{H?UhqNf{N^@m)voJ^eFP^z$Ju*-tUo*c zRb=%u_17NMzX|1IRw=lV?gw(H;7Z~scF`n%B0CttB9neW=H zh6B96ePgKOL1JRe_hbAGzkqH9AHhs|!2VKb8Q5LJ_!@cE#r21r@$UbzzoCFS_CM-3 zd5re&V9!2%G3`gQ8si zrgOsGKHb6n{+QqXo-xWt{2s>GlAC4P*ZxLxZ;{`Y{=bL1ZdYBc#H@lt?!0RZ8k_8b zzu=p7$An!_-N-mC{WIr^`_VV-Ma`Q>+*>32PEGVu5euFH{jT8sCxE@mEu@_Oy*L(p9$&dLzFmy3iErjIzFmwDdyPH)R<5~c zeB!Hf8Q+69=1=}9^S_HR`gm5)*wn92z`u6UZir`}fN$-J+OdMd)p~y7vE~~7)rjtP z2pp@2f6d_e$0xw&C@(&D4P}?m=W9-)T&KU`S;}4W^5=fFz!`_zw(^!Xo?=}mT;24S zvPJ5L+Xs7Y(F3Wg*q4J2nsq2zOuj5+#UXgE=3-%lGm!b;wccuo?oXMsAU?$yQjDRS zetbBsOzj_2)!HZjDaMwfuPXDYv@)UpA$OX}Fvb*p{|kNl3w`&tRq%&Y^{_si2G0Nf z2z{VT=)aH92g(%u?g)LLjP=_LeON^O&m5r-lqq=n2z{W8^_wH~filToW#~f*_49m| zU^voTP{w-d2z{VT^2sCgfij){m8yQ+!H3hqhZHn`4QhCo+kTgW3j^=PXFPbI_rimL z_t1@SJsk(!_uYIiIVjwd+;`hqC2_463*`IfK0G|EFVrFsq@p<2a5TIU}C+D7j_kT!YVR zjCE1Lirbg5e~4UhC-Iw9qWF4bPAO;I^#2q8(wG0mxo^4M*AerbP-5QSY9&@U&#UbJ z4(y%Mmi3fr4|QnYXInWqhQ3nY{k~zog_aUuhx`!A$5MD6@#^bBRRhP5NTSiLYhba_XXA^T**&Sz?uHtg)F^ zX{@BY!)}}eTEXoX%_fU7K-k*N- zFj)yqT8oFmWG^uB;-lLi)h`|G#PQ(Yd#uvv)%dB|D;m4n>i^zLsk`OZluuLs$Zc1q zs_~WQ2CauDH{T8&-WlqMFwchW?j$Fv6`kCijU?5P$xUdc7< z;K8ZOSsy3_&rgG9(0iMSf9d5sIQqEM`z$hj__JQ;*_Yd`j$flA4&c&+`Ekvai%Wm@ z&dDk8A!tZtR{_sj?sfgl>3*EeJoEZ-zQaBC|5gJ>&zSYC zV!FJzqi;E5Wr$x$-)pa&>lZqo`(N_=g>SQ6=eNl9d&6-YGqP7Y!u@ZgrfZEud&7$O zk14*Jy`|rJF?BaFW@c}g{uTSJcf=z+9JqdATzwt({41sL*f{xPr*OVz73(&Ytlw0y zj`LyGb3R1u*as7=@0h(>`d0B&!|Hf$Ui^hj&u5m#dow-%$fEeOnVxT35Z9WM>UYQW z-p zkKaVTFwH~Qorg(h#!qG*!sr!ha~n2`kxlSS&4HJ1ehs;gpQ5zU@XIOfW8tHn+`ja zhJW)W>Yr89eHu31vUvo4FOBk5j}our|jlou@?;D7=jDc!lM{?FcJ<) z_bhlZWpL(tt~*~y8GJHzkuRhioGv{1jA6J(Qk5;We@m6BTwtti3zXBIDPMX-dC2Yy%E1=k)-D*To&eA92H#TTZm0!kE}>sLFSYBCe($A= zr>G~|n<{-3Jzx0vk4vmA2h19f&P<-xzL~nCJ-nyydVeVGz2@~f%GCbF?#o$RTU-kd zUSq9EeJIDrC3^ae=9}`OG0|ZG*Jm(B;YT6gg`P{5n(>B*kGG9}hW?Z?_|kLOZYx)P zJDgg0GIcbqB0e=O@0rVY#HX_G(XPQpE1Xa`FhAYc+p@{kmJ>#2438`C zfQL;AkHc2XV&1XsM0?KjReB!2&e&J`BGeP;s(Do3{RTbS&;_`-jkBE#m*_0@DeYPG zRrIDle_Zf@pXs^gFiBZ6z5;uE-m)Ljd%=FS(-yXzY0Ket>G8k|X@8`4KSW*8x9oXn zLr)H44@HL9LsQznOPN~c$cATSpXQ;>#AUef%mSWM+b;#4_>2c^%n1G3%h+t4-afNi z<8bFmI=#2AIE0PNmOSu2SFG`oaDnkXT=>nihvC8rg4I#r!s+zAcG^3@1^DyZz=bC> z;X=1>5Em{||82avtMEJa_`JCAG-clgE@W(XH+7AK3(v!Mgq!mmTo682K!d>j$--YO z8i2ct&ks{q!J9|MnZ1Xw1Cc>(j$cAJQ#oJ<4&sdJb?rbeZfs;NJ&Zj_ewU77VnfRC zSAgu-PcD~Fq%?dQ`WO1N))y7CGmW}j zUOJri#Y?BQUq+uhS)bQDX5ytiKrH~zI^w)+=H1zlR1@TR+_omaIp#%8IdGyQB zA$hkm(TnI%^r-RybmApxG*{0UT$(IE|B_F`OSAaT258bJeJ}&9tL{qrl8KKAPd;bC z$B4-~63yPtd=Q&3gpUQWKhkC2NPO&a@Z?Bse2zBK`9g07Ty)z==L=<{;NnQRcwa-- zzlyCVol7x_9pqMf8G7G}&R^!wGjXZf*HbvYyifXM#l_$RazT5|))0TBXV3Je?p6$Y z68qxUTx-ADBI0DG^D|?fa8X|ccB1rlty?MfyBojPxr|q`4chL<$HjSkR{ylCtc3JT zt$Dh1r8a&Z`{bYDx1OfyDPBtY-9V4lzTUGtnL_K;O4%v<2IGQCXX>| zOlmJS8@Yl!yNo#gXV`ZWJMFv#aw)F0@C}Y%F|Y)E3SPMfyD*GD?rChmGw82-?u>A? z`Ls|!=O@QEo`wyMzj4pF(9)-~t@s?3!=@|4hTAqmxnbXC^X&;%Tr$m^)xtXWHfU#9 zIocTZjBkfMJAwKp%O5(lkMgBUKaQR1>)4+){ZJut@+-69IgUJ0PP4`=tD%>FWI%T8 zG}~s#6f>O3AN#|__@v?KUf*kQjN^Otw0+sjshtO~A<}h5;c&nz@5n``54@+mBPLnL zclo~Ddg8XK!^7rkO8b4Z868JC{K)cu$gY%cqJZ-99UIvN9D>YMgtr|6~eOKzT~p}8X8{Ffi%bM)bR z9G)-5J15r&r@^~0dF(D>zq??1!)#yt5pbuE^KEDHy8_+#ihCDuPAdFox3wyAbKc}) zd`#vHkqB#;_?fKYs&#(wDEwvOts}mM3Vc@0$nvWC@Dex9+B;YFn#q**eT&em*e|KN z-+;GiuHbWqJ`}q@3w%9WIGi(Ua=y=w&q{wE^UPiN#FHoIJG?GaxxLgaKKU4Ri%-Tp za~Ga+%H({9*B$M*!|HS9F8z7>+-)PC>|>1UX2x6u9Z45)$EbLT3Z5C-b;hG-VV=qN z=k~J;-8IIulkt-ZZkg!mCc)R19RoaPdKwSN^j$sQS#G?zK$^``8vkt z`Z|j6eY^V&!t7C%tyBr^6pvjP-v}+ti-ea{1#>oquq(x1{}F({K24ve!S{b-m1Y`O zQ1igMBaQ2xaaL~g`-ty-kiF*kHN)RU7iKSD0Q?}vp`n;KgF0;R8m{YjR_xoD_X%jf z4!ibX&{`-zdpEx62tKPI@~iH1__z31Jmp#7ocjB7`rG=X?Q<#&qPKA^U)CP^f#k>K zKXxi|4|&&pomJh&x1Xh77XLl`WM39(z2H7um%5I3s`uZhH~EBJZw~cFxgM$BZ4LOx zscQ}2#!48k+B}mO=X>$r^ZcjaN8S4Jjw)>RD(>sC35tDVO9X>T?kj!Gd5xTDpz-r< z=|<|P2;1 zHgj(K#=l@Qf6CTxBUvN+AF+XK|KpuTzcTw@_F%Jsi%%BMba0XVFD@=#|KFD;J_8OK zIlx&&Hwb?;ue&niIBVY< z$g4Mj(e?NQ!%tnB&|YlO6}h%Ln&d;BUplPLDb!i;L#uR4vrQ-3cfH7$yXmvnjfu0) zvhN`KC~l(9>#}_D8OXsm_`S@zryG$~m7L4I5?<@qdwhntaEEj;U@jcZkg`^_`+C%5#o9?rg*wZtT^1s7|s^)-Blwi?%vSD5v) z3z`34mM@Hd$7h}NM5KPn=HSFlQFu{v4rc*TCcs{0Q|4O>NbW?X|oAz1YpbUovP3He=1_{SEW!e@%n0p%p$@!`gp0V~hcheAeux1DDb7 z8rIuGDhDjO`8V$wW0S5KQ$Ax9-IY?-yklKiaMim2*+Dk8^wxt`QC+B8kOVyxXG@Y5b zoM0pULiHDU^oyJMR`A$HK3nA>zJ#2lBwt>w^~(y{mTuF;*e)R_=|_1keV~H2Dp`vw zLnrCQw^mF}(v{>SttTg`beyohho4oDmvpLcQ(gNo@6kr@K%$5K%)*o_v#@x1g zS5}~YGq|F-&{lFS?OG2$kdJeuIzK?2t;hkr_ttrkF~G-{=2LHAtX;1~eMQc76S+4> zsddCjk-p92+k(4?e_O)7P<{Ibb3D?wIfBnuhJRb-eEZi?zI}56 z{Q1knzukC(-R}R4^6m3{8;uYD_OXffx4#_a+duMc>lZV8>$J-rkrBuHUwqqnM}}{m z@jg7tx1D^O+%){#DyLm|#)$3y8{b+Rhkx7dwELw|zP+Ds3u42+t%4V7e#P@gn%^(; zZRqyl-)?kp^)sVhe7ox{e?tYbU?g7g zakU?{d4{>-Rx6YT}$NXKFRww+- z)aj3|_VW5ke5XDpPWwY%F>*%sTlRu`^T_#P>^E1AdcTQHu~xO5Xf?dazQzk2dFmbG z1J0VuQ}m;N_4|KC4-|}ki0Adx? zqo01lD&3JaW78|Y@+Dp&M`8ChmeFI;nYV;KZk4_Yo$a~vygunad)L>PJOJ<=iRu8+HV_=o6Iv^H~}9;Z*OHKX_G z68aSV*kGTM>+C*-ZnpchjsNsMJ>yxQd=8okpLTx2U1vSSShbd0M*aZlPXp^ao8cvl z=b4ep&-IiCr)%#>Rku+d+RJ5Ljjse+?VkaidGBX(FMn$of2;JNF#gt^@HFXix8R@F zerxMeY+v|G{;gKS^WbqldTu9rYCd`}zTs-|FzpEp`*YcgFg%8$&Ea!R=vMNXl`yw8 ztOsPV7cYQpQG0xsn@_*T%)DS-IX1^F#IozY5F5hlXLE7kwX>10s|Vp;%RYA5>8<*g z?a#k=oErDl;I8QldbjlOHjmzoOf~*1^B$eP7I^_5EfwEC6CA0%NcLg+TE>+2-_Vcf zg=XE$tYv5{3q_|6?MnZKR~lZ658LR_YGWrnY@W)wYZ<^bQ@LT!=rae?m^eZ8ZKv9= zvfJ;Ouw=2ys}DO=x1(!sJBGT4wTBGYiSIW3xoqH*`FZ_-jo`~?-~s7y_ugm1w@h$t z)cmfn$0aPQLwKkBe$*SMCb5$$D=Xc4h);ehnAK({IWR*9T7i88GZ`!OL(#U9)4+2-wz#rd7uyd zb}ss@#(5vS7#^6(7koQ?YJHDY>b9%(!&$)9JHMI6awFd*XWR9Qjs=eoYraR}xiQA^ z^&Bg{+`$XsL3ajPRJnAVk1_7ApJ>IkcV0Mux!OO~Y5zo<=c*4~yl?T(I8^)hRCS9# z_fP@nfUV)6Y-U$5D9qNPQgE?-S|wl;ONvzDD^R zy>J%qzC4Y09}Avmnx_*qzf&DN7=?$Api_(*Wo+#iXDyKTr1_-@W!I)CXE?{jsC47$c>V}jYet9|w2*HZAUGXtO2 zI)mGP@$N9?GT9hk=L~Aq@jdF;>hPI8uMq=AtQbD_CtV-AH#YPly~l5?^|51%uNys2 z@}4vsL$bj8tkRJM^1FNW>LSq`bQbnmFIuOZdpMb89lrdH)Q)1FyXy#w>+#kleZ_m9 zNq>?aqdFqgy(=sCP%G=`ZPM4r;rbSfDqzqn+aWI;RnZw)e|mGU`^ zH$2AH#ct->yhGkdzO20`D{ySI0AYl_ML< zk-2*vecW9$clEDj!bR8S9;KXo4=&CMR+;J>_RP_n=6JtF&JQaGY=%8^zFnYiJ#t}K zxe>k{R?gAs)1L>yp&pN4+{LGD(|iHLL+z>}DOQ*q2vQ%${!1 zXE%0kfVMS;8MJToLfO{POcU$aF3l8j{TbeiCJM2i6|+(T&dx&y6g%_duB|kp<23u5 z^Rx~W;lHT7Xj7styrhJ0YS2O2=+8WI8BLh;_|_KR%!5&AuK94;V!_}Q;GM(s`Jw1j z^U2lK=$mk`i}q@uWsC1>=$HI+?dKM4s$%b|OV9J^o1U%YStE4p1IMe_<5|Og$2HJ! zgu4Go-6PR?tJdt{+0u>v=~ejmuN=NKm$*6nP12o|U+@an?qY(I^ksBU(Xg&-x%TQ@ zPXJfdwVb*_`|P?Z96jql`92d5NuGgz_g{m2&gNbC7BqkGIUl?s9X}+;(w~ha7t(Pi zQy+HGht9`6Jef8#mD@?V+P`}G%6SLI52Andl`|XD`?VVQySybNE)eo-wT4JLFsG@GM|_0qmqqvMvI=tgfN*;r|OT2trpq9^ReIplb!d(UEN8 z7&fu$kX^iwZ`0!*17Fjb4?5$P7}8LA2eB6q!@uIhxj$SrDKE}iWJ9^Hd8;?Z;RSNF zCW+Nj+A-!j73Q(is`-9Zm+(zh;ohw|(c7MyhfHC= z@5b})3B4|UT83OvoKYEarJH;9m73U!0(gz~vIn`BA3|jV$P+hSqKWt6taFzJx>(CU z$6A^yvzB(BW3MTA`+YwBwunpDKF#LYp+t=Q@QO*7ANwHdIstMo>si%HHA_}<)~RF{ zdpoLu!^7G?Q-d!39r{;;tUeE2TJg{F^GY77->y8&c4VRYJ)QUFp1PVSpH07Aeb$Vb z_AT^tx9#97HA_lpyN2>n+Afp+PCaF`*~#~1Cv`@xtw`e;_x}yY2b5V{(~mv*$mx+sF9_W5^4@ zxrH}#MmFcZmA%(KpQV5^x(hg~yMQyg18>@~bjr~kAf~WqpuP|B?FY#za2|OC>@(wH z#H8h4Wi=GN*Q!=-XtfKkxvRKoaeU)jsgve;;=E$-GcoK7l_TWmIq(ngHg+d@kj`Yk zz1C2We}%-gsE+7HUx$_9{McI7FRftb^59J3Lh(Q8?AU?(_t|I10?!V3Uq{RPh~@t( zu^7aX#J)-{aM}uv{otcz*g(=vn%}ZIVs~2ok0F25r*3Fd{BR6&;NACtft+|f^$RtZh66>88{RJhi2f= z!ngzF7{~CF zv@!fG8(s5&-EPs8!7+%hR~GKgV@Ydu6>XAVJo`QOgw_@0AKTc9*e@1?PL-QTc-f=# zKETn1)Gr#o=@0NC&a%t5tffO}dA+s0HY>XPW#}z>0_V3$M%bZi_kJ&M z@XpPnjH~tc_PD|m2FFzhFFg`ICHS`UclNi)4>PaDzEj^v?Z;*uk%g8 zZ=Lx=FY0A(nn&PImAt#@80YO&#S(jXV^rh&wKG1>0djG#3)yp|@il0CPdVe`TwQ%z z?8`UflT2#9|1y(r!iOyRO4hje`U7L*(VvVpdt$%De6`LnI-Q+!4Sv-OJnl?`$K~oD z_LiY<&gfAY`SUI2@w4cn`WKH1z@vK{I*;+JSUFerE{eyP>*jIdUCcK)6U(#uquJ5r zVZL2NIqiQlIimiEY`UZ|@#62%Vc28$H~yQSru-j6Mi)?yD9JKlmWgb0^q>shD zcgE8A7H1&69X_$WX))GKM#B?_HTIW7EHZ$i@!^55zn~g8FDU; zR^RWaFN#j?txq(YUZ48<7wX$heMMXgXW4%}UFTz@pNZk!&$Mg9DSf*dmn8!4b#J`~vnKJu#rr>AK9sVU?xj7}&1-7{a;L$6mu zueA=nJ}B5w#vMyU^h#efmNx#w4qdc>8&S>?jzSmcquayocsPS&PagCHT}08NI^BDf z=bXfr&-oH9(5dhzI@{{_8hFr%E)jNgsxZ0)_|~!KTwgqlE}=23VyvC)^VV2zm}K$_ zb>yR)grHUVIlAz__JA8B^{ry0zOCQQIp6fv>05d~!nEhr?IQF`eNx}+=(jtzo_X|h zN_2Uf-?z{2yY=6I`o!gwt91Dd&m_wT`G&u2eImwfZ1 z%uSi_4ErV1+z9>}eTpcZZTznOr(ESJDVh?3xo3hj;tqI%BtweJrv`%$Yj_^f zjr}g7tsjFk%h+?+?8o+~Bo7AiwGCYz-nTCSEh$G$+X%9y&FNPZ{u@Jvg`pwYBGC=I zm&G^-#+3mv&KwB?vt7_ln?pBk&`nz!z9zueHV0q7!aT&V$yN78>OOc5Fy~AK_rBeq z*VpR5XIa@Q>`VGwb^*EzzTPdgW%-c1L2{TmW!(N?YnwXK`@x#O*)OHoz&832Tj7hV zACk8p15U(g*>FP7GG%FV8|TAs{e39mj@_lHLi(-e>O+t|^g6V5Jp06k<1Ha%l;-Ya z=+X4aGyZon-q{*2wyx^_dcfK_9X>1_T(MKS#|pYmJf(gR3xJHUa&@i#NX9<& zJLyPy?cXy0)7l>}|I^#I@o&@CMbO8E(8&eR%lXjFO7hY8}N?N9pBRa)WVBs zM{TUbe^ucRE!{)jl^>ylJ%SF_=$~$%bxVA%asa<_F8q`CH?L6Mtyzc4@rkI9F~-{l z4YT*|uE0%8TfA6CDG{aZ~P<~=su8pK zBHZ}M3n{ZsltkywKO6Z6o#tPH&lOppjw|pFlb_kd=lagct{87E{ylhDcnZF(f?4=@ zrni5Cu@JjiDxYuIZ>`qaVtPG$j(~F$Gkg<97LSCdMbszW>(13^cv?Zf*3I@87x1sV zaWlv*l79-c!MM}=8KB;!lnGE)HheogcO^Xc+wj~fcy9X$Johom);axYhirq@ zeR6q&=+)5Fx85Jm_p|p_@_Xs~<3*EVTg9`RktwduA$>6cOf%Bt#B&B|(y=pU(M}QH zh@KAsNAaRZx!%upCjX-ASC&3J8<@w~lPX>7=jgW~?xj~n?*E9fNz0*?>(`^>UOg^e zd+s=6lRghT@rM~bN^5rPWi;PE!uQxs3-95XXwI#}LZ1k(VK4eqob`=9yBGZyJsY_g zU4FDWk@|<;yCrmziNEXbVLpuwJ{P|(^jikc?ofH z*{T>p#$172Z+uzQiOi{%99hHON#U1t!zA!ddVDIHo(pU(u0#Aspi%iS>tqu`qY?TT zd5W>FvGxhpnRM46V`-)y*I(J}^h0n9;GcB$*Q1>m!9c!r^+|1)&~_bd7c~8GSuy&h zi_-(X2agV`@fe!8=bU&L`6KxDphJgU`E$y$crEfrx|$0oSHDfSS(SriG~GYMJSAT- zYnH~2mR(j1ENmOo&Jib@RW{~@>;dk9rjCVn`n31rC}`(Y`eC8J$p-P#P7mLUcJ6zZ zXy-}l?{sKK>xeGxptn_*m4oNR#U3l|{78L1!KR%(F74otmHe=Mz_$OCJ;K>z@MYFQ zOKqdj(&}g4HCnps-Jqq)|7ElkP#%Tt%ZAaCc|LdfaigVcnWuDGN@SoV`G0PH)1f7Q z*1o=)G3dHu(Ro?tx_LY{p)c5-TWLFK4}0 zvLcgw5KlZB`5-xkzVoCtvHWoK1naQQ@Rh&5i@J{_bGHLGOEC?=tqotb;YIYXkpAg> z0m+gj^m{aZ{)?yKqwrhtQTav1&wJBwaL~W`VQ}t4;NAzZvsfqfXT^WRegs#hz7zRn zXzPyUnQ3n92S%Z};eC<}qi@GdCm#Wxl08SFlSW_`nl+qGD*0Zr=Qr;Xot!N?!M9`P zn{!Ide6tS!cIo8Z;JaUC>|enLtoQ(zPMXM9btGJVoqW?tN3QO1by8$t1^$@9HN7on zO^@6Pbx~ws0{hO;U)uVEbgB4nkb%I+U7tImKIzy11Nx+UKU|+2A_FgHyrS1NM?tUn zhqrVp|C*Oxfm1hmXq7u%^s4ya(daeFxUj*7(CglT^@yQ4dJo?`oHlx2x7&F;I;Nq~ z<_~11(ZeItsP;LJHl}YgrcQhUULK^meH@s$yd~3E44tp=<0~DH&nEy+3c{PR;ZZrr z#R-YSet-N`e5J~pDO*jx(lG0E?wJa08}j;6sj&%il$bn1JrDR3W{jMj5Y!n2oSV?| z(3phIRH+L?y>V$|DHZ5 z?k$O)sIt=iRSw<0L;JM1zToj)IySB+!ed9demw0H z(YmhSWL?mhSSMV;*1pl;jMj?n{%B3$(>xQcry8>oDayBPxS}tj^<&SO7i++a!#AG~ zF0TZqtHA9_aJ&M)=7$rh6@KH_+|QU&{A#Grt?M)7mr}b|@JxJA=bFTqT3cj;z5b~z z>hV+G&^RgSj&5Gr8NUwo&-?>@C1mjyk=*Z*TYLjT;K89zkM|;fbqEl@n0k5 z;T`b%L`^JNX{6-*g!28g&PN}-RO|P-htAdYQ=yIoIY)!^FMKsNJ^9OPg4RnD%o@^^ z_6_80E|`ZrSkJjwpQPW){ZBcw|DJLy!GUaF=S?+Z$DEB`VqXWXvkSN`o5*|WK?k_$ z;H`JBCeEcwF@1+P>xx*$D(*{=OV@EuSha!UQ&xxUu0ywbdW~ zXJU|a{m)jv$$M}@RbS`&kM(sa?}6nzH2b|3uRj2fD1)X7X}5NLFriq6sXpK12bh;% za?VTmL(HR(yrB;U6N&+tZr!{3a{gyV?_HhOd7JTvhJjB$@VT1(_sz_o@(n20u=dyp zZ$AJ`SdSfej$fEFSp$#P0n19QDZ>l#wN*Egb18zY4LloyV`E#3iR+v&HMVs#|94z9 zpXF3LPXzN$0H9nwM_-)afuc+u8RItX@|-n&+Ib!ri{jAXn-g4%6Yr($yc>J<;7VA&aC1bSp?b&C3#Op;h&_`Yvuf zT-LBc_f1*ckG;6@`MieRd{;*NX_WtYk zo-F)YOSRvi>~Oy6L(#3{E)Mv7t6(^}Mf8(?EiAfq!o>mV))ivNj* zMc)x*l#yp$S)6ZY^F~A8z6qO#yl=qXyWdLG=UE+#J>{yXLu(P)=s;DKS#hmDx%Cfu zx6^O-qN?to_2QRA#~ZNORdz@_CiMc;G}259E3m{{9T@K3UaN7FRB7_uY_w z|IQcxdFFRd7Qa*$@67z}#p36zcn9y&W7ehPrN*O6TpsFQgG>+)7QYH3Cn6sc59M4X zV6FKFXN??m^F_Nc(fTF}deArG+xPQ*7X12}_gh<3XYCdETX+|=e2@El!A-T}CM3e^ zKbTPcvnluN94l`5%AQ8vl=iUZ6rn7#X;b8rcI-*)&D74?^@Hcbxb5079~z%M3^)I6 zC{CpJJ>~Zi!%zJF&3^n_^n>`3f+#WEQENN(FIOD*;J8> z(3y0_rk%o2X~r*iir4ud){H@Z@JyPB@DW9%St$LM($tJc8Cotj~wGXWdc0 zef^!pLEUa`PhWS4WraF4FZuBAChW~x;vw8z?=IXl?%J`P%fpifb*M1UWMde+Xy!QE z_H$!dSzoYiLY|`&hu48miko4rq4xcq%WGNRPH!W9UNu*C3^wPm0RLKadKd1sz+L-B zBEVhv9s=LBKSJfJfS2aN0`8p8X5h6FxUU87f|uaF61dj`_qD)X&jfe&0(QWY7uGm% zcXbc#{SBBp*#`m5WK$4aJoABE`9(#8t zdTJiJ{48|&lfnH{pp#SC^DsW%2RyNH?;5mmXZ8uk;XAAP+Kg>5qrH%RRhMQ>Xj9;@we% z&~~qH$s$*Wl73XhGwHCIbSCe9(-QK48Tn4V>HW>2zeMns4)n8$_yx_k-_Ac=HkWl! z+7eI5zKndu+=qgpb%pqMynQZq`d^&ZckpKEW8?u*|J^@WoUshN zXW#uF^d8+#`(*XL&inoAsU14Ew#v~9wdb_TGsfcn)Q(^9zU&S=X3FfTWxvk(tmA5r zP%ZV%K6AEpFy3XwR2q`0bh(PoJ@o<)2(?`ocac*^=6yRI7j52tcbKyP4>n6sL$M^qe|`xcien0wdle}I~R3tlr0(w?&Q+hDY_Tj(_yQ5XwTZX)t#e6 ze+s+Wrk!=H#ngsu9Foi*7#HI#BzKKF4#iGY&X6u;!#u&b9&pFWxVnI?cU|+nJ~hErd#|>+G)MjAy7s`W6*$UA@Aj`8I&|l@ z>4dm1}|mLv}ZLBz%Br7Rs1ovF!wTF$BXDzEpzNO^{C&s zT{>alV&vJJOO33R-H`jh*m%~4v2p7f#qQ^}Kky{$Ql-RK0LLIaI`{}{{^QHHH_zdI z5_OHWwigNas6X%qd!ri1C3g9zK5Csqyx`5O#jgnTMOS=b*}%R0NeiOOr~E3^k-K3` zJn&`e*<{NYweMdsCT`6c6Zc&+CVqhSzo+)!>$H#DWnG6@Wb4HO;tDLEb$Ck9>WGeC zv3>pSpD)X5TEEQK)wIm&iY`koARYz(Rd6nSY}&9)a^rep!UNyq*&}v)h0H-VJXbI} zNDjh1+kv}7Fs0v%9hxgOb)lFaNR}VhOY4kBb{}lT*55M3%<^oyOv5|Az z(SbW$Syn(k$N^b~e9ZZ*Ez2H27UD1HuR=bqgqKOa`FZwt@KbO;I6Y+Qm7Wp&velnM zor3v#;@5hokjH+Z)sa=sSj!n}d30HnIHl%u2FDtBh-+dhf)Al1bhSLHIo5cvW2#%^ z_tHG!`wF4IRM3we_B$rgW8C}LIm|I}q3X+Cenw8SuGPJvJfS&x7XMMD=7n7JrvlTk z%3!bW0mnr%O~CrDH&SdTjyJl)scRClAB%Ug7_Px%u0K8C+B04!yT1yUy@434vgA9#duH(m8;1f4wC zb=9K;=q=1|I_1%PaMR%BhN+LXFt&kl?glq^e_@$>-*Y8!m=|4sG2sBw#~fZ6>c4`ymd;|KvjostT$oGe3;2!B_hbN_FTmNu zn%@}n8<@v@lH(@OJT7h#YaWn|0-aeoTnlfR(;tJ21|F>ExbWx&?gk$Gn>LAS2@uy3 zqkNQaGq&mYX*0Fy!s|!mlyu?iK8rc@9r&~}KcA-0>YL{3X09(Y*ZTsOaeWc6Lrx{8 zkVBVoC)D?g$OC#jN8I?xT`N2>csWCJX z_*-gmCi-Aqyua2w;M#f=aP{(?dB8LYOpVNePTDqnq_0xzMXO{V z%SH?wTC>=P|Ndj>=2xMke-vH)N_6%s@ZWy~|MGa_zxV34qT6)cHo`Oc1JmUzaX_2G z=w!kt@rsz%NZ=bSTBl;&Z1peEai=h@9C%cSbtl%T@^2x|09u;gB$GQ5T552 zTJfpn_(9-pMsMq~R?XwQ>-w?2Rnj5r$kP&X&buzdhbEn}Y$xlU@Xw9kJ2z2J9w+%J z{m9QG_30c+;ot}8OD$_aZoQRb26g%*vcT2lqkQL%(`R%T{5gz~IKrih>68y_BfO$W z{vGv^`*-Vo1@((pRM38rb6v!>;K%cqu!sA*u%TUj@YQ~7saI1A{mhk%6H(To`kzSM zt$5X`{1nHjxb2sDCK~;_`Oj^Ck$>^Se}NZo;T!FVXvxCI01Ui&3S63V^AtoESk*q| z8tWU!+Fq_X+pCk@m*&}o@#a|tXLTh%V$T0I?GNFxr;ImzT{tBC8RW4%7f*+`_rTjM zNBwPQAR$$Ol7)H zw#%#mzvYL{RHkc|U8azFMx(u1lSlY|ru}_6ZH)H)q>1Rz$oUfFd{q(W_#o%A`PV!u zUb9GY?HpTw83L;`SvrY5&EmUNjA5LgrOr;)`u1q84>)W8ko1kBn6*%PbD2MI=!q|oFJR8tc=qYlW^GP-eU=}a z;@L4~?eR|09ear-n}X=7#Q(ZJ_Ktw{@MP8T*N;GB$orY-u3nj}eJruvWBL@EAKgvt zF}8$s4#Cs4B~s(8e@jML+sAJud)}7EQ`^5zyP;p&Fcy3Tn}b=|kLMcL<{lMn|H1hc zf^Cp*d$WSTHTT{iveSm^$U3@g5z%`lxc=Rx)og2FCfe$@25Iy~=r0{_i_XuCx3w$r z+nheA2fBLk-a=b1*1Tb_G?@Jc=*V847rj?kwobBwKM@}za&WK}m&pPL(I4fk3{c5}mozL%>0 z8MqCZvtP&#pl@l-LMjnIYYBO6`33YnUX zF5XU#$n2Y~{_M-lvwhj<;qsf6oVR3AB|fq;A3m_f_(G`fWacql&oOfNd28o2O>Co;lj0;el$D%5Z^unzI`qB*%|QdJ3eDA+yrl{hnM{oUiKY$ zSzYmjd*{*iyux#eOMIvHxiYe-DZj6v=^M*r%cU+R_F{$A@5NWwmXUptkDh?8W#n2p zbv;j>$j-BEJ;=cBCDxy(+4*4p{J0Z8L7fH9Sv%N&vs5sw@Y#A!rO)awMh}q=RDvEN ze-dkp`|8m{>Uqw(!_r?YUb0wgyPqBb@4FA!eL0eBynBM)4L`i-s)6c3c8p z8edii{kz8LE7#?^cKRAVFLOJsD+c=dq*rg>_B*?;U9>YAU6V60cO!YFSw}Fu>zlwm z0RF|$1H3pfAfFsOed3u^b?%6ADYv}`TnODaR4#2~o{O-7B$wnvnLn5FXOB`Q9gQF1 zHQH>w$B{{nAK_@^iRi-X-}(Z+J;hELd59h>nRvkOk3YL13w?A(yAPPYHPzbk^2Nv@ z&LKq4SepNN;vaK~btAV~8}ln&HX-?D zcG8A?4=&#uGVfQy_pr^5R(6U1Rh10#KVN~(|2X5t;8mC$3q$I6^&SVWw*Pr_yds$L z?&!wR@oFu!cRcZG4Q(cGABtDK;J}gelytm$3%qh|3*F7S zA!P!#59{H8YwHZPQ63Id1_yjtUf8;}&KKVtj?bC!?pbiQ3cL$FV&m`4k3qw<|F8U; zxH$NF?GLOSMdX2uWmz}%tgvnDy$Ne!5AR+EuU=+d6Zx21i9fvz|9LrUHxcUiDC3k3 z`2g=4!RK0JMkDxK{%P_RGv-FEmt2>s?x(Lq-t%nWeFHh*k@4bBdnS*LN7oYXG#Y>E z)Yxtu9gnupv133UWp992=gH5k>pUE|Z%TX}<8*xiT>*RS6`EtoAFTnQdw6Ly`O8!_ z>qfbEpfBt~UswaY&IexK=bNKyvukqvD#})R^VFI(wcw_}MMLGftA`q&H9nS>Dbi_d z-Cwq|Y=NWUv-bhJ+J8=?2XwV`de}mYwu=Xa`2U3mE9tB2A2B&~N9yZJ`i9N7OMd3m zxI_#5O8#E?m}Q^KMm(CnUPoW8$k4vZb}JUl!O>mdXcNAlwe;=MqlNjZ+yQ!92|gP9 zWNr&T3a-L`>&dU(xQ)5KGFAOS@Oj`p_e0)ak*Yq#`)t}SfHxe~93CgQ%oqOG4u#8J z=I~iyV07eD937c_WBAmKj$Hdls`{1m_sAvpedmu-)z9;OGq~8&j>#Ki7AB>>~7I7_KR0V6V@>*fq!gYH?uGx-$V{NQ>fz9^q! z`dK7lU%=q~XmVD%qbp}mK#q5E9$^^$Ge{pem(}ESl-^qDGi&+rO8Q&O`(pG~^zvbA z{Cj=2t(L8GWvP3BU&l`{c99#09hhfqqK5;CY4Iy4>&k+1t;zEpdq;AQR&KfWx$JVS zGm93|*ZaP|m)Pl5gLAC)ueYNQ$ws~rJa_q86SkFT`Iq!J-7oM}+KgT>*rwKU-cFkV z>Tg_s%A;Bf^~yAthaIgxqB)I#SH;vPymDbK91_fr#aBIypB^V#tORDs6+>ZGd=&nr zB)%p2n6~yQkGvyaz=gonK^>y=o>X-}wBx>K+}`&E-{8IM6zoXBTro-Mw&-4BnU2O5 zorujUTl5KMZEV1Yh`pb-HumtqdK`MT_Am_4hG#v_JMaHM2EQ%)HkF-7H3kwX<|@T{ zdJ26rm0~Z@O;@wWW?*fi2Yo-t8bxmo{DAd}o+-%b4XjV=8SCKF^lXlE zj}JS@+DET{Y{Ha<|7Z=w^$Ez=BKt(PitAr-?e{SDwbqi`m~(e6`7pU>3ogai3qNyt z-bU7d6?5Yw9!2(o?Bo!5R3;mgSTW;M;o1kEl24_E>uvb;6*q6*QNECS^G^1*pKIh` z4f>tdLu%0XI`xmeEPq5@;bQ}9Z|*t(v6;m5P#<_&gD$v@@}G3?C0n`A2CrRz&NjyM zG2RQd?l{~S9rP*FX3}XBUA0>6*3<5U&f5la?-NIaF}L%4wd3R%Ry#>|T+-KQN8@ta zEg+WN_zb~u6T8CtqK~o5elI!9`aAMtV2tRyIad4MbF71dd71Gqmi-$rqTZ`$*R7+= zsY5oN1^gs~L;441J^UBZ{{U;2#q_@zUpjpEU;)ohp^l+xsjTU*`_YvK~={p%@PP-geF2U;Jg zUpG=Nxtwy0!T2=hR3ws=SO0!Q|B^gcf0ZXle%0OwsuJ1G*)Hftrmt?>OVz(~s0)2G zh;Gn(CA5ld6l85L3CvV4W9jdK4psjH)Zg<^Ric>sw6?lCt-iU`XDuDnMc&RDqv9dt zUpq)&iZZM*9`EUG+clNpq~Ta-u*uV9{AwgF)MHRFR&*S z-&l*EN%4*4g-(BX)`f3L>p2Dw!QV>T9y4pq(!0aR4aLa0GS!WNw0w3fEM@jdcTYZW zUP81ce0^=6@U>!SA4Pl6+yU_VCi)ol#3U_-_o$z1wbz9{S?r5ZKYj3712>+n!S3%t zXEFVRKHg40WiP0$zzeAzH?xi_p4myfqULHF`GI@!L6n>lTB4lqh1`4j_cra-0S@A4 zy}--R3h>HEE64c$M&NhwtPc*v5Ey;|Upp{9lsFSu732-h=i8!fc&6zu^OLc^$N9Zv z>uB^{!+1x;IcRGE?=?5I!dvF13*Ux!Znkmnotr}T!41p}IAX>Mj$|C`F}_zEw5$7< z!#AY+Yu~O*&)w)gBaX#GKa#`N#K48x`!gaQGj`5{=8HTSl@F8O~s z_u7kS^dS79N$R}VltI5o)~Sw*(&|{5R>x(p4T<@)1}9&b%H;d2xMgNO|FK%3>;wOcF(Jv5}`Ni|ttK-{lectS4 zTK%uD!i%AE>EEJz?frJ~y_IvSrg-MB)$iZ;19+l*oLBRmD@V)u)+UiC;24&{RBsijNq+AwD9$0UybPzr7Ds6t|sTT>LFyH3SFxgNByXz9)X`uE4F?qvF6y z=G~q1Ma((6)&KfAKfs(niyr3o`}e@LRe9IIzcvp)$znW70X+kU(($wjY0 z&uy@AsgV9V`T3r@??lE=-qrN+|AhLI+K1;Ee>yL9{SP7d>?T)d1O173dR z_v1`l>Yi~H$H%AP<|Pv{G>KQb_6Yn{Fn9Ur zHt|Z2JyOs=xR%&+3VGo&^vOJjXDWA>J0}gmF#52Er(jRjQnzGNA-Hn1e)8kZ583my z!{ivlZ`F+tVI6a|IC|RvPP@LK5HPAiCPnp+EmGw8g787HXKT9IvvrmWH^(Qk*u8iB zKSAK=?%8Ukt+zAgW2KQQ|KOgjX3w6jiOh%fO?y6m#ypvEo^3VU;f$}7@ePa@87!Zk z!3p`)w9ddjF7>5^oRf-&7JN?kjJJt7^^Vske&E^5)x+EiH_Czc!M}l%ErYn>?&X@m zH?sd)X;1c_)`?J`=_RfmT7XVrj@dh{D^>0tCuX%oW`~V$| z6^$_NTE-<^q+8>GMzr>tKDJiILS8MKW`Iuzn;#^sf&7T7`Va zPif-39%C<=8|NjyCz~QjeOmLZ=Q^GDX+1pR)4V!y?^o zhS_7{pFMX>{Kl)t#LvN(F;(+KOi$!X<~;k3i}0;9Vy^b;J0%$Rpj97_v1@K*r%WRc)eQCqOl1$(^!DHW#Fn)xC!K#_Js-S~J|%t6U2hhyXuVnbUiw<;TGmR} zUdTQ*Y|eUMIZyw5e*|q+OvJ9Ftr%?`k2TpCYqDX+R0~aogWwD>P6A^C z`xJ99M>s^h)$Y$P>tWt{c8}{54urpiziy)qbNo@&*MJYTv&Y2OfD?lI&A>bat_$YE zjRbU=OMKa=xWT;kqF=hWQ2>1Wz_Eyb(S~wZu?OZZZ!BFQZ6Ch*0%-DlXmcerS_Q3E zvInLj0qvSSFb7XlZmQwu&bT?2hSKgShIZSWHMhv6#BLKizmR@}S2uNte&iokEU4b~ zqQk5$S)HgS$Ajoj?|U7(Q%(WJfnMOOy=e_jwC}FHy)D`YH|6-sK=?HM zJK`D~^Qbv=V@wriCVeXD&)OcDJ-9da`uoSmuU^kNIak}~TK%C5J;OcoXB&Lv2jB!W z-iz)7?V7!@;Vj@p>>xBqx(Yis$DOzH=^H-iN#QJChxm2`9u?L&fL9&xI_SWwjvNZ` z@OT~guIJ|3;ZugUgZFjtDRMC^Jp_M`KwpaEb@{vKI0Ai%m+P7QI-=u9TKr8VJU#-> zyD&UnIRAfulXI^8JHmOLN0W}{U5qEw`7R5N6}NXVXa5i6(Q4o>c@zOJ63`O1_o@i< z&z|9ZVem(C%Ef^pGy@LEes^V+xdsQ6^Nj0#5pW;^4wQfc$HRta&&a!i3+IStp!avm z|1#l%&GV|@d6n=y_}uO+!{=Oj`v)>^`&{unKly2MC^Lbw=qopKz7IUn<$Kam-U**e z_)q2>oqLxZkgTH-3aE?S*{v;vwWLe#seJ_gv$P zPbEHK8nFtW1%C1&%ouO23PUf(hjf(tExU;aJb2cJ2G&ZAc_wUyG(dY9e=~UayeoGs!TY+nVXTPQNk0fh2_c32u)o8ZJm$Ku@V}zb&Vu@#tyP)?BEJyWPWrx%0y||E53#zY`p+yD+jiXi*IB- zG$#^SQWebE6klR*1pBHW$-8Ub-Y{Q0S z@*DRM&(cHxdWcE+%n|jo-1aHZLAw7q2`yT_=hhnY--@3G|N8;oxc1#Pa2$PQU=0>IS&dEeWT0VcyqEvtiBsbmcabl) zRdPE5yu;?4Bb$~T{_tdA-_*f8-N3pBSetxM=s;hiz0`_v*lSbJ0dtv`sm#wb=4m>- zZw9$~#|`qnBgsK@qvZ4`DyFcT8?=qp7sVg$HFIG)aRaOHiWO?doz3uyZTMa#lBeC_nQCY_TCf9`y^|zRgEp( z?)b`;WBGdK<$T8E^0qY&Zj>Af4c+nN zz zhq}C7{5(Y;(YZTr(0g>!nl68XH_wvbQb|5rmshJVJx*V``S-}rCj*7kO`fz?_Y5@K zNAP6ep6T&<#6Gxi3HjZ@zq|&e}QNGUSBVMyQ9H<;i#*t zxOCWjIJNUH@J)BFgs-B9f%mKd?ALqnS?dD>`0UVeGx@EQGjJq2Z+<ZebV)!dQFv$yImEwvcJStv=Z&pDVk|5 zYK4zI3m-Ff0C6ABO*uD_^B>?fv2gl6iB8k=DLbC>qS=f^L-ca zOrrbXJAC{+%DVkjA0-pjNBKixLmVkNWTS{af@qS~y5E5p)RAjVl9_$Y)muN=J6%N_+-yISU+I2|#O! z4VU(nAeY)VOzSHm2Gop;`*-Vofcck>7oh#Ha~0L zTKFqqr80vtk~Z(C=6zKAL?1eTAolP9!&``T7=Lc!O3g3(s?E3M?xHK6U6`Y7(04@aS zLjqg~I%M`+`fyc#T$#KvS zgYN~V#`0*tLp*9b?YQ<=lC~1uAC0~IVa*wF!7*sUjkl5=XzXS3G9EZ_XuOs3@Qde$ zv6ouu+ZSnP7ih7IxmG_mrS;l&}J7w^daKKm?WufK0s-?JYZo{A*p36JQt>oRVtvzUmPt?1M!Cl_9&B@v~0X=>qI(^%Q ztbJ4YpC-Nj*{paT*8yF#?xDR$LGF981I%6`XMdAy_t)Uby(e7MXUa}NpLEV7_uB9d z{l-PVeUuMk!}qiHS;Uz&@b`U1@X!)?((~W*AFTB(mvrTc-J9*b(1#c z9lXfuz`nXGq+HJ9qsxnZ*6QAsR>$C8rzs|H=1=|%zTat;N*|Mqk{+6UF1GKN?L5!v za_0w>k8Va^amtGCM-{IC-|y5v`hsi;Z!D%8KeR2x+3u{^s<)L`F_UM;4`||p_L)>c;%E}yDm0$eID6L zpKE|cH+)sHPW!WT9mYpf18kby=d@F(YxaJ*`=w;>eoW<%!{^PsU|ns!bf6oJ4)ht$ zm{Yrj(xrXbW&&j#tPkG^4j4rzeKB@Yj^}xPL_1`i$*T>>t4g!10-~{t#>sd35o@MZcIeWL> z3n!#!Nk)5VvdDgJ=x`;xIz9Ga5qRLn9(2#OV-L>eSvstwAKVJ8(w|rI{IeOJ_l}LO zZpiSQJXlNDW_YeRq9E_Q^AqGekzvoKMps{%>3d?A(#t0JUOM=&J|AUU#k3XD_uxrc zhI*QF?0o{m>d(-ZU@md98S3Z-Hx*-*UPq8NHJ-u@?;?KtyqffHn)!yr5X0)KFosU7*gS%-c?S=k}o zoFDi8=a3Iq5i_f`Rm)7P;cDvq#klBX=}BupZ$F!T70kC%TFv1ssq^A1*M(|{ zJ#)_KN#`T88C$+{PEU|?dWwC%Ra1D@%o#mF&gdy_vdkGhLC)wYF1J>-!-tRw@o#UK z(N_sR8JgmZo{Y~qqbK8Y&gcZf)^$0J6z+^M9IfVQXkICj&&-=~%giDG+sv?Fc z8~7IUtPD6^{nJ$S9l-n!o?XlT^USHMBV53oUi((rqVM7t-;ZBh^QM?3og4C9aArF` z&t3SdpGV$rCq`*MzCgvGKS7-NpDB|bEA{^xhh8RD&-jGdOQ^lkUH`#3_KGd!x=Gi_ zMqL+j9kcoC>SAEF*W<6f?@#!}DhK6`D}$5dZW4^!JY~N`S#psL=p!Z0zQ;CfA@)7q zwSDGm^=LktnS);DPS^6AsV`jbE9QAn^2^!hcqV<7j+10Qr1Pvv+vm8L z_hy`mp*(Hq8k>)M^*ddcx`w_NoNJZ7p?!|058Cn4f0F2@<_t&Tgu;)a2eZdFKppCn zcb{X(+2`mh^w{#+=ZOC&s4<~$S33Ml-;0+77@N)#jADOwkGJjlC^o42$a}+E0ed9&cQ!)rR^X3@hR4pwuf#Q@HZGe4V~KF>pQLe1N2k=Ot+usfS2m)d}ps?C;J-Z zci6`MaM$lp$g?*8Wqs;v0vqA&^i}P|*yq?te>FF)&OXOAY5N?z+1KdxL#*LG2rQ(h z^a3yGDF=a95p-?F!2R2OFJ0i^_o@c`SkkMs-&($zmmgu?l_%Gk&$pvjrSDN5*550g z@i2E8$8(JDk%_Bg!Vh4Qu3LSKv5tsulwZJm&5OIoQF|JP_=nQ=IQsBQxo{_^y{$ij z8=1y&tna0JxN=f^4kafS^UU?#bm4O!aV#F%kx#+h<2WMzGWL_yp0fri9bPhcmZ!Z! zY@ZRo_p~P*uRSqvVUy!C8lYFlwv0WK+M%<|(q+5W#6<5!%w3p0kpGvxdjX50eE-M) z%r0jU6_r&~1XKi65Hvh1;`yv-Sehar2+BbL&*eE&G;_?LuuQE?D9y}FtxT;nt&FUX zm6a)#dCF6Yf+_#^Gjq>!v+nk({@?HQyRP5$TiBh~-1E$N=9y=nncdliG;&z7{T#mE zxP!H)qJ0}{KZox(7NfnwRg_oY`_^M|?zY7ocU$f+O>ume_pG0b$2Ng>+z;Dco|pVA z^DUgW{o;yxY2;nW*w**sJH2Ii9_{Iu1{Iyg{-vO|Q({plMm?ycM<#Ltx zJsIWBh1l)}W4^)>*S(eGm=Ak9v+8^5)4=23hnhy4~$0@`0kciVD| z8_L3RJC@5@Zoe<$xRQ=zyewy;K5*2FIIf(L8^SMXD3tAuVAC&D>?$WBedG>eP4U`I;?hkvym##&;C~02O6n9wrL+|Xn(jpeXZXy{;$(8qOtWFrYzSi zW7jZuqg?QJ%X`N8l=d7{x;Mo*pOW9NF!J&P*j8j-F7x+l^X+I}-fXCTi|MeJKg;d# zztywL`H}M_>)Q2t_R*+kf9SUSzWBLUor`20V1G=HQO7Q~fv?}Lz73S1oo@r5q5bdF zxlhKnf_>v}*SSx@dM;?}p*nfL2we^13QPs=%&z-^ealKvM=jeld>BvDb zLSCOdhhw$;{e_26zLobf$ZN9ha(y7(`FRZ*g(y)qI^bN?+7I%D7~Fp_##LOKfM(j? zxW`%UyZl}axvoNRuZBF=w0EzD)*bh1)R5hA+_$|SL*Bb#+?ycN9>IMX#x=iq%%?w| zH4=h;<-WN9_thT{ z*8%*oEuO|bH~9UJowx7|LpSZ7V0xAb?m6e@eD&pW!nMzG)KLVZp4}bmsK?_dGvGOQ z@;t(N?<#(KT-N8K&ZHBstG9C>v3}pFETdzX0a$K-o<{zN^1`_!p;~Z_paHH8$m5(G zm%KmCcwWjBTzj6MCZ-M4o|!Um&Py1E^`0m^J4KdtFNE7XGX=xczZYdGzP1zFHp&9V zu>Z-qKnRWnvg{?lC#apf$a|P@?xGC~%i({k``=oY>>l1CEK7M0ul#*mZQHHyCGRy| z9fIE^_zC%zyw`LCw)G-x>*r}(mw9U%wqd*5_^)2pyk1_Pk@u+>&m--Hama09Bd#%@ zZxvHCkbak{7p^zpzD?_Le;UhuKdy8BU$oq{d*S7GHLZDXE&Tom=2Pzfm6b{nexbMg z?%aOZANyjz?1TNYH;(tcaIDwAx8Q^CiJe0~#{MLad-A-fKk|OLezrKui-y!v^O3*H zewU$M!5`y0EA#usCR`77!Z@5UE*Ff`72|e8Uf_=JY?{I%jd__6CU%~CNvI96f4XbG|7R|e z*YxCX|26F;uJyt(`ZT(0^(f|s#XfSKx0d(3#1y%q{M=M&aM2xQw_CNuo-*u9O>2m2 zX7rQbD%3`<;!9Z;M;+4Ib4}$rPNNm)n&SGXOswxZdmg?J{^nu$0E z+koK>M0t4-(#@xIgOTn;iV;J`;dxXGm1)HbSNQfon&lCBzQL$(c1J(EwC^(c;(KSNX%lcBuov?t%WhGa ze%re6IK*u0!e<~R@9Q+mW3p~2AF=aT*IHhRbsdbnROWTsF$Ld0`ETFZ{hzAypMrJc ziSvncjI*_D;`=UxaW0XLbBT1UkN?T>xXJIcVm!e%-)l|7c#1CfsP;_W0a!lMuwNTx zV3|M2d^#O5V>uev6eb~NeMT7D2Oq#Tx&i02#{Th7j(67My6rlW`x-y)|4(=S>+h^+ z`7XZSqo$s&D$89ug*@t~$_M1VZWn4r?+Ha78u}*o?~lc_ykQ7-$y!+at5|NEg$WP{*U6fCSNYC1;EdSen zXX7;LcF)z-%Z3whPse23-(h>aY;Fwm@jB{7tg~}1dsVC7<@w8@9mp4OjBqq=ndfN7 zaLRM49mCnQX#K0Tt;cZr8x_`L7Uq95#v`y@RpR&8E3qHmojU->js7@(^uuwaFODaD zaE{s=-z(OSTa~@!amI|e6S_MioeR>Vyg3)g8XVhXy~|A;V{YLXW1M3&!ti|;m{rjc z_q)!*amx+$;bK9zhj1Ku*dJv*<2l$UcRzyj3YmX?(m?E7foH2DZ*HHC@1o&3<5Mzl z4q|M}vTiB><&1xOUU8&8)<2eoqw|U*^>AF2-Em%Fdk?sFE>TzPl;@bX=Nz)$K%^d6N;ViFRD;vmV3bd_F0URpy$-+P$l|z98%M zQBR}YPuLvyEchc2&ciVHH4^zuWTRfyAIDW3@2uBI&fxjS{Ch|VXqU^__8N&V_M-); zk8;C4;fAuDygq~PHf#4moW^eo=;i2!#Z9rzpx)n_ugK{$?spV8*OS*Bykok*N1~tkwavMb&EkB{};qW|9i}!4xox{rf&zOGW-gfyL z6h^-D6?|jZKI9n+%BHwR)*SVljq%>#RAf?=i_zGAW!V&Y#U43*J<*Qu+7}6>$B6~< z_vrkP&u(%m^2apYo!b-he{hSOSCp-$ox}ax^0+t%-6q#xQ8>kUMWL)0mFMYO8w&3* zI81o0$P5zY+a7ZpdByBrd=LI)?p2l|A2KS6_y<2tNcp;YK);hv_D25^Ld63tR-@vtF{ySyc-Gz5;(~G|H8uBXq zUfI@~!h5T-+V>~ikBsk=jQRrWy{(f_uVKHh=@Z?tO^R>3E9fTcJFBL*_Q=eN%Jy4( zMvvHrYwgE2iV<0u#>;6T9k)H^F;aIh>^Ab4Dn?u}dtlyb6swr7BUt8g87729mv2&( zPvx>iK4D#!sfed;a=CAreu93j>-|YTZT<3Pes}H%$oGYMx{)XmZELHgXvTcjRQ(yv zq+owF;BEX?iXzscOj{DrzlAE-St*tg>+h;)Y*K5kDlhOC{$E!v7GE0M#n8|)Jkt|p zYLxZGBTniaA=cXVSNWvgpKZL{Ufi>Vdck%W6Pl~P+QxQ*q;s5H|)fU?ZjTOjXl~#-C!I0y0N;>Hugz?nvWRYm*w(#Cj2JWTixR4 zif$HY(}(4Wyv90x+WN#gUu|z4A)ew{#^Aw(=Aw=|^pBv)34Ynan$98ef ztWIXrp~be;P!)6w__Ky;Ml-3or<&-BI!^Sj#og+u(b#6?^((e+wu{?M)zNHN#ypKR zrUl!M?RFE)elJOW=gmLuPJtV?AGz%;z%gSB^1^et{)gZ9SFeq@Q*Z{$vb1jWo|n-s za8CX+mZ=}Mku+>eAxdX8SZ+(G!wF~+UH&uDoJKw-e}m4m-JJqiKM-Q`yDXx{-jHSF<5^qpXzkN6 z{?&LJ+e6dUsN=?Uu~O{sxMsD}4SB;d(P0bfW8E7^ugOERM+A-qSbqZ)9HWKER_ZMGmCwHzAaLFh5upamPTk!@n5HD) zco^Rn*WEBIH&4ABhx`ib_JDRA#CBaGx(2ClR8|(C|FsKIre1`%0#|-0u+DMZor^qe zu~6fu>c7+9ALDRSTHx6-3t~t57p+UhGvrWadO$9lx^?=Nmtr|$xX7zL)j0{}+WM5` z*k0?fjD~65wu{|CY7TWnf7|Pp_tEmYCy?g)VQdfVm@k)^(2ny8&J#rO0W4!<8!5#y zM|nZ!9oyx6JO&%f8nM-4LML_M%If*Pwy*APtIF*^rOhqvSYq_UyT#jd(~eunb24an ze7kE}ThG&R&-!+^BTcn?%-o!!@f%dZ9o!}e?Ho}qe;fyPp2Ie!E%%+Z)e)FpW4NO+ zTsLexxFH|cWaP0;U+#Z**jNWU-LV`(A|h4X4|**`Sy*@;+o-l|21lw&E~e;bzaK(%4v9*JthvYlR6nqJ$u;vjx!MfL5%nD3ho;#Vln zx6QYP-6_z@pAEEQdwIPddzLQ?jGmpU1V=3&k9s+$+8x~R4EJS$Vz%7Q-4c3ec}FVt zd6`etdK3AjjBo6&#l^?b_-#S4Gc_=#(>Z~D6~D;TKvSpFPIn3>bjP`m7p}FnyjkFe zXWhFY-!dZ~!uq``wlr3I;(h?RP0vT3=#Qp+KGX_KpR!;BekTLZuj_ZSKu+5aY+Y;p zwhdR`(3Y)UKGR}1YOA=%gzrmN<@$WZPHcmn*g8A0d^<7KHrBeXYQp@)MAwza*sDpa z>#Ap#ER21MrSq5j^@gVEB0I6i5aZj}b&D)tX#3k$F)K=)ZrjfUCv_@|Y4bj{kvhdr zEJY66<~aBV@^P6bRa=MH2F~F4wY1^Qf?!OmTb-tA2$~@eHdT>VYxO}lUJ^yvZpyWJ znc$}mW8>3eA2n77vY0VleOOFOH!4Dnwv9DtuXeE$i$bhy^!q5IR^{okeqYW5j&sEr z-gdFtOa0+)rM^wFZB>>zH@~4D)AoDaEO@cvvFj6X9Fg0Zynkf|&X;HSit@23Hw#W6 zkIUU8e+yAjN6K~=aqR%kO=j#snt7r;)<|>EtWMwLqz>e1e0rA8D8;>zMw(I=b^1Y9 zwI@$A2Wk2$<D-0bS>VS88gQQO$1F6vCg zDtpOuG!xc0&d=sL;apU~IhtPgc+Tf$f!qgVxicC2?JsEmW3ecb#sF8N2J<7qfw{hy31F%`u7W;5y3+Ww}|K$3MHM2mVC)2W2>8Kg6_a-{bj{_s^?RTo30-zL?(-%rB-xj;lmG(nQ^iaRnh}JFd#b3VsL9ggn5EZ3ElI zTxZlZ$!$Zw{#l0nv4K2ych$>t^^^4STz#B3;rD)aR@M<~y)fJ|tP5NhmFuEJTy3J} zY4cXEcsi!V4c%oPx)sl;y*sxL#?u?)>xFu_7?h0^ZJy=*6~_F2y}Z2OHtv5vFUx{| zvEA0kbp3?!UoOMEV*IqdmdNtJWQ_j;;&A5QFI3CA5u~><$4_fYE*oz&+A9E0& z=^#GML41mXcrwL#o+r=UW!WF!vsjZR&-diLD>!btqwE)w&{_3Bb70TTY7I1}By>_e zn?$dv32!~nP4z znoWU!#j7@P3t=F5XaeUYm8(}9l*iNjUomh;WST`P{<=6B6=_wIE_^6T9)8c%+h1$kWEZ9!0 z8H=64wi56x>haM`8r4EQn6WUnXDE($vYsEqY{1eQvAQf)t^WxjYH90*u@S6)H+(f!}VF%laE_{B(XTW3T(D$8BT3)K@>ZjiKL9 z?8H8_6WeDSo8_bKu@l>A8^bu>uoEk0F=JocW;1_Ae2atlCI|879mMk;#8*3r=iMLI zwz;{O_Guo}WYQlXSF(oF| zjAoLjS-s~~Va+2QrMdYx(p*BCe=>bP*Vd=+pY(I$U-Wb2U-a|dzv$pTf6>n~ z|DvB||DvC{|DvDFf6-6EzvyQa^<(5;j<(x=e`CAt{tvg?2mZzM2LFqG8c{#kpRWeE zd8^)D6_$UpuhjS#seiU!u8KeX)xqUe=QvnbTC5+78F}uY zrTVdk&*$)<3cbEl_SZ37?Zo=ihV^_4Jx`m}QqR-gYpE`L65q9C>HKj_6zR@tsBLU& z4Yh@B?AscuKZ_a1_eLzHjW@TW>SG%_9i>kT%6?k@y1$be@DqL`f~C`@<+iixY8#u? zKs6!8=lxo|KJQvTyDe(P?dsj@<5^?!I&T`z$7R_-OIOlZ-GFrV$_B=AzV>+aW4aN) z=pg>9gZNJl;@>%lf8`+lxr6v&2k`?A;_o_$ziku8a@sC(Ypa{JN9K@Mr^fh%)hC+g2jwsK4ov1kF--4u(aARKMPam+QuGjugz zh8W+5rsCQPZ5!Lg;3zeX^@Hiq$`%uC`Z<1}To9X zo!B4MV^_rwPU>ab81lgLi1F>?T#$A9xGLWBP|w(OKW)?fJKJIYVo|@gjrI3czo;HV z{j8sQw0i8Sxa6mPY#STiRNZeU_O6}SuIjN8v9`V%h~q@eIe)bonn`T~)B_LVJFK?p z8njVgwT&%nqi$j`W8ZkePV8A0)7DA7F6z^^F)ZswmQ~+|aGiX+JnwVEd7r#@<~)x3$Zt_b zY^Qeo?oL5x&+7LN{Z;zbNFVkO()%NQ;6F%T59xjWBE38=Y15wCPIX7x8c55wsjK2# zXZ3wK|MwkpL~&19&r!RPR+sT4(#U#DMJ!k&?-w|y{Hf*rvJP0@Q-*tz%5lH(3b#M! zeYFgA)$Nd`?(O++$>W6IZ`ZZ^9hSLNPb0sZsZg5wNTc7MQ~kQm<5}0OdAPA(7A~&7 zUq;Ka=OY$%1*XxMH!b#2Q*|ke30V(x71#e*%oyh5Hp4XH^Bu%zJBa5vh-Wy6PjV1X za1bBsApW3(_%H|Y0S@B59K^dhh<9)hk8lug{3hhhHWf0RJ~#w+Zn1}u#Kg+R)4jP?QgA~W-()1`(@F6+x1n^ zpt0Hj=OBNKyUVw2E$)r@?{?yzi2r6M?t=IkJ8^;d_jckHHO1Qh*oogj{0lqr%ZMMb zjsMV8J%{**cH*Uozi%5q9j-oSXW6`9vuuoIR$vpKAoGG$MO|iR7%M3)zZc867YF^7 zh>wERQ1sVo+1-Lt?Yd1pd?y9J7i$)4n>y+DL&`F`@qGYXFIg=TdX^{1GW^;Qb#-pl zI$D6dZP5W--;XMw8prN<=4+<`5Ez^4&q&G;+QUMi-BruZQAv+iWZyIOl^r+^=VUzH^}Aj zsG^q8v@OIkz)N=N%J!aln^`uED8#xY68n<75nTU=9c z&*(Y)<_@m8mgDyeugUL89>s4{j>J8)#uPGAr>-(Z+bh$sC zxuMAZ_Xk{5@O>hAzv(wMP=A29ysx5P`gQHtIRVqw26fTprpkgC#Eg4Mo@@E_2Xpy;#Ekqe`)mX36+&^r+P2gqa9Dn=f5TIM|nc_kNf^) zzqogIr+kK4g3p3Iqfr0zBgVG@{VhO$GOfI4`^K;sT%V|%ww}b6vdo%0yQW8_UR<-RV8QY8P_P)Zw_#bx=pYI?(+d(|XK|I4je3FBB zf`j;22k{3T#D_VE4{#9gz{4EFZtq$U^I*4zy ziSL)!`*BXb&O!Vc2l1yI#FsmWFQ)iae7B`G@@HXcdP1{2cQK6L&ahhMu}0jR*@xMe z8Q(3mrVnHeVh&{vV~%8wV#as$ti$Zi9K+m~c_1_H!L{}q%Z%@XTH|Aw$1^7~r!Y@u z&ScJJp20kac^>m3=B3Pe%&VB!Fy}KDGOuUe#Jrign0XuX4(46Vdztq!A7nnne3bbZ z^Ks@A%qN*oF_$u*Wxl|CnfW?%8FK~mJ!VtSs%^l9*@M}O*_#>nWLvi%UuHk%K;|Ik zQ06e^NaiT!&dlAJW0?Cg4`d$79LpTXJcfBZb0TvJ^JL~s=4|E}%(yq*x~%3gFJfNG zoX5P1c@1+ub0PD3=1t6-nTwgXG4EjB#k`k!AM-)xL(E5+k1-!-KEZsF`4n?0^I7H# z%$J$3GnX+}FyCV~#Z;{q7iJG;FJ^CMA7)=>KjuK@Am&i!Fy=_+DCW-0-I-&U`!Ww? z9?Bfc9LGF{c|3C>a|-ih=1k^n<{8X$nCCGsVqVIe$GnPp4RbzoA@h3XP0X8_i!F-bW6mu!_S>_AOmzl3KmoZl`-(xoQV%tBn2eTKm zH?t43FS8$WAaf9ND03KdBy$vVXXftAG0c6L2Qm+3j%AKx9>YAIIgvSqc`|b*b2jq~ z<~hvsm=`fGWzJ(>#k__&pSh5EJ@Y2!&CJEj+n9GS?_%D|ypQ=H^C9M=%*U9IGoN5S z$$W~rl=&?41?J1l*O|+hE12&wn|ibDpV@=ii`kpmhuN3ek2#Pzh&hxwj5(4yin%j$ zcjg%8zRUxehcd@9$1#s#9?zV}oWeYrIg>e?c?RT#azmKmiYqnW#;S5Wy}@K_n1w6 z*!Iut!R*EC&FsVM%k0M-$Q;BR${eP<1m9h*9myQU+?lyMa}0A|=7G#ZnPZvbn8z@W zXHH~JVV=yK$(+qRgLw|~Jmy8rOPTYSS23?)&Sx%UUeCOVc{6h{^ET!k%)6NPGVfzP z$b5+TDDyGqIgWV@^LXY&<`m}1%$dyD%rlthFwbLN z#JrR_k9igI8s>cFLgw|%o0vB<7c*~T-odzQ=6p$F_fF4`wfBZ)P86UuHk%K;|IkQ06e^NaiT!&dlAJW0?Cg z4`d$79LpTXJcfBZb0TvJ^JL~s=4|E}%yXFMF)w0X%ACi%ig^ulK64@Sdge{co0*H5 zw=wTv-o?C^c^~sZ=0nU!nU66aXFkDvlKB*KDf3z83(S|9uQQi1S1{kx{r~F!Sv~L= z=JCvl%qh&1nKPNQnP)K1VV=jlhZHO%?Uh0N=jH!*K!E@s}wyn}fc^IqnC z%m}0>Ox(ZJ(#_iy_tQOeVP53 z1DS)ELz%;vBblR^J2Q7@j$!W0Jdk-Pb1ZWl^BCsw%!$k?%#)cjnX{Q^FwbG0$GnJn zDRUn4D&{rJ`OJmP>zOw(Z)PrL-p0Ixc^C6u=6%cunGZ1^Wj@AyocRRvN#;|`rOaoU zFEC$bzRq06T)}*g*~IEXU6?(Xy_mh3eVBcj{g?xpgP22^!Nmw6xaLFPluN12Z? zA7?(ne3JPTb1Cy#<_pZ1nXfaKF;_6(V>an^q5AgE?7{5C?9J@M?91%O9LOBR9LgNV z9LXHT+?lyMa}0A|=7G#ZnPZvbn8z@WXHH~JVV=yK$(+qRgLw|~Jmy8rOPTYSS23?) z&Sx%UUeCOVc{6h{^ET!k%)6NPGVfzP$b5+TDDyGqcZ^7?8WTO?8EHK?8h9)9K;;T9L5~U9L3z3xjScZ^7?8WTO?8EHK?8h9)9K;;T9L5~U9L3z3xjS0n-cV_O+9K+m~c_8yp=2+%9<}u9UnG=~) zm?tx5GG{Z-V4lM~k9iUEQszA7Rm^Lc^O*~o*E4To-ppLgyp4GW^DgGS%=?%RG9O|- z%6yFZIP(eSlgy`>OPS9yUtqq>e4V+Bxq|r~vq`TD)wh3U4`wfBZ)P86UuHk%K;|Ik zQ06e^NaiT!&dlAJW0?Cg4`d$79LpTXJcfBZb0TvJ^JL~s=4|E}%yXFMF)w0X%ACi% zig^ulK64@Sdge{co0*H5w=wTv-o?C^c^~sZ=0nU!nU66aXFkDvlKB*KDf3z83(S|9 zuQQi1SLpr{_n1YL)>5zb`=ID5zQbCZ_OIbWG$_Y+Uj<&$WpHEiA8;4)RXC3PJ3Nhi z0md^IwSIqt@r*3ZzraVyXW*a7r{KF}`8>_Kc(9HfuY4XPp4X!JKX5epI6RL01)NL% z41SUzl;@6&5;07sJR!*~{_7WamSlWV~f$)0d7*&WU!yTH$r&F~v!0e?ikd#}>+1Gxge zNWKMEkZ-{CUG-_W2DczzhI^4O!Vi(p!I|V=;U(l!cpdpC_$~4e@Mq-j;9tlm;Jf6n z;QIJM1G%h9;4t#%a5VWSoJc+lBjDBKFt~`^3jTx~44);p zfbWn4Vf@afHeXHQ2y$b%FS#K+mh1yhBiDtOlWW68w1;lbn&;6(C!@Er0U z_-Qhp31oSb{1$weydD0HycKrB1C57c*%rf%$gjd3$S=dg$Q$7-@_Kj)c^$ltjAsH_ z-X}i;e@|Wm-y%N+*Tn-7<#<=Z;pFA;NHU%YWXUBjhV#h_;5W&S!T%x8f$xy=m*axL-x$c_4;bdQU5ZMA}kn6$A$#vi@WH0y=at-)2*$ply zJHxf{Fcmp26WoGaiRS}#C;tgQLN14M$z`y75R2^h4|oUpD*P$=clbQ{0$fS{4X)o% z@AnrtjC=;}Pd)`FljZY@=99mLpCHkC2~$r<0e!E6EGt_2hZ*2jsaho*$u& zYZiQmJRNS_M2}~~QRFN*mYfdfkkjB*`XOOSK`Q*#++vJPzH{^5hZSt?M zcc4D5QaFtK6Wo{l13ZrW9h^(XGl4945UnfsAJ=S>}-6h1ZaG!`sMj!yl7(z(0`RfNzsuhif<2$BSnISwhI0;hyA|;IZTl za4z`;_*rrx{1&+Y{(`&~zCu>vS}pW(t%4)SE8tl2GB}<5IGjgb1aBeFhYynugMePKgbENdrN)zm zkk7)W$v?vt26;RDDS0dW8yU|8vY6ZGwigoDZP@Bs27a4Pv> zco{hk-bfw^zegSp|4JSLnZ0r)#| zBz&734mXX|$J-k2NDhHVk%QnIax-`h*&p6QZUXNo`@$E=7TBqsKKy!cb8;QH57`S& zBG-Utk=@{@$3O+&p9=<{T7It|+pN9Xy4avvhPUJ7(hsdA7Gs#Eb734$ktK<*i zL*)JNPvrOEKgoMxOO!s|ci>R+PPi}mO*o#s4StmT8eBl$0>49k1wKyR1Yab-2%9_T z<9Z$rAU_B9Cg;N`peuwN1 ze@k|O%gJWAVK;qT0*)fzy^VE5#xsE|ndDn=9{C3RD)}1x9{Do-75O53gM1FI-(4Tq zuW%H(6dpZI&xcFNkHV%HeO$9) zKQf*PWQiu{z~jhM;cRjSyqr84euX>-v@3-t_#PJYr`|iHQ_?C2fUZ; z3V%;_f^U%(*t?%T{Cl@>9z?za_b1n3$a0T-7H-sE zAJ@-tSMq5%j{GA$g?tjuBYy+0BjcGsmbb`X!XJ^3!6(R{!q>>3z%>WxpE#Zci?TN09MMAWItgW%vp5M)(!- zdUzjs9ejfPEc_e!8MuPH2ChFypN6O42=YpJD0w-YLdG+JEKA6X;Z5WP@Vn&4;Lpi( z;IrhJa0NLR_8P2@cN*N1oCyyhg);cv+gz-P&k z@J%wF31o2^s!v;MxDGi4Zb}Y;)H*Yrwn6Zt#a>XZR~Jo(W_*L#`}Cy&3sW_%68|t~E@buQIp^`46}i`6}Fr{5#yA zd;yLl{{~MX{{k;0pMjqupMp1#zlYx>e+wTV{|Ek(d>p<^{sQ(Gu21J@a0~JgID&i# z?oR#?9!1^{PbA}+K$dLsUU(Jx9k`gh6aJ9=Cj1?F8+?uY8tghkpPnsn0QnWTD|r(< ziu@v+L4F>7g8Ur(5;-5*P`Jd*l)DXXK&q_vAtFd2)aFCb@r%P{@rjR^4o9(c?aBw{096m`E@vzTm;V|Z-!TpUxEwC8{lH{3-BItA$*iv z0Dn(j3tu9ua3y&a?Dvp9%`4#cWIPkdGLZZ@Jf6G=o<^PzFCsq*KSQ1k7m;Vc?~!xh z67p2|G&uvlN}dc?k|)8n9@eLABHWCe0JkTPhx?Gn!Vi%jg44(k!jF<;;Z@{e@CNc= zco%s9{293~{5`oBe1#kho5twV)(y6hJHtWb4sZu@d$=Dt0)CJj24|34!Ar@(@blyr z@SEg7_)~II_$;|Ge2?4^wv5%M%?FMk*M*0WYr_-BHQ{Ws2fT*t3Kx-`;E%`(`~&&k z4J;G#9oYPcKHl4KBl1nSHTgQ+k9-B5K)wXeC7*{?@>zH@`Dge8@@e=R@{jOk@=4fv zoIVZTz!vh?a0vNJxCi+dJc|4&JdOMb{5bhzcs=EvhO#pGw;)#Nqsdh%27 z>*SU2Ve)dgl)MzaPF@Tv@%l6`fa{YVgPW1(z>(yca8GhBJe)iYjwffrS>!43JaQ^r zKu(6YkQ3ouUnDn!@$4+^TDCvjnA`;J zMD~S8k}dE|ay|HYavgXd*$e)WTm!BkyTSDm^>I1FZOJBh7`gHfYyc?;t+`e?VRW zmyj32r^)l+E9ALwC3zO?m7-7cbl8ua4Ywg@!QIK}@NjY(98XSxv&l*DBJu<{pF9qJ zl{^OCO&$#&A&-K;BaeVDl83@~$b(>yN%}PRhntZ5z^%zKa945PdCk^|stWIxy`RiEZYa9wf(*q>Y|?_S3}8{`W3WAZKdKja(mujFg+P4Z>fDNUdLi*Q}? zIXIB~D;!BKg=5G+!Lj5Y;6(Cw@I3Mf_(}3t@N?u6cr*EP_%Qh>e4cz5E+>Bk*O;tN z=K;70c^}+{{4U&;yc-@sej6T5-T|kQ-+*V3Ux$~Fi{Lfn&G1I@OYjcz2KYnr3-CAO zLijSd0Ct|DPxD&XhpfWE%T12g)GjPCtgYiN;R)FpQSIAI zOvs*@mKhmoFCmM~NY0#?m2H2(_jPkTXqJ=>+;&Q}cH4o7`(Fx$oNSsOh*P2o{`8kr zKm3iypO5zEB3wiRL@$eLVgmkdh(P+ggQiJwQ@oUVim%c}v=Ix%GJN_gE@B1xT0uit zC)SD1^cSdvDqTefOiWk&_0Zl8&}<;ODfy-iVuR?TO{fnhXCa0q#1N%{7_P-0QkKzF z3Jl%&^FhBokg|bDR5FxV7`O3iAzBD`rLH2IO)!Ld%5l8!|2uhKwDi76y?@w$+la_^ z?H`Eh(6LiOV$#Iqlu4;+lc%I-WM)mBmYtJ3ea6gLv*#GosWle_oNF2qyL0yziblWS zTD#)u!^y~5#hKlW5B98+5IFpa*)dVnouxmw+^N~&yiTw5_%QC%VASRc;b}SQH{_c} ziP<@xv#=Z=bAF|hpE9$&+jFnC#MzPds(tOdfO*f2-_ueoc%uYee|BsfGhjIyZeq)8xg(f=-h`NiktTIgbp2COE<{A7n~3A+|%A1`Ob~4^~8n` zW=;GmGqA?(_}x?0ZXMD2`JbD09rJlB?`1i4lUIq;4MT3 zsWs!NIf0sT`sJ&c-Vj05G{z(6QNHAIkgrI*<#;TzMZQ`)IXSg$@6^$$D`0&^JN35u z-=IJ1X|U7qQ4cviGQ}y&qgFdCp++I%VR1>Bi1#JM8=twN5bLBfCgu`mbtJ``BX&u_ zd_3Y-!)ws!G1v}sTzNo|`Eyq#MoCeYD9gSNr=&d?Y+fbxie5O-wCJtxfGrolOHw!%gv~B_`D*zs)OOFPq*m z9X5S#x?s9zayHj6%Q067Uo`#AgUsn@&Ni1C(aoZfVL$LXXv zDL!!e$mxjF=T2Wcopd_mOCi6`bEBHvXFy#=3Ye%{h2 zmga2$pWth-YF!$t8yGoy^!REoA=@U7Ps^_sMT-#Q-;kg3rFGMxyINxEpr^xXd;9%^ zGDNR+o_MWm-n{=hyk2P2X5%YGTf@U;i=)?@KgcfEl^bQU=_&mG@)gh`w2i>_9*TGC z9yl%vyf=t<%^Q&GjS=0%EUjI}hC$Zk=&;#@+Xdutv0D^ACS&F^(I&o3y?njj52wPH*JTjYP7O zKq_fE@BPRh-~X+U6$u+W^q z7C9d7ebaDuU~R>)hT&DKul&S|#$vlXjdtsFq{~-`^&>q*G?K5r@?(JfXcVWf*A{Z+ z2Fs6{U2qirvW9g&B#hx1!#8%kszk#QCu0_5d$06_oE)vgkgSQ*(~~9pre`H+9mUAp z?6gc-ZWOV}lagmmmFk(DoiJNM^iRl1)gaSN*M~PCGZ!hd5tfTY@7g;dH$m5sgxsW5 zt+f|Us?w8Dq!h6@x5~;)NY_*7pP6Y!D+WwMNl8f0(K&KGf_0=gK*%k zLy|MHy33AThh|Mo)|I9$1$gX$A;X8oj_Nsd)HsjcS(zc|jn+T1^qv`kD*hPJr;+x&x<2Xcgw$&RKP)0CB& z?4OmQ%~?uTdU_VlOebNslC)9fbe8@5`-l3^3m>eX|Ar6Fnv@fM-;5gR{zfv)h<^t5 zC;y4bxe00MSQLM?xDyhyX8gtE+bq(=grq6C*$GL>{u$GAa{UvN{k2V2&SBN|Ec4pG zofn(jYI-;D3vDLq_8HP>Y($s#a%IVPM1~k8$0SGTADn@;j&+-qoSEyNl#rh8k9{jQ zq_c6JqMd`tEiYJp;MG=dXytIp5NbD?5!Bv}nt?V=BV8+s8|8kZ8A|ci)cm{ieC31p z!zU)s2+y3JZtRBI5Iku(M#GO_#TbEzv=iXi!F z>=%IK4Xl6M4Me<2b`jK+_7oFL2_jp}#o5{_v04Pj7>xTIU*c?fu_YGUb!Leh*%}iWL91h zTSY4V0x`9Lra;rfm=oEQe{yanBb5-Ji@Bz?ruR)I@rmh2lebyUnhAgP%}<%`pvBqj zY<>a-0{PZocT9R_ykD6ra>Z=%nAj)|iSrn*i?Sbo$tL}8uvN*X;mTywY_#uJM3#K* zes|v~Q()_m@W=-`cIn=;_s|ieMvoac!6K4Ij~<;eIxRiRNBB0e_zxY?EGVRPxa`=e z>x7!Md!R58GppD8mGZ)}n)m5ktg7IE&51)GQHC;mqz8v0dyIABtn*JMoLS zf;RbAA)J-kN+Tsm@e*!$wU8ffZguO{4X%rwWyq*8#ynOvTIHn!NDogYy9)+KEwc0?svMd?vOonQD<%$AGFRfrF$xV5Ey21BfIdG-YZ+HkJp% ztgTwNso7bxX3GKOOifNo(+6P?(X`B*+=R@eTw2-Dw&y~dzG;)&DQ)DwsFGb0SKIJT+7o0Fa z97M56;DDMV5;AA!;t-(~sZf5@OH^qnFlA?o%;cE~TEWV|l$kkG(@_kYI2{X6mbida zS>Qr3EFlxs$1UrIt(o-hLxR=IVo98#Tr8Y@|`JiW+qHUSvNO6J6YCaCyU%H z8BNa36bTb2=al5xGqbWOo;!PLGNsfOH#s9Y zHx*YD^+DuNTMp{7wed>C&rCy->ACURRw1zDtcylY8kSOgN_KMcoMf#JEckeRnq`OS z8EKi*bMy|h*y1x1X4wSNGDTYEjI1fiIn$@2K&o3GTY7TB49s?FcGgTWd3wfFfm;2{ zq|~$&!t~7aWR!~as9fn-jrxQnCFCT>PfW|f)`R6Cr*vvMO-j{7WlT@c)w)ego1rx` zuq%#{f+A$kuI+S0UkuWCzA z&YXnJT&B-Sqh*<#F*SF#u{5VAC23tVv-E-K8>P0kBaKC-pD}C6Xd%)$^u*-!`z+m5I?$Cd|PW?A=@J4hR3?`wuq{oEPlYyQIUNIJQUwH-cB$gUT6ir zc$pLFGR8=)#$c%KEC70p)Dg6xG@(ztcM!xt_I+vN~&f^&GG&Ou3ybB*$0J z4fQnD@oLE=xicSv zo=5Wt<;^@~it+`Out<>^&HW8G>wyS*^-cRkE= zc^=X8dObopzP`}4d|!`ixxY^9F@U$yk${Kf@j!3ajtWGq+Um!Ks3GaYXDvYTW1F7*{!Tc;$(IwZH~NU?s4?h+ zt21LomRKy-;;d>f&h(CpAH-SlySRx8_}aM26RfmXx+%StA<8&h-^o?xDd&|kMVLHI4NWa^eW#acm}$Hz)il$z3|DtvF};Z^JMWtg znm#psYbrJUW-2$C%%0}@<|gJA=GNx+<}T(K^8oX3^TXx@bEPOF?=aC+ToKd$%u?sU(omUD=6FXu7N)0|g2 zuXo<=yx+OR`A6rA&Uc)>T>@RAT>86=cA4ms6gO$Wa2{o{|Zye^yk5 zqOa&L24Xo4!NMOdM&PRZgJLwU%a0TBxYuAJ z>Z+!o4rdzbv!>%(;T)X%&&M4#OT<#~gjkMybDl)qj*5J!0M`!Ji5GCmcB6PnY!+Kk zTlc!yh8mt7VyD=JnxA*YKCxdM#P#Gu;uCRHd?vm?zV)>@fy?VB#rMd;eiWz0&&bEl zamwN-d?1;;qzId{DFJt29>pa9ul4X^vW? zU?l|i2DMh&DB((k(hk?TJ1Je1?n*Rr!+y#@Ng~pQ%cYGF_Re%vRC4Db zwd!z4^O!=T(c~Y7gB;6FZysYCz47 z)Euuj7cAAA+ux$*&w4Y+r>DSc!5f3L<`%cbTJz79@5$!=m65k(Gq}s(_Ay8`eWq&; zHQz$>+e?=_+(0wu=%sy8y~OI&wtGx-dxca`KGl%wW z-!%+>BCKm`+))R$?JAp9ul8XWliodox<_CwY8XJp!d^ug0cOdcp0g$PR$VTrhihT2{{L>=cKEja*>?YL?Y8|J?f} z?QX>XKlZK!(CXp)&vy6w*7i-WlolnR~yppE>8une{v0nZnHY_=UL(OK<%POIMh` zO?S*R96H8_V|*YE#LEHg_B<6csbP5Iy%HnkJs9Bo@!t9xemj2hRmapm(=_MG9l#52mX-1CHIr{_1! zt7~Ic-P=3CyTH5A`?~iluNU*^(|qUq2Ka9D-R*nA_pa|(U(=Fh{Pp}D{8#v=`0w;T z>VFrr=CnY~K$}3%!1%y|z^1^Pfo}pH%#j-fM+D~v*9Bh>?hU4ds)t&Io(_E!`ZW{| zR|+=>Uz?ScWy+eKcAr-5wnOlWX}}2DO>`vVE6%)7)#=foS{>Rw$>?z+y{E)$XT5J7 zwu{)A-7z@DMklh37;Rs(lLmt^A$$l}S+SE20|z)1wT!-2rGJNhT+^9C zdoI|SB=cD3^0CtD8ti`#@zSaxCs#%MoAD}m_J$vJk3{7}04V)HekRN2Zu+ro8{)oQ zkbW$7z`xH!syZ(n^=7WPj=Ij+NYwjz zm?@u$J-PYnMeLIJ0OrTq)dIF}5t6U2(N{fov zshzJHY1a*~JuO_setp7DM>oZbn(oeErFi$ed zvM0-WpoFxVM9+b8l)Rl+;5&ukmuX5EXnB6N+anXc##2mk)o{g9DtVmmt))?(w z8_x>f-m{ip;u($SJovxp+3oq#^NVLW=I(xPruR56#a)qB39ZQ~-WJ}oyaT*Ly(7^o zPV?UEU5vHHwTN+Ia7Eg~-i>^V_Ytg_ZbfVPv3Czz%pY_Z^S#8S?-lGY3i8+aJA4=Z zpYw0|fryU-AIJLmR-{ek>AqRqfH9A8J@dA`oRi+x>v9^n@u zkt#0p_3-uf^+U^?fnE56eM5c2eAoC!W36+7Z?f-t-!$J$!1%NEjlKoGdwj&<;$p4u zdEZiA9=reRh||Q`;v(^(Z;$UQ-w)^`9G}-;%wNV|5i6~={q_AT(oXZY^tbhQ@?YX# z!MpqW`Um@m`^WnGi0k~*{kEk1nI6#Q2X%K~Rd$^}9UPgJIY4ZLZHs?a<~H;-mLl^1 z*#E76zdzTX9$1l9HE>a2Lg2c9Ka;Ur_$YBlV4S#4tV76(G_s8nHf6N=O5lyahXE&0 zk$Zy~!Lq?wSkpN^SSQ#pcxrH(m?rv&=E1Xr=LLtOwEN*dCO9#8L-5AnZNco|n&5`u zQ^6O4KLig1tA$Ps^$v{;%@Q}G_q|!%8(I}w8`=;`=bJ;1hW3Vj2>lfLC3GOf!z!E} zULjV9vf+y1D&d;p3&Z`wL&GD&(O6A|%b!U;4~SWrxA0f6ene6>J3J@+fLM&shs9Dn z9}`cD=fzgx&pbok6MkL1BR&+n(evLI{suMr7ms=)}!Gk!!PRXdIb4R z*xm^b;w9uK;l1HHDUDLjOlg-gEAuMeKBaR?MOjgHP3e_#Mas~W(J2#BW~R(dxh>@? ztb$dSlxBGfna`!XpW;i+Of8jKIkiSAL9LrwoS&82McY@Tbx-XF+tsO4QpaJ{Y#d7S zCb*a4PhZJV{DX{iEosdcQeQ~DH+605BdJ>f>CM#lQ$I`nD)q2W?m{w^QWbO zH;kb+%UgJ#JEeC`?~_h#{vh~N#=0U_*5D@dCH$vjAX6D8 z{bwV_g7mx7H>5wA{%rcI>2IdLo4z~!i}Y_btQBedv?()Iq-Elts4Hbu$*7i5GoyCK zNg1bPl;LIgX?U+f@fv2#(mZIEaS>7u%ov+tW#N_#k_J~65+z|7wz#g(*p%^b#$!mk zCF7-x*E8OO?W>Ff8KKP7%#6%3nf}ab_&3lpxFT&lZ=Km$c9#Ckw(z}3`;O;*Bjy13 zVf@C2W{!o=Ec|cET#@;7=4+YXXG-kXOQh>iKJ|+=M2e;uR(R{V>O`pG_`?T%20h&{ zYm>56*?RRVWF3D(J#3n*T)8qHq@z@vGb+SdW1?Hn0@H?4$3^e~Ppe{j@JVCOKccEv zWu?kSeHW)d3v1f4UCRr)u~vstjW2CAnVsIMZ6Hc@YB-GDvG}gVtJkvzq*~yA_9aZE zl})R9Qfpw{y?6gXsYVqiRW_@*{otukGquo=q6TPo(dK9RZVpcE3! z+7^{p@(;Hn@ilClm=aO0q{ynB#v1XXtSB(zG%oE(_8@pV3dJ`zLy>X9*FcK^)sZ7n z$sSS6i_vPkcHwpfDzjv}3I&dM%gON`hjO3G`upbLt;9TT&3Sx?yj%^DLu5N?LK2^D zT#DT|&;sMQa|8Q*-2+nt3j<#Nx&9&kH2+jwd9lQQyEjok?td<@J{0*UYs z@AFOI8TOK|7T&|w`d#VMgQbIK1mE;^m1iVqw)ZW8qI>9$r)IoBXTv^PIR8w3FJv!oK$+!@6I`Z5x-OExu3e z(W}p(1l3n>x5ifM6usd(LqDS*Wg?DBHBN@DWjo^OQ1o^~`D(n`8_LPP8h$TP02|G# z;ca8A)&T_%N^#_x@*B$Ej^udc=_v)Fu+mpl9mX3}6SoS!(pc$hinadEELD|NC#W8* zo=OI%nQEs7vO7ch5i|Tk@m%pucsiwRw-hcMSC~rJ>A^e+c->To#Oz!bycq(9bNdwRA zyoIL&W`1k%opTpYU(XBtYR`Dj49{EG|MC^~zX;4lZu68C%RDED2Rx5>p7+$lS0(Ml zo1TkAFY%FQh!`ur^z8Rc72JD^NbxQaWxQ3rE5*s))4dO2cg!}iL$vi?=>1&m6Ft3G zdh^8??+xCdEG4VRlVvkG*So~K3VTt?Rg>JPWUO^7S zzcBq6{|#Tf6c&1T|Hn9KhSBVyRLN4+aWdZ_RqsB7Dpx(UV!U>#l$0t}YE?0+K2&*F z@j|zH^@v}LQ9lsaPy|(-u?-tovt%(#mMrkSnC0ZoVU;p+a;;81!P<=3vPR1q#`avP z?@QRQEHGYgcIl1YFaHPcSjWyo{n7` z{rN!tn%aeUIk}yAPVOR4PHr_(9Bbkf=NYyRYu-7z_4!*T<>Wrf*ZEJ8L&V)8C->#* zFIT4+iz~G~`RS7z)jOjKVcJIgrqf-6G==G^>_mj-q4g^)#y`P7H-cTd=wEld*m|7d zV@_`Wx`sEWh>Xl`;6qMsb+k8~SRLM9)ZJNTa=23E|; z4Q5fA4x%f*HOtBU8UAZUuVTH5-GKaR9@j^hG6=CL2wCI_v5BIK=m~o_F+rOl_Jw#& zt*JLvOcnFt@0DF;FWFxb)Qk0VwR%K7Q^4CF5GPufs!SzEx>NNoCv`dLfPag48F3Ey zb8@#8#C@f}X42L??uBa4Xg@1aBrn8`SWQ03{3#as|4_eWjm{0Wmn9i{ggwI6Rd~7j zx(Y<|Q=*Q>{$4pyc3_jxi(epz%PuF40+&7$Y0BV{lY0S970M7L#mSI<5A?61*Jqoy( zlS?(Tf8G7~5^!?^N_Q!~v!m3TDwn|3(_|}Mi=K1!lS;d;#bypoS7_Gn`mECuRVOpzE*q}Ho9R-vjEvhHfir;PVRGQ9X%aAuP9n)T`Ncz z_Z0W^C|$nz{4x(0C#<@HhauKkE&|`mX?|8OHIwZ`+K%OR%g4*lWLL78>^=F7T+3QD zYFT4NBa(xhT*IlH+(6@&H3m1{UbYL`8ms%K?y9@1Zt4kE&Zrcq-Zc@AXLK$RV$brI zxRowS^8iYhN|b6{MkbkEQP+qsr|Ht{Dc01hD%-PpDC1gu8oxV~lY0+JDits<*Ssku zy2D&6uJxP%|3N6-tKqI5;c5T6LnPG|NMb}fjOzg}`MoP2O(D*HBHN^rnUgzO!z7!j z8)M|P7)_9?s$5f#%x~pfc}3X7I7Pk2Th(t>|CUIqSHvWFu`m)#F>Jk@Qu}t``!@ci z3Tg(0eIF>f6hHD(4}72qn;i-*>`qXxVdeZ%sA%Mn89H zxX>CLQ19L0>dG#$OKOsKp zvm@nV{mGn;l>H$`yL2l=^?__-kX}Uix2}SXPi>MZJNHSL-vSu#f_qexOo&YpO_^y; z&Ouz#ugTZ7v>552r?F*V<&Si_KbS@FwwLW+_f1XNuDThS2TRv48)BbfRBUs|t6u}9 zxfHa9*jtD7>n#mLw8SPd|OUnD<3c`ib!5+2{l6Xf@D(J48(`{4db9@H4+MgblZy&dp9jQ8&dxVY9?Hkki)b?yI zyH~EvdL1sqQ%dz4T#HWmR73BpE>l!T$@Qa_4U(1jG*9#D6E9tTJio0;%NoBnp|*-@ zl^xxf7{hgHD)ZWk*0E=K6Z9>UECzshR>Sr%Mr)@jyaLr}6!G7yaV)2r> zH)qdjeTy41W9h7EGpD=m1lz(kcit!#C3qKj%%8pBcG0D4w@cf1=y-1T9-S}fbl&+F zUvk;yy)L|{XF;UD+QNlY9nX=`|S2(U>R;9|vSE+hJ zwdyr$o>;4Pox1MPeW#w*^z>$DG;h(e)tP4%c8K4&YsXKRIBD{AQ?9>Z>byJfRrdgP z8nhoXophX4(E?v@T*xN!);P7RrYMi_F}#xOfv-R)v^6h}o!yt=aH*Z*3mm3g8eec< zffbqRax8CxZ$^5;F4$P!KeNVQM_mfZJTrq;Ol9%HBkfIg)l6OKrKLX=9vJ5N3 zo|ntL40R%QY*$r}@-nQAm@RLVGeuuOc!uxbAK;{g ze%R68hpks+-_QH9@|X>uAqbZsAP&*{*vsHK4Lb+Qu%B=i!_WLZRu}J&%dl$dXJA#C zEmoCTeZ*LfeZP%yHris=3OV<|9`~EDZ+$!Fr1e>6{1>wi#B%t&gXh&E8(c_X*8=J& zu@fV{GFam|6X&drX65+-HH}@Swu#rpG`)Yl62Fs`WxpYZ6!r`-rt?{#pt8}_MZvuR>6+mGIuDEI{_e?x9d zk?V4#TMDR@gO5L<%3_azk53SJSm&V~^x3SYIuR+d*>tf=Sg6@-Jm5_f<#_}7HNw7y zJq39zWivqIW>t<~q&o8%;&Jta`U)Q~9{@6^KBdnvm{5|v(0Rh%-=T5S>Icx$#$ohnadlXxF? z9rEeJwurHOq3VP3d{S(d56iji7IrIpTs{G*>xgn(3Q1WGx$Fg5{6zG^DIIG#N!%7u zT`hwwOv4!>)7ZnB&(i?!DgGp1#-8R|_?1}cm<9|_1x-|X@8I3+680ME8R4AGcF1@5 zVzGb~!)~i=_5tXBihqc;rR6%+k1%h-i5E=$fYQ5~-4EHp2l0?yrrzP})NaUmHe_@^ zO7#Q8y%MtM_b7EWYbYKOOoc%q!AR#VQJZd(p98D9a#aLp!s};*J};U`ssl^eR+M8S z)e@uM;~mikn1S!m=IOkyLKv0aDm6Fa(~B)p>s2;erDlqWfU#JtQ|G`Zz&0WdzE2Ug zR2q9!^h8dp)R&UdEoSS$$MtH1*r-}FM>GZ=&w;=DBuT)_kh0e7RkSgF`8wpbuj;2h z!EqvwiqjS3m#r5YL`y~Rc5;%qY<9Zb!%5;=!w(oRY89wd@CqA{(%AdzfJ#vZk=J76 z)|zoo874g?Rehu_1KbG~r8-3()RNVaWqP=$7vd}dPnt>!udNp1IgO>@4ZnjnDGhNl zSaE!XR|(}>PcG0omd8H8`goszC#xhIv-0wGwU`A|L)3x#>|L1DM$@-H3t4m40(n+P z?!{zFF$j1zmDJX>W*@1Y$g3k@c4T{01NoWyT%C>Y`=+sTWP8xqQFg(pfvrJfM@Ssu zHVy3>nf-w6Jb5dqdOgbH9`uAfVNZ&uEW1iRuV%3qasJ~pR#lbs zER!#)i^O_$Eo5~9WS20RhWc|oYVmZqFTm>iD}cL84G;^_!Y*KwZ24!@Ay%6{icc@3Ls`?=`0~9WUUWl)@0*ZKn_EyKKtmY#n z`E!))0-SME3vQy1YI-e{$_(AY)yFqjRNBQ=6V_anLJfGBH$~YR+}f(sB(-pj0JkdM zXjD_@!$$oE(KkGjV+U~fTsa$Q2)p|1W_2cOsy^hiSx@ZAS_Mq&5;p<0mt3#fs*S1} zq^yawQg*)Tt!O+#dGHMsN6;Xf}GwZ1x-egw;HxB6B7D7vfLa#~Y*Mve`jpU}mGfjX_-+4XD&! zEm7myQk{EwJ_mDOf|}{c)-Wjj3rI^a7ei-5Mqj`Qr7xjJ-HKX4{bNhOX~J#K+D!M? z`&1MD5#NqFMAYw-P1sNJ6TEHNjeh4hNp-CcQc-WnR2McEEoBAt!`lS)|65fb`2#|K zWZluqv;=(<w4T8`nJu*Zhln3m`tC-KSXVe6wl zTHc?^{GR=)4&a@jMzcA(O|P!1E9@X;RY1*PmZIh%q@(5twWy<6Nk!Z#qX=p|eRpBa zRUuA49ltNen6&|eYWS1r%T}om#6~d!BM7%X4pxp6jS=mqthG~x|Pr}A=EWaFwS~$m{7LMQ$R5IsaWJ~QyP5lLBebGQTP9yY&6lN4bZLZy| z^s|kK&aD=T|kYYFS8&t8WYDEfgDCg^8PlGWzGQ3}1`tb!2or!sb&#}LQVc=DqfPp0Eg8v~9cp>GXRH5UZc!G#8n(?+z` z_D2h#f2Q*_P^m>VP^m>VP$^}!a(Nr=OHiZfqcEb#(6>i^3j60+xk^Hx#>CJ^sS2l$ zLgN+D7pn-9&6-B?ry5UYJ>*|sHqf+^JGp99kdDHmCG1p`emvBUI=0JOO4CtG4B1>| zDY{g*(T?MVd|2KZ37ZVOrr=LCa#{k8ro>!$go%jcz_KBsPY1?Lg?631J2+qAyli`lvr4`g#_mH1u<{(T<}uKZ&A%ZpC6@ zI8G&28DB(K(O*DQSd#)Mj#C+FPsX_lr|40ENlEnCR`(1Ym*{JRUfgkrzNR`q)Q^bi zIHnhOoVJSSbCuU~enA}9*R}OjL-AJiYP{DRj^O7rT!M5<)fmJX$8AkB{mEN;PWukNJpN_Ls4~i7gX_PX`nl`NsE~HZ7GY)n}?{rsmkT!*MRvxa{UG zosQEFvrXGynlg28Atv?W)SnQYr2wf-r2Vxu$L40+Jhvon(yKXh(Z9#?#=(`3m#{}L z^QN@ab`Wn`;~ivte?sBZpAc4#uGAXM^Ov1{oIaCrx;@pyO9GrHF8M_^6xEzik7-f{_ZZB@VpN-^X z-O(j#{ZRhkiD}!LaodVUw;|MDn*PL1L-pC#9P*`B6fKg?Pb{>yf>xBmNfDj*BXpHs zpE7<_pRLW*9P4t;MBJ$t2j+4zOzJO5QGc>bzF&~L@h$8bTcQ-p>-i-nZG4GRe`$K_ z=>C#qp%`YQCZFAyJ-!00%43F_ybalbw;Cr#V!ODxvf%nf+o%+zBhw{%wWLjx-34TXU$tbR6pCNES%763uvPtQwJhQWU0*^sJJ6t)w(ZZ*674 zNUrHmqI)^&Pi!w|BqectX#3l~EKwG0&7pirx#L6AQZ~}~ZwH=Ys2TqamlolCe%ubjcZJ|6|Dsp6A+C$? zI=)Yd?{7_?Vz5da|GKTHtV-}8e$HE|8lG$laFmh$!?XMvloV$#VVTSf>r}SPQuw>H2XF1 z=skgj9BUf>#rhTIvb6&}Wz+{l&34vIEv3OKw$&i0Bq@d04kIar<(}N%j(jN8 zjC`WwC6+{Ct;P;XqkvfT7S@m*$IK`l=Y4j#+Cg*nwu|D`qrjuNFy9eMD_m2d4?zHlw~CSDJT= zj^nPF(R+_%n6+melKPvt-LSJfI#qAHA*PXUfA|hy1MwV;|8$YKVrF`-+r;hS4(v^K z9Ct=(;n8~xYd14Wa?NA6vD+hgZWPp08D-jB(^HX8d`}gLhIJw8smkN-E9*n%`}$3J zbWar>dT2Y%D3i6chpX?!^vKNgRDJMn4Wo74V>r&B7~E{`W=1(ihh3XA#x&f+Is>~7 z3t#)7o@yc9lo8A&c<*Sqb~sG!XvJa@ZH~k_5vcz-N7nUqXOuUJw_~+hnE}2NhUWg6t^B4zhwM$W0NhKpV2eQ_z|N?Ra6O0Be?#Mdv5+&8>%aq)m{Hto=Hi9J;tAwQ^$#2@w0rQd6czBoBzM^7TYgG;}vf=@Xf-AHUAs(=GN0Am$z7cS=WDyZ$!1JryTp<-BmU-Pc^G-j+2Jn z*@>%cmSgd&Y>wluvN_I?t+K`MraRJAHo_@>mCbPySJ@2ii7Sgid~--Ei`2F!quH*q z#nZeLCk8D?I-`zGnoT)pu=v%~e?QIfvRwxI56x=ozqg#@X?9nT|2;I*+gaO&C4W=! z?=I*64$Y49_m{J6?XCIO_Ek2QqMKH>qf;d7>rMEf`DbCow+(-!ueUI*d5nKYHg2$d zv*tgSe+vpmMuh89ywQywYa0BI$)7DpYr6IKzs^5elSmw^|9Ne`yL0HT-UUEqTh#f9 zOELDtM`}=XElC`y+c8{hD@|=a&B)yONgWN%?3MbvDK^rbd`5Pty&jbA@0yVr9Np*9 z(Xw*vT1Y;FH?!Gzc_|Z-DaVPG7oz)Un88!4aO5hsRWU0~rwn}1x^==;g!^^5W`6en*{66b`;TNHwGbhIcg#k6}m(C-Wv&tEn`|0jHdWdBQ?tN(2B}9b{7G~kKPeZ--y!w^yF~ptBK?xhxbjs3(DO) zMi3U^?PRi+VAwZDsJ*ppwx^8d3W?W!W?XG@yQqDk7{!!yF?7|)`2 z!`c>&I72G2Zj$fc%`?jLNLAr-=Js`qwERYoo|E-;Cg<2TjQpZULxuP5McFlcWVH3x zSVzwnO!~rm_rt??c|vjL#jKBJ$MuFTw0|#8+*y|0UH<3rgzD4LIj>AsGm?#oNIL$! zn(;@+y+&3GuNkp&fB2F9AEWr+Hqv)ng8$0g<`~6^>qEz++La2|_D5STGn@M_wOrDvxYIBwyapK?Dav8e*OD)$iiboWj&}ew^_s)-t(mNTviuz1kD?3!nb)?i17W3FY zc@^y6NNsoB_c%^s*&3-x-eUdx%Jvwww*Ng=wni3`?SwHQ|KwK6p2U*8-rBQ^>qlz6 zdH3X=#A4`+ea?%-jrEOo6*j`9IPOU-hZ^BhOp7_$6V;88bEgdE^Ypn>(Q9RH3U?2d z_3KzD1x3M}_5l>eO_RfsV;?e7qJ{5*RlSh@Ot5LYZ05o zR`DAA1ip>cTwkJuy!$vwEm z@^ev-r|^nAiw~3Ikk5B=B0rut;Zt}U=xmuSvk;cWcd@V7^~mD~+&20Z?!GL==ZbHD zYZ^b9-y_-s=40Y`UPjGwraJw^d8(f{2e=MZ{l!jxm6*+M*ZK_EQeNj=t{l$AShYx8 z=lEp0%E0ZURdBEJBGC`}Z2kp1UiQ!X6gN$t#h(;a)CeWn&*Cn5m)s|=Qsu;pVrbqC z&MRWy!Ke5H`4sUcZ^84$B&UDg(7f`Z zs`BG@+})z3I2rehUMcsno1Ol6mX*8mhRfmNd^ORjEc@f8>?zJm;zyLhtKxh9DQLS- zZ5O@eREK!;GtWENmcP&Uv8m4E;KVqT+lOp2?6aJkos_&;j-PMiH#oDL>zz;7|I{b! z75)oK`U^!RM|u}e6=`CY(^#hDy`!GxQ*rO(IF^z(j%D%doZa|;!5V-Y4MAlJ|5CN( zXY+BmKkz$t4u6Pm<~KQ$)MV9`O>>&adqhA4MM#9j3~(fz*AJ!fp?r>?tzP6C#6+QgPJYOq zls7^y?od;mv0{kW#($LiWjpz{ob3E6bL0VegOiK@_0Cu747$fxRu$veRe7(gow5XM z{lJlSykFi$a;SJiZQ&k%fjmVuQ0DC8#_Cix(mY~94{@vQhpfMP zgMETBz0sM5RNKI{p(um0kfv1605x2FEzXlY)hE2TJRWlNDgTu-QA|A|>hkwcKTqNl zfzwQ9vNKdnb}pA6$&Jw0!*;zhOZ^HOb8w$XjFm7~)!^4?XSskOX6I671e&U>8qm)WYndRF#V&5*-Tah-Y&l01svhr1CLiIVaS+=1Cs zT?QVP!T;v`@A-p#rn5ryfP_8FACvcqfqBF8R*FaXbh%nQ$~UM@IQF@_I-cLEI^wp^ zG+9#KhIBXQKcpq;8NORStZkd~DdoF7cpX*FwApiF;pu%{Rym@)`M({6KD#pYd&SFFzn&Q7t%=Z}E*XUHqalM5ZVv zii;9rbN<_WI}hh=#9cTYWu7=qj6`cqk~EU%syy8C!x< z=|-E4vPWJQz#he);EhDy!BMzfyfiR5US+A);#=j@^=FHEMm?)asB6V2{u9se6!R4K zl<=hF<)C%G0srpmb}>ek^3*^J9hTjdRQKXuc+^NWUELwdBfm+yZMd9wN85NmQe@yB z$#C8}VD}{2J@>TpZftnoubKz1;;ys}azNgG-d+vG&E4J99^7PpMV?Qcq5SGW@pOK# z{1%8Y&ml=_sfMG>$Tlpmg&2x-1M&v)LA)7mDekT^xe|=;pHj0lIqZC?k zU^)i1BAhoK&&hIoeka^;Hc4KO8;|ag4@o+^yOMfT(zg{GaEI?a(E6O5k5Pa>?@QdU zy<03)A4@vFTgaavGoKX`}6#H6>$e^CpK4Y6epnV z7{|J)%HYm5h&z(+mEBPLx~UwIj`FcmHjd>8f>#Z5z>>}9S%pay^$lD>+ z)5Nd5ih3x2k-7^vsgC4Z)nawO^5;E=|FhspN*?j&J+%W|$-$rc$5nu`4*&H?_fY;z z$bA&<+|J?~)i(J?{$}+s!am0RxsT&Nj*SGSPr&vo{&{@5pcZ2syA5SAia(Fi$dDD( zkLo9c9#FUAW>M~uo)2*k>?poVrR0V4GCkDxY(QJ}9%|G>`NWxD`83%Lco}VMeve;l z0=2v3C9;dWSap?Mz>T3|vzW%aDmvkPK7Rq2RpLF=HT-nIcmXBa3;#~+2lYM7=}5g& zU5XaG6Ye7J#6CgU{>tn_afax|Zj-kG(gux9H@;Q_oaVJBrf+oD8HO1H}UKXWw z{CoHinIX&Q8or0^Rv)RsvXguiSiAM{A;s8R%EgF5rHjW3+8}Z>R$dTB6+jDPPpYTX z(?~@ph7*mQ*lM|2(#;YElS-U{=SIDcct#NqIyAOe4Ksuo* zPr?T7NQ(%_xEB?va4#ysAs!gB6Laq;-opq_^Q2Hx6mO5V5q=Ceoezn+gJB!;V7RTj z6AOD@hy4NhfQFmmA%9W<;QDg`HJ!9y$%0U(c|e}4k&bewKdB52$L38w6oWw~$nQ2S z6XdqaFZ~E#K&!@UDqE zEn>6rtZ8{*IAMK>k3_xUfbpdm#!YY;BbY=bNe0P;Q3ey&O;TfcVNI8dkt9)uh2nZq zS}RSKGluW6CGVziZLyR}sf3yp%8|VQ0Bm zTF1ANL1WfEZo-Jo!gd2z%YG4u48A+mW*Jfi|=_Gy;9)&}qn2EVe z(11+oS(s!}Dbb(c8IycT85rHb4_h~gGk&=S+Qe|5bT0>eTRj1qRFwi5HucEd(&0)H z*=(y@Tc@DB{gTpA*v*mBcB#IR-vLdSP)t`nfckhSwN^#HsioUKS|Ym39|O&W>Dmm` z63CNc6MxDT*bNW*u{9{|PBE>Ai%U18=!O`skAeL`fh4D+XR_@iNip#*K7ZGTN}XZk zNKfh^8CxsYBL7%zpqNsim_~}p#+d0>D9okbmaUEu_pqf%I9a?%iW#ebr|~tsF;o&a zNU!4)*gm$NZ{QnYGm1Dy;S3zHJaKK8=yIP>AUCe0Q0jGZT|pWH&3zIN$VHrpRW|2N zny(WOgTmb#e`w?zedCWw4g7T7>J_u+AZV7%U z-ne;KdW;WIX}CeADI?0)&6}jg#xkanB#Q6G`$*G<(Si&}f?^;MUrZXyD@sFeUw#wo z<$9erW1fgfVX?}TMy%hZaj^{#7$Z)&it_IOO}QNxDYe)bRK}L4HeLIO+!(h>*E#~X z3U5=8!*QInO=W1LQYgVKuPDs$z}j4wo6hpUa>DX+LPRc2Oe(SU@`{4o-So+9hRSGK z*U5=7X^CSt7Ma8a;}gvf;$1dsh*9lztO@KXIU$bI7KeV|-8(V)PzXVxe_<*%%$$<&OkmT|TT$(B+f>6jgTIw^gE@^wNG(uQ(qq|p=xF8klN27WI!DQy;T}D0 zX&5{$wy|kV?Trr`8!6#fnkePAI4&998JJ@Wa*WP{U>o>1087HlmaiL&pwK@W52Dkw zTw@VtsgCbc+#B{RH0o0f?_5c;Hn**Eaj-U*5^EzUTjk&XVY6u34Qei#13L8GaMC4X|+RMfu^H#!uw=5B5lMywCv*}j0+Hjc@e zq-i`Lkt=x*8(TJnJ@xk%3YpPkA-4svF(`L~f#s78A(Jq5v2{6Gp-BC`ktCwP+AQpg zwbU8TcVMI9S~7|y3u;%ieA@K!X8XgA2`wK88s%>Cj+K7Hb9&lZ94%{<=Xl`dVpf=p zQcO}V=C%&FJ`_&;?4Y0fBJx9dQ=EMVNsk2&jEziqLm5cp3;d0*+j3ESn~LnQ@{u@J zwtO*gOlrcw;N_OM!OP-Lt%_9!Ba_nj9f~i8?-v9AqGIOa;M&~W_G-=;noYRH(c(wu zPH0kvVP;F7u(Oh3pqZz`1eaVz>Xn72LB>2z;q_zcUQA$|!<8i0#@HN1n7VB*VMExB zPiP^G{8((`fWvuPkuh=8UW|OkM>s$>SJo+x;Zn4XxMMg(zE)9Bn&`VzV??|o3QyrK z?3*I}TRbg0feFR7r9<#7KWtuyG7l$VW8>OJg5}a^A;kKIB`Ngjs0TJX^FC z?Zi2vJx1>PSO?KjoGUts^The$0?`?M7wI|8#o`jtMRXP2#HHdgak=O&dT4)==vYNq z#$#%HVtwN=kA+fnmsCn98ybzHffEhQjh9GwbeOTfmH<654*Bdm zNMdJhtff;2jiS@&O)g=Wv8U-V_N9jXt#EI$r4=)ZU(O`QQ%Sm^HTF9+dfQZuRY$11 zVn**hk}10Fws1vvXGg30S`r$thVZ1Daj_1J|4x>;V%A(XN2|RPG<++JEgBBlO$_5p z{5NILiqXw&Mm5K~w}>^;?$X;Y<7aJd3=`A%+gLXBPG)?PhuT=lO~NZ49>sKF#oG)V zlcz~}wx+~NSv<}*zJcmKjlcW6&WX>-x^0|jx3LqRhijQ)du0pDmwE=rqaf^^_|ot}R*2XusiFZd}ahy|VGMw&8gOntATT8*7HYjpf2J zJ|-kF)aF1Eo=hdCu(`MpU7LkqeN0>zwxPhra!ta*Qs>5Y!!5i-Gd>QvO)Lx1#28jk z53QTtw3D4ovL(iF!z`Cdk66t>1{W;!NEGp}${7+;b;gF&*Vjbp=1zSfsq$!9qf z!&2wQc5N13q8T5@r#VCM3`AcZX^LfS#^t6n{x(*uzfF}G>c&fMOP0dTDc)vbSbuUy z;~8zYajj{ov+h{aLX0IwY&z?2W5xOx9_q$RZcBt04a?x- zJ}nIEL+)riqwO}XH7#}49cx;M@urPs{Ws@Z{7lZYn~D7JCO={`E}M@0-7weJ_}LH( zBRc%h_GBpx2FaclmJMU9t&GMq+HT`o(}X3DG0CwI<4v2|Qdl#J3k0iXK52?&ZN}xM zGyd_uCcaH&VYsOdXG@mC=9Fk!Xf}l0(HKSBZCq;}D$GE!P@_#Zwefuld*zJHq3Kv$q&BC$%l^Fm`rCO%e5%Cwu|6iRL_Zf^ zw9Uq|ewZOg%?NF1a`RA_(L5^o{LR8LIpPa}2xnZALQE`Uv##ir)*fxz*amWZs_2-> z>~5}ZsD+eh+Bi1k@8+97kNQxTXSSC$cu`+WJ{C*s8|$_%8{78a*1u?`NgW&4LP|7k zJR8DTYRovqh9@)Q>4}a*;}FXO3)`4(EOO6?#53G+)0kKk;~3wP@y+nwa7RJ1+*LNy zSC~~c>M@e7ve`0-Uu9!at8CaE%PKH0PdqO_`6^p{Z+E1tY=l$%DjQ3(%4Tp+Tv^QYqW4Mhv zzMTJ!G*d19@6n7Eb^S(&+V#JyoJ}9%K7UVN<>Rq$gbMGg+ii_Wsss#GOaXr5l1qPZl#@sk-8nv#J19pWA;n?9>_GR zf;P;TLdUZz?62GR@V3rrd(^%MgF)iH2lCH9#9j{yKa!rk0WXL1B`6iCzjv<(<@oos ztof)JRw?EaZm*tykhGB(vW3Cj*qNQ1HdbB;p1V)xNN4aaRD;)FS3}}+vV1tS>9(qr z-ta5`U;wG#`>epL;`o5yX`t=Tbm*wackN4Q=tQj-+?!s%+rpk< z&$8#(^XvuoB2vG^UXFsXl`ZE-$~BYRaE;C~UBd3fP0)sG7PRHsz3e`AKU>KR*H-Ht zcQ#Jp=0Bfne-F=o0*h7`&Zd}p0pCNqh^=O$;U)CoMs$H=e#ocD3ErSADUu(8Lx@| zeKq6A<_SkW3Uu27Q$o>le{R;mY{mNAW49!HGPROSO6L^ZRG)|Ew}T9L4NUSfe<)C?=`?@0IZ% zr8u2s6pYPnTU~;cJjB?%u(tZ|Scm#WuOJq_4po#9$e$UqL^*qMRD|dw4;B199xggiol`gPJj1W zS?8$zR2S;mWOAuK(!QAFr5yj~tPD=ov=#Lo^IuQxP2B7vxLLmeJN)Shrv4r7IVZ9n zFjt#JT?ai{skPkrr%`*PJ47rUMKjGBcXYiq>HeMd_C`In_~%ISUt6|o;;6OnRFao1 zV`k-eM&wM0nc8&Ql4SBk=L8>G&6YRDoH22ecHOL>bL3o@w`hA|I2q^`^W=HWlhK%$ zGG;2jCidx~Cq ze%)I?8B50VXv}}#n{O9$v&SM)S_~f!jd|g3BnOGXVjiU9O0kvg)u0Y7!M~3RgCjlv znw=s`B4u%B0TphJ$!z~jDwd%v2;1dHH5HFX%HoNmnu@0)W%2Y;O+{^K+Ne6x*6w7r z!S(xR){B#*sTU_7)l@W$ltrVXnu?nv^n(IZXGW8V%rS@Y;d}&cX}gAx#65;r za&te{4Y=9%1l$)pN6>wBbW*N4E%!DtPu!0CRriZoVy5^>%obC{G%;Pw5EtWyk42Fg zjLk7srpf{AX+B5{5?A8BHS2Fo$++|~KdXeZN$_DgpTxfOxAA?!d)PhxF!qjbWv^lv`4j9l zww=AswqY;%o7h?Y5O$Nlgk9~A>)q{UpZjz+6Fcu$VHfVb>^62gy8}DKv$0QnK3l+O z97Mat@5a9Hh1j8b3%ixg(|gD7(!15N~0+`DN?-j?+Y_CIkZzNGjZak_#<4$O;r z7eTT*)Qx@=0FsGV+U|o_8#m}&c_!%QvQIiQhvlO*k9r%>#x~2xVJc!Q`_^C z_(g2zKZ_IiTY#1-t>4>dvxxF(c$)VJMCE00wbTAMMUeH?<$MEMEa;X3;u5J`aZt2o zKLRpAh*sZsD8_^NhQI^6@IAwSizkrv7pTM5uESLnfIO~Bu9%pH4 zuVBB5QJ{w)JSMIIcP_)f2mXB{bKHJ{)=aYbt++2m%K4mD%I_1OiRFkxY6EU}Wb9s1 z8@Kl|_K?_#=fk+kw5~qs`W|sI^CHE2xWSmQDg1iealMOg#ZAeTan3oz7d-X&V0~Lk zLwu1^AMi?`EqR|E4_kADlOoA{lV1c|4rn4*IsOLk%*ygse1dkjM@dhIts9@o+u=sk zOZk^N?IivDRkQ`>M4<+U2i2!(pxX2uukv&8jaUi31LsHYW^>v1;w0QQMfv3DCzYd= zyI3)P6)<>AJj-9eZR%siIB_j*3m=b@$9sw^L?1B_Wv~!AK977p74M2W`6}Elz8d-s z@eVLtEk1z#Is6Haff~2L$e|M`G+#~jfxjttdY*|>&}&3+P6O<)sDR!I-8_j`VLOL?g=bIvKf%8T&%x8E9DW7= zLbPG8;f8YZF)&Nx9{BUMjExev;D*}U`2vK}`Q{Ib6?ksOf1`LroWwl59`os#n{g94 zV<+RLfGYTw6Su*kPFcxrESiYx+1W^y0bXR{)@&-j5ZuTSH~uo#8vi!<|ERGzUQ`pO z;O=33;fmW(Db|TX@;W$!w>JBjT)1Do7W;?-7@aN8*iDE@+3Clh z*VqwGckp$H_kdWB8)cWn_hI~3@HKoj%vTVy4CaIQZ{X>0(am`&;w(JTya`(&JnW_=X?GGo{#aD`53VVdEXD$Do(MM!nPj&wYXJ}YI>@CLPI9#-}1fu z8@>|$_won$I{4g&yUm#p99K`EyYxzJW4Lq}yfX|`Tq&>Oc>26hu)`&h01;>h4aANM zdeD*lh(>^vM|r>sz?B-X2cB%%nUY(UBG=MC^JsKmj3*b&X0>%gcfp`%1RxxE5253Y+^C}Q0IC!O)mw7y1JbmC4 zv`v!4B#0i$gZRXy2h4(<0RaGG-0KIL5G;is@F5&qx|bW}hvbv9%wq@X{Qr@{|ZA_FQZ4=^BP$S{9GiTDOXKPWvZq(B1AL(M1c z2Z-Pd*vSANERrN@=s{s2MaV!AU`@7h#y-JX3I+hmPB6`d0wy3Vq70TA6wyZIr!m)n zHAbL|d^Z1!R?oo$dJfO(H*{Fmh%5SL4Y}sZUVVpU zjqEvWK+j%-`wnNl2lpI4yzZ4l`&=^^p*^qcn|0+i!$)NG>YLT-+>RG?Zqc!`CX+D- zimb+@S;5`-`u1L}@6%tCuEHE)C1w{7XieYOuEF=U>x!V)<15@`dIM%J8}N0m)tfM{ z*@zj@!`g?w&wU(oq$i;1i`pmI7U*Z7&3CoWV+IwkU(jFMzKFR|qJ9~3rmfJgK);%x zU&9P5R&T>>>vgT)z|73(H!=Hq3-hzLFdO^*`W?*n{#^YoW{-cS&WVHe9_FK@--q6T zUh2b${s?`lxyj~Z^s~DP^lpr;jNXHh^rw2B^cm)RuKpk9eqU()CC1f>`YZT-jsG`E z!oI|KJuwCO?8X1PNZ9uU)M@BSspYKK4?D= zXdT4dE(9HhPJvE^PJ>P_&>1{~XF?a}#dwK`F3C&sQoQsbbs3D?%R-lfE)Pxjn^wd~ zz7nsD@$d1_Rd`kWPrxkA=;}OP*WfiUv#W&}Uro#rPU0tH#9c3<=_aQ7yrEv5Xuz95 zpQ`m~SfjAIDOM{^$7)40eg<#OTNJ8W>X24=o*AWE^VYl#^jZ9D=(f=9Fe@~=J?4ZR zpgTgJ3*CvI2Yr4LeF5e!@wzkS;urFZ_{CaZf_0WIT6fiVyLQ9K|5AP#zg%ng{@dQX z4|HGN54t}_s{^11>U-Mg)>^u^)~qfK;aBmixmkA_f^{dOM`HbH6jq={b6T0AwJD>o z#R|c-SQ#KaAx2N+6Zs_Q$;M@UZYM8q3~&=YZbNi4iAnh*1x zmm>a8737$U_@w~D>N(IEQ5PxUr|cFj1`A(&_nFT%wwRS6_u`R9NOtUe2u6s z$B72=6gd+!=EfMXUWzr|%UO5UgZ0EZUvJh2>wO*2N|l$-%M;~R`HK7rW3CaRihNbR zCTH?Dup0H2cpJ00_r(tJp<1mTP?uqhE7ZB_ZM9wXXI1$xe2e%-UMMe6OVoM%3O0as zPt>Opx!&TJlX*L%u0nt9>fnbGy1-4pH;v0$Ep`q!!BZs<M)%U!>Q&jPqP}d& zTcMS2%?HX4MI}*L951Sf5%L7gw5wyKqL=EeYKjxF!cZG45q(r&Racy(=e4I`HDm>! zB}($w_?K)VTaWdUo3Jv!5`EC~SWU^4$Eh#)HR1;Jp;*twNRwm*Qv*x{Xbuv>DO9u; zTrBEq=-4y+s$o`7w}#QTCUg&2eSH=b-TKu8JGGidoytSEkalC2qGbEA{wRro;1F?# z){ciWqMm3sC)3bq_dbkf*JJcaC&SQK)12QzXSdKg{A(B$y^k?O^3j7I{dG0;&8APX z{ZU`t2T`A5-gHnOGC}tklhOKOJ)wYZx_gbjnGVO@wif$Mcq}K(xnhajXpGxRJ20w8 zopddtI&?8=izfUIUi@z%*PvnlKM2b=fF*Rt768jjZvQc z^z32{%78}joA^4606zr$d%&j;81-PAu%^=+<&~|mcvY7L{8(IfbPSp7n~7A+*{0SU%d&v_EcUL7!uwLW2*8P5T3xNAvdD`Wvn8W ziR0;o>>|zAE?9%7R-`XZKT5_|8aubvZOlTffP4jc->By`w2$pc*dD+-NN>ztUIRx` zw1iCN^&!vQK`qTf42LK4*I6Z28SAB03M9WVD0l=VHW9u2ZnR<4f7if$ynWD?WusMX zj6dl?dQ>tE7-r+0#U|bh?}1iDVts~kq`rPPYRWFyKgTK{@p>bz&){Ua=Bx!~dW-Q^ zY6VJ&^5}!v--~#^M0l@7YrB@;3Ak%8PRPc(&I0_`@W$Z%%b08306&vk7H^4mW-J@W zhVap_4dJcu?~UTuyUJ;c6vI-Q#5Ka zqa`y^qR|nJjTYz;(Gq=n)HKWhW}+m2Vl~kY4#Etw4o1p#(C=*GF9P#d@!x@&XW?_G zO@)L}+tV0zWhYjvXe6}@+;jcz<1}MVVF5^9fUgE!m_PIHkiu}J45*}X-iEhs*G0-? zAG?dUM)*oC0rvsN9hh;BhxAR;bFaZD%}-G$DBUidnqsU#IV?drWJmsQq6d5zZ~hiA z8sY6g&0EVcXGghaqfFeil`sk(iqhzVw{uiFWFzxk&1;(Fq+@1tBT_AcM6AW^ra0^~ zP#?*sG9Z!5KA%Url~{8$<^om=Gm;=Xlld?!@nP+M3vj2meqR8SSCEoU=h_l!OFn|{ zem0puj8%X&S~95~uE7X28?xL79R3*YO*AXR`phN3hB&(#u*WBi0oN)&^kv5uP8Rb)q`*na*dO&YNn$Mue<~46oyh+3}FH ztI>`%LLYMt+M8vNT+_m&Ywi%|mx3!e|BT-Z$yn53H4l6Ig>+_Iw?A=Qpnpq<7dM0q=4(Gu;;gDB%c`1fPia%$CP z!Q^Kvnx*=&8lqY|e7jsja>)>X?7y)AzNrQ*Zb#HY(60Fxxx2dc^;mkR7! zRt0+#2=*M5B+bV%F~2X3`8t*AT#QKP=`-w>V8*o?oB%PGBZPaoE^sWNp5=s0Lw3SuiI|BTjq4`R) z%Vof6Hr`xi<6TNA^e6j)GjYA7{!`gxgJTaOH?pmTN%K3>wmn+Sy6L>AkNf~*Z@qfJ zXjNi1xUv9w&p{6R@%}6uyr5LKY8hXsIYV=QqS-CKOCU*&AumrLzct|L7|4Oehhn+d z5soBX6~I%&E_hv2T@clkZXAv%VL6FZy2bz3zM4_nvQ;FUPmn z_p|R?pY(hErTmrrS^iV}js4BFZsR}8-_C!Izq9{x{}ukL{nz@Z_-Fd(`se$X`tS3v z^*`i)%KxT7HG(yRCkAT;YX|ED z>jqB>o*b+fJSA8^*huTf!N$QRTAvy;`m~_YO@pLQkLYGWqt6H$-8^V?i=fdhgDr!t zgYAPC1iJ=%2CoPX4UP&<3{DHq2`&gO3*H}mF!)IDiQtyt^TC&cuLa)>z7u>u_)&0o z@U!5T!Eb|mgZqL%2M+}EgCgV&1w*N!%uvZtS?G$P>Y-CYXN1~^x`uj$dWL$1dWZUj z28ONIbK|dRQCHz+S{qU~v7vb;1KZoephjy+uzSW#J`k(CI349b^ROqhx@noZ{XkEzlVQs|33av{zLtT`6v62 z_8;q?;XlRyG5^{A&-%~vU*MnVzsP^F{}TVT{@eWb`XBIr)BlwJS^o?E7yZBWzvBOc z{|$dvfGZ$RKtMonK&gPT0Tly61F8qq4`>|FBA|Uh=YVbj-2)y7hz*Dj7#=VpU{t`E zfJXzS2fPq4CtyRsmVlQ7_658ea3J7d!0~|70cQig47eEZRlwH)R|0+yxDoJ2z)c*U zT7j-WpTHb}`2q_D77i>MST(S2V3WXBft>@R0|x~T3rq=24;&LXHgIC#l)$Nh(*s`& zoEJDha9QAnz@3461CIut2z)>AOyK#z?*e}e{5{Y&s8EnQs8mq-pc+99gE|Lw3wj_Z zE@)=Z?4YND76mN}S{<}LXmilQpd&#if=&f}9CR+|)1V7M-v?a^x)Stz(2by6?%eJ? z?!4{-?t<<@?f`e7JIEd4F6=JiF6u7kF77Vj_PDFL>$#h{+q&DiJGnc$d$=EP_jkv- zN4QgPd(=I}J>5OSJ=;Ccz0kePy~@4Ly~(}J{jz(Hd%ydT`*rtm_uKAM?lbPQ?$6y< z+`qYV1Q!S{99$&0bZ}^Jt>AXS9fErWM+L_Rrv;AmA-hBNguEKEKjdJ@p^&2?uZO%Day;a%kheqL3wb}} z!;nux&W3yzaz5nikZ(dRg-EM{H#rf#WW%EqJkcqG(}%|`s`wo2E`^P#V4kv zdZN=jsqu+}MGlEhiH=E&P4Ohe<32jUbm`iqjcM7Yo&AE_bZPCx7TuswZrcUME+Dpw zXl-XBI(X}~?b0Hm4Sega-rm4gom+I5ky4#ov}_~eAnn+uwQ1X-N1F(gy*-8hdc>$C z97TkqwMY6g+VEf!h}WE7|$j(ep)#D#qmkL5wE zj$`Elm|h2aL{%`q#-Xpgbb5+c1S;b;Sq?&u7(gOo#$iiP7z z>3y+qlwA^SH-0!a#+Mr9cQ(%)m@2sQ-!S1yx*8)|0wW$V4L<88E?TCh#wNr`z4$nj5}O*69&6H4aF?E#hKHpm zqT@If6VlRC63w94I1`OI3`#O%;$ssA$p;=)L?aWQXhzAbQ8{Id!R%t9G5eHQ)J}{Y zon}(glVekixBJ-)j2(>n0|s>N(520Q0m!uN(Ak@5)1_6{)*ZUEgO$&&-KQ;|<_=xt z`QsB~2Q~NhWaHW56Jky6e=ilSUAtgyzufr>$ZYb~wu7EyzS;$>qB*SG#cPMuwya{l zf$rM5eSGrOb{F>3)&A@9_zpTLx06AfYU1LgSdOkvF8S@70tI|a)Hh{owl}6yO-ZJH zT1tHEAWvG7CkCIGv{+AMN>Yp`Y2eV1m#5&%lJF7#aL*j|s?uSP0)t zjMEZzYYH~Ka|iY=-rG*)t0OdQS+WpPpxoKX1p3QkWH#Q^C`V~0TiwYtax&geGD`O6 zNi5dSY4M5pkm94|O@opWW9?jQ0zP<>>`%U(NsW&2nvqyH+Gcbt&FJ_vn&hMu$;QRo zWn}Pywi9P(NTswE-&wFQQym_>adehSE^l(-dxy-CWRwjEols$dT z(xuLP%-rl$DJ$D0D`#gG%KhTG)#ol<&Iv0KSI^xzckSF)xIlVF?OAK?+&jO`bA!+GEonf8xm* zGiN1XFJeE!9k z7r*-Yn{U7S{?g?iuKf7Z)t`U)_1g8{e!n5zv`7KPbKwMy+ySO+@yfWbRt@9R7vj8# zg|2>R+mtcnhcJpX)YNpX#;D@e_AStOqjQf@<7mA*gmzUqyQ38Lw1%PmtOXvu!1bkT z1(4fDMsMj$jN^B5caE?9#q>KrD%&1&$=N2oa@+uSx&>HG^J6Vp&g69$!x;!TT&!&J z6{*;~b0NHlpmOz+^K|I<0D7is)Tn_CUqIfxzNSDxi4qk{mu}tK6e!_i%2qekt5>%- zYiS`>(i?Og*a<%f(!6n?%wT8iPlFKVAn zQy6E}gkTRU7`>owe6QpdXx{?R;~juAHRR^UTOsUm$*rKe6+oYdb3>C=)-4~7qHewA zMQ^hA=8GfYTW{jUc<*nW_UBT5e7$2oiflRaK_CI~2@$bI=7A;$~Zqv41 z`wksDb&lxLHS)f0-Fx)x)w@sM`@I{@yHEdbvC(8Re|UDx-!f0j+}@kA+0$>$O=_9h z;$F86qyK!nwf>^9>Xx?XZ{4!ya9?JN&qk|T@@IeR<~%-kIKBq|v(vx(`M>*4;s2GL z#=Gnkp5{*BU+*;jyRZN5-|znx-~YSpRR6-A>YFX_>5m32!9XC#)Y7`p8Vmx`mMTpX zZ9yE6R@uP-Eil-3ll?+8EdbfI8wxrBX=stQR%xz~HdZhuPabU(+fvEhWJ|EymZhjvtI>6zsm@vF*^xF$7Waos&kPy-$v0{3{pIxU#_f{P`V6R6SjCv=f z;7!esyz$AIC;$IrsZfBsaIuo5%T)}`UoEV5y@pMiw`|kCQIzy4`Z(+N~+Wo6sYQgcF^H`-FrPDH0Zzks*RpZwYexThjtK zn-$N{s!fN8?pe>!uiu@XVU;(@?CfW_-+qR24xMNfpcZYbLFYoK*sN_FV&K9~A`S>w)+ZG^`) z#rT*zPyK7#1!I2_F}_Kz!0|A~3wdvH_V?{crmO(#tR1+Q^FzmBRIk`Kt#|GCk$o?w zF3$eGfOAQ`bGwYQn8#u8hPNd5KCW?AUJwk%StT*9SYnucKhA36s%zIBh4OeX16TYQ zhw;m=egwkXCWmb6mQ>v9@LZgRXO4WHet?HKh{ z-nwd@wK`!Gioq{WdT)}$!M&@jPxfmq;ZrxOBxl#&IaS1`BEaVoMs(kKy0$s9=BKSU z@BLi^@AG6on^Vp!?Tw)`+cf`K-YesJKZYKul1>kEoB7Gw|C|grcyKHTeBP-7S}~TvwQY`3+vY)P+dNop zn-kQwIazI+lhw94Rc)Ko)wX%GJyY+tIXX2aKAzj=QQ6yOEWK>^og}YK>N`=qyq{7= zV`ElC*50;@x3}?#vOge6&P5e3@2^ageF=G_yvLI4vWF2J7Vf#mQUs> z$tgSaoU$yZopRUev40&C5trt2mhsls7 z375OO)>{_3fG7PHM()ge&F`1-xlAjM%un|1 z?)p0L-J9yu%JaDOm-TLLw_+0W6+k__qI=CRILargm^`oN?)7jz2cJ9N@>zHGf7ceY zA7AXQ^VjqF8MR7dyn{F&+&8}MQ7I@-1>JB?s(zg0C&E-k8)G~B(P=&p*>NRoO|S&S zVwAGfjK`k+1dOyaOO`Cj1a^|bl9!e&^OmyIpQhJHh#zQb3`BQlVp266v!oZSGy8d*6F4MYoPWYGDQC5=p z|Jiw2=gWUW3bMV$OOdR-jq1^@h5Z0onYU=!&8{Qch7KGbCHXcH-ucM3rfp;!+@l8# zbmEL;8;AE#w7or(cS7>AO~fmbti6qp*DrZF_Ll#u4SMwGD$NA;XpRojz<`9F zA=9T-r0wO(UwztkmnH)ATwwpHhj;0UA|KhUYg_TfK<^G+TD3H^^7wR&ZR?DU_C)jteQDPS zzPKzToJQqIK*9w{K@&f}ePhF!w`TwXpCL*9JM z@Coxd7tG@m<}bkMoNoa+5mb_Vz>x|TV%cLCO(7ZWFDcxVE+Rh?;7xX> zXtAuay#U4Jf>qvRFF^4US!H_xN|ekhd!$;)Qd#A2DVOqOl{2L5Db0T{@-n4#ne4JW zVVSboWqHD~<+982gyqU-mpv$#uaI31N4Y}9>~aRm6)R#WdyJ`8U6sR)sa`{su>du~R2d5pR#TTz zGj*~L?(yn8rfxkwJ>1l*uge*xegj=LR)dDOlwA!Q-BQlcsPQf3+>M*uQub@o^p>)x zX|r3(;mw-gQqCxZ7T&Q|cid;+0`0u4nQu?URjux5>3G&!X}x3BHH}^sZ%8Q3;xBkFFB z`o80P#@C&5Ku(-hjB-NGcW^FEV6Mnq+jAYyRX2C@+$L8+cXx~tjh04c6OrWPdZfpu zdS&m}L5bdck0I$PUfDJ!o{#7rjiIM@zGHM^dNf9sVjCMfFvXjVh)#(aV!!AXIE+oO za}nOBLcU`@p|5R>4S06BguA;O-_rIOC*`DF=(aN4Q(yL5sY?kbarbUE_ zj4}BXTKDVJ3a?tyEz8D|$$yLe2L<+#A=+qsaHF!T4=>`5&TS5AC#V49V1s`Vh6+~;$#6Fu~jNlKDA6`dt4H? zo6Z}G^VyNIN?DmZsH|!KKV&ZL-QE1=jT<-7q-5VW|I<5W}$$a_1@ zL?Ag^VJF%fclf(Sdt;C3PQ*n|aIEp~-16Cv4#sGtnVe4r%wM(^K3V3^^AAM}LSxiu z!N>f$#=T4j`%&_I&U4i$AC?oqtT>^!F95m z;lilXVQ|G$(+u}dn5MXY68BAU_3P5e&ooWPVO4HQumlEiA<1UKm`|_T zd*IIJ#&)>#$0)IyRmz!)wWY5L1NRFQs9Zqu*d@a%$q4p0`0jUd5y`uzTl?bvRKoQY z?~$AV<9CVo7-@}3x$d2ASx^7DkmsH$@4ZvLdnW10yhr+rfe!bae9ws`OWk|&y{G36*x!!e1{eRtq z{|i6aH*c227WjU&(Lax0ZFm<~qw&WXfL$!{jnFnU3fqt^xXQ~FoMBi4V~$IeC{+?S z?_Kfi{Ltt`6Bj$s43ADR(aAWo4#z#%K7s@jojw?6B_*3AjI>Ei8i_OKVz5oQjJBL} z;9Kw!xCnj%7r+(pBg>Z%rS3Q22k^DZJN3SYlX@~u>PkI5P39}}lX{ZBz22SbJ9X|< z-{p4hR#fBDWycCnr5(#|T!jMz7jBRk`V zaZQ22xiEICn3X@r1DGIJWO1W?wKT?+*Tks*y7qNv8so}l%}x0nQK%<-s4Xz^tOI)K zA}~U%C$5@v4A<7Vf|vu>RB32!!|}SosP%2w^XZ2xTWvGn;wt1pu5G4{kKD2&4jgKv zr9>yD){uola&}CDB>Cno6kJ)7DN@`!Sze2GA2_#P9{=o9V!Xo|v&${)VZL@ZuI#S; z-Guf`u0Z&RyPullt?*aV|Lzn2C)M-5Y36csZ>C(hH}>_$@R{B??KN*4`l}r?CRJ}? zkWL1~*m2V7=j|B#=9>~d12SDL5igExUti*)XNnF-4F7yy*doMPB@gU6g;=M;)nWNt znT&Jw$Gp~}mC1a6a_>4LTbUzW1`mIAbt}{Ksi+HmK5Z5L#MaRz*1KCrUi$3Rg`%BW z&wei==ZVW1t)0h(B>HaMy5s4#SFbhy%BO3Ch*~AWuC*Wa=>1LhrjGx(t2=$yWA8t| z>Fs$#p)3t$1E-& zsdn{R)oYp9x;4XU)`@Ev6IM4mx?bIwfpN9MYS*b#Yf$a_aj|jrV{qnG!?3WLIN>6! zR&9)>t5!SAM5hd|SEt&b=#)|MiM8zhhPs%abUJ$MnR+T^S4OYH$av{t^khF%Wlz6b zXVKsL;A);$PA8m=Jbk+JU6Ii5>uki`V->?z^V@K=!o=q zobBxy7CT0Uf~1=6Y0)vm(1V+p8lRem^~xA;hq0$pYH}k_`Lsb*Jp;X&%2+NZNnaUW zf}OkvNG#kVNI#eKfk|`-P;T9e-bCTGObK= z>+Q2JaVxT|U#4HCfyGthfS)~GoL{E3sLnsR;mVe`)c-8(pWS3BZoNgzXTyX3XhbIs zM8@)X$GjtJC)vNWJm_OabkZPXERT0AJhFC*#l7Y6j*CauPI0)mJl-+#$l7Tz?k$gZ zygagYl9qnU;~hJXtes@cyyfwZpGVeC(nRF)c*oL*mi9X78?ZdyarMaBX*ljJk9Ukc zvUW-m&+{+6fJW#`1W_;UjA&8HaCqykqi_wUe~{SRU{Ad}QsE zihEhU?ug?pTiIjvEjaH;0;=%tFD~<)|=%qxT=w}#5m=gu8wl`>Ab&(=B?X^uA!>e zgs!o2&FGpc7f#n)xt4S-lxt1bO1ZXla?I?c_H^x(>qOU4xd^(>%5|mdqTGFSk;-+a z>!w^!x*p2)rt76#U%EcZ^`nztHgi&cx(AdSK=+_>(R5MD#n25@E|zYPa)asOl#8bu zqTDdLp~?-XOHeL}E>XD=bjix4(xoVuPM4shr5#=)ITH*M} zNfYTFRrMy*O;Tq1S_blDd%FUsBLAkkfP1W+fMCVa%Azh|=>|(k_ z$}Oc^qTC9)<;tz4Tcg|ty7kI!q1&w7HoC3K?WEhG+-|yE%I&55MY%)ByE5f>{IJhK zf0XVp;t{%Ibgv`6L3bR{@?c+pWrK8*?u2r0)4iqKyL9g;cZ%*k<=&?|t=t*950v|e z?nC81rkkPMS-MY@`;_jSa_8wjQ|@!R3(9>-_l0s_(Op#T8@jKR`;P8gQ^c4; zx-zO>dAf4S$vJZJ*b2(Y@0^OOq+AucQ01!8RaLGAU3KMZ(uFBko355}P3Rgc*PL!# zRg;y%>BcM9lCFh%Y&*KP%1L{f<-zf)a-HZpDi=Z5S-GxsU6hNYOH#{nAKh@}aQ9U+=ZoaCQ zPPah0N9YEr$7awiQ}rIDJE)drBHc<=Zz|nJRc{*II#us6y4HwJn(jPS)q9+7lX6ec zwNa0qO}Aauo9{eUEz3)E8o@Ut~ZJ~Qcxvj{%Q14m9tMuCt zEx6}cHb~p)o>y)M@;<2d0^(cXC$N)l4q_Xy2aWkJBf3y;F5+b%=@mrFgDbkR3}tp9 z?}D3$xK#wwZsaYGG4m0fw1@5`<@VAoP;MXcE<839@f7{5bPExGpnHvOG2(u@1BezL zyM$$fbdYYTa)*$2q24mY_vjBJT5!u*Hb_V4Rw#EAc^B%fM66I+YN1UDdCOzWDnuu} zLAP4DV{}g__a@y8<&M+MRPHq03FSVZdtbQ^>6|maWqCfP`$*M0OZSO#pVFOE?mXRR z%6(3ELAfvKzEJKfx{JzvL-)0E-_d=m+$Fm2mAgWBO}QWG#w+(L-7m`hMt5DgupHk1 zn;)W+YSQ^DR||QU2m4ou8O6OdYqMUUs#k~gf)FRLUR~C6t9te5f|aXJ7ouDPy28pe zq${FaBf6r>HKr@3TobzD$~C1cpyY0hayhl zGIwIVDym**x~j@W&{b2e3te^Py3*B9E|ShDcORXlTsJzGa^2~ibGYO^>_L}9)$2*; zt6VR-oXYj4%cWc&y4=e3rOTt-{d9Si>qnPQxd-U-E7zZ{fN~Gg6;y5jT_NS7>7ta2 zL07~N3ihSMb|mqeGS+z7g4Ix_QbipnFNVg>;$9Ev8$f+)}zF$}Oi`rrb)p70RuqTczAu zx;4tJr(37oM!F5kZKm6#+*Z0R%5A6Hrrb`t9m>5z_p)-k>2@i%mu`=8`{`a)?f~6u z${nIRsN4~{!^*u*cT~A!bZ;nkobFBKPSEXB?k&2L%DqGPwsP;$y{p`5x>L%1K=;0K zAJUys?qj--lsilJiE^LPom1{S-Dk>uPIp1MFX_He?kl>B%6&ukwQ}FleXHChy6=_y zf$p+$Khj-M?ke3+%Kbw3vvSwyepT)_y6ei_p!;39n{f84RM6eCS-t`O-P( zGfUlEbU9VMJaoC0%SVSRI%lNj<&_Af03}h4Mr(7UifO2lSAmu{nf|V;m zS6I1XbVZdbL04S4QgkJiD^2H7t}I;{<;v5QQ?4Ri1?4K!RZ^}BU8r)^=&CALgRZ)A z(R4MH8%S46xfr_I$_=8cqg*UqUFG8F>M1vvuD)_Z=o%;&PuEbnp>&Ou8%Ebyxdgf< z$_=M$s$3#nGv$)#nk$z~7p~k0x)#c%(6v-9m9CX?X>_fXOQ&n2+(^2%%8jCHr`%|| z_R5W+>!932bRCs@n68s@W9d38_Xu5ta^vW_C^w$2t8y81k;+Y=yHB}C>AER5k*>RP zljwRVH<_-da#QGfDRT(pz*-Dfc$rY~|jeds?}7>7G&UJ-TO=J4N@L za;NE@SMGhf7nJ*eZjN$i=;kW-A>E70eMC1;xsU1QEB6WAOUj+4TcF%Ix=iIhrCX@n zXLO5{J5RS*xeIhll>3}+sd8V?EmQ7Gy5-7Uq+6lfS9B|t`DDQCiEh1em+3Yr_XFKV<*v|eQtn5(&C2~mw?(I=nR?>}8ZWY}_%B`k*Sh+QHW0hM=_lR=q=*B6xo^HHy z8|X5W+ekM-xlMGBDz}+#qHEpR;=oTvX zHr*oS-l1Ep+`Dv3lzWeEsdA_2mMM3dZn<*r)2&eM1G<&UouON$+=q0lmHUWpjdCB; ztyS(5x^>E(rCYDuIl2wXeM+}cxzFe}DR-W3vvL>cwkY>G-B#tkpxdV0mvq~eyGXY~ zxv%JUD)%+r%gTL2_lk1g((O|2JG$M%F>llt~^~i<*Q zbylt`T^HrC%)NMK@Bp zF?6GqdzkJaEt z-67?U(j8Im4Z7Erdz0>%awq7HEB6-NN#)+5dt15p=-yTCG~FrXKA?MFxew{iDEBel zN6MY0`$V}<>CP#4p6)Z{KBv2&+?RA;DEAfJMdiMs`&zm0=)P6%65aR8{XlnFxgY7S zD0h|aC*^*j`&qebbiXS18{Ku~ZqWU%+)cVal#`1?SRS0ugyXBFY8O6;&>fu9$K`bj6i()5!_vPV&%IQm!;z zW#!7yg(_E;u8MNy=&CALp01j573iufSCOuUa$$50l&eYCP`O%kjg+fR*I2nabWN12 zOV?DndUVZ{t54Tlxp2Dn%C(^Dpj=D3j>@&7>!e(3y3WeAp^H%NKDxfjb*Jm6Tu-|G z%Jrrjpj;H)5apuj;*}dnH&nS8x?#!&{E}8CS_pjw+W%_quZFbZ;m(lJ1Ohqv$?VZZzGm%8jABrrbkxUn}=8-8agOrMs@&BXqwh zw}EblavSM(DtD6ZedXSw`#`yKbQhKTlhIwqMeO1Tkq z(aNRJ4OA|bE=IXDx3D4fO2Q)4k~w!?vQey(j8Xr zGrA+nou@mh+y%PVmHV9T4duR|JEq*1bZ;tmk?y#1U(uaVE)4BamIt2z)h<<&&Qh)x zolCjeboeQhtW<|ChjMl4e3h$5ms7d=bh(skK$ly&hIDz9YebhS5Ud;bcK`)r}I;;1)aZgE$IT3Yeg5RTx+@@<=W7>m1|2EtXw;~5ars_6;`eT zT@mFv(iK&%6J0UoI@1+bE`qLva$V?3D%X{+lyZ@D9_8+%E3I5Nx-!ajrz@*m54v*7 z^`tAWTrau`%JrtJs9YbqO3L-6tE}ApbfL=iqpPCa19VlD>rYorxd-X0D>s0yhH}w# zQOd>AHNrVPPKu*zrrZ#^!RoO?>Ee}3pc|%KDqV_lBk9tWn?RSL+(f!Zm77dANx7+X zQ7G+=4&4jNy+}7#x%qVS zlv_ael5z{_GL>6Qw@A6AbW4<5PPa_Cm2@kVTTQo0xwUj_lv_`?PPvVA8310edRu+JEPpkbRQ{qmhKbfKBYUS z+3(M8|A*I`%bwZ>8>bes(JT8GBF0kNfzBg@&l*3O~8p~tMV&!tsEm6*w zZmDuP>6R&%i*C7cx#?CYmxpepa(U@iDVL9KwQ~9C)+kqiZmn_!>DDP%h;F@desmj@ z^QYUWTmaoB>9MX+9HRj(^u7v=7wi&U;V zT{q==()CcTH(f8~`qK4Lt{>g~%JrvvK)C^Q4=NW;7o}Vb-9Y7H=>{n`m@ZDac)B6V z4Wk>X+;F-CqnoDO<8;%Ndy?)67G&UdAjG6n?v`4axc=&Rjw??Kv?+vl~H3M%F~rot|DCp1rugm#&U-_37#<*O0D(a*gR4Dc6*)iE_>9nkmp<6DxlVK)m5ZS3tXx;RF3R0U7pYu#x^Bw#r0bzvZ@ON}^`+~hTtB+|mFrLU zfN}%q9#k%xE=su=x`E2Y(hX8>FkPH-@pMC!8%8%&x#4sP$|cbyD)$iG80E&&J*?b# zx^c=)pvzEhBHg3PO{SZq+*G;;Ol~b+_U3ul&(p6Bd9bHA`+S651t^-|V@X zrmL@9AG!w0^`&d5-2HTol&h4(GL{FQ07NHMrn8g_rE@7)h0aI0s&qM&t48OmTy?sf z%GIFDrCbe3ZZt{z=Mil+LYOGrC~qn$v|S7fx4LxfXOqlxs;>RJm4k#guDJS6sO^bS0E) zOIK34c66nbYftA-y@l~XQ)uDo(x=qf1Jm9C<4@6&Bi?gP4w z%AKLxq}+#eo0a>BZi{js(`{Am6S{56ou%8Z+&Q`(%6&?=Q@PLRURLfr-7CsnpxdR~ z=XAT3`+{zda$nNzRqi6)KIOimdsVrw>Gmu44c%+XeM@&hx$o!>D)&9zA>}U79aio# z-4W$}pgXGE6}s1z`;qPq<$j_&rrcG!Hs{X`BRc5?x)I9Fp-WM2E?uf}FVdwcH;*n|x%qS>m3xV9lyVE`Mk|*|H%7UI zbPp-Fm~O0cOXwa^ZYkY3<(AQnS8h37hH@+DCMdU(?os7d(M?otHQglT*3eB>ZY|vu z<<`+nRc<}qH03tXJ*M17y6MVorh7uUEp$&Rx0P;&a@*);Dz}|(mU27jo>Fcn-E8Gv zp?gNTU3AYXw=ci1HeU4&Bqr zy-W9ua_`YStK2EN=af55_q=lN)4ibF2Xu3kJ3}{Dxew`HRPH0XdCGlEH($9==w4Fp zEZqX-&e3Hm_bJ^%h>P;MYyOXXtd zS}8Y(uC;QpbZwN2qid_&V7hk74WVnVTs&O|<%ZIARBjkuC*>08Ix9DvE<(9Px-QBk z(REcWnJ!Yf5p?${mqOP~xm3FD%B9iuP%fRWr*b3ddMP)GuD5cd>G~))hOV!257FJP z+{1MJlp9O;fO3z}^;d2j-Gj=FryHPL8C*Et^5Bz)=%liAmU89jT*{TF^HHt>T@K|c z()lV^i7uydmFaRR7fP2~xhiydl&eaYSGj6*`IM_pmtVOWbOn?PqbsOfO}awL)uQuL zt~Q;&a&_nel&eb@s9Zg|Am!@Qxs_``7pz=Ex)9|W(G^y%F-V~gboCuo$sjQ57SFo)-8t5`}S?#f|u|5EW~#(&8hEv z?@qJ6d}sB1KD*63^VxuU=P}Kx@66{*RbRgQ&hm7-&C7h`t?6-_cjnWJ-dQ&|ulE;v zT;JZ+9bX$+&q@Ra>&P5kyk*xx%eV%?KY}MYfINOf$c6VfM@LM@Zwk5a`#~_oE(u>&7()&jWJW>upS5s`9wjy$in=;KH^0UAT6=D-+=Q{H}!n zzXjmJbq;gLx=Es3uPz{maRq^rpfo5$LJDB&hxqG9))wB*N1K*ob&uS=qABA z%i&8m8O~XroODy*oaM?zHxmFThVb5&*@>pWK|^H|rpsxXgroU1DHShu;V zF^_ect2*;om$_;%?_tFHHtTsx(_wv^^?YUMX2UtpTb2&%+pOm=M~C%o)^e1m!}>OB zc`DFheVesh73r|P&04+{$Pb}kiF`cstB@bc{A%QfF~0`+1m@QwKb-k>$R{$t9{D8Z zqZl*coac$ATL|Yo-$1%WaL)6_&@F~@o_`SC5;$i$V(FH`Im;7Aw+zl%uEBK6;hg1r z8LkaJ`x50lunW_k!uLn=QxIjEL@A4x?+jv2i89T}%k+(`w^_{t-t{`4L!#6>hUw3< z?qi5DABi$eyv!Rh>p7gfOyACWuc>*!+v_4(uR3}8o+EG1%W*Q_rK+xzm%3O#IqMAj zG0rr3%yllmM9fR}yId=|9QgeUd-)~GH1YBn#H{6a@-qD>>;0(a(H843+2%q~U%%RZw_m+QpJHY_js2!h1mw4Kh{~P(87Wu83U%-SMr~~90z;dl$xfW_)5`{PoYyi8#Uh*p9esBOB1c%8<#IM06 za0U3~#P5~?59kg0f&m~AyaV0?AAwK7MerTC1g?YM!A;_q%b4aM0&E1YgRj9);3~LI z@Pptc1QZ2TK{)6GqQFp)45os|zzmQHj)Hf=S#TbF1ulced5mcaI)g4C67&QyU<8;5 zCW9xyOfU;P4OW0vU<24hwju5WyTJi)7#sm_fMeh|IgKcM1U?35!Fg~Q`~ZF@7Cv-7 zz!&5Ng@7Lj1eHK22m`f1ZBQ4~0}Vh!&4hyf3Q@n8a&2quH) zz+A8qYzD7@-DDr)A#eh`3r>;u5zm4v;74E;#PWb}&=y3H35bt^Nn{G*bnpaN43?7R zh&#b6U^mzY4uC`CO+?`%a2A+CUcwREfes)6i~tkCH1Ir_19ky}^E&E*2Ba}!a}Wt; zg1KNmkaMBrToE}pM3D1A1i4nVTxa)p&^`d~Gl&3@pcm*v?nmqoqQEpT9XttUfem02 z*a~)lJzyW%k9ZIq0jI$Gz%LO0XW#~f!Tlfu%mkT0u7N1mSd?oZT0waI!Nw$k@n8a& z3o^mi;Ct{ZFd_JEgHoV22nXFk6i5JxAQ_~9RFDBSgKgjlI88o66g-9TTjn4GtO6Ur zRbYzXca(q!Q~_b20f+>{K{7}K8DKTo0FDAv)R()OvRpq|u8sT^ z_!fK*egs#+&)_;SxTfS@@Fn;O7_=w4aSUA;lmIwpF>OG55CNo}t~cmQ`XLJa$pFMh zKnBgHOOYa1+$1?!`9@?*k|eDubG!E@%LnfEM66Fdr-c3&C~pJGcpaYhpg2 zCYS*-!Cr6~+ytf$$`OcNur6GJ)8h?l^1@CT3`^?D#2M1UwT5VXe{ z`OVv>AZ^src3lEg0->NDXaJgkW+WW31!x6YgSKEJcn37Sf$u$-31)-C;4=6PB>#c` zEf@)Y2c>UfdkR{B`#~Jo1NMW%;B{~UybVr+GvFhDcgExc1waK*2{ZytKvU2hM1V-p zA7p^*Al$M{8pv>2W**1{CxP*?Oes(ebOe#$A&>#)gG}%mI08<9x4?VAV2t8?AmeOh zyrPV|mGO%PrxyhI_ z8Dl16%1lnn)XRnC2R%U)7z{GNWH1$M0Gq(ez~r`!FUU>uBGv`>B1V{%NU zM-L2J+svH|gCH5~0VlzCzzoCV zKsaaxV!$Zy2$%_EJd=z!F-iEmfv#XGm^XD1<7D6$Nd9ydEh0m04yR)5to6LU=3IYc7j*PZp7EXLE!tIWpaVMpa2L0!Js%O2^xaN zpcx1UtwCGT5it^U14~a~9Rl`&{ooAv2wVrhgP_xxFQ^0Rfi55tB!Xlx4NM0sz$&mG z8~|?sa~8`2%7ai~&f)V6a)ZL47$^Vu}B3z_wqW!8dy z;2UuA0wOr~rDeVV7r{5+JMcZY4E_M-B9;-z_#_z@(vEaO6wLQnj{;v%3X}$AKsizo zQK$@RfjXc*Xh<3(3N1-HM48HkU8$H9wWAy^ESf|X!3cm;(0fMo`eARZ)x#{iC|%-LmVNM7zT z4Y#{YI4H5hWjtWvahKTu&V7UFzrtTfG(M&yIu;|r`m#PIH%uPlK@>7c29Dzek$FK4 zG5}F9IQ|f1u98ZD@n8W62Qs-Kh{}n5VsIH;1N(B}7#zgmiIcz=;1Y<-i!%5ETmo_V zPzGOsOCT;k%HRud3B(mZ8GHdQfk?F1^aUru2f%~&n93mB566aJ7MKIhh2Y}`{Lp?- z1hhqaKv!@Qd;l_Vy#E-O1?GUrVwf-30Cs|K9E*1Vk)SW|EW`7FlQ?eq0GO3{Pr*s> z0k{mVfyh;;4=%4p8Tes8x(LY3f&VoK!~Ro45QqJmBybsA1NHo|T>&S-2jDXHFRp>e zAbc*tN$>%P3`QC314ltv2<8XQVH^Avh{SfXFNiFT2qLkq=?gN!N)TBJWe|n+e>~U+ zj)F+6@B4z|SdZKU;rPyX0GIJSzXmSjdwvZ>;``bcT>cGZa0DNW(s(<@frY^7*O2~< zN#Jh%7`OLZOh>=NlVB!z3P|6C?w9xpWrNRE0eq$kfsVlGSCG$|^d;N?)$m~t1I<7< z=m#DoQHV}|g7hQI0#AV#z`xQjuq)4>`vs&=;BNf^@*VgC{JZ@CP4K-D?$jR;0e`pt z0Qv5X1pjJ(z%D%YAkh5*Z=!sAe}H_qe*n@ia1;Ei{Q^y}KDfPKAOfx@xKqD?tV>3L z{~P@RZ{m4w?-!7D*mdw%{R2&~Uc0@2AOh~M`UjkK<0#bqJN*N@Q1ABsfj8mq)<58^ zbMMtpaC`qiSFDqzUqJc;WL^EQ^as3-#|bCEo%#iwb-(lv`~;l-f#z8M_XGc=U*Jyt z0Y@;8P#uJU2SF4V1meI5kOpRe zSzsQ>1pB~Aa2d!3{c$i0R49l41Lz2%Kx!3iL%_4(c_8iU*T7%3uP0Z-{{j3*wXgTD zj{g&w16~9_0#gI)HgFmI2COjj8-Nx-+SliRJGH0Js)_zlAnoZTYhhmxNIUv0a0p0y zy3=m{3-$rc^1p5uuet*7KWGS~U3?Ufc5!JFKMrIc@*L>C68qV}Y4?5;d1>#KeacV3 zo!Ysbear_|Ww&epjQl@o#~!xY+kX8WqO-4h*LLi4f8CD#ciXS`|K@GK*6r3O&}J=2 z`*jhtS9?G=&;!JQAz&D|yfg1pG_?OzbjfKIcAQz|& z>Vp|z7MKSz$w|Z;;P&?Lb1t-J0BIL53+~n~z5vslc5&Sv?i^G6Rl9f++P42Yw~P1A z?QIWVj<_D&-Y)(dT(LZ88vxQS-kdn? zl0h1fcJqFqKXBT~rET0fme%d#PP@3YgFDCAQOG9%X&2uKoMUd?E?x!4-f|4?w2L>! zF}SpgUjhG0yLekUcIPqto!Z5ncJOv+=a%;GMIfu)yBON7!JXQ_+eljgNC3&;-);Yv z_HL(b;qSD2OPjaT1|jXpQo9J8d3`L%r?bPTPmm9)21ADv);ZHo$2U>4$tYxKsQ1+(gt*x_kTh1x)+z(k?!4 z7up?xIe~2r2m@_FBzO&&lX(5WyoI)5P#Js;%-eWBz&`K}I0t?N<{h-HgD5Z>{C93| zm-caK+j{&A+F-!~un?>V|IzK{VV`>2&7C$hX+Q4@r2TvykoI$FQ@cr|9bMYi{%$+^ z;ft0z1*AP)+RvRfxd)LS07iUknJvKj4$A@lw|(8)zJB?8tWSWsY?&$`3_J}o!8))J z>;TEfp5TNVt&PbDDVUAKqTl3qQF!z3#;`+m zL2w*=2+o0v;4=6X7_{Tg2G4-kfz!78@Af-brXcpL3mOj?52WGdk~H36z~zmbg%JG^ z{mcTiAxES15Wr!K&Fy3F&%*x>A7NvkV2X$%QE7A^8vm>~`4{LKOT- zAfn(VA&3Gt!8XMZ1#G@-uql%6T2q>oMHI@DiikpGQUy_{Mrt4mHA!tmp)RS9*Z?#l zO%R1CW4^ik&dLjzFNnb>vAL;*p*t-w-sOmQT z|3i^3O%XewD2S9u?+GGRngs+@2r5PC_67+}K&6PiAhFRbGy$mzN*5t0(iABIDo6*V z$^1VTxz7G(vvkYj{x|!2-g}*y!~jWV&N<(5-=ws*Hl*BZZAocw_mk4mI+N1Xx|8yd zJwnQ3_9Q7!TTe0`eXJiT1I*LQpezYy5{A9n7vfXx&vI~0a+Ghty zIb=sj`NP7bq~o8k(l7~$5 zU%?!h_V#G+u4v!C_QEG)Iljdztg-J%S!e4>*=RqKvc-NPbtI*;btR>{Jw(bQ_82Ko*i)qRusBkB*>j`}vLU3rU@wyL zvb{>m>-Huo!)*j9@7Q~!d|;zU8Dk%k^0AF0Wr9s2WwK2rWtz<(WtJt9^100=Wxg#W zWw9+GWhs_nxqU;*x3-FuHTE4T>ufzK8|_C@w%AXk{9@Zl*$O5 z@`r^p@DK z^&+K@^&_Rf4J73`8$`+wdx4Y}?PYQ}M%X)~yk{SfGRnq~@}Yf9$~c=q$|Rdi%2b<1 z$_$%DN}|mnF2J1%G`Cj}MG%Dwh=KOvG=cWu#G*aAp$Fp8A4Bmf z5-}(;N6LEJNXn1U z9xC;M6YZmteHLO4_e68OHJBF_^|X>&R)-YztCE{deW^sfs6_pzL_McOeWpacr9}Ot zL_MTLeWRqcwIStRYfDOdyPuSf)|r%E)`ygS)}NGt_8cjLOnsL`y_Q7%mE>hpA0>I+ z)Gui`u4e97uCXGdTxZvlqCQ7b3OAsPl_RBsRU)N|sV9*{TMbfbS}juQSUpm1HuVgW z#&!!Sw^>tC?ywf5+-Y}{(%RaPa<8=|rM=xxN=NHVN>@A%_0|#f(~&sqMM@v*M@oNF z9~>EMFOc#gUdF5TIw|U3Bg1V3Deu^Oq5lJ@>O-Drk5sUCDCy#qy&|z)QuY*F%0NgNG(xaOzdgsj@g}C=WNY!4@v&{l@NLT4 z`wFDi)_24+7=h{d20M|NftIUK1X#L14xHTl6>d)4gJTKIX4C2*P!^+W=Kv4gbrvy6ph7vS%UwoW!} zoov(v?14sPJ&Ck+vj4MwMA|x8#wrS@t&>#^iLtz3(>tv^g zSmObxp7`xXqCxo=x52~3ao+la@S|APh%XhSoTeKfc8pD z7xqZYo6y+LcI-eo_B(5@^a`xRYOIC!Kxc#YGS`CkC>MbCB9FvqXisuW#!zC>1KNwM zJ;-5b4{|hmA`VH=-s5j9cfph~j3}}uYT*{#hF0i-o*0C|$Z|Dnk#HS~p+gbYyI>yX zV=H!{&vn$tz-oMlqxb`digS!(2t)gOB~+6CAqtIgE3{WvdvP-$3-aJX6hM?!BPGF( zkaFyOzCO+$$+$NjvYw>u#qW5Sy|mh6tG%_$a1e)a)Jl%wbp!3Sl{wH}TkWx35ACIG zjUTWcyRiq`c>zgv_NGQ7_c7LCAquzRcC^90)`64*S_>5@ui~W@8Rw@-UBuhw%vJVIjVtwX=fcsdB8f6(#5)w@}NCT%A@u; z`2?P_9;Ea_Z}hci$o?3J=P(#A;6=QISMVC%!f=d00^YUvNg0Vz7-Jui@(IRa0w!Uy zO(j3WOq)x}0$WVVSGJ6l<@OCJOy?iRGiu;WSdFZYCn^*&3+|ir|ltS zzx_rY#9=#1$}tP^nv?XFk(5l9g_LZTgOr?>o0PnEAt@Kx#iU$nmy>d(6(r>IU8_$@18YQzdY#CFrk*FFbq#W=UMKXbQQw~b z>Ur`Z$II+%as^h~T2j8ZA4u6?n@HJgTS@uZwvqCy?IdNt{Z7gu9L66gm66x7(E}_b z_gOnqI@klGbh0j_bh8IZdDtE$<#BtGl&7sHDek;mXz{Vk(A0-m6YlhL&}YI6DhT=E-Ce`0V$2F2`RVQ?W8ob=A^W= zyGUtev83E%_mR@hI*{^!bt0vUbtC0Ldzh3*?Qv3`w5LhwY4N1=w!Wl1V*^Ne)}AM2 zuni?;n7u^G+m=AeyY@aQBW*M(W9=hSKC$tnOteo)nPQ)jGTmm9GTV|!`P}A`GT#=G zve=f8vec4E`Px>HveH(Qvev#QNo|K99DJfIzGg7A8Oj2fB5-FeCTvF!SLQ)pn5>l30GAUo%3Q|_uYEstP z_oVz_8%Wt?+ez7Bdr47m6}i!FBBi#~C567R$2B0Oku@RZR=b^)X4agPmUb5@tt^(5 zd+a_^+F1uu9xH`-04)V8{$)VBttG_oe7+-kRz(#)EZ($elCrIp2! za*y3dN;~U7$^+JklrHuJDNk7svM1uLHz|GX8B(6JL8J_|VWhlbuaWYGy+z8~mO#q8 z_C6^iZ8Rxk@d?J`Q%teXNSSUkNtta)q(1U2za z*Apf_M@o;Ago~+@f|xGU(18jyT!OM_hz{rl^$|GJUILT(++_TMj0{|ys)s;DK7J-W z1Um6~{g8lZSb-hLvXZ*_sEVfOhJgrr4Q%3AJq9jk&_uljnn67UhC;mr7MqGm6vD}B z(R2IzUp3!ra9kU0&<^SOAj6Nx>%r?|8h>nU`kW`hkopPhyCm^^Fi!a!$Ex$9dJFTh z92>A1zuHbxLj0M3Wlz;U+=FTVcW@t*x~J+3eC*HmRJ}hFuWLm1QeDsEpRo<8d#KjW z%(W3FAPEO>*#00zMgCR$Jg9jdS?fHqcdBZgZ-jcLswZktpZ{EYqn=9*^vIs5s)zoc zu8IB#gYf@EO?34;_)pYCSAT_nvS;eaYNM;aLnsITLr&yIUKB+!R62sEGf-k0Z|L1fMK`8*a%haKw4bW?s%o`=jTQL2YPQd0+~Gv^9L}b%jnZ`K=K;s*#{}3w9bs4rp zH3CjnA0Vm(V;%^4t^Sp@;7`_TwNw<>aX3-0Rn>xj1Ak}F)$2#{GsJ^Xuhkw;;pN{(|)(hce zHRu!gSWtuhM7>!PxaU@XtKhyns2>nwO;TEq*8ka~HL?c1>d>q9{KHVeI0E`XHRn_JZmpd=rH@%qbACFHQ}=E? zQO$YvIg9M&`VfyJd%3EI>mn?Hdbz5P>xp`}s(!D~^L2^^rYX zPgJWuDc^tZgIC$qTkL^bl$YT=){*X&ps- zk1fIqtcT_be!*^3$;z5gG(aOXK~ww{a|yHfI&-lA3-KkEKs{AY*H<-iPT|k?S3OZ* z)dq~+pQ^9wpP56L#n+yP$iAveczmM1s=*w>Q9gdIeO0S54xhTOY6G5YhLiPG{io*; zmhg8uQGeAlnM0_Sb|HoZ;NTBtCBn79w&E;d>qjeO`ke>t{1}P?0%-bDcYA z!(76{h(}~!*I@1-k>``J1VMk-GRzs2Lrv5|(C<}q3Ytq8gO9KUKVc6vw@@BuI=Ao( zpZhCzVjm9RH)x(Am}^M9g0GML2wj;{Q~KfptUW|QsFrlF7P1M)ci>cOB7+*!K`rUO zV(y`P!4uCl{2S&Nb{0=rXLmMp4e=#d=Y#}|#Atki@tA_oFdIpjkA+x@WURz${D2KO z*<8bQQ74~k_$THVx{OSjV|a?x9K$Z0%N)abqgf{l%{4^MF?_+}c^1qy?B#LlxrSn6 zQsx?NB_rn=Ci3`GB;s7=9A=N@=VO|GIN2P;0X}v%eQ-}S2XWedxc{NKhtth1{L^y^ z@yr{%g#;w0%^`%MvoL0dSUie&yp0Xmi~TqNH7Co5f>1x(ppWfrjuWBHw;6CAG9d>p zKtANhB`Ake%^7Uw_Hje{imI2tV`R{@MPv)h=M{5p_@(H=_Yg*56he zt!tnrYM~Ay=MY-+IG972!|`04ZZ2VVs=0*f%oS)p;be0PllhqD6;3v{P>eYR^}|g) zw@~p<&Mj1B?jRaBo@S0=Js;ORL+ZJP(wFj@f#w`E*YGONWUiq)a}1hq_^am}YFxq3 z(Q1=tI|uO!|BZU;rtYhIvbl(uKQR|kqbxNPaJs&_C!34V97L(Vcn;#nuDt%R2ih3_ zdw+63y3n`JlY>|fjostuQ;P#Qf{K z)8-2PnYjXfgO2}S9REKNg>W^lK{0U4_g^)ys&E{Q7~F}w(b}FOrH8#k3d^aE`;e3= zn2H&uKU30bVWrf=N~?vHRtqbw7FJ3fth8EKoFln*{3mK*1?PbF?cpNH7 zZ347|<^t3D;BfzW1M_|{)vpcq@Ti7uFrTJcwx`;|qZ+rtyxH0A)j6v^IIB;;H>dm& z)?uJ3s#^?M12u6IYU6W!gCT#ghZhU5%yyHPu*XJwae`XB?KoEb-Hu2-Ul!&$Nf&0m z7oTGR7GoK{#wx7E_t=1~_!&Eq)(0nDD6J0;!Uqq7~VsT|C^skU-c zG>7);JdPI-)LI_H@i?f!Ze0YmNRl|-i^C{#KJzK4gjn|K^hD$y9^Ict?%^qti_b?3 zXdX_rn>7#jB{twUsDQ6(Ip2z4?~dl)zOrQUXPjv7PMtjb`=L3vc&MiHM(l?Q0_VX6 zsDXGqg8}v|IS4~A93!9_(BtuM*^?90pbqBI7BGi)qCGh4m^TYC52k%L!JeB~jyoY9 zs!g4QlkL5!ouB`nIWg6&)}EWaIF~&)s&##;JvV86aCjXQPV0knF7sMxeQ?tH;H34z z;eC2{y3qBA!iz}2Czyal%)v4&#{sBt_{Z3a^n25Va-#}jP!~;b3u4h0p?&l?_>DcT z_!YZx6rtZa&*CYp!3J!{Zc{<>?8uEeXo41qMSl#%#~63a z48<%YVjh;_J8Zzu*o}h-9Z44&hL^Ayf7PC$bfKIfDTp`(dx+R^ANnKAVr~|2|H0Vs zLXQm>;F&m#z{mDDdw-rlJo?}{8$`;x7R8<&xdYAd9G=HeTSzX$cI?CfoR^6u!M2W+ zob0v9g`3d;6Oo7`IEs>4xOYUf-9_Gw*4B~iiXnIvo2+kEYWZOh2IB<`!x)=D$|Ow2 zbj-j!%*P@u#xktLYJ7(uY%{q9VT2e{&1l)loXCT`xXx}MrL0vTr826Zn$;w0qaNy` z5t`suG{@c6nrw^55Rbk#n3Q2QhLj2RDJj!21M_V$DNC^o%dsAtu?2f^5Fz%JNJcxK z%!xe6i|gzLQp#FovI=UUHtL~18sT;{$DL?p_mOS!IC`P4Jx3103-${68s47 ze1K8-5FcYYX5kCW!y;QsF2i!H#A^o9#ne*A-A`7tuOR)^~80VEnXpB3o z1u3o28Ut-GIRq1I3ON;tHiwk?Sb$ZQhk93X5%S|s+=U*9!y6cZ-|#z*A&lV{@jMP8 zjEmTBawRGt8n>f0I$L*A9!4B~zgMVut_<4P1jZPY;{G)8l4Ny=T;ij2XEMZGK`g_ z_`SnXgb@>!;#KlBgcv){h$tIE%4Y0Bfzl}kz0dPlfMqB?lJ5f!B8)Fb@jSk^6{M`i z9+Vi(zaNzmjmHs(`S=QJu^zXN;opKDh{IA_ORhuMDvagppb;9QCGNx*Sc~5g`j9;& z$bwwRjr=HpB36o&PUwoA*oDIg;&23EWJt#z0hC2~46)(l2)u)3IEJ|NjJsh3 zmSa7RB8iM=piRXwBGhoQ);r6O6+| z97R#ai%X#;y5d=k!xF5=?+Bw&ZtiLED0*U+eL*h6FW7~{2%{Y1#ZniI@fhN;!48mN zRbaX5r9vRy_ZD|;rSg4HG)qcgfqqRLic1EHtCYNC+cHuXKQM)7mPPDXpNO>GjV<@7# zP^SlB+}xGlQ4GLfBw#(ZU>EixjD!72tbCqC)DKl$5YtJ%QH;%AhfB!|iB> zd(i=1adaa8&5U%Rjx%|T9*Dz048a?C6A1_}O&2P;jNf0>L1WBC7{4WxD6*XQAUuR8 zu^nO5{+jO{R$x8$BaAz~;d_iH5JuA#DTb4hfOqg7-p446#>Y0Dl$kb{luX~I$WG=! zKD&aH$`(yZEvrM;!!0&)C4VNCtYW?m&#&csf&?2+hJTEzoA_NvA`asiLO=3*xS7XT{}bmS`<0Yk7A9rh z&-7}=DumJC7k-XtiMtVtZoj4rO-5)3e-DI_ac7Exq+D&+kk_K9l_8~~RVJk>YM>@+ zqpsB_rGYgehmQ6TDUVwZQsV4cQrfad4#SZMk z9|+^I-+5hOE!N{#?7|*|k>em=A9c|fEzueSFa)1q93~=++Yj?`bU|12KpX~Q2xi-S z@+*9g_4oz5a0p?%$hfk6iCs91aG2|Zk?FbbNgt{_HGL==SALd0Q~>WTO&=PEjobP7 z?>v8)45w#LWd_dI8A9W)&cO9@PKNSx@_g=4J}%oowos-MkL_w)SB7Tc9s$AFY%qq9 zz2N`6x4n<&+Mz3g^(KdWtsh(y1@r8|xkB%S?;&`POFa&*wa|a(xOSMaZH;5gUonoY zvFu^ccy`)2cFI_G+BkOFIJU;J)5fuRU(A^{j{RrHvD3z{|C#aYww%W$ZM-^dy!x!i zs~NNYH;z{y^O*Iyj$0p08@E0_W}P-}{r|slYmHYg!BV7+Tc?d%|6dumP8+X2^?3FB zXE|P-Hcp*3PMtPRoizN0OIlg#;tR*UL+Ue*SW~t$H%c*&dlOK##C4v z!)Ww>TPMwo3ky*A*!ocDMaGb8@USJ?;7Mqyj!d@cq$FV__)kN>L0@_f|NZHDG5^zj z7m^vb-iBS+i-L^f*N1v5cSUyuJ(j=acnh{-CwAd5QukBH%@}xIl!AILe*pDemc=+( ze}#OEb*sOE6t<$I#NbT&Eo98f{$HrSf~dEGG)EhBM?CuBc?`i&yok{li}9FfQ^;vh zUj+&JC`8r~*~s&|u?I)(ylgB9M=s>X1t^MQh(c+UK{=F1MN~oy+=W*5Ao(!*VGxGk z1-yvS7>n_kh)I}?X;41|Nwy8-MjW#9va?Ffe1d5R`WBqWcyA7ztk<#n6v&Bs8n@y3 zcjtS#9NUC<4Wpce*P0yz&0>?=}|aTrHYmvzte(GX4049%@2c{gG)0MB9& zhGIM>VlqC%Y$Vy|5s#3Bw!29rA~jk(X?zuP_I85$2o8ng1Y^^ zIi7?Q)#*RR^V!BwV-xBPTpK~X{=OWmUcc&!$Odf2R_wxI1a(G=j^)q8jkpOnBNmV1 zN$W|D!vvd5PQf(HLXw@RuKzYZwio-6?n8c#$cmiEgNslQ*Pe6 zGHReD{_Y;Z@##-q$3G?mHMda@P4EcfF&qhq>VrhqhDWXZ~tzN z+dy^p%Oa?+A6Zv_9M7k&s~?|_aSp7;cL-g?T0R6lc~uW&EP}fEK`-9O-n-Xd%q7RiXLgRj23p-WR_Cshx>vZ)@v+=YQSRbBj&m-Dl+p!aTw zHPxAr1zC|DQBYlbiA7tqM+ZEBfe7l?Z(tqvUZgLOA|sg_c~J)AE$E$lvYxr8t5YA; zr%z^G^$w)2OMkkaxJ|n9eZq?vfeqLQ)uNYBxBqM%`u}S^Y*W{rk7B)ZXM|YWTpU3i zdDV_TQT_O!Zu|z;F>l4s*p408iQPDc5bK)fBB&Q1)QJzVb~gjg!~f+v8KF@6(0bP7 zhDN0iRbowU46a~JZb7`mn%wc&z`ESfL7rz_E?2JXrOCkiZidh}*5wZ2nHp$`Hh2=j zm}C;ismCIx^P^xoCX|S|(Aeh77zd3(K7>c1+QCnu2jc7*QU>5zJa2=^ckmt#;CJ-O z$mgIGV~aPS8DcR2ryC3SBRAu&NMJAX0UX31i02+Ob?wJQo(o;UJpwx7F+71c@Nd1> zOkaqfIx<@}@&e?uOUNrw*sdj|s1+kipcKlYl2s*7cW?O=_mw?yHusn@+-G%0Jl@1r zqZlJbcl5_|7>uDRy9u{!F+4`H}jXUf0Tv zPjIc=jlGUf;%PjK=P?W~;Y@1prLG|tTvNn!VI4mHFP_A|#nDD=FEHOYo57GA?&RqDxEBC8FdvU7E>d#-))i zsX_&;5GhyNHKY`=>qxoYN{~{@ZXl(Ml_RABDx$JgC8fH>kaDBlL<(Elj;l-7!_C%^ zl*V=oDYscuQtq%8q}*wDlhWGSkaDlJC8fRHPfADYOo}eWq`N&t$|Lp|DNowdr1V5Q z`dB|w1{mAq)LJMs%w8ttb-anU?Hy9yvkyoaZDYv~@v)63hU+D@Z9|g-E&Dt|6s}T}R6GR)UmL zb^|G8PzhBnnvB7XR)>^&b~7mrtuYyS4bz=#57Bju=sG6yT4pGZq*&YKa#S=ej?=;+fK?3+eOMA+egX)`<;|Sc7&8aEKEu|uDd0JokvP$%SuXiJD-$X zmWPxJEFUTP?GjQhvnxm`V1-Dz+O8p`h+Rj@^;Uuu-9Jch?-0xv2KNZ5?+s3NFOcp^ z{{6^c=aG`xvXYYB&L<_8>)j@2XOW@|`FW4ncv+pH-mcUTKj?zFo}X>Dytx!2l~ z(%$YTrK5EwrK@!(>dPDaodVim_5 z@Dn2YLj2C-Y=u(fBy&Oc`%=ovk`j3@UyaALQ4fu*FDX&n!?#8oYfH962YY~&PS%~2 zhwv~Sg~kGUSszmRS$|Rn+H<4~vLU3rU@wyLvb{>m>-Huo!)*j9@7Q~!d|;zU8Dk%k z^0AF0Wr9s2WwK2rWtz<(WtJt9GRM9kWu7e{Ws!YJ%2&3Gl;!pfDc{;EQr6gaq^z^` zq-?YwNsY<;YMT3(eHJRg`2t0(1SvHbkCB>Ii~H=IZ`TEB~q$bHBzFj1}QbI7AbYC9w|3lLsA;sEu`FLO-Z@K zT99(5-AzhsYeUMt)|Qm^c0VZ{turYa*9*q>9_RQ;dzzFu>qSZ*>qkm|d!7`H3(5=j zBKb02wbw~`(}t5W!rmd}J^O%^Q8tE@aWJ^UQELb9VFD&$8fIW7f<6~X7pKg7#&$^=qr8-X zi!x}0+tCc|(Hn1K3QpEHc^Mzuh78{_-iHcMALNdB1|u*X-(V*)Gca-$s-PLV;#sI~ za%8{cjXaL*mweeOYG)znm)w-&$bQK~cpTX;c@dA*Gg&m)a-uQGs~BK8-jA3u$MK8_ z%)#l_TtCcxw>)VrxX+N7Oeumj&-*iTErP>#vbD;KvT(kD)*6e}ZOVMp8b=A%{?%kX zp9E|39`_o%;>=w^Kq(m^gH?ZpIJX2;`dAI<-zTZ^D{>Rt!uv#H{o%_*QJi1fBOb3H z0V6RQpI|(u;4{od66RwemLeG|u^K->YpX?TswG%gJ%VF-2Zs^1^Qdnf*-tTn$B9rs z#V|r;dEAg}#8SKjmeb*R&gsec9ia~x%zDx#`IlT8teM-h*=u>pIr9|xet3HeYEl@O1qn2kh)Sf?z1 z_j+Y5ibz|Z{J(d7a@xA&e|BAR>h;K4)KVY8I^>hBH`Zd3t0u6<+nSKKLOlS_r4L{> z#w#RPS9_}UwA;8BJ>&JXJJZ(B&ft6SXV=eW<15VL%g93el9atRpa9oGcnu>k8sjk2 zmXLDPo?(2T24A-&lCTo1@dG$D9>?i1Bs#STr?ca9$`PMdLOD2=oR*uEymlce7a7BW zA-U8pC*?{jNXk`Kn3QX+C@ICPI4LD9ij>k;mXz{ViIgf50dh*Jxa>scmhvZ4^n!e zH~QK$WPc3Aa~O;l@FHHqD|iiWVK_!00q@%Tq>RKUjIobM`2^#@+f`^1CfiiAs*2XWYr zl5)&KyyhgmWh5n&Wg#V-VIc}>SG9N$C3 zIvVYlNpBfR$z)kb$!0l7$!WPs$!iyqa*?Km( zwggh%wf9LGX`@LQYafyFiH#>^qJ2ur6#I;n={A#;*_K4g=Qfv=`L>Xh#kPc$rIt*} z*S3O`mA0Ccwe~$JKiCFRHrZxUw%X66Y_nfU*=f5;*=zer`OOZJa@dZNa?G-DZ;}fa z;|df-DO5x>>Y^c9*qx-@ZLLY^fUfuqGq4a}Vl}?Q&-fJwaRliLrN~T5cASsg$cub- z33&wy+qI+=wPIumM4=3-BO0}=4=JjjQVOwl4|yNj+x?_;w9aHVJZO)QqCIl)=xu#T zdBz5i@~k~i%3vEx$}oG0lvnIEQr@t)NO{{5NO{-ZCuO9KCS|OBM9L>No|K99DJfIz zGg7A8Oj2fB5-FeCTvF!SLQ)pn5>l30GAUo%3Q|_uYEstP_oVz_8%Wt?+ez7Bdr8sW zM7hy!BBi#~C8fSKAf=HtA>~%Pos?$QoRpS!7b&eQmXv$!K2q9Q2T~rePNc+JZ&Lc& zGo%c#XGwY929q+>hLQ4;y+X=s_68~1vnhq`T2hKyF;a?KNm5E%SyIYdMN%qTRZ^;3 z3@JC-O{CPex}?;%2Bb8yCZybIx0BM$nv>Gf?jog?#gcN5-A770>p;o_)`^rZ_5>+U zSr4)&;;lC+eeD@ip0h!u47FjTykf7B@`k-d%G;Je%DeVHDI;w(DP!>o#^X~=vCl}E zZZk=lZAqkjZga^6SY*khthCjn9I#+dt_H7)AgEh&x;?n@IatR7?X69O_SUwBHr!o; zvS^47=!LiJZE^(OwGYUV7=w@S2__>MzaS$673XP<8nWShT!@QsIVz$Os-QYza1&}< zeXf&ZJL{r>>dvGs$+idc4%*R43##dNnp&Z5R35@zQsyx!jITzO!kH{pbDy@I&MO3)J1(X z#2t1Ic`tgQ4;I@pas^h}YH~gHVjpf`{f?AHWz<0zIl8c71OCZD@uTXoXnZgZt1PozWc+qc;X&h`m7$$KBMXXpOwA zcgcs+D2rQh8y>_%_!Qq@on>b&%=yS={m5r9#tKs7@p?p|3i4mdYYaQLPtD=c=X0Q_!wKU4}}>6sDNaAjTQJAJ8VBGzvB>+Sc@7)azXA%u&X#@ zwTLT`VgngQu_&&^@jBi>*O7cL@GyGdZH&Nf>_Pg`DKe3g-L58!pt!}8z3?gKVFUIc zY}bzAeF=4N8{*LilaPchcHLO6XHe4`kPYz^dSJXwBtOMee1_Rb#2njB?!p25h95uV zJr=)W2d+GlB6N(OH435>{zykJNo+`;;?WG$uRywN%!l<2#a~OJ~A2e~49u-j=-RvRqVZ@;~#$!4@Hx*z=k0L0GTBwbOES~I* zNl3yXEWuJNL-D+%;3`zJN>kxGj=Y4#LskkCPyypZdx`eNZ3aE%GsE!!Bk*ta3 zScSFNfX$YUNw{n%gG#7^>ZoJ4kayx)ypB?ra~*(+h{iCC!Wc}!4Oj4SRJN*QHAJHp z>e#d7U<}0zcoDB+-<9-0g^FXOLk25LRz`K)h?ue|>X1#b`vKO&AgUvOJ{osTaSPcW zLof`RZ8y0G!)LOl2AW7Jfhg2Q+vW6`MrS;Tr_dYy@EpeCW8C;PzXwpkh4QF^PI$!n zlJX`-;2n&ECY~}O3ogcGD1@s~7}ug0hFH`_zCJ!-vPyo%E+rFIyO7L8)k@sNby|Id zDAK$OQ*_CeHANLtbd3{(dT4+~&^1qQ=o&}YHc5!QwpqgC;MzvlF`{dj80fl0bWM^3 zU5^CUBuh9>pPkQ#u015iBCkOj@SLtcMAsaNn1j^U9!q#Gxb{fLwLk{cfUY@uL)R3# zmXIXqnqmQhYl<&94z4MJYl-xn=XEWiYls*`UPCnCac~XMn`2!&=$c_UQeP_s=k_?x z-J)}Maok`PNvVRW&^i4Mq&}DT;kmx(kLMA2E`N*1I)97K-!jE!lk>0u3vo5)<7;sp zf^+l@9G5{wT*7(yQs`VQcUT)z?!|rRj0d6fwUo0eq*Ox<)P&CEI)4Y}aGl3TVid;O zPo!+auh?mO$>3anJ?HSUD2I)vbGwv`N;zlioLd+=?@Hu3_X{51Iws}Zs`ILRipiLc z8JG>7YfFvg`UPcB7COHM=h)ypt8=Z+p|TUfxm4#R{=d8&bCqm~gowG#etdb~=GAL&o$W2Jk`9|j~ovWfz z17~v1(mAREVo(FMOy{bJm}WD`*_dNGhfRRaVKXq>bPg+xDyWL;_7N$cU>v4cLC$Z5 zaINWFR}vL1^*OH^=Q4>r=jptsbKW=j9_taD^K_n*JJ1}jn$B%f-E>Zq3HB)|!MRK4 zte5bL9q_p;@|;!9=d5V5h6U%O;2flLO*;hV8g7|G1AKoyo7bJJ;~I7YHeoZmaV@Ir z)Rw%}N8Xe7|NqH7dHSp=_vFESx$eztpe`EPiSE&LpB~(!&*512=(;bL6Wx=i&&GSP z)gaIIp1e2zO>j>>hvVR$d?ClWA3xbWx$et@d-7kjF@faST$-TJl$Af$EM2eIe&z-D{V@iSD&0^ZZoI!hBmqp6xyORh-X@peRaPB{H}tznJ$B-Iq%< zYfc9D=(ms1SO*W`xt@7 z3C?zm;2N$;u0=3LFqh-gjSbu~CS`1(H>t4!nSyDUiCKsoD=0aZ>rIqKIiwyt(D=dA zcBW$ozw-Gzpm77)@?nafNzwShziA919oJHFsxgFKe0&n7U>Z&~mT*1SStXz`g~+jl zUOb+H*$BoGG>#ypxc0gMWvx7Uvatn?FZ_sLj3FJ@Xu%jm49Ajs451>|ThX`?H$meG zkz)#zc>EcrTOyf+&!Mq~iCmXytYIc*ArX;d4rRCwtBh(EO$K8S8i)AU#*>qwafx7T zq5#)ySK%5IfyOFIaott{m7p;TjZsvE#wkSO6S4xq7{zxSYn(zN$0#att#+a@ie^0D z0>N0tD;&Ru*Ac}vTQFu(jbn{lM2=mI)7SsBB{R_wxl974NnJddr|g?8C_j0f=;wqh^Zah=l@kE18HVi%fo?a~VE@Hn<& z7n(5U-vY^4gMwUpltB#F0`)Kyuj78k-k-)!_N(s32F~%nU^fmSH{01#z@9m z#B;74h@p5LO*jv>z<5kU4Cl6bXo42#RxriGap@pNFm3g(%K><&cau z2#sO;8j`UFyKx9j#`5pM?hkp4++n^y$jn%D8N}dmJd5YBF+DX&P>`|dt5L)1ld>G& zA|WI9bZDN1IbA$~IE=zL96=ZtWo1kbGcgNEScb0=Mhs)xbs)kMMQCOZUHCbFuv1_eMVq zz{!5cgWpyCjy;T%{VoOHi@N+76LF&Vso?!5c%Rwr_nF}RC3s)y=J%Cie*XyGFM{_6 zy%)%-Uf-?xHx0DYy}r-(bsW5IgV*09d|yuW`uk76zRu)z)t1*&@cOCj*Tpu!E?WBa z5d7Ys>F;&$dwaIOubKG$X>HL3d0)rvR)%@FvS^6Lh~|AzIGuz_*s}~8$!rTzGeI(O zPLbSvt$fH|GR38&R7MrV*xjUD&U?K?Spq3H@aLCCbGw(6^ZEP8$Gn$G1OE8`kG=bV zkFrYNK0cv$P(%>~LXj?n-bq3SMPi`~Bs3Kff?%fv5Gf+Yz6eUN&=d$DAW8{Hu>nC8 zL{tI_f(V2vJ@4c1}YXoweilp4n>yu+9Z2b9x{z{@$;sbIa+|!Q zDboyF9|Dda9y68Xy#5xW`N_PxkMcq-Pni?E9!k4>K3&MJ$igw>T3lzwkdlb6umj(sO#%KL z&Y4IKmiJ)*#~C?@L#V~ryEeYUHhhC`;VH~x2HBAd&3Nr?j^d2LOCSz2Fbi|hr6`Y2 z48w4oM+zD+CJ)7Mj6ec5V5_-4nCBjXQ4S%fiw0rH%-ZQxD$6HD1_%18kuvXTzs3K z2YF|3+`(WooRnku4MS$}cgH4d#%Y|zc~fOJ&j<7{tI3V{0lRR|96p90unWmJii13f zr2xm1>v5wAA*DH5pfzqo1n$J$=!hPO!hNP6`2d1a_$k1cK4f zM3K@Pec)jnl?l^$Zz73iU{=Qc=*W8!DZzUV2{jS9c#nY*CYd~idb#-=OvY5S=RHJc zJdN>a$(W}tKEiUW#A<}`9-=9R;9;!8C)j9qlJY%vq3*Sew=vt?%6pA==z^~3X4aFk zni|t~g!3MxDI(Dy%S=PYUyU^eQ+)`{cu&#-drT;GoECTuQ}G7ggf>;liEzei%@K`3 z_>H>DX*A_MOFN{PXx_UF!O^O`|G|KM+|M{^>O8>rM>F#(?_plUo`F8omh*SQ*l&5? ziS7q@pNDq*Da)I#q&#Wrb3BrUW(vn0DH7~coRsEf7%9)19K2viE>nS&`^x$BBc;C? zKuWZEh?F5_9Vz?Feo}rhzmjs;jIO}>bBr-#Nf~dRA>~=~94XJ67fE^9yh_S9=37$E zn^GKCq>L#`N_o?Sl=h}0DV)$ZhhG`SF7}K*|MN#Hs8)7s(Wi%i(h@Cu16%#W@_!?l)OdxF3+)+(Z^fV-rToJ*GP;N!W+|IE?eSfI5tQ zLh(4pVw+8)}($qzp9UNttav zCPkZgrR?B*8Doq3co0MI2u5QJo<_UfJ}J~p7n7ZHbf zSb$Ynjm_AClgN9NIu7~?$4z~RibFJ_zl5rlM-}u?_Bz7PP z2a#;lFeNt%pd}*E8Ic%^SjmsScgs6i6rbtGEPGq zmc4+N@EHp6)Y9Qa-o!i5>yfzEBKI2OUR(6K;{V!mCO1DG+-rwBmd6GAj;(chUW%S$ z68N0bb7VL6LeG`&c|0e<{f*th)S z9+%wlDDXJ)Blm-xyuFK-(M3`xJ`xFv|bxiD)N4qJG2>E;x@R~h``r?z+-;kF@6t!Cpmy$@n;_!-LXvL z&>3bnDf3J`DgNWiNm&{5GgeH`I8x(9@gFCi&g~m3UTVDfpB^V(ZhYwBF?G3d+zotA zag;`S$8l}=T)7RYjpJVC_Q{xvX_$^T@iyMUOw7f6Y(yfqV5|9>JPr?!cQ+m^!R1nL z@q%~e#!gJ&UBw!7GgNNtL07S!$Cs*mYQl94&bdafv=4gSo_)m@_ z|Elq$|2VM@FB%#v`i~a_$AcGaJoppOXVLgg4&kpF$9>0Z-fsLi#&cIX{&M3kH{SYB zjI+-2I;f^||38nna_|%jHgTlH@cviyfm|q$3aDy&km8*j#Ct661@GtR^K@CCE7`eB zc*T(t__fpeniKe3p6aRAP_A^Gp?zD`i|%WaOdf^$#%T=V#vj)Q^PUdXQ4?XN87b~P zdlZ*@L+{;(V*(~25#M3A*-P%jK^#G*l0Ml<$%TR_WHh!ZhBBr+srT`faSN)V8fu^} z8lpA)$3Z%-&xXc1@mPQ*Sc>J?iSNx%-C!T8`CNj}7*|{U*}dN9j_1C$z6pdiqXi-zDv%q<#|G z_sGrZQG?9P$chpuiBc$I%8^n5)ln05P|q|VrHN@tN^5f~DQ(dXci>LkZ90okP zo9RJH6ndh!xtHvR{&)yO@F*U~Pz*OQ&LUVYs|?H64Tg(pC1 z#%nPtADRSm8@|CQoW_SiJhrh4YvJ~i{(!n_0#+jlKcRVMANAGL-qMdidrLooVMtGJ z&FOsJThJcR>T5YN3&$E%&B}2A9T16eh$}#y6C2D%QW9|%=aB-}(=Tu@+<)uwSB&2i zp5h#zO7Ol5#So0W2h zJu=U8eNeE^2vTA(6_-24-dOVY$5{0Z6CG=%BHXdICYS3O9cx3;96ILSZX(GM7>%c} zgu;clK1xmVC#VnAVW|I<_Gi>Yq15(f44c7m4KdLES*2!jZU^cSGzqcz4C=F^edhf4 znA4te$8ZX#aTX!(@;Ha~&AK1aSOpKY#%w5v8&EQZ+AzY=1)eNCm*IN!xIN}B*Q@7p zd(g#Xr#6JqNNt}k*Xt)C59b4+o}jfmzCqsDOF5;Qo5T+Qf8UCqy*Nk zmU5fk>&J6kQ_rCx(0L>s%fy{aa&ui=Pa^G)Cz|&n>FrUZ`7h$h#`%4?o<%otS;9KiiB zEGK0(GS*A-em@VdGq_amqQAp>N$uO1S}!8Emt%T+68&A)O=_$l{=JI+$ofgQhoyfn zBlR(Ids?Q}%jiF`j?(R=>E8?KzqyXm?dj>?TPZ#3DO1}6R6Ungl(@2U)478=PNFbw zL>W_#l!~Z=Nc2Wu3`AOEF})v7#!$vR!{B;9xxGgNdq7p?g-Wy!si-HE)_Yb%Ei^Eb z$v1Ew7f~qACvZ>Ffirw-^WFMT?N2J&qtw5bl+KOl9B#B3N9tUz##ASuF_rczO{?eB zU$vfe^K9NTL+eWSK|QF_v#vCn&yy=%U+VT;b?Z#s-m7lCsm>L-Jy>-P`*Q0~-MJ*! z%c|f-#+`6Itu)V1+M5(ovNH}9&EbtI*#Z)Atm-O3A^zl)bA^;y_Vhj**Jhkt`S(4*+&bF9TmCz} zzubE+{~lnCb~A5dkB{pCrv0Gu-vRA*I@%b!Dsj! z8x2ocJ#GK1dq5rI`=2nU$kRA$&XaP{czDi9CZqkIBx4UK90mmM(#70E zN_P`UN>9_9l)mOZQu>+xqzo|8q&#GXkn)ImjFczLP*R4Q7*a-=r$~9)j3Z@&nMlec z6HCeq<|R_zFma^3Y2GGfhM7gm9P=J2^GrM`3(fnaEHNLD@}XHy%1V=X-U|_dX27I6Q}cU>as&K0biX1AhXY_x%Ps z-@6|=-+LN5&s(;nkIu_hLUj{K4#a4q^RAnr#oHNsI`JIfe#qFusYyz0QPIEUY z9ZV-ux|n-N>24xP>1leC(%0NaN7tsX=0j@(!#VNTjN&K zmXvnp4pQzi?MdlqI+N1XbR(sQi6W(!=|jrB=6+HhFb|S4&qV!NEv4)lJbIinUu+R4R4s~q`YO`A!U}COG>*-OgL<^U-N%^^~bAQ`HM9mh#?hLm&W0x2mb zi07VUHd#r@ZgP^6+vFuBzqy8#f~F8DH<%kqDQb$5Qo@ub$%7Xa{ zkDDh+8D>V1qWQA&jCq!n=gjk@yl7q~dq`YO`A!VkSP0G7wE-CZP z0#X*4#iT4X%SiditRQ8TSwqTNv!0Ys%x9#0VK$MQvBhj9vIs-Apo@tfXW&IZ4TF@{*F@TtiAh zQ;3us%#EZJHN{9NVM>xx+T2V^Ia7g@O6C?)G;dp?FcxlZ_Jsnzx!HkpvL9y-j|?-D zND1P-x@0z4Ny%<|g3lpZFE zlwPI}DfgQDNqN9LNXkGnh?K$RVNxD7kCXDG8Ai$oGm@0iW(+A~&3ICtG0&3noOzy< z7tPD$6ihd7k@Ak2Ny=>VE-7=(d{P#eMWie?OG#N~J|bm>Sw+ff^D!yw%mz|EHJ_8R z(QGDVi`h!b*Je8@JIqc}zBju_*=>F#Wv}^}lmq4tI#M>6Pf7XQY$Ro~*+R-z^ED~k%??s_n(s;3Wp|g3lpZFElwPI}DfgQDNqN9% zy^V}Cqe&TK#*#ALJVVN}<~dTHH!qU%vU!!1$z}>ErKz9D&88eF6-*^kZZTC!sbOl7 zQpeOIrGaTgN~j4ZrKxF7N=wt4lv_<(Qrek2NV&_jC#9q5OiEYNjg%fHij-ca4=MMW z`$>7gJV?qw^8_hF%?MIPn$e_;F=I)YXr3qKMZAPp&16!hnAb^}W~P(!mU)MinPxUA zi_KC}mYI)8Sz%U@vf6x1$|vSCQnr}wr0g)KNV$u-x02SHF1MDeJheHk<#KDdF1JR@ zt-VSp>|1*kIl#B}suV>Atu@kn+Ng}$oVPxgQJedF*XGs+`PS&FKDPm%LUYzspZmMi z=#KKUs6Llbqsyq#Wz^_=bvo7O*^DKDCrNqN;wCS{6wos?-Nqehoeqf?#kYHM^E zH922ht{ycCXG0QtmSCN$F@hlhW06Bc+FlBBht< zL(0A8eo`JV50Wy_3?gN)d6<+(&EupzX@-$9!i*$kv>8LnSTmlKXUwytJZGLK3r+*i?`Em(dc56s?aoIzSK{6Rif*#3ca*&eC>P?ZRCn>#6UsCQf{YdF=29OeM9wKFkd4!b5%oC&xHN#1X zF%wA1SZm5Lh5I36t?A!mt*Pd`Nm{*118Z&n){~U?SyP^ril#CtRZIve)lE%OYMZ*G)He-DX>7tsX=0j@ z(!#VNrH#3bl-o@NDR-K?N$FrZkn;23?nWsp3+KeM*f|*FlBoj-@3+5$KUc(f;Vd6-6)4WZ}3^R+AIp#f5 z=9zd>7Mk}-Sz7-Pz9Z!a zlSIlM^Ajoi%zjdSF~5>>*d&v3%$y+QlsQexS#zG0izWv(vivBFVknQQsEeyvgR1#) zT64M(s=c{6a%;G}78{V-8dNtA&dq@YLP>-ZnExnPujX@}8MTO2%4Lj?v8f z%2B)}nImiTgo@VK`#UC{ms>Pm}VDd6tw|^8zWa zn17J+nwd(<8zzpFH_h9m%rLV^nS*(V$NN}fJ|N{ovz(NbCV`YSW-Yk^pPEEcwwZ58 zIcd_G2lrR4Q60@NG#skAMZtfqY690??ai%OtwWul9wtIHm)D>gi|Qw;n=FHBBP+1V zs74aZd+Acpnzs7*JFQLA`+EO<4W8usmF{cc-ov~1)LJ{H_tGQn{j2{z2X4(wTJIeK z*V3eSpM$j4*mxL=1da*+j{6{_H70TA1tUxP=IW0oHD7;88Q)xe^~s3FLl}&Qp?Ubj zq50njp*i1IvTuRrHkaZ#skzGP8=(2Sk3(~Dbu4nnAkD$mvBw=NH0M>%Z_Rtvb6oRX z_1r#%%guFl&v7^BRfX-pWdDLZL7s(hb7cQ*e}V(PIkGSEJPqd<;D2nO6>qxt7+KA~ zUym(Fg7y;m)f^^8&pq|v|Eu;CaeezEd9SX$MH2A~j^G%Av+*7i127PSuoYjMz2rU| z#u1#wd8C*E*?Aw1Yf%+#@eUT4&&XeJ0w;0Sc<8fV2t`a8Qp%e!vJ)cF578Kl@tA}- zs8@fMoE(qQ$V8CR2~ki_{uqqGL_CLByogztgLo`7OUPwdVK$NS9lpmd>_#$<;=IY4 zi&_QpqW}t`JSrjt)lmbrP#bko51nxjx|@f{AsB;a@f@DViMjKKsh%sZxiI{{~yntDlgGE@3 zWmsXpCx1W^cH=0HAxmC<9^^v-T#Nc>WNs(rZgfBoMBxdHz!tN4;w`*mW|Hw(h(%ao63Df1`xku2@UU+U|9TVE39lBr`VlWPY_1gp7 z_A3tKI8Nde&KeJEoBuEFIaQc(S22_^Zp>Dm>rxT*&=8?$j@IxW!;Ry*#%x!zr&P!- z%zuR2Zy|=uuOJRHFbne#k0tm3E0KWp_yn7fh;8@=KR|mkWJgIYD1|T##waYpG5m&e<^p*U zxn?up7$InZNDReOSO~YTLlT#Ng7$Veg0r{?4HnBI3{B7sw;~dc;0ZIFoR0-&F}VcG zumTBY4JkXJJsy(q3y$Fgg5KpE3UVSJuEF&PMp=|c6@(ygPq97R=6R3TmF+x^upXb| z96V<@{+#9bgB=Lmd#uY||uCEFtsk01tbAPL8C0w1uc%zLTCYR>>l?n0;Kn$AR9OQ|u%HAE&Mh;bLa$leY z)O@Z*3-Ugm=l%G((H+rPi9{TN8p2hD+b5(KmmkG2Jg3_S*dC7qc|0J(yhsM_Bci=T zw7J4>W65zG7blX>a^E1W{YBK+t<(bkCMJTs6YWiJ@?J#a+(N$Ia_&P!V<=)U4zZYw z|HZv1i|-2Z+>DBF`=O{gU1ijP_CvYd#O?|5%tZnYBJn2@Nk0d9_F+E`;t&oa85f~R zd28YJw$$D!lCh7mZy#e#GTb$T0^rO{o_b3&dBRYP&4+_AeN!e+JdzIb@zdOXmh@!y zv?-XGV{c~9{L&N*`9H&NPd$XA3woF+@(C~;^m22FmvUV`GzsK3e1lUsjn#as%hfFP zy)Rd@oWSQyG?U2b2;Bd8bQWrQ(EK+4^8e17!9b`sIT}}5o7BFd z+Ea7`KEdZujdHv3uT}oYZTsL~tGvi{3ChL82w8D8wabS5J86t2Xo*(16>V{c39NDU z<@Sd$5~DE&S5oU-&gZYg27HRou@U~Y&mXzI4@aOHXbOUI^ZVjTYoQJKH_gxzt#B*a zqCGmozed`N>wPg0u2wpV%cJpU)k;_Lwbo!gKEY?$2vmJrJ#X))zB}kos`VDS!B^|8NvhU+7XoX&4{_UIsOGyB z{xx6io126K$W47WFSLK|jqtAps}3Ak0}iInTL~d(fEKt^O*oN{e+$)yi$b;G?uf)t zjKFxrVlrIKSbONMz$$Elr>L)X96@%*0~m}L9EWPhbr6QuP!0J~wPXK1aaAu?t@!VF zK0Y*<-wAh{L8Oc@vE)=F;ydg%d&y*ED(RD*lw2r?LZ&cT3}sANQp%f(*1fwcypeEX)9Rh2^1*r4h2v;Kx<+8YW zCI6{fvD>paux6Z;iTBS)t#pUT$kJHBh*}~ zw!Dwe@#Mbx+HyH+%OR)-S7Uyc`to~lwdM<44y-jtUlfCQ*!{XJB(4uh*%M{v0_RJ&H)Isu=;)vk+Cx2}W`)PsL5yS~-350L4p zW!IuMT?cj108J5r&hW2kZ|C~AP+eQ~?4O{Tc4M?Os$);arE1u5-KyeDzH+w1y8F01|>huKgK{1mi-i>rOt z=W=5-K?FMEN^9ZT7h8K`r&SA&>=)#@AFd{zz~xWjYU9aVJ^|IpYs1yZBe>idm#dX) z&+V~DbI)x)b`<~Znz`HKJ8*CBK3lkd@E{(-lNg0Dcm{JY7frt8xr6_;+WV&MJjbC; zVrruS`r~2q6e&|M4bw3n+C;{`X0HYD*^mQ;Q4}Rn8f8!x72#_8Zm)A!;}5YKe;C=? z>inwrtJbf5&{gX{1J(M^TtTfrk$V3&tNE+eAA!ypHGj{$hkZ5wWH#$LqYZmJf3WsX zVd)57qgEfzSL=c(JOSPgc)6PYhg_EgTurS%aDMXDtPOB$0!F5z)*o2I56+e`KRIK5 za>o2*|C;!Jdw#O!DF2c9$(o~_F+VwDezNM#8S|5=zm=ethZ8sj?az`{t@*!EQ%=v? zvB27L%%45IV}3Gg2^m=aug_2JcAg$7NNb+*8RjVuq8=@S&7-6| zZk{A%m>EH)HJ|zQ6wa|CV_tKRXAyIum*FEUN5;J7jCsu&^O`f}HD}Cg&Y0KyxoWBb zHBwjmbT!Y6dCjcNpbi;@p6G4vCHtX29>NejipMb&!%Yl19?xJ3rsFNVgV}I3&Och) z%+5SvhVp-ldCjTSIy2@q|EmW>#=Pd=_io6T*UVhP+*jWNB4b{2#=PcD)P^(WHFK`+ z5 z)8g+kzd1d%rQdXMPr23d_G_HTi9d_&t zKZp8qNEV|$9MTwJNUI-5Pd=vp8zYVSX~-(Gh7|SJkT2lhUt-ljc1K|Ux=&2 zUd!?1I#fpu+zIuCaD5=$F=r{at-yNoDXIPt>IotK{UCH~8iS`X+o=CTDU?HbR5$fV z^@F&9`LuUkAISVs=^AyBlg3_m!}~a>Kl-0mQOZPa+{mUvT*$Y z)^b^W0n`uRC{j$>*&J8V5_dp-07hYvSwb$ua;(5!Q(+FTNvMYEs0H;2XliaFWvGcK zWg*_jQhb1wScTQ*SMm_lJ3#in>$9H}^#YLM=X~62pj&_c2CsY5;MTV%W%8|Oe}uK` zTE8BY>)+R7=jXP-_1Am3P3x@7utr+zrQP~yt&2`Ui~NiwF$!7_9mIQisSB-xjy8kI zA<%m0kywN!SO)*~(OM6k3FS};w?ONowH8{m4tgY(U?tpo=*?V~s;phEhMJ}}>DEKL zHPKoZz03SaYTdKeI|o7Qmm8w72_wa=TMk^WT$eS-p=g3;XkoN&S>nwi@&kNmR*U%9kjl=25Xn=qmc*k~=YdWjaYV^l(<5-}NSm>Cv<-q8Q;&ce zYH8i$1B|ITynBWt4)0+eQdkeE^@@+;35>u~NNdi{s5I6iPGDb@XYm|XngmilHtR|8 zU$1zA>)EpLegZ{JF|rLJ;r3V2-YP#Bx4+5(uFGNMWvqU=eN__p9JjBE_EfouOYNr; zl7q1h!q5rbO(f}h7W(h2k~t^iBs4JEUnLB!aT{(&1l&F=y}7J?Rz_ho#^7r9TUo`w zOMriG!!Nj=);=uiZFm9dV<=g1HN6bg!!Qh~^(q|5?QUO|N4PAb%^31ZdKYS+mISD8 zp{RG^7x3?0xSQ+hU3e7gT_~Ay^ZVgSdl$NWT*COb;@`vYHm>{kE{x*3dKW$l^(*`{ zdls(Z>&a@Yfq(D9FSzb{7piCBSp@O^Br~$&QoRcs@o@=qn>RI>${CgIj;5vub-|a&a%608S(+*uR5`X4?G^x$? zxq*R< z{P(pP&Bva?SWJZWxtWSLkXA3m|7H)wNctWQwcdx5$-sSXJnVBbm3?fquZ{nHHtKWe zdL3$C8}&P^4fQ;{)c!V0__(aZI&8ov_zK$Z#`Qi-=JFYMcyF5v1rXQ+@hNT_i%ac` zQ=0d^Wl;gHH)1s|*Far_nPy~qdL{nA=V>3E8&L$s(H0Inxv;66SZ_}Esno0Qb{_4$q4{}cQAX#Zx-W!j2u&>W`kaRmPBV=r=D1HfD; zfO4pc9*D*u48bJCVk+X008dHwjzKKSmf`V%Hi*RFO1!q?WxNXib+2bCQzyNJ?`3Ww z#edyvG}mMBXY^F`RH43v7)-_#9EYbWeR7eEbI@dYt&0soD8k|P>q+5q;QlJ9%UWwr@Y4Dr5`X3H4a)0qx5(8Vm707UM&Fgq7F`*L(2?F1!7D zTo16kXx|?7XY}vUcn{Z~#4udx`q+c~o5MJXE9v3*z`H!o@e}sp zXB>d~IQ|(u9Nj)X>D|9)%{iX4@ZYy*GizZ*`}d@v0Ow9_L-E}aUK`IJ?pue{eC<_)QXTDHBbkW5R0jZGl}GR#AN#YzCgRVehwb$ zVWpAQ{y@|CnA;!7e_x=uEa~g*IFPllPhcn}U?N_?OL!TtVmjW!0{o}f(RR$?+ZSji zIUj-h1D)fxqB*G>LHh%R8n;i-a;|U2m+(+4OlzN@Fh14_5$FWM_T&_on=2E?H}ZNJVsKl9F7=hKcTrMo^<;PX-}aL zXg{Gl&>7LtzCur9Jk;~?bGZG5)bmj?LHi7~L|fd6fe74pXcV_C#8P~KkFXpou^NGM zqB39O+n1;^De4vJdPHhpq9IV9$Wd5~RrmxOp+1p`*oECV0T1;~w?9!8E>}kl)G~F+ zM!1rFi)QorZr`FLF7JWsC7Fr(>DBa-bo&{F^6w=am+CF)dP=H?WF3Sd9LC+6%gjgQa;!9~Nzr~u+AGPw2c`B)ipK(|7v)D-X;zbNAEoNlVH=7V6O#@Q2Pt!4^ zr?;i{X{rYQ9+!={F517T37Vk=QtNrSmD|6=E~xLN>v^fZmu?@YdR*3CPN8T4^}v*l z=mfW~)2m#T*YGCd;oaYzV1l zAJpY~WU4pjOL)b&eWLt(Woo~ulQ<3S8|8Xt*5a~yW`-i%G$s9eXC`p{C{p0RpHy@i zjt%f%e|@YfzfVZ|_LXwIGzawKv5df8nkTtUG?7C4P1QkjxL%rFxg3SmdTPElfPXje zU;9s~r{;@r`%h`#sbu^edTCBw&g%`PnTXAd2jEHM_lIW-&oxv)Z}c_&NcGtqji)dX zvoR09!1E=4Q#3aT<~L3-DL z`}e+Vx7*kI(tn?;WX?yZ2WE~jLIm#Fe`;h4v$2>GZ7+N6$cOVjd z;5p7Y$5Xt1;8!H$JUqYg7{im;fg~J6vhkeewFL#x5)tT(NQ^}+<{};o;5ifIx$7(+ z$AgH*P{d#yVzC0NunwEB6G_;QWSoYFKB6z+C47cIYc5?~-Z8m(Ty9=g+g#j+jizmG zu4AKVORZZp$4K0KA~%1?%@fkxANkN|?vA+mIGRJFnxkrs@}<$76=_CoOH>on+!9yw za`QXf{0#s37@Cuz`hX-DH}ApCb8!9OHK)LTUV-Klh~^PUjca`K1rkVcV_Kc#7xf|+ zov#<2cNd*s7oA5JH^$PranX5k(Ktuv!rl4qnnn12XlZl~Tiki;X1wO>{IfgHtk-az zN1m&T@i^V!LRS3MBrJ5kFW~c&2OYE;~eTP?8O263Y}Nges40|j3H&L$(oH? z6Y>~${<8$vCCq$J%AOoPI&atqI?o_q^LY3M=L+~7q%M63wRkM3{+x+=aAssRS6sgg z_RaasNA^ZvL__t$;fTQ`#32EmlGK|}4i!)t)ldU%(GEQ@9?u{afpx`{a(tZ%|6X5A zsl@G7e04tmdR`XlcG*l0G8n4w)j>n3&Zqsjry|arBhN$iy=h2*>U^s2^}q;hMvCcF zgUd*0OG0(LlF;7T6X5D`sJ%?ILU|lAZ+gx47)nj&3dr|$x&Ck8mxJqLxji)q!H?8s1|B3O__Eg3h z$yfinnsSu!3a_32ORuj%%tH}3C#4)uop5wP6rKR(T(1vFNx(LIgHt#Sw)tca7;3oC z{#Q4nGVVc7^uYso6pv#iJjHpgVoxB9qZH5Yv3LfT ztKFyYIUzjH-Cps%x!f1`!|efIlILc9grf^$vZt}P_^#jgu`k1y(0rZ2co=Tp&M+=( z?v9(kqd7cJn{i}X^Lcjjv1Fv6EcaJMbVC&Sq90ZnPYK2vD2!qVMsu`6TSTBEI-9Pf zbTd83VTi%|Sb{4#f93Z2>cjmgVI0F$Uv_n6&zHXUZVb6NiO4t!+ACH2q{eVQPUrF} z@w>=l#?5aHo8giz3k4jN%AJD8ixnQXSytOKHu6=1Zj@B0G-@L^FQS ze5F`C5C2|7DO``>`?~WI>em^DOP!wxJpbV8xo$3M#{03~zaP_M$iv@3bJg<0?U&n* z%Wh6t5T6pmb?u?c!^r!f(wwpO=mqVAI|7<7t+~>kqQ2T1!$9v`va6X#ru8LPx;L)Y znH1oA2JvM3BXh{KHbt&xKU~cz)9*c!)ZDTwomZxHE$fh;J#pQ@0_g-J?f&AA3rM5?|=9{_mMj8eM@nBSaAPkyo z#-Hzs=9^u~Ub)`;h4-2MbIG)>$bbEi=8(C$V_$K32Q-I_;f42rF^z*p(rn)zj*)XX zmVu{Ky7t9Q;orvc8vY?xU==*Kq&~-lyMl#%93xRBgx7Rb3{=DM+l& zV;>&s2pyq)H3wo4GViuSfKANAR~C0q@7j*AWNp-RgZF=U^{P;g<1qy|uY-+7wdqw94&p1!1-UgO>=?#=lbZj z5atT@g60>B_uuljI0UUr)Z7g3v6guY{Sb|zh`~6-Vlv#^2Jd~y*C_{v&{w?&u-4CB zYMz!`OY7!q1+J;}{>%@gZ!U>`XaD(ZTHEWrud^{vE<5Lv(H@bw7y2C|xSus&PXAVO z54FD8%{}yfz5UGbg60KiuT1Z4-2eV_wDdi~xPQCDf1b=hu6zHUd`-=5)W40%@%#Ce z`gkO_jessEFy7R>CGXG1aaZfJ_4Q+TT&FhQ(fc(ySLyaW)_P#wruldNdpLVPk8_*; zbJcX4|9mga`SRXhoZ~D4|9y}(XG}kn+iO>!m&DI}3@30Bnj4w|{ms&|*Rb zrwfsQW6)g96nKA@Z+!Da0{2+;e(V5!a}YQ;!+ZR^iPvZ3f?GrEKhI15-p%!L>xtdI z$hu!NZ_v#TjN-EQKIQd)E55-w==&t`{1yK_ep4oJ{aL<0c=<_n&RAOOleI3{%^}nG z+|AdP=mmVwh4#4M@u4|x-oFQ_^UdDN{QWeCPve0r-J@CmUi&m_&Y3QU4PY)Ey!S<3 z-+F&HcUB({$?uyF>;1l5)?8Wd*C0Jn_3Cr^!PWL?K*{!tkG)sP*gqa}o7Dej3QULwKGE@_aqf9*_AL>p}eu zG%wiA3D)Cz|KF|GYTw=kD>Xm)6f3&2jXP%=`8}-l==Jxqxo} zY|Z`C_i}sx>b_NtUh)P1zE@ITuHO%RejYL}7>cWm;idBm;?_`Wt(oY3subY!3*j#F zBq`6BYfEwX#SK+_ijYzt4G?CuPDXCx{fg*Zxwv!V)p);B9i2=sQu6X1Roq~py+?sxG2nXlpJb3c>LyG!8L)H!X*%h%vn@G3_N!xXQNNGTl5xE=LSA5HjOBoALV zKZ>CQ!ugq-AroI$vYVb{FZB2Dp4VvTE_@lU`eXxy8aI!_&EFW$-$~s1_P}`@TF0(= z9A6n7h;kv1IZd8{8{4^Yjho-mC7-XRmxC97$%|{zrU3705mk`2AQ(XXLjvc0e8mH6 z8@@G~2ckJ3Igk@t-`5t#A}S@S0(kI6?$5fnuU6GcjI={aVW=4SCK=U1rb3|BWR+DS6 z7VDrn8sgtKvLoNLGkU<)ie3N6-Q4EiKT^FT1N%pYX8%|JNcD@n0jc$itjz6SVHbYH z0VE@HPR255fW~k=W7=_9=l=uyL+V`rN(7#}SMQg=zL4%beQM{~Z_7o00+U)FNS#|> ziNJH^>cQgQ|M5K6-FflGxfx#|uy;xaZtIAi=mnkAmekHgtH+5u2d(qWSMfF5Uq_wmP3zq4F+O%2 zf&CoY=A)(v|9+0kxc(8;*KwoK`PI<~?9*7O0JTZ@_u^>G^$zgw%h;3ay>Txd#2~mn zjq1(#oOz9W9oI5eEQso;fjgn|2ku;f`c$YlMQVK(T`vjskWgPm^;1+I2-Qc`|6vGL zApu{&^-EO0hgwj72i1sOKL_R?k18Hp88(%NqOHaB|kts1*Y2>TSTBEx}hhuzC-hH z)jLl#?^bI()W2GDPc>Im)W>={-a=aA5{*rCuKG@BEYbEqTbxpU!zxLq_CP~18uH$Ts%qH}1uCy1dCgz<@y7=^;)jK?_<2?4TI(?q}JD0{f5-nSM%XDXL~I+<0RDQcSQ-GRpe@H z#AbYtT{r~w47vdI3UYmbt5)GXF#P-fP7U#`n>kMooZ&N+9EK5QDyiN#t{-sVTA9-` z`FWwWW}^A5>i=75Hnk+U^=FH?ED6TF?z-34RdamjRNeYCt+VL?&9&EB8})bb@5}4@ z@w)e!T2CW^YiWMuHc8_Au*7h#Y7E9A9t-gyTtD7YR-bosp9A~w2CkEHeRkdYIQ7z% z1oIjB1+-pHJ#!C0=aO_TPu#k>z;ktO9i8iYtF?6MW9$0W`md)`4_g2Abm}wf*3-GZ zvgut{*M!$530z;7R$o^2W7XPn_j;7(yr<3dfk6mbz|D=(I_^vLWp(rS)9Ra=xZig! zQTD$H^1A%^t@id0dWy&gaT{#!a8#AB-8ZidL7g{oCK^!60{!2z3+CfgXatI`@kKK z+C9E-G`WKgir2vTA(718_wMj+9~^+PLjT!A~DM03oLV>khK9Jz<*xqII0xv%G| zj7DnDTle_jCD*&wXCU8G?Gxyd|a9x^YPmt>C&TujMN<|hk~1w6df z`sdyd?mfTWdyC#@i{4v{doR6)*IRM#f%RTj+c0H`sUs+slMd?-{)~s-eMf`Hu~{>2BJb~ zUbo@a-<9HP+>d^!%GZ(B-05Sm(apzvS z(!|`kF!uy=Pq1=j3T0+P1Fx2K(>P|PrUqtZmIkKg7I2#b+*>fWW#F}8S%G`|`@cS% z&+mVU3yO*g_Umz<_x^JhqQL zq0klG@FB)xEh2ClXHa23eN;S)p7;oXSdR@jj|+JG0IzB24Ig}ri6{}{(jk`DPQ0wL zb6a@w{M`bP*odY4Q7y-}YAH{G%dk?dB3FZ(;s5I(#rT~>b@in?&smV`Sg$A6xZx{| z*$u=IzP|A0I{dQ))k)!@tTD#q#u78}!^`-gsK*0DG*C^*rm)5mtuezF_`aea5|15P zYsF=qxRCL|8;ue6=J_D$7-3^xFj6~4XpIHRIG~XEY$7kOch*>-H6D1QF~P089wr_W zOga`Qwh)@SfaY4x( ziHdMXQ#6Cjm*|4t2;v9xDQB>7guZ)4!}tVd6+Y$Y6vo3Srb>~*O+7}IMFsUZDXOCe>Z2h%l{L=ThL4|y4}2kGj-oGK!prI% zQoM@*e2ht$tiB|tAOzDeOU)(cAq?SIgSFU*P1ve-lTp~C_LBSX8-7PT&fx+s@u-l_{JtocGsc%X_&tZ5OGRhD?3Qy}{b38@bb#JdQ7^R2mFX*>NqJ*s5nxbQI|=t^Yme` z2|Mr|_QTq9>1W!%sgtC&2b1i>bOy2)Q_{Vca$n+hL}Ro>YnZs*J(W81lwdu_$aBgc zh*$FbBChFkhxHs`{Y}f?shFtb?^0NQlS%&;FkAb)>C{{9mG4O)MD zIeCodg7vp_v%eYZZzbv9NJ@VbNgwk!dW_5CJh{hsT`sSm%wye+$8R;%K|Kt`yO76z z2(}{%dl3tH?4MN^$)-H+J=K%sRak!u?Rl&v{#%g8zexO8m&f}RBz{cpQ8`R1-)sR}JR&dIQ$≠iNCAUj!w1?cT)727k86uT+JImj$$ft^trBOk- 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%0Ax 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 z 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

    W@CUqqKZ5ef!<7;H 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 Cd`fxQrjbHObM%Nyr2HASdjL+_RsfQu{kzWq;(D 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ǩ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%0ANvwI39Z#!3kHL@Qe({;Wb!yT#Fj}^O= ztdZ4N_DY63O0!QX_7Sp17PstqWG~TdM6uVBHL^=AdlK2=?2}Hr%q0J_$BYvwp>%P1eXxvFzhy2WhsAVhtfkInYU8Swoq(CvPQNi&&^vF?O8|7ehWG3{Fk4BHL{N_+mWm( zQ*#yjGFc;g%CZf;;YJmEyEoj3Wxwax$;3B8u|vFU$g+#cnz3{b#r}h=k#(@_1nSq= z@C?NsSP9n1cI3Kx7)sXI@b!>G51*4YviB`}B-utj%UK3xrVsG}Q z;Tp@PN#1lHq*Sr_WKF-sZ`p5YtJBL=|Dl^=j~7RVK-S3STee)%kg3uzOR-OoP1mw}EIU%z{))Xxv15hRveA~!61GgSd5Rq< ztd{k$>@j3bU!kL7k0xtmEiAi_ZI&75|9+n6VcRE6uO9n<3z^o#H^QRQa-Lv?V&4;1 z%jR149kTv3#Xhds2gn*()Ur=XxVkTQgJQ3eaJ6iNWhasCsKX5?_FS??*2A)+BwXFs zZKv47C0x`0wQM%oavkp0km%v3j}fkst%pqOp_7EG`>%@>`xaTVoMX0S>ytHQeY#@r zB5P#jkU4igqE;e zVfs3d^W-zvTelKNsS>&Xksq#Eqaobja)8%gyxi;jK z5ti_(6t|R|E>|UtcWZ63Rz;w~8=<%-$Z5UY90T`0In`iEcs&(&qld#cTCrcS4%b3) z`Q)TciD#{x3NAuUB2e-EI8*d;0y&-EikM!I0dUH|NO;#M?qza1-Zjj}YI5l|yny2FASaJAo;8!<%_awXXX5RkxQjgL zYsvIgkvqzAzds}SJ&PRGie-@FF}|j0yP!_gA1Jh$Nh0=`bwm>JX=Ud$qQ}}$pH%3k zWp1chLl8SZi`{@IjJru_SfO)?vYh0`d-jr0|8UmtPu8M(_Si*(nG4Qo^cYerMmSDh zE9!S9?mv0a@g9K^qqZcOkiMHk}_Su8oJwB6lV^ zk0G9^xUEYOo_^q48Et)5cq(xW~!q3M1)zhn&X{pRBlu zhdYPqyPupVzYP?Z=i%y;yPBNG5N}|67wgc4oYqUfDd2L*c?|I!#qEFJa!ts!C+9K5 z(tgG|tR|=PaSOTM_JZ>m;>%QcvprlkxsS+s3~^t@Rgu%>;45-7$$1QMYsHNqr}bP* z?pAUhL%d~%JigDWBDF~mz0*TTc?zXROKF~$A3#Kt?0@irjmF~niT z%_pbheUjmA_!FGR5a%jxIys%+^-SL!avnq6S#j5p)8%g{_S>$wn*D`%e$axI$nTng}iMJ=idyJgN5I0v`DLJi|Zq#3xoW~IV@Pz2)6i>W) zj5n8@#}L1xxD0aI5Ff+vI+ODl;`@M71x@a!P1d!pj5SKJzM@;vS)=P|Oik4k=nikpA|yy7k==P|Nt6_=?ve5FE{gMQ>ZM)noO z?S5DCJA(NTJs(BRV`L{QZl&VdyZQL#cW@pfJ5q7aD{gxk!V|qLBj+))y%blbxNjJq z#QP*UkCF8$ZkXa8bHf`?&SPYMenj-rU2z|iqp5KU$a#$HyNYY9xMs{R>#TDkIggQj zP;r|Uh+g~*Po78ZZ{R#e_BzE?D{l8BaFXA(Q6=U%`0{-cZHOP~3HVzSOSsE;)~pJxy^F6!-7jz={4IB(Y*?g)8!t-EIr&e0GpPtJv8Zj0N87M&sKrP$jLK}XRSsGoTtfku*yDMaicuk zv*d0jr{3vEVc7hjWcnO(Qs&}W9r0wGB69r1oPK!kDeeeQcm)jaALP{g842$Z#UB}TnkDSNok5$}a54U+DxG#5r^BDc}6!$1O-GV>C^u12bWAu+#+&FSl7votck(){` z)8^yP2PD6P$(j5zeV3B+82!%`*U7^rn7*^gd5r#xirf2^4evE_hm-Rd{o57y1v&lP zw%iJC^LB6^qknB#%fb$srs}%RPhkKFS z=j1#_e}LldBd6o-#CTsM=P~+6EAC&O@Nya6?c_X0f9L&@-)wR^zf-7}3&?ql{s)RX zhMX>cjT!IhH?x?J7Fc$<>*82y_S_aQl54xYFf+;`i+iANP)k>Z~5 za95Cfs}A=M#oarWWo2jo0P|7^v@ z$Z7qZ$@D!<&SUfsSKKIa`gyD;cXOS1H{UDyJ;#&2^O(LOavr1qp5l)1gjde+{z1-T z^dC`NavtK<<@9ofR}Y-q(~bagy2lW+82zP$rB1}NPGzQ7Z$Y4*hZ0bMK0!`DybTO= zHaX8j>7ck9J={y=s>pdB%I|D%Vjc3y>4*0uxe??%nfX|8Cy3xwL7rcu(Tzz&g}cVX4J7w<5?rk{)_ID1nVi^`c-C{|=8`+fa?*ar zI^01{7oMKv;^fY;-2Q2j?~6QK8oANrx>;_u;?5$cpNnu=Vs4AJV=AKB^*#JAs5d zOgIf75Cs$z1cWFEL1Ge_NTMjBc*HA$A|5Qv04iW$GRpWI7g5#=6%}2)Ryb$4}jRdx086nEsEc)5Ef1D8OY z$3q#XxX(PecZu6x30y&(o?mgV5GMv9nmLN)E+p>!I4)gr(}}bBS4Mg>iSu|eRS!#h zukzrc#N9xg$I@+7TyGEVD&qPP=dm~o6xYy$>q1;AaURWIthle=j@R$kNx&HcoJUiS zRNN8=hl5|sfMXbS8KItW+(V%c6UrJPjM@oBb7nuAP|r}VqtK!_v`0*+{$g$+)H9m5 zMTJ5A2&Ld4`^bcA;ft`{rieb_tYdzCoPsBf#d5OMaX4+MdmL7ZpQ@3*9}*Lcc(jkv3c^Njj+itFRS zO(O1W;yk1N1;sV?l>2J{xJJZzM*TgC`}WOv{XQb@o9}`1jQYzIx0E=0)ZfK&KOoLC z>d#Qzqr}<#`-Jpn6XzNAbrd(&gL|B~+lcdw`Y&n4toGR+ToG{>5a${7Z!4~y2iKFh zw#0cx{ey}-@UM9Nj!gh=|98N7M*U5S`^3RyM4 z9P^90pBT>oKNOKRUQdh+a6}Yu0>_AaS0N|NTs1$i<2~_BUsyUO=2@gJio2CK3B!~U=Nb9E6!)a!PI2q^1aY2`-#~GHQ`~QN zIqe-soM+@$(2`m0^MG@N`P$nd^nT(zBY&~tPEmT#yY$kD^NjpiiaYYEv^VJDsw#l< zjQm>__nG4IT--+DWK`*38?3lj6n7zUBFqbj^JsuH#Z6aS8y8nhoJR}n3rl;iQryRP zf}Y6BNZ?#y{zO526*QDgX4Op}67y(+7lAX^O#?;o1)2cw*kl8VHFb&S>pgAFF+u5m z_evc14sknn1IIU1+PI;L`;a){Sv2z}w8*?e9N*Gu<2otsG2)~TqM65tvxwtcH*MUp z5^419#Mw4}Jj*R2E}_`PZB|?kakg1`42?Gf1UJ~ly{5R6i4z%#X6_=ch2YX%Tu5;T z7sShr5f|HqazW0i-!+O`Pn>P`77@3SI8P_{QQUmu?D`qD_i5tzj!?V3jTJY=gL{{_ z3B>UYqc-l_knrVl53ZQFp~Uf3r8aJ<;<|fq`NVZ1j&DM>agQo4i8y;2ya*Czj(r7O zalE}_6}R)Bz}ftJg!DEO=dmE!ihI|CyOy}ui1Q4(c8Yt5IJ?|FEH^|PU&LzH@4yUc z@68@uB5~Icr`yHE!hNE+fu3@=5!Z*f^msd7R9s6B?gio+6Nh4*a_?2#-j`87TTU;! z1GsN@0>_ui+VvZ*xK+g2;frR(EhUbx*|u?KDsC=uHvihQ+((Jydu450UBv}FI7514 ziK7~^aXY39U-CWmd!9-#n>dg1ct>%afrE3<7o>#Urk#`{}n%y7XCcKNbWaeWoni}Wa7=1jq*ySS$n*F*7`t z=NadH6gOXSW{gwr)5Lkkd1J**QQQ(2H-R|MIRBQW%W8kQ;?8!<9ZFn!yd6sw*IjW5 zF0K=Co^k%D;*u117RwbmJ+>V<&p02exScNuUlNJqXf&IN^NjOs#l5SzX~YTtUL(#k z&f6*OA;smpxDaukaeiQ`wD)Gkotrh#uHQApdB*uCz?u6e0xWiYAn=a8=?Eb+XA*x= zoIg)1-Im13DpNGGG4)Jc;)cX=6BM`idEjLABbvF8dS=Hq;4X~ghAM6qarU%#GRu93 zIDZ`1NpW+D6Q3@cxrjK6xV$*-*c54Zz(X&MxFX^_%PX4|mrtBMjc$U@HUo(BEbF|c zxXvEj7ht++L0sE-xgo{%`goyOOx4YvCFzuEbOBn{3Af;>5v-h@JcPUg68N#M%5SB5o*g9_M$d;`(}U-H7W% zoH!y%?@`4yAx?%xG;<&Ma%?Mb!cfJHRor*a0q68Dahr*wgxh?{R@{fg*>-N_t-!rT zoM-v5o#GxNP9BeDHY6@YoM&0=z&+C5+ljOLw>5Fs5a(Hr`$Ta$#MypUJL38fcXGUb zFDmY2551+g0N0o}kKVdhaR;9TJ=_1xC%tdC04IiC`7&H_>pi$u#4ROG9AU+sskr&X z+4Z}NvWfFdM&40ecj9dRl@iyE zIFJ3Z6qn?|MTtAG890wT7b$M%Gol9z08u;l32_(2`8+^z@7g%9M5cP?MdCdArG?@i zQd|{SBBR^fOPoi)#3oC7Z&uvnESKVCh7;$}FDn%{P;sk?WA~XeiSy`}rxn*yap$@8 z>JsPCFB25EcdoQIdlcxg_sxz?zyA(3p8_x^Jtl5#Z42E z8IKdk0vRX2jZlxG`I5HIYCl{_ZYu(mx#j}mJc{OR#ht0R;ly!VnYP4v6wQN*tE;$+ zh?9=qzY#c(qPasfs&|IPvAH{|%f+ z*W9Hz^Q5%n=#36;8*v_8GemKviaSi4u<%XdJi4Z%;+{}kxr=*%IFDc-4#1~*`wlc( ze425D1=MJxWn95+dE zRZoDPZELCU%iV=o}?v^ef<#q}Z1Ht;E=*Os`|Q(BVVI^w#-apx&+DRFkW6G-m`;=0Ch%@y}3akj(o2>Egkac9MG zKaQ97j`iTKCGIlfy2o)V6qoJ6ole{t#Py2fo>E*p4{kq3fT=@V?>KI};tu=+^|J## z7n9zX>w)VT$6chjPl&VIF^BZtCe9NjK2>oqdg$#V?m^-P#pxaWo3!^{5AFlvZX(WO zO*ScRIB~YnFT;p3=Mm>IP_HWPOycZ*qmnbtiSrEh8H%e*oT$-g<}~7d`~)~DAR>ek+Lc=;^Z+_YQG3y|$$H6mcHa-$-#5akjjiO?u;r^H`^E#tC1Fh_lDX zk8JNn#0lfIejg}q0B}&g$8Uf#V(rbT#Cep)Y{j)u+*!nleK@)fIFHh}O>wcugx(7- zy-mb$TdBCC#IaW9Rp6kf^teoW1wE^vH7+PjVjiXO+g;MwiHa+^9>ipJT1cEn zX?&`}~}R52H8nZ<6I z8N_*%#Y>7iO>yTDC&HdWoJUzqRowAMqzz5U6X~z-%YpMKixG_+@hFPk zig}wD5}`Bq3^5)hk)oJ~wYMuAo`tqZwW672sI2*v zI1gVk6}Or=X=XI@9^zgij-664!$`(W=^xXB2lDakf$(L0mF%e5J5WFQ~ZVe+SNP?`jB*`RZeq z8*fK};yx$NuHU=FEh5h2(RESWzkmaauXE)zN}Pw!f7~YRyzqP52L+y|GqT> z?fsZI51%s>_YrVt?>D4Jn`NFM&co*v#r;EZU5S%%8I*G4eExon@a0a$HFfJ(K%9rq z%YZYJZvr@yoCmPEUB2^t`~~>w)cFMvFwOX^$BUn?Wwa&EmdU>pSGf{6PoH0iDDWy9})qce}h8w4pyz<`0#n#Zvs1AFp#=>nr&{#HU~lUKxtlHTUxumHS!HRwPHJZUpVO zzzxuDcz$&??dYZLw^!#|H>A?eyoB#rR!-;CNbX`3ws7#F^2A_$bJp8mRmYOe5PU>( zKg^GgT5OG243&`|`N51&-&^eum)@Ojk{(Vv%lhQ}P_ThNvD9B(8UuIAP02sk^F^t>+!xJ4WCAZ@r^t zfOFdF0r*yK{`omFtN~!jhrr-Z9MSAw}%b3y9$ zOXXdnnaI_wK5o|cmr2$pWP#wlTZJGV*{{pbL<`gty@vzne8&v&!A9 z9&T2)W=(2 zrf*0Qrrn6a3;a`V`a9ru5K_qkc0!RR1s7aq~9o1LsyKO#+eKg><52R#E( zQqJ~wk~3y0m43*TVP&3mv%;E{d54n~aQ!t-fR7bS06*?`sS2@52pbh zX;ip!wCa;9hWn@QorO-!$>3Xu4{EmPq8sphWVcx!O-cxtPQKaq ze)wjjbV=BkkdT>BiuW52My~aJjH54uqwlU8@pj!vIqslYbRJ)n3-wrTu5Pm(!aq6H zyu~k(?f&VjSoAen*A=3WjES(p%c+*lXBWxaac9uJClB?!&pGRg;i#x-CWJ<&LLZn> z_-@^s+WU|>cQ%wkcFP5If=y5bQmx!RczboI;&>#x`?D4k$3N2aWJYR`=e7^31vW@XGMj1=i`Hbd61^ zCn(iHeQLcATHGGeJFryfb&u2AD)pdOjT?Y=M@degh4GOILV3nq>@rCn{=#OkOFSU-_sw4ak zoApQzhQrE8Ih2Q46k>O-j_i)C&X4?Pe!$Pj%7SopP9#_wI5j6yWxqE4q%5nxyf?jh zpns^UMWA!2s#P#Ic3*y^%3oFr;izgj3HBr9SN29x(sX~~n(B%yyqY9>$CmQkEl5p> z-5mc-p@?0cMPrHghfiH&{|cWPGo<6q%teA-7JU6g$@|#h-Dh> zsCp_G#F=Nzg(dy9kJcr(_fM=&tXP~dwV&Ug&O4d{oznq6cok&#W@yGVXp=$s>*x9F z>iN!e=0k+ea^%smzgc*H{q()*U`SqM3uGFSa@9$LF%Hmux!cY6E#qUme=F*p-R83k zw9n9i$IZd%G9GgxhuMSQn9ei!dsTUO{c&t+6DinjszC(<(;tm)L~4FiGBHeZ@WA^K z;YhZ%h)?*V%Lp-VkF?&7MqY;8uEHur(^pI$T4goms%D-k7_k+We~| zi9@nR|9I;AaVw`!y!9R8sqfSHEXH&YX`o^3-(7<-um1x{r5lDchvh*-+#0qdrnl}A2|#D zHM9H&+v}BN0@%o*aKz}tX8v^sm3Wd{?yJF6P?gw;Q6Hc0Av zrnW$;`iN#h0aSQorJ1*43n~#f8R9fb>e1?1VF$+L5ffU&@rBMv{G~;*B7D+W`@T;;CYNYTL_U7@IoL=y4;e63ralcOO1lb=2Y|^g;_$ zdAwYtxz_W3jD%?Brjsx|#?UFOtopd7{h|L)dG^fpKAtCCxCzq4F3?JKdT!O|^4uRmDp{hhzW1(7tf{e7Ro(wG2hpltg)2oL zUNL+*2aa4 zvrb|bHN44msjWd40%j*8h=KPs>VxO6c4#hQu9Mu=O@2}7ZPO~Gy6KN=de0k@>{|c! zu|w%W&AORcP{GyaOE+t(W{q(xzTC|kr&$-nRO?go-K-+b>f?r^In$^C!bnbgh#{ru`194vTbx!2VP4jnTLO*t5wnkjwg5{|HqWTA> zXv$ECzN}28;PLg6krrS+wVmBRP88ylL%)3Q}GuxrW3po)L@@E zIus@y^Do-QY4zeta}&N>*B}y}yH981{^&T&#{JefSnorDvvew+>MvU1@4qp4E>`Tt z%XwO>-7`|E;cBraV(GU&1WP}+vrMY@^*$tX>JRAh>>rSXs-SKbd<`76&PPjfFmLnv zN8(?74!eRz05lbU!3uNTtI`N#GPDtfjaZT#Z$t_kgtQFC*Q7D#M2)$kW@E0$6H_ON zp=ji^Bi7AaJCU|MRNXn)v><#am<8Ke5Xer5`S>eOEJ~=lU+{c1In@paW>#2e^glaE zqmA9@*=+P5=b_QjRxb=ixR4?uTPVyOV_0{v!78YL^1K_lX3U}5{=fJ|wfb}TD-^Tc zW@%Eq^*(UoKXl<~HCx>iPoIt^Lg>0X<}ppDfo<7}uTQPfbt~A4bJ>b`*TpVEeIvis zsxSS?>3dV5TWHy>O{ zl_SnIZeWe9l+TjLo)htP`UKnkt2y8H%wLzlfF~4Ip3_A{!qK00Y6TXhocR{K{iVEU z|0Dj>yV}e@r;?r=!mxRv)oIv3`uNPuge*=YpbrDh-T82ybsyAGb>M8?6hB6!_wIq_ z?eRKN&kx=zKJhM-bQgp-afd?z`z1Co2AYzNi3fPF%k)smUnPh@!vbp(f{up*9qDGD za&HpM6=18)dJFJ@1k%6bY^q?_-?RNEjM(&WweR7#XbfbX z6J`R@c^PN%CC&!oG-57exbj#+FkC#dXEZ7wnre~)4XOIfHvVQt(~0;3OTxThL)hC4 z|M>~ACIZ?YBnMYRx;R`)gBYlAU{ieW4^ACjR@%V#erfC^DADZz^xkCp4*nT^U9i2l ze?qW>tGUx<{D>?6ftc{0n$y@MpLNI{2pMb8W{5wg`Ix8rc5mk76#t!|{i$sK{bou+aA2}(8|PM3aVy?J|fFEvAX`xj`^n_OF%4h!e#LW=b(JM!HL@7$aZaB6`TEU zj21R~81#zScsAK+>t;`*(%7i*4z%m1JLp@cRPe)h$r_}*`;*hsgBMCm(af&9Hj@e6 zesi+wp%M-c8Y8oI`#tkn%!OqRy9|sFuPAF71U_Lo{|UD1UpBt8M6UanP3Rt3mv0UH zyt)jDXT*B>t!b$;ZjiN;S>2IkW5;jF5(3C-5LxH9PDWOiZ2!Qs7xga-UZyg)Cf^#} zz;|US<_`<;HxGZadY5uVCzut(kFI}r@tt23wj~D=)xpB zB+8_%S(4Pile9vUP__h4iFy-B&?;0X^YOL7n%I>(WMrN-Ej`Pch!wG;=IO_z9!L_s z^|(2&7su(xeBOtG^CP#WVzt9pG9J!*PQ<7Y@r8@<6PWzS&t|*XT3tDuzZsHP7p99{ z0m1gySj0$s!WGhAqCeC3^4nJ1|JPts04FpOy0MafmszeWYL` z2kakE;9T{KEGvywBh2WJM6m^~I#iVy=o_l4;|uQ;0Jdy|s*(byz&J19+G_?zEjB(} zEQ2@9C;XOBFgumu3ULUY$=DhU3p96+ zvLAh+Z|)O9+bJa2{&B!}7YL3_tvtX4YXUu9U&&agz&xupLyP16(PbNd!8B9WD@NQ7 z|KhzxOz>M;5DF>q&c_Zh6(eOt25la#<__O3+QwW_;X?+(h zLImf>u}KLzRed38ppBaE18Ds=0{&5@AIQ?;NS*6mXWPGUvq|Dyd)31u~1eJ!F5$L zgz4cOY&jm5Df$m41>Oz%B0P^JL@+RaHb>!CFe!>8dvph%fgB4DvOvau+>Am%ld`B) zF;~dX-E<%tpC?Y$lw&%~1{7@ch2e4~z+vTJtTBW$U$_r`_n4DF%X)^Rg5ulz&|*rm zzf)abNhTs4m1FRaQ-@{KS%>6@e|AJ8B}+sjxNS3LoaU)9B2WI1)Hor~#Ca}^=gbu5 zMtWficJCkA1q}wLm5av!%c6h=|?`7vO8$m zv4?;;{=M^Tcg1W4CO*GrJbarIHb3LUcKh(_;3`K5Dri(<)x-P(VCzO?)#)E@gzOt&7wnRGXQt>z!z%GRN(@%2xbB@BY(;1P-e z+Q<3#qRG_h(PjKF2d=FYCD<%?ldoCs3jDo|zZdW~8-Ftp-2R625Y8*UEfL}&&sxK& z5y$vK4+{CZuTWBg7yF~oU<~YXV;l6}ra)7Fbn1*Hw*qCJxCNC)>u1k`%E6N9)ME4g zX_UB>?NyG9?h9T8`DC3rA5?uv8re3z;KJC45Ss&2Ag&*@6meyJFyGC_!g&dLyvcV? zkADu?l9J&`?b@=r+6+JiTz{VaGMwd9^k5b0Qe_%HO-2>KG+oNJB~ClJcyeN55aEZT zVQhAE*fGqI{KB_RN&Qd~3b`AFApJo%eYU3GsOk6ANMCXr8i|K;km<%B z=)cKo#9*+UHUjdG4TTA}$=ZOgq)j6DxW6Zz3MjY2?QkZ2B|ia{AD#LZcKt1k4R+SQ z;2vQ5;CnCiL}6FoBa~)Y=efB*)kHg?^b8BM?iGI_=6mmw#Ns0z0?EZk>IA>?M~5V8 z6uCYUga3^AkQ^8#t{D@4j7N+YB4YfZ9W7pb+!v;Qfe`T$hKzl(6Dl-yO@c3cwWfc7 z(D71+j(sJ5q}bu(HIO&#ldQ}@l0=Xzd*hoQ+bd&rFl)Q)R!)@mp)UrzGbG4GQ6?rv zbxy;?D87EjK)^{wx=W`MBFBIHdjJ;1bjvHn@x>=3{C4mrcmIpMKW8lmd*%F3esTMU zQS8uBgv^VN*1_Z@RGuWhZ(-#xjJt%&8%RwHD=YXjn*6s)M?juDPXuJ-CiXRK6aKU1 zZp^(Hd4|r%Eyij{H`EA2XnRZ+`V8zHHIZZYngJ2Alj-Ey^d%B z2y8GXy@|D!(5hjDE8X=tXML+5)?}?A{jjuUZ;$a?_xZ&mPl9ifYSzDwU80fPd65wd z{L$Qb__`2N-UfNrq*SaaT7?@!#}c!AkCpb`q!G^FBQ&u?(vTcD8OU@XVd$&j#;=Ez zLIL923Vh2dA2N`&&bNAr9sL4ny-Pz=H`W0)Y*t;$OxSts$i)Vj^4#@oZLFiYvItXa zD2&`voMruYzw;eC=qtGl6!NSgz2K$<`sG{c1>x@k9kQ&8li;1YP0THA883xz58FEv%Xiq> za{WM5H8D60Ttl%~SN#ZKqy*VR3$Aa;lBE>09V0Z)nh59n3M^BaJk%Yv&PA<-*yL%I z|HQ-I`6?@&^Ph=^gedm@WLcME!|!gh|E46;1LfGcq`aPC+jy~7!H4-)?m{yitpMgF z!JsL3pJf{1No6L;9Ka8!SA_eO&tpNAyz$L^0@ZZ#*zmyM*rj%tb7{FAR5N_K^w8Axm_7T;{8oc}U*6F?3k$SUOX)sU z?}l3@|J8^O&|V*d+>3%sF-ImtPRp~?P&=wU$Wt{o9Db{*y_jmL!6UqUlOQ_fI0DnN6?9 z3s7YKe`vNS>q`outfQGL@VFic*rn;`GhKNl@i1AxU7Uus9JB8_a1C=$k$~jU`%th9 zh>G6u9?YG;W1C&1+;3&4mWQ{)#g|AiCrHCkFKoia6m@1UzG8Q81!Kd}IYgQ7Af?n5 zXCTY>-mx@M5pltYb={^`B)NRR`T~hYX=O-tq7h$E?}1&x(Oy1 zXE;`x9PhsR*Ol6~6Fn^4{JEs7;J3hay)wT;(cg)txNf7pEDd;314p{48B>rS?^Ua z7p78kWUlFnp|$g5YzgajZO!!xj+a{e9QczvQfl&Z>5p-K`eOf|{2X}wU-NU*bm8Ya zds&hHXMWC|9_MH3Rkit9Pf~1tuHEMH^UxgOXX`#5e$HOw@bgep;pYQqfu9ex13$k& zjNUW<@~%%%rV1l#fjM(T8WsbWt8|F6Co3+yl9 zh4>;n?C)!kC7z~)-zD&QF0}oPs7`(~w-oG$gpi==07IFNE&6$(qn))>U(QC%5Z55| z)*1F=J3OPsun4kI@@vGRu(fh{)@5cQlsUQxv+I=MmE<|aV`DG}XjS%Gznt_iT7 zp^;ETk#z-D_ifc>Oeh(K1UP9Lr)Q(gSx0`ZHlJKsYrb7rIdL4ePRf6-ycO+qSBXz&TfZ}MiMYjk5pZa?>7MD92M@Fm4!v`@6#n42PAKk(B;8e++DlrRD z=9!e{V6>I;^B#xERl$ZZ2wZN3xqJSK6RvN@*IRY{c%eKEHspHNv(4GxZv$yPj&nc1 zN0WU{9Zs-*+#*$Ka)@W}Zx9}S6^|lfd^DcDit(1B$^&0J5GNOil z3|CJp;38e4-le*YHP#^CYAPOY)SuY@NRXR5tfbYlZmBaZ#Ov}S8{p+;Ngv&obX$^n zYo7{n;Yv>g@%2MLbK9`{ALR|xV)s8+{&tADQu$M% zx#Sr~&Z@eKbZ(#s%1G?%W(}Sv`^T~=YLeB)%{sfT9Kd5smEiHY4#D4);2U^Cnr%yA zA)e)g#?@C^f6PwK^G7yIZgCpp zoQ*2}4QsN|%sOoUs+QaXIav1#i$5S|pSb1Ptog=~w89F8PSU>J#x3lo_-;FJeJHX* zn#!r-4kSWSw}bFLv=b)dl_~t-LU5V6<5@&1Fn@RVN2b}XAK-hz0vt8rhKzcfYS_zK z_32luJ~Q!~_1T9hoO-36`V5WNXQS4qji)|eL7D$meWu0hGx4+9_0f1;FLVOkxZ_x= z3buqPMz^^~W-G_7#Pk}Gk%zDe1G<5yk8xy5qHQ>f#I@3VxS09Y#56N%2;5_^w(x7R zdU7g4LyOHq`H{QW8jNGVnBeZoI<$(5U;QS^;@744h~%!q2CBt8F1UZv30hykSuJ8Z zVDAOm`gZq9Z!BbQ?4GNwKiOODmEwbl{V~@a5D7`^?Dov<8)b@JLmqWZ7FLd{7vFCo zbMAa=QUm%Wdn(wfx|p`oh3T1#R_FFUB>p^tz3GT5V@sND@A|MIh4yY(rfU$w*%90w zYYb?tUY1OPHTLK1sjVTen3ErK%9~W9yfaQ*o_YFGI-l{PzWWbFx$z~AKi7ZpmRVQJ z%(wdCSXqXaQfaSAevc`ZQSf^B@g-9v27c<+^}&YbOKiMYb_1mB01Ye@ zgn9mzYX!1wibaAMkT@=bTM2p5Ydfdv+_xDT%9T;S)dC9z!L-=vJm&_%z*<{Zim0Rq zn!%4Hd0j)e{1Q62d(6cU=d8%bx}gnVY~VJpLh3jt>y6)$mAPR46wKQ6EG~E0zl&#? zpU!+cD0S=Qn${U<5KuVFeQ`8}qPp`dN7wB(y>?-$gHro3u8YnBhq_cKhq#x0GNp0) zDsnK+WvmbgAN-Lp!`eBKH|Qlrp1BQ{p2D^GFi$wxE4S2my@M;oy%8P$5iji=Gy!Ft~& zR+0w!!_#1p4onn-d^uCaAm4bu7-ZdNVNXCln&a5d{qIZeS11yW-^*_L)GlJE!{}(F zKkTO8rs*lLw@9Dprr(Tq!Dh{&9Y&WR-r;8TLbZ_f6th4s!3=h@+G~~%POv`J#m(vk zf{3b=AdbZy$wKp=PdL?X&s;lM)*T)~R&9IVdsAU$4i4=*`i^sTu9ZP9=6t1cf%QFe z%8t0`2Ic#`=?rfKFE0;ILAhLcf|-OVE{5ze#heT^gUIZa)*}849Usd>jt*AN1ju?_ z{QwF>m|=G}o>%8UxHsMGZ_bELN(-q0=MVdWjW8ToG58qfV;q~Maz}q&(h>dn;yN}! z=bQ2RZ{6wEKVGo8^2>NjUc>iVwH_@adUED}srB>r{8x(53bu_`(5~A%9Z-YW_@%lABLH#fiz}5d&KYM<@X$M*GSM@uU^}A&)>KC}ksh>B#0Ab|* z$KQ|J`w<-b#68)Q5vIIOoXkv~v zAvM+#+ogOZJ_tM^U){k2FgO8>`yheNhvUKT^~jL&FxO;Jp9HKK^J8`Hn;0;;Z=%?Z zFcaH3Xz&}hC3j|d?kxM~Li~IJ+4B$wOi*)E>R-$sB!?s5 z6~qAuOr|?A|H-y`-D)k3?q7v1cUbCZvZ1<^dp2hQ0u$E`G}th> z{(dAOhb4L0vSd}UvuBZUK>Sq{H_Bw>DzhPb*SNVTugK!g)ZP(Jo6 z<7keIyaRVjd~1s00(-Dk&RTRU+9FG?kCjPGzT3K?(I%i-=8qHo}j|+np3y6EhVwiqbxZ%erB%1t`>qMLjeZGV|f+?T! z&StDhNa3c}9?lk0{wBcwpl~aIn2M2kfL;nHvM+P9!{-+R$<=FR99ko0q0si}s2$}BGWCq)YO z!PHhPXMzcnhgQlDTOHR^C-?yeX{Bn# z1HAdy_HZI?8uFk$koCXD!Xvs@=YWaku{*@Q`h%uG+^afM#eu@y7zws}b^Sw*pK?YT zDjschCvxE~4RO=kX!?6dSD)y0H!D@M+M#>#NJ}?;`$XcF}J z!Oc#OYrKu6(9v6I<|C5s#@m>zhbvaf1Nf0!<+e{-g)rMke+bd%T%tAFbr~o+_Fv-@ zsW@bw#pwF)5Jv=qGrOS1rYenY9A+xmW3-p&Ac|Jmn~d{tCt39Jgv7ieY}9Ik`x?ry zvjBmc-3D6+Q74|=#nGc{odf&vc#+sQoS8+8ZgXDbcZ>j-dE75Kkeew!##|K2d?C~* z?)1rt{6Y_6zp0Sl+!D6Y+>CmlcV9YR)!->mgTvtZ%!=#3fat#x1qAlw6@BWDw!{Xy z6_}z?zrB3}PZ%VRwJGpEopWWapvHJ|@8@|@=?#q2`*%%xHz~bN9(p&m{OkL9hAX{; zgQNkh--ep>nk&5>3J9`(bLRc^{XBJ*-s=uMzcm6IgQTTvuKyWQR#9_$zY;1g$6g{*kgQs+Z=B5%9qjgh?e`M*mL_0h%@$X#0DE1*13;UR)(<%exT7M^@opX{km z`rAr{8m4%jJXxPi(I<~<7M{FWpZsklSiGfhAXax8}gQg4(vX*YcMpU@zgsNUN46Y&Qv?@CX3 z6H~Q3?muC96STa(waS}&cf7oLH%NI)@bTZu;}%pcGj^WxjQSuv_pkNAfxD!=A1d6r zPt2Sw<-^_Jxvh@9sYLO^IfP{Ihjiy3p}iw@LRe^*%KOU<47KYYx&0N=^7_Wh17BC0 z*C#veZEY4_uNPWa$*pa2=fzr@58TuQI~B(g+P~hN>>M25f7wat@9gi&gV4`+>DM>I zKq;1N#^3||)SHCNH9{Ui#pGA?(O?&lU(=N2q5s_b(pKK7_M#U3y_1~!*T>!;YK8wMswTQ(8Qd(JSHWTn=wJOB${#NUJgDmi8r=%*|4WNYx?i> ztbJiwql#wC1GNt*t}NlPdUCOrxwel@trHXo28L;;)V_*&sBQa{)Q%@WN%{Uxhb=35 zA*Nj&eGfdyr=ls-FzVdv)=(F^gD3^zRn+B4d0OjILJue_^hbxl75KLf&c#JDTD7vl z-@tJW{eipmenlnCO?Zsci}U*0HRL6qtl{0Xe9?>n-Wp~AT-gnP9K>V&4u{^cIW$C{ zXy|>SE^8I~J=OR3*MQ0mf9EUt0bh_*&lhfpX0hz!Hl^@(Wa(j?XvS5r^3u5dXxxYE zA=>65$*c7U&?|YyPYmDQ3kcl{VEZpT9Ic{ErT1PL2+XGX%59OJ^fmG#A zRymrH=#&ATn2{`lRegAbaPRkKf$Q+QTW}QX*jDQp>=(NNeN>F+eI*GnjO;Lw4Ln>q zo1J7AdopZ7>;XRa0(MR_w3AMrzBHbrp`5#qf*oV$F#iIZZiP5|a!pr!b5cKdbJAJv z=A_Q%IZ}ycT-#b0q>}jbC#?J*iNTJQ*c!~XwSnDt`8UPR4%{X3&Zr6`X?D zKw@wrR3i41AW{_^i#?-<%M#K#YSxo7E)1&NsO9}0syb=XMJS6s_NTJu<4r!5-P!*n z*~uZ9gbSbIB;R01kfeNxW<2^Jw$dR@Mr573R0eQ$pPVO3fZFt-OnkMzvRoi@*fpHVqqPUNVZ9b>|yk|5U}VLLra^rhl|f2uEaSh_EDWG}>4ihZer z2VyDbLtnQ-9L^kp!U7foVCfAhHSWi&%3AyP@^dlfkAoIpTf(#mRZp*2~7tk^xi>l+%tc* z@}HRnVUay591Hn)*k8Reum4xU??C)=Jo-UHn}el^mDMsguY3{O#^K0=WWa1s!rf3~ zmDG(6VgX#J%5k2A2Pin#OM+e%)mgmbM=r}`PoWm8*I=j?p|{P>_B?)Fc_+W`!}r+! z(X-m)$+?%NO>T_fFvqRlT^2t`sX>gbz7=J9UdJP@D1l4KTc-H1m?hnAM)z$eGoy zF|B!ms|Z(Z$?V`7v#c)50ifnU#QG&bh ztJi^;yV^N-1tcfE36EVaxvj$?M6U&Mz2Uk49G}LXkAld@@&4M?on5p_r|-Y^u={Hd zr|(D2DbktfuU|~PbnqUwrhB9;^mTpQb{;$x6_2b7ebX^?G&$Ic+BacZQ&qh|Y`VqX zXB@@X4jwZC9o*c^;74Ppd1D?-n3=l`PSZBo++#}ixxIbkd+6=H4dT7s701cEF$_c$ zPT1SSV7LF=+vcja!ZlN4{_OVm(4O)B{(jb9_xJFdrN2*BxZB@T?(p>YeO+qx_nl6H z_IKic>TlnBf9mh$ZQTBD`G(WqXEs59)99eTcRlkz^f$*R?-|1Q{P_%fd~z3gqI7#IGdYycojxIuF5X0F(ALj0StRUe)KN7=#hHyE(+sXp8sV)zQN1CPB0*AuBRZr z;r7pKJ>vb7`}e=@pLcGO{+Xh1w|{ny_4LnfF7$K$ zS+6-=dVWfL2sfU~E z?=o+T>mOt=rkS0WQq4L!fix3C0yY4AS0f$wJG~jM2qPwp>nu}+U{{xV&WduY9H;1oR7qu86A}T&oi~pxgU5q zqJ$oPxbeM}H)ww=l>LojR-3(J*xyt0mMXJ$O4L7@=MU7N6Zla zz->DaGb2JEI&cZxb`i77D;+W8l~X5_FNCepRoUI*`eXwtUP~U`_(;)pB3~^P&i;|u z>_fN2JszfPYPr0cTb}IY-p?0<6BXyPjhl+9OclXfmC6sV_Dfw9s{qx+^ znI8K8{KJ+nM}A){l=|OXi~jo2PW|hfjRn#LmH5D{r%tdfHdh5(g{m6iO(>B)jxbby zf&0TC2eV&xmULw|{q^6z|^&O8g;w)ac)*joZJI|Aqb?nh@{b^E>>h ze{qSY^lxC#|Jc7pr^oyE=j6Zc-_W(fpS}ur`TzPThd+palYmsPUg;{abcK%2_kd{xlxtye~B=*w^nI(8Eo_<#HFHo*8YABc{>h@i_>N%jtPg zoBzQcor_{6Z!ykS@zz#ne-`4&4#~l?qG%uct3|b&)e-iuMNe)e$vB$GsW-NztcZL8 z^0^LqT`Qa@B{;$B+WON|-VOhuygVt->VV#at4{aZG`$f_i)L)x#$X@|N73t+?5U2m zKr?N4t51XAl>bnlQGT!$^TM)NI__NvG{DfZ|PxtSVKJ{H!x?)!HZ;SA_1q!?$ZS6rv+yH@;8{CtplziOoEE-He)cg(mgv? zO0JZxo6)*xp)1YgrrgSx+$~EqxnIPfPfwCNh>!oDqDE>yl}b74NloXdrxUto8l!JW03 zx#{#cnOAC%d4XgojD;Yh{QWzU98Mm4hb^zg$%|8jle;Ak2Rd{2c{w@zRD1ni<~PH@ ziuY_FJaSv3_`=*^`R7rE*Nlm-@|8?SzSR*;*@(WaZ&x1!tJOxh00?g$50V*E=iw;X zMtQ9!1mk522G-nLy``8hZH(mOeI|f}00Gf?9EVp9vIBA0;LyTtr@^Ejmr$sNC}|=s z{q1e-e_l1olf2l`bqY7I)Q}guY5z_Cwq@NM{o8p_d?@xqS+(>pc9_l+@kpLv*T7|A zOJ8{Ze_`RzWFa=@%T8|IaMDfptVI{e*0tz}dCTRb<5|F&g;&|8N6)c%P|?eCAG-3@{rlP(M#t0w?T%3cOJ+nMU=M+`%s9z?rO=o8)8aEKhe_1PF*C%6-^$z{~R-1@YyZ@xI`|8K)ibT0`lG z4<$F=5xY#FgS%e{!4DklN8jOEH%{D)Y!XB$!M;!3jlWLc%dLI+ktla+7BGxAhdbx6 zGjJX@1mR?;y%#gL6tD!d`}O$Q?mlnu@WWyA$(P6BpwFeoFw14jH@@7jvDbw>>XH_J zds7N-IA8>@W9UfzKyx#A&sr{O`t4FIR3x}SPl43K{imt1#t8prmHq6?3jJ^&_RHks zP-*xQw1tOmOLCy=c@&~fpfTp|W+SiQ-? z!Hh_lyFTG9o{gnp?s|T%BW)SZ096ihRpTE6C zp5Lj68qd#^=NWfct+`Ol(e_=Zz!i@_|DrxW{{+wb@qFwC-A^R9W1t_>5m~?m7DG~F zEjS}~^>>-^g(~ht+i^|e6nH0GKRIOnQO%xTE#V$^-u?1>m7Emj?}_-0p})o|oU7Nz z&N+#J$8vo?*f-`-n#7$UbZg8-shk7^OAD+!5rkvBA7@@eD}DaZx4&N$?RzGL^dFz_ z5X^;%=|LZ_^NqE3`Hfrjc+ak{oB&i(X;11S6DnG{XHfo|Ss zxOP%G6aQcexJnMq9h1Zhs`zVP`#LwG#}48(`NR zzGsegM=C6=C3|Lh9t7vZ7X+HyH^cAElsRDXAj|=AE7J7!#o!ZG_i}tW6}Sa=v0e$h z*v!vYXYu4$xF51`A#Mu9tMPVo1lEuTxmOd5jooDDIX=YD;fSIfV;>}!qc`?P{b{l0 z5^s0kj`}Fff420ArvOfa=u*7Uh3CSn7#)bCh%kI*k+w1e;6obw!i>{@?f> zc#A|5%Rs{)Srgn*`8QpjkWaA^m}m*9J>6<(7g>3aSd}6XHola8Sl@r&df{v zDzE?6@tGLfEnWSIOK_^pE%R{A1-~q8os>|}|F`i?@}d_e74$y{9Y5hKF0-=*Y}_oI zJ`Alu{f=Vo6<=55s74uU)_=n!pFikv#mmeI(3oc22X=?KjUuaxIrO2-EqgQX{oMz#@O%NmsV-YbiQ7vLvOWXf>{)Ornm zI^P%LJC3ieA|moLm^%yK;1{vlSzN4joVGfk}DR zbv#TS#6`)OJG(+by;y3hahujn_`ROLAH{E6EGR^~#a?m7Bm1o@r}~kV)cL;fR7hfe zbZi=dff?v*Zr-{OH9SGF!AM>d#YV%ovROPCJvi0Z3@UbTI@|UUuL9v+!N_HQ7dMAe zjFLB5kqud)4Ru1x7T^cu^`#r|SuSMs`jBuc642gpl0F&#a_Hwr-jH-lBof(af_kPH zAMjsh;v*L?&-CRS0rN*n-fnZx^V@K#UuuGyp}Fs>844Fmls?RYL1-p^fkKHSX1;$q zIwrbEAg)O|b-tRU;0>ha3*%bO1hb@B4O?^_CJeYcS-ad<@+=_i;KR@tpw5=t0%Hq@ zS1Q84(sQ{T*289tf2pJL{8n_ZJS#HiE2+Y$^@o0iK+O>j^j_h|y`hh-;ObU%9$SR> ztIynuo6h`+Ya!(6NWy@YtiYX>Rp6yvM^lB!CEu~q3B%!386pF5VqFBxSAyF`6GF>o z;c2w@CXfqNcSS%2kB6$$d?l0drE(}su}iI4k}v#s01ky8!t?3A5}tndPnY462zBq9 z@h|u>R+ODKAj)y$3%!JtTn^eRfGwB7h%X6zS^RJKM6l3d?F{~gPgjiR#8P~Z-}%wL z4RGf@4zazAUpQ%x_-5AhDV0!0l6n0fX5^@q23dAv}`b za`Y_g-YPTmDIT${GMm5~Y`hwexNCM&UjJPfBNKMpg=)p)UF3|XEURT_YJC4GU*<*o zVl{kq6YTa$gnx8=Qs4Z3=vHJFJ z)92Z(_S9K5Q7!rMs+%;(QRSmp<_14XHu=IM!PFdUk!Z61hkYe4up`3k2<17L$GN_* zzd*SEZ}Dfdrr)RR#}2sr!2RoSYo##% zid^gTg2dlxY=?4>P4xPfTrVKs8$7A}zYHPey#70D^Iyu>`o{T>yPUKXk0zK}^XH`E8W5=)^(nCImqWmow4?<3qG3+HAvzSs;D&b^1b8f}ICgTE>SrnzJqROl;lVgfFEuw2cFK^}iTl$gy7Hhyg!*C2dhX zY}!Q!i)OaOAi)~@N(?k;UgA#Y_=7DZ{=?##apMVW-x`qdmCVB+#7X3P^%doAJi+QC zH-Vgj68wp~^85dg=Nobm9%+;OZioCu+0g2?EqsR71#&4LMI#%qp4YDq;Q!^q%no9eguaZ_y|h-m8QHA^*Y7p7_W|IHm+U{)_1|Na8gE6@&ZfEGY!t$GvpF zb;Gi(`U?JN78J%R-wfV52l0YTMdmDKWBaf0&8UM!ul!|M9WbCE25P>|1z2I=JhJ3X zgwG%duRpepmvgk5v#r|qewg;YOTxZ{gv^9exMcF?6+h0;J}k2)v%7*0Z8;(&T|PJt zwlReCXaj9jN1gw;?J3HX_5?KB+a5FX!k>lbe38}<=IBoF2h#ls$E7X_LTiBoy6I~GFuG9v9kS5GZQ7^wjt`dC9X?x z3g+QWkXY8lnnOYM*PSEAwEt(m2hK*3m}$!7WTh`WnT|;Zq#Y9Jf_>#>UU_7XIRl;!+F=w|zgG8^8R&5);l}T@lHJ++rTkPdI2R z9Q%X1{P^R}vKJ27htYEA9I_RG3r<+Q`}(69!@fgIBB@+9O=Vb4{9*x85x+P&An83q zPI?bbPtx@EZaS#|zjuP*N0m7EmETJG7Nncr^$@Lywpzoa>W?JqaqSVzBBRNl&T#PG zD}Fxk&VB}OJY>o~w4zo#M9!BlebAG&T-SK0y+2iYh6J+rid5OSqO~n)V!^lmkEM+`f(^#eg+YTk6sOC2S7k80lSnm0=GwtOvldyuC`Hw!fTLdkAlRwmh9o3b(X zQPfX{Nn<(-qSdFGg+g2ClTGx=5+ythXBYS+q^a6GqEG%w@dRHw2{1K%!_84wOBA2aW1V#xk*v0 zcs!A9&fLMQ^X#nsYG7i_Vx-8kzs6bL`ty179ys{#9xxb;JH5Q;&F3LxffXk|&zm1S zOh+Jj8L7i$^SpV*?m?dO=Am=MzRgv@3C^2ea4Jo9a>%B@^PA-d{=EMfY8x!wZTcv^ z%j5L^UGseS{!@hB01v&YtUuFZ0E_g#&5-&viPNif-uwlncOXGq$oh4;>96TMs`OSV zoc7#3Z$1)~{^NObr$3-5@Wxu+((uRZc;F59_u6&fe%*U^u@0{OclT4a(DL)0@}b%3 z+72A#>{n}T26s_k&PqPZCdmD87rCivb}H6v+Yj7t?}u~v|4v`w*TL!w*x_6+6Z$(d z+Km`IS^e~_iHH5{? z`&U(;lS#nuyYD@IKhkG-KmJXyyC0|MjJmZ>(%`k*sN$^(*X>xh8TtWk*VMuxT;|w@ooqyobZ*?pT5ob zWWH&{i&daNZoCs8BB2RtU3-A9>G8lFy3swVS%r6ibY>Ss+IwMI7y;0x;3UY5wzJj2 zw!~VXO`W7oKdp@F;K9e)co9aTRE)1Ly5IxGYcLWWhA(vPI}ONB{CJ2Nm0Iv{|_-f?sgTE=h3?L(Tnn&8# zFx(Tr2FovR2g2`=el$VF#I$`l9m%CS^I_LyI2);9VVZ7RnD(?SOgpMf0s?Kw@42ON z7|q}YMPhwz!f-5*zDd#;_3d>M4?gTl|3H7Jt=_>jmj0i4rnNQ-*Yihh!~Zotc*;Tj zu9&{7rW~n?@|2@Hp@MUlYN;B{PpAw%S3UCyhJ*P@rp$Tft;rB!<6yiKh$fJElOcL@ z1#*k9Ch>nlJ~mZ#CWg7Mjzv(b4E~Gm&pt^)X;vKHuNoy#YI-f{9sDYK0%tHx1D8O- zWH>juzOQ9eb4Oau9g7bX>^9oAA;o?8c2EIGpf8<@yK^CQW0OLJ*%6+oZ1*7>rp)MI z)Ral%$yJ6e7v9foZ=zLQ{2kS08_xJ-eYcx!Vou`pN&SKPO@5SS)Kd<0Nh>1W^EUB) zxX91APx3)iU%|jajb?SF(DSGY5#6i^qSQxmz!8UQ=zqQ%qv4ST zXWwe@dJ()9rudHwrvJW=Q2~rLMFK{FR2p~`sv76iz*+-X2>GiTR~iKJAQC}|^i@b% z2R;qc5&C^-PUtHnsLY?^9HDYJ0AX)Hq0u2Af0;=xk$KCve^5v=W=U5hX03ltebEL0!yI8cdOC#Qs2i)eJ!Hu z8*p6ev-kf?xV}G5*VzBltLiIl%k`Z>@ZZ(RVK!zPqF9nRTikX*^NSHuVtKSB$-?w#skA_Md6-ZAH@31*o&s68&=Aw|_fs_=KR^w1 zf};8O>A1h2k9|^jyb2||z20x^9W@_sLgRQo{=b<&ryh<2w?j{*CnQX_h+7EycB&6?z3q+^=Vkom?Fy8YkYW}5QTsO14_KTg zg;!Y>w$c>_rWCd{(G2|9~0uJ1_ZV6 zVp=bsm(*A)NrU zI+o6Nb9xiWiL%F>A@J8r9-AJ#V8gGimN)11xE6tBl{pf=LVa$u`vnafEJC|SzarR$ zKpb=iEc`VQ_}=R9S@OZ&_Cmd>reH$P`z)MI-NiUNdlPVG(=U5IN88Ir%A~t={_YI< zUetNR#@`cN7=L>ttKGl#msa7gsF{Vo)fyn-?=w4gxsE0LWv11@Umt=0P!0GuM!}!N zkm%B3Vif#4?O0b7{OiZmfd6$ew?DZC{PVq-zTmnO_Og+mp(d*BWyj(IE7q5XedyBC`h!;4>urEsk!N!gQg_g`ws+XZt6Rn>y5vcX&G@_md5O0r7coo3$P7Q}_JD z#AhE*L$TORr)oe@8lSLspj6R}e-A2r*zOi00J4wCvqOX-_0bYu8i{vXxL@)mCq&yN3>#J?-?MRxpJiGLdLHTQ2`U#UWrjC@Plg-#~?^Q5dcvVU9! znPRo`y}jN#cjEbat7Nvu# zZf*Ea(&%Ehp-EZa@E_!#)h*PkCgtl$%`yAsn3LkotVB^QF4~s6DK>y-PoSYmE5(BY zqr4)79g830T}Njhd1#1u4`W`nMC zX`sodYoBirXaHuWMFaZm$C1)Zi02$+x3SL$L%;BMpb4|?u;$;wojfmxUysX}*G|OQ z{^sGAk1Qe0giq&KGYJ+9SbfB@rF4)5@lPk#jhVOIRq&v*t>KsD*hqVxfNklfmRR_v zo5Vpz;bOFY;TT+O-|qyVgN8FZ7EYi_^3Os_Li#EI1aA>}%MqfBc`Nvhm^sVksnHg1 z@`^3OioNkTR&4QRYsD6+k4rVXkO?U3#^TS~2?P%-c9LRtAx8IstlQ8n@)>(A849ND zV+@OAUe_LNmAMhy9HfeTG_w;~KFy1i^o`u#Ud zo9ggjkHyI@^QJ`j>`x?B;SwzPu(`s@8wkD*CddflM1S;Smjp!1q+a z59=dkN>mlS01Vf_SUEj4uo0-@3Olx$j!nl7iq+Jvv%4lew$AHMwB`Q%bd0-9_a76s z>k8L&p+0FBjvpUTkoKk+{(oZNAZvu2@KKr$#CC(GHT6C8w|nFbIM!qbM#3u_BxsFl zfu13VPsX2|Lh~onkMe?YxZkj{^r{@tf9o6F*%E4K*~p1FTYD191teJ;L zbo!9$iO>@`N3Rb37-q|c;^T32IzR(R)gAA)hH4{E)c%NRlxp(x<|P4o_KVDq^PtI` zTjmMmRRnTzxsjPnID`FTl?lZA*sj2SJi&#%^19i_BKg4}YH(In z<{KFv&$du(+k@GAF3BjEggus~9!%01;@TwY2?+SD5G-O$NE3HkVLJ*CjklewrhDs= z`isLTtVic=MnZO-T<`)LNXLyO>Ufm%I7H|w3`{_6v5+`ZwYc)AFz}?;=grA3&vnH6 zGF^dXvrw#+L z4R#hpMQ7nnk96?p+9rPhkn6^GC+hBD9 zR>HSZ#v|NU@HO&23txl`%xfy<2|yB}pcobLWR&?x-Hc{Cn#0Kc4>DpA-RQNr5NPNS zDVN8nX}LwoC{QtIV7O(~ev6+3oEr3t_cfX&|Jio2e!WK3{9V7s1GAtMA7DSly*gc8 zz$)k`-|uz@CUp-#r3#M3IcS=~_)ruqL5)v?&gDPUGEx_QM}rBqZ?i~!(Pk#~zl)cFWQ`H+Au+3wb+R}D$BH=*9*sfXisl~ZPPGZ)>cY>2$qc-CF zjg4{*lNEFznykpfdA`Qs-WHkAPw919SZm-w-)uaYlHl{L8F=%(5B8~LtR5L(@Y|p| zo8*$NT6L~qZV_nX0(nD-33ebC*4I<`ks;i{Ip76#1+eroDJKW z-%$m}LKwSp-zVW#?)ed_bOyBZAQV5VhJn-%-4>7QQ0N)lZ_UDeQJ16IAEIKhw%0b6O*go z0Wk?|QO_U|e(rpiy5=+4nb`$5)wXoMqe^KFLsD+x;kgB^8Q`_O$>t&}Fyo>&xKcsIR;e{c#7_KfMp3lg?N(Z%x1z zue%6{7waOG{2#mMZ-VMV^alimy6S%fMc{m@kv9R<**7z)IgObC-6E);g60tU{_n6) z&2t4t#IJ=89a!z$F9Rd$7Z2qTpy%r_0IuSpjDJsHGF~A60o1DwB(;Wr2AYQE)be7A zL2glFHq1*Vo>(_&_wD~TO(HaNlc4O+OinMv z=5KmW0RFc32_&a}kbBMp5#547XX!P!;D_6|*Z*@1F6=Co#UKR6LK-nNsRs7L3AD|T z_;LmIZW!%>X05;5qKqZJ#yJ56%GfVzV^&ik1-x+o%JP_lJ?3pVC)|X0b!WCToN2Y2rjST`Z{+xxvdyOb$YV%2PQkbxp11f4=uzJ^X5|TFm4dRa=9>(nG z493XUo|fKqs2F>9V>5R-;uE`&Gx$L6attB}&2pR=vGhEF-_(x>D4*BhQ%ROh)ZJ#o zaQ$^OF9T!X8PttOZg+UUH^(IUcYB)@JXqi1J05Nkb-p*pCI-eNa>A~Hv$5W-aFyjN zUPrSiydg^d(H%HjaF?}nm&uM;TAcd>VLt79Ja7fAZ<3IV`$2U*$X%#gFz1KZ>G8(u z35QX5gf7fJiCAdE-kmBT*1F(4h4US+#N2(@N)?b-fl3^KaeMH{P!1oI$Cb!~CB5XK zc^vAZ&WHB_X8`f;O#tkkbW*n+OzR6(IOTY!fYHS|@aQvkd6#Eqd zI_MSqf1oe?gfz{LC?Uch2X1w&#}2Gs(1$ZP{ne}9$3a2 z-^FYuMOCBC=Wa7&(w( zZ6L^M14-DPfkcZ8TQ;If@EB|_iwWswFHT>)3})4AF!2t;GRZMZVDLPDD~&?b>OwR2 zzr{?)7mwm_dUh|ZwL(G;%iCOm3b;&(4g7}r=faCmWZwPN40v@I8OeVrHRA9dhYeNb ztXdO7Up|F)1~VT!3D5846GE3guWH&)RLLVS1(>hQY`+HAdbLrPiU?w14gm3Og~%sx z289}aMlsbl4E6P~>#MD9LUrMWsIWa(s5YWJNh(mLN?39H-#cpDm#w)ImC+2%sk)#4 zU*#iBnu>g+9>VJKk=L|BJY{e`*VTcz+EfIW+CVuSAjNnLL+dV zo{jw;D^;l>9q~9fKM_}R{Y9^zmZ$)$H+Y-9Y&_-_u*L@ogqY+$r~3FMGEah#e>Mce z5j;{Z=Pxu6Ha3;CJh7mfKSPK*21Kb5Z|uMUZw5I{@lK*{6oOi~GHIU998JF`lAs%u zZ73K+HG!dTgFBu?BB~i~b1-W0rok^rBI8qi{IoR&s%!YRXUHx^Uj}<}zv@ zjG(|Am#Z(3h0VOgb2|~-b%=^Oe?dNlXGyao-{|%}PbKtY;YWapf~kTDdZ8IEK}s>Z z2}e=0TlM&+`h2d!C*+?HQ5AuP?Saq*bSdyVMhSw$grBa{YP+RSr8($OaH9SIc+ij&qlkmNFb+to}+ z?kG7sa8ujdz)UYQXT8*nW!Kf#HenfN{|a^yXu%!$2Vx4Nd|lv*iN4y8IaS z7To9wp)cBe!z-{_dR71DpXdi%(W$^p=s(4tQkV+O0>6`^;1OU#mwpJ13YZ^|YwKY8 zEcyj22cGinL6}iAa;rTChW|lGjH&VSw-W5Aae$1ONIVXh?Ttq>i18vZaKc37cTKLp z24p327!_nt1-#!a%M0EXiw7<*;~O4N%5l&iIP2}fP0 z_ZbVufDtze@NzCxJBwr4^%hiaFRz+U*~TaFP})c`mToF2DlMqE$#}ddX}hty$Q`WT z0d|ql-tc6EjDo%3s<7>s;7aERBx%MY^lm72pz-l&V&y9Xsr$fxa4P8nC%}|gCnq3z z?gy5Z-o2b$+jzLXPOgRIo9yIKI@wP%HV>z=VEQm5N_VmJHol1aYvZGw72Gb4T4h<7M+TW%?-EShvgo5dB5m;2hqjo#M7Mx2o z9{COt?jUFfwkT|D=-%)IV70=PvB|)_Qy|DPte`8AQ1WmIa)a#wzZRmSSi!kA#-oH4 zfdBaYL5|Q6;2z&^ydR};`qwhr5Yne1-R@Ngap){GqOXgJCJVH$kYZ({-y89pu=_A| z+D3%8<gz4k={?sdM}h-Jb&TjFuPk zS6(o=HuQiKDSNHF6j;lDnq!dodc#T-3oIisFlzc|1FlJpI7w5ULGs00ykKDRgiMSe z6uD1BrbX4DNz-n{08mRH>6hJpsR#=rFu5TD3r`%mFrsMExl>Li2sNSJZ-%1R4IbhroTPi`Tt+Vua_(;W$shX6!mA>+C>)csl#F@_?n z_0$q<4*D_#aZ7-jrpe@2j#eSH_AY?T%Q!LpXy|LQum^7m2!!WYw4vZ!JLBPx5nr$c z$BFcp-_`9wxjrZtT8<2OKdK|%(|~KJ6Aae z?}RUT6HwOTe->)q_5bnTfeQX_%3p*0%{Es!L6xsseF&fkD*%#?t;O&X?}kPr9sL+$GIepTP`6b$%cU zf9LNM{QUuWvBqCWN8PWRFe0i62Nv4+d%TG82Nbfnw+`JP2{J|J$ae}epyT0z4y9(n zbx)Cn=qv3eZpZWnrdm-Gqt73(H>K&5J_!v`H%P+>H>2^JdcKdO;Am{;s)jKZCWHoY z^A71>sk?Y+_7AskGF~cN(T}E5A;zHUJRtA4gFnm;>?zLOLjwdlg%kPogdAh_y)mM# zkyqjg=I;4~4wCB9B@|49_cfyyVw;Mq~SzGg4o!K`Gz#(awr#Y#3u3|PrS zv6__}o`lyOn3uc($3EPHc{}6;j-apAImuq1fwAqLumZ($0+ZY31nzReAz4!`>oOX} z$-83JwJUxJm z5!O4ZprRR`r@x5~jGKy}FjG-yX1%qYiAOPB-86kT`5^RWs|6>2pi>CwV@}{y)qD-* zgI8fUg$GnFvV^}^gRZT5js9_bXPfh!VO%LCG_%`%<(u5@pDvHO-@tq}6FO}dWd@Ld zc3l<^AQko;h(76{Nt5P@^CVkHIA3ht{|6E(=sTE@!4onSv$X+WtLsm}0bQ`&*LlDc zznuLn`Ns#(71M$qSRa6ixH^Wmt7b`?NI4<(l{yQwUb)gNw>yv zsQ@K`7lNydCRSaYrBp-ME2DYC?dCO+_+b)%nH?V|@%Ku63p@UgH@J$YBtBwT@PC&0 zPbB`B9luxNk4pSkcKoLj-yUlW?fJ-#|3Koek@%PF_?IPqvBW=W#|I^To5bH|$Ip}a zdm*R;{PA}DbcsJI@q_L7TO@w2SY>y!(M@f8pSZV|Q>4p{_hD-cZi9ck= zXG{D$5?^e`_mlW?iGSCQPnGyf!N&mp({_A!iGM)i=h^W|5>M)1$bXw1-$uii_)&Iz zV~HOG9Vg_!!j7*a@lQ#72RlAq;txuEZ96`)g6Bh5=wboRuMI3boR#={C4R3R|A)k{ zmiUc!{0WJ#l=#=}_`?!^6ncGt|Ck;BHRACy;UGBTk@u&)c2e8Q{@8TsP3lQ@+~?17 zGatj9fvk*NJE=i;UhA)kjeD<}@dF{|=hex~OG6}+`c)NwYstT?{RQ^Zq<_WxTmEF) z&-SWBH}7YL|1J=es9mD09`6!s&x7idzyWtlxc^_=7rCGloA7&o;4`<`6hwdA z0{U(EKgR(t?fdMFC<#roNIZl~(35~b(VVk@6#EdB708+N+8Nf3%VLQ`p%GiQ;| z%_w|?esDc#?zo+57?jYNE!c$wGj}I$U%a;jCM>60>Vk^)bQy)avG0+nT_~ScLm{@r z-mhIKpH_YFo8)>Bx3lF2F}WQ$Pwo=zXQa`Sr5YXu7ANmxUzSu~1v$m|Iwx51GHzn7@DxbTD}^fXX>jyY$i z8@_S1XQj!x%i&$g5#ySiTjUAmIN;UBSAw%IAj7d|oh0BSaEQ;9<5u8e7`@LeQawA- z?4>Jbk_XPg>6#Vd`JHz#b-qS!vjzG}7o26t3iVtZ=*bB%dG!^1dz+}-0`!ShPt=`< zPjXsd8QF5e-*6HN%)%!b*qC!xs5;ci08|3tf>xdX=?4*)!ZM}|-?+vmzRM`6jaFll zkqj?-GC;siut;g?-6EM5m<}s29WXVfG{y9Q5YNw6q=8%rW!Yb`JCKW8MkwFmNfz%V z(13!){xjao=srvI?`CvYAN&RJFZhx-5qbi@)1~>35V#>`_!h{QQGiYcK~60N(=;ne zvIbUV`!`^$AG=2uN?JKBm5{-vo|$h`l2?+}q_K`y=q4mVMV3Z}kFo03o1ya@@f z$uW`9!fT^4cx$m;$~D>M@TPPp+dLckjs<6GdE;T^k0qF%gJOVzX6URvK`VS+k-ud@ zMI&S@A}X2Q3E6Cc#G^R&gqEW_=vq@S>|K>#H~M;NbfPr+v-_eNy>$!(3g-BhxR$&# zs!pJ(j-fI@fE9^_uC+SZ-<)^a3lxq6wLfD5Vs0#+#dEGaCpbAW(j0hHt%})0$79?cL{!Ru zzQt0&Tkb!?%f*Z)ArJEM-b+p|9v*~WZ0Exi&0EK9jubne45(Y>mCWcA*yJ|re~Isv zks?ux$=El&L$>VR`=)mccjIxzHoVeGo^d#^DbF1EWuz!$AJo6`eF=XX{t}{EX8SyI zY9f%>?c*WfdUA`>cFTd`P(AQl1#^m$eTiTJiiiaOdB$H_CPbKFy@#8Lm3e`Ryg*1T z0WZT>8CZsttnO<^Idhk*Yy7;QY|k?HdpiKVC3mG8Pn`v-=BqEZ7JPXC< znZ6__OXtSpLVsm8{3v4x2WRmR!a;tp+0g4jBM!!jN(<4oPxz8%Jz}s=`+u+EnJfyw zh-wcMlM3Z9kn{i?n$DAJ8rq3=;T5V7UcANS*qjxh+f2W`{YZUvKomb`)9>F;3;hlw zwCQ&vF6FCBI!=ew+zoV57*X3PE4e`@Yk_J8l9yj$&B@nrq64XD(EV$o)0jhYC!*Hh z@Cy;lYVsSBkDTTkaIvVO-e>dOhsuL;677q@^v>615$#iN4q`Hj3wEv2Bo-UwZ;9yt z=zMrdY%b_VB;K2-dae=+@?b*RAl>$6S6rJ#a>f#eD6&+| zhIbHy*)S8P65ya&HN}Ko1})xGsu8$-K?djqT)NBdNT^rCt_Rlb`(j}8oAH=!lQIRB zZFqGR%xW7uy`Hf;3%;fJ(P`*TGfwYFw{Uvw1s>FXU8~ER0MAeGoElzz*W@gx7>F={ z?lypb3xLyI2tYnsCinBf^js=mGEmw><(o#8SADGpOqKEa z3%&V-Ioiqw`m_L5$rs==o!}J>(Bl&Yul1D=IkCejU!=bn~&f;7lw9-0zMy+?NDyS?8}= zzRq?$!YO4E-0cuGgLM`^?0_8ez#R*-Iu4BW#t&@on+VFUnh|&?9q{3jc-enJK1HVu zS}H^(K7E!6d>OXnGF7pb2y?L-xf;CQGn(7iSr4fmk5JZqAZGN^D#qvL{uVx0>;9vi z6yMv5KZN5oh+C@Fe$X#s^YX7oOqAB?hM3Y?k7Sq)h12KKb!qFY` zp_A1KR&~Dgf-`Ns?NHTpyQ(;;>N}B^#s)f2FY2W>5hv>J! zjo4MFf3&W@BiG-8>*rORJnzC)GS&vS>uK(8C+e03&qwea8eUI^*OB41SzCsdb#^7E z?Vf+86rUDktPxEg&Rk|Sbf!Swo^%0yXh!gtL)K0Bx{Tqs2mJQFmIbrAJA91`W?ka& z)i0Qp3X_L|S$!Q|JZ3jx3)jVSe5qYW6RG1?t|QB$$E(HwewK#chv9c+_(=@EHN$Vp z@EbDv=c5vbBSw1>;X2anI^KPXG2}oUBtOD|vlLOJ&SkwEa4Xn0*2UR#FO9PlcA&V{a&{KN8$dH$Jvv{Fd%VjFOM0X%^K zUt~S~Yc$}eYWT?vpXNt4KX)n-g@IN&F34Tes z-~%|u{71_HA1&{mf4GuIF8|DVyXAX&Stz+mV8063`aY4?|0uxA*YJ8Vyd;K)k;DAJ z$YFk1BbQ2xDSG5)+Q9#Ok{dpZ8XnC*EG76!8vf-Bza_)R%maMPJiy1yOVu+kZO7@X zzFz1)5`Ll$f3Xd}zQCXGH}LH%+REqz_etXIl7}}hl`a`oZzip0ax4NEc(LHXjW4kA4`}s7k+}xO^K)I z(!(0aSO3X~_@gx~SDW7EqIOl1CiCMVb97r5UDe)z&c^tlc``l8RZ!V!Z6~VQ@O+7g zj+%e=K&jMSP|^9J`cP%9L>snwPlW5Z12~+W>G;5%?t-F&NWNo67R0%vIDiZjLdWhR z8AZY@d&ll6qjM7)Me!+CW6PItV~0z;%g%ol@~^#}`%F(Tca!w)c6u2)$zpjV)1;4;W`p$usrjU#TVqm9G0~AEEpHyE>Y)oyzg5*1CI-a}+CM*KyJb zHD@=?CQU3yHcxv9Gg_&pR^B3=_s0^-TWpRc5nIpf{J+S9Y5rdj`yW9L3{@wq#2dQA zdt3sVM61Z<9`q_)0sk}nH8c^QOYljKPmjN>TXnfE_aK+U^~fQZtH=2IK-}5M9NHGD zl2`?2?NxxMD~dWU!EFjeLY18#x-0*oxJvZ94Dm`E48sAXdX!!{3l<*A~Se(fZ)grZQ>;|K!o0@Zb)}bx4W4VB10U((ROQ z^G3Rphs*_Pb<|UqJ{?XgimamEMpjWrRs0N06I6w%^3VR(R4MUI!c?Iltu976-Nl+8 zz97$!ZOwUM7Rz>N!YU=0o+wl2O-Xvo-bqIyJ|{pfQGt_BP z^nNRes)418Y}HtD$Lzn1I`f*UAM z`=Ff*p;^GXxMf7df4q7wTZPrp374c2g7g~3rS{6^CHuczrupjzgV4Kxo zdkA(b3wAexO#&u@-6sk*3Cimi`$r=;QXOHJ)su$*OKk(H)kfvji0Qf~wWv0vb8Vk4 ztiqD6jh=Ag+HSOJTMoTH(@*%Qy2D#RHT(~_glR<-E(xZ(V}@?Q-6(7O+ZbBa0GVjyxM*deMcwB;qC73S3EeK%fvKaxPYHBeXwBHF`QEBhJXoAL$%Nz|S1848R zt5}2*%Tbl#KhHw|3yy6qWzxZ`G9Gop(bN&D%S5J`d4MPR{Re517t16cyC`as*Fv{I zZ0&BAFF-dZ2Wfg~|1bDO!;kyQI=HV~MFW8=%gbY`T~|U_OIy?e%nX);x6CmoJ4vIp zjmw;ogie*97%TR}f3JG!HCW7QL9tP|gStVoo20lfzNT1mfB{7LeQtdj7{DZeJs zFDKjC8%}--#c(cL!daF%C`-!HGX52$9UA4RZ`td~R0i)sVF4EXTcp=@(cmcd?uPIl z5~(J`B^nqvcnruwIb3*J8f-?vEZ|2gK{qd8!llWJR=D%Cbpk3}M*RE>Hy zPOG)ehFaTQO`+OGcdIllA-Scy)l~kB17)1kS12Q_Kn#Bes?hXPL$Ey%1+BI{WWKNl z7ow9#+fz~BiMGN%114fFrRH9cI$lyIQEImfQeT(UA(UF@g4B9YgazbeN)3;ys+X^6 ztA^O{w}J*-s0*v?C-m-MZDI!=;q4~I$(vYfJ3j7Fjt?0eA8W_IzJTL*N&J!a7M#%n zXD#AY^H+FV`@&9qSqi-%g;v?|K8Y`scz;(5*kh=iry@4W+mIM7k1jYd8e$-{ z|KR^~_`eXV_a9WeIQKhLKqPY(e%=|wJ8?6RpX!7VPSJbV6yj+VsG2@ZAqbXG2L0S~DwQX4TAU&;WDw&X-W#-{|M|%M0wp^Lnnp=i#3cs zu7Bj^mD{3zwe@73_hx}Vz)e53N*d`16GwmCaWL^oP?Vp9{Kro+) zlejvHG7W)ekFLo=LQ&uBOa23I;T8d?tiTeyX zTax*pJI8X6>l*}ZG#ncbcPKcM;7fbM0f4?*?%)GpE8TdZo%gpz)KqO!`x}@5e-U5y zl7TDP77l?4sJPqpT>)Jm8(I$=+DwKvQ=sJvH0q0bm7#f)@LXdIH0FbB$)g@y7Uv)z z3a~%f^g|?Li?0#TK!^htaCD=;EGwa|bgb$MG&01|Z-TELsS_NZj2Ru+LQNb{)x^|n ztqPsM4xtFFDkAGRa>FzhWNGD+Oe`N#P&tzhb%|7NTQ6$OgGE1(EY~F-#A4gn}acYm;E%m&>T&A$84q=*i%Y z#%yqPFPb)T&W6v9tu&|fIa`%3V27J)5nyTe;GE>yu+#_XcX+ot@_d}wTiEC6f)oA3 zj6tgrWQ(4`cPBue4`3g}XrU>&+i~H)WCGcNK&7o%t@@ahw(=a| zTG{JqAY5j45^|Nmk0D?9o7dsUmM|(wFO+8E`m?m@mm_M5b|MB8YU$U^jz9rH z8)X^=1pq4wT`fqz5B|)mj515qk>^lAbQgv>^8!$xzy-ZK0PP(3opPHK9NuKQ`tN4* zZ*lvCe>=CgihmP-X-{LGfo7<~oC4G7n(KXZ3v0c9GMCqTx5R4e9s5(T-3`2*L%TfT zjaHN${ZDT+ANuJ1KZQPeAYm+}(|x{zNW{#{p`TEz`kFZ7X65KB>AxO9Rx`7^qGhfm?l6FecKIb&jvcKnkuIoyiX<^JKTXx>hJ1@L% z;PW%|$M{llMn9aAS3{Bv;%gL+$K>*ulOWZ|?1GarpIp^~8^s<8I~*O%|Dzh-dT?$Supd46a8&3x( z1Dp-EvA?oLX!>>0**@cJzarZx&X#2q?viX-(b-<*Y#WiSJ7>!`3O|r+oujioglzMF zoClr`IVw%;j5>jKcdR=fUWlUAXo`$o3zBNt3m3 ztmNDjo%39GYCr@j$UH|f(`+v6Ety}6&itih#z7I8M@wd!?uCsc^Fz^@UzW`18!~rB zW;)*cPhhWO(@Rk5d5wrt_rnZWIhzUl$XG4lv(NwfKI=dqP^F|+OqIM1NnZxiw!{gc zIoE(?2qs)^1G-HBB><3pe@Od7`tt_XsOmpUjFh)qK&u=Goun(2 zBTlPvO$6q9F??>^tmEN%24G*5w53S1>qB%es%@IC&7k(0)l`)HHt^N|;GSR20OWp# z+Z*l;2$yOIY0~3s!3=y4!irV;Q*%ukG+|F}5s7l9!PmhZ?K-ZKI?5bc|Ap{j68tY) z2tF+MNjCh#8t}K`x8|ql>_-UNWLO9~^&t0QNi_VP1pi(QA09Wd63cOI1;thKTKM$Q zy=Y&fmWdbEa)VvVBB`YZYN?VB(fnY1eVm5+DoKot;k4>=)~N5DX4SFw3x3z=Rk)$m ztF}_#y2$Pt_3?gb`2+UAM1VNa8B4V#<6vwSV1`O~|0F|vJd07)-Uw_uun>xTkltr* zY>v8u%^YYt)Uly~H*!BQNx9qM>4B8!Hyw+26?~Pb9&N|IG>Sp4arJR+JZx6H1L5?k zptRB*9GOH-KzW{j(EiT}+>Ar^m@<#qKO0Zm#{|Yycmf$P*^h+}>?FK=>x1Uzuta(! z1+F7ac+NQD+H@p7CxCaV0v=}~bmzgz!B{4{xE7iZa{H_5avci@`9klg8h+~zm}19x zbKQ|IAdAD!kN4WTWTa*}mY`RmX6RJ_{zZ?dxnTOTBej4Z+P$49hP+Oc^6d>Ls;ui7 z=tYe#SKbcRZ4?ZKFCy>9cu%hF+Ef}(#to>!54jm0s(mK$2!j(j+OhFgj_&UM@9Sl77`mG^*+qNjfr? zxz*P|^KF2SN>a*NxDyCAbA!u368P2oBz_MhMu@*(;^hc)wIsdYoT1giF<6QWlz7M0 z96wUxrAS9fdRCHNwTsk|_`A<=PtV!$zkSPn87BGrfO(NB_Dg(*#G7{fCW&t-@ju$} zZ%BM|=|#`_7My=dd_9SuVaGox@h>r=+I=kXPyz%(CQ8x*B%v)5ccsKB!E1e}`XWgN z>M~u!7)C}TNdlM_5?^!`$Gh$L$T!^M>naEn?e3R&spTh08p27`0PI(j;{jdN0V5=++W_mmsBnBdhLMiJu_x$*>TWHXYx?NEs#Zi|qK_692|1M&gsu z2$lTnB>q2=|2#Az5ifmsNs|1Mlm>lfJE>5TMoZE*ST72+yCwcXspa0*QUvT1mJF+#AE#P*NlWQ+`M+j zlDL!%!e^3{i6m4aajPZnddXf9o&9-9`uxwRaeP$be%s39Sf^tY^t&bLD3K6^S_ zpuR&qcApOtvmtkYw{uvnew^u0O+H5U0Qi*jCk20vld&)3N_U4^A&~qMe?7+^Li`em ze|G|mDKT)nn4AlqO&C0lonqlg``9mBr*ODs@5B@ zbx6Zs#ED&9zs_oSyDf}`{oU}|72X2pfj_Z}u@Lfb8zQ;RbD)WX};FRmvi0mbT? zEfgjkdUOb1CGj~gTA#1kxb9i(@oqwi?8w#lecEry-v^%8I~_QuuKR*qYxvr$Y4{-Y zR^m8}ou4**@vlGpt^?E>_3oXt<7Pfbq!*hpi}alRAf($`P5-wB{8rV#s7;%gO58x;0xauAe~f1(M}*Hh3ZEqjt+e6Zfh- zNUmv?qJNie>`vSA^K{38m|_P+FLDWjlfxQ(lN17lh9o{fWtIpGTy>EZ%8W=RVrI8(dETj9{>tIh5;O^f+Um_kQAFFnSfuFh7Fn z?{%d%7OOYv2~$0Z?sS9c&vEo2^|+31K_WhLcyiDc35-g{<^Q|{)qE=n`DVkBX;CC{ zKH};OU7R?$_9Q)OFl2RLlUgr3GCa9D;=opY5pQwdJzN7w=Y8NG;J%~yXNw=B`LP%1 z1iJ?`4nvE{kbAJ(yd1J}?-X0GeuFKH9z$GuJL%fDU8HMY)|IY}VBRha2d41m*pz$! zfzI-#&eEM`9?-m*oaR3T>Jx^vDWYDW!#MeSv?e2+jB4AxxOF)9;(_1M3wu1&(^AD~ zU4=_mk$|HCpR9`GEG#5T`OB-7*Y-YiuMvPFM7KbT)zHq?kv>hvETTox1IhW5li(~3 zZ(g^>h&g!(n-mJ^=owtJF&(LPi@qY<%+481q;sj z!LCTrge?<7huxoJ8YZlZwUE(5DoCLUYTj?*Ob~#h?g+^g8-OILCtf2%O?hb-R`F0AvWCURdYi$BF{wN|Db`z$9H0cYsZT%Lg=qsJ80@A{*|#xPANxpU zxv0#ZFVwel>K3W4jjpbVuFjc1Ire;wGwh=_xSw*k?d4_B^H1P47I>d`5^QX#E!b#Y zo|P2i?GC7wHK3;1P!|i-<$#LDx3c431AjsCO~gl!kJR@{BSzN^y1ubd^~G|1f7PgO zlfyzvd#Nu~>U+bEpDy*ayl8#BrM_@S>EDmFq<>w?hsMTvo4CxON$6>uw+=tCL?R8= z=H`XWV=~09=B1(Bt@nQ2E%qDIpWROGkE!7oM8S_CXUz;BdRNh4?Ye-rBM~%=gT1Y&b&7G`|N^0&Gs+)i+?I2y<7cX6{y@n_o!x?A8 zd0*gcJxOy|_+8DH zTKel+dh1$JK*flvq2q_thL>=o4inFPu3Z(NU9*zmMimr!pG8Q5c4f!27$4_P?2c@N z*B7$yEE+8GKh;8NDrqnH*d8bNXvh>k%UOk%K{mMO1>D;J_jmjav|pXPDgPmx@_P*! zYj^5eZjoAyLehMNBzW;IvYVkwzci#`ebx%LZ{Xv#BW9t-9fEf#W`yRoS4Fb(%ZsSgVGag0IOw>ohNND58P1X0k^dsC3yT)EG-t^f7JN; zj9F(p8NWmbyJ;h<&8w5=v)=}HWDtY<<9OA4Ci?ZeYAirLZ!18ykaQbBs;{q18_shA z=PkggxxSdcq_@%VMxW+zvBKZ4$Bn#8!=Ehhjlx$6GyYA)TpNY!X`CRw%weWpz1R*v z3+C*@jl$2Af*F68fJxS1+UjOb!n=lWCYMSYuzp~9Mi8HEqy7avx(DLP-X zmS;bj3#0mguSXrVsSdJLs8s7AU8d>r5ym9zY?h|b%Q6{>?}jiY%qX<9bO6q8M}C01 zbv2!M4q)45uqyd8J%h-qq`~R%$v4eu ztd57GB;UF4zxTI%d=yW zywB-p7JW$S>4TiR}ZcCac_=@8mkea&q$rMm z#g31_`zhFtMu_M2A^UTujeLF^NaQN2|G*kKr{GD@oRD^9n)Lb>9qT)8wH0qNw$ttO ze|WKWP6%b9jn&{==M(ma!F=0upU9X!3$jO(?YTrAv$3sY%tln|F(c($nY}MiPJ8w) z#xIXK4gSN+ePAE^sr?V{Vp%hdzrd=kVMYGZu%@F76iUM5m*DcA-zIa%z%T+V=TRtG z?cw(qR)RyFoVUjvljp?cm!1Ndse+6@Yx5KU0eZ7#mP7p;fJs4x=2mmNoqzBu6F$c% zJc?g#GZ+8!FeO}0=IcH13~U4!=_JgL)0-Sg&~3tf!K{{fadVvV+bFym^flaOD%y*9 zs0#IsPP_t%+!67NY52*{1kUAyabc`J>q6c!Lv19g3>{G)A&Q!U`sl^2sA^8)xEB7< z8sI8l5~}Z~G9h1h|6&7eXAF79^5pAMj?rW0?dc4jd{6$&@eS84sNqhr46G#I+F)%q&vatj4`fv#rD(b9J&4 z^N`-(?DQ~!+QM|VTz&XD9hfwYhdS`7*L9hhJ>NVvC|)HVDC_(@0n;m?9AWaXC$_yWpdoTlENOBf|< zFgkEPi2=wCZ1oq-tH&`1)sUBezy@(o5q^5$TRQMvWNfN?GH3&+#4oBZ1V}*2xLSe~ z))QZj>Z~(b_b3%{Y{hG+8AW%{vKy@WNzE=3&aEz??~E7>1z&397UyS z_7Iu|@JDCrch6u=1BZ2Z-<#F?p{yb*{d9nTsWbH#O3(B_G8i*6VHF+{qc3V-;Utg% zb&nSUreLNDfDXLdk*CZW(WDKp!nC>jlr?P*rt|dp{xDCQtL^wHH!_d5MdAnA@y|;B zHxVDTpIGae?MWf8q`8DgJ=KS?JbUhGBC}^og`PdvVWfr1cc3wcz)c?%g)b(qlZb3< zBv#Fy`uJ6C_MF2=RL!1~_=We^Fniv_7b!~m+7J!RtWvk^ZK+$<^>zECD{`%k048wC z!X0d$-cCgLi@_zQs*0yDoi4?#@;*ZP@!JTAc&8K(uH)itQ7Ju zfPy;S&tY&h7yjr730Vi1=&pLZGW+$NI*3^KJu1Zj;=etaEN%+pmbw7rcDe&ddU^OW zjMw@yYrHP)%j4Cvl*j8eJAT#mJYG#Cevus?>cjcZ9lBt=gg( zdCcY9Z0*0^@uW&Qx|nyUD%9NN`my;;MRAd9`7l z2Fyg+MB;_?FZ8YSSF3MVNn1yut%%=l$9IwVD-dsV$j7kR{=4~!l&@V7gjcc~uv;4g zvnC!e0$0$_!9DxUDLo7Qxf^cf%e}pMW)U;YUA)!q;`Ic9h{R1z9Yp1cD=M7(YXmxb zI1pUTxi7bKUjp_K8_#ZGMm+x@DzllT(Ix4$lu?|>c#?G_J^PE*%e#B?h}?0IdwIl; zA1v`>5HIpI(wBukqV$n1cF&W{U{VB*!-DCpbiW#*U)-e^&?WVI1}PKZ27b==9C~5u ztQv!>L>wkc97f?fENJ`)`TflQm z64AqL&g>6kLLXBk9^wUz1rD^{+c=s>HG+vCgLb|86+10P{P~=}!5|lX1>tc(B26m7CfTun8sQLt~QAOeo>F zO`oHD7!F{~!Z@7Wz}jL%tVrKzBGDYqNu-w9*5REp`kiPoLu1MIa zJPQajhiDCLS|$j<4(N2puuzLnh|%0%N2*t~qV0fM{(Sg#EQS@wvjCse23udsi>bwT zyhxVV@h5w6d}RM_T#p@tH9STh{yZA6I3^}!6~CrGT@=!Duiqf2EpO-bboE&HQ@fHc zAtBF-z`UK;o7?Q0Os}8N9yhHm1}>&J@;O9UGmpw09qP&Q#8f=k1cbuAjcbwiIlU1) zLhd%KXgsJT@K|u$+4iZ2R)R+LB%wF41U~^ZUnj_7u&xx0!sn4dJP>7~ zHBiMjJS!)>a3w zFvAI|9KnLzU$OXqWt&lz(1Yd?^psDl>)W6?yam{IM5mR7@!2svFjM#OfE}{q%dX;0 ze5Axf6rl$=`4Y~5IpVA2A!_^?Mv=2FvH?Yj5S$YkXP-lu9}Dc_KlkL~r}tLdKUE7U zUs6ZPZzq8@%GYM*mgQ%;Hi%aQ#D@$*%Y*k;aQ#bk`31Us7a9ekihWryOiumPAaY7- zUuoTYDT{=U9kcqEBhaq_bTs@cJHC7j<6{uwtM5lPzlr-#I=HA2(w2DLmh%uU^Gx^` zh8k2Jucgu{L2qEO-Us1zmd_UrXsqrH$R$}EZpi4ovEWhU#q;(MDPtvL{bS|jrBu%C z%ru5n{F&Pk%F^Bw15(8KR^J}yuwa$C=`(5d&cbdH@#1B@tM4P?(oem0 zKhc}w38A4B0sh~vYDWrJ_5C*&@P~RDRHp}8-_s=$?rgAK*kZpd=Y~95TN*MC(s4$9 zgiww>i9CobZUFk89h`{c`6WN7x87o@6v)G`DrwxeIFlWu?M;Ly&|V45fk)j+d5NoF zUnD1^%<%6dXxR6Bt<*A5QT93-7=pXS;jyv4_MvGC@3m2U0g$p*Tk_3Ysq8MLWa{4a73x-_Z zYoMD^=`s@rPZ`3xxzPD&cQd93{Gr$$4xV_H1VagJC5!i%@O>n;RL|_hzC!Chfq7o_ z%pc!kuPDT@*!;S{KXz*s{Bq26f?pe%u!>Y4fxlIC8{=R|og+g` ztZjRDR`31(Z4|#w>qF~gNd0xA>Yx8r|C;p=mHL00%qa2VZN)9>u{SQP|6HTLt3U0+ z`o;M$ZF{0UB>smlIjYhD8S@2K{lBU=#(ax6Pk-_?0Dl#p!HYdR@B=ZptoBp@{a!5H zoQ%W1YshY@A|7wwrF>3=juem7LVnH!D#qHCKeMFXOqZEncFPdQx@1(Yn%{)!3)x(^ z3q@L}3M@(V{7?8LqNbdpDU+k;i#?vypSd78qzRQ1ybHdRlYdcntl+*tj&@8P82v3c zoG=~?^LC(%w6<>Z3L@;|=x|$oywbk6?xsMG9O~8hUr?j?-!lhK2zCAzhJfCb`|q0W01##GE$8XYzwwft9V<(A#xYs4&9o*{{v@cNXaOH@u}4a+#W^^c z7w4D~eg0E31yrgA)m?*%<#PYA%hi^0txyh)i&}3M{&0c>^1iT1HjvrF6S$`+H+XMk zgxU6lYX3T;5}vxD&om0{4{Rn>X5z86a4%!QrN9*E6(9YD0D?y5VQQ33Pb0(oc;F%2 zhg0B_I+=ICa9yiJT9L=R$0{)6EB0Hx6Xmx@ikPgIptL)9Q<5gNOlH#{Fx{t~?!1>? z^Tq>Bbh^5OY+S&amk*Cg^g$dpXM4OE=SwZv9vg@Yr{MiM+SoEj%%r!%&;jM{N+g`m zL{!B4g&DUZ*5`eLq>bKspy3M|2|#yXF!{3rTldJF*c9SH*Pnp}Xd>`6(|BiXBLVYm+Fl}v#B%H%2(pa2?xP{KN@AEe|%0Ju4 zc(gHo8>_)yq_?Eplbb%}ia8ZI0vFP7m1jKsJ6e!GE9PUvAHo;M6&~Wa*o}t&YkXy| zkHcTp_*s&W7Slrwx5%-P%hOR4<#ARe-WrIm4U^GuF9H6fBvu;!g_KxuCVo2H_{G9@ zJAYQ3!#fe#5AVhu#nd|(cJ_MOZ&8DHBDD5Y+1(g9SVjk?I>FdOJLpQcIS4nQs`xPs zM<#e%=yVjjVX(FQ40$NYp5^?+LZ-RbE$EY^PO!53MWU^`y5S zNL9GCvEX|Q6dp#|K<#Ba@^DuUz#+*Z!Xn)+UVPxNy;HcQl^IJaI)z=i_uWZu-3|XE z0Ez?6IC4T@EY02PF5ZgvvYpEHwn0?T*O`tJ7)p?K}`5Y1~`_kPg=1-4hjE#4YP6igu~PaF*r`a z2RgxneKSc(Xggu?1)1L%{tr+orTsjIpVbIqxjBdz5B#xk!d|S$?QjL37q~4kJO4Ik zB_GSDx(YHE-#7$!XzghM1v8IgZx@4;vL(l{eM1DDa4#}oLEMHQ+Mm7g_RdJ*_aG}I zKQE|A#>VD)1D5v@V<{eW&0aXl3D=*Ao3a;-!sb$er47NXz2ECj10&%k?p=T71y0}- zcp37&jh7E%LM}j~gQM_vgDOw{&G|*<58l%SQR0K|U*NxvorG2@qqxLlc94hahw&vB zO#TMsL1=Pd3a+_eabymlQ;JLx&wzQj=$c=b0Ljzgfo0ptmyKDQ<<#)8vl2g{78tw< z1P1*oa)ukZO#C3$`+h1I9Pad(-Q6(fXAY_*MYWqQt)u@))^x`fn`MikQcKD zUUCF7><=-{;Nq9AK#CfMW_e8h##HwNzJ>9VClJaD>`^_t{Dc-C!R@KXWH4?Lj*WvH z*bGv$%Cnu2#QlJA&&&A6WB!Za8;|Uz$%uD)amn);O^IM`#FJ6-0G!YlVIfD5RN25N zB-(@+L_|V#-gBE!TYp*;hvW)c+Yc-!zweO-#*?sx+ZBEsNWrj$cHo3W zGcb5bV;9~f1~_-d7sewyFGEDFhw7KN!g%+ld#9Zu5WG#%#aaET6=>u{wGi*#6`!%`iV>CkaT z*RR7Q9j59qONXO%I7x@obeONhB|2QL!<9NL(qV}XOLbVLL&sTNzYddhn5x4p9gf!F zBppuEVZIKR=y16XSL(1xhb1~J)nS3oJ()+etzYddhn5x4p9gf!FBppuEVZIKR=y16XSL(1xhb1~J)nS2S0TC+TpS4)b-mM2E|DxKf8jIxNv)sSe9@=m06^`gNG3!&Dt+ z>2S0TC+TpS4)b-mM2E|DxKf8jIxNv)sSe9@2$#cBzYddhn5x4p9TM+G?VO~;X%gn< zBQkdh{aH?bR??p$cVL%0vco9M1gnaNNIbzIIQ4$z3GDEI+!P#(^LCbReIIG8?(K?f zb_EvwSpuryitKPjzVaQ13*flvZjx_Px=u7!L**>^An4Y5&Wzu&_zgjt{W}i7|FVAL zZWZRwo6h?_ribSqdyn>*z-A)S{2e+)8%%Hnw)7xv!q{x{@Z_qwihl4ObqBt8nRxB>Y|Rp#-6ovoLDQ-=IIGw07>L`jL(pneQ(}ly{4OtW zj_ysq$I%;yO11Pl_S*Y=wapy7{a0GU)&OIMmaSDoj z-(pYF9hloe&7N3uTdGq?cVq{6*QR?Um${U;t6eQPCnbG}trPsf-1^qGHJA3%7|f*d z5yAQmAv(3r>&EJs?EX0eh&$uC1M%&=aJU6tFpsb6iCgq3%_?`seh9lC+8ln*owCba zaK_pUAL^MGv#T2JaaXo^Wbl$ijC#1Cu3K+%*!Ap@YzIMA?EwB_If5Gyw)OB!L-7ltmPmD2k%u1~May1cFI`aTvvY z-#2hY5kwJ4*b-1NARq!lWIe;MMAQJXy}s}F{r~rOC3C8JsjjZ>uCA`G zc4Kh~Z`CQ7udytblfW$BhF@PWhrR{FBFsWb*M{t}P3W=y^H>;ZVZ z1q)4G)=JU~NsN#C@a!$-wcQ~qJh#F-ZZd{ED%&_3*dHbg!1^$HL?JkY84k(c zL2^^Y#Wv3viHuZiRng7tzCExByi;bq;ovmvhruFy{E0vzX@-%kUL)5-0q zZrW49cWT;C%=3tjA)ljCBW!z1nd$ms$GT}SuR5{ZiI-aGKS))oi_ln|K)RO*d%!x!Cqku9Kq=T-lcpYv&!ft zpKGvj!f|+!dxR@>hkKZ@dL|O3u5!Cjk8lk=wcD81nnkY8!sCH$vwC^(KAbCcryKLv z0pr=>q)E=XUDJ72>H$2qI-G%BJ#hirX|ug&OaRV9@eN*=@kK>$=~|*y*14vwumM*x zUsUxe=m{jZPC;#j2k}Lp06F&ZWtUYt64E@kz=Jt9EA=GYe-@)x_&<36mpW6+Y_kK* z;N9f(U)d}x^(^1)M4#K9n8`WM`<>B=!wY*S9Ggu6e>kj6+fjZ=eBdLQ5hlT!m0jdY z{odW$mAW25qA1~z(VvWuA2Kk#dCCIZhp1#Wbmgzc&dgI5Y=)QM=&H#NTfu6n(9DQA z-{^K9o-rgD#(tdJ;aNKwE!h-otOu^BTVZC(gm=JDvlve{Byss2ki;2(b7Yspr<1}z z4P3BvUG_aHL z3R9V=vj^9wy)kdTJR@lH<4@|L0WGR)kr1n^C!3GJng=G|Cz8 zRcCIfnbS4%>qugJRU`A)%W5ZRP?Eu4;;2nj%_L3}gxmm7u7AQ`j*6ON3PLCvQh)tRx^SQqk)aJpyPPOP&rd zd)HIa;JKP2?g}C9Wter4d!^!LD=rc^E%hUXyA}RB8)VTlM^QH_Y8`|f{Obi9jJ9N) zqI)X(dz%Cd=p8~2Rdg#wU$OXs|3U_NC#@zGSZ zt(4gep=XewkfiIZbg+#eKd+nsJlhu!O@IfPp;% zHzHL{{U7&P{c+#y?HjSo$;Bl82}YfTr~8NmXMP8qSv;CxH1D$)k&)BubG5!xLU599trIzzaJ=&Q-USnL*fYD8V#e{uYtzTo+OqqGEi zk*SyOH@@K)Zfso1x2l>&*<#aTCG11~O7vb)0@_M9qIWm%rV`Q)Iv&(tT(sq7TOYd+ z^uh7Zq|bQ%WStuKGf5Bjt@Iwq1JlL-K>P>LhqHF~jWBw#`uvIYqY*~7BrTq4@)AJt zR*^XI07zSIDP+exivrhjehvRVtGpDJ7hHq#d``ryKglAY*26(RzIKs^msv%=t3|H* zj76%ypIM&$V?}+v2qpTHxBW(mL%h`gQ3bO@6{Kq^qoe}$zd#IF6lSDJNjO@95W3ab zVR$H8W6gFMveh0Rq|Z|Uk_NDpzgL4iYMpqAwChzON)-%6fl;R1#0d1kXv6`Wvr^;( z<5li%Q!osaQ&o;~zF;}h5pe%xafY#r4*vAG!Xv=OML4erb+?AG_+Y8U#alZ`$4ve7 zT>e(5;WgGUI8;MpF{eZpN#qZx=(mOniqnFUQBd{%SMJNBlp9z|L#q^9K>>tCj!?u~ z^*rP9J8^csI93X$i$V7y@uhq&vzd^lc=!X^H~s)_Jd$49S;vD2`po*G~6&dazY zjZG&`nVhzs9`J>rZ}R7w8|j3K{6Q zC^vX`Ak1C1d3Nb(lI5QeFZ)3EdBGmApkV)3>29Js!wycIXa+BV+JEvoY%q!r@rC$l z=$?8o5^APj&2vt-%N2E7yz!codubdI%L@JwZ}WYP8u>rOUn!p0Odnnq;V{GVf|%;L zK0BJNwm;75hM3jCx$_;g_`@Yui*N5JoS6Qx>CYqX#Io2r#N3$^sEcK?+8;#kAg#5K z0j#|>))P9}S;+5+tTn%xbE}nPUhVw6i+y|r4lSx2IOyg_F+cD-!@I&;Y~>q=d~*M! znqK6@`c}I9KE#07gh%^RKY&{rV+ z2_K3Nc7qfY422X7I!Ghdqlg+h3O2cV-Pc+P-9KmP#Zp_r-w>~?sE1;Ww*4u7@STLM zV}+469yXpA;hGGI9fr)9nsFYST8bwJVK=}zcH{=9cTjv@qevHG&(pZH^NPJyd5@+= zxEuI@_6>>;BG3v>06Gssd=eyptI^HLP%M1u9kYB1k`kux^lsD>gvM#H*{KI|+XQdq zr2}N`hI`S@C>+|d0fL-@O|=acDO|KTQGLs+L`=S77;z8Eiad~=ghre-nx4Xlqh>Q6 z&Nd~+ayT37lo;+P2~OQK1e|IgP)@>qA@&aNVnd?_nI>vDg|%7hEjk zD0SYs{M(=p`IE2Tj?QjS#Lm_g&Q`!EVVtkoVlWlNPnnaPf~1Li4Y+p7%)v^yf z)XBxmODU!;Z=yF3l+UU4VJd}W-xiydv}YQ;-0bgyPF!ug%Ejy2A=K1;7&@-hT`pVJ zE}h!pYacFimw*?v^1OC}My{236GQ~=8alOyd3m9Nqt}2Di}nj6c!Bc#MHVC0T_nvt z_&&s`rhZ8OXI>^i_EE~M&0NK3l&qA+u2N1ME&o(YzuLMLtne*GN>LLK+PQvZaikl; zq!ARtI~a2H8zc{ehUsnv3oUYbDLFTT9N2;mT`k+87FvCO(pY1?_a~2GZEaXvNY?*U z#yfq@j<1MFfJ+pvqum$}8)3YDyITfvTlGd7g>eBn1oq%9f^qTAsBy94{Oe5pV?xj1 zNHl&yHh4FAA6L<9Fefz=d!tp>cTOKNVevgbJm(`YWQy`*e}tLsVVNt#(@nsg`TodW zMa%HHkYKGluKUKkDUnqT%~(sBD+FsCOXTfQv$mMtUs`GgMU{t?E`*#sAfiM--lm!i{d>CI6HD>=i=)6`?`{?S#GtwdqHB zU07cEHy~U@wXqNGd6CEQc13e3@vkD_p zr`JlnNbU|_ea`^Ri}a3Eyy^WCA@uxY4$ ztJ?~X_Prg}KJcdr8z%N{;ZLf#JhL^47;PQVsaQf&oSjqup%phqv_3?0EM>sHZhx<% z>igE`7Bfd^WfP?`D(AKQ+p+8D2-7|4_isY|X|%Vqep|sBQ)LlrH0ZDuh>IDejJMfUm_D-=apK(ig*$sYEyNvAXD z97I`|+F5q$N}K;Je4-stWD>XH@hu$4JPC*+ZyMB}u0WtiqA{sZ-N*8hx+ga|I1Y5% z3j0F0#j7f|f*@w?KzDp0HA8c#vJ?GFSSHbS;9dchYwNkSoy)QEVDaMOlWxjRFO!?sVXhCFqlH01Nw&HWrW|7#ft zpR>>$ukH&&^F<@)s5Hc2ZX97v3+(?;NdvT`yHQe@{U@}4!F&*p!t+>o536v?*K^ep z+6ZMXIEEkDquhy!G)g~yqEu8O+?un^-Ut1;$m1$SYTS_iL%x9|fG zE@h%a4((uv1Y87(9u@AA4c=b)vDHh#c0OVPfnY!UqvMIhq1f>#T+2*GgCF zuO9I`5^F)oZJho8kwxPGrSa}p|Iz<4o@cH{$M+;b=5TP|551Zpp;U!FH8nOQ=gmYx z#_Q7dAsM1l<1V1?&pP7Jnw>lDa1CAgqB})bt~q*()4}6e+ePSc-!W$2hZd=?wiI@L z`-*5NHTX&S|AF%V1t~R6iy#sE*UnA|FrLU2JBQPDZLz2qPlihEuceM=sUiK=(y!i9 z?%asw5>-q_6Vm=ZB9Rh&nUPm2vELP6Cw%J^wkZ9B^co|I2!XDIF#_=r-3HEA2B)&d6@N>ON5LUT6*XP8AqP&b-p{>=(X2kVS#SwC zZamMl;dTSReWm8ZW9VU7mm#afiP$Uyy+n-^CRv5|a!~Qv8?FCY^T<%m*Uen=J@t*YujBn0-=iriPXQY~&q1HcD@+A2x6Dq2 z86dQIZhMcJq2_o&Qe)IDd(ecUZrb7+_|W`>`9CES8)@$k3?zwiJ!NT?YwGcu3NBJV zTU5U^6T){v0it)BL9puLfgj$H%S6PWV2c8T(z*|doQ1R%=HLr%NMKIqbv*2-GPYy4 zF9$nnXUEhFS#{(kCc-N2j8)yi)hjD8-ZpzR795zm;TKrxp6LDE43_<%uc^G#S=V!C zhW7!ulDZR95K5gh;ghR&gMDx$K%NfO?WL{YdMLypq^)o)KM`^(z#mGD`)V~p zqzM&EEy_Ft`5hb*?mm>)2g7*4mIJugeK^=#v*k**>BwfK%*8BmJyW(ZQ{Hc4Yz3cS z;>eD=KM}!8&_JgzQp>=^j(vO7jj{6SZXfWFOx?@d3ex#uA#H_J@!8}6e}qcL4Lqyl z43=!g9*lGPVVj5=Y{njRUlf=uWdq0;VFyUr78WAJZ~q9G74RybDvP#)TLBErA_jNa z;nxyjMDD1AWcIOkwDRiBP%GpSKlYI?7T1Wa&OmHZn*Ge+X1L5%1Rbs$Mi8$SXLg}K zG2Z!w)Mk12z;P>q(~r?c##r}CxotiKVs{(XvWBXa&)hG{P`qtxnB)>0}^0gCSf(Wr5!C<8Veb?;#Fb;bz z&+@0m2k9l%7A4R#Zud`I&T*T@EC;?|p$>6x$bxkv8*C}Ki0vg;qu?U=n=8LK!F+4g zBKa31Wdr$%C5@fqOn~R%{0!d%t8l{|))#mm9yj)1zo#mAAw814&IH~Sn;2_s1dLe_ zEgq(uQ)f*n#9{L+4p>KC;AjUKdo|lCQ%(w<~(0cf1?f``{`L7R1H5J7*;9P8SCjuzURW zSD5S$B!h|iMST1CJrv*c)9Z`d7%IkQrpGkXXeR1nCUP^8KW4^TX&A&Qn2zmDWf97G znu>@0NC&b0J+D9~fR=xqb5w~F?x9iM6LM5(^bh>=JQ=$|9%?f#6`A21f$8zoRJ==p zGqqE7rzDs=yh}i3d@u?0w*zV2)w205OvWZYS@2j))wA2>j4aW6l^yqpA_=M|J&lJf zsp)W59s*@2h*~sxS0pF@Pr>R!;qvaHsV?xnA4hC{`;Dn!M#2U%dTKm;w{c)*&m^pI zHEh{G&vUZ9KjQwn1J0&NXN|W|GSp#&E|_|0rgyKUkN0(r%6JV!?@DaB))=oI0i&sm z@9^vm#)y5B+kI>SdEzql(k<{DR~0xU3;(dc$$CtCm;Ehth~XUyuM=;~O&3WYK#q-tfn~Bgj%NgFx4zYO;Xg)MET=} zLEFUKcE93s6t`=qcz4~PxWS5ZC~oqL;vRFK;;vNO#ftN3nbQ;(ueb(gnN7vT=NaJC z1L))f(w2h>!i2kKOH;2?ufAUuw_b5}Eq1QriWT>T;x19#x4_BKtMRs?pHcKRH%YN) zH0xE0o1nPg8w&^MKL-wsQQUos+X1WA;k^{ToN!bUVLYbr z4hsK*aQI+F7-JOPNa61h-k$KG3jd>>u;E3*9fbE(_#TD(Lhy?e{++_75dId^H&pln zg^wfrDZ-DvB=ozpd~= z3V)UGA%s7!@E!_(lJMIJe^}wI6#f|D;|RY=;f)mTAspZcqo2ZmY9oBO8*q%$rP%W5 zs98BiM$INgU&CyisEtON?Nx=RX|@)j!8Tj7y{70(nN6g4(+k3tyA&R;*&YgI8?M<# zEBb6hWCJA;#%r3btHPV9D{*NkTU*U`xuSn$HW?eEHQVvl(zYS*$k=Spp^GhQm2u!+ zY1;`!zsqcmSli{Atw`Z701lQ+4rQCK*@_iCjoIKr8iDw((l)Qc$7;5pLfIy1w#OBH zJ+r}aGr}m=Y(o|9xIw1E%P>hOk^MB=&5BOaQePuly06Dw(uUrOK3~zFhS1Fw-3Dkx z_0RlJe4&2?TBGi08Bg9LWo&H)Hu;i&!5?GCwE|kLp!Ec;RnQj-T1n6%0kwGpzv1_G z%LjbC?toEoEe;EOP3AEnwy@qc>ex|a-2I(+wvJ_T3Hqbe$4d2Wh6wn8@wsLnSUY>j z0FZ!UEdRSx0_KxMLC&%MWCa16Uma1ai zm8PD27&lTp*NKlJ_WSmAZ$W{$FB_eS^wA26CNYi=3lkUV1JqBG0}*9)-gG7!j#GXv?$=Of~E+ zNdJJOU-UmqZ|Z{x>y=*>IdvLO?0kLF5N6s|Fr7kx`)~Vt@2JYNk7jv#P6f-Eqw0I? zVCy5=74_mC_wTPd*9FQ1bljb}Jz=${$l$!^vG%-52Tx$rg%py|sw)J2_iF4vih_75 zWjKX%d+T}{vJA$k&(o)o3$m)h`z zTJ#(^KSa;!yZ4{f*zOD_As6|i7c_IG1H~K&G zXUhc8Lz|}3bBwEG*py=TcLY7xRnznNlNNv65yGEYdBUHh5IrV*Ea2h%xw@L3xc@>= zf6_zkTIso?Ha%x91wE^lhxpSzM9dyMdP80I#%vLM@>|FPDEMkLSHx-}d~u5u?^C>SyqDyfugI4aIl)A3 zQ{*d(oTA7(P2^HV&QRoSiX3Jl-&Eu{MfOuq7qnhJZy%eSC0xQ46n)(Y1x%rr$EKPy>&kCiNX%kNG_9a7XI%@idn zh)YpFD{9dBVY#|0YMr9W6a^Yu2;BZH;A&z_rg7V!e3LWOA;Y{>Z0sL1i5xJTr%9dw z!0fYbk|gHqP%qC=oH3v$g#s7wON?)Gs6;2bfdLmj6$%c3f_HBaE{s|83Xf{ecCx4&6`rE-&LOx%;hhvdECf$dcx#0}8iF@dcte4=c}L+e(xHmV z>xJ5rXV`YAlZ5S7*yWqV*7s$2@)AXD2~WO2VJ)y2!8G_@c=8t&)qjR;3$^qDg$+m) zzAXw7dB4KveIi@*K5-Tku2c9JR0%$>3Bh|Se5At9hTw?`pZpdK%G@7waE_eGE>E79 zVOQG)VOa{h9QkF3Mp%l%>h%YV>jq(o3TrG)#wKaE(JzIAb|r3kR-Fdh{9WEcsp;*mWd7V^sdW~>*@r7CybsS^6 zqB@|B$n}W?pEs!}QdCPeU(fctUTyN^;)cqTF0EMvgQvO*@kFBN)mcA{4fPFpIuJ`ND-#!Yul> zDr`An7JaJ(hCsnR5ii9qi|j8AxX9Yya|86Ag4Qdj+YbOet)P_(YDv&E1ua%kE;HV* zpicmTWojZov`k&E&^I*URZN(!pl21-3A7pA6yz09%onrL%*DPrkmPgPl_Kp}&-d3C zH3KqH%)m333L<8NWK2GC62j^&QR5fZN6t(>doM*^(oY2NF9;w+?7<<##kEu163MvB z*xG~j#55z+7gtA-ADGA`iabpUd~y5u$DjO+iF{p=2NdcBlp^NcW)uR!3m^XEY1P27 z0$dHnrfnhHiu3KG#&)ju{^U_C(I5ANIZ#AKM{*2d4qJS^%wYr31xRvXqBUUN94uM8 zXx4rq_$-CL{<5SW6M~Obc%-I(Is_k~@S`V$gl|IdG==X{`0fzAqrwwbN%{*z12|UU z4?ZdN4h0+y1lLc{dg)L8_IrU(R=5uAUllb&t5`0m@do3$&PiNJpCu-n{)ziiy;;%khP78>MJ%+x~0Fkv3`L1T|M{fRzcQeFqe3 z{Zn8(5!Xt-)Ev>sfraH-}Q`?o`y>sgf3`MI{z$rJ#~u1^^68?roL!k-{e^b8%Uc zjYI9vDEw}PC#PBPM-@Io;n^YhD21CmT^NE7QuzDI&<7k=IXx8KLCe{!aP7HxMV-|w z-(Zstk`#4jkTAQUw&J#QMak^8TTy?mkp{ZMQ6-9MVkfH2ONzp@s!W@w*b0;>{c3`r zR`4fU-rn%?CMe3LBjSP#t4+5l{PI7g#~cE$(n|KK3}2wAx&xS{O53znQ87S;mfX9h z$TEEL55TPDe~7}45Ef-F^>&5rAuPs(B`ItRVb&5Jr?7Q|@u-Z;VWh&A6V}9p9ez~m z{em#;1SQ=s3j2UCsLTRet+3Y!gAOdP&lUDGVGT^!YYLl5n5CY06*iSHOFi)@Y#d=w zbfvu86?PY4P-6v_t+1O3s{&)#j#Po!Cm(|f&?Q+^kxwJJtlIk`nQ@_l-cisT#1}E@ zDdYVN^$~SVWkvas5lWFS*>;XHLnXyVH&-&agaeUm=C^IBrTv z9xH#TDUX$B9RHBVexLjYd3@mfTJkveSeUr{yF7k!mdt^BV)C?eRQuh>)zw<^Sn^?5 z1^-3AN=XO%@BC$z35k5``gpUdNiMdy-7yjj%ti&QT78WzaY+q5CUHAIJ20X3dDnFtJ-s;5RS|wT#hPzC0wg+|OES z-A_XP%`YQ=T3CK(PT(!g-%0bkHUDMj&i@?qN0|8=;||(Hi%L*noRoH6p(Px=8x+)- z?@<46<}aG6oWr^M;ykQaIf1rH!UtNw?+99lr zv-m_`y(RbF(Z=BxC`2_l(_ym(aykAmc;QTUl z-0ZW*X!+M_`Sog+FL$fPvxJ?w+QM69e#x7IMnW#&QJhc}i)c=_*gD4e=1JHm#^eGv zq9h&la8bvbfOPh#=gfx}qq{lqvC%-NqXCtQoRzo^(q$feVuRqh`-Jd(*+F61BcsWg z@q*qi+)NRCILji65BQcRiAZxmIfUB(y;0!(`yK``k2{2}>~ldRGP!ejuh5uJ^z+!J1-M zVVWuFFMPt`jto1qKliwS;$wA|l8_1Tz5d`~}GDJKYQRzf!-pn`g^OXLa3zp9(f%r?Y!C#3d&z~iQ_aK`I zoM`?m$;=aoKjucX6@{T6<96<|M_?a078oP%L>*jq@Z6N=CrOA5FMrX?<<#Af0gs@CxF#|%StPH#SWm*pKl)|!Ud-=Xt8-hZWror%uWfC9FHMEuV3 z^^rL^^#pvva4-7G^;Jbn*n0ppB_I)i)DsUk4xXoXI5i=h#{lOI*whoY!U~e*PrmOt z(lNY@!Sa5bBxB976dh1SUoOv7$8v6iL~Aef;+JDtefd5e?QTTX_jJ50omu`-3Ap;f ztJ|i;?GXg8d!O7xGv0v=?-B74%kZAe^j3@+JJ^_oKA^&ZUVj)teW=*tGd}EE0=37N zrJ&VegcQ&PjZ4`yL6ua~WE05?JP3UEBGXImgzd4d(24`w@eg!d5%NXPVVkG(PcK*k zYL9O-z60N}Itvqy^I46HH-91rJG}a#w(d9H#uwMs+qkZ#o^TIx`KKi~{o@mi5C0NL zzL}Gx^52{lF<-_Q2fv}){s3s^e5w+l`o_-!TE&N*5SZHKtyja}$!EX%51EvvW3*ts zNxgkz6*P%TBd=Fj`~=?L#KXks(U+cKkN#{#ngrfZxP59r(4CE^io0(_|&l7aTuj|pMMULowwk$QeE z_b)VlOmbroV@#N!tct_zhVrrNTb;p?qf;Qtxn9e8Q_C5Fa>CbBjt5y25OGIZ_|?nn_IY+Tb~M-^@iUhDET#YVLVqdu`d zSCZkSn8wPGBZ3>slFS|a*?nVWF_)3RRaizgav53S9lnw8z%{fqj2+%%%<%qg z#Qsqy!qFM9{1c}H2#Lgk3;-k%$Fi74B3TSUWQR0mn#=x)Fyg&st`p@ zzV?a=Y*=Q_<(*CEg zV&H#WY~e5g8IKF3@edZ;@>E%DhvZp{?Frm0oxX}~r|u++>!GVq`pF|)T=M`A$v1V* zxT+_tB{nXFODrO3j7R`)4&a_+_!8Tap47U;Vh;}L(??<*nXW(o=S%EXR2N!eA030`d5=E6!-i(8D4eo^blcUX)_lKpVP=YJJ?7*?C^vYW*plz@i zs*GABVcn9sp)ojSTHX#=mbVeOR3;K7mbW!XnB{+< z3|k<~XRsg}rN7Bo(mnmZ+c%mhMX2lzkX*a6;49UY!M<@b=BL(mFktt*6jljs9G{wo ztPe5jN{tNAAhwB8nI0NgwzAL+(bJkCFk$)*2~Rk8_Wr`!isSIdxV3_!!r3BRD**{F zMS_HpN`lrv5JU(x(g9tz*p@{&Fl=nBlQf58= znA8#am6CQS=m3{7im~!QXh&?Kg;c@u!X{%LtM)iI z!4rci9?$>em+w*#K3(4EMBY)YkL#wkC!T>w;L%`AUuBN`GYB8_7yypS=)`DGIt8Q^ zMj`+9z@ZLiW5L)8%25^XjA9o=YwQMmlJB;{_wmc*ec&DbhE3ChRpfwitcMg3c#lvL z{uF}dusvb(IdR7LvaR3O*b06`ljcTy@Fpubx6?=$j@FBIKg{S*B2V`SG5xHe(@!)EY?X4$jeWmLQ_92o zDm1eCh8S37`~VFym|(FMPuPk@nv>%KU|b~wgtIj#JMg6ES@0zCd9A}-lIH<_5#fR7 z$g2UdQa6X)JmnLjW%}%m@hmagd;K5?^Y2$<}%s0gn&kque5HNVB zxL^zubH?`$N>D!Np`{t%)H|r7v4HasHVvGAUq|;i;Il{lypb4LYy~?hg{Gke?~|Xg z75)kc-szb-5_1>LHrPrgh??k1EkW?e5^s7(BL}7CpE%?0jbaNEKt+acd`HK(aA8B% zN;d+Efhg0S<9UR#-0}-F+KUEp<=~B$;I(-0h;N96A6GaLJB#tOlJI26F5?gMr&Vax zR6G)@1|rWucJ`Xj!wQ6N+22Ou0`m3ISY!JaaIt;Ytfm9T?%(KkXQU~vugT5)6SVYc z=Dj%L$9@>kSF0@y6^+x1mi#OgjYmb+`YpQ~Q{UZQhiHx_M@{fgYL7fV;pV_cn~{3V}{)=_qr zw8zxM)hJu+V&h|-RqH7q9WZJ!(w;==Vg?|r9mIlpE*)T?lwFu;j2+lTAlarXO+QE` zJ24+w!|Y``zlE-C-JA3io)}gM@)jEdOQ?0NG_C*`UDE+lGJ!gTKQ4`1G)B7qrCQqy zG`hUn)A~Q?f1qb+0eWRVY|Y&9W2Vcap-2pd9h7S&TclTC8*+~Q4D#nP|5!6W?a4*V zA6P$c9Yt{09^rhxmT@D?2;cuAzn%HJnfVdfYVlm;?_QY`Xx%2r5?<3199lw4ln|zW zBmbFvZl{67z_oqs9w&kxK0Zq58{G=K4C;ld05$e+vn zW6k^*g8uo;kGaiL&%7g*6W9P-F`BY*w=m-oEh-B|)z-(+o-QmeA*?*r4{DS*UCVn+ z%ezF&JALgr%lq{)lvf6;w8fwAYqrm>h5WWj+V>R-3F9yKtGI`S`0Xs^akG?5DF1rH zvYxRpMlKSp#~+7xh7?|H{V4xUT3n!o-$V*)?mw*aoU2)WC)&tUpj92chLfFrqyk$ia2tTN>gRgN_vN6! za!WpcI>>kj)&beUi88SgRS7A!!XNOHaF=i)m@%weI^+08>FFP` zg+qN5_?H3~0~kI&L;Ek2KXdZHpZq)jg+C83RsL*y|NoLd?f3m}`SZq;!XJ*6bMj~9 zpWwygvup6@Gr}GL%;ZmxUBaKAHwb?|$rApwRp4d?z6f9q{$P9{e%&;1<$+Nft90YR zfi@I9o8_C&xfGI8HD@b-l;rc93O6hRO{7j2b%~qL^j$~Aaw)|2it^aJ0OeW`;pZu&W z50ya&$X_fC3OmHBWnVynIZQto>D8R+?o?SE?TN;fNsM!6ea*@PSA?~9=1+>XZVG2I z9uksS0mD%0H8f@+)9Cw$3AM%Zi-EMm_61GDk~@)DnIkSYv*J{v*@d zVixj|6e5AWF9k8jSL)LVE1c7Rn?`-Dcy~Q#gLO_Xlt=6O5-2>gLnwUfN8#Iqn&q?o zEP61CrdV`in{j6Bf=g|HsY(MPEEZ;nj9-=w#(42KO=MI;2X^r_82ae|Atz9gSZ6#s`zW%>(p zAG1^T?D-t0#zid{KQq4^zf1B<%`~V1Jwk*b4pVB&(Pu_#Gk9Y8~cFP}LCibMUf^@!xujUB1TO<2bSi zM{9T@icuRNxbIF@3*fUbWXr0YyV&t9#sPF-IojEAW;<8E4DUN{qM|JSeb{Q{7V)S| z@!txb$7CBzc}#XR!@FPf zPU4|Z8}_)jL=T19i4f5A$p@gN9~v81p5AVr4B>Ix+{F;UhDQ*G$veCV!cz*ma57Ye zpPTs8IvM)0b=b+!4#d^s$?D z1u*dKpB?Js3X=gibZW*CIMUV2b0em=mE;8^G5TFAJZ@PH&I4E$z7piA2H(rn&Hs^l zsFnI9q{euJG<6F*+_Ox~uS^uvQWjF9F%@fN!d{aRKA(p49iC4^C6qI{S0*U?eK&I; zWR_y0wH2f&|DR}rzf~)7NHr(h*A;K~@}*{X%M7oPUtSM7oTsq^VKDQ{+vT5-$Aym? ze=Vj`v|6mpc={~M_a@~MZw$M87#AEX!<&Q;l=1ywgylYJY~59c9?vdy`krDcabjL$ zT=8zG2zln#)7<6v#3L?qjrrT<^N6!#Dq>W|; zjsGI5zM}}u?1m8<cADdZ_rIm>}m}SB~HJ9fL#YP`b+#r86;^P+un}ZeB zZ^UA&G8P`eDpt$N?6a4^EgYS2A7%zfh9ljw?_s?W+ZFd59Uj5T*5W2z*>bt(Kv4Y7 zp`iG9gu{C2IEHaRAB7N_uSKp4P$?a9a^NddX(+Kt~(XKCgJYrVnQA`*| z#rjXh{@(6jj4bZ4qG}nlR@4D~!6R7b@gU2S|HFII+*TtoTTc<<(%M_a|YLCoxQ)scwH=X@7yHaUYN^)*6{^ zM!@I;O2mH>v*mH)>OZ*1tqI1Ao&)b+sr3}wFbx&!9?@HTe1jQIyg0_w6ORvIT7*6e z_c3U*o}_sZAkEW6o_FAQ$b_PS`4lEqnm>&h3uTW4dzlRGoyNshlYYj`!gcrD+lTdV zWH+}DJn+J$*Dj60@C&mr!0{#nrDe%RM?~O4l%o0~ATI#|`9b%cY=p#@p!=%#!*chU z^6^ZJ@aKL_T!TL;(~nfmjl^g}ueCmg(bS|mzjMP0t8!Noq^V60DPX(16}$9nOkeyT z-d-!6*ng0}@l^<$A9O-q?(Gf9ZI`CcF_S~*YyE$2P+`aZ7aJP1s#YnJzF`Nw|2(D_ zI0nf!**eC1Di2mMyqk#PQ!Yb(FJ_~b@gIb{Is<2%;rPdx6UVWmJ_EK4EU&em0r%P0l%aKa z>Sv`)Cux1Svga<=gAfP|_H*Ol930+1rhSs@_c%)*pL;>LK0eu2Qy>4Z8yhPAT(*lS zOz9(`#x&QT|9gFW)Y$(!eY`{ckf@sa_`JIHPQR+Bkf^On)snB5wb7 zGZNulk}gP;={*|?H`*9au3~k@dn=Cov(Ud|S%^P30iE>gQiL<0rmF|wZ~jD!wXLum zBx0?_lc$B$k{o&25jYV)YP`<S1^*~X2VQB8YQI+0!Fi988aHSWThxotZN)Zk&G7uFBY*9_n zXz>ulx`uy{oIzauAlCX$FwDzrehJdcmLrY6WZgu~#G@v7OUAc=T*JG~qkq8oIljxN zd}bZ?5>&4-8(?PshJ#1-P2UvG0^)}V7Fn*pda{H)-0a-{>i%n;OwD9@mJ4t*DLl#) z<0C)(ix~Ts2%}*KywW&a4_ghNY#?C(zy?J2mpDJH?|X*bhJ6aV!brX>v?bA9TDAKI zEQeoBp(QyA2e7e$@!X5~>{Gs%nIvJk%p{emoJr)ArxzCNu=$>T@#rvj z$(#tt)*OC0Qh#mtw2$r=egBs4gg+6>gg;wS&~AUsfdOe~N(v@}-Y-$nGL`|(>9%@3 zlleBxK73p!5C47Ih+G)6MObG-;$#N70zbe~&IF#u(swdkf(@t>=*HdG7xP6~Mrwtv zFdC`N<~@8wn&-oxtWhT%`iQHoFrDQUmnR@bHT>e>T+o6Wicz9c9fesJoC`dIks=4S zoS8DL$o;m$w)k|I;rnB3g*FZ-WWEGEgA|RMjB~~jfQ7dgJxmYDI1F=07|zdOgv49A z+~Vz(EuQ<=;02b9n6dS#;@AoXv2;17G6tYC=#}HY2P0SPD;SHe&ez7~I$S_F4P1Ee70*Hi8{?fN{^08a9%m$Uhi1+scx)apX0Hp4FdjMj%8*-FQ9s*z zHt;;Za8yfqd3}<(AbXm){I|wC`0ga$k-gpJyA>+rc6Yi!JVWsABdR(Z9D+<5kmib9 z)PVrdJF%?a^9V~pR+D%T1+)DRa9WUOYy9>{nW`UBb>FU4d`8+ycw5-u38!yu;61T zprHD)gLuG+Ck*HcE}}a*um;kphIwHu+e<@DQ$8fy)qV!b;yhc1e^cwNB zEZ=x}jW|b<55chj3jE6W;3M$!qkP#4`pO{CT5W|x@P(bQD{_};iME2F0GRJ0;?)DD z_1nAdfI$2;o(B+tR0XvnXg5G0B=oZJQ&OGpX02!?nvHTzE*X<;fn}Kjv!O*!}Ba z4yHgSE@p^-xt;9?h~0??8q99A6?_Jl20V|1$9YYT7Jf2>REJj(IQr9N+B#pRttw;lYTl14WEQ*{G_?^{CrxOjnTf z%_uJEyNnM9m`nO>uoKan-Ud9_+1fvnS;8T>)mN1mXC^_r)G7L5&F3BwYE2%`Jjm#H zw#JQfUtzIlx$*pbu_)<#1!`n^$3`W(#AtLTz!G8k;Oi%NqJrqa>esOO@!6kWAua8> zP&yzMEi&~v?VA`b6Y6FD7m zY3^dQ{}r=W>PmM9?DLTX{>AIckmOlOf^WLd*m1&(F}@X>Cv{nC!l!(Kv4$JP1iM;} zcvqvFpn70w;oJ`EW!M-)jDPJbay*x1Dy54g+g;lP8LiPBo1 zGUNV%f^D5}R?Cyhn~`Y^)HvpXRAtmi4{al8PctWh-qU6L-4UwK+7E0IcVXk+XxU?T z6Ml*U$+v;_Sc9h_i+}EsBUQmYA%#l(*p0D`b;xWz8Nft}ZGbgoRO@1*!0eYPt~Kcw z`#$dzkpM(_Ha?hDipC<`B_jRG;zt7Run1_P!_ja&U0M~~1*U|=#q@83sOR2>ULOks zHg`1ie=0{$+<@G#QCp@U%yKEB;;aR?gi}A;medS?*(I=~qX7l@#*S z0c2sjT^L*avm6--Eh#k2U%;OT0VAxG{+Mk!oX6$DCz7zqv0B;)q>0v_*8R1js*lto4LD>MeJ=%IC&+RTn<2#c^eexnYf?;%!|g!#Uye> zoH>{6mjW{v%hgqIRIU^rHRhFL1M6MseT|n-v;6O|X`dT*)+nO*_p;NzZ z*RR3+Dv=AkWH)}M0Al`RM*gfJI}|eocC=FZV_vyg#AG5MD1t(zVv?CBGQ!mgp-fnR z<}9n%LGvxRPiAYD`JyQvzoV&0F}Ec1OJ+bq$%x*2N5!Ma*!Gu*M`?-PCsy$&Ls8AN zsB-kkqIrlY1SVHo3Lim4Yi!jWC^0XQCHpcfzzRxyo}bjBukF`rf1Y3$_yy|pt~V}- zL6=TnMUKmz?}g+K=FsjK?P3q5zYC@qzJJ(7-am{r;`B$nxyaYWXSID!(pT1tbT@UH zhBP=ER}JPmVWw|!{HL(=;t#~=!5QZI2>Xfp)@ijo^zh(3;JEQb0hjZ1-Lk_G-WZ^!gDiZTH{SmtIh%0w!gR@YQSxywQjua_7Y%4ov>3G1Q-qj zmxSrF;E%7K9EkYs8$RS5Z?a_?mOQX}ZXNe|oS8Jph zj9{Q;iL}gcR+NH{)d)3sYCl1aIyp-y%$zUG$OYr?!KIL&VM-W-A67x0uY%v2c0-vI z&HGn4kM&ld?+PnD^)Sfi6xWIH52~Agvc7GmkA?cGR zJ^p(D{}tfBSMc9E_^%BA9l(F050hV~D(f|O-wBgJeKA#O;DkOfxnVmUY*`tVfCtz8 zF~44whN0b!V`1ZCaBnS1uP@V2&Fl1)QL&zmhU3&mT0Yt_ap42-q7cJH&}MW5LO+1^ zLrIbyMfLcFbRtYr<%%@VrSvh&UxxvLBY%50?K>B`n)AkQ5kFavZlJ67EF>F~r_B|e z<-HE!`mSXURsV>yS-#7&aF*#C5bw?04zXk2`mPsLm&^pY!H;X} z-pr1U{M@t%Tj3fI5a5|0uXuEUkq)LKaMVbm#Rw*f;Cavo9r;sRN4N(# zO8U1(yC{f^R8MS-H=&)i>uizHe$*&j2fPlVVi&mWX7u~*WsI*0NER9?S#V3D`x&edgmiYWQ1P`yV{vc$*qaTP~wRFa~z@A{1D00{(H8bz?nUjRB~KqXWYm&ww-3-20#h z_ChhCaTGL^!3DK77%gT(bk2&gFfS#Y_&OpD9bm8O8xb*~w>s+d&5AsMb8V+RvObK2 z%lT|zmM!}P7)T@HKpfw=rdKhWkROEUK&4K6m;)!A=X_cUuzZp!7Do*Hj_)RJChkJLx6ym=4yp#I@|jhTP5 z{XiZ$?;v@S;Ax3CGcr>K+gq0u152f|rq(yM=2AGO)`vK>S$m*L5^&NSd%UX3m%Eoo zxHm)Kj5q(n?C!S*F2b_zzEup6y#Z&B{-eL-egNk?@Hl@OhWL3dywq9Kbm#J(&hR}H zpXIySqpb z-;6on5{_e$|47x~SO|W+zohAU3i+@ z&Y#M;mUb5W?8w)W{V}f%?i=Asm3nLiKL~0{Vj_~=!jb43jYaD;U6Z%--By@BISR+o zD3Y|*u{2Dgdb)7Gw)k*gSLCm*4QE`_&rqat>mm(>ihJoJ#>tN;P-mFyVPf!?HDr1p zOj84=$0l{Sz)ieMyD50Sd}jOZ#M`okdkJ#4&WhaQ^4<#l@2*nim93x*{T+A&|A40# zw?`k&zlATf?hXFr$ZJ|Ba0@V)!f+lxR0IQd&T=e%rO_^LUB`0pJR*?FB;Jffgm$S4 zT!s&|50(sQO?3797vhX|wj`76>(u#@pOn|0Bdqb%nYc$ z)VS>ejmt{rO_7g7$Q!ZX6+wrhS-LmrNZC(*6rmS*E9{aRrJ)4TVJx+jDEsSVV3S|J;UFi4G~T%D5N34fet}!+b){ zzN8p!f9ys}J_1*QC1LxSkbP_uEKU+^!CaLQ4QH1wZ-4Cmu#1w#I0ecVCnz47 zdU`nh1Ne|NR-m*ooyS=AQ-O<#~SD_{4$R=F2y9t zNyI9d`@H!@V8w(H+5oJmlT|u4x5j)j5@1ZXYiq9ul#LV}4HYsPZjciyf6P}XOhz>1 zfUSc(l-C&5IvOS(4HJYz=4cr9rwBr+@pzn!h7|7IX)L+v4Uy3b3(|ut zcwR;^I%Z^j215$YQ!x|ca5CF=EhOu#u^uvthl0svxch71X$7o#%MBc~cH@dH)A z^0mwIO{mX}iE-%>M3jPZ!|T^>)W9UT+Q_!qaS|mE|_#*!)Bc(-G9HymHrzI zL)J~M&2#l8*8>Tmn_MdtBp#-fHyqIkSa)h+>pACR(>^2K@y4UAXrfs%9}G7h(%&>O z8KdO)qxFrO^hc~QM1RB^PEB@#$$IN=RTR1R4|D>g=6dk&_MNNt)v)jI7Eo>b4(Chn zDeU7O!NnBbqeK81Y${)U7>;V*x~ArbT@uenI*d6eIYxnwzIIoh_U$hPPgTgFzbAc&p^l$_O2-eX?)+no3DNw$#a_W0$W@wWg&c0 ze>?hJ*rXPwPoU%+mOPjx`|_Bdvqv6sR>#lc{GlguPT0-{L`HfrGItpt!;u;*z_b_& z>?q%oBIFUZD?fdtS*Wyqa55H{p2MRe;S z8FEF2ttpn?a}B3Um?AWs%HFOqoRWtAV>qor3S-=bwTIJZ0PFle1e~l^$!g92rv3#! zaHfj(vDmSb8UHEUTi{_zVF)Un&00^2wz=j7vyIh`I;GfG_ztV*4UrHdCCiQcwl_WD&-S z`x+>vbmcc01joF+aQN$r;q+ha0V!PSyr*!3fevK|ripuu`18PAS_84(K=+J=YHNG4 zEBId-1=G#N(s6RL5xU}B=!o+pV=2_0#nAn~Y@4Q@)-hw+@K=3jNpvFG2Ryb1N1*D$ z8xbb$clU9WV)H1S`#loK>~DKwDu4Rwn>`8hsh+9Cn&Zt<5d zA~_n`ysh0EHfFvzm#KFH^t(D}>}ZG~Zw_<1*ef>DU#!KJ183=%f!7v2z?^gU0DO}beV>%N#} zkA{wV3^Q5YwUKr7PVG+c8nqX^hvr~+fSrKF7;GR1%LZ~Vb{-qulQMigLtD!l{!pWB zi=5G1%WaEB#AMhO-BTC;jI8I%@87MyR6@bp0_8nBby*Rr@eFkq@2T&M$|-Xd?~8Rc zfO%wZe0GCF*uglnQp-I~Gz&Ux=xEhA_$&Hid+#~-K4j1Ze)QGSe|sQqKX{%h znflBlbozVL_c?k5Rewuhvz`JLz27Z?Bx&vojC_NUdLViI?uPeK6)xF=hMr{1lOC%R z_V5`8k$O6Pf+6&^5fTVXu5K=`V>f&h*Vz)P;vBpCI+~+xWX0uL!*;Pfr?xv^faQG$ zprgUnt)^!l3Wytn*7)AJA1gJMP)K@$*$uf=HJXmY{*+{t9`kT9YEX>FpM!wBlFC4u zOD`%(-%v?XLnY}9iKU)rgo^aw6ckC_PZRT(+W)MlT@8k|!LIG#!mkHZjBz00JE420;MqW^8E6J5+pD=tyX#W?yS zI^QL?Zx8wtXbie@pMMtvbhag8fJW1%+6$Bc-I68pSp1@Y2dW@^$%U0rtC9Nivtp!P z@@K)Wx5aDh|JeQxyG&%bU)7)NiZL(oeOgvrp40nveC;d7rauON(D`e8dq4PzLcU(x z#Fo2ey>ehO5e#ALI2RD)6K<=3q5cuC z!PZM&Q=a}JxD$Pe!yPq*WOacAH589fl^Oe>52ce{Emh~m%dYZtQjA4qXqU%`We9RJ zT5o}s3EXy!_(S-Iu=Pn*ya(8D71@Rqn=MM!$Q4dn0c(O(=HxU>#zqmcrUvdsw?d?^ zvrbfzwjy}_qy=sTZ`b@2yzQDm+d9|A&tg9Eky214+(=C-wblzD}hIce=f>{ z&#LINsrXFI8uq+uj<3Lw0{P)gp#o*6O$$FZQ7mXr8q1a-#u`+a7TBtt@edYP%C<#C4-T+Y*EoXl=!>1QQ{Z#QPH6Pb{^Mt zgmMF=CQFr2QiF1(RH9r|;)pL@sl-ZA2?$|S;)w4T3@6d+LTpds1?NQgC9h<&77qj> zy!vPdbSwUfeQaYo?Esf=k5D3Tl>jbC!m{AT-6V2wm%!r&bqhFbiJ3|T-fj|gm`inl z{p*uLtlU;9#7a`Mm<7uid4!QCi~@NVBcrMWrJ3{Z_I~zM+?#{sx7WAjK}3dC!+pq?N+v94cxG9NDFwgq%+d*-I@l|v^?O0p?U+w~w%*F~$#AT_q=yHH z)@K1NRm3AiqIeU|OKH1L%qP%H5Be^;g<1iZ9`2io`Q#@WT)6-9ALz!^@e%EF9&}m% zA&wnRu}8;ItTN3d=V$&LC==O(j1GBt=J~mxN|ff$V%PG|0#BRTAx#SWG4FA~9}}IT z*P9H=eeI+lkiF+gA02g(vT>z2FO{4;W+92{e2-EekTzl!L$6#|3qyUj48c0-YOIss zQ3Mx&kJ3FzL(vs`stcu_nnlrcv7am!Mb;4-p8)UUw69Sv(jcdRhZLLSLy=~sXtW-G zN3%4@%9_MdrIdzU0N##R4~Ew7M_`>JIbTQFtn}A1^w9=g_c1u=_-&4nnL;<-fK_F0~3ydAoyq|c_h*38?C1aUNgUo`Bu4~ z4VOQobjo=|AFxVc#t)18f}yl(wcolOOj>nk5~3IFR*v8tFs;TMC5))0@<)gjXjgcj z@6xFxvFj}Q?TjD|@WZFjQ?QYv6U=Y%h?7M<%ER&ZEKE9NDIy@{NNkUO=L|(FkRknRPm)*LuVMqH(f1TWbnb(*S(?h<#eIZyPDA6X zE0#J1(zu2~{hU!aw-IMG+M2f7|54A^XQ=nB3>m>5mgja;OzERyX;Op(n!N!%XM!Oh zyaswn59(E+N|!sXPw^zMfA~XX2xZE+iqyfyW)48<8%ZhYs{dQ6%(Od}zgm=(wTc zr3#X2wq`F`PdEfc8e4_|Abc zB!m`C7!UVB4aq)d!4Qn9;`4DQi_U0Gwp11JMo=nm1a-l;B-&z8FYveMxg)+ekrKDU zR;Z6c*o8fwCM8MkzasIFy!+ULGO)OlDy~P2BJ%t<02b}4RC&*^ti0=7VJ4=sQIU%0`SjgE#Yfw5G<&UZbe<37P6Zv zdNBYy8)}$cbUBM9ScfevQN;5yJ-7yW@j$o+KZSc&mg;OJ{{1>s&PpmS_DT` zu!vMq4Mv0WU8vYYg+{lK&u+Vt(t^|jJwp1Aq8I`xl@A~$jaul08WYOWIu=G-^+LeH zt_0Q%qw_ts-hm9YJu!ozX3%YGsGAT;M#T9qnzP3zNfp-+|G~wNxDoYTX-kH1OK#QP zc}az?-;}unE8PNVQWH|}NUO17co2G&Iaoux5r-ZXx|DScWCZba#?C@L46Lqx5lw}= zJQfI!`xWESSNAG;fJ;u2xCSW9fD-D$8?J?Eodf?S`~hN1Xfg6TI~d6HOqZL=cgP0av67F-)5_ z7~558{v}M-m&o>A8q)k&Gz-Pg?*}76%UxP2wA_&kg_hgt*d`oq^MVq6s`ITHf*TLq z(a*%@L9UQ;HD;=Cz}kIu6Ymd3>QhIAJ~ff;CK70ei3X!JIWSb+S?WXxTW@TU^+r|g zFQ9l6Q9Qc&4ckG28rzmLVCAvr3U|s#b8tPbYHL72XkFs^&Ug9rJ!rqrpokS_A6}Si zsd|zkv1lN6xZ6`7bR270-1BICfgY+MO^CihFj%3PzQVJ(b0DF@vnbBxvFJZ5r0wt4 z3X^94?@FQgP7?y$n!x+-BzkQF#Ljyozz1T->$+Wib0z1uB23}`lXLy{@6UVXO zqCKw6b@ox6qzZD+UWFgIg_b^#BVHQ8g}5bj)&X<&!Nrq_^G3XYdxOZV>8kXwa0m|URTMuJ=Cpo+=1dr!^Zr*VtUU5NCLfLCW15&F3Y0r zlmN`GkNPeI%r<>W{R_qY2L9{lQ#2CVX9!jb;xs3G4uyLm#^YXyLicTGocBB^m9o5w zSMO=SY2XvHrihY>wflEujT&p7yJJ-zJ>jonQUMdqrAI( zw>FSnXK4~y)BMq*Zl1+Z0|ycdvHJr_FO@%vw%44oCSw;&J!6eHSXJwb>f(#gNzn`I zBPyz%uKsbOsHn&HZj&Fwdspx;)Kn1{xnj2?2Ahnk@eB&PVgo)2ACIE%;-5v|)sG|D$|3OiJ!*YU@aGOLw>248-6(;+{SNXHe$wKol@ zzKrU}sF(TxmB6TT8Px^X%=ntOh~&F5>K}uF+Q+D5M!hi&o5ZLS zj2bQjHJVY!8Fe?I1~ICcQGXl{R4Sv6F=_>&42(L;DC-2Ee*H$Ygo5&#f!eM?wGe8Z z26g=vKvio{=E*?4qCtH#1*oMORL#{uEo9U|F2p_80CfkWer8m!=|D|qRDe<0Hv(m1 zl#fyKZU!ooQ9m&1m0N)7!>C3^4Zjtr&Wzf{sE=m@b?j?VZ3XrHT|oW7s0OCG;2xkh zGio=Ze!CB-PZ*^nKg9~vTa4PnRL{=?>S;#pWmMJuKs^AIFB5A5a60ATo4r~TK`Hy| zFmLqTqWLTZj&8omj8dqQ9|9_eQTsXZF@(xsl+rX;5UQI7wUtm&j5^F8Ry+(;(^sMp zdS>273AKY!of-84q1H312czC1)CxxRWK{N_fqIouy%@Cxt6$$E8mc{nTBM=s_Y_cf zGO90sc#2Rn79SS>U~1>WmFcUyw3xbz^GA-y76W5l0UY2 zYjCOZPpi+tp5p769B7jJeP3Y#g5LTBLEjpNk6!`!LxwMgGVFT?Fz&z{3YeDUFLKl% zih7LUfdo4l?nm$fhIL+0lysq zzZ3yK9s#=|;Dr(JeGJkz|3{=^McWabbdn#|6QudGyInUosQ?CW0b`Pnf{35Hvj_vS+*?1Vfo%X_%lV6I3V!S8x^!!UWBa ziE7@b5DaF5+rtD~nV?7^h-ZSU!UQXrz@iZNo)+zp7bbXu39=M|HB2xxOkiVz{tCfs zOpq2PxQYo96@m&TFop>(W`brLch;>;&?JJQv$`_D4+_C}CfFV(IKboUTZLeNAjsW_ zAaRQ#Pu3{GPnq~rCAge}UM2V%2Ujb>CpoxM2`cjBeIcT&!Thfg8mm@;Zq`5rUYAfOpzi-#2W>1@41v3 zl-PRaoS7mB{>Qfvus4ZsVGo;?iqCu>auSR^;``}I(f8MI6130s3=A%bF9!oQs9FHq>8W%_}Xt2=9AG4;j~Uj<`RiO8Kb3Rqt;=Nu=#LysTv z_2ZOIS-Eyo_?yE@a2yAJQi6wAT>L;mch=$ikYYbjAkVSOSiXCif!2Y7Qa5mZpNa29 ze#PAA{$|#3G^}Yru>flMhV!|s0R^^YSf+30p<`>^E{_GA;X)vYKlTkA{r2$Gx zMo#JKa7zE;l&(}#+QZCa=9G@yi`*1C86xH0 z1L->w-M{!Ia9(`{W~Z-|>AO+To%J>)d@G~6FzPizO<`0Fqh27?7)G^}h!3A4)DT7; zVbmjpN)xEwenMeW-JO;FPxMv|kE~q+yVG}wxg!Bl7>R!#PyD>ow}Y{@3eg4*o{Qe5 z*iS^T_xqf%?`G!Le<;K+G4ZPiqHT_x8ZFwUiobb-^5MqF=7N+fpWVTqEmnfpbMSFL zX4)Y0+*5C(_zJ(@LS*i&sT4h&NvAVv3ZZ&4s(?`w3Dt>FGEiiva)JfYC?)t42cJdp zD0T-2Z+(Y@8#tK8$&I@QjjQNm35?1i)Ei8tW7H*tdYn#bK589AG2VtavmP&N*mF7sVPokw<^|Ul z)n=~CLCA}zgeZj1ze-Pn<>(OOBf=wHbG~kN)x&U>c2Qh-aHw*^o>u-r9Ir%=z8ulo z{S$fxl1|kQk~`oUi_25wKa4~|_rKtKiW8~7RY;#}zsGJBSy5-VNDsV*CX=OV?7?OY z7?Py3=L| z4#x{0H^;Hk(#~o;Hg~G-OB#J&iY)~vIN4uG)%0Y6%88w+yBRx9245&?_2$2ky^t7f^qecOpxQ z-`S@@k%j2fNPgq=8_)lb(|_T@5YI%e&%p0HFc#5Ab5e+(XDrt8JL+HHj=p6?l5U(- zouV(_EIHq!&T~)Hn{nxJ`TGb+)d+YSVLMO*nk1t62h$h?4V`0x#t@=ONGe|^Ise5p zQG%wLX`;;D-AKnPRVTy|4e=22G71_ta6~{$gJmst@7F|Q6iMaJiF9I##G+q2&Yq(S zuEL4AF0c^&cbo>5-ov9P)t${PQi&0!#3=&~9C|Mz#W~E7kxu(@<4PRp1f~2sLE6k? zvjQmim950t5B@_E3f@lXuf(w!u)wXt!M1KC(Ml#SB5>}52(r&YflDM3IxFcM!alZB zk=2mtsnzV~N!76h?%s{VMf)eDQJbs+aRJ)jLhVnT0VDRw=m2WC?=avJ;)zNOG52)z zz(J{e15;5Kgs4RO(y@WrJso`js`Us+)d(;VQtCu0aeq%oAAp8B1o>{O0iN>P;9KFydXuHQx9gYUE%_bq1+GP})f8CITCBbztR4=^}s5O*^dh<|zWn3Vd z$S-j;^z}Bx$oAc1QM+~VUKiTe4i_1mVWqCUG>MOK)P&}(5MNn)g0BMkP@!q!8w1~Mjafn>SBHtiP}M&J~qMboM5P%5cRV*rD*3QW1fBg*gX42 zd!BPtMpF>-(-90>yNS}HDpJMO$fqu*#cvk>2mN{YU-dtXn2*d=mr2!Q^U8zsyI~IO zt262<6SAFg=Ac2TtU6(RdSz34->cEzOs8lQ&*y7msOd336!{Y;HBtA3=OdvH;FL1E zWnOK3ExVPmzZcu&V>^d2M6KBH^&Bc9J6&7}qm&F2yOm6#8|zn$m9 zE<*pCukAm`KDZc1PeG+nzZ6~h=K0sdY8{i|0qe~yhZ~{8(L|VxxEl}$5q!XU3*y8C z7>=6>aS6eD)H;_6h56I0ug~0U&(ULgsc{=06{=sWNh@)yiAp|hh_S4lSu61a#EQYt znn0PWFm9eC5~wLUCTYz-iv9+T>hh$~m#5(AhU`PdU8U-%K!I4&9Pzz2Vo%WJ1qM#L z)=L*N?Fxks86BM#y4fJUxQFuc4_=k$>qG z!TAG(*rNv%>^j>y_#eY_)xD5&qRc#l8j%OdSo)sJi#N+$he$l?^u-C}J(>msU%l+? z@+MB(b=FRVN^(MBtbG$<+{ooT53n-|f7E)C?am=-qBlS{chUlIbtbV^LB=86W4w|| zAem~}#b2$Tl7B%}xBSXZ;D+zYx6Ox_dvy7UC|#v7%?Y31E)Wi)L;QZU3^b{<95IvU zM3EeuV{wlI=hRzE@HHUseoWzOr0See6nhI|!8`TVdngvnqluk~Sa46h^$(Cn6lc*N z6IuplTLZ2ODnWkYm^5&!Kj3%acbV&W{+Ft+)5C(!c@zGw39gf~*V%rOGmz!6*y3AdmnT1?DRW!I z{3cZw^wc{G`sxWV05A{`1t5w5BLE`-(Ey?ehyf5oKrDb*0^$I`M5i`R&faQ!2P45e zYi)rZ>&GtYZ5R>xk#5q91`UR*JMqTjQSd7=%F-)M(xaXtXkWF<^kU%Kt;p6>E3H`L z_2CM8Kz;3K5pkZ6%PVO#-A<0dLhd9;;aawoW{ zsIsHku<)Efsl19pP`0gi5o*C4WKcr$lVKIcHUzpIf06riAa;SZ;^)f!6cE zXrUsK78=x*Ug&Br+ikbogRB=f1Jqf2lRwn77=eI>N-SPUowe1F}kS70s` zHN)Z~Ff|kJykK&%y%~5rv=~g#1=j^&x0l+F=51Q-1O|sA^ALHiR6Ri~%R~p+bCRfk zl;SzqDr!4g5pf-skXf^{}ohSg0AnQOg^!P+nIdG>#oo}NskHW$viOu8KbaI zQE18DWStHUxdv5iz}$oTr>czx#LOskUjrW6Y`qP!U6n|PXfTi=C`*skPH?9@M;#+O zjvE%<tqX%JNnTDi11v>OqB{i~vR-`O zH!wvOFa63}EW=hrfqpkL!t!gn(_oaFIdSZt;P#kkmbcG$B4BQ7h z!xPk(`gQ2#St!GdV9-5nxZ_xVY5Z5Nuasg`&~{d4kTbVA0uLgc-@t>!D^CW7X08*n zGjW6k$@G${EkY5%WS_YiGd=5y2}16eXRX84TtZorOl!-Uh1Nv#tCa7BST;w&e}u(y zggmvlHd$~Va5DttLX6E%rh%S}uI{~X58r>Q`ePTk=jkyR`sBO5D{!Zh{yPy3a85oN zU_9E~Is<%+ckfPc<9r1^N+UipyKjWN{K|S0zCDlms9vy<5p7dza;FO}3f#yKQOg+2 zwyF8$+awotkAFA*kYTDjx&drEVMsdo=%n775x6jO8|{fw0@usIF9Ln!kEo^~ToFNN zi_I@zcYj`BD!wu-xCq588B7IYHd=}z-5Hc28}sA+rtF4=UGU^JI0(fpa0QBY%Vo`W zq*)?`?XLYjhV2Pbm9L;GL#Lmhw?OqO)PD;uF^)oo=i;snRCtT^k5Y9vs;@q{v6$(KOcueuuUK#AQzi(9s1(Px8oxU7=wm|+lmu+_1_WUM@qylJLh8&Rv3 z&#q=iOPA7Kj^@Rs+1OflC*F2|)Sd)6(<8ldfE1rvN8N#y#~}qAEzzapq29PtqxA5X zs>-RM%d5I?Y=lX!qa~sAf)8HA^#sx@2TOXFHG^JPn(A6#)+pvg>Z7vbG$+!H4>VEI zZ5?1>aImsvohS4svHj=>O2q?t=fkl^$vhZc+EwUf59la!Bla|~8A(%)X8p|im-N7L zWN3Dq^_Ddr6ovN(&>K^N=HNODjiKgwon&|MO?mc~8;kc9V7~@?7ULl?I+4hnVs_t$ zh0hjiiBt_htZX(SatuY@fk-ig79u@G+BIh$L4R}#(ghgql;xDAc^2lEk;&%lx_RdY z&dJUvYYBcz5lNWKd&SyoZ!!nh+E3hAycgR)aFQv^*hj}Yoya+A3yyUH@PdQBDGqb` z450P7#hnmakg>ZUyScPmfor!p!)tczZowg%MZd8yV?R0CL>S$+)t{h@jYS8FP9yyj zGU0(KqQ5R_q5d+@Y13a&q8>H#e!KzdAhvkKSqSL{bPf`6ej(z(%1ty?sGILzh%fBD z&%Xxhwb=f-k@S0fhVzQdb>MOx*cgX>E@l5moGPe?7Kv#E;9NfX3+a)3N~oMTgt6-R zgnHnhte+zH2k#hsMt=AQlz=wlzs>pJH%O#ie%Ov3ls5Y6{}?}X>Gwau523+~A+7Mo z-IIBL_ayPhpj%t>2hMAvizo5iL)(LxeBnPZlse6Rs zIJ3$mJp_|9f=S?%)RsvimYZMz5mL^w!fc^n6}C|APp(Wqni3 z7A4hwqTo+Ngj9Y$5aPG_|~(XmEOktm%12|Hm2vWPLvnqNaPHv3wA(rnZELah-xTwHQi`u62|g zGl{_3n&4MTq_ZH%BLZ^2)s)9d1POwmFA)rDO|XIp5(PmEPHg=NtqF37po<{bK?L+( zmL`kEL?8)*kBHz)4FRf5_XLS5p8(MZ(BQbW|4hVhXo%6dqbapyk=h@KfNqZoXNT0j z7T<$%1*JxQGJ;iPBBmR#!o;9CN;K!-kL2h_1esa_>s=qDh{!04?4^yA%4_NCR6)>) zGj2bXKO%YSs1Le{$j>Np3lS63`Ku8Wo#KCsAZlFy%LGwD{7(@?iTWQVhp$!N+E_}zq`9lw|GtHEy%enzn1K>X+q`x5+K#LtW0PWoe{e@?*aFA_&|4=X={Bg2vB6@31+`3lk^PILbCIBvIq@;l*( z(0__r&u?^o`6#rI|3F`zhUu|G_Dk#gL&CROe~|v77$E&=U`OVUEGUZY>L)*8VriqF zsP;>t^UK$!{12XAUfZ3N7PeJ7okfzS{@j0EQKr-O-|Pyp-`(Xf^`G;4ZU338Vk&jC zC92D_o|Ci7Ce2x+FDc?QmQ>zfY$7#O+nuB#%I+kp#>}Frz&wjkb_L*6fpOcnT*2ukfAs2xws&ySpZ^~(~_ROibUYz5x z-ks^eLb0j%5f~)I(UQ^n;2H8Oss+in)~oS%mu&=`8|UuA>OENx=pF&dDFCeu4gz>T zgE@+WV%wxcb*AInR{P&ru#3m-N_&P5NqV4-wYvqa^d+%>a@90bm4t0zS|m9xMmrQ_ zdolSF;7;8F%}4%Fk9)pxMnW1-h@a?;)a>em9p3XTWhbf4Y&o*xt~*P9e;2{9MPVZ& zxojP7ch=SEO5n;YzhB~q2N2y(5s}_RX~oD}W@1N+Wif&orKfO~rT`gjN+wWRd^pw06c5 zuEk7J#vsnT6Vf5557RgdedqG}(tARvh*wOs{nHMAH6zcn@>e8x(T%r)yGUICcdbMM zFi^V>Os23`xPQa^H3p9mwdSuCVg7mrl@2k2;I9=W;z&VTe&Vk`o`Jt;L%MI^+ED+4 zznVkIGJpLF{@M@z+Bhwcxl}OG;4l;QmEAW@Rz9$w=u!%kvo%eDc>HY;^M~N4QD^0+ zXiUG6{3NclryU_>{b-T}KP_q^e)3)Yd-!SGv<~o7@2kKU1H%0DT(^$#(+@~I{2ln| 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 z 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
mF89hrK2eCu=8*8vjAXphsWn=<+j>`#7zY?Oi7 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 z zldyMMa~YbU{}tDyg#_O#!Cy=8a_s-KugMP|>$0t3e^H=y>pFDAGfCLrb(N0T9ir2) z=v*CC`xbV-9FxzhPlo-Vm&y9AiLcA70qxIDM6RTP#(W8T*VM;7Z{s24?$@;W1GXsU zd7Qp}GVz(Go?}Z--T)>&=;R3P-jW-koW^r@2G(5H z{<1$htE8YQHzDcvLor-byjT8aO|8?vPS9;m(;V0wgMY(b@Bb5N?;Ve{y#r!#^aOnv z6g}@Cu71{%3uUw9aMW@#wKPl#mQ7Z3+wSE{^IOD7pG$>-P#dKW&WkDanUuO8EzcxB z&0b8T@Y^U{yA#9h&4|TiRQ`uk%vP&$ca?fytzkV%_4SlM z`k%)TzjmBfS{t3RqcX+ihljteU8O|^B8&Soq`#Wtmr(q(`Rn%A{LMUS@K;RqGtWn# z_1E-S|A)0Jfp4l>`YmmtY~HdIDvJ~WDSJ@^EwtD`0|_*MB8y59MG!<3N&;23Vp=7{ zATGEsh#T%apCYJ0%huvrRFp-a$l?uAsh}(c$@ia`dv9(^dFuO~zaRGIEOX|}IcLtC znK^T``sVYKr7uD11xQv_UGQk#Nmc<5PKB;p>Be0a=AQcKi*%yi3g7bi&YpW5>uA#B zzpP+~i21ATIS$58k;G1^OW%T8D749uzTee?R4R7Tp5vBRPPCf;y>?S8_#G)Ac*+{O zEc1HM_b&>;0KV+E_)Y-d`*Ul;ceokfgUkOOzForjR=gRBFI-*!|M>1X4t&2GTNA!x z%=ljQH}ReGn?c{yYWR-%|KbY?Ith=JusZIu$%Z-(R8K@N$duI(9lw!;{!mpjREC^VhjC6rU}}djRLFl>@*hU>DRfeItt06W}_U6 z6rqT5e$@9Hy5c^z64P(=jX&V2cjm+&(=fQ8TNx9dI+K-Lu{HN*Y z0z*LDoy%mCLVsHKM;rQi)6j39i0Az&Tgs9BQI`F2b?xsbp@XDTqrMOI{`Zkc{mwPH zfp&HyD=bBhoDv>qiz(qHS1nBXms~sEjCSg??)kb;RqXJDSN$0P=K?zVE z<=aaR#Mz_E>~RI?Gk7)qr|(a#4~`^K_XS-8OjnZ7CPH*l?+wva%(x)s`z>#wD$TL? zFJ}pDhonwy$g;!+WQqv3r4@@yt0nvTw>Y~3*$_ism%OJX@5CjXNA@J-`6X|@kAzx=wwaU?`=A(m-s}|jL$b9#D zreS{|jX8QCOOyBY^Itqw`j{$}5^A9H&WrTNviBDhU5cWJui#13cVG&zK-{4E{?D<8 zX!Bif+ZW;@5%R+tB8+K1g!ezYoJ83 zH%fN@SGe}G$i`fLMe<&iyfIR>Qu4f#w^;H9pJK30p_M_sX_9xB(tAt#36LF_Qv68NX(4$nC9i_>T3ZZ|XOp;-=V&PWmVRI1aKj)E zO8Oy5&s)iu3^l54mh3H(oqm;$$y<{Cwxl0?iK->uE|@HpyoV+4>bjga2YEv78IqkR z**6d6?4OP7>m+-GWd9n^*|`)(bDP>r@_I|&V=|BrBTq)Exnw6v_I9q?x<4$J#yt6> zIaA@}aHhh0R6?IZyCrLnWQ`KoTToeGe=OObNOoVzo`plZWIrp}&vAAl0?*O}l>RQ1 ztox*cw>K77_HV4OZl7o^CNfP;_*ga=sU757;e)S32=}LPR zLu7}k5hpfVIq5f*qK~LCoC4+@BS@veOC8(K1smaiRN1{rM;bx~0UvY&3v1w36xy`z z7m)ec&Q_ z-E4~!h-)YgzO@SZ;QJ;>0#zGyhwAd?6y^?C(>9W1GLAd8hXS`j1+K1thqav*?9(9% z&-&zv=#Lxgz)WZD)cGn7V0%>`zNciIKSaOG`+|EXD*SseRY;}ormciVS9}U?q2DPt zg`*+PrEie7{lDlhZHghDT#(j2%E0ff2C1YypZG|wqd1+d{Y7)@IN%2 zl4CTz?lq(7n^@hP@wq0!>_K4oznWjd2Io>qb0r?nSo&MD5+Zgr0 zD*VsxvrO<|vqE5X1Ts|XOatj*j&^sX?mqRA%$hwp=@kye_5;lrcLvRtVLZu7gID6n z01zt)Z|q?4gfz6FH=r+fa$iU*SaF8w{&5;k7~8SMX5K?t{>1(U;#m=hS0fY&EAebh z^NvZDGi6xK9l1Wu>n#PlylKTvCki9Jop;_U&sl_l;8kZh52WwRYe{DtUWKsj4wY3% z7U%SxGY?bLjs{=iS6Qf-{0iC;Fz?7>b@p1K5X|GYRq*PZ-Q6KkDj`C`R!^6x(csJ2eYINWst`|aLUQl1& z?#6m2wPLBksWdD1tzpAFE%?3R1&^>tn8(M|r9lF}1z^D*{Fb$c=$JDP_8!ur(_Cho zM15Es6IkX8mFIY8CiBYm4#1*rm*brS!DwoNuF6S?Sd)JezOMy;gh?5M(#(u=@2KHD zKbB8{L2qE7E{2Yq<`XfV28hU&g1ThF04Ln9HbjRYBBt*|Z$5K)ho-;{p&re-%^(%I z`Qku0Q1D>^R^&6fZ)Mqi5Wu^UZXM?$Qr;v*YEqiyAhrx#?}ClPnlbfl|F?vUdiY_e z4!oN*?Omz5?3u4an$H!~YWw(zvhZ768q@Ss)2OjxD8Mx$LStk{quX4y3-XhqTzY^< zEXwH6c5W|1zijD7^$SqH=QgVFpY_@3+@C+9{BW(ki`r}UKUkx^2KCob{RFOmp}r00 zHwcqYqX_nL_2>}l6=q5j*6;^*n5$DUKxD!$NH9caV{f&_lLXCU5k9{%yulj0rwJZ& z&dFwASN#>RLYf!4zU|Kg)PF$wJLd&T85nL?SIFzk8q#;V zyMR%+E-BjM9)iG_>exjH$J>j2WRiJ(1~2Pb%$CUXovt0;{dxfW$8axB)-Sltgi7`5 zA{bu`sbZ6Q^-A8Ue%ALNvfq$m2AAhFeC`{}`1B=wx|s0kO!zbeK7)Y|G#c^2o*Ft! z16TtlbiNCt6G!M!J_Yv#IAYnr97tySQ|h7RyhpfFkTxA@w7AQ) zw97z+u4tOl=2GjvB=e$V&M>;?9@OlmL3>=Q*%>vD?-$Ezf36v2Pv7K9R$eGpRu{w2 zTtt>~o{j7X+6ZBJ(l@y)c&s@YTUNT2wqM$^UOmBER{WKb_HT24-nU7Anwt8v9BG7m zl$O>KpvD3#N_)#L{ZWKoo47MJ?#vVo)V3FdG>9W)>7aGS&DElU@r-t2&thVNn~XSw zI_mSYbku{#8Fgn*F&IXU2irR}m4MIkTlU~6^?I#Q+$puJ+9wo@LZdJs(x#i^n;uWM zAKFnL79BiHGXg>)In&;V9n4h3wHH?*9MSt7o%Vr0ECX!p@#6qdgzvEpgh%9f({R~JC-oxsTcba1sXv9!3lXV56?>&Wse@|n&zc|qvOk^n zJEEySTLy4{mH?vk=fV2_tUo{W)BEH2jYsIs9vA74&JQj}Tg0F82Fkw33K*qu3z#2d zxFw{(B2lIRAB9-QPfrERj%Rm6CsZY{U#IUv0bi7gTx|N0VLH%{2TwBRRdAvJ_65cP2`xKN|8nC#<M>NUmKe1?GU^#hAi zUwq~WmghvYR?KX)6B0?>^dgB*!FfouvoiW|fHJs~myj5zwEp)WQNez=O^2nur^CFL@ii;JdsFu%-=K-B%@S%cV zc|f;x#UT0P_Vv{VdWfXIjr1DydxIcl;w-M6BscBbAj%iGyrj_?9_5Jq_hE_!z9g2kSxBRjbV6q4dR)(t{jD7J@%Ch3zP2^-* zeSgM2zNsJ^5lVkM0lpqLW!?}Bdgc*IYAs3QBx(FD&|21$q!E&I@Mk2Qs^p4xNs389 z#Y2*mDM^=|9uTE&m!v*g(iD_hFG)Ql=>>xIrX;nOq>@XK^rR$RiX`0k!z!*WU+DZ{ zIJB*2`)Jx$%SeF3-b4O_qG5`P!&}50Gq#^(EikeU$Ld)rlI4P86(`{@jP&M`K3CE| zkn|jXw>pyE6k1f+o}{5C^xO`|f{a5i&OIX9s(TEW-%IXJ_DN80G19k4dMa+Z0SAYX z{*k1wp&M}EPk4Xb$a-6{rise6nUVgiq`M{ke2m`B2PJ(k(goB(BkNwtx>Zz-pBd>> zBz>`@|Jz6(Bk4a%`ZGqlUDEHsh@lrABi$nD8%d?eyTD{4tBqvUfjSXYh8yXZNcy`_ zCknO}BkSx@rf@dt5t$|}jI5)QwbsZA)zZ7aN3yy@y(qN~8Cjo8)=Ng#HY01jWF`vhJ0ve<2H0>TIOn z&FQVr90w29wYd$9+#4yERo$nfH8QjwE0F3mCPl_RnY_F8TuYq*lXfj~CF^Em0d+w| zHR|XNIvit-O+u6h)&^<|;Bmk}^4&-lt|j#s=%C|9rqM<~Ho4!&|KSFU2p~Nx_A~`eK;pw0eA|3?gP87uY)B;^7dL>jq*62&90FoPf!b#cc5xrVC3-5(0OFIR z@JX}!8niFkmLIdoxytIxX&)=!|FU}Kwuk@arS^seR2`+26kCBZDlTSWvnZt#VnF(H z3rzeM4fZ4hlRAW3bv03If7l?3T!Iced<&A*AM$A{i_5i3f9MKAW6|DCHYtnLI;dpO z1H_BFi;36072!|?uhHDVbxC0Say}(`vA&ibya4pjAe~w}Ri7^-`feu5EQM6C zVgnJz-3vWhiXK@DxJOGTEp)DYJ}$>UaVhN8bY!MmZ*#dUy3>2Lbms_nr=fIbiPj*! zxP>tw2bba09ro!|`=E+$PiK2{;KY}f&i~9VSMsuge`Jwmscj0Eg!gPT#oj0ugv6bzbJ9(SNQ; z{r@1M|Fd~GmkiX0v&R0TO7;H3cO`C&R?BOvR1XaZ>(JAHGoBH`D6Le_uVaJ}aoSnz zIRF#&HbeJi_cd(B5Xcjw(wzW0jlnvCsFtj{XWsV2xWyXq+kval>g5`Kte@7$6N?8U6PID&3gd%i7I2_tJ|D_*#IRNp z>D&*(#g48=`?bc(uu<6XJy$razEl5_YY5mgZQS2z(X6>$LQnx>?cHL zjPK}wo5!~sUD@`zhw5tjfrj^eh@%tf zA`wG78CTO9kc|cBqguEw*3#MX za=b*aHxKg(=e}(a)rBRJUIf?qCOW7Bhei2kN1<+z<{x;+4WH z-UGc2qV{=nlOv7eYHj_ z7o1NG`x3X=!qnzn_@=Fx+NDPOs^|KJJ2f1+*_cq!Foaymw)DfUme@X}k5Pg{H~lyr zjHfJkeMG5;v3-Ni+O`SwbU8#&ycZ!u!|U6uPd=~CN9#I0zQ%V1J#I0f_5r?m#aX_u zK*$ajr2izb0UmKR(IpOz8vC{A(;)!S)`aOc=9|MIiqk;LAqU_7;n6rx765QI9!M@$ z^X-)|Ba=I_`ezOh)Ez{5_athYL?7&F&w8 zL;H2G`FyPu?neU5{6_#Bp?$Ygw(m;sDbG)BJfS$HsF)Hw_a?v&{{cQFSO>*m*_ae; z2q4%60pvAg74*3dVTGxTadmb;aL@vs>>%$pzL)5XKIbSo*T&)boQLd&yQx|-LAVQ_j*=tE&gk=wlJh9>C70;UC8k5A zvR@s7Z?VXyh9#iy9%ALt(XhP6>k~5h@WUjsH|%u;f4ryU-f7Zf;JUtetxpZ1tVpQk z&gEbijTatZ%ASeBJF0F6v?icx8hJOW$IHXB>r*6EPE%QB# zF`Zs0_U@(_#NVv#4;ptW!908sjbH>Y{dZl%h>_Fjc?ThON?kpqI)di?wFZ1%`6`Uh zaP>p|mn$3iJY2%~Tq*cyh?JadbiagZGN;1ZJxeh@M_`@ z)$l3$(oCNx^j}P$8O2PW#)6MdpCIT%xSZJ&rcaMBHrH#|G^h!iYWzy{gBaFfXxBfT znBNS#!y3z7Jc#F-ZZaBhg}w}0Q_ua0aZCW39tq8j_q4>g z^7rwHGw^At;}gU9?ApzQaQ8RxsiLE-zO%#crh|@;A4P%B)AWa@Ye6%?N2f2Z&HCz7 zpC3j@Q+NGfPxT%CbftK=p4z9_D@)Wio??o%+8!|Yj^m$JV*u_$yWs&a)4v-0bR9n4 zs}cB}XaY+U%IfW&jnqWRF7DW~;Rf1PYoLJmE$?R(Pwe~#XcBQB^RvSt+(ex@1|Ze} z1g_{nvH}oow0^)5Rw9?xLfif^(emRDR1=2Ri7M?wrOU&WUZXQ`n55&|>m==i!XW7& z{NV`isMaNsB%BESG0Qi6K0%zKbM%y%=Q-fY8$5RH@6|fJAxc2;(-RwP!>4(`>e_qm z!eJ8XcYoZINWoqNF(=x6IlqW?Iu;rQ+|OkfrcQ6dGURjbB*ynAj(+I*tGtURZlFKj zeRQ4m{of!sLJ|jUT#zs=hbG~02CMDS7Of$CLY`$^R)< zzN7U;Z~bUkPFIQ-K@Q|7U?=dT0rvGAUps5TxdyHjoRyWrT;yhZEA;o-hT^By7u#M7 zs$bL(ztQXaK;@kD6sEux^z9?t_SL|f1n!qxaNJ!xlG`B!lF+aQHr6XSPV zadPT(h_wB?FgmcFgPAWYMtG1CH)1-po(1UEPNizIqcAtIxq{;Pcn?@1a@}_wjT(*y zal_4xev4)TC-FZRpg_fpc1%U3kb;H>KF0qb(ygH>^4&lQeho#~6R8zg@yen%P|dpu z-aoy1pmT8Cq9uiiAr~?jUw82a3=b%9R6XzjIYYr$p;Vo86%j)Yn;+4)KXV|#hc-M) zJ##zeCkowi9~}k68V}0daT`;g99^1UO2o@uL*yws037KQ>x;{`7{tW0G(17g z9#K3dD0XeQm}{5X@MXG<`_p;|uy`$UOasg`5^l*)K^^v zeDB?u8<E*a3&ufX6Ar8<8A+X{#UWO`7j#+#dw#)`V z{NzQ}1Q5*&Z~`|b3-DB3I_<~hw_gMWsFEFxdyKe&*MXjw4nOh!qPmZo=Po`Ck~*RA+fT{qGwMrkwzikT5m%-jUU z45>y2WZ~M8A)0FZS92EdTN(hi+MED;4nhxOPqKRs9Kfvph%{s{zI|h_`>EYK92QeK zdq$o|5BS&jvJS%!?zrs=VO@Thmc6()a~?C6!r9Qp8*J5Ytsrge05n9}*a1o8 z?|PNhr?3KcNUGI0OmwkBdRjdTpo(p-t6~QvDL8kGio0hj^p=fcWezL*f&H|ESGR(gRok8rKW^^>kd)E(j-c_8w<{#c+V%=+@M9+ z^{A$UBb{vuP)UK>D+Q>L*LH*s4n|kj!5!~OJtZAn1$CHh zvS9-6XuSJ1cg%D7Dpx=3H2gCcB$mpB53P$`jh$w_O zesxeK%33;z_z>_oZTFNVvm;z;50oc{AVY?1bol74p2nYzmT_oHy&0RG3QSiL_G z5=zl*u#mtU{7;MMG-DHF#5i>^{#djj+fxlR|@cae6au zWET9@jz3TFh;(MyA4y<3kG9l>nay9(iHZW0+}?n7K~JEs%kl3=)4!)o-;_@I)%j^y zK3Mp35=J1$TT}t2j+tTiE-T|L=!0_l zXZxlmSU;f>R?nZvRgdW&dkOQj^77wDy5zf}o_voETo@4tA?OAWWO3f&R6vR}$ z^*K@c9#F^N%NOM>`Wcns$fc+@zM+P+t^;0hNDjH; zv(pc{o7)hwg&mP>g_wqP_bWgekQ_e;@*^g4QfQa z{~MS3pL-fwM%08^hwL@S)z4p{?zx7m4?L^sv(F@zf4%GqnKyrmoWl|)0 zfNxvhyA#~kp*aejc)@(2_MU;<0fKc`M;Yzq)YzVH9nB3WIJV#PL&&#|2mtq{4pNa_ zd*QU(crRp`!;pWJggV$JZ{@5ylNJt3dOnW4s|#qvY5#`kRCFVlGR_jYfiBUf&ErA& z1-B<1sL?(PeeXG_@Lc&aome`iSkk7$0g0r>;h?@!^fZ1$*jPNUHg*-#&IeP%BXv!u zijdQH_ZWT!`WG&V_bqRtH&Tv~j$l8|S+wCik&bniTaIY2*ad!4Pvc-I7+`PcO&)5v z??Z>pOxl>;oz>nG_-;I z2@Wo5j}B+=&@Me`9i3wPy0-i6TRmq^&b-uC^owh*HGPYFHZCLtzYNQF{szzZTfzEK z9$d>dYY0S-LV^IB!oiQOC_g~rk>@mc33?o8i0KP42qrKNAWHJnZ79x%V6DO^tpbWG zMSC$j16QEZBHQ^R=eQA7C==#- z>WyP(D`Y}ovY`n`Uf>WX)wLBQlsD|mFiDQx>27KUNW>@_1(y2tGX1njVx!u&_bIu5 z;;Z8u9qTRS1~I^=o{$07FP)(JKvd`J@;qNh3>T%+(tSSym)2{W(A=dNIHr_mW(uHV zW|r*LXXZdjFW_`-?!AOujlW~Q#kCI;{|5TT!nK0)(ch=Q^@@t;E8b%5pe|F5%}*nL zU%y~dEE#;yU?L!P3iS+ur$`NRU1F)OC)Ktqw>sff0p+L_a~+If)U zmk1s0dx?&j9k;@>sliX-@1>jA%juTuacqYo9@)e@KiZ5`zh!HEx_nxyzDYm5aoJob z^Yj+LNcr$2C8bMJ6(uD~Qg=%7WwyZ|bz>`XTg_}q->c<2G=f@+QybHO!oR|@o$B7R zo?EEmOv{^aCZu-%eSmZtnTI6x9Tdd0e8=!Kylp=!!T(*dZJ!UI>=0!W|50Dr!`ZJ& zc2CJ3j$@2)uKOkX0m&XKz^&rtcZcLnmApZcHxYSKb%C4WY>p|5mkTR%?ST-9goF{&D`A{$dgugNcMM<{i9@8O4YTJ_mSk4 zOI}mMUGQnienzrCk?bAFMyvBBZ-L~!E_r8+sy9pac*%ZDvOj{U5>*FCUbf^FN*+ZD z6@=SMb_ZlbW0J?&t@k4vCw7Q?08mRx#0Y>~D#7VTcQGY`*D@tW2;dzC;LjxcbII;6 z*+&GYcO`F?NnA3(ja zJEh(r~{ucagB9K_E5=gC)k!zHlx~IvYShGLu9K{i_t%CTzg6S`Ul{N)jbla zxWjjDBh&Ij_Bq4lZS7|MPv0|5Du?kDSUm)u+3g7o?zxkb8eQ|&O0JWVTcxC@6fT)n z8@S|5cGU})d{jz4D1adX!M56`<7fHF$Y;jZ;pM({f?5#Kb0_X`Xqz8%+$&y z`@m2p%eRtUzb!Av_a$$O%DgGdeqYHw{0;#k}N<8}v@c)D=`4bOI zF$1%aQgWP>oJ%Dik&<27Mbe~;l)PF>-t-hoPL`50+DDd*rjq{5x3*%?Y$fcm-wd^A z^Xnx)6$X-dJ(XxDNwJdj`UZ3`L6Ximi5{7+P|}~p4Chx#dV!LTO430|dX194m!zGN z#IQC?(if(re@W6tB$2Da3iB6i5&erCg+dD z=U#)3bP=SP+(5k@7wFG*`!W0%Fr(D`+o4y*Ss(UcxdH>3;N`k}Kq0hm(6Vvi-IAEY z6N058HoB6e6nL!p$Xu$NAIGTPh!tx|0^*MTCv^uE$3f_C=MBXy#i6T zG;8v0z|>w^P=G&C5cO?EC-XbHnnO()?QVm3TXqjT)!2Id3oZqST2Obx!s$RaCS-Lz z#qs;X`a1TzK5I`ug{Q4?x`479Ol~1J&RV8^XrJzFd2x(Bsixu=AGIme4&B%H<`#cM zMAVMkt(GEKuWu~g2q2H3-;v?;Wwhr5BhktFs>D?wc1U}w`ZK&-oL)EAfsYRA?BF_c z+l%8GRccVZ(uYzBE@ETbr*I|m`Jpg;$wo`xzf!HG`=nAbRZ8PZ%d|?VMx_9R!^&G0rzTebeF%Dq9)f?DinDt3A<~;;~i3w}nn$!gsn}!QmZCPjZ0h zzY@alKS&5;l?a8$k0(rJ)tjTbfJ?m^LtH8i9A(u<>|QbN_dPY}Yy1}f3YhVR*QbLs z)<+08-f&@=;)B7)>Cas7EP4DuKQj2Yn)D-@y^%bF{gwd)sWw5P1x;@#L$|BD-6%!( z@f3*hmUs@d@tlcsyJ>uJsh)QcERp& z4JM}H%F+lNQY&8M@t~)Cx|Pdc<^{>;H7AT+w_ zHz?)k zI(>+pqVooQ<_LY}^L)|>WZ!5aP-`X-U%j+CJX;gg&dAk?)I%qdywXHs!N<$15oyw5 zBGRM;P$}smRQe!|snq^yP$}4xsr0T{AMCd{m!nq+)GIBrD@~x3+`zm6OrL(JN%Yw_ z=r8FLLy)${|5N%TnOM_qq0`h1BT&?oC+^cnYDHTu+jfa#M3`q(c*pD`AuPwC^J&ywyJq0cYRqF1Zp zh(1}9MeP@kmrVY4#Cpr95L^{P@ON}ILKq3Vcg$p68l>kw_pc`lwR+_03+|uzsp@c4 zrFc1ce-ST7Z*L4$YDq|)+C+L_Wm#4pchXQV8u6UFQPIj+!rwmGd?|@yZ1?|Qe#71sG%C?zxjR+ z;t@Sf2MFBEnG5h_T=gfm=}Tw(h86S&Ga(*LsQac!;4Lz3A!Q~6t0KP(tqQI5VQsrVrvCO6EjIE; z)2>_fsoC-KlnfN^5Y7%xHC z

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%0AWrN5H|=7;7s0+ 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 C3zkrC{Y$a?Ha8l+{gCZoLwADrR%wd7Z&=B>9L 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